X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=1938d24be054ce6c904e8d0d7247013f23e39c70;hp=59f9942b6715acf1959362b8a1b9413d7ce1aea6;hb=00514b079380c064b91f7ab95fec7e793a365d46;hpb=ff7db8b0c8d61c332cfde95530e8ebb2bb1a0c58 diff --git a/actions.c b/actions.c index 59f9942..1938d24 100644 --- a/actions.c +++ b/actions.c @@ -21,9 +21,8 @@ static int attack(FILE *input, long verb, token_t obj) * enemies, or no enemies but 2 others. */ { int spk = ACTSPK[verb]; - int d = ATDWRF(game.loc); - if (obj == 0) { - if (d > 0) + if (obj == 0 || obj == INTRANSITIVE) { + if (ATDWRF(game.loc) > 0) obj = DWARF; if (HERE(SNAKE))obj = obj * NOBJECTS + SNAKE; if (AT(DRAGON) && game.prop[DRAGON] == 0)obj = obj * NOBJECTS + DRAGON; @@ -65,7 +64,7 @@ static int attack(FILE *input, long verb, token_t obj) if (obj == DRAGON)spk = ALREADY_DEAD; if (obj == TROLL)spk = ROCKY_TROLL; if (obj == OGRE)spk = OGRE_DODGE; - if (obj == OGRE && d > 0) { + if (obj == OGRE && ATDWRF(game.loc) > 0) { RSPEAK(spk); RSPEAK(KNIFE_THROWN); DESTROY(OGRE); @@ -177,7 +176,7 @@ static void blast(void) if (HERE(ROD2)) game.bonus = SPLATTER_MESSAGE; RSPEAK(game.bonus); - score(endgame); + terminate(endgame); } } @@ -558,7 +557,7 @@ int fill(token_t verb, token_t obj) spk = URN_NOPOUR; if (LIQUID() != 0) spk = BOTTLE_FULL; - if (spk == 107) { + if (spk == BOTTLED_WATER) { game.prop[BOTTLE] = MOD(COND[game.loc], 4) / 2 * 2; k = LIQUID(); if (TOTING(BOTTLE)) @@ -711,7 +710,7 @@ static int lock(token_t verb, token_t obj) if (AT(GRATE))obj = GRATE; if (obj != 0 && HERE(CHAIN)) return GO_UNKNOWN; if (HERE(CHAIN))obj = CHAIN; - if (obj == 0) { + if (obj == 0 || obj == INTRANSITIVE) { RSPEAK(spk); return GO_CLEAROBJ; } @@ -732,7 +731,7 @@ static int lock(token_t verb, token_t obj) return chain(verb); if (game.closng) { spk = EXIT_CLOSED; - if (!game.panic)game.clock2 = 15; + if (!game.panic)game.clock2 = PANICTIME; game.panic = true; } else { spk = game.prop[GRATE] ? GRATE_LOCKED : ALREADY_LOCKED; @@ -794,7 +793,7 @@ static int quit(FILE *input) /* Quit. Intransitive only. Verify intent and exit if that's what he wants. */ { if (YES(input, REALLY_QUIT, OK_MAN, OK_MAN)) - score(quitgame); + terminate(quitgame); return GO_CLEAROBJ; } @@ -951,13 +950,6 @@ static int throw (FILE *cmdin, long verb, token_t obj) return throw_support((++game.dkill == 1) ? DWARF_SMOKE : KILLED_DWARF); } -static int vscore(void) -/* Score. Call scoring routine but tell it to return. */ -{ - score(scoregame); - return GO_CLEAROBJ; -} - static int wake(token_t verb, token_t obj) /* Wake. Only use is to disturb the dwarves. */ { @@ -982,7 +974,7 @@ static int wave(token_t verb, token_t obj) return GO_CLEAROBJ; } if (HERE(BIRD))spk = FREE_FLY + MOD(game.prop[BIRD], 2); - if (spk == 206 && game.loc == game.place[STEPS] && game.prop[JADE] < 0) { + if (spk == FREE_FLY && game.loc == game.place[STEPS] && game.prop[JADE] < 0) { DROP(JADE, game.loc); game.prop[JADE] = 0; --game.tally; @@ -1121,7 +1113,8 @@ int action(FILE *input, enum speechpart part, long verb, token_t obj) blast(); return GO_CLEAROBJ; case 23: /* SCOR */ - return vscore(); + score(scoregame); + return GO_CLEAROBJ; case 24: /* FOO */ return bigwords(WD1); case 25: /* BRIEF */