summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/d_main.c10
-rw-r--r--src/doomdef.h1
-rw-r--r--src/doomstat.c2
-rw-r--r--src/m_menu.c1
4 files changed, 11 insertions, 3 deletions
diff --git a/src/d_main.c b/src/d_main.c
index 73978c2f..2cfc6b44 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -500,6 +500,9 @@ void D_DoAdvanceDemo (void)
// include a DEMO4 lump, so the game bombs out with an error
// when it reaches this point in the demo sequence.
+ // However! There is an alternate version of Final Doom that
+ // includes a fixed executable.
+
if (gameversion == exe_ultimate || gameversion == exe_final)
demosequence = (demosequence+1)%7;
else
@@ -659,6 +662,7 @@ static struct
{"Hacx", "hacx", exe_hacx},
{"Ultimate Doom", "ultimate", exe_ultimate},
{"Final Doom", "final", exe_final},
+ {"Final Doom (alt)", "final2", exe_final2},
{"Chex Quest", "chex", exe_chex},
{ NULL, NULL, 0},
};
@@ -675,7 +679,7 @@ static void InitGameVersion(void)
// @category compat
//
// Emulate a specific version of Doom. Valid values are "1.9",
- // "ultimate" and "final".
+ // "ultimate", "final", "final2", "hacx" and "chex".
//
p = M_CheckParmWithArgs("-gameversion", 1);
@@ -731,8 +735,10 @@ static void InitGameVersion(void)
else
{
// Final Doom: tnt or plutonia
+ // Default to the "alt" version of the executable that
+ // fixes the demo loop behavior.
- gameversion = exe_final;
+ gameversion = exe_final2;
}
}
}
diff --git a/src/doomdef.h b/src/doomdef.h
index f9cd4fd9..fa85a47f 100644
--- a/src/doomdef.h
+++ b/src/doomdef.h
@@ -107,6 +107,7 @@ typedef enum
exe_hacx, // Hacx executable (Doom 1.9 with patch applied)
exe_ultimate, // Ultimate Doom (retail)
exe_final, // Final Doom
+ exe_final2, // Final Doom (alternate exe)
exe_chex, // Chex Quest executable (based on Final Doom)
} GameVersion_t;
diff --git a/src/doomstat.c b/src/doomstat.c
index 22804459..e5fe46b2 100644
--- a/src/doomstat.c
+++ b/src/doomstat.c
@@ -32,7 +32,7 @@
// Game Mode - identify IWAD as shareware, retail etc.
GameMode_t gamemode = indetermined;
GameMission_t gamemission = doom;
-GameVersion_t gameversion = exe_final;
+GameVersion_t gameversion = exe_final2;
char *gamedescription;
// Set if homebrew PWAD stuff has been added.
diff --git a/src/m_menu.c b/src/m_menu.c
index efc4fefe..7144f715 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -820,6 +820,7 @@ void M_DrawReadThis1(void)
break;
case exe_final:
+ case exe_final2:
// Final Doom always displays "HELP".