#define BATTLE_HEROTAG_H_
#include "Hero.h"
-#include "../geometry/Point.h"
#include "../geometry/Vector.h"
#include <SDL.h>
namespace battle {
-class AttackChoice;
-struct Resources;
+class BattleState;
class HeroTag {
public:
- enum Alignment {
- LEFT,
- RIGHT
- };
+ HeroTag() : battle(0), index(0) { }
+ HeroTag(const BattleState *battle, int heroIndex)
+ : battle(battle), index(heroIndex) { }
public:
- HeroTag() : hero(0), choice(0), res(0), align(LEFT) { };
- HeroTag(const Hero *hero, const AttackChoice *choice, const Resources *res, Alignment align)
- : hero(hero), choice(choice), res(res), align(align) { }
- ~HeroTag() { }
-
-public:
- const graphics::Sprite *HeroSprite() const { return hero->Sprite(); }
+ const graphics::Sprite *HeroSprite() const;
geometry::Vector<int> HeroOffset() const;
- void Render(SDL_Surface *screen, int width, int height, geometry::Point<int> position, bool active) const;
+ void Render(SDL_Surface *screen, int width, int height, const geometry::Vector<int> &position, bool active) const;
private:
- const Hero *hero;
- const AttackChoice *choice;
- const Resources *res;
- Alignment align;
+ const BattleState *battle;
+ int index;
};