| 2055 | } |
| 2056 | |
| 2057 | void VisualScriptingBinaryModule::DeserializeObject(ISerializable::DeserializeStream& stream, ScriptingObject* object, ISerializeModifier* modifier) |
| 2058 | { |
| 2059 | PROFILE_MEM(ScriptingVisual); |
| 2060 | ASSERT(stream.IsObject()); |
| 2061 | Locker.Lock(); |
| 2062 | const auto asset = Scripts[object->GetTypeHandle().TypeIndex].Get(); |
| 2063 | Locker.Unlock(); |
| 2064 | if (asset) |
| 2065 | { |
| 2066 | ScopeLock lock(asset->Locker); |
| 2067 | const auto instanceParams = asset->_instances.Find(object->GetID()); |
| 2068 | if (instanceParams) |
| 2069 | { |
| 2070 | // Deserialize all parameters |
| 2071 | auto& params = instanceParams->Value.Params; |
| 2072 | for (auto i = stream.MemberBegin(); i != stream.MemberEnd(); ++i) |
| 2073 | { |
| 2074 | StringAnsiView idNameAnsi(i->name.GetStringAnsiView()); |
| 2075 | Guid paramId; |
| 2076 | if (!Guid::Parse(idNameAnsi, paramId)) |
| 2077 | { |
| 2078 | int32 paramIndex; |
| 2079 | if (asset->Graph.GetParameter(paramId, paramIndex)) |
| 2080 | { |
| 2081 | Serialization::Deserialize(i->value, params[paramIndex], modifier); |
| 2082 | } |
| 2083 | } |
| 2084 | } |
| 2085 | } |
| 2086 | } |
| 2087 | } |
| 2088 | |
| 2089 | void VisualScriptingBinaryModule::OnObjectIdChanged(ScriptingObject* object, const Guid& oldId) |
| 2090 | { |
no test coverage detected