-/*
- * 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>
+ class Vector;
+}
+namespace menu {
+ class PartyMenu;
+}
+
#include "../app/State.h"
+#include "../graphics/Menu.h"
namespace menu {
: 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);
virtual void OnResize(int width, int height);
+ void NextHero();
+ void PreviousHero();
+
+ const common::Hero &GetHero() const;
+
+ void RenderStatus(SDL_Surface *screen, const math::Vector<int> &offset) const;
+ void RenderStats(SDL_Surface *screen, const math::Vector<int> &offset) const;
+ void RenderStatsLine(const char *label, int number, SDL_Surface *screen, const math::Vector<int> &position) const;
+ void RenderEquipment(SDL_Surface *screen, const math::Vector<int> &offset) const;
+ void RenderEquipmentLine(const common::Item *, SDL_Surface *screen, const math::Vector<int> &position) const;
+ /// @param offset the top right corner!
+ void RenderExperience(SDL_Surface *screen, const math::Vector<int> &offset) const;
+ /// @param offset the top right corner!
+ void RenderNextLevel(SDL_Surface *screen, const math::Vector<int> &offset) const;
+ void RenderIkari(SDL_Surface *screen, const math::Vector<int> &offset) const;
+ void RenderMenu(SDL_Surface *screen, const math::Vector<int> &offset) const;
+
private:
PartyMenu *parent;
+ int cursor;
+ graphics::Menu<int> menu;
};
}
-#endif /* MENU_STATUSMENU_H_ */
+#endif