00001
00002 #ifndef __IAPPLICATION_H_
00003 #define __IAPPLICATION_H_
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "IApplicationState.h"
00027
00028 namespace peon
00029 {
00036 class PEONMAIN_API IApplication
00037 {
00038 protected:
00040 std::map<int, IApplicationState*> m_oStates;
00041
00043 IApplicationState* m_pCurrentState;
00044
00045 public:
00049 IApplication();
00050
00054 virtual ~IApplication();
00055
00062 virtual bool onLoadWorld() = 0;
00063
00071 virtual void onUnloadWorld() = 0;
00072
00077 virtual void onRenderWorld(){}
00078
00085 virtual void onUpdateWorld( float fElapsedTime ) = 0;
00086
00095 bool loadState( int key, IApplicationState* pState );
00096
00100 void unloadStates();
00101
00107 IApplicationState* getCurrentState(){ return m_pCurrentState; }
00108
00113 void setCurrentState(int key);
00114
00120 virtual void onKeyEvent( SDL_KeyboardEvent* pEvent ){}
00121
00127 virtual void onMouseEvent( SDL_Event* pEvent ){}
00128
00129 };
00130 }
00131
00132 #endif
00133