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" 
#include  
 
using 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