]> git.localhorst.tv Git - l2e.git/blob - src/menu/CapsuleChangeMenu.h
implemented capsule/class selection
[l2e.git] / src / menu / CapsuleChangeMenu.h
1 #ifndef MENU_CAPSULECHANGEMENU_H_
2 #define MENU_CAPSULECHANGEMENU_H_
3
4 #include "fwd.h"
5 #include "../app/State.h"
6 #include "../common/fwd.h"
7 #include "../geometry/Vector.h"
8
9 namespace menu {
10
11 class CapsuleMenu;
12
13 class CapsuleChangeMenu
14 : public app::State {
15
16 public:
17         explicit CapsuleChangeMenu(CapsuleMenu *parent);
18
19 public:
20         virtual void HandleEvents(const app::Input &);
21         virtual void UpdateWorld(float deltaT);
22         virtual void Render(SDL_Surface *);
23
24         void RenderClasses(SDL_Surface *, const geometry::Vector<int> &) const;
25
26 public:
27         int Width() const;
28         int Height() const;
29
30         void NextCapsule();
31         void PreviousCapsule();
32         void NextClass();
33         void PreviousClass();
34
35 private:
36         virtual void OnEnterState(SDL_Surface *screen);
37         virtual void OnExitState(SDL_Surface *screen);
38         virtual void OnResumeState(SDL_Surface *screen);
39         virtual void OnPauseState(SDL_Surface *screen);
40
41         virtual void OnResize(int width, int height);
42
43         common::Capsule &GetCapsule();
44         const common::Capsule &GetCapsule() const;
45
46 private:
47         CapsuleMenu *parent;
48
49 };
50
51 }
52
53 #endif /* MENU_CAPSULECHANGEMENU_H_ */