X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=069c8651c808ea312a150a4b9246713226a7a52a;hp=cbcd45c4f0a7cc61bb60f3cc1ea049fe9553df4d;hb=c3a2816821512b59a09866a594a9bec699193271;hpb=ecff53d3a8322224bafe0c2a4cffc3e32840e82a diff --git a/main.c b/main.c index cbcd45c..069c865 100644 --- a/main.c +++ b/main.c @@ -189,7 +189,7 @@ static bool fallback_handler(char *buf) static void checkhints(void) { if (conditions[game.loc] >= game.conds) { - for (int hint = 0; hint < HINT_COUNT; hint++) { + for (int hint = 0; hint < NHINTS; hint++) { if (game.hinted[hint]) continue; if (!CNDBIT(game.loc, hint + 1 + COND_HBASE)) @@ -289,7 +289,9 @@ static bool spotted_by_pirate(int i) return true; int snarfed = 0; bool movechest = false, robplayer = false; - for (int treasure = MINTRS; treasure <= MAXTRS; treasure++) { + for (int treasure = 1; treasure <= NOBJECTS; treasure++) { + if (!object_descriptions[treasure].is_treasure) + continue; /* Pirate won't take pyramid from plover room or dark * room (too easy!). */ if (treasure == PYRAMID && (game.loc == PLAC[PYRAMID] || game.loc == PLAC[EMERALD])) { @@ -323,7 +325,9 @@ static bool spotted_by_pirate(int i) } if (robplayer) { rspeak(PIRATE_POUNCES); - for (int treasure = MINTRS; treasure <= MAXTRS; treasure++) { + for (int treasure = 1; treasure <= NOBJECTS; treasure++) { + if (!object_descriptions[treasure].is_treasure) + continue; if (!(treasure == PYRAMID && (game.loc == PLAC[PYRAMID] || game.loc == PLAC[EMERALD]))) { if (AT(treasure) && game.fixed[treasure] == 0) CARRY(treasure, game.loc); @@ -468,7 +472,7 @@ static bool dwarfmove(void) /* "You're dead, Jim." * * If the current loc is zero, it means the clown got himself killed. - * We'll allow this maxdie times. maximum_deaths is automatically set based + * We'll allow this maxdie times. NDEATHS is automatically set based * on the number of snide messages available. Each death results in * a message (81, 83, etc.) which offers reincarnation; if accepted, * this results in message 82, 84, etc. The last time, if he wants @@ -496,7 +500,7 @@ static void croak(void) * death and exit. */ rspeak(DEATH_CLOSING); terminate(endgame); - } else if (game.numdie == maximum_deaths || !YES(query, yes_response, arbitrary_messages[OK_MAN])) + } else if (game.numdie == NDEATHS || !YES(query, yes_response, arbitrary_messages[OK_MAN])) terminate(endgame); else { game.place[WATER] = game.place[OIL] = LOC_NOWHERE; @@ -687,7 +691,7 @@ static bool playermove(token_t verb, int motion) * and block him. (standard travel entries check for * game.prop(TROLL)=0.) Special stuff for bear. */ if (game.prop[TROLL] == 1) { - pspeak(TROLL, 1); + pspeak(TROLL,look, 1); game.prop[TROLL] = 0; MOVE(TROLL2, 0); MOVE(TROLL2 + NOBJECTS, 0); @@ -802,7 +806,6 @@ static bool closecheck(void) game.prop[BOTTLE] = PUT(BOTTLE, LOC_NE, EMPTY_BOTTLE); game.prop[PLANT] = PUT(PLANT, LOC_NE, 0); game.prop[OYSTER] = PUT(OYSTER, LOC_NE, 0); - OBJTXT[OYSTER] = 3; game.prop[LAMP] = PUT(LAMP, LOC_NE, 0); game.prop[ROD] = PUT(ROD, LOC_NE, 0); game.prop[DWARF] = PUT(DWARF, LOC_NE, 0); @@ -813,7 +816,7 @@ static bool closecheck(void) * Reuse sign. */ PUT(GRATE, LOC_SW, 0); PUT(SIGN, LOC_SW, 0); - ++OBJTXT[SIGN]; + game.prop[SIGN] = ENDGAME_SIGN; game.prop[SNAKE] = PUT(SNAKE, LOC_SW, 1); game.prop[BIRD] = PUT(BIRD, LOC_SW, 1); game.prop[CAGE] = PUT(CAGE, LOC_SW, 0); @@ -913,7 +916,7 @@ static void listobjects(void) int kk = game.prop[obj]; if (obj == STEPS && game.loc == game.fixed[STEPS]) kk = 1; - pspeak(obj, kk); + pspeak(obj, look, kk); } } } @@ -1000,7 +1003,7 @@ L2600: * tick game.clock1 unless well into cave (and not at Y2). */ if (game.closed) { if (game.prop[OYSTER] < 0 && TOTING(OYSTER)) - pspeak(OYSTER, 1); + pspeak(OYSTER, look, 1); for (size_t i = 1; i <= NOBJECTS; i++) { if (TOTING(i) && game.prop[i] < 0) game.prop[i] = -1 - game.prop[i]; @@ -1023,7 +1026,7 @@ L2607: /* If a turn threshold has been met, apply penalties and tell * the player about it. */ - for (int i = 0; i < turn_threshold_count; ++i) + for (int i = 0; i < NTHRESHOLDS; ++i) { if (game.turns == turn_thresholds[i].threshold + 1) {