The Battle for Wesnoth  1.19.5+dev
Classes | Functions
location.hpp File Reference
#include <array>
#include <set>
#include <string>
#include <tuple>
#include <vector>
#include <utility>
Include dependency graph for location.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  wml_loc
 
struct  cubic_location
 Represents a map location in cubic hexagonal coordinates. More...
 
struct  map_location
 Encapsulates the map of the game. More...
 
struct  std::hash< map_location >
 

Functions

bool tiles_adjacent (const map_location &a, const map_location &b)
 Function which tells if two locations are adjacent. More...
 
void get_adjacent_tiles (const map_location &a, map_location *res)
 Function which, given a location, will place all adjacent locations in res. More...
 
std::array< map_location, 6 > get_adjacent_tiles (const map_location &center)
 Returns an array of the six hexes adjacent to center. More...
 
std::size_t distance_between (const map_location &a, const map_location &b)
 Function which gives the number of hexes between two tiles (i.e. More...
 
void write_location_range (const std::set< map_location > &locs, config &cfg)
 Write a set of locations into a config using ranges, adding keys x=x1,..,xn and y=y1a-y1b,..,yna-ynb. More...
 
void read_locations (const config &cfg, std::vector< map_location > &locs)
 Parse x,y keys of a config into a vector of locations. More...
 
void write_locations (const std::vector< map_location > &locs, config &cfg)
 Write a vector of locations into a config adding keys x=x1,x2,..,xn and y=y1,y2,..,yn. More...
 
std::ostream & operator<< (std::ostream &s, const map_location &l)
 Dumps a position on a stream, for debug purposes. More...
 
std::ostream & operator<< (std::ostream &s, const std::vector< map_location > &v)
 Dumps a vector of positions on a stream, for debug purposes. More...
 
std::ostream & operator<< (std::ostream &s, map_location::direction dir)
 Print a direction's string representation to stream. More...
 

Function Documentation

◆ distance_between()

std::size_t distance_between ( const map_location a,
const map_location b 
)

◆ get_adjacent_tiles() [1/2]

void get_adjacent_tiles ( const map_location a,
map_location res 
)

Function which, given a location, will place all adjacent locations in res.

res must point to an array of 6 location objects.

Definition at line 479 of file location.cpp.

References map_location::x, and map_location::y.

Referenced by pathfind::a_star_search(), unit::ability_active_impl(), ai::attack_analysis::analyze(), ai::ai_default_rca::aspect_attacks_base::analyze_targets(), backstab_check(), cave_map_generator::cave_map_generator_job::build_chamber(), actions::shroud_clearer::clear_dest(), actions::shroud_clearer::clear_loc(), wfl::attack_map_callable::collect_possible_attacks(), ai::default_ai_context_impl::count_free_hexes_in_castle(), events::mouse_handler::current_unit_attacks_from(), default_map_generator_job::default_generate_map(), wfl::builtins::DEFINE_WFL_FUNCTION(), wfl::gamestate::DEFINE_WFL_FUNCTION(), ai::ai_default_rca::aspect_attacks_base::do_attack_analysis(), ai::ai_default_rca::move_to_targets_phase::enemies_along_path(), pathfind::enemy_zoc(), ai::ai_default_rca::retreat_phase::evaluate(), unit_filter_impl::unit_filter_compound::fill(), pathfind::find_routes(), ai::default_ai_context_impl::find_targets(), pathfind::find_vacant_tile(), flood_name(), default_map_generator_job::generate_river_internal(), ai::keeps_cache::get(), unit::get_abilities(), unit::get_ability_bool(), unit::get_adj_ability_bool(), events::mouse_handler::get_adj_enemies(), get_adjacent_tiles(), editor::editor_map::get_contiguous_terrain_tiles(), display::get_fog_shroud_images(), tod_manager::get_illuminated_time_of_day(), ai::formula_ai::get_keeps(), game_display::get_reachmap_images(), display::get_terrain_images(), get_tiles_radius(), unit::halo_or_icon_abilities(), attack_type::has_ability_with_filter(), attack_type::has_weapon_ability(), lua_map_location::intf_get_adjacent_tiles(), terrain_filter::match_internal(), editor::mouse_action_item::move(), editor::mouse_action_unit::move(), ai::ai_default_rca::move_to_targets_phase::move_group(), cave_map_generator::cave_map_generator_job::place_castle(), place_village(), ai::readonly_context_impl::power_projection(), actions::undo::reset_adjacent(), ai::formula_ai::shortest_path_calculator(), events::mouse_handler::show_attack_options(), attack_type::special_active_impl(), display_context::unit_can_move(), unit_display::unit_mover::wait_for_anims(), attack_type::weapon_specials_impl_adj(), and display_context::would_be_discovered().

◆ get_adjacent_tiles() [2/2]

std::array<map_location, 6> get_adjacent_tiles ( const map_location center)

Returns an array of the six hexes adjacent to center.

Definition at line 500 of file location.cpp.

References get_adjacent_tiles().

◆ operator<<() [1/3]

std::ostream& operator<< ( std::ostream &  s,
const map_location l 
)

Dumps a position on a stream, for debug purposes.

Definition at line 36 of file location.cpp.

References s, map_location::wml_x(), and map_location::wml_y().

◆ operator<<() [2/3]

std::ostream& operator<< ( std::ostream &  s,
const std::vector< map_location > &  v 
)

Dumps a vector of positions on a stream, for debug purposes.

Definition at line 41 of file location.cpp.

References i, and s.

◆ operator<<() [3/3]

std::ostream& operator<< ( std::ostream &  s,
map_location::direction  dir 
)

Print a direction's string representation to stream.

Print a direction's string representation to stream.

Definition at line 50 of file location.cpp.

References s, and map_location::write_direction().

◆ read_locations()

void read_locations ( const config cfg,
std::vector< map_location > &  locs 
)

Parse x,y keys of a config into a vector of locations.

Throws bad_lexical_cast if it fails to parse.

Definition at line 447 of file location.cpp.

References read_locations_helper(), and utils::split().

Referenced by fix_rename_command(), actions::shroud_clearing_action::shroud_clearing_action(), soundsource::sourcespec::sourcespec(), and SYNCED_COMMAND_HANDLER_FUNCTION().

◆ tiles_adjacent()

bool tiles_adjacent ( const map_location a,
const map_location b 
)

◆ write_location_range()

void write_location_range ( const std::set< map_location > &  locs,
config cfg 
)

Write a set of locations into a config using ranges, adding keys x=x1,..,xn and y=y1a-y1b,..,yna-ynb.

Definition at line 403 of file location.cpp.

References i.

Referenced by tod_manager::to_config(), and team::write().

◆ write_locations()

void write_locations ( const std::vector< map_location > &  locs,
config cfg 
)

Write a vector of locations into a config adding keys x=x1,x2,..,xn and y=y1,y2,..,yn.

Definition at line 459 of file location.cpp.

References i.

Referenced by replay_helper::get_movement(), actions::shroud_clearing_action::write(), soundsource::sourcespec::write(), and soundsource::positional_source::write_config().