From f23c4439cec0692523f715078c11e02ff432891d Mon Sep 17 00:00:00 2001 From: jwalz Date: Sat, 5 Jan 2002 21:05:48 +0000 Subject: [PATCH] *** empty log message *** --- include/trap.h | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 include/trap.h diff --git a/include/trap.h b/include/trap.h new file mode 100644 index 000000000..f142606e0 --- /dev/null +++ b/include/trap.h @@ -0,0 +1,77 @@ +/* SCCS Id: @(#)trap.h 3.3 2000/08/30 */ +/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ +/* NetHack may be freely redistributed. See license for details. */ + +/* note for 3.1.0 and later: no longer manipulated by 'makedefs' */ + +#ifndef TRAP_H +#define TRAP_H + +union vlaunchinfo { + short v_launch_otyp; /* type of object to be triggered */ + coord v_launch2; /* secondary launch point (for boulders) */ +}; + +struct trap { + struct trap *ntrap; + xchar tx,ty; + d_level dst; /* destination for portals */ + coord launch; + Bitfield(ttyp,5); + Bitfield(tseen,1); + Bitfield(once,1); + Bitfield(madeby_u,1); /* So monsters may take offence when you trap + them. Recognizing who made the trap isn't + completely unreasonable, everybody has + their own style. This flag is also needed + when you untrap a monster. It would be too + easy to make a monster peaceful if you could + set a trap for it and then untrap it. */ + union vlaunchinfo vl; +#define launch_otyp vl.v_launch_otyp +#define launch2 vl.v_launch2 +}; + +extern struct trap *ftrap; +#define newtrap() (struct trap *) alloc(sizeof(struct trap)) +#define dealloc_trap(trap) free((genericptr_t) (trap)) + +/* reasons for statue animation */ +#define ANIMATE_NORMAL 0 +#define ANIMATE_SHATTER 1 +#define ANIMATE_SPELL 2 + +/* reasons for animate_statue's failure */ +#define AS_OK 0 /* didn't fail */ +#define AS_NO_MON 1 /* makemon failed */ +#define AS_MON_IS_UNIQUE 2 /* statue monster is unique */ + +/* Note: if adding/removing a trap, adjust trap_engravings[] in mklev.c */ + +/* unconditional traps */ +#define NO_TRAP 0 +#define ARROW_TRAP 1 +#define DART_TRAP 2 +#define ROCKTRAP 3 +#define SQKY_BOARD 4 +#define BEAR_TRAP 5 +#define LANDMINE 6 +#define ROLLING_BOULDER_TRAP 7 +#define SLP_GAS_TRAP 8 +#define RUST_TRAP 9 +#define FIRE_TRAP 10 +#define PIT 11 +#define SPIKED_PIT 12 +#define HOLE 13 +#define TRAPDOOR 14 +#define TELEP_TRAP 15 +#define LEVEL_TELEP 16 +#define MAGIC_PORTAL 17 +#define WEB 18 +#define STATUE_TRAP 19 +#define MAGIC_TRAP 20 +#define ANTI_MAGIC 21 +#define POLY_TRAP 22 +#define TRAPNUM 23 + +#endif /* TRAP_H */