Lclearobj:
game.oldobj = command.obj;
-L2600:
checkhints();
/* If closing time, check for any objects being toted with
if(!get_command_input(&command))
return false;
-L2607:
+Lthreshold:
++game.turns;
/* If a turn threshold has been met, apply penalties and tell
if (command.id1 == PROMOTE_WORD(CAGE) && command.id2 == PROMOTE_WORD(BIRD) && HERE(CAGE) && HERE(BIRD))
command.wd1 = token_to_packed("CATCH");
}
-Lmovehint:
+Lookup:
if (wordeq(command.wd1, token_to_packed("WEST"))) {
if (++game.iwest == 10)
rspeak(W_IS_WEST);
if (++game.igo == 10)
rspeak(GO_UNNEEDED);
}
-Lookup:
packed_to_token(command.wd1, word1);
defn = get_vocab_id(word1);
if (defn == WORD_NOT_FOUND) {
continue;
/* Gee, I don't understand. */
sspeak(DONT_KNOW, command.raw1);
- goto L2600;
+ goto Lclearobj;
}
/* FIXME: magic numbers related to vocabulary */
kmod = MOD(defn, 1000);
return true;
case GO_TOP:
continue; /* back to top of main interpreter loop */
- case GO_CLEAROBJ:
- goto Lclearobj;
- case GO_CHECKHINT:
- goto L2600;
case GO_CHECKFOO:
- goto L2607;
+ goto Lthreshold;
case GO_LOOKUP:
goto Lookup;
case GO_WORD2:
strncpy(command.raw1, command.raw2, LINESIZE - 1);
wordclear(&command.wd2);
command.raw2[0] = '\0';
- goto Lmovehint;
+ goto Lookup;
case GO_UNKNOWN:
/* Random intransitive verbs come here. Clear obj just in case
* (see attack()). */
command.raw1[0] = toupper(command.raw1[0]);
sspeak(DO_WHAT, command.raw1);
command.obj = 0;
- goto L2600;
+ // Fallthrough
+ case GO_CHECKHINT: // Fallthrough
+ case GO_CLEAROBJ:
+ goto Lclearobj;
case GO_DWARFWAKE:
/* Oh dear, he's disturbed the dwarves. */
rspeak(DWARVES_AWAKEN);