186 lines
6.7 KiB
Ucode
186 lines
6.7 KiB
Ucode
// Fix for the Music problem with the KF Main Menu
|
|
|
|
class KFUT2K4Tab_AudioSettings extends UT2K4Tab_AudioSettings;
|
|
|
|
function InternalOnChange(GUIComponent Sender)
|
|
{
|
|
local PlayerController PC;
|
|
local float AnnouncerVol;
|
|
local Sound snd;
|
|
local int AnnouncerIdx;
|
|
local bool bIsWin32;
|
|
|
|
bIsWin32 = ( ( PlatformIsWindows() ) && ( !PlatformIs64Bit() ) );
|
|
|
|
Super.InternalOnChange(Sender);
|
|
PC = PlayerOwner();
|
|
|
|
switch(Sender)
|
|
{
|
|
case sl_VoiceVol:
|
|
iVoice = sl_VoiceVol.GetValue();
|
|
AnnouncerVol = 2.0 * FClamp(0.1 + iVoice*0.225,0.2,1.0);
|
|
if ( co_StatusAnnouncer == None )
|
|
return;
|
|
|
|
snd = sound(co_StatusAnnouncer.GetObject());
|
|
if ( snd == None && Announcers.Length > 0 )
|
|
{
|
|
snd = Sound(DynamicLoadObject(Announcers[AnnouncerIdx].PackageName $ "." $ StatusPreviewSound,class'Sound'));
|
|
if ( snd == none )
|
|
snd = Sound(DynamicLoadObject(Announcers[AnnouncerIdx].FallbackPackage $ "." $ StatusPreviewSound,class'Sound'));
|
|
|
|
co_StatusAnnouncer.MyComboBox.List.SetObjectAtIndex(co_StatusAnnouncer.MyComboBox.List.Index,snd);
|
|
}
|
|
|
|
if ( snd != None )
|
|
PC.PlaySound(snd,SLOT_Talk,AnnouncerVol);
|
|
|
|
break;
|
|
|
|
case sl_MusicVol:
|
|
fMusic = sl_MusicVol.GetValue();
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice MusicVolume"@fMusic);
|
|
PC.ConsoleCommand("SetMusicVolume"@fMusic);
|
|
|
|
if( PC.Level.Song != "" && PC.Level.Song != "None" )
|
|
PC.ClientSetMusic( PC.Level.Song, MTRAN_Instant );
|
|
else PC.ClientSetMusic( class'KFGUI.KFMainMenu'.default.MenuSong, MTRAN_Instant );
|
|
break;
|
|
|
|
case sl_EffectsVol:
|
|
fEffects = sl_EffectsVol.GetValue();
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice SoundVolume"@fEffects);
|
|
PC.ConsoleCommand("stopsounds");
|
|
PC.PlaySound(sound'KF_MenuSnd.SetSoundFX');
|
|
break;
|
|
/*
|
|
case sl_TTS:
|
|
fTTS = sl_TTS.GetValue();
|
|
// Do not preview TTS voice volume, since there isn't any way to truly represent the way it will sound in-game
|
|
// PC.TextToSpeech( "Fo Shizzle my nizzle", fTTS );
|
|
break;
|
|
*/
|
|
case co_Mode:
|
|
if ( !bIsWin32 ) // Simple OpenAL abstraction... --ryan.
|
|
break;
|
|
|
|
iMode = co_Mode.GetIndex();
|
|
if (iMode > 1)
|
|
ShowPerformanceWarning();
|
|
|
|
bCompat = iMode < 1;
|
|
b3DSound = iMode > 1;
|
|
bEAX = iMode > 2;
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice CompatibilityMode"@bCompat);
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice Use3DSound"@b3DSound);
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice UseEAX"@bEAX);
|
|
PC.ConsoleCommand("SOUND_REBOOT");
|
|
|
|
// Restart music.
|
|
if( PC.Level.Song != "" && PC.Level.Song != "None" )
|
|
PC.ClientSetMusic( PC.Level.Song, MTRAN_Instant );
|
|
else PC.ClientSetMusic( class'KFGUI.KFMainMenu'.default.MenuSong, MTRAN_Instant );
|
|
break;
|
|
|
|
case ch_ReverseStereo:
|
|
bRev = ch_ReverseStereo.IsChecked();
|
|
break;
|
|
|
|
case ch_MessageBeep:
|
|
bBeep = ch_MessageBeep.IsChecked();
|
|
break;
|
|
|
|
case ch_AutoTaunt:
|
|
bAuto = ch_AutoTaunt.IsChecked();
|
|
break;
|
|
|
|
case ch_TTS:
|
|
bTTS = ch_TTS.IsChecked();
|
|
break;
|
|
|
|
case ch_MatureTaunts:
|
|
bMature = ch_MatureTaunts.IsChecked();
|
|
break;
|
|
|
|
case co_Voices:
|
|
iVoiceMode = co_Voices.GetIndex();
|
|
break;
|
|
|
|
case ch_Default:
|
|
bDefault = ch_Default.IsChecked();
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice UseDefaultDriver"@bDefault);
|
|
PC.ConsoleCommand("SOUND_REBOOT");
|
|
break;
|
|
|
|
case ch_LowDetail:
|
|
bLow = ch_LowDetail.IsChecked();
|
|
|
|
PC.Level.bLowSoundDetail = bLow;
|
|
PC.Level.StaticSaveConfig();
|
|
|
|
PC.ConsoleCommand("set ini:Engine.Engine.AudioDevice LowQualitySound"@bLow);
|
|
PC.ConsoleCommand("SOUND_REBOOT");
|
|
|
|
// Restart music.
|
|
if( PC.Level.Song != "" && PC.Level.Song != "None" )
|
|
PC.ClientSetMusic( PC.Level.Song, MTRAN_Instant );
|
|
else PC.ClientSetMusic( class'KFGUI.KFMainMenu'.default.MenuSong, MTRAN_Instant );
|
|
break;
|
|
|
|
case co_Announce:
|
|
iAnnounce = co_Announce.GetIndex();
|
|
break;
|
|
|
|
case co_RewardAnnouncer:
|
|
AnnouncerIdx = int(co_RewardAnnouncer.GetExtra());
|
|
sRewAnnouncer = Announcers[AnnouncerIdx].ClassName;
|
|
|
|
AnnouncerVol = 2.0 * FClamp(0.1 + iVoice*0.225,0.2,1.0);
|
|
snd = sound(co_RewardAnnouncer.GetObject());
|
|
if ( snd == None )
|
|
{
|
|
snd = Sound(DynamicLoadObject(Announcers[AnnouncerIdx].PackageName $ "." $ RewardPreviewSound,class'Sound'));
|
|
if ( snd == none )
|
|
snd = Sound(DynamicLoadObject(Announcers[AnnouncerIdx].FallbackPackage $ "." $ RewardPreviewSound,class'Sound'));
|
|
|
|
co_RewardAnnouncer.MyComboBox.List.SetObjectAtIndex(co_RewardAnnouncer.MyComboBox.List.Index,snd);
|
|
}
|
|
PC.PlaySound(snd,SLOT_Talk,AnnouncerVol);
|
|
break;
|
|
|
|
case co_StatusAnnouncer:
|
|
AnnouncerIdx = int(co_StatusAnnouncer.GetExtra());
|
|
sStatAnnouncer = Announcers[AnnouncerIdx].ClassName;
|
|
|
|
AnnouncerVol = 2.0 * FClamp(0.1 + iVoice*0.225,0.2,1.0);
|
|
snd = sound(co_StatusAnnouncer.GetObject());
|
|
if ( snd == None )
|
|
{
|
|
snd = Sound(DynamicLoadObject(Announcers[AnnouncerIdx].PackageName $ "." $ StatusPreviewSound,class'Sound'));
|
|
if ( snd == none )
|
|
snd = Sound(DynamicLoadObject(Announcers[AnnouncerIdx].FallbackPackage $ "." $ StatusPreviewSound,class'Sound'));
|
|
|
|
co_StatusAnnouncer.MyComboBox.List.SetObjectAtIndex(co_StatusAnnouncer.MyComboBox.List.Index,snd);
|
|
}
|
|
PC.PlaySound(snd,SLOT_Talk,AnnouncerVol);
|
|
break;
|
|
|
|
case ch_TTSIRC:
|
|
bTTSIRC = ch_TTSIRC.IsChecked();
|
|
break;
|
|
|
|
case ch_VoiceChat:
|
|
bVoiceChat = ch_VoiceChat.IsChecked();
|
|
break;
|
|
|
|
case ch_OnlyTeamTTS:
|
|
bOnlyTeamTTS = ch_OnlyTeamTTS.IsChecked();
|
|
break;
|
|
}
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
}
|