]> git.localhorst.tv Git - l2e.git/blob - src/app/Application.h
made application and battle state resizable
[l2e.git] / src / app / Application.h
1 /*
2  * Application.h
3  *
4  *  Created on: Apr 8, 2012
5  *      Author: holy
6  */
7
8 #ifndef APP_APPLICATION_H_
9 #define APP_APPLICATION_H_
10
11 #include "../sdl/InitScreen.h"
12
13 #include <stack>
14 #include <SDL.h>
15
16
17 namespace app {
18
19 class State;
20
21 class Application {
22
23 public:
24         Application(sdl::InitScreen *screen, State *initialState);
25         ~Application(void);
26 private:
27         Application(const Application &);
28         Application &operator =(const Application &);
29
30 public:
31         void Run(void);
32         void Loop(void);
33
34 public:
35         void ChangeState(State *);
36         void PushState(State *);
37         void PopState(void);
38         void Quit(void);
39
40 private:
41         State *CurrentState(void);
42         void RealPushState(State *);
43         void RealPopState(void);
44         void PopAllStates(void);
45
46 private:
47         void HandleEvents(void);
48         void UpdateWorld(Uint32 deltaT);
49         void Render(void);
50
51 private:
52         sdl::InitScreen *screen;
53         std::stack<State *> states;
54         Uint32 last;
55
56 };
57
58 }
59
60 #endif /* APP_APPLICATION_H_ */