📄 rpgdataman.cc
字号:
//RPGDataMan.cc
/*/////////////////////////////////////////////////////////////////
李亦
liease@163.com 4040719
2006-7-18
/*/////////////////////////////////////////////////////////////////
#include "console/console.h"
//#include "rpg/core/tIDDictionary.h"
//#include "rpg/core/tObjDictionary.h"
//#include "rpg/core/tObjNameDictionary.h"
//#include "rpg/gobjects/ggoodsDefine.h"
//#include "rpg/gobjects/GGoods.h"
//#include "rpg/gobjects/GPlayer.h"
//#include "rpg/gobjects/GPassport.h"
//#include "rpg/gobjects/GNpc.h"
//#include "rpg/gobjects/GScene.h"
#include "RPGDataMan.h"
namespace RPG
{
RPGDataMan* g_pRPGDataMan = NULL;
//static RPGDataMan gs_RPGDataMan;
IMPLEMENT_CONOBJECT(RPGDataMan);
//////////////////////////////////////////////////////
IMPLEMENT_DATAMAN(RPGDataMan,Player);
IMPLEMENT_DATAMAN(RPGDataMan,Passport);
IMPLEMENT_DATAMAN(RPGDataMan,Npc);
IMPLEMENT_DATAMAN(RPGDataMan,Scene);
IMPLEMENT_DATAMAN(RPGDataMan,Goods);
IMPLEMENT_DATAMAN(RPGDataMan,GoodsDefine);
IMPLEMENT_DATAMAN(RPGDataMan,Dialog);
IMPLEMENT_DATAMAN(RPGDataMan,TaskState);
IMPLEMENT_DATAMAN(RPGDataMan,Task);
IMPLEMENT_DATAMAN(RPGDataMan, Efficacy);
IMPLEMENT_DATAMAN(RPGDataMan, TaskPiece);
IMPLEMENT_DATAMAN(RPGDataMan, DlgPiece);
IMPLEMENT_DATAMAN(RPGDataMan, DlgAnswer);
/////////////////////////////////////////////////////////////////
// class RPGDataMan 构造函数 /析构函数
RPGDataMan::RPGDataMan()
:INIT_DATAMAN(RPGDataMan, Player, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Passport, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Goods, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, GoodsDefine, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Dialog, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, TaskState, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Task, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Efficacy, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Npc, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, Scene, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, TaskPiece, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, DlgPiece, HASKSIZE)
,INIT_DATAMAN(RPGDataMan, DlgAnswer, HASKSIZE)
{
//AssertWarn(g_pRPGDataMan == NULL,"只能建立一个RPGDataMan实例");
//g_pRPGDataMan = this;
}
RPGDataMan::~RPGDataMan()
{
}
void RPGDataMan::FreeAllData(BOOL bOnlyObjects)
{
if(!bOnlyObjects)
{
FREE_DATAMAN(RPGDataMan,GoodsDefine);
}
FREE_DATAMAN(RPGDataMan,Player);
FREE_DATAMAN(RPGDataMan,Passport);
FREE_DATAMAN(RPGDataMan,Npc);
FREE_DATAMAN(RPGDataMan,Scene);
FREE_DATAMAN(RPGDataMan,Goods);
FREE_DATAMAN(RPGDataMan,Dialog);
FREE_DATAMAN(RPGDataMan,TaskState);
FREE_DATAMAN(RPGDataMan,Task);
FREE_DATAMAN(RPGDataMan, Efficacy);
FREE_DATAMAN(RPGDataMan, TaskPiece);
FREE_DATAMAN(RPGDataMan, DlgPiece);
FREE_DATAMAN(RPGDataMan, DlgAnswer);
}
void RPGDataMan::Initialize(CSTR pObjName)
{
AssertWarn(g_pRPGDataMan == NULL,"只能建立一个RPGDataMan实例");
g_pRPGDataMan = new RPGDataMan();
g_pRPGDataMan->registerObject(pObjName);
}
void RPGDataMan::Destroy()
{
if(g_pRPGDataMan)
{
g_pRPGDataMan->deleteObject();
g_pRPGDataMan = NULL;
}
}
void RPGDataMan::initPersistFields()
{
Parent::initPersistFields();
}
ConsoleMethod(RPGDataMan,GetPassport,const char*,3,3,"GetOne")
{
char* pRet = Con::getReturnBuffer(32);
GPassport* pPassport = object->GetPassport(StringTable->insert(argv[2]));
if(pPassport == NULL)
pRet[0] = 0;
else
dSprintf(pRet,32,"%d",pPassport->getId());
return pRet;
}
ConsoleMethod(RPGDataMan,FreeAllData,void,2,3,".FreeAllData(bool bOnlyObject)")
{
if(argc == 2)
object->FreeAllData(TRUE);
else
object->FreeAllData(dAtob(argv[2]));
}
//void RPGDataMan::consoleInit()
//{
//}
};//namespace RPG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -