ref: ef586e36e0a871bd1cc9222148a47605d1b554a5
parent: 1ce76006eede7aa1bd45176901fc2fb918e5e162
author: Simon Howard <fraggle@gmail.com>
date: Sun Sep 18 19:15:58 EDT 2011
Fix a minor annoyance with Strife startup - we are *not* emulating the "Final Doom" executable. -gameversion processing code remains in case support for other Strife versions is desired in the future. Strip out some redundant gameversion / chex stuff as well. Subversion-branch: /branches/v2-branch Subversion-revision: 2385
--- a/src/strife/d_main.c
+++ b/src/strife/d_main.c
@@ -945,21 +945,6 @@
M_CreateSaveDirs(savegamedir);
}
-// Check if the IWAD file is the Chex Quest IWAD.
-// Returns true if this is chex.wad.
-// haleyjd 08/23/10: there is no Chex Quest based on Strife,
-// though I must admit that makes an intriguing idea....
-/*
-static boolean CheckChex(char *iwadname)
-{
- char *chex_iwadname = "chex.wad";
-
- return (strlen(iwadname) > strlen(chex_iwadname)
- && !strcasecmp(iwadname + strlen(iwadname) - strlen(chex_iwadname),
- chex_iwadname));
-}
-*/
-
// print title for every printed line
char title[128];
@@ -1027,10 +1012,7 @@
char *cmdline;
GameVersion_t version;
} gameversions[] = {
- {"Doom 1.9", "1.9", exe_doom_1_9},
- {"Ultimate Doom", "ultimate", exe_ultimate},
- {"Final Doom", "final", exe_final},
- {"Chex Quest", "chex", exe_chex},
+ {"Strife 1.31", "1.31", exe_strife_1_31},
{ NULL, NULL, 0},
};
@@ -1041,12 +1023,15 @@
int p;
int i;
+ // This is mostly redundant for now, as we only support
+ // Strife v1.31. But perhaps in the future we might decide
+ // to support older versions ...
+
//!
// @arg <version>
// @category compat
//
- // Emulate a specific version of Doom. Valid values are "1.9",
- // "ultimate" and "final".
+ // Emulate a specific version of Doom. Valid values are "1.31".
//
p = M_CheckParmWithArgs("-gameversion", 1);
@@ -1061,7 +1046,7 @@
break;
}
}
-
+
if (gameversions[i].description == NULL)
{
printf("Supported game versions:\n");
@@ -1071,53 +1056,14 @@
printf("\t%s (%s)\n", gameversions[i].cmdline,
gameversions[i].description);
}
-
+
I_Error("Unknown game version '%s'", myargv[p+1]);
}
}
else
{
- // Determine automatically
-
- // haleyjd 08/23/10: Removed Chex mode, as it is irrelevant to Strife
- if (gamemode == shareware || gamemode == registered)
- {
- // original
-
- gameversion = exe_doom_1_9;
- }
- else if (gamemode == retail)
- {
- gameversion = exe_ultimate;
- }
- else if (gamemode == commercial)
- {
- if (gamemission == doom2)
- {
- gameversion = exe_doom_1_9;
- }
- else
- {
- // Final Doom: tnt or plutonia
-
- gameversion = exe_final;
- }
- }
+ gameversion = exe_strife_1_31;
}
-
- // The original exe does not support retail - 4th episode not supported
-
- if (gameversion < exe_ultimate && gamemode == retail)
- {
- gamemode = registered;
- }
-
- // EXEs prior to the Final Doom exes do not support Final Doom.
-
- if (gameversion < exe_final && gamemode == commercial)
- {
- gamemission = doom2;
- }
}
void PrintGameVersion(void)
@@ -1135,34 +1081,6 @@
}
}
-// Load the Chex Quest dehacked file, if we are in Chex mode.
-// haleyjd 08/23/2010: Removed, as irrelevant to Strife.
-/*
-static void LoadChexDeh(void)
-{
- char *chex_deh;
-
- if (gameversion == exe_chex)
- {
- chex_deh = D_FindWADByName("chex.deh");
-
- if (chex_deh == NULL)
- {
- I_Error("Unable to find Chex Quest dehacked file (chex.deh).\n"
- "The dehacked file is required in order to emulate\n"
- "chex.exe correctly. It can be found in your nearest\n"
- "/idgames repository mirror at:\n\n"
- " utils/exe_edit/patches/chexdeh.zip");
- }
-
- if (!DEH_LoadFile(chex_deh))
- {
- I_Error("Failed to load chex.deh needed for emulating chex.exe.");
- }
- }
-}
-*/
-
// Function called at exit to display the ENDOOM screen
static void D_Endoom(void)
@@ -1726,7 +1644,6 @@
D_IdentifyVersion();
InitGameVersion();
- //LoadChexDeh(); - haleyjd: removed, as irrelevant to Strife
D_SetGameDescription();
SetSaveGameDir(iwadfile);
--- a/src/strife/doomstat.c
+++ b/src/strife/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_strife_1_31;
char *gamedescription;
// Set if homebrew PWAD stuff has been added.
--- a/src/strife/p_mobj.c
+++ b/src/strife/p_mobj.c
@@ -350,33 +350,7 @@
{
// hit the floor
- // Note (id):
- // somebody left this after the setting momz to 0,
- // kinda useless there.
- //
- // cph - This was the a bug in the linuxdoom-1.10 source which
- // caused it not to sync Doom 2 v1.9 demos. Someone
- // added the above comment and moved up the following code. So
- // demos would desync in close lost soul fights.
- // Note that this only applies to original Doom 1 or Doom2 demos - not
- // Final Doom and Ultimate Doom. So we test demo_compatibility *and*
- // gamemission. (Note we assume that Doom1 is always Ult Doom, which
- // seems to hold for most published demos.)
- //
- // fraggle - cph got the logic here slightly wrong. There are three
- // versions of Doom 1.9:
- //
- // * The version used in registered doom 1.9 + doom2 - no bounce
- // * The version used in ultimate doom - has bounce
- // * The version used in final doom - has bounce
- //
- // So we need to check that this is either retail or commercial
- // (but not doom2)
-
- // [STRIFE] not applicable
- //int correct_lost_soul_bounce = gameversion >= exe_ultimate;
-
- if (/*correct_lost_soul_bounce &&*/ mo->flags & MF_BOUNCE)
+ if (mo->flags & MF_BOUNCE)
{
// the skull slammed into something
// villsa [STRIFE] affect reactiontime