X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=main.c;h=94eca9848fec8f838af05af302962752de24692f;hb=2b89225ecd00eeb20a2ec67e3ad854c1443e7283;hp=c2e73a0c5281bc9ae877d24749c07f442c39f435;hpb=937714f31de5309ce951bfc8eff9f2bd8ecdbb69;p=open-adventure.git diff --git a/main.c b/main.c index c2e73a0..94eca98 100644 --- a/main.c +++ b/main.c @@ -150,7 +150,7 @@ int main(int argc, char *argv[]) break; } /* show score and exit */ - score(quitgame); + terminate(quitgame); } static bool fallback_handler(char *buf) @@ -482,12 +482,11 @@ static void croak(FILE *cmdin) /* He died during closing time. No resurrection. Tally up a * death and exit. */ RSPEAK(DEATH_CLOSING); - score(endgame); - + terminate(endgame); } /* FIXME: Arithmetic on message numbers */ else if (game.numdie == MAXDIE || !YES(cmdin, WATCH_IT + game.numdie * 2, WHICH_WAY + game.numdie * 2, OK_MAN)) - score(endgame); + terminate(endgame); else { game.place[WATER] = game.place[OIL] = NOWHERE; if (TOTING(LAMP)) @@ -646,10 +645,10 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) * actual motion, but can be spotted by "go back". */ /* FIXME: Arithmetic on location numbers */ game.newloc = 99 + 100 - game.loc; - if (game.holdng == 0 || (game.holdng == 1 && TOTING(EMRALD))) - return true; - game.newloc = game.loc; - RSPEAK(MUST_DROP); + if (game.holdng > 1 || (game.holdng == 1 && !TOTING(EMRALD))) { + game.newloc = game.loc; + RSPEAK(MUST_DROP); + } return true; case 2: /* Travel 302. Plover transport. Drop the emerald (only use @@ -662,7 +661,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) ++kk; game.newloc = labs(TRAVEL[kk]) / 1000; } while - (game.newloc == scratchloc); + (game.newloc == scratchloc); continue; /* back to top of do/while loop */ case 3: /* Travel 303. Troll bridge. Must be done only as special @@ -694,13 +693,12 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) game.prop[BEAR] = 3; game.oldlc2 = game.newloc; croak(cmdin); - return false; } } BUG(20); } } while - (false); + (false); /* FIXME: Arithmetic on location number, becoming a message number */ RSPEAK(game.newloc - 500); game.newloc = game.loc; @@ -957,7 +955,7 @@ static bool do_command(FILE *cmdin) msg = arbitrary_messages[PITCH_DARK]; } if (TOTING(BEAR))RSPEAK(TAME_BEAR); - newspeak(msg); + speak(msg); if (FORCED(game.loc)) { if (playermove(cmdin, verb, 1)) return true; @@ -1004,7 +1002,7 @@ L2607: game.foobar = (game.foobar > 0 ? -game.foobar : 0); ++game.turns; if (game.turns == game.thresh) { - newspeak(turn_threshold_messages[game.trndex]); + speak(turn_threshold_messages[game.trndex]); game.trnluz = game.trnluz + TRNVAL[game.trndex] / 100000; ++game.trndex; game.thresh = -1; @@ -1121,8 +1119,7 @@ Laction: case GO_DWARFWAKE: /* Oh dear, he's disturbed the dwarves. */ RSPEAK(DWARVES_AWAKEN); - score(endgame); - return true; + terminate(endgame); default: BUG(99); }