Fix to Gitlab issue #32. Now SEED and WASTE are in adventure.yaml
NOTE: the tests are all updated because now, like every other action, SEED and WASTE have a \n before their output, as they correctly use SPEAK
This commit is contained in:
parent
ef236aea3b
commit
5337e00725
84 changed files with 174 additions and 32 deletions
30
main.c
30
main.c
|
@ -133,28 +133,6 @@ int main(int argc, char *argv[])
|
|||
terminate(quitgame);
|
||||
}
|
||||
|
||||
static bool fallback_handler(struct command_t command)
|
||||
/* fallback handler for commands not handled by FORTRANish parser */
|
||||
{
|
||||
long sv;
|
||||
turn_t turnlimit;
|
||||
char buf[DIM(command.raw1) + DIM(command.raw2) + 1];
|
||||
sprintf(buf, "%s %s", command.raw1, command.raw2);
|
||||
|
||||
if (sscanf(buf, "seed %ld", &sv) == 1) {
|
||||
set_seed(sv);
|
||||
printf("Seed set to %ld\n", sv);
|
||||
// autogenerated, so don't charge user time for it.
|
||||
--game.turns;
|
||||
return true;
|
||||
} else if (sscanf(buf, "waste %ld", &turnlimit) == 1) {
|
||||
game.limit -= turnlimit;
|
||||
printf("Game limit is now %ld\n", game.limit);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Check if this loc is eligible for any hints. If been here long
|
||||
* enough, display. Ignore "HINTS" < 4 (special stuff, see database
|
||||
* notes). */
|
||||
|
@ -1136,8 +1114,6 @@ Lookup:
|
|||
rspeak(GO_UNNEEDED);
|
||||
}
|
||||
if (command.id1 == WORD_NOT_FOUND) {
|
||||
if (fallback_handler(command))
|
||||
continue;
|
||||
/* Gee, I don't understand. */
|
||||
sspeak(DONT_KNOW, command.raw1);
|
||||
goto Lclearobj;
|
||||
|
@ -1152,12 +1128,16 @@ Lookup:
|
|||
command.obj = command.id1;
|
||||
break;
|
||||
case ACTION:
|
||||
command.part = intransitive;
|
||||
if(command.type2 == NUMERIC)
|
||||
command.part = transitive;
|
||||
else
|
||||
command.part = intransitive;
|
||||
command.verb = command.id1;
|
||||
break;
|
||||
case SPECIAL:
|
||||
speak(specials[command.id1].message);
|
||||
goto Lclearobj;
|
||||
case NUMERIC:
|
||||
default: // LCOV_EXCL_LINE
|
||||
BUG(VOCABULARY_TYPE_N_OVER_1000_NOT_BETWEEN_0_AND_3); // LCOV_EXCL_LINE
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue