#include "../app/State.h"
#include "../common/fwd.h"
#include "../geometry/Vector.h"
+#include "../graphics/Menu.h"
namespace menu {
virtual void Render(SDL_Surface *);
public:
+ common::GameConfig &Game() { return *game; }
+ const common::GameConfig &Game() const { return *game; }
Resources &Res();
const Resources &Res() const;
+ int Width() const;
+ int Height() const;
+
+public:
+ void RenderBackground(SDL_Surface *screen) const;
+ void RenderHeros(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
+ void RenderMenu(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
+ void RenderInfo(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
+
+ geometry::Vector<int> StatusOffset(int index) const;
+ const HeroStatus &GetHeroStatus(int index) const { return status[index]; }
+
+ static void OnStatusSelect(PartyMenu *, int);
+
private:
virtual void OnEnterState(SDL_Surface *screen);
virtual void OnExitState(SDL_Surface *screen);
virtual void OnResize(int width, int height);
- void RenderHeros(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
- void RenderMenu(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
- void RenderInfo(SDL_Surface *screen, const geometry::Vector<int> &offset) const;
+private:
+ enum MenuItem {
+ MENU_ITEM_ITEM,
+ MENU_ITEM_SPELL,
+ MENU_ITEM_CAPSULE,
+ MENU_ITEM_EQUIP,
+ MENU_ITEM_STATUS,
+ MENU_ITEM_CHANGE,
+ MENU_ITEM_CONFIG,
+ MENU_ITEM_SCENARIO,
+ };
private:
HeroStatus status[4];
+ geometry::Vector<int> statusPositions[4];
common::GameConfig *game;
+ graphics::Menu<int> mainMenu;
};