}
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;
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;
}
}
+static int seed(verb_t verb, const char *arg)
+/* Set seed */
+{
+ long seed = atol(arg);
+ speak(actions[verb].message, arg);
+ set_seed(seed);
+ --game.turns;
+ return GO_TOP;
+}
+
+static int waste(verb_t verb, turn_t turns)
+/* Burn turns */
+{
+ game.limit -= turns;
+ char newlim[1024];
+ sprintf(newlim, "%ld", (long)game.limit);
+ speak(actions[verb].message, newlim);
+ return GO_TOP;
+}
+
static int wave(verb_t verb, obj_t obj)
/* Wave. No effect unless waving rod at fissure or at bird. */
{
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
}
}
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
}