diff --git a/Source/Engine/Content/Loading/ContentLoadTask.h b/Source/Engine/Content/Loading/ContentLoadTask.h index df13c8c43..79db369e1 100644 --- a/Source/Engine/Content/Loading/ContentLoadTask.h +++ b/Source/Engine/Content/Loading/ContentLoadTask.h @@ -25,7 +25,7 @@ public: /// /// Describes work result value /// - DECLARE_ENUM_4(Result, Ok, AssetLoadError, MissingReferences, LoadDataError); + DECLARE_ENUM_5(Result, Ok, AssetLoadError, MissingReferences, LoadDataError, TaskFailed); private: diff --git a/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h b/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h index ae8dab9e6..bea582163 100644 --- a/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h +++ b/Source/Engine/Content/Loading/Tasks/LoadAssetTask.h @@ -6,6 +6,7 @@ #include "Engine/Content/Asset.h" #include "Engine/Content/AssetReference.h" #include "Engine/Content/WeakAssetReference.h" +#include "Engine/Core/Log.h" #include "Engine/Profiler/ProfilerCPU.h" /// @@ -25,6 +26,19 @@ public: { } + ~LoadAssetTask() + { + if (Asset) + { + Asset->Locker.Lock(); + Asset->_loadFailed = true; + Asset->_isLoaded = false; + LOG(Error, "Loading asset \'{0}\' result: {1}.", ToString(), ToString(Result::TaskFailed)); + Asset->_loadingTask = nullptr; + Asset->Locker.Unlock(); + } + } + public: WeakAssetReference Asset; @@ -55,7 +69,6 @@ protected: return Result::Ok; } - void OnEnd() override { Asset = nullptr; diff --git a/Source/Engine/Platform/GDK/GDKInput.cpp b/Source/Engine/Platform/GDK/GDKInput.cpp index b0cbfbbe6..2328ae3d3 100644 --- a/Source/Engine/Platform/GDK/GDKInput.cpp +++ b/Source/Engine/Platform/GDK/GDKInput.cpp @@ -236,7 +236,7 @@ bool GDKGamepad::UpdateState() return false; } -#else +#elif PLATFORM_GDK void GDKInput::Init() {