From cd3aa10cd0e30deee730c882ffd50c065e09c9b9 Mon Sep 17 00:00:00 2001 From: James R Date: Wed, 10 Apr 2024 05:53:06 -0700 Subject: [PATCH] Menus/Video/Advanced: message box to confirm switching to Legacy GL --- src/k_menufunc.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/k_menufunc.c b/src/k_menufunc.c index 25460a6d1..13657dc0a 100644 --- a/src/k_menufunc.c +++ b/src/k_menufunc.c @@ -176,9 +176,41 @@ void M_ChangeCvarDirect(INT32 choice, consvar_t *cv) } } +static void M_ChangeCvarResponse(INT32 choice) +{ + if (choice != MA_YES) + return; + + consvar_t *cvar = currentMenu->menuitems[itemOn].itemaction.cvar; + M_ChangeCvarDirect(choice, cvar); +} + static void M_ChangeCvar(INT32 choice) { - M_ChangeCvarDirect(choice, currentMenu->menuitems[itemOn].itemaction.cvar); + consvar_t *cvar = currentMenu->menuitems[itemOn].itemaction.cvar; + +#ifdef HWRENDER + if (cvar == &cv_renderer && + // Switching from Software [to Legacy GL] + cv_renderer.value == 1 && + // Not setting to default (ie changing the value) + choice != -1) + { + M_StartMessage( + "Switching to Legacy GL", + "Legacy GL is \x85" "INCOMPLETE and BROKEN.\x80\n" + "\n" + "ARE YOU SURE?", + M_ChangeCvarResponse, + MM_YESNO, + NULL, + NULL + ); + return; + } +#endif + + M_ChangeCvarDirect(choice, cvar); } static const char *M_QueryCvarAction(const char *replace)