Eliminate setting of OBJTXT sell for oyster - OBJTXT is now static.
[open-adventure.git] / actions.c
index 4cfcbdcd4f2b709ba538ef8a36aa51dcc02b1c79..2b30de9ad8a0e4dfce11a6b1d2104242295c1e2d 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -410,7 +410,7 @@ static int drink(token_t verb, token_t obj)
     } else {
         DESTROY(BLOOD);
         game.prop[DRAGON] = 2;
-        OBJSND[BIRD] = OBJSND[BIRD] + 3;
+        game.blooded = true;
         spk = HEAD_BUZZES;
     }
     rspeak(spk);
@@ -687,7 +687,10 @@ static int listen(void)
     for (int i = 1; i <= NOBJECTS; i++) {
         if (!HERE(i) || OBJSND[i] == 0 || game.prop[i] < 0)
             continue;
-        pspeak(i, OBJSND[i] + game.prop[i], game.zzword);
+       int mi =  OBJSND[i] + game.prop[i];
+       if (i == BIRD)
+           mi += 3 * game.blooded;
+        pspeak(i, mi, game.zzword);
         spk = NO_MESSAGE;
         if (i == BIRD && OBJSND[i] + game.prop[i] == 8)
             DESTROY(BIRD);
@@ -808,10 +811,10 @@ static int read(struct command_t command)
 
     if (DARK(game.loc)) {
         rspeak(NO_SEE, command.wd1, command.wd1x);
+    } else if (command.obj == OYSTER && !game.clshnt && game.closed) {
+        game.clshnt = YES(arbitrary_messages[CLUE_QUERY], arbitrary_messages[WAYOUT_CLUE], arbitrary_messages[OK_MAN]);
     } else if (OBJTXT[command.obj] == 0 || game.prop[command.obj] < 0) {
         rspeak(ACTSPK[command.verb]);
-    } else if (command.obj == OYSTER && !game.clshnt) {
-        game.clshnt = YES(arbitrary_messages[CLUE_QUERY], arbitrary_messages[WAYOUT_CLUE], arbitrary_messages[OK_MAN]);
     } else
         pspeak(command.obj, OBJTXT[command.obj] + game.prop[command.obj]);
     return GO_CLEAROBJ;