X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=actions.c;h=43a570e2d74ae3b249f1dc59fa6fc253ffde4f71;hb=ab79fc78144cd1433c6e8276ab133067be28083e;hp=567d67ad66621cb1ef9c8dffa2306f96c0db7f8d;hpb=f47f3a460338cd46faa2c2ee76762abdb1b36acb;p=open-adventure.git diff --git a/actions.c b/actions.c index 567d67a..43a570e 100644 --- a/actions.c +++ b/actions.c @@ -25,7 +25,7 @@ static int attack(struct command_t *command) obj = DWARF; if (HERE(SNAKE)) obj = obj * NOBJECTS + SNAKE; - if (AT(DRAGON) && game.prop[DRAGON] == 0) + if (AT(DRAGON) && game.prop[DRAGON] == DRAGON_BARS) obj = obj * NOBJECTS + DRAGON; if (AT(TROLL)) obj = obj * NOBJECTS + TROLL; @@ -107,7 +107,7 @@ static int attack(struct command_t *command) spk = ALREADY_DEAD; break; } - } else if (obj == DRAGON && game.prop[DRAGON] == 0) { + } else if (obj == DRAGON && game.prop[DRAGON] == DRAGON_BARS) { /* 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, @@ -123,7 +123,7 @@ static int attack(struct command_t *command) } state_change(DRAGON, DRAGON_DEAD); game.prop[RUG] = RUG_FLOOR; - /* FIXME: Arithmentic on location values */ + /* FIXME: Arithmentic on location values */ int k = (objects[DRAGON].plac + objects[DRAGON].fixd) / 2; move(DRAGON + NOBJECTS, -1); move(RUG + NOBJECTS, 0); @@ -170,8 +170,8 @@ static int bigwords(token_t foo) } else { /* Bring back troll if we steal the eggs back from him before * crossing. */ - if (game.place[EGGS] == LOC_NOWHERE && game.place[TROLL] == LOC_NOWHERE && game.prop[TROLL] == 0) - game.prop[TROLL] = 1; + if (game.place[EGGS] == LOC_NOWHERE && game.place[TROLL] == LOC_NOWHERE && game.prop[TROLL] == TROLL_UNPAID) + game.prop[TROLL] = TROLL_PAIDONCE; k = 2; if (HERE(EGGS)) k = 1; @@ -354,21 +354,21 @@ static int chain(token_t verb) spk = CHAIN_UNLOCKED; if (game.prop[BEAR] == UNTAMED_BEAR) spk = BEAR_BLOCKS; - if (game.prop[CHAIN] == 0) + if (game.prop[CHAIN] == CHAIN_HEAP) spk = ALREADY_UNLOCKED; if (spk != CHAIN_UNLOCKED) { rspeak(spk); return GO_CLEAROBJ; } - game.prop[CHAIN] = 0; - game.fixed[CHAIN] = 0; + game.prop[CHAIN] = CHAIN_HEAP; + game.fixed[CHAIN] = CHAIN_HEAP; if (game.prop[BEAR] != BEAR_DEAD) game.prop[BEAR] = CONTENTED_BEAR; /* FIXME: Arithmetic on state numbers */ game.fixed[BEAR] = 2 - game.prop[BEAR]; } else { spk = CHAIN_LOCKED; - if (game.prop[CHAIN] != 0) + if (game.prop[CHAIN] != CHAIN_HEAP) spk = ALREADY_LOCKED; if (game.loc != objects[CHAIN].plac) spk = NO_LOCKSITE; @@ -376,7 +376,7 @@ static int chain(token_t verb) rspeak(spk); return GO_CLEAROBJ; } - game.prop[CHAIN] = 2; + game.prop[CHAIN] = CHAIN_FIXED; if (TOTING(CHAIN)) drop(CHAIN, game.loc); game.fixed[CHAIN] = -1; @@ -419,7 +419,7 @@ static int discard(token_t verb, token_t obj, bool just_do_it) spk = RUG_SETTLES; rspeak(spk); if (spk != RUG_WIGGLES) { - /* FIXME: Arithmetic on state numbers */ + /* FIXME: Arithmetic on state numbers */ int k = 2 - game.prop[RUG]; game.prop[RUG] = k; if (k == 2) @@ -432,7 +432,7 @@ static int discard(token_t verb, token_t obj, bool just_do_it) drop(BATTERY, game.loc); pspeak(BATTERY, look, FRESH_BATTERIES); return GO_CLEAROBJ; - } else if (obj == BIRD && AT(DRAGON) && game.prop[DRAGON] == 0) { + } else if (obj == BIRD && AT(DRAGON) && game.prop[DRAGON] == DRAGON_BARS) { rspeak(BIRD_BURNT); DESTROY(BIRD); return GO_CLEAROBJ; @@ -486,7 +486,7 @@ static int drink(token_t verb, token_t obj) game.place[WATER] = LOC_NOWHERE; spk = BOTTLE_EMPTY; } - rspeak(spk); + rspeak(spk); } else { DESTROY(BLOOD); state_change(DRAGON, DRAGON_BLOODLESS); @@ -554,7 +554,7 @@ static int feed(token_t verb, token_t obj) return GO_CLEAROBJ; } else if (obj == SNAKE || obj == DRAGON || obj == TROLL) { spk = NOTHING_EDIBLE; - if (obj == DRAGON && game.prop[DRAGON] != 0) + if (obj == DRAGON && game.prop[DRAGON] != DRAGON_BARS) spk = RIDICULOUS_ATTEMPT; if (obj == TROLL) spk = TROLL_VICES; @@ -1031,7 +1031,7 @@ static int throw (struct command_t *command) else { int i = atdwrf(game.loc); if (i <= 0) { - if (AT(DRAGON) && game.prop[DRAGON] == 0) + if (AT(DRAGON) && game.prop[DRAGON] == DRAGON_BARS) return throw_support(DRAGON_SCALES); if (AT(TROLL)) return throw_support(TROLL_RETURNS);