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
91
92
93
94
95
96
97
98
99
100
101
|
/*
* File: effects.h
* Summary: Misc stuff.
* Written by: Linley Henzell
*/
#ifndef EFFECTS_H
#define EFFECTS_H
struct bolt;
class monsters;
struct item_def;
void banished(dungeon_feature_type gate_type, const std::string &who = "");
bool forget_spell(void);
bool lose_stat(unsigned char which_stat, unsigned char stat_loss,
bool force = false, const std::string cause = "",
bool see_source = true);
bool lose_stat(unsigned char which_stat, unsigned char stat_loss,
bool force = false, const char* cause = NULL,
bool see_source = true);
bool lose_stat(unsigned char which_stat, unsigned char stat_loss,
const monsters* cause, bool force = false);
bool lose_stat(unsigned char which_stat, unsigned char stat_loss,
const item_def &cause, bool removed, bool force = false);
int mushroom_prob(item_def & corpse);
bool mushroom_spawn_message(int seen_targets, int seen_corpses);
int spawn_corpse_mushrooms(item_def &corpse,
int target_count,
int & seen_targets,
beh_type toadstool_behavior = BEH_HOSTILE,
bool distance_as_time = false);
struct mgen_data;
int place_ring(std::vector<coord_def>& ring_points,
const coord_def& origin,
mgen_data prototype,
int n_arcs,
int arc_occupancy,
int& seen_count);
class los_def;
// Collect lists of points that are within LOS (under the given losgrid),
// unoccupied, and not solid (walls/statues).
void collect_radius_points(std::vector<std::vector<coord_def> > &radius_points,
const coord_def &origin, const los_def &los);
void random_uselessness(int scroll_slot = -1);
bool acquirement(object_class_type force_class, int agent,
bool quiet = false, int *item_index = NULL,
bool debug = false);
int acquirement_create_item(object_class_type class_wanted,
int agent, bool quiet,
const coord_def &pos, bool debug = false);
bool recharge_wand(const int item_slot = -1);
void direct_effect(monsters *src, spell_type spl, bolt &pbolt, actor *defender);
void yell(bool force = false);
int holy_word(int pow, int caster, const coord_def& where, bool silent = false,
actor *attacker = NULL);
int holy_word_player(int pow, int caster, actor *attacker = NULL);
int holy_word_monsters(coord_def where, int pow, int caster,
actor *attacker = NULL);
int torment(int caster, const coord_def& where);
int torment_player(int pow, int caster);
int torment_monsters(coord_def where, int pow, int caster,
actor *attacker = NULL);
void immolation(int pow, int caster, coord_def where, bool known = false,
actor *attacker = NULL);
void conduct_electricity(coord_def where, actor *attacker);
void cleansing_flame(int pow, int caster, coord_def where,
actor *attacker = NULL);
void change_labyrinth(bool msg = false);
bool forget_inventory(bool quiet = false);
bool vitrify_area(int radius);
void update_corpses(double elapsedTime);
void update_level(double elapsedTime);
void handle_time();
void recharge_rods(long aut, bool floor_only);
#endif
|