X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions.c;h=1938d24be054ce6c904e8d0d7247013f23e39c70;hb=2b89225ecd00eeb20a2ec67e3ad854c1443e7283;hp=70d5acd127db9945dcae2ec010605085b04cd420;hpb=c8dbb241e87d600776932dd20935513579fa597c;p=open-adventure.git diff --git a/actions.c b/actions.c index 70d5acd..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); } } @@ -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. */ { @@ -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 */