From 776741770db23fb0684d81b65eddd0d1aed295c5 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 28 Sep 2021 18:16:14 -0500 Subject: [PATCH] boolean isvalid chjecks for assets. tests wether it's non-empty and reporting zero flaws --- Engine/source/T3D/assets/ImageAsset.h | 6 ++++-- Engine/source/T3D/assets/MaterialAsset.h | 3 ++- Engine/source/T3D/assets/ShapeAsset.h | 6 ++++-- Engine/source/T3D/assets/SoundAsset.h | 6 ++++-- Engine/source/T3D/fx/lightning.cpp | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index b79dc5f5d..57155ff2f 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -270,7 +270,8 @@ public: \ GFXTexHandle get##name##Resource() \ {\ return m##name;\ - } + }\ + bool name##Valid() { (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_IMAGEASSET_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ @@ -494,7 +495,8 @@ public: \ if(index >= sm##name##Count || index < 0)\ return nullptr;\ return m##name[index];\ - } + }\ + bool name##Valid(const U32& id) { (get##name(id) != StringTable->EmptyString() && m##name##Asset[id]->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_IMAGEASSET_ARRAY_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ diff --git a/Engine/source/T3D/assets/MaterialAsset.h b/Engine/source/T3D/assets/MaterialAsset.h index c747be793..e9a74174a 100644 --- a/Engine/source/T3D/assets/MaterialAsset.h +++ b/Engine/source/T3D/assets/MaterialAsset.h @@ -259,7 +259,8 @@ public: \ SimObjectPtr get##name##Resource() \ {\ return m##name;\ - } + }\ + bool is##name##Valid() { (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_MATERIALASSET_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ diff --git a/Engine/source/T3D/assets/ShapeAsset.h b/Engine/source/T3D/assets/ShapeAsset.h index d3af516c5..055ecdb42 100644 --- a/Engine/source/T3D/assets/ShapeAsset.h +++ b/Engine/source/T3D/assets/ShapeAsset.h @@ -321,7 +321,8 @@ public: \ Resource get##name##Resource() \ {\ return m##name;\ - } + }\ + bool is##name##Valid() { (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_SHAPEASSET_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ @@ -522,7 +523,8 @@ public: \ if(index >= sm##name##Count || index < 0)\ return ResourceManager::get().load( "" );\ return m##name[index];\ - } + }\ + bool is##name##Valid(const U32& id) { (get##name(id) != StringTable->EmptyString() && m##name##Asset[id]->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_SHAPEASSET_ARRAY_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ diff --git a/Engine/source/T3D/assets/SoundAsset.h b/Engine/source/T3D/assets/SoundAsset.h index d6baadbbf..2f70b83c7 100644 --- a/Engine/source/T3D/assets/SoundAsset.h +++ b/Engine/source/T3D/assets/SoundAsset.h @@ -270,7 +270,8 @@ public: \ if (get##name() != StringTable->EmptyString() && m##name##Asset.notNull())\ return m##name##Asset->getSfxProfile();\ return NULL;\ - } + }\ + bool is##name##Valid() { (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_SOUNDASSET_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ @@ -485,7 +486,8 @@ public: \ if (get##name(id) != StringTable->EmptyString() && m##name##Asset[id].notNull())\ return m##name##Asset[id]->getSfxProfile();\ return NULL;\ - } + }\ + bool is##name##Valid(const U32& id) { (get##name(id) != StringTable->EmptyString() && m##name##Asset[id]->getStatus() == AssetBase::Ok) ? true : false; } #define DECLARE_SOUNDASSET_ARRAY_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ diff --git a/Engine/source/T3D/fx/lightning.cpp b/Engine/source/T3D/fx/lightning.cpp index 8f1ba8bf6..905615a3d 100644 --- a/Engine/source/T3D/fx/lightning.cpp +++ b/Engine/source/T3D/fx/lightning.cpp @@ -296,7 +296,7 @@ bool LightningData::preload(bool server, String &errorStr) { for (S32 i = 0; i < MaxThunders; i++) { - if (getThunderSound(i)) + if (isThunderSoundValid(i)) { _setThunderSound(getThunderSound(i), i); if (!getThunderSoundProfile(i)) @@ -304,7 +304,7 @@ bool LightningData::preload(bool server, String &errorStr) } } - if(getStrikeSound() && !getStrikeSoundProfile()) + if(isStrikeSoundValid() && !getStrikeSoundProfile()) Con::errorf(ConsoleLogEntry::General, "LightningData::preload: can't get sfxProfile from asset"); mNumStrikeTextures = 0;