From 3a8eaca10a227dd7d2715bbdf894771f5afabd88 Mon Sep 17 00:00:00 2001 From: past-due <30942300+past-due@users.noreply.github.com> Date: Mon, 28 Aug 2023 21:15:23 -0400 Subject: [PATCH] Disable groups UI for tutorial --- src/configuration.cpp | 8 ++++++-- src/frontend.cpp | 2 ++ src/ingameop.cpp | 1 + src/warzoneconfig.cpp | 11 +++++++++++ src/warzoneconfig.h | 3 +++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/configuration.cpp b/src/configuration.cpp index 2d70a08089a..8e2f68e01c9 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -390,7 +390,8 @@ bool loadConfig() war_SetCameraSpeed((v % CAMERASPEED_STEP != 0) ? CAMERASPEED_DEFAULT : v); } setShakeStatus(iniGetBool("shake", false).value()); - setGroupButtonEnabled(iniGetBool("groupmenu", true).value()); + war_setGroupsMenuEnabled(iniGetBool("groupmenu", true).value()); + setGroupButtonEnabled(war_getGroupsMenuEnabled()); setCameraAccel(iniGetBool("cameraAccel", true).value()); setDrawShadows(iniGetBool("shadows", true).value()); war_setSoundEnabled(iniGetBool("sound", true).value()); @@ -691,7 +692,7 @@ bool saveConfig() iniSetInteger("lodDistanceBias", war_getLODDistanceBiasPercentage()); iniSetBool("cameraAccel", getCameraAccel()); // camera acceleration iniSetInteger("shake", (int)getShakeStatus()); // screenshake - iniSetInteger("groupmenu", (int)getGroupButtonEnabled()); // screenshake + iniSetInteger("groupmenu", (int)war_getGroupsMenuEnabled()); // groups menu iniSetInteger("mouseflip", (int)(getInvertMouseStatus())); // flipmouse iniSetInteger("nomousewarp", (int)getMouseWarp()); // mouse warp iniSetInteger("coloredCursor", (int)war_GetColouredCursor()); @@ -931,5 +932,8 @@ bool reloadMPConfig() game.gameTimeLimitMinutes = war_getMPGameTimeLimitMinutes(); game.playerLeaveMode = war_getMPPlayerLeaveMode(); + // restore group menus enabled setting (as tutorial may override it) + setGroupButtonEnabled(war_getGroupsMenuEnabled()); + return true; } diff --git a/src/frontend.cpp b/src/frontend.cpp index e3953be5012..4a2c746b977 100644 --- a/src/frontend.cpp +++ b/src/frontend.cpp @@ -331,6 +331,7 @@ bool runTutorialMenu() case FRONTEND_TUTORIAL: SPinit(LEVEL_TYPE::CAMPAIGN); sstrcpy(aLevelName, TUTORIAL_LEVEL); + setGroupButtonEnabled(false); // hack to disable the groups UI for the tutorial changeTitleMode(STARTGAME); break; @@ -1263,6 +1264,7 @@ bool runGraphicsOptionsMenu() case FRONTEND_GROUPS: case FRONTEND_GROUPS_R: setGroupButtonEnabled(!getGroupButtonEnabled()); + war_setGroupsMenuEnabled(getGroupButtonEnabled()); // persist widgSetString(psWScreen, FRONTEND_GROUPS_R, graphicsOptionsGroupsMenuEnabled()); break; diff --git a/src/ingameop.cpp b/src/ingameop.cpp index 8b136b59ff8..0ac6e158d25 100644 --- a/src/ingameop.cpp +++ b/src/ingameop.cpp @@ -711,6 +711,7 @@ static bool runIGGraphicsOptionsMenu(UDWORD id) case INTINGAMEOP_GROUPS: case INTINGAMEOP_GROUPS_R: setGroupButtonEnabled(!getGroupButtonEnabled()); + war_setGroupsMenuEnabled(getGroupButtonEnabled()); // persist widgSetString(psWScreen, INTINGAMEOP_GROUPS_R, graphicsOptionsGroupsMenuEnabled()); break; diff --git a/src/warzoneconfig.cpp b/src/warzoneconfig.cpp index 6baf66ec59a..b298f6f8027 100644 --- a/src/warzoneconfig.cpp +++ b/src/warzoneconfig.cpp @@ -89,6 +89,8 @@ struct WARZONE_GLOBALS uint32_t shadowFilteringMode = 1; uint32_t shadowFilterSize = 5; uint32_t shadowMapResolution = 0; // this defaults to 0, which causes the gfx backend to figure out a recommended default based on the system properties + // groups UI + bool groupsMenuEnabled = true; }; static WARZONE_GLOBALS warGlobs; @@ -645,3 +647,12 @@ void war_setShadowMapResolution(uint32_t resolution) warGlobs.shadowMapResolution = resolution; } +bool war_getGroupsMenuEnabled() +{ + return warGlobs.groupsMenuEnabled; +} + +void war_setGroupsMenuEnabled(bool enabled) +{ + warGlobs.groupsMenuEnabled = enabled; +} diff --git a/src/warzoneconfig.h b/src/warzoneconfig.h index afa4605a676..463ccedd645 100644 --- a/src/warzoneconfig.h +++ b/src/warzoneconfig.h @@ -162,6 +162,9 @@ void war_setShadowFilterSize(uint32_t filterSize); uint32_t war_getShadowMapResolution(); void war_setShadowMapResolution(uint32_t resolution); +bool war_getGroupsMenuEnabled(); +void war_setGroupsMenuEnabled(bool enabled); + /** * Enable or disable sound initialization *