The Battle for Wesnoth  1.15.0+dev
Macros | Functions | Variables
location.cpp File Reference

Routines related to game-maps, terrain, locations, directions. More...

#include <cassert>
#include "map/location.hpp"
#include "config.hpp"
#include "formula/string_utils.hpp"
#include "gettext.hpp"
#include "log.hpp"
#include "utils/math.hpp"
#include <boost/functional/hash_fwd.hpp>
Include dependency graph for location.cpp:

Go to the source code of this file.

Macros

#define ERR_CF   LOG_STREAM(err, log_config)
 

Functions

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::size_t hash_value (const map_location &a)
 
static bool is_vertically_higher_than (const map_location &m1, const map_location &m2)
 
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...
 
static map_location read_locations_helper (const std::string &xi, const std::string &yi)
 
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...
 
void get_adjacent_tiles (const map_location &a, map_location *res)
 Function which, given a location, will place all adjacent locations in res. More...
 
bool tiles_adjacent (const map_location &a, const map_location &b)
 Function which tells if two locations are adjacent. 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...
 

Variables

static lg::log_domain log_config ("config")
 

Detailed Description

Routines related to game-maps, terrain, locations, directions.

etc.

Definition in file location.cpp.

Macro Definition Documentation

◆ ERR_CF

#define ERR_CF   LOG_STREAM(err, log_config)

Definition at line 33 of file location.cpp.

Referenced by map_location::map_location(), and map_location::matches_range().

Function Documentation

◆ distance_between()

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

◆ get_adjacent_tiles()

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 517 of file location.cpp.

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

Referenced by pathfind::a_star_search(), unit::ability_active(), 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::gamestate::DEFINE_WFL_FUNCTION(), wfl::builtins::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(), pathfind::find_routes(), ai::default_ai_context_impl::find_targets(), pathfind::find_vacant_tile(), unit_filter::first_match_on_map(), flood_name(), default_map_generator_job::generate_river_internal(), ai::keeps_cache::get(), unit::get_abilities(), unit::get_ability_bool(), events::mouse_handler::get_adj_enemies(), editor::editor_map::get_contiguous_terrain_tiles(), display::get_fog_shroud_images(), tod_manager::get_illuminated_time_of_day(), ai::formula_ai::get_keeps(), display::get_terrain_images(), get_tiles_radius(), 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(), ai::formula_ai::shortest_path_calculator(), events::mouse_handler::show_attack_options(), attack_type::special_active(), display_context::unit_can_move(), unit_display::unit_mover::wait_for_anims(), and display_context::would_be_discovered().

◆ hash_value()

std::size_t hash_value ( const map_location a)

Definition at line 58 of file location.cpp.

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

◆ is_vertically_higher_than()

static bool is_vertically_higher_than ( const map_location m1,
const map_location m2 
)
static

◆ operator<<() [1/2]

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

Dumps a position on a stream, for debug purposes.

Definition at line 35 of file location.cpp.

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

◆ operator<<() [2/2]

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 39 of file location.cpp.

References i, and s.

◆ 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 485 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().

◆ read_locations_helper()

static map_location read_locations_helper ( const std::string &  xi,
const std::string &  yi 
)
static

Definition at line 480 of file location.cpp.

References map_location::map_location().

Referenced by read_locations().

◆ 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 441 of file location.cpp.

References i, map_location::map_location(), map_location::x, and map_location::y.

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 497 of file location.cpp.

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

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

Variable Documentation

◆ log_config

lg::log_domain log_config("config")
static