diff options
author | Fabian Greffrath | 2015-03-30 18:13:10 +0200 |
---|---|---|
committer | Fabian Greffrath | 2015-03-30 18:13:10 +0200 |
commit | 535b4edd143ceeae870e9c13cdac65ce17e2be48 (patch) | |
tree | 11fa61069a3a5f73160913881af8f345d9312b7c /src/hexen/h2_main.c | |
parent | 833d8a838b44a950ebde587db1d888bf0a98e690 (diff) | |
parent | e0eb95922fbda64aca169d62029a5be071e1273f (diff) | |
download | chocolate-doom-535b4edd143ceeae870e9c13cdac65ce17e2be48.tar.gz chocolate-doom-535b4edd143ceeae870e9c13cdac65ce17e2be48.tar.bz2 chocolate-doom-535b4edd143ceeae870e9c13cdac65ce17e2be48.zip |
Merge pull request #523 from chocolate-doom/hexndemo
Add support for the Hexen 4 Level Demo Version
Diffstat (limited to 'src/hexen/h2_main.c')
-rw-r--r-- | src/hexen/h2_main.c | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/src/hexen/h2_main.c b/src/hexen/h2_main.c index 9d92a65b..7084ceec 100644 --- a/src/hexen/h2_main.c +++ b/src/hexen/h2_main.c @@ -93,6 +93,7 @@ extern boolean askforquit; // PUBLIC DATA DEFINITIONS ------------------------------------------------- GameMode_t gamemode; +char *gamedescription; char *iwadfile; static char demolumpname[9]; // Demo lump to start playing. boolean nomonsters; // checkparm of -nomonsters @@ -112,6 +113,7 @@ boolean autostart; boolean advancedemo; FILE *debugfile; int UpdateState; +int maxplayers = MAXPLAYERS; // PRIVATE DATA DEFINITIONS ------------------------------------------------ @@ -253,6 +255,46 @@ static void D_AddFile(char *filename) W_AddFile(filename); } +// Find out what version of Hexen is playing. + +void D_IdentifyVersion(void) +{ + // The Hexen Shareware, ne 4 Level Demo Version, is missing the SKY1 lump + // and uses the SKY2 lump instead. Let's use this fact and the missing + // levels from MAP05 onward to identify it and set gamemode accordingly. + + if (W_CheckNumForName("SKY1") == -1 && + W_CheckNumForName("MAP05") == -1 ) + { + gamemode = shareware; + maxplayers = 4; + } +} + +// Set the gamedescription string. + +void D_SetGameDescription(void) +{ +/* + NB: The 4 Level Demo Version actually prints a four-lined banner + (and indeed waits for a keypress): + + Hexen: Beyond Heretic + + 4 Level Demo Version + Press any key to continue. +*/ + + if (gamemode == shareware) + { + gamedescription = "Hexen: 4 Level Demo Version"; + } + else + { + gamedescription = "Hexen"; + } +} + //========================================================================== // // H2_Main @@ -332,11 +374,13 @@ void D_DoomMain(void) D_AddFile(iwadfile); W_CheckCorrectIWAD(hexen); + D_IdentifyVersion(); + D_SetGameDescription(); AdjustForMacIWAD(); HandleArgs(); - I_PrintStartupBanner("Hexen"); + I_PrintStartupBanner(gamedescription); ST_Message("MN_Init: Init menu system.\n"); MN_Init(); @@ -664,7 +708,7 @@ void H2_GameLoop(void) M_snprintf(filename, sizeof(filename), "debug%i.txt", consoleplayer); debugfile = fopen(filename, "w"); } - I_SetWindowTitle("Hexen"); + I_SetWindowTitle(gamedescription); I_GraphicsCheckCommandLine(); I_SetGrabMouseCallback(D_GrabMouseCallback); I_InitGraphics(); |