@@ -99,6 +99,7 @@ static bool g_isEnterKeyBuffered = false;
99
99
static bool g_canReset = false ;
100
100
static bool g_isLanguageOptionChanged = false ;
101
101
static bool g_titleAnimBegin = true ;
102
+ static EChannelConfiguration g_currentChannelConfig;
102
103
103
104
static double g_appearTime = 0.0 ;
104
105
@@ -803,7 +804,6 @@ static void DrawConfigOption(int32_t rowIndex, float yOffset, ConfigDef<T>* conf
803
804
config->Callback (config);
804
805
805
806
VideoConfigValueChangedCallback (config);
806
- XAudioConfigValueChangedCallback (config);
807
807
808
808
Game_PlaySound (" sys_worldmap_finaldecide" );
809
809
}
@@ -836,7 +836,6 @@ static void DrawConfigOption(int32_t rowIndex, float yOffset, ConfigDef<T>* conf
836
836
if (config->Value != s_oldValue)
837
837
{
838
838
VideoConfigValueChangedCallback (config);
839
- XAudioConfigValueChangedCallback (config);
840
839
841
840
if (config->ApplyCallback )
842
841
config->ApplyCallback (config);
@@ -865,7 +864,6 @@ static void DrawConfigOption(int32_t rowIndex, float yOffset, ConfigDef<T>* conf
865
864
config->MakeDefault ();
866
865
867
866
VideoConfigValueChangedCallback (config);
868
- XAudioConfigValueChangedCallback (config);
869
867
870
868
if (config->Callback )
871
869
config->Callback (config);
@@ -1250,7 +1248,7 @@ static void DrawConfigOptions()
1250
1248
DrawConfigOption (rowCount++, yOffset, &Config::MasterVolume, true );
1251
1249
DrawConfigOption (rowCount++, yOffset, &Config::MusicVolume, true );
1252
1250
DrawConfigOption (rowCount++, yOffset, &Config::EffectsVolume, true );
1253
- DrawConfigOption (rowCount++, yOffset, &Config::ChannelConfiguration, true );
1251
+ DrawConfigOption (rowCount++, yOffset, &Config::ChannelConfiguration, !OptionsMenu::s_isPause, cmnReason );
1254
1252
DrawConfigOption (rowCount++, yOffset, &Config::MusicAttenuation, AudioPatches::CanAttenuate (), &Localise (" Options_Desc_OSNotSupported" ));
1255
1253
DrawConfigOption (rowCount++, yOffset, &Config::BattleTheme, true );
1256
1254
break ;
@@ -1791,7 +1789,7 @@ void OptionsMenu::Draw()
1791
1789
DrawFadeTransition ();
1792
1790
}
1793
1791
1794
- s_isRestartRequired = Config::Language != App::s_language;
1792
+ s_isRestartRequired = Config::Language != App::s_language || Config::ChannelConfiguration != g_currentChannelConfig ;
1795
1793
}
1796
1794
1797
1795
void OptionsMenu::Open (bool isPause, SWA::EMenuType pauseMenuType)
@@ -1807,6 +1805,7 @@ void OptionsMenu::Open(bool isPause, SWA::EMenuType pauseMenuType)
1807
1805
g_categoryAnimMax = { 0 .0f , 0 .0f };
1808
1806
g_selectedItem = nullptr ;
1809
1807
g_titleAnimBegin = true ;
1808
+ g_currentChannelConfig = Config::ChannelConfiguration;
1810
1809
1811
1810
/* Store button state so we can track it later
1812
1811
and prevent the first item being selected. */
0 commit comments