geometry::Vector<int> &SpriteOffset() { return spriteOffset; }
const geometry::Vector<int> &SpriteOffset() const { return spriteOffset; }
geometry::Vector<int> &SpriteOffset() { return spriteOffset; }
const geometry::Vector<int> &SpriteOffset() const { return spriteOffset; }
void SetAnimation(const graphics::Animation *a);
void StartAnimation(app::Application &ctrl);
void StartAnimation(app::State &ctrl);
void StopAnimation();
bool AnimationRunning() const { return runner.Running(); }
void SetAnimation(const graphics::Animation *a);
void StartAnimation(app::Application &ctrl);
void StartAnimation(app::State &ctrl);
void StopAnimation();
bool AnimationRunning() const { return runner.Running(); }
void SetFlags(int f) { flags = f; }
bool Blocking() const { return !(flags & FLAG_NONBLOCKING); }
bool Hostile() const { return partyLayout && numMonsters > 0; }
void SetFlags(int f) { flags = f; }
bool Blocking() const { return !(flags & FLAG_NONBLOCKING); }
bool Hostile() const { return partyLayout && numMonsters > 0; }
void SetPartyLayout(battle::PartyLayout *l) { partyLayout = l; }
battle::PartyLayout *PartyLayout() { return partyLayout; }
void SetPartyLayout(battle::PartyLayout *l) { partyLayout = l; }
battle::PartyLayout *PartyLayout() { return partyLayout; }
battle::PartyLayout *partyLayout;
battle::Monster *monsters;
int numMonsters;
graphics::AnimationRunner runner;
geometry::Vector<int> spriteOffset;
battle::PartyLayout *partyLayout;
battle::Monster *monsters;
int numMonsters;
graphics::AnimationRunner runner;
geometry::Vector<int> spriteOffset;