Extent test coverage to plover room access.
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index c2e73a0c5281bc9ae877d24749c07f442c39f435..94eca9848fec8f838af05af302962752de24692f 100644 (file)
--- a/main.c
+++ b/main.c
@@ -150,7 +150,7 @@ int main(int argc, char *argv[])
             break;
     }
     /* show score and exit */
-    score(quitgame);
+    terminate(quitgame);
 }
 
 static bool fallback_handler(char *buf)
@@ -482,12 +482,11 @@ static void croak(FILE *cmdin)
         /*  He died during closing time.  No resurrection.  Tally up a
          *  death and exit. */
         RSPEAK(DEATH_CLOSING);
-        score(endgame);
-
+        terminate(endgame);
     }
     /* FIXME: Arithmetic on message numbers */
     else if (game.numdie == MAXDIE || !YES(cmdin, WATCH_IT + game.numdie * 2, WHICH_WAY + game.numdie * 2, OK_MAN))
-        score(endgame);
+        terminate(endgame);
     else {
         game.place[WATER] = game.place[OIL] = NOWHERE;
         if (TOTING(LAMP))
@@ -646,10 +645,10 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
                  *  actual motion, but can be spotted by "go back". */
                 /* FIXME: Arithmetic on location numbers */
                 game.newloc = 99 + 100 - game.loc;
-                if (game.holdng == 0 || (game.holdng == 1 && TOTING(EMRALD)))
-                    return true;
-                game.newloc = game.loc;
-                RSPEAK(MUST_DROP);
+                if (game.holdng > 1 || (game.holdng == 1 && !TOTING(EMRALD))) {
+                   game.newloc = game.loc;
+                   RSPEAK(MUST_DROP);
+               }
                 return true;
             case 2:
                 /*  Travel 302.  Plover transport.  Drop the emerald (only use
@@ -662,7 +661,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
                     ++kk;
                     game.newloc = labs(TRAVEL[kk]) / 1000;
                 } while
-                (game.newloc == scratchloc);
+                    (game.newloc == scratchloc);
                 continue;      /* back to top of do/while loop */
             case 3:
                 /*  Travel 303.  Troll bridge.  Must be done only as special
@@ -694,13 +693,12 @@ static bool playermove(FILE *cmdin, token_t verb, int motion)
                     game.prop[BEAR] = 3;
                     game.oldlc2 = game.newloc;
                     croak(cmdin);
-                    return false;
                 }
             }
             BUG(20);
         }
     } while
-    (false);
+       (false);
     /* FIXME: Arithmetic on location number, becoming a message number */
     RSPEAK(game.newloc - 500);
     game.newloc = game.loc;
@@ -957,7 +955,7 @@ static bool do_command(FILE *cmdin)
             msg = arbitrary_messages[PITCH_DARK];
         }
         if (TOTING(BEAR))RSPEAK(TAME_BEAR);
-        newspeak(msg);
+        speak(msg);
         if (FORCED(game.loc)) {
             if (playermove(cmdin, verb, 1))
                 return true;
@@ -1004,7 +1002,7 @@ L2607:
         game.foobar = (game.foobar > 0 ? -game.foobar : 0);
         ++game.turns;
         if (game.turns == game.thresh) {
-            newspeak(turn_threshold_messages[game.trndex]);
+            speak(turn_threshold_messages[game.trndex]);
             game.trnluz = game.trnluz + TRNVAL[game.trndex] / 100000;
             ++game.trndex;
             game.thresh = -1;
@@ -1121,8 +1119,7 @@ Laction:
         case GO_DWARFWAKE:
             /*  Oh dear, he's disturbed the dwarves. */
             RSPEAK(DWARVES_AWAKEN);
-            score(endgame);
-            return true;
+            terminate(endgame);
         default:
             BUG(99);
         }