X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=main.c;h=198a4ccb55868c4505fd9dfb8252392bd0fcd664;hp=1b725c96c71e8bfedf72b3a3ed5372251e168c0f;hb=d5d6a3e02d344ed4097a38f54ccf6757e627a1f6;hpb=0dd40bba32c9b5225e4d2126a50b7d6516791d06 diff --git a/main.c b/main.c index 1b725c9..198a4cc 100644 --- a/main.c +++ b/main.c @@ -11,6 +11,10 @@ * ESR apologizes for the remaing gotos (now confined to one function * in this file - there used to be over 350 of them, *everywhere*). * Applying the Structured Program Theorem can be hard. + * + * Copyright (c) 1977, 2005 by Will Crowther and Don Woods + * Copyright (c) 2017 by Eric S. Raymond + * SPDX-License-Identifier: BSD-2-clause */ #include @@ -694,14 +698,16 @@ static void playermove( int motion) * to get it out. Having dropped it, go back and * pretend he wasn't carrying it after all. */ drop(EMERALD, game.loc); - int te_tmp = travel_entry; - do { - if (travel[te_tmp].stop) - BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE - ++te_tmp; - } while - (traveleq(travel_entry, te_tmp)); - travel_entry = te_tmp; + { + int te_tmp = travel_entry; + do { + if (travel[te_tmp].stop) + BUG(CONDITIONAL_TRAVEL_ENTRY_WITH_NO_ALTERATION); // LCOV_EXCL_LINE + ++te_tmp; + } while + (traveleq(travel_entry, te_tmp)); + travel_entry = te_tmp; + } continue; /* goto L12 */ case 3: /* Special travel 3. Troll bridge. Must be done @@ -1083,10 +1089,10 @@ Lclearobj: #ifdef BROKEN /* Handling of actionless object followed by objectless action */ - if (preserve.type1 == OBJECT && preserve.type2 == NO_WORD_TYPE && command.id2 == 0) + if (preserve.word[0].type == OBJECT && preserve.word[1].type == NO_WORD_TYPE && command.word[1].id == 0 && command.word[0].id == CARRY) command.obj = preserve.obj; -#endif - +#endif /* BROKEN */ + ++game.turns; if (closecheck()) { @@ -1173,6 +1179,10 @@ Lookup: command.verb = command.word[0].id; break; case NUMERIC: // LCOV_EXCL_LINE + if (!settings.oldstyle) { + sspeak(DONT_KNOW, command.word[0].raw); + goto Lclearobj; + } default: // LCOV_EXCL_LINE BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE }