/* ******************************************************************* * Includes * ******************************************************************/ #include "BaseUnit.h" #include "Unit.h" #include "Sprite.h" #include #include #include /* ******************************************************************* * Defines * ******************************************************************/ /* ******************************************************************* * Types definition * ******************************************************************/ /* ******************************************************************* * Global variables definition * ******************************************************************/ /* ******************************************************************* * Local variables definition * ******************************************************************/ /* ******************************************************************* * Local prototypes declaration * ******************************************************************/ /* ******************************************************************* * Functions definition * ******************************************************************/ /*****************************************************************//** * * \brief Constructor for Unit class. * *********************************************************************/ Unit::Unit(const enum Unit::tUnitID eUnitID) : BaseUnit(), _eUnitID(eUnitID) { } void Unit::create(const enum Unit::tUnitID eUnitID) { _eUnitID = eUnitID; } /*****************************************************************//** * * \brief Periodical handler for Unit class. * *********************************************************************/ void Unit::handler(void) { /* Execute base class handler. */ BaseUnit::handler(); drawHandler(); } void Unit::drawHandler(void) { if (_eUnitID < MAX_UNIT_ID) { static const uint8_t au8PeasantSprData[] = { 8, 8, 0x00, 0x3C, 0x42, 0x99, 0xA5, 0x66, 0x18, 0x00 }; static const uint8_t* const apu8UnitSpriteDataTable[MAX_UNIT_ID] = { [UNIT_ID_NONE] = NULL, [UNIT_ID_PEASANT] = au8PeasantSprData, [UNIT_ID_SWORDMAN] = NULL }; const uint8_t* const pu8UnitSpriteData = apu8UnitSpriteDataTable[_eUnitID]; Sprite spr(*pu8UnitSpriteData); spr.setPos(16, 16); spr.draw(); } else { /* Unit has an invalid ID. Exit. */ } }