stmm-games-doc  0.32.0
Classes | Public Member Functions | List of all members
stmg::SelectAniModifier Class Reference

Tile animation value selector. More...

Inheritance diagram for stmg::SelectAniModifier:
Inheritance graph
[legend]

Classes

struct  AniCase
 
struct  Init
 
struct  LocalInit
 

Public Member Functions

 SelectAniModifier (Init &&oInit) noexcept
 Constructor. More...
 
FLOW_CONTROL drawTile (const Cairo::RefPtr< Cairo::Context > &refCc, StdThemeDrawingContext &oDc, const Tile &oTile, int32_t nPlayer, const std::vector< double > &aAniElapsed) noexcept override
 Draw tile (with player skin). More...
 
void applyToSubModifiers (const std::function< void(StdThemeModifier &)> &oApply) noexcept override
 Apply a function to all the submodifiers. More...
 
- Public Member Functions inherited from stmg::ContainerModifier
 ContainerModifier (Init &&oInit) noexcept
 Constructor. More...
 
void registerTileSize (int32_t nW, int32_t nH) noexcept override
 Register tile size. More...
 
void unregisterTileSize (int32_t nW, int32_t nH) noexcept override
 Unregister tile size. More...
 
- Public Member Functions inherited from stmg::StdThemeModifier
virtual ~StdThemeModifier () noexcept=default
 
int32_t getDebugTag () const noexcept
 The debug tag. More...
 

Additional Inherited Members

- Public Types inherited from stmg::StdThemeModifier
enum  FLOW_CONTROL { FLOW_CONTROL_CONTINUE = 0, FLOW_CONTROL_STOP = 1 }
 
- Static Public Member Functions inherited from stmg::ContainerModifier
static FLOW_CONTROL drawTile (const std::vector< unique_ptr< StdThemeModifier > > &aModifiers, const Cairo::RefPtr< Cairo::Context > &refCc, StdThemeDrawingContext &oDc, const Tile &oTile, int32_t nPlayer, const std::vector< double > &aAniElapsed) noexcept
 
- Protected Member Functions inherited from stmg::ContainerModifier
FLOW_CONTROL drawContainedToWorkSurface (StdThemeDrawingContext &oDc, const Tile &oTile, int32_t nPlayer, const std::vector< double > &aAniElapsed, Cairo::RefPtr< Cairo::Surface > &refSurface) noexcept
 
- Protected Member Functions inherited from stmg::StdThemeModifier
 StdThemeModifier (Init &&oInit) noexcept
 Constructor. More...
 
StdThemeowner () noexcept
 The theme. More...
 
const StdThemeowner () const noexcept
 The theme. More...
 

Detailed Description

Tile animation value selector.

Selects which sub modifiers to paint depending on the value of a tile animation. The value is a floating point number from 0.0 to 1.0 or -1.0 if not defined (not animated).

Constructor & Destructor Documentation

◆ SelectAniModifier()

stmg::SelectAniModifier::SelectAniModifier ( Init &&  oInit)
explicitnoexcept

Constructor.

The submodifiers used as "default" case are passed with Init::m_aSubModifiers.

Parameters
oInitThe initialization data.

Member Function Documentation

◆ applyToSubModifiers()

void stmg::SelectAniModifier::applyToSubModifiers ( const std::function< void(StdThemeModifier &)> &  oApply)
overridevirtualnoexcept

Apply a function to all the submodifiers.

The base implementation applies it to Init::m_aSubModifiers but subclasses must apply to all their additional submodifiers.

Parameters
oApplyThe function to apply to all submodifiers.

Reimplemented from stmg::ContainerModifier.

◆ drawTile()

FLOW_CONTROL stmg::SelectAniModifier::drawTile ( const Cairo::RefPtr< Cairo::Context > &  refCc,
StdThemeDrawingContext oDc,
const Tile oTile,
int32_t  nPlayer,
const std::vector< double > &  aAniElapsed 
)
overridevirtualnoexcept

Draw tile (with player skin).

Parameters
refCcThe cairo context. Cannot be null.
oDcThe theme drawing context. Cannot be null.
oTileThe tile to draw.
nPlayerThe player the tile "belongs" to. -1 means no player. Must be >= -1.
aAniElapsedThe tile animations current value.
Returns
Whether the caller should continue or stop painting.

Reimplemented from stmg::ContainerModifier.