5 #define hex_spelling_any(CREATURE_PTR) \
6 (((CREATURE_PTR)->realm1 == REALM_HEX) && ((CREATURE_PTR)->magic_num1[0]))
7 #define CASTING_HEX_FLAGS(P_PTR) ((P_PTR)->magic_num1[0])
8 #define CASTING_HEX_NUM(P_PTR) ((P_PTR)->magic_num2[0])
9 #define HEX_REVENGE_POWER(P_PTR) ((P_PTR)->magic_num1[2])
10 #define HEX_REVENGE_TURN(P_PTR) ((P_PTR)->magic_num2[2])
11 #define HEX_REVENGE_TYPE(P_PTR) ((P_PTR)->magic_num2[1])
15 #define HEX_CURE_LIGHT 1
16 #define HEX_DEMON_AURA 2
17 #define HEX_STINKING_MIST 3
18 #define HEX_XTRA_MIGHT 4
19 #define HEX_CURSE_WEAPON 5
20 #define HEX_DETECT_EVIL 6
21 #define HEX_PATIENCE 7
23 #define HEX_ICE_ARMOR 8
24 #define HEX_CURE_SERIOUS 9
26 #define HEX_VAMP_MIST 11
27 #define HEX_RUNESWORD 12
28 #define HEX_CONFUSION 13
29 #define HEX_BUILDING 14
30 #define HEX_ANTI_TELE 15
32 #define HEX_SHOCK_CLOAK 16
33 #define HEX_CURE_CRITICAL 17
34 #define HEX_RECHARGE 18
35 #define HEX_RAISE_DEAD 19
36 #define HEX_CURSE_ARMOUR 20
37 #define HEX_SHADOW_CLOAK 21
38 #define HEX_PAIN_TO_MANA 22
39 #define HEX_EYE_FOR_EYE 23
41 #define HEX_ANTI_MULTI 24
42 #define HEX_RESTORE 25
43 #define HEX_DRAIN_CURSE 26
44 #define HEX_VAMP_BLADE 27
45 #define HEX_STUN_MONSTERS 28
46 #define HEX_SHADOW_MOVE 29
47 #define HEX_ANTI_MAGIC 30
48 #define HEX_REVENGE 31
50 extern bool stop_hex_spell_all(player_type *caster_ptr);
51 extern bool stop_hex_spell(player_type *caster_ptr);
52 extern void check_hex(player_type *caster_ptr);
53 extern bool hex_spell_fully(player_type *caster_ptr);
54 extern void revenge_spell(player_type *caster_ptr);
55 extern void revenge_store(player_type *caster_ptr, HIT_POINT dam);
56 extern bool teleport_barrier(player_type *caster_ptr, MONSTER_IDX m_idx);
57 extern bool magic_barrier(player_type *target_ptr, MONSTER_IDX m_idx);
58 extern bool multiply_barrier(player_type *caster_ptr, MONSTER_IDX m_idx);
59 extern concptr do_hex_spell(player_type *caster_ptr, SPELL_IDX spell, BIT_FLAGS mode);
60 extern bool hex_spelling(player_type *caster_type, int hex);