This class adds extra editor-specific functionality to a normal gamemap. More...
#include <editor_map.hpp>
Public Member Functions | |
editor_map () | |
Empty map constructor. More... | |
editor_map (const std::string &data) | |
Create an editor map from a map data string. More... | |
editor_map (std::size_t width, std::size_t height, const t_translation::terrain_code &filler) | |
Create an editor map with the given dimensions and filler terrain. More... | |
editor_map (const gamemap &map) | |
Create an editor_map by upgrading an existing gamemap. More... | |
~editor_map () | |
editor_map destructor More... | |
void | sanity_check () |
Debugging aid. More... | |
std::set< map_location > | get_contiguous_terrain_tiles (const map_location &start) const |
Get a contiguous set of tiles having the same terrain as the starting location. More... | |
std::set< map_location > | set_starting_position_labels (display &disp) |
Set labels for staring positions in the given display object. More... | |
bool | in_selection (const map_location &loc) const |
bool | add_to_selection (const map_location &loc) |
Add a location to the selection. More... | |
bool | remove_from_selection (const map_location &loc) |
Remove a location to the selection. More... | |
bool | set_selection (const std::set< map_location > &area) |
Select the given area. More... | |
const std::set< map_location > & | selection () const |
Return the selection set. More... | |
void | clear_selection () |
Clear the selection. More... | |
void | invert_selection () |
Invert the selection, i.e. More... | |
void | select_all () |
Select all map hexes. More... | |
bool | everything_selected () const |
void | resize (int width, int height, int x_offset, int y_offset, const t_translation::terrain_code &filler=t_translation::NONE_TERRAIN) |
Resize the map. More... | |
gamemap | mask_to (const gamemap &target) const |
A sort-of diff operation returning a mask that, when applied to the current editor_map, will transform it into the target map. More... | |
bool | same_size_as (const gamemap &other) const |
A precondition to several map operations. More... | |
Public Member Functions inherited from gamemap | |
const t_translation::ter_list & | underlying_mvt_terrain (const map_location &loc) const |
const t_translation::ter_list & | underlying_def_terrain (const map_location &loc) const |
const t_translation::ter_list & | underlying_union_terrain (const map_location &loc) const |
std::string | get_terrain_string (const map_location &loc) const |
std::string | get_terrain_editor_string (const map_location &loc) const |
bool | is_village (const map_location &loc) const |
int | gives_healing (const map_location &loc) const |
bool | is_castle (const map_location &loc) const |
bool | is_keep (const map_location &loc) const |
const t_translation::ter_list & | underlying_mvt_terrain (const t_translation::terrain_code &terrain) const |
const t_translation::ter_list & | underlying_def_terrain (const t_translation::terrain_code &terrain) const |
const t_translation::ter_list & | underlying_union_terrain (const t_translation::terrain_code &terrain) const |
std::string | get_terrain_string (const t_translation::terrain_code &terrain) const |
std::string | get_terrain_editor_string (const t_translation::terrain_code &terrain) const |
std::string | get_underlying_terrain_string (const t_translation::terrain_code &terrain) const |
bool | is_village (const t_translation::terrain_code &terrain) const |
int | gives_healing (const t_translation::terrain_code &terrain) const |
bool | is_castle (const t_translation::terrain_code &terrain) const |
bool | is_keep (const t_translation::terrain_code &terrain) const |
const terrain_type & | get_terrain_info (const t_translation::terrain_code &terrain) const |
const std::shared_ptr< terrain_type_data > & | tdata () const |
gamemap (const std::string &data) | |
Loads a map. More... | |
void | read (const std::string &data, const bool allow_invalid=true) |
std::string | write () const |
const t_translation::terrain_code | operator[] (const map_location &loc) const |
void | set_terrain (const map_location &loc, const terrain_code &terrain, const terrain_type_data::merge_mode mode=terrain_type_data::BOTH, bool replace_if_failed=false) override |
Clobbers over the terrain at location 'loc', with the given terrain. More... | |
void | write_terrain (const map_location &loc, config &cfg) const |
Writes the terrain at loc to cfg. More... | |
const std::vector< map_location > & | villages () const |
Return a list of the locations of villages on the map. More... | |
const terrain_type & | get_terrain_info (const map_location &loc) const |
Shortcut to get_terrain_info(get_terrain(loc)). More... | |
const t_translation::ter_list & | get_terrain_list () const |
Gets the list of terrains. More... | |
Public Member Functions inherited from gamemap_base | |
virtual | ~gamemap_base () |
std::string | to_string () const |
int | w () const |
Effective map width. More... | |
int | h () const |
Effective map height. More... | |
int | border_size () const |
Size of the map border. More... | |
int | total_width () const |
Real width of the map, including borders. More... | |
int | total_height () const |
Real height of the map, including borders. More... | |
bool | empty () const |
Tell if the map is of 0 size. More... | |
bool | on_board (const map_location &loc) const |
Tell if a location is on the map. More... | |
bool | on_board_with_border (const map_location &loc) const |
terrain_code | get_terrain (const map_location &loc) const |
Looks up terrain at a particular location. More... | |
location_map & | special_locations () |
const location_map & | special_locations () const |
const std::vector< map_location > | starting_positions () const |
void | set_special_location (const std::string &id, const map_location &loc) |
map_location | special_location (const std::string &id) const |
void | set_starting_position (int side, const map_location &loc) |
Manipulate starting positions of the different sides. More... | |
map_location | starting_position (int side) const |
int | num_valid_starting_positions () const |
Counts the number of sides that have valid starting positions on this map. More... | |
int | is_starting_position (const map_location &loc) const |
returns the side number of the side starting at position loc, 0 if no such side exists. More... | |
const std::string * | is_special_location (const map_location &loc) const |
returns the name of the special location at position loc, null if no such location exists. More... | |
std::vector< map_location > | parse_location_range (const std::string &xvals, const std::string &yvals, bool with_border=false) const |
Parses ranges of locations into a vector of locations, using this map's dimensions as bounds. More... | |
void | overlay (const gamemap_base &m, map_location loc, const std::vector< overlay_rule > &rules=std::vector< overlay_rule >(), bool is_odd=false, bool ignore_special_locations=false) |
Overlays another map onto this one at the given position. More... | |
template<typename F > | |
void | for_each_loc (const F &f) const |
template<typename F > | |
void | for_each_walkable_loc (const F &f) const |
Static Public Member Functions | |
static editor_map | from_string (const std::string &data) |
Wrapper around editor_map(cfg, data) that catches possible exceptions and wraps them in a editor_map_load_exception. More... | |
Protected Member Functions | |
void | expand_right (int count, const t_translation::terrain_code &filler) |
void | expand_left (int count, const t_translation::terrain_code &filler) |
void | expand_top (int count, const t_translation::terrain_code &filler) |
void | expand_bottom (int count, const t_translation::terrain_code &filler) |
void | shrink_right (int count) |
void | shrink_left (int count) |
void | shrink_top (int count) |
void | shrink_bottom (int count) |
Protected Member Functions inherited from gamemap_base | |
gamemap_base ()=default | |
gamemap_base (int w, int h, terrain_code default_ter=terrain_code()) | |
terrain_map & | tiles () |
const terrain_map & | tiles () const |
Protected Attributes | |
std::set< map_location > | selection_ |
The selected hexes. More... | |
Protected Attributes inherited from gamemap | |
std::vector< map_location > | villages_ |
Additional Inherited Members | |
Public Types inherited from gamemap_base | |
using | terrain_code = t_translation::terrain_code |
using | terrain_map = t_translation::ter_map |
using | location_map = t_translation::starting_positions |
Static Public Attributes inherited from gamemap_base | |
static const int | default_border = 1 |
The default border style for a map. More... | |
static const int | MAX_PLAYERS = 9 |
Maximum number of players supported. More... | |
This class adds extra editor-specific functionality to a normal gamemap.
Definition at line 69 of file editor_map.hpp.
editor::editor_map::editor_map | ( | ) |
editor::editor_map::editor_map | ( | const std::string & | data | ) |
Create an editor map from a map data string.
Definition at line 48 of file editor_map.cpp.
References sanity_check().
editor::editor_map::editor_map | ( | std::size_t | width, |
std::size_t | height, | ||
const t_translation::terrain_code & | filler | ||
) |
Create an editor map with the given dimensions and filler terrain.
Definition at line 68 of file editor_map.cpp.
References sanity_check().
|
explicit |
Create an editor_map by upgrading an existing gamemap.
The map data is copied. Marked "explicit" to avoid potentially harmful automatic conversions.
Definition at line 75 of file editor_map.cpp.
References sanity_check().
editor::editor_map::~editor_map | ( | ) |
editor_map destructor
Definition at line 82 of file editor_map.cpp.
bool editor::editor_map::add_to_selection | ( | const map_location & | loc | ) |
Add a location to the selection.
The location should be valid (i.e. on the map)
Definition at line 163 of file editor_map.cpp.
References gamemap_base::on_board_with_border(), and selection_.
Referenced by editor::editor_action_select::perform_without_undo(), and set_selection().
void editor::editor_map::clear_selection | ( | ) |
Clear the selection.
Definition at line 183 of file editor_map.cpp.
References selection_.
Referenced by editor::editor_action_select_none::perform_without_undo(), select_all(), and set_selection().
bool editor::editor_map::everything_selected | ( | ) | const |
Definition at line 207 of file editor_map.cpp.
References LOG_ED, selection_, gamemap_base::total_height(), and gamemap_base::total_width().
Referenced by editor::editor_controller::can_execute_command(), and editor::editor_controller::get_action_state().
|
protected |
Definition at line 349 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::NONE_TERRAIN, gamemap_base::tiles(), and gamemap_base::w().
Referenced by resize().
|
protected |
Definition at line 317 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::NONE_TERRAIN, gamemap_base::tiles(), and gamemap_base::w().
Referenced by resize().
|
protected |
Definition at line 301 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::NONE_TERRAIN, gamemap_base::tiles(), and gamemap_base::w().
Referenced by resize().
|
protected |
Definition at line 333 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::NONE_TERRAIN, gamemap_base::tiles(), and gamemap_base::w().
Referenced by resize().
|
static |
Wrapper around editor_map(cfg, data) that catches possible exceptions and wraps them in a editor_map_load_exception.
Definition at line 55 of file editor_map.cpp.
References data, e, editor_map(), and editor::wrap_exc().
Referenced by editor::map_context::load_scenario(), and editor::map_context::map_context().
std::set< map_location > editor::editor_map::get_contiguous_terrain_tiles | ( | const map_location & | start | ) | const |
Get a contiguous set of tiles having the same terrain as the starting location.
Useful for flood fill or magic wand selection
Definition at line 115 of file editor_map.cpp.
References get_adjacent_tiles(), gamemap_base::get_terrain(), gamemap_base::on_board_with_border(), and editor::start().
Referenced by editor::mouse_action_fill::affected_hexes(), editor::mouse_action_select::affected_hexes(), and editor::editor_action_fill::perform_without_undo().
bool editor::editor_map::in_selection | ( | const map_location & | loc | ) | const |
Definition at line 158 of file editor_map.cpp.
References selection_.
Referenced by editor::editor_action_deselect::perform().
void editor::editor_map::invert_selection | ( | ) |
Invert the selection, i.e.
select all the map hexes that were not selected.
Definition at line 188 of file editor_map.cpp.
References gamemap_base::h(), selection_, and gamemap_base::w().
Referenced by editor::editor_action_select_inverse::perform_without_undo(), and select_all().
A sort-of diff operation returning a mask that, when applied to the current editor_map, will transform it into the target map.
Definition at line 278 of file editor_map.cpp.
References _(), gamemap_base::border_size(), t_translation::FOGGED, gamemap_base::get_terrain(), gamemap_base::h(), gamemap::set_terrain(), gamemap_base::w(), map_location::x, and map_location::y.
bool editor::editor_map::remove_from_selection | ( | const map_location & | loc | ) |
Remove a location to the selection.
The location does not actually have to be selected
Definition at line 178 of file editor_map.cpp.
References selection_.
Referenced by editor::editor_action_deselect::perform_without_undo().
void editor::editor_map::resize | ( | int | width, |
int | height, | ||
int | x_offset, | ||
int | y_offset, | ||
const t_translation::terrain_code & | filler = t_translation::NONE_TERRAIN |
||
) |
Resize the map.
If the filler is NONE, the border terrain will be copied when expanding, otherwise the filler terrain will be inserted there
Definition at line 213 of file editor_map.cpp.
References map_location::add(), expand_bottom(), expand_left(), expand_right(), expand_top(), gamemap_base::for_each_loc(), gamemap_base::h(), gamemap::is_village(), sanity_check(), shrink_bottom(), shrink_left(), shrink_right(), shrink_top(), gamemap_base::special_locations(), gamemap::villages_, and gamemap_base::w().
bool editor::editor_map::same_size_as | ( | const gamemap & | other | ) | const |
A precondition to several map operations.
Definition at line 295 of file editor_map.cpp.
References gamemap_base::h(), and gamemap_base::w().
void editor::editor_map::sanity_check | ( | ) |
Debugging aid.
Check if the widths and heights correspond to the actual map data sizes.
Definition at line 86 of file editor_map.cpp.
References gamemap_base::border_size(), ERR_ED, gamemap_base::h(), t_translation::ter_map::h, gamemap_base::on_board_with_border(), selection_, gamemap_base::tiles(), gamemap_base::total_height(), gamemap_base::total_width(), gamemap_base::w(), and t_translation::ter_map::w.
Referenced by editor_map(), and resize().
void editor::editor_map::select_all | ( | ) |
Select all map hexes.
Definition at line 201 of file editor_map.cpp.
References clear_selection(), and invert_selection().
Referenced by editor::editor_action_select_all::perform_without_undo().
|
inline |
Return the selection set.
Definition at line 148 of file editor_map.hpp.
References selection_.
Referenced by editor::editor_controller::add_area(), editor::editor_controller::can_execute_command(), editor::editor_controller::export_selection_coords(), editor::editor_controller::get_action_state(), and editor::editor_controller::save_area().
bool editor::editor_map::set_selection | ( | const std::set< map_location > & | area | ) |
Select the given area.
area | to select. |
Definition at line 168 of file editor_map.cpp.
References add_to_selection(), and clear_selection().
Referenced by editor::map_context::select_area().
std::set< map_location > editor::editor_map::set_starting_position_labels | ( | display & | disp | ) |
Set labels for staring positions in the given display object.
Definition at line 136 of file editor_map.cpp.
References c, label, display::labels(), map_labels::set_label(), gamemap_base::special_locations(), and VGETTEXT.
Referenced by editor::map_context::set_starting_position_labels().
|
protected |
Definition at line 407 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::ter_map::h, gamemap_base::tiles(), gamemap_base::w(), and t_translation::ter_map::w.
Referenced by resize().
|
protected |
Definition at line 379 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::ter_map::h, gamemap_base::tiles(), gamemap_base::w(), and t_translation::ter_map::w.
Referenced by resize().
|
protected |
Definition at line 365 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::ter_map::h, gamemap_base::tiles(), gamemap_base::w(), and t_translation::ter_map::w.
Referenced by resize().
|
protected |
Definition at line 393 of file editor_map.cpp.
References t_translation::ter_map::get(), gamemap_base::h(), t_translation::ter_map::h, gamemap_base::tiles(), gamemap_base::w(), and t_translation::ter_map::w.
Referenced by resize().
|
protected |
The selected hexes.
Definition at line 203 of file editor_map.hpp.
Referenced by add_to_selection(), clear_selection(), everything_selected(), in_selection(), invert_selection(), remove_from_selection(), sanity_check(), and selection().