Unspk'd and restructured fill

This commit is contained in:
NHOrus 2017-07-04 13:58:00 +03:00
parent e6efd6dbac
commit 8cbb8afcbe

View file

@ -704,27 +704,34 @@ int fill(token_t verb, token_t obj)
} }
game.place[k] = LOC_NOWHERE; game.place[k] = LOC_NOWHERE;
return GO_CLEAROBJ; return GO_CLEAROBJ;
} else if (obj != NO_OBJECT && obj != BOTTLE) { }
if (obj != NO_OBJECT && obj != BOTTLE) {
rspeak(actions[verb].message); rspeak(actions[verb].message);
return GO_CLEAROBJ; return GO_CLEAROBJ;
} else if (obj == NO_OBJECT && !HERE(BOTTLE)) }
if (obj == NO_OBJECT && !HERE(BOTTLE))
return GO_UNKNOWN; return GO_UNKNOWN;
int spk = BOTTLED_WATER;
if (LIQLOC(game.loc) == 0) if (HERE(URN) && game.prop[URN] != URN_EMPTY) {
spk = NO_LIQUID; rspeak(URN_NOPOUR);
if (HERE(URN) && game.prop[URN] != URN_EMPTY) return GO_CLEAROBJ;
spk = URN_NOPOUR; }
if (LIQUID() != 0) if (LIQUID() != NO_OBJECT) {
spk = BOTTLE_FULL; rspeak(BOTTLE_FULL);
if (spk == BOTTLED_WATER) { return GO_CLEAROBJ;
/* FIXME: Arithmetic on property values */ }
game.prop[BOTTLE] = MOD(conditions[game.loc], 4) / 2 * 2; if (LIQLOC(game.loc) == NO_OBJECT) {
rspeak(NO_LIQUID);
return GO_CLEAROBJ;
}
game.prop[BOTTLE] = (LIQLOC(game.loc) == OIL) ? OIL_BOTTLE : WATER_BOTTLE;
if (TOTING(BOTTLE)) if (TOTING(BOTTLE))
game.place[LIQUID()] = CARRIED; game.place[LIQUID()] = CARRIED;
if (LIQUID() == OIL) if (LIQUID() == OIL)
spk = BOTTLED_OIL; rspeak(BOTTLED_OIL);
} else
rspeak(spk); rspeak(BOTTLED_WATER);
return GO_CLEAROBJ; return GO_CLEAROBJ;
} }