Exemplo n.º 1
0
void CMFXLibrary::LoadFromXml( SLoadingEnvironment& loadingEnvironment )
{
	CryLogAlways("[MFX] Loading FXLib '%s' ...", loadingEnvironment.libraryName.c_str());

	INDENT_LOG_DURING_SCOPE();

	for (int i = 0; i < loadingEnvironment.libraryParamsNode->getChildCount(); ++i)
	{
		XmlNodeRef currentEffectNode = loadingEnvironment.libraryParamsNode->getChild(i);
		if (!currentEffectNode)
			continue;

		TMFXContainerPtr pContainer = MaterialEffectsUtils::CreateContainer();
		pContainer->BuildFromXML(currentEffectNode);

		const TMFXNameId& effectName = pContainer->GetParams().name;
		const bool effectAdded = AddContainer(effectName, pContainer);
		if (effectAdded)
		{
			loadingEnvironment.AddLibraryContainer(loadingEnvironment.libraryName, pContainer);
		}
		else
		{
			GameWarning("[MFX] Effect (at line %d) '%s:%s' already present, skipping redefinition!", currentEffectNode->getLine(), loadingEnvironment.libraryName.c_str(), effectName.c_str());
		}
	}
}