| 934 | } |
| 935 | |
| 936 | bool LevelImpl::unloadScene(Scene* scene) |
| 937 | { |
| 938 | if (scene == nullptr) |
| 939 | { |
| 940 | Log::ArgumentNullException(); |
| 941 | return true; |
| 942 | } |
| 943 | const auto sceneId = scene->GetID(); |
| 944 | |
| 945 | PROFILE_CPU_NAMED("Level.UnloadScene"); |
| 946 | PROFILE_MEM(Level); |
| 947 | |
| 948 | // Fire event |
| 949 | CallSceneEvent(SceneEventType::OnSceneUnloading, scene, sceneId); |
| 950 | |
| 951 | // Call end play |
| 952 | if (scene->IsDuringPlay()) |
| 953 | scene->EndPlay(); |
| 954 | |
| 955 | // Remove from scenes list |
| 956 | Level::Scenes.Remove(scene); |
| 957 | |
| 958 | // Fire event |
| 959 | CallSceneEvent(SceneEventType::OnSceneUnloaded, scene, sceneId); |
| 960 | |
| 961 | // Simple enqueue scene root object to be deleted |
| 962 | scene->DeleteObject(); |
| 963 | |
| 964 | return false; |
| 965 | } |
| 966 | |
| 967 | bool LevelImpl::unloadScenes() |
| 968 | { |
nothing calls this directly
no test coverage detected