4 * Created on: Apr 8, 2012
8 #ifndef APP_APPLICATION_H_
9 #define APP_APPLICATION_H_
13 #include "../sdl/InitScreen.h"
27 Application(sdl::InitScreen *screen, State *initialState);
30 Application(const Application &);
31 Application &operator =(const Application &);
38 void ChangeState(State *);
39 void PushState(State *);
42 Input &Buttons() { return input; }
43 const Input &Buttons() const { return input; }
44 Timers<Uint32> &GlobalTimers() { return globalTimers; }
55 State *CurrentState();
56 bool StateChangePending() const { return !stateChanges.empty(); }
58 void RealChangeState(State *);
59 void RealPushState(State *);
65 void UpdateWorld(Uint32 deltaT);
69 sdl::InitScreen *screen;
70 std::stack<State *> states;
71 std::queue<StateCommand> stateChanges;
72 Timers<Uint32> globalTimers;
80 #endif /* APP_APPLICATION_H_ */