#include "AppHdr.h"
#include "mon-abil.h"
#include "externs.h"
#include "arena.h"
#include "beam.h"
#include "colour.h"
#include "coordit.h"
#include "directn.h"
#include "fprop.h"
#include "ghost.h"
#include "libutil.h"
#include "misc.h"
#include "mon-act.h"
#include "mon-behv.h"
#include "mon-cast.h"
#include "mon-iter.h"
#include "mon-place.h"
#include "terrain.h"
#include "mgen_data.h"
#include "coord.h"
#include "cloud.h"
#include "mon-speak.h"
#include "mon-stuff.h"
#include "mon-util.h"
#include "options.h"
#include "random.h"
#include "religion.h"
#include "spl-miscast.h"
#include "spl-util.h"
#include "state.h"
#include "stuff.h"
#include "env.h"
#include "areas.h"
#include "view.h"
#include "shout.h"
#include "viewchar.h"
#include <algorithm>
#include <queue>
#include <map>
#include <set>
Classes | |
struct | position_node |
struct | path_less |
struct | simple_connect< cost_T, est_T > |
struct | coord_wrapper |
struct | tentacle_attack_constraints |
struct | tentacle_connect_constraints |
struct | target_position |
struct | target_monster |
struct | multi_target |
struct | complicated_sight_check |
Defines | |
#define | DISCONNECT_DIST (INT_MAX - 1000) |
Functions | |
template<typename valid_T, typename expand_T> | |
void | search_astar (position_node &start, valid_T &valid_target, expand_T &expand_node, std::set< position_node > &visited, std::vector< std::set< position_node >::iterator > &candidates) |
template<typename valid_T, typename expand_T> | |
void | search_astar (const coord_def &start, valid_T &valid_target, expand_T &expand_node, std::set< position_node > &visited, std::vector< std::set< position_node >::iterator > &candidates) |
template<typename valid_T, typename cost_T, typename est_T> | |
void | search_astar (const coord_def &start, valid_T &valid_target, cost_T &connection_cost, est_T &cost_estimate, std::set< position_node > &visited, std::vector< std::set< position_node >::iterator > &candidates, int connect_mode=8) |
template<typename valid_T, typename connect_T> | |
void | search_dungeon (const coord_def &start, valid_T &valid_target, connect_T &connecting_square, std::set< position_node > &visited, std::vector< std::set< position_node >::iterator > &candidates, bool exhaustive=true, int connect_mode=8) |
void | draconian_change_colour (monster *drac) |
bool | ugly_thing_mutate (monster *ugly, bool proximity) |
bool | slime_creature_mutate (monster *slime) |
bool | tentacle_pathfind (monster *tentacle, tentacle_attack_constraints &attack_constraints, coord_def &new_position, std::vector< coord_def > &target_positions, int total_length) |
bool | try_tentacle_connect (const coord_def &new_pos, const coord_def &base_position, int tentacle_idx, int base_idx, tentacle_connect_constraints &connect_costs, monster_type connect_type) |
void | collect_tentacles (int headnum, std::vector< monster_iterator > &tentacles) |
void | purge_connectors (int tentacle_idx, bool(*valid_mons)(monster *)) |
template<typename T> | |
void | collect_foe_positions (monster *mons, std::vector< coord_def > &foe_positions, T &sight_check) |
bool | valid_kraken_connection (monster *mons) |
bool | valid_kraken_segment (monster *mons) |
bool | valid_demonic_connection (monster *mons) |
int | collect_connection_data (monster *start_monster, bool(*valid_segment_type)(monster *), std::map< coord_def, std::set< int > > &connection_data, coord_def &retract_pos) |
void | move_demon_tentacle (monster *tentacle) |
void | move_kraken_tentacles (monster *kraken) |
bool | mon_special_ability (monster *mons, bolt &beem) |
void | mon_nearby_ability (monster *mons) |
void | ballisto_on_move (monster *mons, const coord_def &position) |
void | activate_ballistomycetes (monster *mons, const coord_def &origin, bool player_kill) |
Variables | |
const int | MAX_KRAKEN_TENTACLE_DIST = 12 |
#define DISCONNECT_DIST (INT_MAX - 1000) |
int collect_connection_data | ( | monster * | start_monster, | |
bool(*)(monster *) | valid_segment_type, | |||
std::map< coord_def, std::set< int > > & | connection_data, | |||
coord_def & | retract_pos | |||
) |
void collect_foe_positions | ( | monster * | mons, | |
std::vector< coord_def > & | foe_positions, | |||
T & | sight_check | |||
) | [inline] |
void collect_tentacles | ( | int | headnum, | |
std::vector< monster_iterator > & | tentacles | |||
) |
void draconian_change_colour | ( | monster * | drac | ) |
void mon_nearby_ability | ( | monster * | mons | ) |
void move_demon_tentacle | ( | monster * | tentacle | ) |
void move_kraken_tentacles | ( | monster * | kraken | ) |
void purge_connectors | ( | int | tentacle_idx, | |
bool(*)(monster *) | valid_mons | |||
) |
void search_astar | ( | const coord_def & | start, | |
valid_T & | valid_target, | |||
cost_T & | connection_cost, | |||
est_T & | cost_estimate, | |||
std::set< position_node > & | visited, | |||
std::vector< std::set< position_node >::iterator > & | candidates, | |||
int | connect_mode = 8 | |||
) | [inline] |
void search_astar | ( | const coord_def & | start, | |
valid_T & | valid_target, | |||
expand_T & | expand_node, | |||
std::set< position_node > & | visited, | |||
std::vector< std::set< position_node >::iterator > & | candidates | |||
) | [inline] |
void search_astar | ( | position_node & | start, | |
valid_T & | valid_target, | |||
expand_T & | expand_node, | |||
std::set< position_node > & | visited, | |||
std::vector< std::set< position_node >::iterator > & | candidates | |||
) | [inline] |
void search_dungeon | ( | const coord_def & | start, | |
valid_T & | valid_target, | |||
connect_T & | connecting_square, | |||
std::set< position_node > & | visited, | |||
std::vector< std::set< position_node >::iterator > & | candidates, | |||
bool | exhaustive = true , |
|||
int | connect_mode = 8 | |||
) | [inline] |
bool slime_creature_mutate | ( | monster * | slime | ) |
bool tentacle_pathfind | ( | monster * | tentacle, | |
tentacle_attack_constraints & | attack_constraints, | |||
coord_def & | new_position, | |||
std::vector< coord_def > & | target_positions, | |||
int | total_length | |||
) |
bool try_tentacle_connect | ( | const coord_def & | new_pos, | |
const coord_def & | base_position, | |||
int | tentacle_idx, | |||
int | base_idx, | |||
tentacle_connect_constraints & | connect_costs, | |||
monster_type | connect_type | |||
) |
bool ugly_thing_mutate | ( | monster * | ugly, | |
bool | proximity | |||
) |
bool valid_demonic_connection | ( | monster * | mons | ) |
bool valid_kraken_connection | ( | monster * | mons | ) |
bool valid_kraken_segment | ( | monster * | mons | ) |
const int MAX_KRAKEN_TENTACLE_DIST = 12 |