From: Eric S. Raymond Date: Thu, 20 Jul 2017 11:02:35 +0000 (-0400) Subject: Add some word-type checking where it's needed. X-Git-Tag: 1.3~46 X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=commitdiff_plain;h=360adc8bfbc2d3966f286156b8502663a7b72afb Add some word-type checking where it's needed. --- diff --git a/main.c b/main.c index 192d129..7f03ab2 100644 --- a/main.c +++ b/main.c @@ -1129,14 +1129,16 @@ Lclearobj: goto Lclearobj; } - if (command.id1 == ENTER && command.id2 != WORD_NOT_FOUND && command.id2 != WORD_EMPTY) { + + /* Ugly translationms to get around word polyvalence. */ + if (command.type1 == ACTION && command.id1 == ENTER && command.id2 != WORD_NOT_FOUND && command.id2 != WORD_EMPTY) { command.id1 = command.id2; command.type1 = command.type2; strncpy(command.raw1, command.raw2, LINESIZE - 1); command.id2 = WORD_EMPTY; command.type2 = NO_WORD_TYPE; strncpy(command.raw2, "", LINESIZE - 1); - } else { + } else if (command.type1 == OBJECT) { if (!((command.id1 != WATER && command.id1 != OIL) || (command.id2 != PLANT && command.id2 != DOOR))) { if (AT(command.id2)) { command.id2 = POUR; @@ -1152,6 +1154,7 @@ Lclearobj: command.wd1 = token_to_packed("CATCH"); } } + Lookup: if (strncasecmp(command.raw1, "west", sizeof("west")) == 0) { if (++game.iwest == 10)