]> git.localhorst.tv Git - l2e.git/blobdiff - src/menu/PartyMenu.h
switched geometric scalars from floating to fixed
[l2e.git] / src / menu / PartyMenu.h
index 5baaf69ac9635c8219e389fb380ed8a160830e77..934369e121499d6e7ba09025b36bf978844339f5 100644 (file)
@@ -1,10 +1,3 @@
-/*
- * PartyMenu.h
- *
- *  Created on: Oct 21, 2012
- *      Author: holy
- */
-
 #ifndef MENU_PARTYMENU_H_
 #define MENU_PARTYMENU_H_
 
@@ -12,7 +5,7 @@
 #include "HeroStatus.h"
 #include "../app/State.h"
 #include "../common/fwd.h"
-#include "../geometry/Vector.h"
+#include "../math/Vector.h"
 #include "../graphics/Menu.h"
 
 namespace menu {
@@ -26,13 +19,31 @@ public:
 
 public:
        virtual void HandleEvents(const app::Input &);
-       virtual void UpdateWorld(float deltaT);
+       virtual void UpdateWorld(Uint32 deltaT);
        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 math::Vector<int> &offset) const;
+       void RenderMenu(SDL_Surface *screen, const math::Vector<int> &offset) const;
+       void RenderInfo(SDL_Surface *screen, const math::Vector<int> &offset) const;
+
+       math::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);
@@ -41,12 +52,21 @@ private:
 
        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];
+       math::Vector<int> statusPositions[4];
        common::GameConfig *game;
        graphics::Menu<int> mainMenu;