1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
/*
* File: spl-cast.h
* Summary: Spell casting functions.
* Written by: Linley Henzell
*
* Modified for Crawl Reference by $Author$ on $Date$
*
* Change History (most recent first):
*
* <1> -/--/-- LRH Created
*/
#ifndef SPL_CAST_H
#define SPL_CAST_H
#include "enum.h"
enum spflag_type
{
SPFLAG_NONE = 0x0000,
SPFLAG_DIR_OR_TARGET = 0x0001, // use DIR_NONE targeting
SPFLAG_TARGET = 0x0002, // use DIR_TARGET targeting
SPFLAG_GRID = 0x0004, // use DIR_GRID targeting
SPFLAG_DIR = 0x0008, // use DIR_DIR targeting
SPFLAG_TARGETING_MASK = 0x000f, // used to test for targeting
SPFLAG_HELPFUL = 0x0010, // TARG_FRIENDS used
SPFLAG_NEUTRAL = 0x0020, // TARG_ANY used
SPFLAG_NOT_SELF = 0x0040, // aborts on isMe
SPFLAG_UNHOLY = 0x0080, // counts at "unholy"
SPFLAG_MAPPING = 0x0100, // a mapping spell of some kind
SPFLAG_ESCAPE = 0x0200, // useful for running away
SPFLAG_RECOVERY = 0x0400, // healing or recovery spell
SPFLAG_AREA = 0x0800 // area affect
};
enum spret_type
{
SPRET_ABORT = 0, // should be left as 0
SPRET_FAIL,
SPRET_SUCCESS
};
int list_spells(bool toggle_with_I = true);
int spell_fail( spell_type spell );
int calc_spell_power(spell_type spell, bool apply_intel,
bool fail_rate_chk = false );
int spell_enhancement( unsigned int typeflags );
// last updaetd 12may2000 {dlb}
/* ***********************************************************************
* called from: it_use3 - spell
* *********************************************************************** */
void exercise_spell( spell_type spell_ex, bool spc, bool divide );
// last updaetd 12may2000 {dlb}
/* ***********************************************************************
* called from: acr
* *********************************************************************** */
bool cast_a_spell( void );
bool maybe_identify_staff( item_def &item, spell_type spell = SPELL_NO_SPELL );
void inspect_spells();
// last updaetd 12may2000 {dlb}
/* ***********************************************************************
* called from: ability - debug - it_use3 - spell
* *********************************************************************** */
spret_type your_spells(spell_type spell, int powc = 0, bool allow_fail = true);
// last updated 12may2000 {dlb}
/* ***********************************************************************
* called from: acr - decks - fight - it_use2 - it_use3 - item_use - items -
* misc - mstuff2 - religion - spell - spl-book - spells4
* *********************************************************************** */
void miscast_effect(unsigned int sp_type, int mag_pow, int mag_fail,
int force_effect, const char *cause = NULL);
const char* failure_rate_to_string( int fail );
int spell_power_colour(spell_type spell);
int spell_power_bars(spell_type spell);
std::string spell_power_string(spell_type spell);
const char* spell_hunger_string( spell_type spell );
#endif
|