X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmenu%2FPartyMenu.h;h=a009c339c4a0acc25c4f5f491b2320eecc955c4a;hb=a3ba4dc677ad7c92eeb78b20b642241563605c9d;hp=aabc2060bf55616968c843a0ff21eb24abf6eb44;hpb=15b018d9915412a341e2064760fc915fc5bdbade;p=l2e.git diff --git a/src/menu/PartyMenu.h b/src/menu/PartyMenu.h index aabc206..a009c33 100644 --- a/src/menu/PartyMenu.h +++ b/src/menu/PartyMenu.h @@ -1,10 +1,3 @@ -/* - * PartyMenu.h - * - * Created on: Oct 21, 2012 - * Author: holy - */ - #ifndef MENU_PARTYMENU_H_ #define MENU_PARTYMENU_H_ @@ -12,7 +5,8 @@ #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 { @@ -29,9 +23,27 @@ public: 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 &offset) const; + void RenderMenu(SDL_Surface *screen, const math::Vector &offset) const; + void RenderInfo(SDL_Surface *screen, const math::Vector &offset) const; + + math::Vector 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); @@ -40,13 +52,23 @@ private: virtual void OnResize(int width, int height); - void RenderHeros(SDL_Surface *screen, const geometry::Vector &offset) const; - void RenderMenu(SDL_Surface *screen, const geometry::Vector &offset) const; - void RenderInfo(SDL_Surface *screen, const geometry::Vector &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 statusPositions[4]; common::GameConfig *game; + graphics::Menu mainMenu; };