- geometry::Vector<int> CalculateScreenOffset(SDL_Surface *screen) const {
- return geometry::Vector<int>(
- (screen->w - background->w) / 2,
- (screen->h - background->h) / 2);
- }
- int BackgroundWidth() const { return background->w; }
- int BackgroundHeight() const { return background->h; }
-
- void RenderBackground(SDL_Surface *screen, const geometry::Vector<int> &offset);
- void RenderMonsters(SDL_Surface *screen, const geometry::Vector<int> &offset);
- void RenderHeroes(SDL_Surface *screen, const geometry::Vector<int> &offset);
- void RenderHeroTags(SDL_Surface *screen, const geometry::Vector<int> &offset);
- void RenderAttackTypeMenu(SDL_Surface *screen, const geometry::Vector<int> &offset);
+ const math::Vector<int> &ScreenOffset() const { return offset; }
+ int Width() const { return background->w; }
+ int Height() const { return background->h; }
+ math::Vector<int> Size() const { return math::Vector<int>(Width(), Height()); }
+
+ void RenderBackground(SDL_Surface *screen);
+ void RenderMonsters(SDL_Surface *screen);
+ void RenderHeroes(SDL_Surface *screen);
+ void RenderCapsule(SDL_Surface *screen);
+ void RenderHeroTags(SDL_Surface *screen);
+ void RenderSmallHeroTags(SDL_Surface *screen);
+
+private:
+ virtual void OnEnterState(SDL_Surface *screen);
+ virtual void OnExitState(SDL_Surface *screen);
+ virtual void OnResumeState(SDL_Surface *screen);
+ virtual void OnPauseState(SDL_Surface *screen);
+
+ virtual void OnResize(int width, int height);
+
+private:
+ void LoadInventory();