![]() |
Freeciv21
Develop your civilization from humble roots to a global empire
|
A layer when drawing the map. More...
#include <layer.h>
Inheritance diagram for freeciv::layer:
Collaboration diagram for freeciv::layer:Public Member Functions | |
| layer (struct tileset *ts, mapview_layer layer) | |
| Constructor. More... | |
| virtual | ~layer ()=default |
| Destructor. More... | |
| virtual std::vector< drawn_sprite > | fill_sprite_array (const tile *ptile, const tile_edge *pedge, const tile_corner *pcorner, const unit *punit) const |
| Returns the list of sprites drawn by this layer somewhere on the map. More... | |
| virtual void | load_sprites () |
| Loads all sprites that do not depend on the ruleset. More... | |
| virtual void | initialize_player (const player *player) |
| Initializes data specific to one player. More... | |
| virtual void | free_player (int player_id) |
| Frees data initialized by initialize_player. More... | |
| virtual void | initialize_city_style (const citystyle &style, int index) |
| Initializes data for a city style. More... | |
| virtual void | initialize_extra (const extra_type *extra, const QString &tag, extrastyle_id style) |
| Initializes extra-specific data. More... | |
| virtual void | initialize_terrain (const terrain *terrain) |
| Initializes terrain-specific data. More... | |
| virtual void | reset_ruleset () |
| Resets cached data that depends on the ruleset. More... | |
| mapview_layer | type () const |
Protected Member Functions | |
| struct tileset * | tileset () const |
| bool | do_draw_unit (const tile *ptile, const unit *punit) const |
| Whether a unit should be drawn. More... | |
| bool | solid_background (const tile *ptile, const unit *punit, const city *pcity) const |
| Whether a solid background should be drawn on a tile instead of its terrain. More... | |
| QPixmap * | load_sprite (const QStringList &possible_names, bool required=false, bool verbose=true) const |
| Shortcut to load a sprite from the tileset. More... | |
Private Attributes | |
| struct tileset * | m_ts |
| mapview_layer | m_layer |
|
inline |
|
virtualdefault |
Destructor.
Whether a unit should be drawn.
| ptile | The tile where to draw (can be null) |
| punit | The unit that should be drawn (can be null) |
Definition at line 27 of file layer.cpp.
Referenced by freeciv::layer_background::fill_sprite_array(), freeciv::layer_units::fill_sprite_array(), and solid_background().
|
inlinevirtual |
Returns the list of sprites drawn by this layer somewhere on the map.
Only one of ptile, pedge, or pcorner should be non-null.
Reimplemented in freeciv::layer_workertask, freeciv::layer_water, freeciv::layer_units, freeciv::layer_terrain, freeciv::layer_special, freeciv::layer_roads, freeciv::layer_overlays, freeciv::layer_infrawork, freeciv::layer_grid, freeciv::layer_goto, freeciv::layer_fog, freeciv::layer_editor, freeciv::layer_darkness, freeciv::layer_city_size, freeciv::layer_city, freeciv::layer_base_flags, and freeciv::layer_background.
Definition at line 172 of file layer.h.
Referenced by freeciv::tileset_debugger::set_tile().
|
inlinevirtual |
Frees data initialized by initialize_player.
Note that this takes the player ID and not a pointer to the player; the player may have never existed.
Reimplemented in freeciv::layer_grid, and freeciv::layer_background.
|
inlinevirtual |
Initializes data for a city style.
Reimplemented in freeciv::layer_city.
|
inlinevirtual |
Initializes extra-specific data.
This is called after terrains have been loaded, and only for extras with a graphic (graphic_str != none).
Reimplemented in freeciv::layer_water, freeciv::layer_special, freeciv::layer_roads, and freeciv::layer_abstract_activities.
|
inlinevirtual |
Initializes data specific to one player.
This allows to cache tiles depending on the actual players in a game.
Reimplemented in freeciv::layer_grid, and freeciv::layer_background.
|
inlinevirtual |
Initializes terrain-specific data.
Reimplemented in freeciv::layer_terrain.
|
protected |
Shortcut to load a sprite from the tileset.
Definition at line 79 of file layer.cpp.
Referenced by freeciv::layer_terrain::fill_sprite_array(), freeciv::layer_roads::initialize_all_combined(), freeciv::layer_roads::initialize_all_separate(), freeciv::layer_terrain::initialize_cell_corner_match_full(), freeciv::layer_terrain::initialize_cell_hex_corner(), freeciv::layer_terrain::initialize_cell_whole_match_none(), freeciv::layer_roads::initialize_corners(), freeciv::layer_abstract_activities::initialize_extra(), freeciv::layer_water::initialize_extra(), freeciv::layer_roads::initialize_parity_combined(), freeciv::layer_city::load_city_size_sprites(), freeciv::layer_abstract_activities::load_sprites(), freeciv::layer_city::load_sprites(), freeciv::layer_darkness::load_sprites(), freeciv::layer_editor::load_sprites(), freeciv::layer_fog::load_sprites(), freeciv::layer_goto::load_sprites(), freeciv::layer_grid::load_sprites(), freeciv::layer_overlays::load_sprites(), freeciv::layer_units::load_sprites(), and freeciv::layer_special::set_sprite().
|
inlinevirtual |
Loads all sprites that do not depend on the ruleset.
Reimplemented in freeciv::layer_units, freeciv::layer_overlays, freeciv::layer_grid, freeciv::layer_goto, freeciv::layer_fog, freeciv::layer_editor, freeciv::layer_darkness, freeciv::layer_city_size, freeciv::layer_city, and freeciv::layer_abstract_activities.
|
inlinevirtual |
Resets cached data that depends on the ruleset.
Reimplemented in freeciv::layer_water, freeciv::layer_special, freeciv::layer_roads, freeciv::layer_city, and freeciv::layer_abstract_activities.
|
protected |
Whether a solid background should be drawn on a tile instead of its terrain.
Query this function to know whether you should refrain from drawing "terrain-like" sprites (terrain, darkness, water follow this setting).
true when the solid background is enabled and a unit or city is drawn on the tile.| ptile | The tile where to draw (can be null) |
| punit | The unit that could be drawn (can be null) |
| pcity | The city that could be drawn (can be null) |
Definition at line 65 of file layer.cpp.
Referenced by freeciv::layer_darkness::fill_sprite_array(), freeciv::layer_terrain::fill_sprite_array(), and freeciv::layer_water::fill_sprite_array().
|
inlineprotected |
Definition at line 241 of file layer.h.
Referenced by freeciv::layer_units::add_automated_sprite(), freeciv::layer_units::add_orders_sprite(), freeciv::layer_terrain::add_tag(), freeciv::layer_terrain::create_matching_group(), freeciv::layer_background::create_player_sprite(), freeciv::layer_terrain::enable_blending(), freeciv::layer_roads::fill_all_combined(), freeciv::layer_roads::fill_all_separate(), freeciv::layer_terrain::fill_blending_sprite_array(), freeciv::layer_roads::fill_corners(), freeciv::layer_roads::fill_parity_combined(), freeciv::layer_background::fill_sprite_array(), freeciv::layer_base_flags::fill_sprite_array(), freeciv::layer_city::fill_sprite_array(), freeciv::layer_city_size::fill_sprite_array(), freeciv::layer_darkness::fill_sprite_array(), freeciv::layer_editor::fill_sprite_array(), freeciv::layer_fog::fill_sprite_array(), freeciv::layer_goto::fill_sprite_array(), freeciv::layer_grid::fill_sprite_array(), freeciv::layer_infrawork::fill_sprite_array(), freeciv::layer_overlays::fill_sprite_array(), freeciv::layer_terrain::fill_sprite_array(), freeciv::layer_units::fill_sprite_array(), freeciv::layer_water::fill_sprite_array(), freeciv::layer_workertask::fill_sprite_array(), freeciv::layer_city::fill_sprite_array_no_flag(), freeciv::layer_terrain::fill_terrain_sprite_array(), freeciv::layer_terrain::group(), freeciv::layer_roads::initialize_all_combined(), freeciv::layer_roads::initialize_all_separate(), freeciv::layer_terrain::initialize_blending(), freeciv::layer_terrain::initialize_cell_corner_match_full(), freeciv::layer_terrain::initialize_cell_corner_match_none(), freeciv::layer_terrain::initialize_cell_corner_match_pair(), freeciv::layer_terrain::initialize_cell_corner_match_same(), freeciv::layer_terrain::initialize_cell_hex_corner(), freeciv::layer_terrain::initialize_cell_whole_match_none(), freeciv::layer_terrain::initialize_cell_whole_match_same(), freeciv::layer_city::initialize_city_style(), freeciv::layer_roads::initialize_corners(), freeciv::layer_special::initialize_extra(), freeciv::layer_water::initialize_extra(), freeciv::layer_roads::initialize_parity_combined(), freeciv::layer_background::initialize_player(), freeciv::layer_grid::initialize_player(), freeciv::layer_terrain::initialize_terrain(), freeciv::layer_city::load_city_size_sprites(), load_sprite(), freeciv::layer_city_size::load_sprites(), freeciv::layer_darkness::load_sprites(), freeciv::layer_editor::load_sprites(), freeciv::layer_goto::load_sprites(), freeciv::layer_grid::load_sprites(), freeciv::layer_overlays::load_sprites(), freeciv::layer_units::load_sprites(), and freeciv::layer_special::set_sprite().
|
inline |
Definition at line 238 of file layer.h.
Referenced by freeciv::layer_grid::fill_sprite_array(), freeciv::layer_units::fill_sprite_array(), freeciv::layer_special::initialize_extra(), freeciv::layer_terrain::set_tag_sprite_type(), and freeciv::tileset_debugger::set_tile().
|
private |