Cleanup Arithmetic on message number
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index c7c58e3e480244a2bb3198917aaef716ed09010b..92ee30391dfb7e9bf349fc906a76d5052ffeb8c4 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;
@@ -131,16 +131,6 @@ int main(int argc, char *argv[])
 
     linenoiseHistorySetMaxLen(350);
 
-    /* Logical variables:
-     *
-     *  game.closed says whether we're all the way closed
-     *  game.closng says whether it's closing time yet
-     *  game.clshnt says whether he's read the clue in the endgame
-     *  game.lmwarn says whether he's been warned about lamp going dim
-     *  game.novice says whether he asked for instructions at start-up
-     *  game.panic says whether he's found out he's trapped in the cave
-     *  game.wzdark says whether the loc he's leaving was dark */
-
     /* Initialize our LCG PRNG with parameters tested against
      * Knuth vol. 2. by the original authors */
     game.lcg_a = 1093;
@@ -467,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;
@@ -1072,18 +1065,18 @@ L2607:
             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 (WD1 == MAKEWD(WORD_WEST)) {
             ++game.iwest;
             if (game.iwest == 10)
                 RSPEAK(W_IS_WEST);
         }
-        if (WD1 == MAKEWD( 715) && WD2 != 0) {
+        if (WD1 == MAKEWD(WORD_GO) && WD2 != 0) {
             if (++igo == 10)
                 RSPEAK(GO_UNNEEDED);
         }