Ejemplo n.º 1
0
void CMovementTransitions::Load()
{
	Reset();

	if (!g_pGame->GetCVars()->g_movementTransitions_enable)
		return;

	string filename = GetXMLFilename();
	XmlNodeRef rootNode = gEnv->pSystem->LoadXmlFromFile(filename.c_str());

	if (!rootNode || strcmpi(rootNode->getTag(), "MovementTransitions"))
	{
		GameWarning("Could not load movement transition data. Invalid XML file '%s'! ", filename.c_str());
		return;
	}

	IItemParamsNode *paramNode = g_pGame->GetIGameFramework()->GetIItemSystem()->CreateParams();
	paramNode->ConvertFromXML(rootNode);

	ReadGeneralParams(paramNode->GetChild("General"));
	bool success = ReadTransitionsParams(paramNode->GetChild("Transitions"));

	paramNode->Release();

	m_isDataValid = success;
}
Ejemplo n.º 2
0
//--------------------------------------------------------------------------------------------------
// Name: ReloadData
// Desc: Reloads any loaded data for game effects registered callbacks
//--------------------------------------------------------------------------------------------------
void GameSDKCGameEffectsSystem::ReloadData()
{
	XmlNodeRef rootNode = gEnv->pSystem->LoadXmlFromFile(GAME_FX_DATA_FILE);

	if(!rootNode)
	{
		GameWarning("Could not load game effects data. Invalid XML file '%s'! ", GAME_FX_DATA_FILE);
		return;
	}

	IItemParamsNode* paramNode = g_pGame->GetIGameFramework()->GetIItemSystem()->CreateParams();
	if(paramNode)
	{
		paramNode->ConvertFromXML(rootNode);

		// Pass data to any callback functions registered
		int callbackCount = s_dataReloadCallbackList.size();
		DataReloadCallback dataReloadCallbackFunc = NULL;
		for(int i=0; i<callbackCount; i++)
		{
			dataReloadCallbackFunc = s_dataReloadCallbackList[i];
			if(dataReloadCallbackFunc)
			{
				dataReloadCallbackFunc(paramNode);
			}
		}

		paramNode->Release();
	}
}//-------------------------------------------------------------------------------------------------