X-Git-Url: https://jxself.org/git/?p=open-adventure.git;a=blobdiff_plain;f=actions.c;h=7faf3313e25fb5b5f53ad0efb849e331d12605f9;hp=3990f8c839fe60f5028620848c849fd3bb2f62a2;hb=80b2b9b356efad12257f26f541693377bf8056fb;hpb=a3c159660bb03f220b7de52ba0ac4977098f389e diff --git a/actions.c b/actions.c index 3990f8c..7faf331 100644 --- a/actions.c +++ b/actions.c @@ -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 }