void BattleState::RenderMonsters(SDL_Surface *screen, const Vector<int> &offset) {
for (vector<Monster>::size_type i(0), end(monsters.size()); i < end; ++i) {
if (MonsterPositionOccupied(i)) {
- monsters[i].Sprite()->DrawCenter(screen, monsterPositions[i] + offset);
+ // TODO: better solution for running animations
+ if (monsters[i].AttackAnimation() && monsters[i].AttackAnimation()->Running()) {
+ monsters[i].AttackAnimation()->DrawCenter(screen, monsterPositions[i] + offset);
+ } else if (monsters[i].SpellAnimation() && monsters[i].SpellAnimation()->Running()) {
+ monsters[i].SpellAnimation()->DrawCenter(screen, monsterPositions[i] + offset);
+ } else {
+ monsters[i].Sprite()->DrawCenter(screen, monsterPositions[i] + offset);
+ }
}
}
}