00001 #ifndef __GAME_H__
00002 #define __GAME_H__
00003
00004 #include "OgreSceneManager.h"
00005 #include "OgreSingleton.h"
00006 #include "OgreString.h"
00007 #include "OgreRenderWindow.h"
00008 using Ogre::SceneManager;
00009 using Ogre::Singleton;
00010 using Ogre::String;
00011 using Ogre::RenderWindow;
00012
00013 namespace ASR
00014 {
00015 class Level;
00016 class GameListener;
00017 class Updater;
00018
00019
00020 class Game : public Singleton<Game>
00021 {
00022
00023
00024 private:
00025 Level* mLevel;
00026 GameListener* mListener;
00027
00028 SceneManager* mSceneMgr;
00029 RenderWindow* mWindow;
00030
00031
00032
00033 public:
00034 Game ( SceneManager* sceneMgr, RenderWindow* win );
00035 ~Game ();
00036
00052 static Game& getSingleton(void);
00068 static Game* getSingletonPtr(void);
00069
00073 SceneManager* getSceneManager() const;
00074
00075
00076
00077
00078
00079
00083 Level* createLevel ();
00084
00088 Level* getLevel () const;
00089
00093 void destroyLevel ();
00094
00095
00096
00097
00098
00099
00104 void addUpdater ( Updater* updater );
00105 };
00106 }
00107
00108 #endif