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

An abstract class for layers that need sprites for unit activities. More...

#include <layer_abstract_activities.h>

+ Inheritance diagram for freeciv::layer_abstract_activities:
+ Collaboration diagram for freeciv::layer_abstract_activities:

Public Member Functions

void load_sprites () override
 Loads the sprites in memory. More...
 
void initialize_extra (const extra_type *extra, const QString &tag, extrastyle_id style) override
 Loads the extra activity and remove activity sprites. More...
 
void reset_ruleset () override
 Resets data about extras. More...
 
QPixmap * activity_sprite (unit_activity id, const extra_type *extra) const
 Returns the sprite used to represent a given activity on the map. More...
 
 layer (struct tileset *ts, mapview_layer layer)
 Inherited constructor. More...
 
- Public Member Functions inherited from freeciv::layer
 layer (struct tileset *ts, mapview_layer layer)
 Constructor. More...
 
virtual ~layer ()=default
 Destructor. More...
 
virtual std::vector< drawn_spritefill_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 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 Attributes

std::array< QPixmap *, ACTIVITY_LAST > m_activities = {nullptr}
 
std::vector< QPixmap * > m_extra_activities
 
std::vector< QPixmap * > m_extra_rm_activities
 

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

An abstract class for layers that need sprites for unit activities.

Definition at line 18 of file layer_abstract_activities.h.

Member Function Documentation

◆ activity_sprite()

QPixmap * freeciv::layer_abstract_activities::activity_sprite ( unit_activity  id,
const extra_type extra 
) const

◆ initialize_extra()

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

Loads the extra activity and remove activity sprites.

Reimplemented from freeciv::layer.

Definition at line 38 of file layer_abstract_activities.cpp.

◆ layer()

freeciv::layer::layer
inline

Inherited constructor.

Definition at line 158 of file layer.h.

◆ load_sprites()

void freeciv::layer_abstract_activities::load_sprites ( )
overridevirtual

Loads the sprites in memory.

Reimplemented from freeciv::layer.

Reimplemented in freeciv::layer_units.

Definition at line 20 of file layer_abstract_activities.cpp.

Referenced by freeciv::layer_units::load_sprites().

◆ reset_ruleset()

void freeciv::layer_abstract_activities::reset_ruleset ( )
overridevirtual

Resets data about extras.

Reimplemented from freeciv::layer.

Definition at line 69 of file layer_abstract_activities.cpp.

Member Data Documentation

◆ m_activities

std::array<QPixmap *, ACTIVITY_LAST> freeciv::layer_abstract_activities::m_activities = {nullptr}
private

Definition at line 33 of file layer_abstract_activities.h.

Referenced by activity_sprite(), and load_sprites().

◆ m_extra_activities

std::vector<QPixmap *> freeciv::layer_abstract_activities::m_extra_activities
private

Definition at line 34 of file layer_abstract_activities.h.

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

◆ m_extra_rm_activities

std::vector<QPixmap *> freeciv::layer_abstract_activities::m_extra_rm_activities
private

Definition at line 34 of file layer_abstract_activities.h.

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