projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Magic-number elimination.
[open-adventure.git]
/
actions.c
diff --git
a/actions.c
b/actions.c
index d5d6446e4c415324951a9cdc62ad22810bc03a75..06da68805481e1526c7a24687b09c9224188b6b1 100644
(file)
--- a/
actions.c
+++ b/
actions.c
@@
-303,7
+303,8
@@
static int vcarry(token_t verb, token_t obj)
}
if (game.fixed[obj] != IS_FREE) {
}
if (game.fixed[obj] != IS_FREE) {
- if (obj == PLANT && game.prop[PLANT] <= 0) { // FIXME: magical state assertion
+ /* Next guard tests whether plant is tiny or stashed */
+ if (obj == PLANT && game.prop[PLANT] <= PLANT_THIRSTY) {
rspeak(DEEP_ROOTS);
return GO_CLEAROBJ;
}
rspeak(DEEP_ROOTS);
return GO_CLEAROBJ;
}
@@
-546,9
+547,8
@@
static int drink(token_t verb, token_t obj)
return GO_CLEAROBJ;
}
if (LIQUID() == WATER && HERE(BOTTLE)) {
return GO_CLEAROBJ;
}
if (LIQUID() == WATER && HERE(BOTTLE)) {
- game.prop[BOTTLE] = EMPTY_BOTTLE;
game.place[WATER] = LOC_NOWHERE;
game.place[WATER] = LOC_NOWHERE;
-
rspeak(BOTTLE_EMPTY
);
+
state_change(BOTTLE, EMPTY_BOTTLE
);
return GO_CLEAROBJ;
}
return GO_CLEAROBJ;
}
@@
-741,13
+741,11
@@
int fill(token_t verb, token_t obj)
return GO_CLEAROBJ;
}
return GO_CLEAROBJ;
}
- game.prop[BOTTLE] = (LIQLOC(game.loc) == OIL) ? OIL_BOTTLE : WATER_BOTTLE;
+ state_change(BOTTLE, (LIQLOC(game.loc) == OIL)
+ ? OIL_BOTTLE
+ : WATER_BOTTLE);
if (TOTING(BOTTLE))
game.place[LIQUID()] = CARRIED;
if (TOTING(BOTTLE))
game.place[LIQUID()] = CARRIED;
- if (LIQUID() == OIL)
- rspeak(BOTTLED_OIL);
- else
- rspeak(BOTTLED_WATER);
return GO_CLEAROBJ;
}
return GO_CLEAROBJ;
}
@@
-805,10
+803,10
@@
static int fly(token_t verb, token_t obj)
/* FIXME: Arithmetic on location values */
game.newloc = game.place[RUG] + game.fixed[RUG] - game.loc;
/* FIXME: Arithmetic on location values */
game.newloc = game.place[RUG] + game.fixed[RUG] - game.loc;
- if (game.prop[SAPPH] >= 0) {
- rspeak(RUG_RETURNS);
- } else {
+ if (game.prop[SAPPH] == STATE_NOTFOUND) {
rspeak(RUG_GOES);
rspeak(RUG_GOES);
+ } else {
+ rspeak(RUG_RETURNS);
}
return GO_TERMINATE;
}
}
return GO_TERMINATE;
}
@@
-871,7
+869,7
@@
static int light(token_t verb, token_t obj)
}
static int listen(void)
}
static int listen(void)
-/* Listen. Intransitive only. Print stuff based on obj
snd/locsnd
. */
+/* Listen. Intransitive only. Print stuff based on obj
ect sound proprties
. */
{
long sound = locations[game.loc].sound;
if (sound != SILENT) {
{
long sound = locations[game.loc].sound;
if (sound != SILENT) {
@@
-891,8
+889,7
@@
static int listen(void)
long packed_zzword = token_to_packed(game.zzword);
pspeak(i, hear, mi, true, packed_zzword);
rspeak(NO_MESSAGE);
long packed_zzword = token_to_packed(game.zzword);
pspeak(i, hear, mi, true, packed_zzword);
rspeak(NO_MESSAGE);
- /* FIXME: Magic number, sensitive to bird state logic */
- if (i == BIRD && game.prop[i] == 5)
+ if (i == BIRD && mi == BIRD_ENDSTATE)
DESTROY(BIRD);
return GO_CLEAROBJ;
}
DESTROY(BIRD);
return GO_CLEAROBJ;
}