www.pudn.com > GameEngine_src.rar > CResourceManager.h
// CResourceManager.h: interface for the CResourceManager class. // ////////////////////////////////////////////////////////////////////// #ifndef CResourceManager_h #define CResourceManager_h #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "CPictureGroup.h" #include "CProgressBar.h" #include "CDynamicArray.h" #include "CPool.h" #include "CHashTable.h" #includeusing std::string; /* //哈希表中存放的信息 struct EPG_INFO { EPG_INFO() { m_pData = NULL; }; EPG_INFO( const EPG_INFO &ei ) { m_szName = ei.m_szName; m_pData = ei.m_pData; } EPG_INFO &operator = ( const EPG_INFO &ei ) { m_szName = ei.m_szName; m_pData = ei.m_pData; return *this; } ~EPG_INFO() { m_pData = NULL; } bool operator == ( const EPG_INFO &ei ) { return m_szName == ei.m_szName; } int operator % ( int i ) const { int sum = 0; for ( int j = 0; j < m_szName.size(); ++j ) sum += (int)m_szName[j]; return sum % i; } public: string m_szName; EPG_DATA * m_pData; }; /////////////////////////////////////////////////////////////////// //资源管理类,负责载入各种资源,包括人物,怪物,魔法等.但不包括地图TILE资源 /////////////////////////////////////////////////////////////////// class CResourceManager { public: CResourceManager(); ~CResourceManager(); bool Init(); void Free(); void FreeLvl(); //退出关卡时,释放关卡资源,并不是真的释放,只是标记为无用 bool LoadCommonEPG( char *filename, CPictureGroup **ppPG, CPictureGroup **ppSPG ); bool LoadEPG( char *filename, CPictureGroup **ppPG, CPictureGroup **ppSPG ); bool FindEPG( const char *filename, CPictureGroup **ppPG, CPictureGroup **ppSPG ); void AddEPG( char *filename ); //增加要载入的EPG bool OnLoadingLvl(); //载入关卡时调用 private: CDynamicArray m_CommonEPGArray; //通用资源,这些资源在关卡切换时不用释放 CDynamicArray m_CommonEPGNameArray; CPool m_LvlEPGPool; //关卡相关资源 CHashTable m_LvlEPGTable; //资源与文件名映射表 CDynamicArray m_LoadingList; //一个关卡的载入列表 int m_NumLoad; //要载入的总数量 int m_StepLoad; //已载入的数量 CProgressBar m_LoadingBar; //载入时的进度条 POINT m_LBRenderPoint; //进度条的绘制位置 }; */ //------------------------------------------------------------------------------------ //载入关卡时,CMap首先载入地图文件,获取要载入的怪物 //CSpriteFactory再根据怪物增加要载入的EPG //然后CResourceManager在每次循环载入一个EPG,直到载入完毕 //------------------------------------------------------------------------------------ #endif