Skip to content

Instantly share code, notes, and snippets.

@Azaezel
Created December 14, 2020 21:51
Show Gist options
  • Save Azaezel/d3408d918052879a33a5639a4c860a85 to your computer and use it in GitHub Desktop.
Save Azaezel/d3408d918052879a33a5639a4c860a85 to your computer and use it in GitHub Desktop.
crossfade script example
function updateIngameMusic(%troubleState)
{
if (!isObject(ClientMissionCleanup)) return;
%volumeFloor = 0.001 * AudioChannelMaster.getVolume() * $AudioChannels[$MusicAudioType].getVolume();
$tracking::volumeCeiling = %volumeCeiling;
%volumeCeiling = AudioChannelMaster.getVolume() * $AudioChannels[$MusicAudioType].getVolume();
if (!isObject($songPositionList)) return;
if ($prevSongSuffix == %troubleState) $VolumeChange = 0.05 * %volumeCeiling;
else $VolumeChange=0;
$songEmissionCount = $songPositionList.count();
for (%i=0; %i<$songEmissionCount; %i++)
{
for (%stress=0; %stress<3; %stress++)
{
if(!isObject( $LevelMusic[%i,%stress]))
{
$LevelMusic[%i,%stress] = sfxPlay($songPrefix @ %stress, $songPositionList.getKey(%i));
ClientMissionCleanup.add($LevelMusic[%i,%stress]);
if (%stress == %troubleState)
$LevelMusic[%i,%stress].setVolume(%volumeCeiling);
else
$LevelMusic[%i,%stress].setVolume(%volumeFloor);
}
if (%stress == %troubleState)
{
%volume = $LevelMusic[%i,%stress].getVolume() + $VolumeChange;
if ((%volume > %volumeCeiling * 0.9)||($tracking::volumeCeiling != %volumeCeiling))
%volume = %volumeCeiling;
if ($LevelMusic[%i,%stress].getVolume() != %volume)
$LevelMusic[%i,%stress].setVolume(%volume);
}
else
{
%volume = $LevelMusic[%i,%stress].getVolume() - $VolumeChange;
if (%volume <%volumeFloor * 1.1)
%volume = %volumeFloor;
if ($LevelMusic[%i,%stress].getVolume() != %volume)
$LevelMusic[%i,%stress].setVolume(%volume);
}
}
}
//error("stress:"@ %troubleState @" 0:"@ $LevelMusic[0,0].getVolume() @" 1:"@ $LevelMusic[0,1].getVolume() @" 2:"@ $LevelMusic[0,2].getVolume() @" volumeCeiling:"@ %volumeCeiling );
$prevSongSuffix = %troubleState;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment