#include "dungeon.h"
#include <inttypes.h>
-static int fill(verb_t, obj_t);
+static phase_codes_t fill(verb_t, obj_t);
-static int attack(command_t command)
+static phase_codes_t attack(command_t command)
/* Attack. Assume target if unambiguous. "Throw" also links here.
* Attackable objects fall into two categories: enemies (snake,
* dwarf, etc.) and others (bird, clam, machine). Ambiguous if 2
if (obj == VEND) {
state_change(VEND,
game.prop[VEND] == VEND_BLOCKS ? VEND_UNBLOCKS : VEND_BLOCKS);
+
return GO_CLEAROBJ;
}
return GO_CLEAROBJ;
}
-static int bigwords(vocab_t id)
+static phase_codes_t bigwords(vocab_t id)
/* FEE FIE FOE FOO (AND FUM). Advance to next state if given in proper order.
* Look up foo in special section of vocab to determine which word we've got.
* Last word zips the eggs back to the giant room (unless already there). */
}
}
-static int vbreak(verb_t verb, obj_t obj)
+static phase_codes_t vbreak(verb_t verb, obj_t obj)
/* Break. Only works for mirror in repository and, of course, the vase. */
{
switch (obj) {
return (GO_CLEAROBJ);
}
-static int brief(void)
+static phase_codes_t brief(void)
/* Brief. Intransitive only. Suppress full descriptions after first time. */
{
game.abbnum = 10000;
return GO_CLEAROBJ;
}
-static int vcarry(verb_t verb, obj_t obj)
+static phase_codes_t vcarry(verb_t verb, obj_t obj)
/* Carry an object. Special cases for bird and cage (if bird in cage, can't
* take one without the other). Liquids also special, since they depend on
* status of bottle. Also various side effects, etc. */
return GO_CLEAROBJ;
}
-static int discard(verb_t verb, obj_t obj)
+static phase_codes_t discard(verb_t verb, obj_t obj)
/* Discard object. "Throw" also comes here for most objects. Special cases for
* bird (might attack snake or dragon) and cage (might contain bird) and vase.
* Drop coins at vending machine for extra batteries. */
return GO_CLEAROBJ;
}
-static int drink(verb_t verb, obj_t obj)
+static phase_codes_t drink(verb_t verb, obj_t obj)
/* Drink. If no object, assume water and look for it here. If water is in
* the bottle, drink that, else must be at a water loc, so drink stream. */
{
return GO_CLEAROBJ;
}
-static int eat(verb_t verb, obj_t obj)
+static phase_codes_t eat(verb_t verb, obj_t obj)
/* Eat. Intransitive: assume food if present, else ask what. Transitive: food
* ok, some things lose appetite, rest are ridiculous. */
{
return GO_CLEAROBJ;
}
-static int extinguish(verb_t verb, obj_t obj)
+static phase_codes_t extinguish(verb_t verb, obj_t obj)
/* Extinguish. Lamp, urn, dragon/volcano (nice try). */
{
if (obj == INTRANSITIVE) {
return GO_CLEAROBJ;
}
-static int feed(verb_t verb, obj_t obj)
+static phase_codes_t feed(verb_t verb, obj_t obj)
/* Feed. If bird, no seed. Snake, dragon, troll: quip. If dwarf, make him
* mad. Bear, special. */
{
return GO_CLEAROBJ;
}
-int fill(verb_t verb, obj_t obj)
+phase_codes_t fill(verb_t verb, obj_t obj)
/* Fill. Bottle or urn must be empty, and liquid available. (Vase
* is nasty.) */
{
return GO_CLEAROBJ;
}
-static int find(verb_t verb, obj_t obj)
+static phase_codes_t find(verb_t verb, obj_t obj)
/* Find. Might be carrying it, or it might be here. Else give caveat. */
{
if (TOTING(obj)) {
return GO_CLEAROBJ;
}
-static int fly(verb_t verb, obj_t obj)
+static phase_codes_t fly(verb_t verb, obj_t obj)
/* Fly. Snide remarks unless hovering rug is here. */
{
if (obj == INTRANSITIVE) {
return GO_TERMINATE;
}
-static int inven(void)
+static phase_codes_t inven(void)
/* Inventory. If object, treat same as find. Else report on current burden. */
{
bool empty = true;
return GO_CLEAROBJ;
}
-static int light(verb_t verb, obj_t obj)
+static phase_codes_t light(verb_t verb, obj_t obj)
/* Light. Applicable only to lamp and urn. */
{
if (obj == INTRANSITIVE) {
return GO_CLEAROBJ;
}
-static int listen(void)
+static phase_codes_t listen(void)
/* Listen. Intransitive only. Print stuff based on object sound proprties. */
{
vocab_t sound = locations[game.loc].sound;
return GO_CLEAROBJ;
}
-static int lock(verb_t verb, obj_t obj)
+static phase_codes_t lock(verb_t verb, obj_t obj)
/* Lock, unlock, no object given. Assume various things if present. */
{
if (obj == INTRANSITIVE) {
return GO_CLEAROBJ;
}
-static int pour(verb_t verb, obj_t obj)
+static phase_codes_t pour(verb_t verb, obj_t obj)
/* Pour. If no object, or object is bottle, assume contents of bottle.
* special tests for pouring water or oil on plant or rusty door. */
{
}
}
-static int quit(void)
+static phase_codes_t quit(void)
/* Quit. Intransitive only. Verify intent and exit if that's what he wants. */
{
if (yes(arbitrary_messages[REALLY_QUIT], arbitrary_messages[OK_MAN], arbitrary_messages[OK_MAN]))
return GO_CLEAROBJ;
}
-static int read(command_t command)
+static phase_codes_t read(command_t command)
/* Read. Print stuff based on objtxt. Oyster (?) is special case. */
{
if (command.obj == INTRANSITIVE) {
return GO_CLEAROBJ;
}
-static int reservoir(void)
+static phase_codes_t reservoir(void)
/* Z'ZZZ (word gets recomputed at startup; different each game). */
{
if (!AT(RESER) && game.loc != LOC_RESBOTTOM) {
}
}
-static int rub(verb_t verb, obj_t obj)
+static phase_codes_t rub(verb_t verb, obj_t obj)
/* Rub. Yields various snide remarks except for lit urn. */
{
if (obj == URN && game.prop[URN] == URN_LIT) {
return GO_CLEAROBJ;
}
-static int say(command_t command)
+static phase_codes_t say(command_t command)
/* Say. Echo WD2. Magic words override. */
{
if (command.word[1].type == MOTION &&
return GO_CLEAROBJ;
}
-static int throw_support(vocab_t spk)
+static phase_codes_t throw_support(vocab_t spk)
{
rspeak(spk);
drop(AXE, game.loc);
return GO_MOVE;
}
-static int throw (command_t command)
+static phase_codes_t throw (command_t command)
/* Throw. Same as discard unless axe. Then same as attack except
* ignore bird, and if dwarf is present then one might be killed.
* (Only way to do so!) Axe also special for dragon, bear, and
}
}
-static int wake(verb_t verb, obj_t obj)
+static phase_codes_t wake(verb_t verb, obj_t obj)
/* Wake. Only use is to disturb the dwarves. */
{
if (obj != DWARF ||
}
}
-static int seed(verb_t verb, const char *arg)
+static phase_codes_t seed(verb_t verb, const char *arg)
/* Set seed */
{
int32_t seed = strtol(arg, NULL, 10);
return GO_TOP;
}
-static int waste(verb_t verb, turn_t turns)
+static phase_codes_t waste(verb_t verb, turn_t turns)
/* Burn turns */
{
game.limit -= turns;
return GO_TOP;
}
-static int wave(verb_t verb, obj_t obj)
+static phase_codes_t wave(verb_t verb, obj_t obj)
/* Wave. No effect unless waving rod at fissure or at bird. */
{
if (obj != ROD ||
}
}
-int action(command_t command)
+phase_codes_t action(command_t command)
/* Analyse a verb. Remember what it was, go back for object if second word
* unless verb is "say", which snarfs arbitrary second word.
*/