📄 rpgdataman.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 + -