State-arithmetic elimination.
[open-adventure.git] / actions.c
index 6351f0d9164dd0647c43baba63ccc260a6bd831d..cfbb186e66963579528402d2e74fbad18b135ec9 100644 (file)
--- a/actions.c
+++ b/actions.c
@@ -1052,9 +1052,8 @@ static int reservoir(void)
         rspeak(NOTHING_HAPPENS);
         return GO_CLEAROBJ;
     } else {
-        /* FIXME: Arithmetic on state numbers */
-        pspeak(RESER, look, game.prop[RESER] + 1, true);
-        game.prop[RESER] = 1 - game.prop[RESER];
+       state_change(RESER,
+                    game.prop[RESER] == WATERS_PARTED ? WATERS_UNPARTED : WATERS_PARTED);
         if (AT(RESER))
             return GO_CLEAROBJ;
         else {
@@ -1231,9 +1230,8 @@ static int wave(token_t verb, token_t obj)
                    CAGE_FLY :
                    FREE_FLY);
 
-        /* FIXME: Arithemetic on property values */
-        game.prop[FISSURE] = 1 - game.prop[FISSURE];
-        pspeak(FISSURE, look, 2 - game.prop[FISSURE], true);
+        state_change(FISSURE,
+           game.prop[FISSURE] == BRIDGED ? UNBRIDGED : BRIDGED);
         return GO_CLEAROBJ;
     }
 }