diff --git a/Source/Engine/Audio/AudioClip.cpp b/Source/Engine/Audio/AudioClip.cpp index 4005e46b9..29dd2a153 100644 --- a/Source/Engine/Audio/AudioClip.cpp +++ b/Source/Engine/Audio/AudioClip.cpp @@ -125,7 +125,7 @@ void AudioClip::StreamingTask::OnEnd() { ASSERT(_asset->_streamingTask == this); _asset->_streamingTask = nullptr; - _asset.Unlink(); + _asset = nullptr; } _dataLock.Release(); diff --git a/Source/Engine/Content/Assets/Model.cpp b/Source/Engine/Content/Assets/Model.cpp index 897e589a8..8cdd0601e 100644 --- a/Source/Engine/Content/Assets/Model.cpp +++ b/Source/Engine/Content/Assets/Model.cpp @@ -104,7 +104,7 @@ protected: { ASSERT(_asset->_streamingTask == this); _asset->_streamingTask = nullptr; - _asset.Unlink(); + _asset = nullptr; } _dataLock.Release(); diff --git a/Source/Engine/Content/Assets/SkinnedModel.cpp b/Source/Engine/Content/Assets/SkinnedModel.cpp index 5309cf6b9..dfccfec19 100644 --- a/Source/Engine/Content/Assets/SkinnedModel.cpp +++ b/Source/Engine/Content/Assets/SkinnedModel.cpp @@ -97,7 +97,7 @@ protected: { ASSERT(_asset->_streamingTask == this); _asset->_streamingTask = nullptr; - _asset.Unlink(); + _asset = nullptr; } _dataLock.Release(); diff --git a/Source/Engine/Content/BinaryAsset.cpp b/Source/Engine/Content/BinaryAsset.cpp index 7160cb287..1dbc672f2 100644 --- a/Source/Engine/Content/BinaryAsset.cpp +++ b/Source/Engine/Content/BinaryAsset.cpp @@ -491,7 +491,7 @@ protected: void OnEnd() override { _dataLock.Release(); - _asset.Unlink(); + _asset = nullptr; // Base ContentLoadTask::OnEnd(); diff --git a/Source/Engine/Content/Loading/Tasks/LoadAssetDataTask.h b/Source/Engine/Content/Loading/Tasks/LoadAssetDataTask.h index 9d97a439f..5d552b996 100644 --- a/Source/Engine/Content/Loading/Tasks/LoadAssetDataTask.h +++ b/Source/Engine/Content/Loading/Tasks/LoadAssetDataTask.h @@ -82,7 +82,7 @@ protected: void OnEnd() override { _dataLock.Release(); - _asset.Unlink(); + _asset = nullptr; // Base ContentLoadTask::OnEnd(); diff --git a/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h b/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h index 7eed30399..7a7ea285f 100644 --- a/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h +++ b/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h @@ -68,7 +68,7 @@ protected: void OnEnd() override { - _asset.Unlink(); + _asset = nullptr; // Base ContentLoadTask::OnEnd(); diff --git a/Source/Engine/Content/WeakAssetReference.h b/Source/Engine/Content/WeakAssetReference.h index 9ed81b521..76f6b1fff 100644 --- a/Source/Engine/Content/WeakAssetReference.h +++ b/Source/Engine/Content/WeakAssetReference.h @@ -66,14 +66,6 @@ public: return _asset ? _asset->GetOrCreateManagedInstance() : nullptr; } - /// - /// Clears the asset reference. - /// - FORCE_INLINE void Unlink() - { - OnSet(nullptr); - } - /// /// Gets the asset property value as string. /// @@ -103,7 +95,8 @@ protected: { ASSERT(_asset == asset); Unload(); - Unlink(); + asset->OnUnloaded.Unbind(this); + asset = nullptr; } }; diff --git a/Source/Engine/Engine/Base/GameBase.cpp b/Source/Engine/Engine/Base/GameBase.cpp index c313b0737..62e187e7d 100644 --- a/Source/Engine/Engine/Base/GameBase.cpp +++ b/Source/Engine/Engine/Base/GameBase.cpp @@ -259,13 +259,13 @@ void GameBaseImpl::OnSplashScreenEnd() { // Hide splash screen SplashScreenTime = 0; - SplashScreen.Unlink(); + SplashScreen = nullptr; MainRenderTask::Instance->PostRender.Unbind(&OnPostRender); // Load the first scene LOG(Info, "Loading the first scene"); const auto sceneId = FirstScene ? FirstScene.GetID() : Guid::Empty; - FirstScene.Unlink(); + FirstScene = nullptr; if (Level::LoadSceneAsync(sceneId)) { LOG(Fatal, "Cannot load the first scene."); diff --git a/Source/Engine/Graphics/GPUResourceProperty.h b/Source/Engine/Graphics/GPUResourceProperty.h index 5ad31439d..49e3c7b9b 100644 --- a/Source/Engine/Graphics/GPUResourceProperty.h +++ b/Source/Engine/Graphics/GPUResourceProperty.h @@ -75,12 +75,8 @@ public: GPUResourceProperty& operator=(const GPUResourceProperty& other) { - // Protect against invalid self-assignment if (this != &other) - { Set(other.Get()); - } - return *this; } @@ -158,7 +154,6 @@ public: /// Value to assign void Set(T* value) { - // Check if value will change if (_resource != value) { // Remove reference from the old one @@ -179,7 +174,6 @@ public: /// void Unlink() { - // Check if value will change if (_resource) { // Remove reference from the old one @@ -194,10 +188,7 @@ private: { if (_resource) { - // Unlink _resource = nullptr; - - // Fire event OnUnload(this); } } diff --git a/Source/Engine/Physics/CollisionCooking.cpp b/Source/Engine/Physics/CollisionCooking.cpp index 6769e50fc..9076d979e 100644 --- a/Source/Engine/Physics/CollisionCooking.cpp +++ b/Source/Engine/Physics/CollisionCooking.cpp @@ -15,7 +15,7 @@ #define ENSURE_CAN_COOK \ if (Physics::GetCooking() == nullptr) \ { \ - LOG(Warning, "Physics collisions cooking is disabled at runtime. Enable Physics Settings option SupportCookingAtRuntime to use terrain generation at runtime."); \ + LOG(Warning, "Physics collisions cooking is disabled at runtime. Enable Physics Settings option SupportCookingAtRuntime to use collision generation at runtime."); \ return true; \ }