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

📄 gscene.cc

📁 五行MMORPG引擎系统V1.0
💻 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 + -