From 4e3a892ee3d744b87ee259ab86cc71f444b5a76f Mon Sep 17 00:00:00 2001 From: NHOrus Date: Tue, 18 Jul 2017 18:10:58 +0300 Subject: [PATCH] Ad-hoc type safety when checking command IDs. fixes #31 --- main.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/main.c b/main.c index 192d129..289209d 100644 --- a/main.c +++ b/main.c @@ -1120,8 +1120,9 @@ Lclearobj: } else lampcheck(); - if (command.id1 == ENTER && (command.id2 == STREAM || - command.id2 == WATER)) { + if (command.id1 == ENTER && command.type1 == ACTION && + (command.id2 == STREAM || + command.id2 == WATER)) { if (LIQLOC(game.loc) == WATER) rspeak(FEET_WET); else @@ -1129,7 +1130,8 @@ Lclearobj: goto Lclearobj; } - if (command.id1 == ENTER && command.id2 != WORD_NOT_FOUND && command.id2 != WORD_EMPTY) { + if ((command.id1 == ENTER && command.type1 == ACTION) && + (command.id2 != WORD_NOT_FOUND && command.id2 != WORD_EMPTY)) { command.id1 = command.id2; command.type1 = command.type2; strncpy(command.raw1, command.raw2, LINESIZE - 1); @@ -1145,7 +1147,8 @@ Lclearobj: command.wd2 = token_to_packed("POUR"); } } - if (command.id1 == CAGE && command.id2 == BIRD && HERE(CAGE) && HERE(BIRD)) { + if ((command.id1 == CAGE && command.type1 == OBJECT) && + (command.id2 == BIRD && HERE(CAGE) && HERE(BIRD))) { command.id1 = CARRY; command.type1 = ACTION; strncpy(command.raw2, "CATCH", LINESIZE - 1);