Another step in de-obscurifying the travel code.

This commit is contained in:
Eric S. Raymond 2017-07-01 14:20:34 -04:00
parent e05f959974
commit 0aa70d04cf
2 changed files with 5 additions and 7 deletions

10
main.c
View file

@ -379,7 +379,7 @@ static bool dwarfmove(void)
kk = tkey[game.dloc[i]]; kk = tkey[game.dloc[i]];
if (kk != 0) if (kk != 0)
do { do {
game.newloc = T_DESTINATION(travel[kk]); game.newloc = travel[kk].dest;
/* Have we avoided a dwarf encounter? */ /* Have we avoided a dwarf encounter? */
bool avoided = (SPECIAL(game.newloc) || bool avoided = (SPECIAL(game.newloc) ||
!INDEEP(game.newloc) || !INDEEP(game.newloc) ||
@ -531,10 +531,10 @@ static bool playermove( int motion)
if (spk == 0) { if (spk == 0) {
int te_tmp = 0; int te_tmp = 0;
for (;;) { for (;;) {
scratchloc = T_DESTINATION(travel[travel_entry]); scratchloc = travel[travel_entry].dest;
if (scratchloc != motion) { if (scratchloc != motion) {
if (!SPECIAL(scratchloc)) { if (!SPECIAL(scratchloc)) {
if (FORCED(scratchloc) && T_DESTINATION(travel[tkey[scratchloc]]) == motion) if (FORCED(scratchloc) && travel[tkey[scratchloc]].dest == motion)
te_tmp = travel_entry; te_tmp = travel_entry;
} }
if (!travel[travel_entry].stop) { if (!travel[travel_entry].stop) {
@ -611,7 +611,7 @@ static bool playermove( int motion)
do { do {
for (;;) { /* L12 loop */ for (;;) { /* L12 loop */
for (;;) { for (;;) {
long cond = T_CONDITION(travel[travel_entry]); long cond = travel[travel_entry].cond;
long arg = MOD(cond, 100); long arg = MOD(cond, 100);
if (!SPECIAL(cond)) { if (!SPECIAL(cond)) {
/* YAML N and [pct N] conditionals */ /* YAML N and [pct N] conditionals */
@ -640,7 +640,7 @@ static bool playermove( int motion)
} }
/* Found an eligible rule, now execute it */ /* Found an eligible rule, now execute it */
game.newloc = T_DESTINATION(travel[travel_entry]); game.newloc = travel[travel_entry].dest;
if (!SPECIAL(game.newloc)) if (!SPECIAL(game.newloc))
return true; return true;

View file

@ -161,8 +161,6 @@ typedef struct {{
* inherited from FORTRAN, someday. To understand these, read the * inherited from FORTRAN, someday. To understand these, read the
* encoding description for travel. * encoding description for travel.
*/ */
#define T_DESTINATION(entry) (entry).dest
#define T_CONDITION(entry) (entry).cond
#define T_NODWARVES(entry) (T_CONDITION(entry) == 100) #define T_NODWARVES(entry) (T_CONDITION(entry) == 100)
#define T_TERMINATE(entry) ((entry).motion == 1) #define T_TERMINATE(entry) ((entry).motion == 1)
#define L_SPEAK(loc) ((loc) - 500) #define L_SPEAK(loc) ((loc) - 500)