X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=5edcc755389d593929cfac3da0eac26cefb37aa6;hp=00b8e4617b8e22e47eb61a6d974c809a451dad8e;hb=d522d22c71ce0972efcb8872c851335ca08abaa4;hpb=f37a4135246fef3f10112bf16fda181c31178588 diff --git a/main.c b/main.c index 00b8e46..5edcc75 100644 --- a/main.c +++ b/main.c @@ -294,7 +294,7 @@ static bool spotted_by_pirate(int i) continue; if (!(treasure == PYRAMID && (game.loc == objects[PYRAMID].plac || game.loc == objects[EMERALD].plac))) { - if (AT(treasure) && game.fixed[treasure] == 0) + if (AT(treasure) && game.fixed[treasure] == IS_FREE) carry(treasure, game.loc); if (TOTING(treasure)) drop(treasure, game.chloc); @@ -671,12 +671,13 @@ static void playermove( int motion) game.newloc -= SPECIALBASE; switch (game.newloc) { case 1: - /* Travel 301. Plover-alcove passage. Can carry only + /* Special travel 1. Plover-alcove passage. Can carry only * emerald. Note: travel table must include "useless" * entries going through passage, which can never be used * for actual motion, but can be spotted by "go back". */ - /* FIXME: Arithmetic on location numbers */ - game.newloc = 99 + 100 - game.loc; + game.newloc = (game.loc == LOC_PLOVER) + ? LOC_ALCOVE + : LOC_PLOVER; if (game.holdng > 1 || (game.holdng == 1 && !TOTING(EMERALD))) { game.newloc = game.loc; @@ -684,7 +685,7 @@ static void playermove( int motion) } return; case 2: - /* Travel 302. Plover transport. Drop the + /* Special travel 2. Plover transport. Drop the * emerald (only use special travel if toting * it), so he's forced to use the plover-passage * to get it out. Having dropped it, go back and @@ -700,11 +701,11 @@ static void playermove( int motion) travel_entry = te_tmp; continue; /* goto L12 */ case 3: - /* Travel 303. Troll bridge. Must be done only - * as special motion so that dwarves won't wander - * across and encounter the bear. (They won't - * follow the player there because that region is - * forbidden to the pirate.) If + /* Special travel 3. Troll bridge. Must be done + * only as special motion so that dwarves won't + * wander across and encounter the bear. (They + * won't follow the player there because that + * region is forbidden to the pirate.) If * game.prop(TROLL)=1, he's crossed since paying, * so step out and block him. (standard travel * entries check for game.prop(TROLL)=0.) Special @@ -729,7 +730,7 @@ static void playermove( int motion) game.prop[CHASM] = BRIDGE_WRECKED; game.prop[TROLL] = TROLL_GONE; drop(BEAR, game.newloc); - game.fixed[BEAR] = -1; + game.fixed[BEAR] = IS_FIXED; game.prop[BEAR] = BEAR_DEAD; game.oldlc2 = game.newloc; croak(); @@ -797,9 +798,9 @@ static bool closecheck(void) if (game.prop[BEAR] != BEAR_DEAD) DESTROY(BEAR); game.prop[CHAIN] = CHAIN_HEAP; - game.fixed[CHAIN] = CHAIN_HEAP; - game.prop[AXE] = 0; - game.fixed[AXE] = 0; + game.fixed[CHAIN] = IS_FREE; + game.prop[AXE] = AXE_HERE; + game.fixed[AXE] = IS_FREE; rspeak(CAVE_CLOSING); game.clock1 = -1; game.closng = true; @@ -915,7 +916,7 @@ static void listobjects(void) if (game.prop[obj] < 0) { if (game.closed) continue; - game.prop[obj] = 0; + game.prop[obj] = STATE_FOUND; if (obj == RUG) game.prop[RUG] = RUG_DRAGON; if (obj == CHAIN) @@ -938,9 +939,9 @@ static void listobjects(void) } int kk = game.prop[obj]; if (obj == STEPS) - kk = (game.loc == game.fixed[STEPS]) - ? STEPS_UP - : STEPS_DOWN; + kk = (game.loc == game.fixed[STEPS]) + ? STEPS_UP + : STEPS_DOWN; pspeak(obj, look, kk, true); } } @@ -1006,7 +1007,7 @@ static bool do_command() speak(msg); if (FORCED(game.loc)) { playermove(HERE); - return true; + return true; } if (game.loc == LOC_Y2 && PCT(25) && !game.closng) rspeak(SAYS_PLUGH); @@ -1058,8 +1059,8 @@ L2600: tokenize(inputbuf, &command); - char word1[TOKLEN+1]; - char word2[TOKLEN+1]; + char word1[TOKLEN + 1]; + char word2[TOKLEN + 1]; packed_to_token(command.wd1, word1); packed_to_token(command.wd2, word2); command.id1 = get_vocab_id(word1); @@ -1094,7 +1095,7 @@ L2607: lampcheck(); if (command.id1 == ENTER && (command.id2 == STREAM || - command.id2 == PROMOTE_WORD(WATER))) { + command.id2 == PROMOTE_WORD(WATER))) { if (LIQLOC(game.loc) == WATER) { rspeak(FEET_WET); } else { @@ -1105,8 +1106,8 @@ L2607: if (command.id1 == ENTER && command.id2 != WORD_NOT_FOUND && command.id2 != WORD_EMPTY) { /* command.wd1 = command.wd2; */ /* wordclear(&command.wd2); */ - command.id1 = command.id2; - command.id2 = WORD_EMPTY; + command.id1 = command.id2; + command.id2 = WORD_EMPTY; } else { /* FIXME: Magic numbers related to vocabulary */ if (!((command.id1 != PROMOTE_WORD(WATER) && command.id1 != PROMOTE_WORD(OIL)) || @@ -1142,7 +1143,7 @@ Lookup: switch (defn / 1000) { case 0: playermove(kmod); - return true; + return true; case 1: command.part = unknown; command.obj = kmod; @@ -1178,14 +1179,14 @@ Laction: case GO_WORD2: /* Get second word for analysis. */ command.wd1 = command.wd2; - strcpy(command.raw1, command.raw2); + strcpy(command.raw1, command.raw2); wordclear(&command.wd2); - command.raw2[0] = '\0'; + command.raw2[0] = '\0'; goto L2620; case GO_UNKNOWN: /* Random intransitive verbs come here. Clear obj just in case * (see attack()). */ - command.raw1[0] = toupper(command.raw1[0]); + command.raw1[0] = toupper(command.raw1[0]); sspeak(DO_WHAT, command.raw1); command.obj = 0; goto L2600;