mirror of
https://github.com/4ian/GDevelop.git
synced 2025-10-15 10:19:04 +00:00
74 lines
2.5 KiB
C++
74 lines
2.5 KiB
C++
/*
|
|
* GDevelop Core
|
|
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights
|
|
* reserved. This project is released under the MIT License.
|
|
*/
|
|
#include "GDCore/Project/Effect.h"
|
|
#include "GDCore/CommonTools.h"
|
|
#include "GDCore/Serialization/SerializerElement.h"
|
|
|
|
namespace gd {
|
|
|
|
gd::String Effect::badStringParameterValue;
|
|
|
|
void Effect::SerializeTo(SerializerElement& element) const {
|
|
element.SetAttribute("name", GetName());
|
|
element.SetAttribute("effectType", GetEffectType());
|
|
if (IsFolded()) element.SetBoolAttribute("folded", true);
|
|
|
|
SerializerElement& doubleParametersElement =
|
|
element.AddChild("doubleParameters");
|
|
for (auto& parameter : doubleParameters)
|
|
doubleParametersElement.AddChild(parameter.first)
|
|
.SetValue(parameter.second);
|
|
|
|
SerializerElement& stringParametersElement =
|
|
element.AddChild("stringParameters");
|
|
for (auto& parameter : stringParameters)
|
|
stringParametersElement.AddChild(parameter.first)
|
|
.SetValue(parameter.second);
|
|
|
|
SerializerElement& booleanParametersElement =
|
|
element.AddChild("booleanParameters");
|
|
for (auto& parameter : booleanParameters)
|
|
booleanParametersElement.AddChild(parameter.first)
|
|
.SetValue(parameter.second);
|
|
}
|
|
|
|
void Effect::UnserializeFrom(const SerializerElement& element) {
|
|
SetName(element.GetStringAttribute("name"));
|
|
SetEffectType(element.GetStringAttribute(
|
|
"effectType",
|
|
"",
|
|
// Compatibility with GD <= 5.0.0-beta83
|
|
"effectName"
|
|
// end of compatibility code
|
|
));
|
|
SetFolded(element.GetBoolAttribute("folded", false));
|
|
|
|
doubleParameters.clear();
|
|
const SerializerElement& doubleParametersElement =
|
|
element.GetChild("doubleParameters",
|
|
0,
|
|
// Compatibility with GD <= 5.0.0-beta83
|
|
"parameters"
|
|
// end of compatibility code
|
|
);
|
|
for (auto& child : doubleParametersElement.GetAllChildren())
|
|
SetDoubleParameter(child.first, child.second->GetValue().GetDouble());
|
|
|
|
stringParameters.clear();
|
|
const SerializerElement& stringParametersElement =
|
|
element.GetChild("stringParameters");
|
|
for (auto& child : stringParametersElement.GetAllChildren())
|
|
SetStringParameter(child.first, child.second->GetValue().GetString());
|
|
|
|
booleanParameters.clear();
|
|
const SerializerElement& booleanParametersElement =
|
|
element.GetChild("booleanParameters");
|
|
for (auto& child : booleanParametersElement.GetAllChildren())
|
|
SetBooleanParameter(child.first, child.second->GetValue().GetBool());
|
|
}
|
|
|
|
} // namespace gd
|