]> git.localhorst.tv Git - l2e.git/blobdiff - src/battle/BattleState.cpp
added monster drawing routine in battle state
[l2e.git] / src / battle / BattleState.cpp
index df83c328d2b5a6c32330a1b76cc65444922b2cf0..cc38de237da120164584ec9ce2026267bac468cc 100644 (file)
@@ -8,11 +8,24 @@
 #include "BattleState.h"
 
 #include "PartyLayout.h"
+#include "../graphics/Sprite.h"
+
+#include <stdexcept>
 
 using app::Application;
 
+using std::vector;
+
 namespace battle {
 
+void BattleState::AddMonster(const Monster &m) {
+       if (monsters.size() >= monstersLayout->NumPositions()) {
+               throw std::overflow_error("too many monsters for layout");
+       }
+       monsters.push_back(m);
+}
+
+
 void BattleState::EnterState(Application &ctrl, SDL_Surface *screen) {
        monstersLayout->CalculatePositions(background->w, background->h, monsterPositions);
 }
@@ -33,6 +46,9 @@ void BattleState::UpdateWorld(float deltaT) {
 void BattleState::Render(SDL_Surface *screen) {
        // TODO: center background if screen bigger
        SDL_BlitSurface(background, 0, screen, 0);
+       for (vector<Monster>::size_type i(0), end(monsters.size()); i < end; ++i) {
+               monsters[i].Sprite()->Draw(screen, monsterPositions[i]);
+       }
 }
 
 }