MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Deserialize

Method Deserialize

Source/Engine/Particles/ParticleEffect.cpp:721–782  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

719}
720
721void ParticleEffect::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
722{
723 // Base
724 Actor::Deserialize(stream, modifier);
725
726 PROFILE_MEM(Particles);
727 const auto overridesMember = stream.FindMember("Overrides");
728 if (overridesMember != stream.MemberEnd())
729 {
730 const auto& overrides = overridesMember->value;
731 CHECK(overrides.IsArray());
732 _parametersOverrides.EnsureCapacity(_parametersOverrides.Count() + overrides.Size());
733 for (rapidjson::SizeType i = 0; i < overrides.Size(); i++)
734 {
735 auto& o = (DeserializeStream&)overrides[i];
736 const String trackName = JsonTools::GetString(o, "Track");
737 const Guid id = JsonTools::GetGuid(o, "Id");
738 ParameterOverride* e = nullptr;
739 for (auto& q : _parametersOverrides)
740 {
741 if (q.Id == id && q.Track == trackName)
742 {
743 e = &q;
744 break;
745 }
746 }
747 if (e)
748 {
749 // Update overriden parameter value
750 const auto mValue = SERIALIZE_FIND_MEMBER(o, "Value");
751 if (mValue != stream.MemberEnd())
752 Serialization::Deserialize(mValue->value, e->Value, modifier);
753 }
754 else
755 {
756 // Add parameter override
757 auto& p = _parametersOverrides.AddOne();
758 p.Track = trackName;
759 p.Id = id;
760 const auto mValue = SERIALIZE_FIND_MEMBER(o, "Value");
761 if (mValue != stream.MemberEnd())
762 Serialization::Deserialize(mValue->value, p.Value, modifier);
763 }
764 }
765 }
766
767 DESERIALIZE(ParticleSystem);
768 DESERIALIZE(UpdateMode);
769 DESERIALIZE(FixedTimestep);
770 DESERIALIZE(SimulationSpeed);
771 DESERIALIZE(UseTimeScale);
772 DESERIALIZE(IsLooping);
773 DESERIALIZE(PlayOnStart);
774 DESERIALIZE(UpdateWhenOffscreen);
775 DESERIALIZE(DrawModes);
776 DESERIALIZE(SortOrder);
777
778 if (_parameters.HasItems())

Callers

nothing calls this directly

Calls 10

GetGuidFunction · 0.85
FindMemberMethod · 0.80
MemberEndMethod · 0.80
AddOneMethod · 0.80
DeserializeFunction · 0.50
GetStringFunction · 0.50
EnsureCapacityMethod · 0.45
CountMethod · 0.45
SizeMethod · 0.45
HasItemsMethod · 0.45

Tested by

no test coverage detected