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()
{