shithub: choc

Download patch

ref: 3608dddd5931966563e9b766836fc002287d206d
parent: 084587ecb43ea3acdc43db3f583d657ff0219b2a
author: Fabian Greffrath <fabian@greffrath.com>
date: Tue Oct 21 02:56:21 EDT 2014

bfgedition: remap menu graphics by means of DEH_AddStringReplacement()

during the initialization instead of a hard-coded diversion in the
options menu itself

--- a/src/doom/d_main.c
+++ b/src/doom/d_main.c
@@ -1363,6 +1363,19 @@
         DEH_AddStringReplacement(HUSTR_31, "level 31: idkfa");
         DEH_AddStringReplacement(HUSTR_32, "level 32: keen");
         DEH_AddStringReplacement(PHUSTR_1, "level 33: betray");
+
+        // The BFG edition doesn't have the "low detail" menu option (fair
+        // enough). But bizarrely, it reuses the M_GDHIGH patch as a label
+        // for the options menu (says "Fullscreen:"). Why the perpetrators
+        // couldn't just add a new graphic lump and had to reuse this one,
+        // I don't know.
+        //
+        // The end result is that M_GDHIGH is too wide and causes the game
+        // to crash. As a workaround to get a minimum level of support for
+        // the BFG edition IWADs, use the "ON"/"OFF" graphics instead.
+
+        DEH_AddStringReplacement("M_GDHIGH", "M_MSGON");
+        DEH_AddStringReplacement("M_GDLOW", "M_MSGOFF");
     }
 
 #ifdef FEATURE_DEHACKED
--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -983,32 +983,12 @@
 
 void M_DrawOptions(void)
 {
-    char *detail_patch;
-
     V_DrawPatchDirect(108, 15, W_CacheLumpName(DEH_String("M_OPTTTL"),
                                                PU_CACHE));
-
-    // Workaround for BFG edition IWAD weirdness.
-    // The BFG edition doesn't have the "low detail" menu option (fair
-    // enough). But bizarrely, it reuses the M_GDHIGH patch as a label
-    // for the options menu (says "Fullscreen:"). Why the perpetrators
-    // couldn't just add a new graphic lump and had to reuse this one,
-    // I don't know.
-    //
-    // The end result is that M_GDHIGH is too wide and causes the game
-    // to crash. As a workaround to get a minimum level of support for
-    // the BFG edition IWADs, use the "ON"/"OFF" graphics instead.
-    if (bfgedition)
-    {
-        detail_patch = msgNames[!detailLevel];
-    }
-    else
-    {
-        detail_patch = detailNames[detailLevel];
-    }
-
+	
     V_DrawPatchDirect(OptionsDef.x + 175, OptionsDef.y + LINEHEIGHT * detail,
-		      W_CacheLumpName(DEH_String(detail_patch), PU_CACHE));
+		      W_CacheLumpName(DEH_String(detailNames[detailLevel]),
+			              PU_CACHE));
 
     V_DrawPatchDirect(OptionsDef.x + 120, OptionsDef.y + LINEHEIGHT * messages,
                       W_CacheLumpName(DEH_String(msgNames[showMessages]),