X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmenu%2FStatusMenu.h;h=45af969a72bd4f3fd110265d8feb5da3f5495964;hb=b7b7078d04007d5b86ab160288f88b57d76ea408;hp=465c7c41bc7eb74e78e9934fe2944d4349316bb2;hpb=bba1ac05e8c1854dc61bd737d228d9bc18bbb6ad;p=l2e.git diff --git a/src/menu/StatusMenu.h b/src/menu/StatusMenu.h index 465c7c4..45af969 100644 --- a/src/menu/StatusMenu.h +++ b/src/menu/StatusMenu.h @@ -1,15 +1,20 @@ -/* - * StatusMenu.h - * - * Created on: Oct 22, 2012 - * Author: holy - */ - #ifndef MENU_STATUSMENU_H_ #define MENU_STATUSMENU_H_ -#include "fwd.h" +namespace common { + class Hero; + class Item; +} +namespace math { + template + class Vector; +} +namespace menu { + class PartyMenu; +} + #include "../app/State.h" +#include "../graphics/Menu.h" namespace menu { @@ -17,13 +22,17 @@ class StatusMenu : public app::State { public: - explicit StatusMenu(PartyMenu *parent); + StatusMenu(PartyMenu *parent, int heroIndex); public: virtual void HandleEvents(const app::Input &); - virtual void UpdateWorld(float deltaT); + virtual void UpdateWorld(Uint32 deltaT); virtual void Render(SDL_Surface *); +public: + int Width() const; + int Height() const; + private: virtual void OnEnterState(SDL_Surface *screen); virtual void OnExitState(SDL_Surface *screen); @@ -32,11 +41,30 @@ private: virtual void OnResize(int width, int height); + void NextHero(); + void PreviousHero(); + + const common::Hero &GetHero() const; + + void RenderStatus(SDL_Surface *screen, const math::Vector &offset) const; + void RenderStats(SDL_Surface *screen, const math::Vector &offset) const; + void RenderStatsLine(const char *label, int number, SDL_Surface *screen, const math::Vector &position) const; + void RenderEquipment(SDL_Surface *screen, const math::Vector &offset) const; + void RenderEquipmentLine(const common::Item *, SDL_Surface *screen, const math::Vector &position) const; + /// @param offset the top right corner! + void RenderExperience(SDL_Surface *screen, const math::Vector &offset) const; + /// @param offset the top right corner! + void RenderNextLevel(SDL_Surface *screen, const math::Vector &offset) const; + void RenderIkari(SDL_Surface *screen, const math::Vector &offset) const; + void RenderMenu(SDL_Surface *screen, const math::Vector &offset) const; + private: PartyMenu *parent; + int cursor; + graphics::Menu menu; }; } -#endif /* MENU_STATUSMENU_H_ */ +#endif