X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions.c;h=5a82a5b225b70a91c3b473984230e53f0b6902bf;hb=f47dc9f44798e3d03e4760c8b53b44c7de4c92f9;hp=caf20eee0e084a138907f260538581bb47f992f0;hpb=deb61e3dcd060dac685feb71aa21e52165fd8691;p=open-adventure.git diff --git a/actions.c b/actions.c index caf20ee..5a82a5b 100644 --- a/actions.c +++ b/actions.c @@ -112,7 +112,7 @@ static int bigwords(token_t foo) int k = VOCAB(foo, 3); int spk = NOTHING_HAPPENS; if (game.foobar != 1 - k) { - if (game.foobar != 0)spk = START_OVER; + if (game.foobar != 0 && game.loc == LOC_GIANTROOM)spk = START_OVER; rspeak(spk); return GO_CLEAROBJ; } else { @@ -552,7 +552,7 @@ int fill(token_t verb, token_t obj) if (LIQUID() != 0) spk = BOTTLE_FULL; if (spk == BOTTLED_WATER) { - game.prop[BOTTLE] = MOD(COND[game.loc], 4) / 2 * 2; + game.prop[BOTTLE] = MOD(conditions[game.loc], 4) / 2 * 2; k = LIQUID(); if (TOTING(BOTTLE)) game.place[k] = CARRIED; @@ -671,10 +671,10 @@ static int light(token_t verb, token_t obj) static int listen(void) /* Listen. Intransitive only. Print stuff based on objsnd/locsnd. */ { - int k; + long k; int spk = ALL_SILENT; - k = LOCSND[game.loc]; - if (k != 0) { + k = locations[game.loc].sound; + if (k != SILENT) { rspeak(labs(k)); if (k < 0) return GO_CLEAROBJ; spk = NO_MESSAGE; @@ -1011,8 +1011,6 @@ int action(FILE *input, struct command_t *command) if (game.loc == LOC_COBBLE || game.loc == LOC_DEBRIS || game.loc == LOC_AWKWARD || game.loc == LOC_BIRD || game.loc == LOC_PITTOP) command->obj = ENTRNC; - if (command->obj != GRATE) - return GO_MOVE; } else if (command->obj == DWARF && ATDWRF(game.loc) > 0) /* FALL THROUGH */; else if ((LIQUID() == command->obj && HERE(BOTTLE)) || command->obj == LIQLOC(game.loc))