#ifndef WH_GATES_H_d330b84d_ #define WH_GATES_H_d330b84d_ /* * APIs exported by gates.c. */ #include "structs.h" /* * Create a gate of a given type at a given location. */ extern void makegate(LOC *, GATETYPE); /* * Given a LOC that's one end of a gate, return the LOC that's the * other end. The second argument indicates whose point of view this * should done with respect to: * * GH_DEBUG * Debugging assist: like GH_PLAYER at present. * GH_PLAYER * The player: all elemental planes are in series between * the main dungeon and the Underworld. * GH_E_EARTH * GH_E_AIR * GH_E_FIRE * GH_E_WATER * An elemental: the corresponding elemental plane is, * alone, between the main dungeon and the Underworld. * Other elemental planes are inaccessible. * GH_REGULAR * An ordinary monster: the gate in the main dungeon is * connected directly to the gate in the Underworld. The * elemental planes are inaccessible. */ typedef enum { GH_DEBUG = 1, GH_PLAYER, GH_E_EARTH, GH_E_AIR, GH_E_FIRE, GH_E_WATER, GH_REGULAR, } GATEHOW; extern LOC *gate_other_end(LOC *, GATEHOW); #endif