#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 |
1.5.6