📄 gscene.cc
字号:
//GScene.cc
/*/////////////////////////////////////////////////////////////////
李亦
liease@163.com 4040719
2006-7-18
/*/////////////////////////////////////////////////////////////////
#include "console/consoleTypes.h"
#include "rpg/gobjects/GNpc.h"
#include "rpg/gobjects/GPlayer.h"
#include "rpg/gobjects/GScene.h"
#include "rpg/RPGSetting.h"
//#include "game/aiPlayer.h"
namespace RPG
{
GScene* g_pGScene = NULL;
IMPLEMENT_CO_NETOBJECT_V1(GScene);
GScene::GScene()
{
m_dwRPGTypes |= GOT_SCENE;
}
GScene::~GScene()
{
}
//----------------------------------------------------------------------------
//bool GScene::onAdd()
//{
// if (!Parent::onAdd())
// return false;
// return true;
//}
//
//
//void GScene::onRemove()
//{
// Parent::onRemove();
//}
//bool GScene::OnNewDataBlock(RPGBaseData* dptr)
//{
// return true;
//}
//
//bool GScene::OnNewGameBase(GameBase* dptr)
//{
// return true;
//}
//void GScene::inspectPostApply()
//{
// Parent::inspectPostApply();
// GSetMaskBits(ExtendedInfoMask);
//}
//void tagGPlayer::ResetData()
//{
// Parent::ResetData();
//
// nLeftSP = 0;
//
//}
#ifdef TGE_RPGCLIENT
void GScene::CreateSubObjects(CSTR sClass, CSTR sClassAI)
{
U32 n;
GNpc* pNpc;
GPlayer* pPlayer;
for(n=0; n<m_arNpcs.size(); n++)
{
pNpc = static_cast<GNpc*>(m_arNpcs[n]);
if(pNpc == NULL)
continue;
if(pNpc->GetGameBase())
pNpc->UpdateToTShape();
else
pNpc->CreateGameBase(pNpc->IsAI()?sClassAI : sClass);
}//for
for(n=0; n<m_arPlayers.size(); n++)
{
pPlayer = static_cast<GPlayer*>(m_arPlayers[n]);
if(pPlayer == NULL)
continue;
if(pPlayer->GetGameBase())
pPlayer->UpdateToTShape();
else
pPlayer->CreateGameBase(sClassAI);
}//for
}
void GScene::UpdateAllTaskNpc(GPlayer* pGPlayer)
{
U32 n;
GNpc* pNpc;
if(!pGPlayer)
return;
for(n=0; n<m_arNpcs.size(); n++)
{
pNpc = static_cast<GNpc*>(m_arNpcs[n]);
if(pNpc == NULL)
continue;
pNpc->UpdateAllTaskNpc(pGPlayer);
}//for
}
#endif
//----------------------------------------------------------------------------
void GScene::ProcessTick(const Move* pMove)
{
Parent::ProcessTick(pMove);
}
void GScene::InterpolateTick(F32 delta)
{
Parent::InterpolateTick(delta);
}
void GScene::AdvanceTime(F32 fTime)
{
Parent::AdvanceTime(fTime);
}
U32 GScene::packUpdate(NetConnection *conn, U32 mask, BitStream *stream)
{
return Parent::packUpdate(conn, mask, stream);
// cafTODO: ControlMask
return 0;
}
void GScene::unpackUpdate(NetConnection *con, BitStream *stream)
{
Parent::unpackUpdate(con, stream);
}
void GScene::initPersistFields()
{
Parent::initPersistFields();
//addGroup("Misc");
addField("sceneIDName", TypeString, Offset(m_dataScene.pIDName, GScene));
addField("sceneName", TypeString, Offset(m_dataScene.pName, GScene));
addField("sceneDesc", TypeString, Offset(m_dataScene.pDesc, GScene));
addField("sceneType", TypeS32, Offset(m_dataScene.dwType, GScene));
addField("sceneState", TypeS32, Offset(m_dataScene.dwState, GScene));
//endGroup("Misc");
}
//void GScene::consoleInit()
//{
// Parent::consoleInit();
//// Con::addVariable("GScene::boundingBox", TypeBool, &gShowBoundingBox);
//}
#ifdef TGE_RPGCLIENT
ConsoleMethod(GScene, CreateSubObjects, void, 4,4,"object.CreateSubObjects(CSTR sClass, CSTR sClassAI)")
{
object->CreateSubObjects(argv[2],argv[3]);
}
#endif
};//namespace RPG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -