/* * File: effects.h * Summary: Misc stuff. * Written by: Linley Henzell */ #ifndef EFFECTS_H #define EFFECTS_H #include "env.h" #include "externs.h" struct bolt; class monsters; struct item_def; // last updated 12may2000 {dlb} /* *********************************************************************** * called from: ability - acr - beam - decks - fight - religion - spells * *********************************************************************** */ void banished(dungeon_feature_type gate_type, const std::string &who = ""); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: spells * *********************************************************************** */ bool forget_spell(void); // last updated 24may2000 {dlb} /* *********************************************************************** * called from: fight - it_use2 - it_use3 - items - religion - spells - * spells2 - spells4 * *********************************************************************** */ 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); // called from spells2 -cao 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, bool distance_as_time = false); struct mgen_data; int place_ring(std::vector & ring_points, coord_def & origin, mgen_data & prototype, int n_arcs, int arc_occupancy, int & seen_count); // Collect lists of points that are within LOS (under the given losgrid), // unoccupied, and not solid (walls/statues). void collect_radius_points(std::vector > &radius_points, coord_def & origin, env_show_grid & losgrid); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: item_use - spell - spells * *********************************************************************** */ void random_uselessness(int scroll_slot = -1); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: acr - decks - item_use - religion * *********************************************************************** */ bool acquirement(object_class_type force_class, int agent, bool quiet = false, int *item_index = NULL); int acquirement_create_item(object_class_type class_wanted, int agent, bool quiet, const coord_def &pos); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: item_use * *********************************************************************** */ bool recharge_wand(const int item_slot = -1); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: mstuff2 * *********************************************************************** */ void direct_effect(monsters *src, spell_type spl, bolt &pbolt, actor *defender); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: mstuff2 * *********************************************************************** */ void mons_direct_effect(struct bolt &pbolt, int i); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: acr * *********************************************************************** */ void yell(bool force = false); // last updated 24may2000 {dlb} /* *********************************************************************** * called from: item_use - spell * *********************************************************************** */ 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); // last updated 12may2000 {dlb} /* *********************************************************************** * called from: ability - decks - fight - it_use3 - item_use - mstuff2 - * spell * *********************************************************************** */ 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); // called from: debug 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(long time_delta); #endif