diff --git a/src/common/engine/namedef.h b/src/common/engine/namedef.h index 64d8c549017..6433972f5df 100644 --- a/src/common/engine/namedef.h +++ b/src/common/engine/namedef.h @@ -725,6 +725,8 @@ xx(Loadgamemenu) xx(Savegamemenu) xx(Readthismenu) xx(Optionsmenu) +xx(OptionsmenuSimple) +xx(OptionsmenuFull) xx(Quitmenu) xx(Savemenu) xx(Playermenu) diff --git a/src/menu/doommenu.cpp b/src/menu/doommenu.cpp index 967a65df5e2..ec50a80896a 100644 --- a/src/menu/doommenu.cpp +++ b/src/menu/doommenu.cpp @@ -71,6 +71,8 @@ EXTERN_CVAR(Bool, saveloadconfirmation) // [mxd] EXTERN_CVAR(Bool, quicksaverotation) EXTERN_CVAR(Bool, show_messages) +CVAR(Bool, m_simpleoptions, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) + typedef void(*hfunc)(); DMenu* CreateMessageBoxMenu(DMenu* parent, const char* message, int messagemode, bool playsound, FName action = NAME_None, hfunc handler = nullptr); bool OkForLocalization(FTextureID texnum, const char* substitute); @@ -189,6 +191,15 @@ bool M_SetSpecialMenu(FName& menu, int param) case NAME_Playermenu: menu = NAME_NewPlayerMenu; // redirect the old player menu to the new one. break; + + case NAME_Optionsmenu: + if (m_simpleoptions) menu = NAME_OptionsmenuSimple; + break; + + case NAME_OptionsmenuFull: + menu = NAME_Optionsmenu; + break; + } DMenuDescriptor** desc = MenuDescriptors.CheckKey(menu); diff --git a/wadsrc/static/menudef.simplified b/wadsrc/static/menudef.simplified index 8b351b2124d..c0c55d9f9b1 100644 --- a/wadsrc/static/menudef.simplified +++ b/wadsrc/static/menudef.simplified @@ -14,7 +14,7 @@ OptionMenu "OptionsMenuSimple" protected StaticText " " Submenu "$OS_TITLE", "os_Menu" StaticText " " - Submenu "$OMS_OLDGZDOOM", "OptionsMenu" + Submenu "$OPTMNU_FULLOPTIONS", "OptionsMenuFull" StaticText " " SafeCommand "$OPTMNU_DEFAULTS", "reset2defaults" SafeCommand "$OPTMNU_RESETTOSAVED", "reset2saved" diff --git a/wadsrc/static/menudef.txt b/wadsrc/static/menudef.txt index 01318f4bd47..502484d3236 100644 --- a/wadsrc/static/menudef.txt +++ b/wadsrc/static/menudef.txt @@ -78,11 +78,11 @@ LISTMENU "MainMenu" { PatchItem "M_LOADG", "l", "LoadGameMenu", 0 PatchItem "M_SAVEG", "s", "SaveGameMenu",0 - PatchItem "M_OPTION","o", "OptionsMenuSimple", 0 + PatchItem "M_OPTION","o", "OptionsMenu", 0 } else { - PatchItem "M_OPTION","o", "OptionsMenuSimple", 0 + PatchItem "M_OPTION","o", "OptionsMenu", 0 PatchItem "M_LOADG", "l", "LoadGameMenu", 0 PatchItem "M_SAVEG", "s", "SaveGameMenu", 0 } @@ -96,7 +96,7 @@ LISTMENU "MainMenu" IfGame(Heretic, Hexen) { TextItem "$MNU_NEWGAME", "n", "PlayerclassMenu" - TextItem "$MNU_OPTIONS", "o", "OptionsMenuSimple" + TextItem "$MNU_OPTIONS", "o", "OptionsMenu" TextItem "$MNU_GAMEFILES", "g", "GameFilesMenu" TextItem "$MNU_INFO", "i", "ReadThisMenu" TextItem "$MNU_QUITGAME", "q", "QuitMenu" @@ -382,6 +382,8 @@ OptionMenu "OptionsMenu" protected Submenu "$OPTMNU_VIDEO", "VideoModeMenu" StaticText " " Submenu "$OS_TITLE", "os_Menu" + Option "$OPTMNU_SIMPLEON", "m_simpleoptions", "OnOff" + StaticText " " SafeCommand "$OPTMNU_DEFAULTS", "reset2defaults" SafeCommand "$OPTMNU_RESETTOSAVED", "reset2saved"