diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index b79dc5f5d..7afcd6da2 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() {return (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok); } #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) {return (get##name(id) != StringTable->EmptyString() && m##name##Asset[id]->getStatus() == AssetBase::Ok); } #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..fc383810f 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() {return (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok); } #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..2d641a840 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() {return (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok); } #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) {return (get##name(id) != StringTable->EmptyString() && m##name##Asset[id]->getStatus() == AssetBase::Ok); } #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 486aca6c0..7bbbcdc15 100644 --- a/Engine/source/T3D/assets/SoundAsset.h +++ b/Engine/source/T3D/assets/SoundAsset.h @@ -234,6 +234,8 @@ public: \ {\ m##name = NULL;\ }\ + if(get##name() == StringTable->EmptyString())\ + return true;\ \ if(get##name() == StringTable->EmptyString())\ return true;\ @@ -270,7 +272,8 @@ public: \ if (get##name() != StringTable->EmptyString() && m##name##Asset.notNull())\ return m##name##Asset->getSfxProfile();\ return NULL;\ - } + }\ + bool is##name##Valid() { return (get##name() != StringTable->EmptyString() && m##name##Asset->getStatus() == AssetBase::Ok); } #define DECLARE_SOUNDASSET_SETGET(className, name)\ static bool _set##name##Data(void* obj, const char* index, const char* data)\ @@ -495,7 +498,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) {return (get##name(id) != StringTable->EmptyString() && m##name##Asset[id]->getStatus() == AssetBase::Ok); } #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 a53a1f540..dc92c1647 100644 --- a/Engine/source/T3D/fx/lightning.cpp +++ b/Engine/source/T3D/fx/lightning.cpp @@ -296,7 +296,11 @@ bool LightningData::preload(bool server, String &errorStr) { for (S32 i = 0; i < MaxThunders; i++) { +<<<<<<< HEAD if (getThunderSound(i) != StringTable->EmptyString()) +======= + if (isThunderSoundValid(i)) +>>>>>>> 2630b4ada6a97222ad1e200fa962cf426b7d4161 { _setThunderSound(getThunderSound(i), i); Con::printf("Thunder sound: %d %s", i, getThunderSound(i)); @@ -308,6 +312,7 @@ bool LightningData::preload(bool server, String &errorStr) } +<<<<<<< HEAD if (getStrikeSound() != StringTable->EmptyString()) { _setStrikeSound(getStrikeSound()); @@ -315,6 +320,10 @@ bool LightningData::preload(bool server, String &errorStr) if(!getStrikeSoundProfile()) Con::errorf(ConsoleLogEntry::General, "LightningData::preload: can't get sfxProfile from strike sound."); } +======= + if(isStrikeSoundValid() && !getStrikeSoundProfile()) + Con::errorf(ConsoleLogEntry::General, "LightningData::preload: can't get sfxProfile from asset"); +>>>>>>> 2630b4ada6a97222ad1e200fa962cf426b7d4161 mNumStrikeTextures = 0; for (U32 k = 0; k < MaxTextures; k++)