Freeciv21
Develop your civilization from humble roots to a global empire
freeciv::layer_water Class Reference

#include <layer_water.h>

+ Inheritance diagram for freeciv::layer_water:
+ Collaboration diagram for freeciv::layer_water:

Classes

struct  extra_data
 

Public Member Functions

 layer_water (struct tileset *ts)
 
virtual ~layer_water ()=default
 
void initialize_extra (const extra_type *extra, const QString &tag, extrastyle_id style) override
 Collects all extras to be drawn (the ones with ESTYLE_CARDINALS or ESTYLE_RIVER). More...
 
std::vector< drawn_spritefill_sprite_array (const tile *ptile, const tile_edge *pedge, const tile_corner *pcorner, const unit *punit) const override
 Returns the list of sprites drawn by this layer somewhere on the map. More...
 
void reset_ruleset () override
 Resets cached data that depends on the ruleset. More...
 
- Public Member Functions inherited from freeciv::layer
 layer (struct tileset *ts, mapview_layer layer)
 Constructor. More...
 
virtual ~layer ()=default
 Destructor. 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_terrain (const terrain *terrain)
 Initializes terrain-specific data. More...
 
mapview_layer type () const
 

Private Member Functions

void fill_irrigation_sprite_array (const struct tileset *t, std::vector< drawn_sprite > &sprs, bv_extras textras, bv_extras *textras_near, const terrain *pterrain, const city *pcity) const
 Fill in the farmland/irrigation sprite for the tile. More...
 

Private Attributes

std::vector< extra_datam_cardinals
 
std::vector< extra_datam_outlets
 
std::vector< extra_datam_rivers
 

Additional Inherited Members

- Protected Member Functions inherited from freeciv::layer
struct tilesettileset () 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...
 

Detailed Description

Definition at line 15 of file layer_water.h.

Constructor & Destructor Documentation

◆ layer_water()

freeciv::layer_water::layer_water ( struct tileset ts)
explicit

Definition at line 15 of file layer_water.cpp.

◆ ~layer_water()

virtual freeciv::layer_water::~layer_water ( )
virtualdefault

Member Function Documentation

◆ fill_irrigation_sprite_array()

void freeciv::layer_water::fill_irrigation_sprite_array ( const struct tileset t,
std::vector< drawn_sprite > &  sprs,
bv_extras  textras,
bv_extras *  textras_near,
const terrain pterrain,
const city pcity 
) const
private

Fill in the farmland/irrigation sprite for the tile.

Definition at line 116 of file layer_water.cpp.

Referenced by fill_sprite_array().

◆ fill_sprite_array()

std::vector< drawn_sprite > freeciv::layer_water::fill_sprite_array ( const tile ptile,
const tile_edge pedge,
const tile_corner pcorner,
const unit punit 
) const
overridevirtual

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 from freeciv::layer.

Definition at line 153 of file layer_water.cpp.

◆ initialize_extra()

void freeciv::layer_water::initialize_extra ( const extra_type extra,
const QString &  tag,
extrastyle_id  style 
)
overridevirtual

Collects all extras to be drawn (the ones with ESTYLE_CARDINALS or ESTYLE_RIVER).

Reimplemented from freeciv::layer.

Definition at line 24 of file layer_water.cpp.

◆ reset_ruleset()

void freeciv::layer_water::reset_ruleset ( )
overridevirtual

Resets cached data that depends on the ruleset.

Reimplemented from freeciv::layer.

Definition at line 220 of file layer_water.cpp.

Member Data Documentation

◆ m_cardinals

std::vector<extra_data> freeciv::layer_water::m_cardinals
private

Definition at line 45 of file layer_water.h.

Referenced by fill_irrigation_sprite_array(), initialize_extra(), and reset_ruleset().

◆ m_outlets

std::vector<extra_data> freeciv::layer_water::m_outlets
private

Definition at line 45 of file layer_water.h.

Referenced by fill_sprite_array(), initialize_extra(), and reset_ruleset().

◆ m_rivers

std::vector<extra_data> freeciv::layer_water::m_rivers
private

Definition at line 45 of file layer_water.h.

Referenced by fill_sprite_array(), initialize_extra(), and reset_ruleset().