⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpgdataman.h

📁 五行MMORPG引擎系统V1.0
💻 H
字号:
//RPGDataMan.h
/*/////////////////////////////////////////////////////////////////

   李亦
	liease@163.com 4040719
	2006-7-18
/*/////////////////////////////////////////////////////////////////
#ifndef _RPG__RPGDATAMAN_H_
#define _RPG__RPGDATAMAN_H_


#ifndef _RPG__RPGOBJECT_H_
#include "RPGObject.h"
#endif

//#ifndef _RPG__GDIALOG_H_
//#include "rpg/gobjects/GDialog.h"
//#endif


#ifndef _TOBJDICTIONARY_H_
#include "rpg/core/tIDDictionary.h"
#endif

#ifndef _TOBJDICTIONARY_H_
#include "rpg/core/tObjDictionary.h"
#endif

#ifndef _TOBJNAMEDICTIONARY_H_
#include "rpg/core/tObjNameDictionary.h"
#endif


#ifndef _RPG__GGOODSDEFINE_H_
#include "rpg/gobjects/ggoodsDefine.h"
#endif

#ifndef _RPG__GGOODS_H_
#include "rpg/gobjects/GGoods.h"
#endif

#ifndef _RPG__GTASK_H_
#include "rpg/gobjects/GTask.h"
#endif

#ifndef _RPG__GTASKSTATE_H_
#include "rpg/gobjects/GTaskState.h"
#endif


#ifndef _RPG__GPLAYER_H_
#include "rpg/gobjects/GPlayer.h"
#endif

#ifndef _RPG__GPASSPORT_H_
#include "rpg/gobjects/GPassport.h"
#endif

#ifndef _RPG__GNPC_H_
#include "rpg/gobjects/GNpc.h"
#endif


#ifndef _RPG__GSCENE_H_
#include "rpg/gobjects/GScene.h"
#endif


namespace RPG
{
//struct tagGGoodsDefine;
//class  GGoods;
//class GPlayer;
//class GPassport;
//class GScene;
//class GNpc;
//class GDialog;

/////////////////////////////////////////////////////////////////////////////
#define DECLARE_DATAMAN_IDTABLE(CLASS,TYPE)\
protected:\
	IDDictionary<tagG##TYPE>		m_dict##TYPE##s;\
public:\
	tagG##TYPE*	Insert##TYPE(U32 dwID)	{return m_dict##TYPE##s.Insert(dwID);}\
	tagG##TYPE*	Get##TYPE(U32 dwID)		{return m_dict##TYPE##s.Get(dwID);}\
	void		Remove##TYPE(tagG##TYPE* pObject){m_dict##TYPE##s.Remove(pObject->dwID);}



/////////////////////////////////////////////////////////////////////////////
#define DECLARE_DATAMAN_ID(CLASS,TYPE)\
protected:\
	OBJDictionary<G##TYPE>		m_dict##TYPE##s;\
public:\
	G##TYPE*	New##TYPE()	{return m_dict##TYPE##s.New(TRUE);}\
	G##TYPE*	Insert##TYPE(U32 dwID)	{return m_dict##TYPE##s.Insert(dwID);}\
	G##TYPE*	Reg##TYPE(U32 dwID)		{return m_dict##TYPE##s.Reg(dwID);}\
	void		Unreg##TYPE(U32 dwID)	{m_dict##TYPE##s.Unreg(dwID);	}\
	G##TYPE*	Get##TYPE(U32 dwID)		{return m_dict##TYPE##s.Get(dwID);}\
	void		Remove##TYPE(G##TYPE* pObject){m_dict##TYPE##s.Remove(pObject);}


/////////////////////////////////////////////////////////////////////////////
#define DECLARE_DATAMAN_NAME(CLASS,TYPE)\
protected:\
	ObjNameDictionary<G##TYPE>		m_dict##TYPE##s;\
public:\
	G##TYPE*	New##TYPE(StringTableEntry pIDName)		{return m_dict##TYPE##s.New(pIDName);}\
	G##TYPE*	Insert##TYPE(StringTableEntry pIDName)	{return m_dict##TYPE##s.Insert(pIDName);}\
	G##TYPE*	Reg##TYPE(StringTableEntry pIDName)		{ return m_dict##TYPE##s.Reg(pIDName); }\
	void		Unreg##TYPE(StringTableEntry pIDName)	{m_dict##TYPE##s.Unreg(pIDName);}\
	G##TYPE*	Get##TYPE(StringTableEntry pIDName)		{return m_dict##TYPE##s.Get(pIDName);}\
	void		Remove##TYPE(G##TYPE* pObject)			{m_dict##TYPE##s.Remove(pObject);}



#define INIT_DATAMAN(CLASS,TYPE,SIZE)	m_dict##TYPE##s(SIZE)

#define FREE_DATAMAN(CLASS,TYPE)\
			m_dict##TYPE##s.FreeHashTable();

#define IMPLEMENT_DATAMAN(CLASS,TYPE)



/////////////////////////////////////////////////////////////////
/// RPG数据管理
class RPGDataMan: public RPGObject
{
	typedef  RPGObject Parent;

	enum RPGDataManContants
	{
		HASKSIZE		= 128
	};
protected:

public:
	DECLARE_DATAMAN_NAME	(RPGDataMan, Passport);
	DECLARE_DATAMAN_NAME	(RPGDataMan, Player);
	DECLARE_DATAMAN_NAME	(RPGDataMan, Scene);
	DECLARE_DATAMAN_NAME	(RPGDataMan, Npc);

	DECLARE_DATAMAN_ID	(RPGDataMan, Goods);
	DECLARE_DATAMAN_ID	(RPGDataMan, Dialog);
	DECLARE_DATAMAN_ID	(RPGDataMan, TaskState);
	DECLARE_DATAMAN_ID	(RPGDataMan, Task);
	DECLARE_DATAMAN_ID	(RPGDataMan, Efficacy);

	DECLARE_DATAMAN_IDTABLE	(RPGDataMan, GoodsDefine);

	DECLARE_DATAMAN_ID(RPGDataMan, TaskPiece);
	DECLARE_DATAMAN_ID(RPGDataMan, DlgPiece);
	DECLARE_DATAMAN_ID(RPGDataMan, DlgAnswer);


public:
	//构造/析构函数
	RPGDataMan();
	~RPGDataMan();

public:
	void FreeAllData(BOOL bOnlyObjects);
public:
	static void Initialize(CSTR pObjName);
	static void Destroy();

	static void initPersistFields();
	//static void consoleInit();

	DECLARE_CONOBJECT(RPGDataMan);
};//class RPGDataMan

extern RPGDataMan*	g_pRPGDataMan;

};//namespace RPG
#endif //_RPG__RPGDATAMAN_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -