diff --git a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp index de028ec541c..115683b253d 100644 --- a/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp +++ b/Generals/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp @@ -880,12 +880,14 @@ static void DestroyOptionsLayout() { static void showAdvancedOptions() { - WinAdvancedDisplay->winHide(FALSE); + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(FALSE); } static void acceptAdvancedOptions() { - WinAdvancedDisplay->winHide(TRUE); + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(TRUE); } static void cancelAdvancedOptions() @@ -893,7 +895,8 @@ static void cancelAdvancedOptions() //restore the detail selection back to initial state GadgetComboBoxSetSelectedPos(comboBoxDetail, (Int)TheGameLODManager->getStaticLODLevel()); - WinAdvancedDisplay->winHide(TRUE); + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(TRUE); } // TheSuperHackers @tweak Now prints additional version information in the version label. @@ -1028,7 +1031,9 @@ void OptionsMenuInit( WindowLayout *layout, void *userData ) sliderParticleCapID = TheNameKeyGenerator->nameToKey( "OptionsMenu.wnd:ParticleCapSlider" ); sliderParticleCap = TheWindowManager->winGetWindowFromId( nullptr, sliderParticleCapID ); - WinAdvancedDisplay->winHide(TRUE); + // TheSuperHackers @bugfix The advanced display window may be missing from custom or modded layouts. + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(TRUE); Color color = GameMakeColor(255,255,255,255); diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp index 9f33223decf..893300daf18 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/GUI/GUICallbacks/Menus/OptionsMenu.cpp @@ -940,12 +940,14 @@ static void DestroyOptionsLayout() { static void showAdvancedOptions() { - WinAdvancedDisplay->winHide(FALSE); + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(FALSE); } static void acceptAdvancedOptions() { - WinAdvancedDisplay->winHide(TRUE); + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(TRUE); } static void cancelAdvancedOptions() @@ -953,7 +955,8 @@ static void cancelAdvancedOptions() //restore the detail selection back to initial state GadgetComboBoxSetSelectedPos(comboBoxDetail, (Int)TheGameLODManager->getStaticLODLevel()); - WinAdvancedDisplay->winHide(TRUE); + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(TRUE); } // TheSuperHackers @tweak Now prints additional version information in the version label. @@ -1092,7 +1095,9 @@ void OptionsMenuInit( WindowLayout *layout, void *userData ) checkPropsID = TheNameKeyGenerator->nameToKey( "OptionsMenu.wnd:CheckShowProps" ); checkProps = TheWindowManager->winGetWindowFromId( nullptr, checkPropsID); - sliderParticleCapID = TheNameKeyGenerator->nameToKey( "OptionsMenu.wnd:ParticleCapSlider" ); + // TheSuperHackers @bugfix The advanced display window may be missing from custom or modded layouts. + if (WinAdvancedDisplay) + WinAdvancedDisplay->winHide(TRUE); sliderParticleCap = TheWindowManager->winGetWindowFromId( nullptr, sliderParticleCapID ); WinAdvancedDisplay->winHide(TRUE);