X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=7faf3313e25fb5b5f53ad0efb849e331d12605f9;hp=eeec3eaf40ada6209676beec58a5f748b2275067;hb=80b2b9b356efad12257f26f541693377bf8056fb;hpb=609159ad6d62af90cdbf97cbb09fffabde87a026 diff --git a/actions.c b/actions.c index eeec3ea..7faf331 100644 --- a/actions.c +++ b/actions.c @@ -273,7 +273,7 @@ static int vbreak(verb_t verb, obj_t obj) } static int brief(void) -/* Brief. Intransitive only. Suppress long descriptions after first time. */ +/* Brief. Intransitive only. Suppress full descriptions after first time. */ { game.abbnum = 10000; game.detail = 3; @@ -418,8 +418,8 @@ static int chain(verb_t verb) switch (game.prop[BEAR]) { // LCOV_EXCL_START case BEAR_DEAD: - /* Can't be reached as long as the only way for the bear to die - * is from a bridge collapse. Leave in in case this changes, but + /* Can't be reached until the bear can die in some way other + * than a bridge collapse. Leave in in case this changes, but * exclude from coverage testing. */ game.fixed[BEAR] = IS_FIXED; break; @@ -1244,6 +1244,24 @@ static int wake(verb_t verb, obj_t obj) } } +static int seed(verb_t verb, const char *arg) +/* Set seed */ +{ + int seed = atoi(arg); + speak(actions[verb].message, seed); + set_seed(seed); + --game.turns; + return GO_TOP; +} + +static int waste(verb_t verb, turn_t turns) +/* Burn turns */ +{ + game.limit -= turns; + speak(actions[verb].message, (int)game.limit); + return GO_TOP; +} + static int wave(verb_t verb, obj_t obj) /* Wave. No effect unless waving rod at fissure or at bird. */ { @@ -1430,6 +1448,10 @@ int action(struct command_t *command) return listen(); case PART: return reservoir(); + case SEED: + case WASTE: + rspeak(NUMERIC_REQUIRED); + return GO_TOP; default: // LCOV_EXCL_LINE BUG(INTRANSITIVE_ACTION_VERB_EXCEEDS_GOTO_LIST); // LCOV_EXCL_LINE } @@ -1531,6 +1553,10 @@ int action(struct command_t *command) } case PART: return reservoir(); + case SEED: + return seed(command->verb, command->raw2); + case WASTE: + return waste(command->verb, (turn_t)atol(command->raw2)); default: // LCOV_EXCL_LINE BUG(TRANSITIVE_ACTION_VERB_EXCEEDS_GOTO_LIST); // LCOV_EXCL_LINE }