-/*
- * PartyMenu.h
- *
- * Created on: Oct 21, 2012
- * Author: holy
- */
-
#ifndef MENU_PARTYMENU_H_
#define MENU_PARTYMENU_H_
-#include "Resources.h"
+#include "fwd.h"
+#include "HeroStatus.h"
#include "../app/State.h"
-#include "../common/GameConfig.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 OnEquipSelect(void *, int);
+ static void OnSpellSelect(void *, int);
+ static void OnStatusSelect(void *, int);
+
private:
virtual void OnEnterState(SDL_Surface *screen);
virtual void OnExitState(SDL_Surface *screen);
virtual void OnResize(int width, int height);
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;
};