|
@@ -85,10 +85,10 @@ SFXAmbience::ChangeSignal SFXAmbience::smChangeSignal;
|
|
SFXAmbience::SFXAmbience()
|
|
SFXAmbience::SFXAmbience()
|
|
: mDopplerFactor( 0.5f ),
|
|
: mDopplerFactor( 0.5f ),
|
|
mRolloffFactor( 1.f ),
|
|
mRolloffFactor( 1.f ),
|
|
- mSoundTrack( NULL ),
|
|
|
|
mEnvironment( NULL )
|
|
mEnvironment( NULL )
|
|
{
|
|
{
|
|
dMemset( mState, 0, sizeof( mState ) );
|
|
dMemset( mState, 0, sizeof( mState ) );
|
|
|
|
+ INIT_ASSET(SoundTrack);
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//-----------------------------------------------------------------------------
|
|
@@ -100,7 +100,7 @@ void SFXAmbience::initPersistFields()
|
|
addField( "environment", TypeSFXEnvironmentName, Offset( mEnvironment, SFXAmbience ),
|
|
addField( "environment", TypeSFXEnvironmentName, Offset( mEnvironment, SFXAmbience ),
|
|
"Reverb environment active in the ambience zone.\n"
|
|
"Reverb environment active in the ambience zone.\n"
|
|
"@ref SFX_reverb" );
|
|
"@ref SFX_reverb" );
|
|
- addField( "soundTrack", TypeSFXTrackName, Offset( mSoundTrack, SFXAmbience ),
|
|
|
|
|
|
+ INITPERSISTFIELD_SOUNDASSET(SoundTrack, SFXAmbience,
|
|
"Sound track to play in the ambience zone." );
|
|
"Sound track to play in the ambience zone." );
|
|
addField( "rolloffFactor", TypeF32, Offset( mRolloffFactor, SFXAmbience ),
|
|
addField( "rolloffFactor", TypeF32, Offset( mRolloffFactor, SFXAmbience ),
|
|
"The rolloff factor to apply to distance-based volume attenuation in this space.\n"
|
|
"The rolloff factor to apply to distance-based volume attenuation in this space.\n"
|
|
@@ -131,7 +131,8 @@ bool SFXAmbience::onAdd()
|
|
return false;
|
|
return false;
|
|
|
|
|
|
Sim::getSFXAmbienceSet()->addObject( this );
|
|
Sim::getSFXAmbienceSet()->addObject( this );
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ _setSoundTrack(getSoundTrack());
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -150,9 +151,13 @@ bool SFXAmbience::preload( bool server, String& errorStr )
|
|
{
|
|
{
|
|
if( !sfxResolve( &mEnvironment, errorStr ) )
|
|
if( !sfxResolve( &mEnvironment, errorStr ) )
|
|
return false;
|
|
return false;
|
|
-
|
|
|
|
- if( !sfxResolve( &mSoundTrack, errorStr ) )
|
|
|
|
|
|
+
|
|
|
|
+ _setSoundTrack(getSoundTrack());
|
|
|
|
+ if (!getSoundTrackProfile())
|
|
|
|
+ {
|
|
|
|
+ Con::errorf("SFXAmbience::Preload() - unable to find sfxProfile for asset %s", mSoundTrackAssetId);
|
|
return false;
|
|
return false;
|
|
|
|
+ }
|
|
|
|
|
|
for( U32 i = 0; i < MaxStates; ++ i )
|
|
for( U32 i = 0; i < MaxStates; ++ i )
|
|
if( !sfxResolve( &mState[ i ], errorStr ) )
|
|
if( !sfxResolve( &mState[ i ], errorStr ) )
|
|
@@ -169,7 +174,7 @@ void SFXAmbience::packData( BitStream* stream )
|
|
Parent::packData( stream );
|
|
Parent::packData( stream );
|
|
|
|
|
|
sfxWrite( stream, mEnvironment );
|
|
sfxWrite( stream, mEnvironment );
|
|
- sfxWrite( stream, mSoundTrack );
|
|
|
|
|
|
+ PACKDATA_ASSET(SoundTrack);
|
|
|
|
|
|
stream->write( mRolloffFactor );
|
|
stream->write( mRolloffFactor );
|
|
stream->write( mDopplerFactor );
|
|
stream->write( mDopplerFactor );
|
|
@@ -185,7 +190,7 @@ void SFXAmbience::unpackData( BitStream* stream )
|
|
Parent::unpackData( stream );
|
|
Parent::unpackData( stream );
|
|
|
|
|
|
sfxRead( stream, &mEnvironment );
|
|
sfxRead( stream, &mEnvironment );
|
|
- sfxRead( stream, &mSoundTrack );
|
|
|
|
|
|
+ UNPACKDATA_ASSET(SoundTrack);
|
|
|
|
|
|
stream->read( &mRolloffFactor );
|
|
stream->read( &mRolloffFactor );
|
|
stream->read( &mDopplerFactor );
|
|
stream->read( &mDopplerFactor );
|