X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmenu%2FCapsuleMenu.h;h=ae8d245d53d80cd695e935f258cb8201ff919e78;hb=e8283bf94624b2f184d50dc1401bf45225c529d6;hp=ad20b251b1b2d1d3b31559b68f5a6dfc350ce27a;hpb=10a8d3a83e7ad6815bc9f752922239ef32073a5e;p=l2e.git diff --git a/src/menu/CapsuleMenu.h b/src/menu/CapsuleMenu.h index ad20b25..ae8d245 100644 --- a/src/menu/CapsuleMenu.h +++ b/src/menu/CapsuleMenu.h @@ -1,10 +1,20 @@ #ifndef MENU_CAPSULEMENU_H_ #define MENU_CAPSULEMENU_H_ -#include "fwd.h" +namespace common { + class Capsule; + struct GameConfig; +} +namespace math { + template + class Vector; +} +namespace menu { + class PartyMenu; + struct Resources; +} + #include "../app/State.h" -#include "../common/fwd.h" -#include "../geometry/Vector.h" #include "../graphics/Menu.h" namespace menu { @@ -17,10 +27,25 @@ public: public: virtual void HandleEvents(const app::Input &); - virtual void UpdateWorld(float deltaT); + virtual void UpdateWorld(Uint32 deltaT); virtual void Render(SDL_Surface *); + void RenderBackground(SDL_Surface *screen) const; + void RenderCapsule(SDL_Surface *screen, const math::Vector &offset) const; + void RenderInfo(SDL_Surface *screen, const math::Vector &offset) const; + void RenderWheel(SDL_Surface *screen, const math::Vector &offset) const; + void RenderStats(SDL_Surface *screen, const math::Vector &offset) const; + void RenderStatsLine(SDL_Surface *screen, const math::Vector &offset, const char *name, int value) const; + void RenderMenu(SDL_Surface *screen, const math::Vector &offset) const; + public: + common::GameConfig &Game(); + const common::GameConfig &Game() const; + Resources &Res(); + const Resources &Res() const; + common::Capsule &GetCapsule(); + const common::Capsule &GetCapsule() const; + int Width() const; int Height() const; @@ -32,16 +57,17 @@ private: virtual void OnResize(int width, int height); - const common::Capsule &GetCapsule() const; - - void RenderBackground(SDL_Surface *screen) const; - private: PartyMenu *parent; - graphics::Menu menu; + enum Choice { + CHOICE_FEED, + CHOICE_CHANGE, + CHOICE_NAME, + }; + graphics::Menu menu; }; } -#endif /* MENU_CAPSULEMENU_H_ */ +#endif