* 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 == FIE || id == FOE || id == FOO || id == FUM)) {
+ rspeak(NOTHING_HAPPENS);
+ return GO_CLEAROBJ;
+ }
+
+ 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 || settings.oldstyle) {
- rspeak(START_OVER);
- } else {
- /* This is new behavior in Open Adventure - sounds better when
- * player isn't in the Giant Room. */
- rspeak(NOTHING_HAPPENS);
- }
+ rspeak(START_OVER);
game.foobar = WORD_EMPTY;
return GO_CLEAROBJ;
}