/**
*
const FString _xmlPath = UKDXStereFunctionLibrary::GetKDXStereParamsXMLPath();
if (!UKDXStereFunctionLibrary::ExistsFile(_xmlPath))
{
const FString _xmlContent = "<?xml version=\"1.0\"encoding=\"UTF - 8\"?>\n<ZpGameCfg>\n<ZpGameCfg>";
FFileHelper::SaveStringToFile(_xmlContent, *_xmlPath);
}
FXmlFile* _XmlFile = new FXmlFile(_xmlPath);
if (_XmlFile)
{
const FXmlNode* _Root = _XmlFile->GetRootNode();
if (_Root!=nullptr)
{
const TArray<FXmlNode*> _ChildrenNodes= _Root->GetChildrenNodes();
for (FXmlNode* nodeItem : _ChildrenNodes)
{
FStereParams param;
FXmlNode* _SceneID = nodeItem->FindChildNode("SceneID");
if (_SceneID!=nullptr)
{
param.m_SceneID = _SceneID->GetContent();
}
FXmlNode* _CameraCtlType = nodeItem->FindChildNode("CameraCtlType");
if (_CameraCtlType!=nullptr)
{
param.m_EStereType = EStereTypes[FCString::Atoi(*_CameraCtlType->GetContent())];
}
FXmlNode* _Pupil = nodeItem->FindChildNode("Pupil");
if (_Pupil != nullptr)
{
param.m_PupilDistance = FCString::Atof(*_Pupil->GetContent());
}
FXmlNode* _Intersection = nodeItem->FindChildNode("Intersection");
if (_Intersection != nullptr)
{
param.m_IntersectionDistance = FCString::Atof(*_Pupil->GetContent());
}
FXmlNode* _Ipoverride = nodeItem->FindChildNode("Ipoverride");
if (_Ipoverride != nullptr)
{
param.m_IpOverride = FCString::Atof(*_Ipoverride->GetContent());
}
FXmlNode* _DistanceToTarget = nodeItem->FindChildNode("DistanceToTarget");
if (_DistanceToTarget != nullptr)
{
param.m_DistanceToTarget = FCString::Atof(*_DistanceToTarget->GetContent());
}
array_StereMap.Add(param);
}
}
}
_XmlFile->Save(_xmlPath);
_XmlFile->Clear();
_XmlFile = NULL;
delete _XmlFile;
*/
/** 废弃
*
for (FStereParams stereParas : array_StereMap)
{
if (stereParas.m_SceneID.Equals(saveStereParams.m_SceneID))
{
stereParas.m_DistanceToTarget = saveStereParams.m_DistanceToTarget;
stereParas.m_SceneID = saveStereParams.m_SceneID;
stereParas.m_EStereType = saveStereParams.m_EStereType;
stereParas.m_IntersectionDistance = saveStereParams.m_IntersectionDistance;
stereParas.m_PupilDistance = saveStereParams.m_PupilDistance;
stereParas.m_IpOverride = saveStereParams.m_IpOverride;
break;
}
}
const FString _xmlPath = UKDXStereFunctionLibrary::GetKDXStereParamsXMLPath();
if (!UKDXStereFunctionLibrary::ExistsFile(_xmlPath))
{
const FString _xmlContent = "<?xml version=\"1.0\"encoding=\"UTF - 8\"?>\n<ZpGameCfg>\n<ZpGameCfg>";
FFileHelper::SaveStringToFile(_xmlContent, *_xmlPath);
}
FXmlFile* _XmlFile = new FXmlFile(_xmlPath);
if (_XmlFile)
{
const FXmlNode* _Root = _XmlFile->GetRootNode();
if (_Root != nullptr)
{
const TArray<FXmlNode*> _ChildrenNodes = _Root->GetChildrenNodes();
for (FXmlNode* nodeItem : _ChildrenNodes)
{
FXmlNode* _SceneID = nodeItem->FindChildNode("SceneID");
if (_SceneID != nullptr)
{
if (_SceneID->GetContent().Equals(saveStereParams.m_SceneID))
{
FXmlNode* _CameraCtlType = nodeItem->FindChildNode("CameraCtlType");
const FString _cameraContent = FString::FromInt((int32)saveStereParams.m_EStereType);
if (_CameraCtlType == nullptr)
{
nodeItem->AppendChildNode("CameraCtlType", _cameraContent);
}
else
{
_CameraCtlType->SetContent(_cameraContent);
}
FXmlNode* _Pupil = nodeItem->FindChildNode("Pupil");
const FString _pupilContent = FString::SanitizeFloat(saveStereParams.m_PupilDistance);
if (_Pupil == nullptr)
{
nodeItem->AppendChildNode("Pupil", _pupilContent);
}
else
{
_Pupil->SetContent(_pupilContent);
}
FXmlNode* _Intersection = nodeItem->FindChildNode("Intersection");
const FString _intersectionContent = FString::SanitizeFloat(saveStereParams.m_IntersectionDistance);
if (_Intersection == nullptr)
{
nodeItem->AppendChildNode("Pupil", _intersectionContent);
}
else
{
_Intersection->SetContent(_intersectionContent);
}
FXmlNode* _Ipoverride = nodeItem->FindChildNode("Ipoverride");
const FString _ipoverrideContent= FString::SanitizeFloat(saveStereParams.m_IpOverride);
if (_Ipoverride == nullptr)
{
nodeItem->AppendChildNode("Ipoverride", _ipoverrideContent);
}
else {
_Ipoverride->SetContent(_ipoverrideContent);
}
FXmlNode* _DistanceToTarget = nodeItem->FindChildNode("DistanceToTarget");
const FString _distanceToTargetContent = FString::SanitizeFloat(saveStereParams.m_IpOverride);
if (_DistanceToTarget == nullptr)
{
_DistanceToTarget->AppendChildNode("DistanceToTarget", _distanceToTargetContent);
}
else
{
_DistanceToTarget->SetContent(_distanceToTargetContent);
}
return;
}
}
}
}
}
_XmlFile->Save(_xmlPath);
_XmlFile->Clear();
_XmlFile = NULL;
delete _XmlFile;
*/