/*
- * Actions for the duneon-running code.
+ * Actions for the dungeon-running code.
*
* Copyright (c) 1977, 2005 by Will Crowther and Don Woods
* Copyright (c) 2017 by Eric S. Raymond
* word we've got. Last word zips the eggs back to the giant room (unless
* already there). */
{
- if ((game.foobar == WORD_EMPTY && id == FEE) ||
- (game.foobar == FEE && id == FIE) ||
- (game.foobar == FIE && id == FOE) ||
- (game.foobar == FOE && id == FOO) ||
- (game.foobar == FOE && id == FUM)) {
+ int foobar = abs(game.foobar);
+
+ if ((foobar == WORD_EMPTY && id == FEE) ||
+ (foobar == FEE && id == FIE) ||
+ (foobar == FIE && id == FOE) ||
+ (foobar == FOE && id == FOO) ||
+ (foobar == FOE && id == FUM)) {
game.foobar = id;
if ((id != FOO) && (id != FUM)) {
rspeak(OK_MAN);
}
} else {
fum:
- if (game.loc == LOC_GIANTROOM) {
+ if (game.loc == LOC_GIANTROOM || settings.oldstyle) {
rspeak(START_OVER);
} else {
/* This is new behavior in Open Adventure - sounds better when
}
static phase_codes_t listen(void)
-/* Listen. Intransitive only. Print stuff based on object sound proprties. */
+/* Listen. Intransitive only. Print stuff based on object sound properties. */
{
bool soundlatch = false;
vocab_t sound = locations[game.loc].sound;