X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=971bbb349cee39fb9c5398b1dcf18e7d26417dd1;hp=06da68805481e1526c7a24687b09c9224188b6b1;hb=23aced5c7c0d877a5ffdbe6f6ac12b5115dac554;hpb=7be7ac9406512644886fbf4a99d16e1b4f7cefc3 diff --git a/actions.c b/actions.c index 06da688..971bbb3 100644 --- a/actions.c +++ b/actions.c @@ -6,13 +6,6 @@ static int fill(token_t, token_t); -static void state_change(long obj, long state) -/* Object must have a change-message list for this to be useful; only some do */ -{ - game.prop[obj] = state; - pspeak(obj, change, state, true); -} - static int attack(struct command_t *command) /* Attack. Assume target if unambiguous. "Throw" also links here. * Attackable objects fall into two categories: enemies (snake, @@ -303,7 +296,7 @@ static int vcarry(token_t verb, token_t obj) } if (game.fixed[obj] != IS_FREE) { - /* Next guard tests whether plant is tiny or stashed */ + /* Next guard tests whether plant is tiny or stashed */ if (obj == PLANT && game.prop[PLANT] <= PLANT_THIRSTY) { rspeak(DEEP_ROOTS); return GO_CLEAROBJ; @@ -476,7 +469,7 @@ static int discard(token_t verb, token_t obj, bool just_do_it) rspeak(spk); if (spk != RUG_WIGGLES) { /* FIXME: Arithmetic on state numbers */ - int k = 2 - game.prop[RUG]; + int k = (game.prop[RUG] == RUG_HOVER) ? RUG_FLOOR : RUG_HOVER; game.prop[RUG] = k; if (k == RUG_HOVER) k = objects[SAPPH].plac; @@ -503,9 +496,9 @@ static int discard(token_t verb, token_t obj, bool just_do_it) game.loc == objects[PILLOW].plac) { rspeak(OK_MAN); } else { - state_change(VASE, AT(PILLOW) - ? VASE_WHOLE - : VASE_DROPPED); + state_change(VASE, AT(PILLOW) + ? VASE_WHOLE + : VASE_DROPPED); if (game.prop[VASE] != VASE_WHOLE) game.fixed[VASE] = IS_FIXED; } @@ -742,8 +735,8 @@ int fill(token_t verb, token_t obj) } state_change(BOTTLE, (LIQLOC(game.loc) == OIL) - ? OIL_BOTTLE - : WATER_BOTTLE); + ? OIL_BOTTLE + : WATER_BOTTLE); if (TOTING(BOTTLE)) game.place[LIQUID()] = CARRIED; return GO_CLEAROBJ;