De-macroize references to travel opcode fields we won't unpack further.
authorEric S. Raymond <esr@thyrsus.com>
Wed, 28 Jun 2017 13:21:41 +0000 (09:21 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Wed, 28 Jun 2017 13:21:41 +0000 (09:21 -0400)
init.c
main.c
newdungeon.py

diff --git a/init.c b/init.c
index ac1671696e1f9f82ebec27e997c9f19e4ff4c8e5..753135ec42b0a5fe46080de7afcf3602ad16beb1 100644 (file)
--- a/init.c
+++ b/init.c
@@ -25,7 +25,7 @@ void initialise(void)
         game.abbrev[i] = 0;
         if (!(locations[i].description.big == 0 || tkey[i] == 0)) {
             int k = tkey[i];
-            if (T_LOW(travel[k]) == 1)
+            if (T_TERMINATE(travel[k]))
                conditions[i] |= (1 << COND_FORCED);
         }
         game.atloc[i] = 0;
diff --git a/main.c b/main.c
index dd202357ba7004073ce1c51290c74110dbb1ac76..2eb427b59a66b67ce6cd0b5c0f2925b0f28dcd0e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -414,7 +414,7 @@ static bool dwarfmove(void)
                 }
                 ++kk;
             } while
-               (!T_STOP(travel[kk - 1]));
+               (!travel[kk - 1].stop);
         tk[j] = game.odloc[i];
         if (j >= 2)
             --j;
@@ -544,7 +544,7 @@ static bool playermove(token_t verb, int motion)
                         if (FORCED(scratchloc) && T_DESTINATION(travel[tkey[scratchloc]]) == motion)
                             k2 = kk;
                     }
-                    if (!T_STOP(travel[kk])) {
+                    if (!travel[kk].stop) {
                         ++kk;  /* go to next travel entry for this location */
                         continue;
                     }
@@ -556,7 +556,7 @@ static bool playermove(token_t verb, int motion)
                     }
                 }
 
-                motion = T_MOTION(travel[kk]);
+                motion = travel[kk].motion;
                 kk = tkey[game.loc];
                 break; /* fall through to ordinary travel */
             }
@@ -587,9 +587,9 @@ static bool playermove(token_t verb, int motion)
     /* Look for a way to fulfil the motion - kk indexes the beginning
      * of the motion entries for here (game.loc). */
     for (;;) {
-        if (T_TERMINATE(travel[kk]) || T_MOTION(travel[kk]) == motion)
+        if (T_TERMINATE(travel[kk]) || travel[kk].motion == motion)
             break;
-        if (T_STOP(travel[kk])) {
+        if (travel[kk].stop) {
             /* FIXME: Magic numbers! */
             /*  Couldn't find an entry matching the motion word passed
              *  in.  Various messages depending on word given. */
@@ -632,7 +632,7 @@ static bool playermove(token_t verb, int motion)
                 } else if (game.prop[motion] != game.newloc / 100 - 3)
                     break;
                 do {
-                    if (T_STOP(travel[kk]))
+                    if (travel[kk].stop)
                         BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION);
                     ++kk;
                     game.newloc = T_HIGH(travel[kk]);
@@ -673,7 +673,7 @@ static bool playermove(token_t verb, int motion)
                      * pretend he wasn't carrying it after all. */
                     drop(EMERALD, game.loc);
                     do {
-                        if (T_STOP(travel[kk]))
+                        if (travel[kk].stop)
                             BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION);
                         ++kk;
                         game.newloc = T_HIGH(travel[kk]);
index 315b7b023b75fc1a4184719d1c7dbcc44d12dab5..60625997f907ddc4976fd39b1ce406f5d546637f 100755 (executable)
@@ -138,7 +138,7 @@ typedef struct {{
 }} action_t;
 
 typedef struct {{
-  const long opcode;
+  const long motion;
   const long dest;
   const bool stop;
 }} travelop_t;
@@ -150,11 +150,8 @@ typedef struct {{
  */
 #define T_DESTINATION(entry)   MOD((entry).dest, 1000)
 #define T_NODWARVES(entry)     ((entry).dest / 1000 == 100)
-#define T_MOTION(entry)                MOD((entry).opcode, 1000)
-#define T_TERMINATE(entry)     (T_MOTION(entry) == 1)
-#define T_STOP(entry)          ((entry).stop)
 #define T_HIGH(entry)          ((entry).dest)
-#define T_LOW(entry)           ((entry).opcode)
+#define T_TERMINATE(entry)     ((entry).motion == 1)
 #define L_SPEAK(loc)           ((loc) - 500)
 
 extern const location_t locations[];
@@ -644,7 +641,7 @@ def buildtravel(locs, objs, voc):
 
 def get_travel(travel):
     template = """    {{
-        .opcode = {},
+        .motion = {},
         .dest = {},
         .stop = {},
     }},