X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions.c;h=2b30de9ad8a0e4dfce11a6b1d2104242295c1e2d;hb=ea70341cfeeae6ca648b8bd0425a564c6ab50975;hp=4cfcbdcd4f2b709ba538ef8a36aa51dcc02b1c79;hpb=ecff53d3a8322224bafe0c2a4cffc3e32840e82a;p=open-adventure.git diff --git a/actions.c b/actions.c index 4cfcbdc..2b30de9 100644 --- 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;