Esempio n. 1
0
VOID CUIWindowItem::LoadWindow(VOID)
{
	TDAssert(m_pWindow == NULL);
	if(m_bLayoutLoaded) return;

	//----------------------------------------------------------------------------
	//加载布局文件
	m_pWindow = CEGUI::WindowManager::getSingleton().loadWindowLayout(m_strLayoutFileName, "", "", 
		callbackProperty);
	TDAssert(m_pWindow);
	//初始状态:隐藏
	m_pWindow->hide();
	CUIWindowMng::GetClientScreen()->addChildWindow(m_pWindow);

	//注册控件
	_RegisterControlToScript(m_pWindow);

	//---------------------------------------
	//执行其中的***_OnLoad函数
	CHAR szTemp[MAX_PATH] = {0};
	_snprintf(szTemp, MAX_PATH, "%s_OnLoad", m_strWindowName.c_str());
	m_pScriptEnv->DoFunction(szTemp);

	FILE * fp;
	if((fp=fopen("Out.txt","a"))!=0){
		fprintf(fp,"->>>%s\n",szTemp);
		fclose(fp);
	}
	m_bLayoutLoaded = TRUE;
}
Esempio n. 2
0
VOID CFairyObject::SetActorFile(LPCTSTR szActorFile)
{
	TDAssert(szActorFile&& m_pFairyObj);

	m_pFairyObj->setProperty(FOBJ_ACTOR_FILE, Fairy::String(szActorFile));
#if 0
	//得到所有动作列表
	{
		//确认是人物模型
		if(m_pFairyObj->getType() != EOBJ_TYPE_ACTOR) return;

		//确认资源已经Load
		Fairy::Actor* pActor = ((Fairy::ActorObject*)m_pFairyObj.get())->getActor();
		if(!pActor) return;

		Ogre::LogManager::getSingleton().logMessage("Load ActorFile " + Ogre::String(szActorFile));

		std::vector< STRING > vAllAnim = pActor->getImpl()->GetObjAllAnimName();
		for(int i=0; i<(int)vAllAnim.size(); i++)
		{
			Ogre::LogManager::getSingleton().logMessage(Ogre::String(vAllAnim[i].c_str()));
		}
	}
#endif
}
VOID CActionSystem::UpdateAction_FromSkill(const SCLIENT_SKILL* pSkill)
{
	TDAssert(pSkill);

	//检查时候已经有该操作
	CActionItem_Skill* pSkillAction = (CActionItem_Skill*)GetAction_SkillID(pSkill->m_pDefine->m_nID*100 + pSkill->m_nLevel);
	
	//AxTrace(0, 0, "Skill:%d", pSkill->m_pDefine->m_dwID);
	//如果没有,创建
	if(!pSkillAction)
	{
		pSkillAction = new CActionItem_Skill(_CreateID());
		pSkillAction->Update_Skill(pSkill);
		//INT nPos = pSkillAction->GetPosIndex();
		//加入
		m_mapAllAction[pSkillAction->GetID()] = pSkillAction;
		UpdateToolBar();

		//如果有上次存的默认技能,则设置为它。
		if( pSkill->m_pDefine->m_nID*100 + pSkill->m_nLevel == CGameProcedure::s_pVariableSystem->GetAs_Int("DefaultSkill") )
		{
			CGameInterface::GetMe()->Skill_SetActive(pSkillAction);
		}
	}
	else
	{
		pSkillAction->Update_Skill(pSkill);
	}

}
Esempio n. 4
0
// 初始化窗口管理器
VOID CUIWindowMng::Init(VOID)
{
	//创建ui系统底板
//	PROFILE_PUSH(Create_MainBoard);

	m_pBackGroundSheet = CEGUI::WindowManager::getSingleton().createWindow((CEGUI::utf8*)"DefaultGUISheet", (CEGUI::utf8*)"__BACKGOUNDSHEET__");
	m_pBackGroundSheet->setMouseHollow(true);
	m_pBackGroundSheet->moveToFront();
	//m_pBackGroundSheet->captureInput();
	m_pBackGroundSheet->setDistributesCapturedInputs(true);

	CEGUI::System::getSingleton().setGUISheet( m_pBackGroundSheet );

//	PROFILE_POP(Create_MainBoard);

	//加载UI
	tDataBaseSystem* pUIDBC = (tDataBaseSystem*)g_pKernel->GetNode("bin\\dbc");
	TDAssert(pUIDBC);
	const tDataBase* pDBC = pUIDBC->GetDataBase(DBC_UI_LAYOUTDEFINE);

	for(INT i=0; i<(INT)pDBC->GetRecordsNum(); i++)
	{
		const _DBC_UI_LAYOUTDEFINE* pLine = (const _DBC_UI_LAYOUTDEFINE*)((tDataBase*)pDBC)->Search_LineNum_EQU(i);

		//产生一个新的WindowItem
		CUIWindowItem* pItem = new CUIWindowItem(pLine);
		//预加载窗口
		pItem->PreLoadWindow();

		m_aWindowList.push_back( pItem );
	}
}
Esempio n. 5
0
VOID CFairyObject::SetActorObjectProperty(LPCTSTR szName, LPCTSTR szValue)
{
	TDAssert(m_pFairyObj);

	//确认是人物模型
	if(m_pFairyObj->getType() != EOBJ_TYPE_ACTOR) return;

	//确认资源已经Load
	Fairy::Actor* pActor = ((Fairy::ActorObject*)m_pFairyObj.get())->getActor();
	if(!pActor) return;

//	AxTrace(-1, 0, "<DObject|Set %s to %s>", szName, szValue);

	try
	{
		std::vector< std::string > vName, vValue;
		vName.push_back(szName);
		vValue.push_back(szValue);

		pActor->getImpl()->ChangeAttributes(vName, vValue);
	}
	catch(...)
	{
	}
}
VOID CActionSystem::UpdateAction_FromItem(tObject_Item* pItem)
{
	TDAssert(pItem);

	//检查时候已经有该操作
	CActionItem_Item* pItemAction = (CActionItem_Item*)GetAction_ItemID(pItem->GetID());

	//如果没有,创建
	if(!pItemAction)
	{
		pItemAction = new CActionItem_Item(_CreateID());
		pItemAction->Update_Item(pItem);
		
		//加入链表
		m_mapAllAction[pItemAction->GetID()] = pItemAction;
		UpdateToolBar();
	}
	//如果有,更新
	else
	{
		pItemAction->Update_Item(pItem);
		for(INT i=0; i<(INT)m_barMain.size(); i++)
		{
			ACTIONBAR_ITEM& barItem = m_barMain[i];

			if(barItem.idImpl == pItem->GetIdTable())
			{
				MainMenuBar_Set(i,pItemAction->GetID());
			}
		}
	}
}
Esempio n. 7
0
UINT CNetManager::_ConnectThread(LPVOID pParam)
{
	TDAssert(pParam);
	CNetManager* pNetManager = (CNetManager*)	pParam;

	return pNetManager->ConnectThread();
}
Esempio n. 8
0
VOID CWXObj_Object::SetOrientation(const fVector3& vRotate)
{
	TDAssert(m_pWXObject);

	Ogre::Quaternion qu(Ogre::Radian(vRotate.y), Ogre::Vector3::UNIT_Y);
	m_pWXObject->setProperty(FOBJ_ORIENTATION, qu);
}
Esempio n. 9
0
VOID CObject_Item_StoreMap::AsStoreMap(const _DBC_ITEM_STOREMAP* pStoreMapDefine)
{
	TDAssert(pStoreMapDefine);

	m_theBaseDef = pStoreMapDefine;
	m_nParticularID = ( ( ( ( ( m_theBaseDef->nClass * 100 ) + m_theBaseDef->nQuality ) * 100 ) + m_theBaseDef->nType ) * 1000 ) + m_theBaseDef->nIndex;

}
Esempio n. 10
0
//插件初始化
extern "C" VOID __stdcall DllInit( tKernel* pKernel )
{
	TDAssert(pKernel);

	g_pKernel = pKernel;

	pKernel->ReisgerClass(GETCLASS(CUISystem));
}
Esempio n. 11
0
VOID CRenderSystem::Destroy_EntityObject(tEntityNode* pNode)
{
	TDAssert(pNode);

	delete ((CWXObject*)pNode);

	//之后不能调用和该node相关的任何代码
	return;
}
Esempio n. 12
0
VOID CObject_Item_Gem::AsGem(const _DBC_ITEM_GEM* pGemDefine)
{
	TDAssert(pGemDefine);

	m_theBaseDef = pGemDefine;
	m_nParticularID = ( ( ( ( ( m_theBaseDef->nClass * 100 ) + m_theBaseDef->nQuality ) * 100 ) + m_theBaseDef->nType ) * 1000 ) + m_theBaseDef->nGemIndex;


}
Esempio n. 13
0
VOID CWXObj_Object::SetPosition(const fVector3& vPos)
{
	TDAssert(m_pWXObject);

	//坐标转化
	fVector3 fvGfxPos;
	CRenderSystem::GetMe()->Axis_Trans(CRenderSystem::AX_GAME, vPos, CRenderSystem::AX_GFX, fvGfxPos);

	m_pWXObject->setProperty(FOBJ_POSITION, Ogre::Vector3(fvGfxPos.x, fvGfxPos.y, fvGfxPos.z));
}
Esempio n. 14
0
//设置详细解释
VOID CObject_Item_Gem::SetExtraInfo(const _ITEM * pItemInfo)
{
	TDAssert(pItemInfo);

	//调用基类函数,保存_ITEM结构
	CObject_Item::SetExtraInfo(pItemInfo);

	SetNumber(pItemInfo->GetItemCount());
	SetManufacturer(pItemInfo);
}
VOID CActionItem_Skill::Update_Skill(const SCLIENT_SKILL* pSkill)
{
	TDAssert(pSkill);

	//引用
	m_idSkillImpl =	pSkill->m_pDefine->m_nID*100 + pSkill->m_nLevel;
	//名称
	m_strName = pSkill->m_pDefine->m_lpszName;
	//图标
	m_strIconName = pSkill->m_pDefine->m_lpszIconName;

	BOOL bOldEnable = IsEnabled();
	BOOL bNewEnable = FALSE;
	ORESULT oResult = pSkill->IsCanUse_CheckDeplete( CObjectManager::GetMe()->GetMySelf()->GetID());
	if ( OR_SUCCEEDED( oResult ) )
	{
		oResult = pSkill->IsCanUse_Leaned();
		if ( OR_SUCCEEDED( oResult ) )
		{
			bNewEnable = TRUE;
		}
	}

	if ( bNewEnable != bOldEnable )
	{
		(bNewEnable)?(Enable()):(Disable());
		//通知UI
		UpdateToRefrence();
	}

	////引用
	//m_idSkillImpl =	pSkill->m_pDefine->m_nID;
	////名称
	//m_strName = pSkill->m_pDefine->m_lpszName;
	////图标
	//m_strIconName = pSkill->m_pDefine->m_lpszIconName;
	//
	//const SCLIENT_XINFA* pXinfa = CObjectManager::GetMe()->GetMySelf()->GetCharacterData()->Get_XinFa(pSkill->m_pDefine->m_nXinFaID);

	//if(pXinfa && pXinfa->m_nLevel < pSkill->m_pDefine->m_nXinFaLevelRequirement)
	//{
	//	Disable();
	//}
	////是否激活
	//else if( (0==pSkill->m_nActiveTime)  || (FALSE == pSkill->m_bLeaned) )
	//{
	//	Disable();
	//}
	//else
	//{
	//	Enable();
	//}
	////通知UI
	//UpdateToRefrence();
}
Esempio n. 16
0
HANDLE CEffectObject::AddEffect(INT idEffect, BOOL bLoop, LPCTSTR /*szLocatorName*/)
{
	//创建特效实例
	Fairy::Effect* pEffectIml = Fairy::EffectManager::getSingleton().createEffect("g01_jingangquan_01");
	if(!pEffectIml) return NULL;

	//创建场景节点
	Ogre::SceneNode* pSceneNode = pEffectIml->createSceneNode();

	//保存
	m_listEffectImpl.push_back(std::make_pair(pEffectIml, pSceneNode));

	return pEffectIml;

#if 0
	//-------------------------------------------------------------
	//得到数据库系统模块
	static const tDataBaseSystem* s_pDataBase = NULL;
	if(!s_pDataBase) s_pDataBase = (tDataBaseSystem*)g_pKernel->GetNode("bin\\dbc");
	TDAssert(s_pDataBase);

	//-------------------------------------------------------------
	//从DBC_EFFECT_DEFINE查找具体特效
	static const tDataBase* s_pDBCEffect = NULL;
	if(!s_pDBCEffect) s_pDBCEffect = s_pDataBase->GetDataBase(DBC_EFFECT_DEFINE);
	TDAssert(s_pDBCEffect);

	//查找具体特效
	const _DBC_EFFECT_DEFINE* pEffect = (const _DBC_EFFECT_DEFINE*)s_pDBCEffect->Search_Index_EQU(idEffect);
	//没有找到
	if(!pEffect) return NULL;
	
	//生成Effect对象
	Ogre::Effect* pEffectIml = Ogre::EffectManager::getSingleton().createEffect(pEffect->pEffectType, pEffect->pParam1);
	if(!pEffectIml) return NULL;

	//保存
	m_listEffectImpl.push_back(pEffectIml);

	return (HANDLE)pEffectIml;
#endif
}
Esempio n. 17
0
//设置详细解释
VOID CObject_Item_StoreMap::SetExtraInfo(const _ITEM * pItemInfo)
{
	TDAssert(pItemInfo);

	//调用基类函数,保存_ITEM结构
	CObject_Item::SetExtraInfo(pItemInfo);

	const STORE_MAP_INFO& infoStoreMap = pItemInfo->m_StoreMap;

	SetNumber(pItemInfo->GetItemCount());
	SetManufacturer(pItemInfo);
}
Esempio n. 18
0
void CSoundSourceFMod::SetBuffer(tSoundBuffer *buffer)
{
	TDAssert(buffer);

	if(_Sample)
	{
		((CSoundBufferFMod*)_Sample)->DecRefrence(this);
	}

	_Sample = buffer;
	((CSoundBufferFMod*)_Sample)->AddRefrence(this);
}
Esempio n. 19
0
void TDDebuger::Initial(void*)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	if(m_pDlgDebuger) return;

	g_pInterface = (tGameInterfaceBase*)g_pKernel->GetNode("bin\\interface");
	TDAssert(g_pInterface);

	g_pGfxSystem = (tGfxSystem*)g_pKernel->GetNode("bin\\gfx");
	TDAssert(g_pGfxSystem);

	g_pTimeSystem = (tTimeSystem*)g_pKernel->GetNode("bin\\time");
	TDAssert(g_pTimeSystem);

	g_pEventSystem = (tEventSystem*)g_pKernel->GetNode("bin\\event");
	TDAssert(g_pEventSystem);

	g_pVariableSystem = (tVariableSystem*)g_pKernel->GetNode("bin\\var");
	TDAssert(g_pVariableSystem);

	g_pDBCSystem = (tDataBaseSystem*)g_pKernel->GetNode("bin\\dbc");
	TDAssert(g_pDBCSystem);

	//´´½¨Debuger´°¿Ú
	m_pDlgDebuger = new CDlgDebuger;
	m_pDlgDebuger->Create( IDD_DIALOG_DEBUGER, NULL);
}
Esempio n. 20
0
BOOL CUIWindowMng::IsWindowShow(LPCTSTR szUIName)
{
	TDAssert(szUIName);

	WINDOWLIST::iterator  it;
	for( it=m_aWindowList.begin(); it != m_aWindowList.end(); it ++ )
	{
		if(strcmp((*it)->GetWindowName(), szUIName) == 0)
			return (*it)->IsWindowShow();
	}

	return FALSE;
}
Esempio n. 21
0
VOID CFairyObject::SetAnimationEndEvent(FUNC_ONANIMATIONEND pFunc, DWORD dwParam)
{
	TDAssert(m_pFairyObj);

	//确认是人物模型
	if(m_pFairyObj->getType() != EOBJ_TYPE_ACTOR) return;

	//确认资源已经Load
	Fairy::Actor* pActor = ((Fairy::ActorObject*)m_pFairyObj.get())->getActor();
	if(!pActor) return;
	
	pActor->getImpl()->SetAnimationEndEventListener((_OnAnimationEnd)pFunc, dwParam);
}
Esempio n. 22
0
//直接打开一个dbc文件
BOOL CDataBase::Util_OpenDBCFromTxt(LPCTSTR szFileName, DBC::DBCFile* pDBCFile)
{
	TDAssert(szFileName && pDBCFile);

	char* lpAddress = NULL;
	DWORD dwSize = CGameProcedure::s_pResourceProvider->loadResource(szFileName, lpAddress, "General");
	if( dwSize > 0 )
	{
		BOOL bRet = pDBCFile->OpenFromMemory( lpAddress, lpAddress + dwSize + 1);
		CGameProcedure::s_pResourceProvider->unloadResource( lpAddress, dwSize );
		return bRet;
	}
	return FALSE;
}
Esempio n. 23
0
VOID CFairyObject::GetActorObjectProperty(LPCTSTR szName, STRING& szValue)
{
	TDAssert(m_pFairyObj);

	//确认是人物模型
	if(m_pFairyObj->getType() != EOBJ_TYPE_ACTOR) return;

	//确认资源已经Load
	Fairy::Actor* pActor = ((Fairy::ActorObject*)m_pFairyObj.get())->getActor();
	if(!pActor) return;

	DWORD dwHits;
	pActor->getImpl()->GetObjAttribute(DString(szName), szValue, dwHits);
}
Esempio n. 24
0
VOID CRenderSystem::Scene_Load(INT nID, const STRING& theSceneDefine)
{
	WX::ExpatParser parserExpat(NULL);
	
	if(m_pTerrainGrid)
	{
		m_pTerrainGrid->destroyRenderable();
	}

	//卸载现有资源
	m_pRenderSystem->resetScene();

	//加载场景文件
	m_pRenderSystem->loadSceneFromResource(&parserExpat, theSceneDefine.c_str(), "General");

	//释放未使用资源
	{
		Ogre::ResourceGroupManager& resManager = Ogre::ResourceGroupManager::getSingleton();

		const Ogre::StringVector& strGroupVec = resManager.getResourceGroups();

		for(int i=0; i<(int)strGroupVec.size(); i++)
		{
			if( strGroupVec[i] != Ogre::ResourceGroupManager::INTERNAL_RESOURCE_GROUP_NAME &&
				strGroupVec[i] != Ogre::ResourceGroupManager::BOOTSTRAP_RESOURCE_GROUP_NAME)
			{
				resManager.unloadUnreferencedResourcesInGroup(strGroupVec[i]);
			}
		}
	}
	
	//设置LightMap
	m_pRenderSystem->getTerrain()->setLightmapQuality(WX::Terrain::LMQ_LOW);
	m_pRenderSystem->getTerrain()->buildGeometry(m_pRenderSystem->getBaseSceneNode());

	//取得环境特效
	WX::SceneInfo::ObjectsByTypeRange objEnviroment = 
		m_pRenderSystem->getSceneInfo()->findObjectsByType("Enviroment");

	if (objEnviroment.first != objEnviroment.second)
	{
		m_pEnviromentObject = static_cast< WX::EnviromentObject * >(objEnviroment.first->get());
		TDAssert(m_pEnviromentObject);
	}
	else
	{
		m_pEnviromentObject = NULL;
	}
}
Esempio n. 25
0
CUIWindowItem::CUIWindowItem(const _DBC_UI_LAYOUTDEFINE* pLayoutDef)
{
	TDAssert(pLayoutDef);

	m_dwID				= pLayoutDef->nID;
	m_strWindowName		= pLayoutDef->szName;
	m_strLayoutFileName = pLayoutDef->szLayout;
	m_strScriptFileName = pLayoutDef->szScript;
	m_nIsCanDemise		= pLayoutDef->nDemise;


	m_pWindow			= NULL;
	
	m_bShow = FALSE;
	m_bLayoutLoaded = FALSE;
}
Esempio n. 26
0
VOID CFairyObject::GetActorLocator(LPCTSTR szName, fVector3& fvPosition)
{
	TDAssert(m_pFairyObj);

	//确认是人物模型
	if(m_pFairyObj->getType() != EOBJ_TYPE_ACTOR) return;

	//确认资源已经Load
	Fairy::Actor* pActor = ((Fairy::ActorObject*)m_pFairyObj.get())->getActor();
	if(!pActor) return;

	DObject_NT* pDObj = ((Fairy::ActorObject*)m_pFairyObj.get())->getActor()->getImpl();

	Ogre::Matrix4 mx;
	pActor->getImpl()->GetLocatorWorldTransform(DString(szName), mx);

	fVector3 fvGfx(mx[0][3], mx[1][3], mx[2][3]);

	CRenderSystem::GetMe()->Axis_Trans(CRenderSystem::AX_GFX, fvGfx, CRenderSystem::AX_GAME, fvPosition);
}
Esempio n. 27
0
VOID CActionSystem::UpdateAction_FromPetSkillStudy(const PET_SKILL* pSk)
{
	TDAssert(pSk);

	//检查时候已经有该操作

	CActionItem_PetSkill* pSkillAction = (CActionItem_PetSkill*)GetAction_PetSkillID(pSk->m_nPetNum,pSk->m_pDefine->m_nID);
	
	//AxTrace(0, 0, "Skill:%d", pSkill->m_pDefine->m_dwID);
	//如果没有,创建
	if(!pSkillAction)
	{
		pSkillAction = new CActionItem_PetSkill(_CreateID());
		pSkillAction->Update_PetSkill(pSk);
		//加入
		m_mapAllAction[pSkillAction->GetID()] = pSkillAction;
	}
	else
	{
		pSkillAction->Update_PetSkill(pSk);
	}
}
Esempio n. 28
0
VOID CActionSystem::UpdateAction_FromLifeAbility(const SCLIENT_LIFEABILITY* pLifeAbility)
{
	TDAssert(pLifeAbility);

	//如果没有学会的技能,退出
	if(pLifeAbility->m_nLevel <= 0) return;

	if(pLifeAbility->m_pDefine == NULL)
		return;

	//检查时候已经有该操作
	CActionItem_LifeAbility* pLifeAbilityAction = (CActionItem_LifeAbility*)GetAction_LifeAbilityID(pLifeAbility->m_pDefine->nID);

	//如果没有,创建
	if(!pLifeAbilityAction)
	{
		pLifeAbilityAction = new CActionItem_LifeAbility(_CreateID());
		pLifeAbilityAction->Update_LifeAbility(pLifeAbility);
		//加入
		m_mapAllAction[pLifeAbilityAction->GetID()] = pLifeAbilityAction;
//		UpdateToolBar();
	}
}
Esempio n. 29
0
VOID WINAPI	CUIWindowItem::_OnGameEvent(const EVENT* pEvent, UINT dwOwnerData)
{
	TDAssert(pEvent);
	
	//--------------------------------------------------------
	//分发
	CUIWindowItem* pWinItem = (CUIWindowItem*)(DWORD_PTR)(dwOwnerData);
	if(!pWinItem) return;

	//加载
	if(!(pWinItem->m_bLayoutLoaded))
	{
		pWinItem->LoadWindow();
	}

	//--------------------------------------------------------
	//参数
	for(INT i=0; i<(INT)pEvent->vArg.size(); i++)
	{
		CHAR szTemp[MAX_PATH];
		_snprintf(szTemp, MAX_PATH, "arg%d", i);
		g_pScriptSys->GetLuaState()->GetGlobals().SetString(szTemp, pEvent->vArg[i].c_str());
	}

	//--------------------------------------------------------
	//调用脚本
	CHAR szFunctionName[MAX_PATH];
	_snprintf(szFunctionName, MAX_PATH, "%s_OnEvent", 
		pWinItem->m_strWindowName.c_str());

	CHAR szFunctionParam[MAX_PATH];
	_snprintf(szFunctionParam, MAX_PATH, "\"%s\"", 
		pEvent->pEventDef->szEvent);

	pWinItem->m_pScriptEnv->DoFunction(szFunctionName, szFunctionParam);
}
Esempio n. 30
0
VOID CWXObj_Object::SetWXObjectProperty(const char* szPropertyName, const char* szPropertyValue)
{
	TDAssert(m_pWXObject);

	m_pWXObject->setPropertyAsString(szPropertyName, szPropertyValue);
}