shithub: choc

Download patch

ref: fdd80a8054e0193bf0ad2d999acb46920c575c14
parent: 6b624639374600c50e72b435a5d4ce0fe2f7a1a1
author: Simon Howard <fraggle@gmail.com>
date: Sat Mar 15 22:34:35 EDT 2014

doom: Fix behavior of M_EPI4 menu item.

Ultimate Doom's doom.exe will crash when run with an IWAD that doesn't
contain M_EPI4 (like the stock v1.9 IWAD).
Thanks to Alexandre Xavier for the bug report (fixes #344).

--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -2113,13 +2113,20 @@
 	// Episode 2 and 3 are handled,
 	//  branching to an ad screen.
       case registered:
-	// We need to remove the fourth episode.
-	EpiDef.numitems--;
 	break;
       case retail:
 	// We are fine.
       default:
 	break;
+    }
+
+    // Versions of doom.exe before the Ultimate Doom release only had
+    // three episodes; if we're emulating one of those then don't try
+    // to show episode four. If we are, then do show episode four
+    // (should crash if missing).
+    if (gameversion < exe_ultimate)
+    {
+	EpiDef.numitems--;
     }
 
     opldev = M_CheckParm("-opldev") > 0;