From dba08998874f1b843535a9cbde36862cebfc4506 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sun, 26 Sep 2021 17:30:13 -0500 Subject: [PATCH] soundasset augments: getProfile methods, test for emptystring, initialize asset arrays lightning provides a conversion sample (attempt. it's still yelling) --- Engine/source/T3D/assets/SoundAsset.h | 15 +++++++++++++++ Engine/source/T3D/fx/lightning.cpp | 12 ++++++------ Engine/source/T3D/fx/lightning.h | 16 ---------------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/Engine/source/T3D/assets/SoundAsset.h b/Engine/source/T3D/assets/SoundAsset.h index adacf2d9b..df0ac0d6b 100644 --- a/Engine/source/T3D/assets/SoundAsset.h +++ b/Engine/source/T3D/assets/SoundAsset.h @@ -262,6 +262,12 @@ public: \ Resource get##name##Resource() \ {\ return m##name;\ + }\ + SFXProfile* get##name##Profile()\ + {\ + if (get##name() != StringTable->EmptyString() && m##name##Asset.notNull())\ + return m##name##Asset->getSfxProfile();\ + return NULL;\ } #define DECLARE_SOUNDASSET_SETGET(className, name)\ @@ -436,6 +442,8 @@ public: \ {\ m##name[index] = NULL;\ }\ + if(get##name(index) == StringTable->EmptyString())\ + return true;\ \ if (m##name##Asset[index].notNull() && m##name##Asset[index]->getStatus() != SoundAsset::Ok)\ {\ @@ -466,6 +474,12 @@ public: \ if(id >= sm##name##Count || id < 0)\ return ResourceManager::get().load( "" );\ return m##name[id];\ + }\ + SFXProfile* get##name##Profile(const U32& id)\ + {\ + if (get##name(id) != StringTable->EmptyString() && m##name##Asset[id].notNull())\ + return m##name##Asset[id]->getSfxProfile();\ + return NULL;\ } #define DECLARE_SOUNDASSET_ARRAY_SETGET(className, name)\ @@ -517,6 +531,7 @@ DefineEngineMethod(className, set##name, bool, (const char* map, S32 index), , a m##name##Name[index] = StringTable->EmptyString(); \ m##name##AssetId[index] = StringTable->EmptyString(); \ m##name##Asset[index] = NULL;\ + m##name[index] = NULL;\ } #ifdef TORQUE_SHOW_LEGACY_FILE_FIELDS diff --git a/Engine/source/T3D/fx/lightning.cpp b/Engine/source/T3D/fx/lightning.cpp index 13051d7f4..2f16f4cc0 100644 --- a/Engine/source/T3D/fx/lightning.cpp +++ b/Engine/source/T3D/fx/lightning.cpp @@ -302,11 +302,11 @@ bool LightningData::preload(bool server, String &errorStr) } for (U32 j = 0; j < MaxThunders; j++) { - if (!getThunderProfile(j)) + if (!getThunderSoundProfile(j)) Con::errorf(ConsoleLogEntry::General, "LightningData::preload: Cant get an sfxProfile for thunder."); } - if(!getSFXProfile()) + if(!getStrikeSoundProfile()) Con::errorf(ConsoleLogEntry::General, "LightningData::preload: can't get sfxProfile from asset"); mNumStrikeTextures = 0; @@ -584,7 +584,7 @@ void Lightning::scheduleThunder(Strike* newStrike) if (t <= 0.03f) { // If it's really close, just play it... U32 thunder = sgLightningRand.randI(0, mDataBlock->numThunders - 1); - SFX->playOnce(mDataBlock->getThunderProfile(thunder)); + SFX->playOnce(mDataBlock->getThunderSoundProfile(thunder)); } else { Thunder* pThunder = new Thunder; pThunder->tRemaining = t; @@ -651,7 +651,7 @@ void Lightning::advanceTime(F32 dt) // Play the sound... U32 thunder = sgLightningRand.randI(0, mDataBlock->numThunders - 1); - SFX->playOnce(mDataBlock->getThunderProfile(thunder)); + SFX->playOnce(mDataBlock->getThunderSoundProfile(thunder)); } else { pThunderWalker = &((*pThunderWalker)->next); } @@ -735,9 +735,9 @@ void Lightning::processEvent(LightningStrikeEvent* pEvent) MatrixF trans(true); trans.setPosition( strikePoint ); - if (mDataBlock->getSFXProfile()) + if (mDataBlock->getStrikeSoundProfile()) { - SFX->playOnce(mDataBlock->getSFXProfile(), &trans ); + SFX->playOnce(mDataBlock->getStrikeSoundProfile(), &trans ); } } diff --git a/Engine/source/T3D/fx/lightning.h b/Engine/source/T3D/fx/lightning.h index f639db3b2..d241257b0 100644 --- a/Engine/source/T3D/fx/lightning.h +++ b/Engine/source/T3D/fx/lightning.h @@ -92,22 +92,6 @@ class LightningData : public GameBaseData DECLARE_CONOBJECT(LightningData); static void initPersistFields(); - - SFXProfile* getThunderProfile(U32 id) - { - if (mThunderSoundAsset[id] != NULL) - return mThunderSoundAsset[id]->getSfxProfile(); - - return NULL; - } - - SFXProfile* getSFXProfile() { - if (mStrikeSoundAsset.notNull()) - return mStrikeSoundAsset->getSfxProfile(); - - return NULL; - } - };