www.pudn.com > notWow.rar > SceneMgr.h
#pragma once #include "Map.h" #include "NPCMgr.h" #includeclass Scene { protected: Map m_Map; NPCsManager m_NPCMgr; public: bool Init(LPDIRECT3DDEVICE9 pd3dDevice,const char *Name,ScriptID ID); void Free(); void Update(float fTime); void Render(); // recreate managed-pool resource // this method could only be called after OnDestoty bool OnCreate(); // OnDestory almost like Free() // However,it releases the resource to recreate in OnCreate void OnDestory(); // recreate default-pool resource bool OnReset(); // invalidate default-pool resource void OnLost(); inline Map* GetMap(){ return &m_Map; } inline NPCsManager* GetNPCsMgr() { return &m_NPCMgr; } }; class ScenesManager { LPDIRECT3DDEVICE9 m_pd3dDevice; vector m_Scenes; map m_NameMap; vector m_RefCounters; int m_MinPos; int m_nScenes; int m_CurSceneID; public: // Initialize the Mgr void Init(LPDIRECT3DDEVICE9 pd3dDevice); // Free the Mgr finally void Free(); // recreate managed-pool resource // this method could only be called after OnDestoty bool OnCreate(); // OnDestory almost like Free() // However,it releases the resource to recreate in OnCreate void OnDestory(); // recreate default-pool resource bool OnReset(); // invalidate default-pool resource void OnLost(); SceneID AddScene(const char* Name,ScriptID ID); void Delete(SceneID id); inline Scene* GetScene(SceneID id) { if(id >= 0 && id < m_Scenes.size()) return m_Scenes[id]; return NULL; } inline SceneID GetCurSceneID() { return m_CurSceneID; } inline Scene* GetCurScene() { return GetScene(m_CurSceneID); } inline void SetCurScene(SceneID id) { m_CurSceneID = id; } };