X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=inline;f=src%2Fapp%2FApplication.h;fp=src%2Fapp%2FApplication.h;h=e43faf44e1692b0905d079d25b95084f5262edaf;hb=59d528aaa84a2210b0a357887853f534cfbea156;hp=0000000000000000000000000000000000000000;hpb=6a3e02e15c1626958540626bf2ccf39f8e365ca5;p=l2e.git diff --git a/src/app/Application.h b/src/app/Application.h new file mode 100644 index 0000000..e43faf4 --- /dev/null +++ b/src/app/Application.h @@ -0,0 +1,60 @@ +/* + * Application.h + * + * Created on: Apr 8, 2012 + * Author: holy + */ + +#ifndef APP_APPLICATION_H_ +#define APP_APPLICATION_H_ + +#include "../sdl/InitScreen.h" + +#include +#include + + +namespace app { + +class State; + +class Application { + +public: + explicit Application(SDL_Surface *screen, State *initialState); + ~Application(void); +private: + Application(const Application &); + Application &operator =(const Application &); + +public: + void Run(void); + void Loop(void); + +public: + void ChangeState(State *); + void PushState(State *); + void PopState(void); + void Quit(void); + +private: + State *CurrentState(void); + void RealPushState(State *); + void RealPopState(void); + void PopAllStates(void); + +private: + void HandleEvents(void); + void UpdateWorld(Uint32 deltaT); + void Render(void); + +private: + SDL_Surface *screen; + std::stack states; + Uint32 last; + +}; + +} + +#endif /* APP_APPLICATION_H_ */