SoundAsset Refactor

This commit is contained in:
marauder2k7 2025-12-12 12:27:33 +00:00
parent 9f29bee45f
commit da40838560
61 changed files with 1333 additions and 1828 deletions

View file

@ -124,9 +124,6 @@ FlyingVehicleData::FlyingVehicleData()
for (S32 j = 0; j < MaxJetEmitters; j++)
jetEmitter[j] = 0;
for (S32 i = 0; i < MaxSounds; i++)
INIT_SOUNDASSET_ARRAY(FlyingSounds, i);
vertThrustMultiple = 1.0;
}
@ -141,7 +138,7 @@ bool FlyingVehicleData::preload(bool server, String &errorStr)
if (!server) {
for (S32 i = 0; i < MaxSounds; i++)
{
if (!isFlyingSoundsValid(i))
if (!getFlyingSoundsSFXTrack(i))
{
//return false; -TODO: trigger asset download
}
@ -258,10 +255,7 @@ void FlyingVehicleData::packData(BitStream* stream)
{
Parent::packData(stream);
for (S32 i = 0; i < MaxSounds; i++)
{
PACKDATA_SOUNDASSET_ARRAY(FlyingSounds, i);
}
PACKDATA_ASSET_ARRAY_REFACTOR(FlyingSounds, MaxSounds);
for (S32 j = 0; j < MaxJetEmitters; j++)
{
@ -293,10 +287,7 @@ void FlyingVehicleData::unpackData(BitStream* stream)
{
Parent::unpackData(stream);
for (S32 i = 0; i < MaxSounds; i++)
{
UNPACKDATA_SOUNDASSET_ARRAY(FlyingSounds, i);
}
UNPACKDATA_ASSET_ARRAY_REFACTOR(FlyingSounds, MaxSounds);
for (S32 j = 0; j < MaxJetEmitters; j++) {
jetEmitter[j] = NULL;
@ -385,11 +376,11 @@ bool FlyingVehicle::onNewDataBlock(GameBaseData* dptr, bool reload)
SFX_DELETE( mJetSound );
SFX_DELETE( mEngineSound );
if ( mDataBlock->getFlyingSounds(FlyingVehicleData::EngineSound) )
mEngineSound = SFX->createSource( mDataBlock->getFlyingSoundsProfile(FlyingVehicleData::EngineSound), &getTransform() );
if ( mDataBlock->getFlyingSoundsSFXTrack(FlyingVehicleData::EngineSound) )
mEngineSound = SFX->createSource( mDataBlock->getFlyingSoundsSFXTrack(FlyingVehicleData::EngineSound), &getTransform() );
if ( mDataBlock->getFlyingSounds(FlyingVehicleData::JetSound))
mJetSound = SFX->createSource( mDataBlock->getFlyingSoundsProfile(FlyingVehicleData::JetSound), &getTransform() );
if ( mDataBlock->getFlyingSoundsSFXTrack(FlyingVehicleData::JetSound))
mJetSound = SFX->createSource( mDataBlock->getFlyingSoundsSFXTrack(FlyingVehicleData::JetSound), &getTransform() );
}
// Jet Sequences

View file

@ -46,7 +46,6 @@ struct FlyingVehicleData: public VehicleData {
MaxSounds,
};
DECLARE_SOUNDASSET_ARRAY(FlyingVehicleData, FlyingSounds, Sounds::MaxSounds);
DECLARE_ASSET_ARRAY_SETGET(FlyingVehicleData, FlyingSounds);
enum Jets {
// These enums index into a static name list.

View file

@ -158,9 +158,6 @@ HoverVehicleData::HoverVehicleData()
for (S32 j = 0; j < MaxJetEmitters; j++)
jetEmitter[j] = 0;
for (S32 i = 0; i < MaxSounds; i++)
INIT_SOUNDASSET_ARRAY(HoverSounds, i);
}
HoverVehicleData::~HoverVehicleData()
@ -313,7 +310,7 @@ bool HoverVehicleData::preload(bool server, String &errorStr)
for (S32 i = 0; i < MaxSounds; i++)
{
if (!isHoverSoundsValid(i))
if (!getHoverSoundsSFXTrack(i))
{
//return false; -TODO: trigger asset download
}
@ -365,10 +362,7 @@ void HoverVehicleData::packData(BitStream* stream)
stream->write(triggerTrailHeight);
stream->write(dustTrailFreqMod);
for (S32 i = 0; i < MaxSounds; i++)
{
PACKDATA_SOUNDASSET_ARRAY(HoverSounds, i);
}
PACKDATA_ASSET_ARRAY_REFACTOR(HoverSounds, MaxSounds);
for (S32 j = 0; j < MaxJetEmitters; j++)
{
@ -414,10 +408,7 @@ void HoverVehicleData::unpackData(BitStream* stream)
stream->read(&triggerTrailHeight);
stream->read(&dustTrailFreqMod);
for (S32 i = 0; i < MaxSounds; i++)
{
UNPACKDATA_SOUNDASSET_ARRAY(HoverSounds, i);
}
UNPACKDATA_ASSET_ARRAY_REFACTOR(HoverSounds, MaxSounds);
for (S32 j = 0; j < MaxJetEmitters; j++) {
jetEmitter[j] = NULL;
@ -539,14 +530,14 @@ bool HoverVehicle::onNewDataBlock(GameBaseData* dptr, bool reload)
SFX_DELETE( mFloatSound );
SFX_DELETE( mJetSound );
if ( mDataBlock->getHoverSounds(HoverVehicleData::EngineSound) )
mEngineSound = SFX->createSource( mDataBlock->getHoverSoundsProfile(HoverVehicleData::EngineSound), &getTransform() );
if ( mDataBlock->getHoverSoundsSFXTrack(HoverVehicleData::EngineSound) )
mEngineSound = SFX->createSource( mDataBlock->getHoverSoundsSFXTrack(HoverVehicleData::EngineSound), &getTransform() );
if ( !mDataBlock->getHoverSounds(HoverVehicleData::FloatSound) )
mFloatSound = SFX->createSource( mDataBlock->getHoverSoundsProfile(HoverVehicleData::FloatSound), &getTransform() );
if ( !mDataBlock->getHoverSoundsSFXTrack(HoverVehicleData::FloatSound) )
mFloatSound = SFX->createSource( mDataBlock->getHoverSoundsSFXTrack(HoverVehicleData::FloatSound), &getTransform() );
if ( mDataBlock->getHoverSounds(HoverVehicleData::JetSound) )
mJetSound = SFX->createSource( mDataBlock->getHoverSoundsProfile(HoverVehicleData::JetSound), &getTransform() );
if ( mDataBlock->getHoverSoundsSFXTrack(HoverVehicleData::JetSound) )
mJetSound = SFX->createSource( mDataBlock->getHoverSoundsSFXTrack(HoverVehicleData::JetSound), &getTransform() );
}
// Todo: Uncomment if this is a "leaf" class

View file

@ -882,27 +882,27 @@ void Vehicle::updatePos(F32 dt)
if (collSpeed >= mDataBlock->softImpactSpeed)
impactSound = RigidShapeData::Body::SoftImpactSound;
if (impactSound != -1 && mDataBlock->getBodySoundsProfile(impactSound) != NULL)
SFX->playOnce( mDataBlock->getBodySoundsProfile(impactSound), &getTransform() );
if (impactSound != -1 && mDataBlock->getBodySoundsSFXTrack(impactSound) != NULL)
SFX->playOnce( mDataBlock->getBodySoundsSFXTrack(impactSound), &getTransform() );
}
// Water volume sounds
F32 vSpeed = getVelocity().len();
if (!inLiquid && mWaterCoverage >= 0.8f) {
if (vSpeed >= mDataBlock->hardSplashSoundVel)
SFX->playOnce( mDataBlock->getWaterSoundsProfile(RigidShapeData::ImpactHard), &getTransform() );
SFX->playOnce( mDataBlock->getBodySoundsSFXTrack(RigidShapeData::ImpactHard), &getTransform() );
else
if (vSpeed >= mDataBlock->medSplashSoundVel)
SFX->playOnce( mDataBlock->getWaterSoundsProfile(RigidShapeData::ImpactMedium), &getTransform() );
SFX->playOnce( mDataBlock->getBodySoundsSFXTrack(RigidShapeData::ImpactMedium), &getTransform() );
else
if (vSpeed >= mDataBlock->softSplashSoundVel)
SFX->playOnce( mDataBlock->getWaterSoundsProfile(RigidShapeData::ImpactSoft), &getTransform() );
SFX->playOnce( mDataBlock->getBodySoundsSFXTrack(RigidShapeData::ImpactSoft), &getTransform() );
inLiquid = true;
}
else
if(inLiquid && mWaterCoverage < 0.8f) {
if (vSpeed >= mDataBlock->exitSplashSoundVel)
SFX->playOnce( mDataBlock->getWaterSoundsProfile(RigidShapeData::ExitWater), &getTransform() );
SFX->playOnce( mDataBlock->getBodySoundsSFXTrack(RigidShapeData::ExitWater), &getTransform() );
inLiquid = false;
}
}

View file

@ -312,8 +312,6 @@ WheeledVehicleData::WheeledVehicleData()
steeringSequence = -1;
wheelCount = 0;
dMemset(&wheel, 0, sizeof(wheel));
for (S32 i = 0; i < MaxSounds; i++)
INIT_SOUNDASSET_ARRAY(WheeledVehicleSounds, i);
mDownForce = 0;
}
@ -348,7 +346,7 @@ bool WheeledVehicleData::preload(bool server, String &errorStr)
if (!server) {
for (S32 i = 0; i < MaxSounds; i++)
{
if (!isWheeledVehicleSoundsValid(i))
if (!getWheeledVehicleSoundsSFXTrack(i))
{
//return false; -TODO: trigger asset download
}
@ -493,10 +491,7 @@ void WheeledVehicleData::packData(BitStream* stream)
stream->writeRangedU32(mPacked ? SimObjectId((uintptr_t)tireEmitter):
tireEmitter->getId(),DataBlockObjectIdFirst,DataBlockObjectIdLast);
for (S32 i = 0; i < MaxSounds; i++)
{
PACKDATA_SOUNDASSET_ARRAY(WheeledVehicleSounds, i);
}
PACKDATA_ASSET_ARRAY_REFACTOR(WheeledVehicleSounds, MaxSounds);
stream->write(maxWheelSpeed);
stream->write(engineTorque);
@ -513,10 +508,8 @@ void WheeledVehicleData::unpackData(BitStream* stream)
(ParticleEmitterData*)(uintptr_t)stream->readRangedU32(DataBlockObjectIdFirst,
DataBlockObjectIdLast): 0;
for (S32 i = 0; i < MaxSounds; i++)
{
UNPACKDATA_SOUNDASSET_ARRAY(WheeledVehicleSounds, i);
}
UNPACKDATA_ASSET_ARRAY_REFACTOR(WheeledVehicleSounds, MaxSounds);
stream->read(&maxWheelSpeed);
stream->read(&engineTorque);
@ -700,14 +693,14 @@ bool WheeledVehicle::onNewDataBlock(GameBaseData* dptr, bool reload)
SFX_DELETE( mSquealSound );
SFX_DELETE( mJetSound );
if ( mDataBlock->getWheeledVehicleSounds(WheeledVehicleData::EngineSound) )
mEngineSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsProfile(WheeledVehicleData::EngineSound), &getTransform() );
if ( mDataBlock->getWheeledVehicleSoundsSFXTrack(WheeledVehicleData::EngineSound) )
mEngineSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsSFXTrack(WheeledVehicleData::EngineSound), &getTransform() );
if ( mDataBlock->getWheeledVehicleSounds(WheeledVehicleData::SquealSound) )
mSquealSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsProfile(WheeledVehicleData::SquealSound), &getTransform() );
if ( mDataBlock->getWheeledVehicleSoundsSFXTrack(WheeledVehicleData::SquealSound) )
mSquealSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsSFXTrack(WheeledVehicleData::SquealSound), &getTransform() );
if ( mDataBlock->getWheeledVehicleSounds(WheeledVehicleData::JetSound) )
mJetSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsProfile(WheeledVehicleData::JetSound), &getTransform() );
if ( mDataBlock->getWheeledVehicleSoundsSFXTrack(WheeledVehicleData::JetSound) )
mJetSound = SFX->createSource( mDataBlock->getWheeledVehicleSoundsSFXTrack(WheeledVehicleData::JetSound), &getTransform() );
}
scriptOnNewDataBlock(reload);