From 0dc78b422167e0e19477efa5c28dea9af77a5785 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Thu, 15 Jun 2017 10:59:43 -0400 Subject: [PATCH] More use of manifest constants. --- actions.c | 41 +++++++++++++++++++++++++++-------------- advent.h | 8 ++++---- main.c | 10 ++++++---- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/actions.c b/actions.c index 9cd6e0d..4d07762 100644 --- a/actions.c +++ b/actions.c @@ -78,12 +78,18 @@ static int attack(FILE *input, long verb, token_t obj) game.dseen[i]=false; } } - spk=spk+1+1/k; + spk=spk+1+1/k; /* FIXME: Arithmetic on message numbers */ + RSPEAK(spk); + return GO_CLEAROBJ; + } + + if (obj == BEAR) + /* FIXME: Arithmetic on message numbers */ + spk = BEAR_HANDS+(game.prop[BEAR]+1)/2; + if (obj != DRAGON || game.prop[DRAGON] != 0) { RSPEAK(spk); return GO_CLEAROBJ; } - if (obj == BEAR)spk=BEAR_HANDS+(game.prop[BEAR]+1)/2; - if (obj != DRAGON || game.prop[DRAGON] != 0) {RSPEAK(spk); return GO_CLEAROBJ;} /* Fun stuff for dragon. If he insists on attacking it, win! * Set game.prop to dead, move dragon to central loc (still * fixed), move rug there (not fixed), and move him there, @@ -306,7 +312,10 @@ static int chain(token_t verb) spk=CHAIN_LOCKED; if (game.prop[CHAIN] != 0)spk=ALREADY_LOCKED; if (game.loc != PLAC[CHAIN])spk=NO_LOCKSITE; - if (spk != CHAIN_LOCKED) {RSPEAK(spk); return GO_CLEAROBJ;} + if (spk != CHAIN_LOCKED) { + RSPEAK(spk); + return GO_CLEAROBJ; + } game.prop[CHAIN]=2; if (TOTING(CHAIN))DROP(CHAIN,game.loc); game.fixed[CHAIN]= -1; @@ -396,7 +405,7 @@ static int drink(token_t verb, token_t obj) return GO_UNKNOWN; if (obj != BLOOD) { if (obj != 0 && obj != WATER)spk=RIDICULOUS_ATTEMPT; - if (spk != 110 && LIQUID() == WATER && HERE(BOTTLE)) { + if (spk != RIDICULOUS_ATTEMPT && LIQUID() == WATER && HERE(BOTTLE)) { game.prop[BOTTLE]=1; game.place[WATER]=0; spk=BOTTLE_EMPTY; @@ -519,7 +528,7 @@ int fill(token_t verb, token_t obj) return GO_CLEAROBJ; } RSPEAK(SHATTER_VASE); - game.prop[VASE]=2; + game.prop[VASE] = 2; game.fixed[VASE]= -1; return(discard(verb, obj, true)); } @@ -553,7 +562,7 @@ int fill(token_t verb, token_t obj) game.prop[BOTTLE]=MOD(COND[game.loc],4)/2*2; k=LIQUID(); if (TOTING(BOTTLE)) - game.place[k]= -1; + game.place[k] = -1; if (k == OIL) spk=BOTTLED_OIL; } @@ -600,7 +609,8 @@ static int fly(token_t verb, token_t obj) game.oldloc=game.loc; game.newloc=game.place[RUG]+game.fixed[RUG]-game.loc; spk=RUG_GOES; - if (game.prop[SAPPH] >= 0)spk=RUG_RETURNS; + if (game.prop[SAPPH] >= 0) + spk=RUG_RETURNS; RSPEAK(spk); return GO_TERMINATE; } @@ -811,11 +821,14 @@ static int reservoir(void) } else { PSPEAK(RESER,game.prop[RESER]+1); game.prop[RESER]=1-game.prop[RESER]; - if (AT(RESER)) return GO_CLEAROBJ; - game.oldlc2=game.loc; - game.newloc=0; - RSPEAK(NOT_BRIGHT); - return GO_TERMINATE; + if (AT(RESER)) + return GO_CLEAROBJ; + else { + game.oldlc2=game.loc; + game.newloc=0; + RSPEAK(NOT_BRIGHT); + return GO_TERMINATE; + } } } @@ -875,7 +888,7 @@ static int throw(FILE *cmdin, long verb, token_t obj) RSPEAK(spk); return GO_CLEAROBJ; } - if (obj >= 50 && obj <= MAXTRS && AT(TROLL)) { + if (obj >= MINTRS && obj <= MAXTRS && AT(TROLL)) { spk=TROLL_SATISFIED; /* Snarf a treasure for the troll. */ DROP(obj,0); diff --git a/advent.h b/advent.h index 93681a6..327c717 100644 --- a/advent.h +++ b/advent.h @@ -6,7 +6,7 @@ #define LINESIZE 100 #define NDWARVES 6 #define PIRATE NDWARVES /* must be NDWARVES-1 when zero-origin */ -#define DALTLC 18 /* alternate dwarf location; low room */ +#define DALTLC LOC_NUGGET /* alternate dwarf location */ #define MINTRS 50 #define MAXTRS 79 #define MAXPARMS 25 @@ -140,7 +140,7 @@ extern int saveresume(FILE *, bool); #define DARK(DUMMY) ((!CNDBIT(game.loc,LIGHT)) && (game.prop[LAMP] == 0 || !HERE(LAMP))) #define PCT(N) (randrange(100) < (N)) #define GSTONE(OBJ) ((OBJ) == EMRALD || (OBJ) == RUBY || (OBJ) == AMBER || (OBJ) == SAPPH) -#define FOREST(LOC) ((LOC) >= 145 && (LOC) <= 166) +#define FOREST(LOC) ((LOC) >= LOC_FOREST1 && (LOC) <= LOC_FOREST22) #define VOCWRD(LETTRS,SECT) (VOCAB(MAKEWD(LETTRS),SECT)) #define SPECIAL(LOC) ((LOC) > SPECIALBASE) @@ -150,8 +150,8 @@ extern int saveresume(FILE *, bool); * LOC is outside, INDEEP(LOC) is true if LOC is "deep" in the cave (hall * of mists or deeper). Note special kludges for "Foof!" locs. */ -#define OUTSID(LOC) ((LOC) <= 8 || FOREST(LOC) || (LOC) == PLAC[SAPPH] || (LOC) == 180 || (LOC) == 182) -#define INDEEP(LOC) ((LOC) >= 15 && !OUTSID(LOC) && (LOC) != 179) +#define OUTSID(LOC) ((LOC) <= LOC_GRATE || FOREST(LOC) || (LOC) == PLAC[SAPPH] || (LOC) == LOC_FOOF2 || (LOC) == LOC_FOOF4) +#define INDEEP(LOC) ((LOC) >= LOC_MISTHALL && !OUTSID(LOC) && (LOC) != LOC_FOOF1) /* vocabulary items */ extern long AMBER, ATTACK, AXE, BACK, BATTER, BEAR, diff --git a/main.c b/main.c index 1dc395e..66c5caf 100644 --- a/main.c +++ b/main.c @@ -324,7 +324,7 @@ static bool dwarfmove(void) int kk, stick, attack; long tk[21]; - /* Dwarf stuff. See earlier comments for description of + /* Dwarf stuff. See earlier comments for description of * variables. Remember sixth dwarf is pirate and is thus * very different except for motion rules. */ @@ -490,7 +490,7 @@ static void croak(FILE *cmdin) int i=NOBJECTS + 1 - j; if (TOTING(i)) { /* Always leave lamp where it's accessible aboveground */ - DROP(i, (i == LAMP) ? 1 : game.oldlc2); + DROP(i, (i == LAMP) ? LOC_START : game.oldlc2); } } game.loc = LOC_BUILDING; @@ -558,7 +558,8 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) /* Look. Can't give more detail. Pretend it wasn't dark * (though it may "now" be dark) so he won't fall into a * pit while staring into the gloom. */ - if (game.detail < 3)RSPEAK(NO_MORE_DETAIL); + if (game.detail < 3) + RSPEAK(NO_MORE_DETAIL); ++game.detail; game.wzdark=false; game.abbrev[game.loc]=0; @@ -640,6 +641,7 @@ static bool playermove(FILE *cmdin, token_t verb, int motion) * 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; if (game.holdng == 0 || (game.holdng == 1 && TOTING(EMRALD))) return true; @@ -950,7 +952,7 @@ static bool do_command(FILE *cmdin) croak(cmdin); continue; /* back to top of main interpreter loop */ } - msg=arbitrary_messages[16]; + msg=arbitrary_messages[PITCH_DARK]; } if (TOTING(BEAR))RSPEAK(TAME_BEAR); newspeak(msg); -- 2.31.1