Merge branch 'master' into magic-number
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index c1272c4281ae0b14b8edb10851ca209535d62baf..b830d89ce187d94735f7041864563d48b0293380 100644 (file)
--- a/main.c
+++ b/main.c
@@ -41,7 +41,7 @@ long AMBER, AXE, BACK, BATTERY, BEAR, BIRD, BLOOD,
      RUBY, RUG, SAPPH, SAY, SIGN, SNAKE,
      STEPS, STREAM, THROW, TRIDENT, TROLL, TROLL2,
      URN, VASE, VEND, VOLCANO, WATER;
-long WD1, WD1X, WD2, WD2X;
+token_t WD1, WD1X, WD2, WD2X;
 
 FILE  *logfp = NULL, *rfp = NULL;
 bool oldstyle = false;
@@ -457,12 +457,15 @@ static bool dwarfmove(void)
     if (attack == 0)
         return true;
     if (game.dflag == 2)game.dflag = 3;
-    SETPRM(1, attack, 0);
-    int k = 6;
-    if (attack > 1)k = THROWN_KNIVES;
-    RSPEAK(k);
-    SETPRM(1, stick, 0);
-    RSPEAK(k + 1 + 2 / (1 + stick));   /* FIXME: Arithmetic on message number */
+    if (attack > 1){
+       SETPRM(1, attack, 0);
+       RSPEAK(THROWN_KNIVES);
+       SETPRM(1, stick, 0);
+       RSPEAK(stick > 1 ? MULTIPLE_HITS : (stick == 1 ? ONE_HIT : NONE_HIT));
+    } else {
+       RSPEAK(KNIFE_THROWN);
+       RSPEAK(MISSES_YOU);
+    }
     if (stick == 0)
         return true;
     game.oldlc2 = game.loc;
@@ -1057,23 +1060,24 @@ L2607:
         if (V1 == ENTER && WD2 > 0) {
             WD1 = WD2;
             WD1X = WD2X;
-            WD2 = 0;
+            wordclear(&WD2);
         } else {
+           /* FIXME: Magic numbers */
             if (!((V1 != 1000 + WATER && V1 != 1000 + OIL) ||
                   (V2 != 1000 + PLANT && V2 != 1000 + DOOR))) {
                 if (AT(V2 - 1000))
-                    WD2 = MAKEWD(16152118);
+                    WD2 = MAKEWD(WORD_POUR);
             }
             if (V1 == 1000 + CAGE && V2 == 1000 + BIRD && HERE(CAGE) && HERE(BIRD))
-                WD1 = MAKEWD(301200308);
+                WD1 = MAKEWD(WORD_CATCH);
         }
 L2620:
-        if (WD1 == MAKEWD(23051920)) {
+        if (wordeq(WD1, MAKEWD(WORD_WEST))) {
             ++game.iwest;
             if (game.iwest == 10)
                 RSPEAK(W_IS_WEST);
         }
-        if (WD1 == MAKEWD( 715) && WD2 != 0) {
+        if (wordeq(WD1, MAKEWD(WORD_GO)) && !wordempty(WD2)) {
             if (++igo == 10)
                 RSPEAK(GO_UNNEEDED);
         }
@@ -1130,7 +1134,7 @@ Laction:
             /* Get second word for analysis. */
             WD1 = WD2;
             WD1X = WD2X;
-            WD2 = 0;
+            wordclear(&WD2);
             goto L2620;
         case GO_UNKNOWN:
             /*  Random intransitive verbs come here.  Clear obj just in case