Global-variable elimination.
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index fd51c59a8d65f502676600e5fa3cb2a495fbb464..3f6db0da358451f54330b923ca1d61f19d2042fa 100644 (file)
--- a/main.c
+++ b/main.c
@@ -19,16 +19,15 @@ char rawbuf[LINESIZE], INLINE[LINESIZE+1], MAP1[129], MAP2[129];
 
 long AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD,
                BOTTLE, CAGE, CAVE, CAVITY, CHAIN, CHASM, CHEST,
-               CLAM, COINS, DALTLC, DOOR, DPRSSN, DRAGON, DWARF, EGGS,
+               CLAM, COINS, DOOR, DPRSSN, DRAGON, DWARF, EGGS,
                EMRALD, ENTER, ENTRNC, FIND, FISSUR, FOOD,
-               GRATE, HINT, I, INVENT, IGO, J, JADE, K, K2, KEYS, KK,
-               KNIFE, KQ, L, LAMP, LOCK, LOOK,
-               MAGZIN, MAXDIE, MAXTRS, MESSAG, MIRROR, MXSCOR,
-               NUGGET, NUL, OGRE, OIL, OYSTER, PEARL, PILLOW,
-               PLANT, PLANT2, PYRAM, RESER, ROD, ROD2, RUBY, RUG, SAPPH, SAY,
-               SCORE, SECT, SIGN, SNAKE, SPK, STEPS, STICK,
-               STREAM, THROW, TK[21], TRIDNT, TROLL, TROLL2,
-               URN, V1, V2, VASE, VEND, VERB,
+               GRATE, HINT, I, INVENT, J, JADE, K, KEYS,
+               KNIFE, L, LAMP, LOCK, LOOK, MAGZIN, MAXDIE,
+               MESSAG, MIRROR, NUGGET, NUL, OGRE, OIL, OYSTER,
+               PEARL, PILLOW, PLANT, PLANT2, PYRAM, RESER, ROD, ROD2,
+               RUBY, RUG, SAPPH, SAY, SECT, SIGN, SNAKE, SPK,
+               STEPS, STICK, STREAM, THROW, TRIDNT, TROLL, TROLL2,
+               URN, V1, V2, VASE, VEND,
                VOLCAN, VRSION = 25, WATER, WD1, WD1X, WD2, WD2X;
 FILE  *logfp;
 bool oldstyle = false;
@@ -36,7 +35,7 @@ lcg_state lcgstate;
 
 extern void initialise();
 extern void score(long);
-extern int action(FILE *, long, long);
+extern int action(FILE *, long, long, long);
 
 void sig_handler(int signo)
 {
@@ -154,8 +153,10 @@ static bool fallback_handler(char *buf)
 }
 
 static bool do_command(FILE *cmdin) {
-       long LL;
+       long LL, KQ, VERB, KK, K2;
        long obj;
+       long TK[21];
+       static long IGO = 0;
 
 /*  Can't leave cave once it's closing (except by main office). */
 
@@ -471,11 +472,11 @@ L3000:    SETPRM(1,WD1,WD1X);
 
 /* Verb and object analysis moved to separate module. */
 
-L4000: I=4000; goto Laction;
+L4000: I=4000; VERB=K; goto Laction;
 L4090: I=4090; goto Laction;
 L5000: I=5000;
 Laction:
-        switch (action(cmdin, I, obj)) {
+        switch (action(cmdin, I, VERB, obj)) {
           case 2: return true;
           case 8: goto L8;
           case 2000: goto L2000;