| 307 | } |
| 308 | |
| 309 | void Scene::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier) |
| 310 | { |
| 311 | // Base |
| 312 | Actor::Deserialize(stream, modifier); |
| 313 | |
| 314 | Info.Deserialize(stream, modifier); |
| 315 | LightmapsData.LoadLightmaps(Info.Lightmaps); |
| 316 | CSGData.DeserializeIfExists(stream, "CSG", modifier); |
| 317 | |
| 318 | // [Deprecated on 13.01.2021, expires on 13.01.2023] |
| 319 | if (modifier->EngineBuild <= 6215 && Navigation.Meshes.IsEmpty()) |
| 320 | { |
| 321 | const auto e = SERIALIZE_FIND_MEMBER(stream, "NavMesh"); |
| 322 | if (e != stream.MemberEnd()) |
| 323 | { |
| 324 | // Upgrade from old single hidden navmesh data into NavMesh actors on a scene |
| 325 | MARK_CONTENT_DEPRECATED(); |
| 326 | AssetReference<RawDataAsset> dataAsset; |
| 327 | Serialization::Deserialize(e->value, dataAsset, modifier); |
| 328 | const auto settings = NavigationSettings::Get(); |
| 329 | if (dataAsset && settings->NavMeshes.HasItems()) |
| 330 | { |
| 331 | auto navMesh = New<NavMesh>(); |
| 332 | navMesh->SetStaticFlags(StaticFlags::FullyStatic); |
| 333 | navMesh->SetName(TEXT("NavMesh.") + settings->NavMeshes[0].Name); |
| 334 | navMesh->DataAsset = dataAsset; |
| 335 | navMesh->Properties = settings->NavMeshes[0]; |
| 336 | if (IsDuringPlay()) |
| 337 | { |
| 338 | navMesh->SetParent(this, false); |
| 339 | } |
| 340 | else |
| 341 | { |
| 342 | navMesh->_parent = this; |
| 343 | navMesh->_scene = this; |
| 344 | Children.Add(navMesh); |
| 345 | navMesh->CreateManaged(); |
| 346 | } |
| 347 | } |
| 348 | } |
| 349 | } |
| 350 | } |
| 351 | |
| 352 | void Scene::OnDeleteObject() |
| 353 | { |
nothing calls this directly
no test coverage detected