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; }
//-------------------------------------------------------------------------------------------------- // 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(); } }//-------------------------------------------------------------------------------------------------