Test message corrected
[open-adventure.git] / actions.c
index 31fc18691aa60bdeab380933a46b1be2a4fd2824..2d02595cf305c3e83e39066f4688c332e7e8f6eb 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -205,11 +205,13 @@ static int bigwords(long id)
              *  crossing. */
             if (game.place[EGGS] == LOC_NOWHERE && game.place[TROLL] == LOC_NOWHERE && game.prop[TROLL] == TROLL_UNPAID)
                 game.prop[TROLL] = TROLL_PAIDONCE;
-            int k = EGGS_DONE;
+            int k;
             if (HERE(EGGS))
                 k = EGGS_VANISHED;
-            if (game.loc == objects[EGGS].plac)
+            else if (game.loc == objects[EGGS].plac)
                 k = EGGS_HERE;
+            else
+                k = EGGS_DONE;
             move(EGGS, objects[EGGS].plac);
             pspeak(EGGS, look, k, true);
             return GO_CLEAROBJ;
@@ -417,8 +419,13 @@ static int chain(verb_t verb)
 
         switch (game.prop[BEAR]) {
         case BEAR_DEAD:
+            // LCOV_EXCL_START
+           /* Can't be reached as long as the only way for the bear to die
+            * is from a bridge collapse. Leave in in case this changes, but 
+            * exclude from coverage testing. */
             game.fixed[BEAR] = IS_FIXED;
             break;
+            // LCOV_EXCL_END
         default:
             game.fixed[BEAR] = IS_FREE;
         }
@@ -470,11 +477,13 @@ static int discard(verb_t verb, obj_t obj)
         game.prop[CAVITY] = CAVITY_FULL;
         if (HERE(RUG) && ((obj == EMERALD && game.prop[RUG] != RUG_HOVER) ||
                           (obj == RUBY && game.prop[RUG] == RUG_HOVER))) {
-            int spk = RUG_RISES;
-            if (TOTING(RUG))
-                spk = RUG_WIGGLES;
+            int spk;
             if (obj == RUBY)
                 spk = RUG_SETTLES;
+            else if (TOTING(RUG))
+                spk = RUG_WIGGLES;
+            else
+                spk = RUG_RISES;
             rspeak(spk);
             if (spk != RUG_WIGGLES) {
                 int k = (game.prop[RUG] == RUG_HOVER) ? RUG_FLOOR : RUG_HOVER;
@@ -1110,7 +1119,7 @@ static int say(struct command_t *command)
 {
     if (command->wd2 > 0) {
         command->wd1 = command->wd2;
-        strcpy(command->raw1, command->raw2);
+        strncpy(command->raw1, command->raw2, LINESIZE - 1);
     }
     char word1[TOKLEN + 1];
     packed_to_token(command->wd1, word1);