From 6a3b4a6c4d29bfdcb473471320307581bc238ec5 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 26 Aug 2008 18:32:17 +0000 Subject: [PATCH] - Blood default color is set in the gameinfo now so that Chex Quest can default to green instead of red. - Fixed: The version of CheckNumForFullName that checks for a specific WAD did not work. - Moved MAPINFO names into gameinfo structure. - Added Chex Quest support. Credits go to fraggle for creating a Dehacked patch that does most of the work. The rest includes a new MAPINFO and removal of the drop items from the monsters being used. SVN r1185 (trunk) --- docs/rh-log.txt | 10 + src/d_dehacked.cpp | 8 +- src/d_dehacked.h | 2 +- src/d_main.cpp | 43 +- src/d_main.h | 1 + src/decallib.cpp | 10 +- src/g_level.cpp | 35 +- src/gi.cpp | 116 +++++ src/gi.h | 3 + src/w_wad.cpp | 6 +- wadsrc/static/chex.deh | 811 +++++++++++++++++++++++++++++++++ wadsrc/static/decaldef.txt | 20 +- wadsrc/static/mapinfo/chex.txt | 87 ++++ 13 files changed, 1099 insertions(+), 53 deletions(-) create mode 100644 wadsrc/static/chex.deh create mode 100644 wadsrc/static/mapinfo/chex.txt diff --git a/docs/rh-log.txt b/docs/rh-log.txt index c765c03da..8a7c97ec2 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,3 +1,13 @@ +August 26, 2008 (Changes by Graf Zahl) +- Blood default color is set in the gameinfo now so that Chex Quest + can default to green instead of red. +- Fixed: The version of CheckNumForFullName that checks for a specific + WAD did not work. +- Moved MAPINFO names into gameinfo structure. +- Added Chex Quest support. Credits go to fraggle for creating a + Dehacked patch that does most of the work. The rest includes a new + MAPINFO and removal of the drop items from the monsters being used. + August 23, 2008 - Added Win64 support to the crash report generator. (Pity that Win32 cannot be as informative.) diff --git a/src/d_dehacked.cpp b/src/d_dehacked.cpp index e4a4c3d8c..470bf9d67 100644 --- a/src/d_dehacked.cpp +++ b/src/d_dehacked.cpp @@ -2096,17 +2096,19 @@ static int DoInclude (int dummy) return GetLine(); } -void DoDehPatch (const char *patchfile, bool autoloading) +void DoDehPatch (const char *patchfile, bool autoloading, int lump) { char file[256]; int cont; int filelen = 0; // Be quiet, gcc - int lump; PatchFile = NULL; PatchName = NULL; - lump = Wads.CheckNumForName ("DEHACKED"); + if (lump < 0) + { + lump = Wads.CheckNumForName ("DEHACKED"); + } if (lump >= 0 && autoloading) { diff --git a/src/d_dehacked.h b/src/d_dehacked.h index 0bec21c2e..2b9e995f6 100644 --- a/src/d_dehacked.h +++ b/src/d_dehacked.h @@ -57,7 +57,7 @@ public: }; -void DoDehPatch (const char *patchfile, bool autoloading); +void DoDehPatch (const char *patchfile, bool autoloading, int lumpnum=-1); void FinishDehPatch (); #endif //__D_DEHACK_H__ diff --git a/src/d_main.cpp b/src/d_main.cpp index 21e42ca65..00bbcd649 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -147,6 +147,9 @@ extern gameinfo_t HexenDKGameInfo; extern gameinfo_t StrifeGameInfo; extern gameinfo_t StrifeTeaserGameInfo; extern gameinfo_t StrifeTeaser2GameInfo; +extern gameinfo_t ChexGameInfo; +extern gameinfo_t PlutoniaGameInfo; +extern gameinfo_t TNTGameInfo; extern int testingmode; extern bool setmodeneeded; @@ -227,6 +230,7 @@ const IWADInfo IWADInfos[NUM_IWAD_TYPES] = { "Strife: Teaser (Old Version)", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101) }, { "Strife: Teaser (New Version)", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101) }, { "Freedoom", "Freedoom", MAKERGB(50,84,67), MAKERGB(198,220,209) }, + { "Chex(R) Quest", "Chex", MAKERGB(255,255,0), MAKERGB(0,192,0) }, }; // PRIVATE DATA DEFINITIONS ------------------------------------------------ @@ -251,6 +255,7 @@ static const char *IWADNames[] = "strife1.wad", "strife0.wad", "freedoom.wad", // Freedoom.wad is distributed as Doom2.wad, but this allows to have both in the same directory. + "chex.wad", #ifdef unix "DOOM2.WAD", // Also look for all-uppercase names "PLUTONIA.WAD", @@ -264,6 +269,7 @@ static const char *IWADNames[] = "STRIFE1.WAD", "STRIFE0.WAD", "FREEDOOM.WAD", + "CHEX.WAD", #endif NULL }; @@ -1324,8 +1330,8 @@ static void SetIWAD (const char *iwadpath, EIWADType type) const gameinfo_t *Info; GameMission_t Mission; } Datas[NUM_IWAD_TYPES] = { - { commercial, &CommercialGameInfo, pack_tnt }, // Doom2TNT - { commercial, &CommercialGameInfo, pack_plut }, // Doom2Plutonia + { commercial, &TNTGameInfo, pack_tnt }, // Doom2TNT + { commercial, &PlutoniaGameInfo, pack_plut }, // Doom2Plutonia { commercial, &HexenGameInfo, doom2 }, // Hexen { commercial, &HexenDKGameInfo, doom2 }, // HexenDK { commercial, &CommercialGameInfo, doom2 }, // Doom2 @@ -1339,6 +1345,7 @@ static void SetIWAD (const char *iwadpath, EIWADType type) { commercial, &StrifeTeaserGameInfo, doom2 }, // StrifeTeaser { commercial, &StrifeTeaser2GameInfo, doom2 }, // StrifeTeaser2 { commercial, &CommercialGameInfo, doom2 }, // FreeDoom + { registered, &ChexGameInfo, doom }, // Chex Quest }; D_AddFile (iwadpath); @@ -1382,10 +1389,13 @@ static EIWADType ScanIWAD (const char *iwad) "MAP33", "INVCURS", { 'F','R','E','E','D','O','O','M' }, + "W94_1", + { 'P','O','S','S','H','0','M','0' }, "E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9", "E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9", "DPHOOF","BFGGA0","HEADA1","CYBRA1", { 'S','P','I','D','A','1','D','1' }, + }; #define NUM_CHECKLUMPS (sizeof(checklumps)/8) enum @@ -1402,6 +1412,8 @@ static EIWADType ScanIWAD (const char *iwad) Check_map33, Check_invcurs, Check_FreeDoom, + Check_W94_1, + Check_POSSH0M0, Check_e2m1 }; int lumpsfound[NUM_CHECKLUMPS]; @@ -1512,7 +1524,14 @@ static EIWADType ScanIWAD (const char *iwad) { if (lumpsfound[Check_e4m1]) { - return IWAD_UltimateDoom; + if (lumpsfound[Check_W94_1] && lumpsfound[Check_POSSH0M0]) + { + return IWAD_ChexQuest; + } + else + { + return IWAD_UltimateDoom; + } } else { @@ -2438,6 +2457,24 @@ void D_DoomMain (void) DecalLibrary.Clear (); DecalLibrary.ReadAllDecals (); + // Patch the game for Chex quest differences + if (gameinfo.flags & GI_CHEX_QUEST) + { + // remove the drop items from the zombie and shotgunguy + // (this could be done with a DECORATE lump but would need + // as much code to load it.) + PClass *info; + + info = (PClass*)PClass::FindClass("Zombieman"); + if (info) info->Meta.SetMetaInt (ACMETA_DropItems, 0); + + info = (PClass*)PClass::FindClass("ShotgunGuy"); + if (info) info->Meta.SetMetaInt (ACMETA_DropItems, 0); + + int lump = Wads.CheckNumForFullName("chex.deh", 0); + if (lump >= 0) DoDehPatch(NULL, true, lump); + } + // [RH] Try adding .deh and .bex files on the command line. // If there are none, try adding any in the config file. diff --git a/src/d_main.h b/src/d_main.h index f6dde034e..977765558 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -71,6 +71,7 @@ enum EIWADType IWAD_StrifeTeaser, IWAD_StrifeTeaser2, IWAD_FreeDoom, + IWAD_ChexQuest, NUM_IWAD_TYPES }; diff --git a/src/decallib.cpp b/src/decallib.cpp index 5027b03df..8bfce1fab 100644 --- a/src/decallib.cpp +++ b/src/decallib.cpp @@ -45,6 +45,7 @@ #include "r_draw.h" #include "a_sharedglobal.h" #include "r_translate.h" +#include "gi.h" FDecalLib DecalLibrary; @@ -515,8 +516,15 @@ void FDecalLib::ParseDecal (FScanner &sc) case DECAL_SHADE: sc.MustGetString (); + if (!sc.Compare("BloodDefault")) + { + newdecal.ShadeColor = V_GetColor (NULL, sc.String); + } + else + { + newdecal.ShadeColor = gameinfo.defaultbloodcolor; + } newdecal.RenderStyle = STYLE_Shaded; - newdecal.ShadeColor = V_GetColor (NULL, sc.String); newdecal.ShadeColor |= ColorMatcher.Pick (RPART(newdecal.ShadeColor), GPART(newdecal.ShadeColor), BPART(newdecal.ShadeColor)) << 24; diff --git a/src/g_level.cpp b/src/g_level.cpp index 5c75c5891..c0a96ee1c 100644 --- a/src/g_level.cpp +++ b/src/g_level.cpp @@ -605,41 +605,12 @@ void G_ParseMapInfo () atterm (G_UnloadMapInfo); // Parse the default MAPINFO for the current game. - switch (gameinfo.gametype) + for(int i=0; i<2; i++) { - case GAME_Doom: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/doomcommon.txt")); - switch (gamemission) + if (gameinfo.mapinfo[i] != NULL) { - case doom: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/doom1.txt")); - break; - case pack_plut: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/plutonia.txt")); - break; - case pack_tnt: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/tnt.txt")); - break; - default: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/doom2.txt")); - break; + G_DoParseMapInfo(Wads.GetNumForFullName(gameinfo.mapinfo[i])); } - break; - - case GAME_Heretic: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/heretic.txt")); - break; - - case GAME_Hexen: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/hexen.txt")); - break; - - case GAME_Strife: - G_DoParseMapInfo (Wads.GetNumForFullName ("mapinfo/strife.txt")); - break; - - default: - break; } // Parse any extra MAPINFOs. diff --git a/src/gi.cpp b/src/gi.cpp index 54112b460..749c3726f 100644 --- a/src/gi.cpp +++ b/src/gi.cpp @@ -36,6 +36,7 @@ #include "info.h" #include "gi.h" #include "m_fixed.h" +#include "v_palette.h" gameinfo_t gameinfo; @@ -96,6 +97,8 @@ gameinfo_t HexenGameInfo = "F_SKY", 24*FRACUNIT, "xlat/heretic.txt", // not really correct but this was used before. + { "mapinfo/hexen.txt", NULL }, + MAKERGB(100,0,0), }; gameinfo_t HexenDKGameInfo = @@ -125,6 +128,8 @@ gameinfo_t HexenDKGameInfo = "F_SKY", 24*FRACUNIT, "xlat/heretic.txt", // not really correct but this was used before. + { "mapinfo/hexen.txt", NULL }, + MAKERGB(100,0,0), }; gameinfo_t HereticGameInfo = @@ -154,6 +159,8 @@ gameinfo_t HereticGameInfo = "F_SKY1", 24*FRACUNIT, "xlat/heretic.txt", + { "mapinfo/heretic.txt", NULL }, + MAKERGB(100,0,0), }; gameinfo_t HereticSWGameInfo = @@ -183,6 +190,8 @@ gameinfo_t HereticSWGameInfo = "F_SKY1", 24*FRACUNIT, "xlat/heretic.txt", + { "mapinfo/heretic.txt", NULL }, + MAKERGB(100,0,0), }; gameinfo_t SharewareGameInfo = @@ -212,6 +221,8 @@ gameinfo_t SharewareGameInfo = "F_SKY1", 24*FRACUNIT, "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/doom1.txt" }, + MAKERGB(100,0,0), }; gameinfo_t RegisteredGameInfo = @@ -241,6 +252,39 @@ gameinfo_t RegisteredGameInfo = "F_SKY1", 24*FRACUNIT, "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/doom1.txt" }, + MAKERGB(100,0,0), +}; + +gameinfo_t ChexGameInfo = +{ + GI_CHEX_QUEST, + "TITLEPIC", + "CREDIT", + "HELP2", + "D_INTRO", + 5, + 0, + 200/35, + "misc/chat2", + "D_VICTOR", + "FLOOR4_8", + "HELP2", + "VICTORY2", + "ENDPIC", + { { "HELP1", "HELP2" } }, + "menu/quit1", + 2, + "FLOOR7_2", + &DoomBorder, + 0, + GAME_Doom, + 100, + "F_SKY1", + 24*FRACUNIT, + "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/chex.txt" }, + MAKERGB(95,175,87), }; gameinfo_t RetailGameInfo = @@ -270,6 +314,8 @@ gameinfo_t RetailGameInfo = "F_SKY1", 24*FRACUNIT, "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/doom1.txt" }, + MAKERGB(100,0,0), }; gameinfo_t CommercialGameInfo = @@ -299,6 +345,70 @@ gameinfo_t CommercialGameInfo = "F_SKY1", 24*FRACUNIT, "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/doom2.txt" }, + MAKERGB(100,0,0), +}; + +gameinfo_t PlutoniaGameInfo = +{ + GI_MAPxx | GI_MENUHACK_COMMERCIAL, + "TITLEPIC", + "CREDIT", + "CREDIT", + "D_DM2TTL", + 11, + 0, + 200/35, + "misc/chat", + "D_READ_M", + "SLIME16", + "CREDIT", + "CREDIT", + "CREDIT", + { { "HELP", "CREDIT" } }, + "menu/quit2", + 3, + "GRNROCK", + &DoomBorder, + 0, + GAME_Doom, + 100, + "F_SKY1", + 24*FRACUNIT, + "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/plutonia.txt" }, + MAKERGB(100,0,0), +}; + +gameinfo_t TNTGameInfo = +{ + GI_MAPxx | GI_MENUHACK_COMMERCIAL, + "TITLEPIC", + "CREDIT", + "CREDIT", + "D_DM2TTL", + 11, + 0, + 200/35, + "misc/chat", + "D_READ_M", + "SLIME16", + "CREDIT", + "CREDIT", + "CREDIT", + { { "HELP", "CREDIT" } }, + "menu/quit2", + 3, + "GRNROCK", + &DoomBorder, + 0, + GAME_Doom, + 100, + "F_SKY1", + 24*FRACUNIT, + "xlat/doom.txt", + { "mapinfo/doomcommon.txt", "mapinfo/tnt.txt" }, + MAKERGB(100,0,0), }; gameinfo_t StrifeGameInfo = @@ -328,6 +438,8 @@ gameinfo_t StrifeGameInfo = "F_SKY001", 16*FRACUNIT, "xlat/strife.txt", + { "mapinfo/strife.txt", NULL }, + MAKERGB(100,0,0), }; gameinfo_t StrifeTeaserGameInfo = @@ -357,6 +469,8 @@ gameinfo_t StrifeTeaserGameInfo = "F_SKY001", 16*FRACUNIT, "xlat/strife.txt", + { "mapinfo/strife.txt", NULL }, + MAKERGB(100,0,0), }; gameinfo_t StrifeTeaser2GameInfo = @@ -386,4 +500,6 @@ gameinfo_t StrifeTeaser2GameInfo = "F_SKY001", 16*FRACUNIT, "xlat/strife.txt", + { "mapinfo/strife.txt", NULL }, + MAKERGB(100,0,0), }; diff --git a/src/gi.h b/src/gi.h index 101074641..92234723b 100644 --- a/src/gi.h +++ b/src/gi.h @@ -47,6 +47,7 @@ #define GI_MENUHACK_COMMERCIAL 0x00000060 #define GI_ALWAYSFALLINGDAMAGE 0x00000080 #define GI_TEASER2 0x00000100 // Alternate version of the Strife Teaser +#define GI_CHEX_QUEST 0x00000200 #ifndef EGAMETYPE #define EGAMETYPE @@ -114,6 +115,8 @@ typedef struct char SkyFlatName[9]; fixed_t StepHeight; const char *translator; + const char *mapinfo[2]; + DWORD defaultbloodcolor; } gameinfo_t; extern gameinfo_t gameinfo; diff --git a/src/w_wad.cpp b/src/w_wad.cpp index d66e6b6a4..e6eb5840e 100644 --- a/src/w_wad.cpp +++ b/src/w_wad.cpp @@ -953,12 +953,12 @@ int FWadCollection::CheckNumForFullName (const char *name, int wadnum) return CheckNumForFullName (name); } - i = FirstLumpIndex[MakeKey (name) % NumLumps]; + i = FirstLumpIndex_FullName[MakeKey (name) % NumLumps]; - while (i != NULL_INDEX && + while (i != NULL_INDEX && (stricmp(name, LumpInfo[i].fullname) || LumpInfo[i].wadnum != wadnum)) { - i = NextLumpIndex[i]; + i = NextLumpIndex_FullName[i]; } return i != NULL_INDEX ? i : -1; diff --git a/wadsrc/static/chex.deh b/wadsrc/static/chex.deh new file mode 100644 index 000000000..b4621b399 --- /dev/null +++ b/wadsrc/static/chex.deh @@ -0,0 +1,811 @@ +Patch File for DeHackEd v3.0 + +# +# This is a dehacked patch for emulating the chex.exe executable that +# comes with Chex Quest. It is generated from automatic scripts used +# to compare chex.exe with Final Doom's doom2.exe. The purpose of +# this patch is to allow Chex Quest to be played accurately with +# source ports; it will not work with Vanilla Doom and DOS dehacked, +# as some of the string and cheat replacements are longer than is +# possible with dehacked. +# +# Because of the limitations of dehacked, it is not possible to +# completely emulate chex.exe merely with a dehacked patch. Although +# this patch takes care of the majority of the changes necessary, the +# following changes are also necessary to accurately emulate chex.deh: +# +# * Monsters should not drop ammo +# * The game should end after the fifth level, instead of the eighth. +# * The episode selection screen should not be displayed. +# * The level warp cheat should always warp to episode 1. +# * The automap should show the level name for the episode 1 level, +# eg. the displayed level name for E2M3 is the level name for +# E1M3. +# +# Simon Howard (fraggle) +#-- +# +# These are magic commands to Chocolate Doom to enable longer strings +# and cheats than Vanilla dehacked allows: +# +# *allow-long-strings* *allow-long-cheats* +# + +Doom version = 21 +Patch format = 6 + +Text 46 47 +are you sure you want to +quit this great game?Don't give up now...do +you still wish to quit? + +Text 49 38 +please don't leave, there's more +demons to toast!please don't leave, we +need your help! + +Text 50 38 +let's beat it -- this is turning +into a bloodbath!please don't leave, we +need your help! + +Text 50 38 +i wouldn't leave if i were you. +dos is much worse.please don't leave, we +need your help! + +Text 56 38 +you're trying to say you like dos +better than me, right?please don't leave, we +need your help! + +Text 54 38 +don't leave yet -- there's a +demon around that corner!please don't leave, we +need your help! + +Text 55 38 +ya know, next time you come in here +i'm gonna toast ya.please don't leave, we +need your help! + +Text 34 38 +go ahead and leave. see if i care.please don't leave, we +need your help! + +Text 46 47 +are you sure you want to +quit this great game?Don't give up now...do +you still wish to quit? + +Text 49 38 +you want to quit? +then, thou hast lost an eighth!please don't leave, we +need your help! + +Text 72 38 +don't go now, there's a +dimensional shambler waiting +at the dos prompt!please don't leave, we +need your help! + +Text 51 38 +get outta here and go back +to your boring programs.please don't leave, we +need your help! + +Text 53 38 +if i were your boss, i'd + deathmatch ya in a minute!please don't leave, we +need your help! + +Text 57 38 +look, bud. you leave now +and you forfeit your body count!please don't leave, we +need your help! + +Text 59 38 +just leave. when you come +back, i'll be waiting with a bat.please don't leave, we +need your help! + +Text 58 38 +you're lucky i don't smack +you for thinking about leaving.please don't leave, we +need your help! + +Text 72 70 +free memory available for DOOM to execute. Reconfigure your CONFIG.SYS +free memory available for Chex(R) Quest. Reconfigure your CONFIG.SYS + + +Text 73 70 +creating a custom boot menu item in your CONFIG.SYS for optimum DOOMing. +creating a custom boot menu item in your CONFIG.SYS for optimum play. + + +Text 53 62 +information on how to free up more memory for DOOM. + +information on how to free up more memory for Chex(R) Quest. + + + +Text 14 23 +DOOM aborted. +Chex(R) Quest aborted. + + +Text 440 104 +Once you beat the big badasses and +clean out the moon base you're supposed +to win, aren't you? Aren't you? Where's +your fat reward and ticket home? What +the hell is this? It's not supposed to +end this way! + +It stinks like rotten meat, but looks +like the lost Deimos base. Looks like +you're stuck on The Shores of Hell. +The only way out is through. + +To continue the DOOM experience, play +The Shores of Hell and its amazing +sequel, Inferno! +Mission accomplished. + +Are you prepared for the next mission? + + + + + + +Press the escape key to continue... + + +Text 466 15 +You've done it! The hideous cyber- +demon lord that ruled the lost Deimos +moon base has been slain and you +are triumphant! But ... where are +you? You clamber to the edge of the +moon and look down to see the awful +truth. + +Deimos floats above Hell itself! +You've never heard of anyone escaping +from Hell, but you'll make the bastards +sorry they ever heard of you! Quickly, +you rappel down to the surface of +Hell. + +Now, it's on to the final chapter of +DOOM! -- Inferno.You've done it! + +Text 492 14 +The loathsome spiderdemon that +masterminded the invasion of the moon +bases and caused so much death has had +its ass kicked for all time. + +A hidden doorway opens and you enter. +You've proven too tough for Hell to +contain, and now Hell at last plays +fair -- for you emerge from the door +to see the green fields of Earth! +Home at last. + +You wonder what's been happening on +Earth while you were battling evil +unleashed. It's good that no Hell- +spawn could have come through that +door with you ...Wonderful Job! + +Text 503 9 +the spider mastermind must have sent forth +its legions of hellspawn before your +final confrontation with that terrible +beast from hell. but you stepped forward +and brought forth eternal damnation and +suffering upon the horde as a true hero +would in the face of something so evil. + +besides, someone was gonna pay for what +happened to daisy, your pet rabbit. + +but now, you see spread before you more +potential pain and gibbitude as a nation +of demons run amok among our cities. + +next stop, hell on earth!Fantastic + +Text 405 6 +YOU HAVE ENTERED DEEPLY INTO THE INFESTED +STARPORT. BUT SOMETHING IS WRONG. THE +MONSTERS HAVE BROUGHT THEIR OWN REALITY +WITH THEM, AND THE STARPORT'S TECHNOLOGY +IS BEING SUBVERTED BY THEIR PRESENCE. + +AHEAD, YOU SEE AN OUTPOST OF HELL, A +FORTIFIED ZONE. IF YOU CAN GET PAST IT, +YOU CAN PENETRATE INTO THE HAUNTED HEART +OF THE STARBASE AND FIND THE CONTROLLING +SWITCH WHICH HOLDS EARTH'S POPULATION +HOSTAGE.Great! + +Text 617 10 +YOU HAVE WON! YOUR VICTORY HAS ENABLED +HUMANKIND TO EVACUATE EARTH AND ESCAPE +THE NIGHTMARE. NOW YOU ARE THE ONLY +HUMAN LEFT ON THE FACE OF THE PLANET. +CANNIBAL MUTATIONS, CARNIVOROUS ALIENS, +AND EVIL SPIRITS ARE YOUR ONLY NEIGHBORS. +YOU SIT BACK AND WAIT FOR DEATH, CONTENT +THAT YOU HAVE SAVED YOUR SPECIES. + +BUT THEN, EARTH CONTROL BEAMS DOWN A +MESSAGE FROM SPACE: "SENSORS HAVE LOCATED +THE SOURCE OF THE ALIEN INVASION. IF YOU +GO THERE, YOU MAY BE ABLE TO BLOCK THEIR +ENTRY. THE ALIEN BASE IS IN THE HEART OF +YOUR OWN HOME CITY, NOT FAR FROM THE +STARPORT." SLOWLY AND PAINFULLY YOU GET +UP AND RETURN TO THE FRAY.Way to go! + +Text 312 20 +YOU ARE AT THE CORRUPT HEART OF THE CITY, +SURROUNDED BY THE CORPSES OF YOUR ENEMIES. +YOU SEE NO WAY TO DESTROY THE CREATURES' +ENTRYWAY ON THIS SIDE, SO YOU CLENCH YOUR +TEETH AND PLUNGE THROUGH IT. + +THERE MUST BE A WAY TO CLOSE IT ON THE +OTHER SIDE. WHAT DO YOU CARE IF YOU'VE +GOT TO GO THROUGH HELL TO GET TO IT?Thanks for the help! + +Text 494 7 +THE HORRENDOUS VISAGE OF THE BIGGEST +DEMON YOU'VE EVER SEEN CRUMBLES BEFORE +YOU, AFTER YOU PUMP YOUR ROCKETS INTO +HIS EXPOSED BRAIN. THE MONSTER SHRIVELS +UP AND DIES, ITS THRASHING LIMBS +DEVASTATING UNTOLD MILES OF HELL'S +SURFACE. + +YOU'VE DONE IT. THE INVASION IS OVER. +EARTH IS SAVED. HELL IS A WRECK. YOU +WONDER WHERE BAD FOLKS WILL GO WHEN THEY +DIE, NOW. WIPING THE SWEAT FROM YOUR +FOREHEAD YOU BEGIN THE LONG TREK BACK +HOME. REBUILDING EARTH OUGHT TO BE A +LOT MORE FUN THAN RUINING IT WAS. +Great! + + +Text 164 9 +CONGRATULATIONS, YOU'VE FOUND THE SECRET +LEVEL! LOOKS LIKE IT'S BEEN BUILT BY +HUMANS, RATHER THAN DEMONS. YOU WONDER +WHO THE INMATES OF THIS CORNER OF HELL +WILL BE.Fabulous! + +Text 92 17 +CONGRATULATIONS, YOU'VE FOUND THE +SUPER SECRET LEVEL! YOU'D BETTER +BLAZE THROUGH THIS ONE! +CONGRATULATIONS! + + +Text 433 12 +You gloat over the steaming carcass of the +Guardian. With its death, you've wrested +the Accelerator from the stinking claws +of Hell. You relax and glance around the +room. Damn! There was supposed to be at +least one working prototype, but you can't +see it. The demons must have taken it. + +You must find the prototype, or all your +struggles will have been wasted. Keep +moving, keep fighting, keep killing. +Oh yes, keep living, too.Nicely done! + +Text 193 9 +Even the deadly Arch-Vile labyrinth could +not stop you, and you've gotten to the +prototype Accelerator which is soon +efficiently and permanently deactivated. + +You're good at that kind of thing.Nice Job! + +Text 328 10 +You've bashed and battered your way into +the heart of the devil-hive. Time for a +Search-and-Destroy mission, aimed at the +Gatekeeper, whose foul offspring is +cascading to Earth. Yeah, he's bad. But +you know who's worse! + +Grinning evilly, you check your gear, and +get ready to give the bastard a little Hell +of your own making!Well done! + +Text 460 12 +The Gatekeeper's evil face is splattered +all over the place. As its tattered corpse +collapses, an inverted Gate forms and +sucks down the shards of the last +prototype Accelerator, not to mention the +few remaining demons. You're done. Hell +has gone back to pounding bad dead folks +instead of good live ones. Remember to +tell your grandkids to put a rocket +launcher in your coffin. If you go to Hell +when you die, you'll need it for some +final cleaning-up ...Eat Chex(R)! + +Text 159 14 +You've found the second-hardest level we +got. Hope you have a saved game a level or +two previous. If not, be prepared to die +aplenty. For master marines only.Are you ready? + +Text 106 15 +Betcha wondered just what WAS the hardest +level we had ready for ya? Now you know. +No one gets out alive.Were you ready? + +Text 389 23 +You've fought your way out of the infested +experimental labs. It seems that UAC has +once again gulped it down. With their +high turnover, it must be hard for poor +old UAC to buy corporate health insurance +nowadays.. + +Ahead lies the military complex, now +swarming with diseased horrors hot to get +their teeth into you. With luck, the +complex still has some warlike ordnance +laying around.There's more to come... + +Text 310 22 +You hear the grinding of heavy machinery +ahead. You sure hope they're not stamping +out new hellspawn, but you're ready to +ream out a whole herd if you have to. +They might be planning a blood feast, but +you feel about as mean as two thousand +maniacs packed into one mad killer. + +You don't plan to go down easy.Keep up the good work! + +Text 309 11 +The vista opening ahead looks real damn +familiar. Smells familiar, too -- like +fried excrement. You didn't like this +place before, and you sure as hell ain't +planning to like it now. The more you +brood on it, the madder you get. +Hefting your gun, an evil grin trickles +onto your face. Time to take some names.Get ready!. + +Text 385 9 +Suddenly, all is silent, from one horizon +to the other. The agonizing echo of Hell +fades away, the nightmare sky turns to +blue, the heaps of monster corpses start +to evaporate along with the evil stench +that filled the air. Jeeze, maybe you've +done it. Have you really won? + +Something rumbles in the distance. +A blue light begins to glow inside the +ruined skull of the demon-spitter.Be Proud. + +Text 173 4 +What now? Looks totally different. Kind +of like King Tut's condo. Well, +whatever's here can't be any worse +than usual. Can it? Or maybe it's best +to let sleeping gods lie..Wow! + +Text 353 6 +Time for a vacation. You've burst the +bowels of hell and by golly you're ready +for a break. You mutter to yourself, +Maybe someone else can kick Hell's ass +next time around. Ahead lies a quiet town, +with peaceful flowing water, quaint +buildings, and presumably no Hellspawn. + +As you step off the transport, you hear +the stomp of a cyberdemon's iron shoe.Great. + +Text 9 18 +ZOMBIEMANFLEMOIDUS COMMONUS + +Text 11 19 +SHOTGUN GUYFLEMOIDUS BIPEDICUS + +Text 5 30 +DEMONFLEMOIDUS BIPEDICUS WITH ARMOR + +Text 13 13 +BARON OF HELLTHE FLEMBRANE + +Text 81 70 + The Ultimate DOOM Startup v%i.%i Chex(R) Quest Startup + +Text 80 59 + DOOM 2: Plutonia Experiment v%i.%i Chex(R) Quest + +Text 78 61 + DOOM 2: TNT - Evilution v%i.%i Chex(R) Quest + +Text 80 65 + DOOM 2: Hell on Earth v%i.%i Chex(R) Quest + +Text 55 55 + +You cannot -file with the shareware version. Register! +You cannot -file with Chex(R) Quest version. Register! + +Text 36 23 + +This is not the registered version. +This is Chex(R) Quest. + +Text 415 0 +=========================================================================== +ATTENTION: This version of DOOM has been modified. If you would like to +get a copy of the original game, call 1-800-IDGAMES or see the readme file. + You will not receive technical support for modified games. + press enter to continue +=========================================================================== + + +Text 281 0 +=========================================================================== + This version is NOT SHAREWARE, do not distribute! + Please report software piracy to the SPA: 1-800-388-PIR8 +=========================================================================== + + +Text 265 0 +=========================================================================== + Do not distribute! + Please report software piracy to the SPA: 1-800-388-PIR8 +=========================================================================== + + +Text 35 44 +R_Init: Init DOOM refresh daemon - R_Init: Init Chex(R) Quest refresh daemon - + +Text 25 25 +c:\doomdata\doomsav%c.dsgc:\doomdata\chexsav%c.dsg + +Text 13 13 +doomsav%c.dsgchexsav%c.dsg + +Text 47 57 +Different DOOM versions cannot play a net game!Different Chex(R) Quest versions cannot play a net quest! + +Text 25 25 +c:\doomdata\doomsav%d.dsgc:\doomdata\chexsav%d.dsg + +Text 13 13 +doomsav%d.dsgchexsav%d.dsg + +Text 25 25 +c:\doomdata\doomsav%d.dsgc:\doomdata\chexsav%d.dsg + +Text 13 13 +doomsav%d.dsgchexsav%d.dsg + +Text 52 53 +you can't do load while in a net game! + +press a key.you can't do load while in a net quest! + +press a key. + +Text 52 53 +quicksave over your game named + +'%s'? + +press y or n.quicksave over your quest named + +'%s'? + +press y or n. + +Text 51 52 +you can't quickload during a netgame! + +press a key.you can't quickload during a netquest! + +press a key. + +Text 61 62 +do you want to quickload the game named + +'%s'? + +press y or n.do you want to quickload the quest named + +'%s'? + +press y or n. + +Text 65 67 +you can't start a new game +while in a network game. + +press a key.you can't start a new quest +while in a network quest. + +press a key. + +Text 71 68 +are you sure? this skill level +isn't even remotely fair. + +press y or n.Careful, this will be tough. +Do you wish to continue? + +press y or n. + +Text 91 82 +this is the shareware version of doom. + +you need to order the entire trilogy. + +press a key.this is Chex(R) Quest. look for + +future levels at www.chexquest.com. + +press a key. + +Text 38 39 +you can't end a netgame! + +press a key.you can't end a netquest! + +press a key. + +Text 53 54 +are you sure you want to end the game? + +press y or n.are you sure you want to end the quest? + +press y or n. + +Text 23 19 +I'm ready to kick butt!I'm ready to zorch! + +Text 7 18 +I'm OK.I'm feeling great! + +Text 25 28 +I'm not looking too good!I'm getting pretty gooed up! + +Text 5 17 +Help!Somebody help me! + +Text 9 30 +You suck!Go back to your own dimension! + +Text 21 17 +Next time, scumbag...Stop that Flemoid + +Text 10 17 +Come here!I think I'm lost! + +Text 21 30 +I'll take care of it.I'll get you out of this gunk. + +Text 10 10 +DOOM00.pcxCHEX00.pcx + +Text 20 28 +Picked up the armor.Picked up the Chex(R) Armor. + +Text 24 34 +Picked up the MegaArmor!Picked up the Super Chex(R) Armor! + +Text 25 27 +Picked up a health bonus.Picked up a glass of water. + +Text 25 26 +Picked up an armor bonus.Picked up slime repellent. + +Text 12 22 +Supercharge!Supercharge Breakfast! + +Text 25 21 +Picked up a blue keycard.Picked up a blue key. + +Text 27 23 +Picked up a yellow keycard.Picked up a yellow key. + +Text 24 20 +Picked up a red keycard.Picked up a red key. + +Text 21 26 +Picked up a stimpack.Picked up a bowl of fruit. + +Text 41 33 +Picked up a medikit that you REALLY need!Picked up some needed vegetables! + +Text 20 31 +Picked up a medikit.Picked up a bowl of vegetables. + +Text 24 15 +Radiation Shielding SuitSlimeproof Suit + +Text 17 32 +Picked up a clip.Picked up a mini zorch recharge. + +Text 27 28 +Picked up a box of bullets.Picked up a mini zorch pack. + +Text 19 37 +Picked up a rocket.Picked up a zorch propulsor recharge. + +Text 27 33 +Picked up a box of rockets.Picked up a zorch propulsor pack. + +Text 25 37 +Picked up an energy cell.Picked up a phasing zorcher recharge. + +Text 30 33 +Picked up an energy cell pack.Picked up a phasing zorcher pack. + +Text 27 35 +Picked up 4 shotgun shells.Picked up a large zorcher recharge. + +Text 34 31 +Picked up a box of shotgun shells.Picked up a large zorcher pack. + +Text 34 21 +Picked up a backpack full of ammo!Picked up a Zorchpak! + +Text 30 23 +You got the BFG9000! Oh, yes.You got the LAZ Device! + +Text 21 26 +You got the chaingun!You got the Rapid Zorcher! + +Text 28 28 +A chainsaw! Find some meat!You got the Super Bootspork! + +Text 28 28 +You got the rocket launcher!You got the Zorch Propulsor! + +Text 23 28 +You got the plasma gun!You got the Phasing Zorcher! + +Text 20 26 +You got the shotgun!You got the Large Zorcher! + +Text 26 32 +You got the super shotgun!You got the Super Large Zorcher! + +Text 22 18 +Degreelessness Mode OnInvincible Mode On + +Text 23 19 +Degreelessness Mode OffInvincible Mode Off + +Text 20 11 +Ammo (no keys) AddedZorch Added + +Text 21 17 +Very Happy Ammo AddedSuper Zorch Added + +Text 21 16 +... doesn't suck - GM... Eat Chex(R)! + +Text 23 19 +I'm ready to kick butt!I'm ready to zorch! + +Text 7 18 +I'm OK.I'm feeling great! + +Text 25 28 +I'm not looking too good!I'm getting pretty gooed up! + +Text 5 17 +Help!Somebody help me! + +Text 9 30 +You suck!Go back to your own dimension! + +Text 21 17 +Next time, scumbag...Stop that Flemoid + +Text 10 17 +Come here!I think I'm lost! + +Text 21 30 +I'll take care of it.I'll get you out of this gunk. + +Text 12 18 +E1M1: HangarE1M1: Landing Zone + +Text 19 22 +E1M2: Nuclear PlantE1M2: Storage Facility + +Text 20 22 +E1M3: Toxin RefineryE1M3: Experimental Lab + +Text 21 15 +E1M4: Command ControlE1M4: Arboretum + +Text 16 23 +E1M5: Phobos LabE1M5: Caverns of Bazoik + +Text 22 18 +You mumble to yourselfI'm feeling great. + +Text 12 17 +Who's there?I think I'm lost. + +Text 18 8 +You scare yourselfOh No... + +Text 17 17 +You start to raveGotta break free. + +Text 17 6 +You've lost it...Hurry! + +# Frame/Thing table changes: + +Frame 537 +Duration = 3 + +Frame 538 +Duration = 3 + +Frame 539 +Duration = 0 + +Thing 2 (Zombieman) +Close attack frame = 184 +Far attack frame = 0 + +Thing 3 (Shotgun guy) +Close attack frame = 217 +Far attack frame = 0 + +Thing 16 (Boss) +Width = 2883584 +Height = 6553600 +Speed = 0 + +Thing 19 +Height = 0 + +# Cheats: + +Cheat 0 +Chainsaw = joelkoenigs +God mode = davidbrus +Ammo & Keys = scottholman +Ammo = mikekoenigs +No Clipping 1 = charlesjacobi +No Clipping 2 = charlesjacobi +Invincibility = andrewbenson +Berserk = deanhyers +Invisibility = marybregi +Radiation Suit = allen +Auto-map = digitalcafe +Lite-amp Goggles = joshuastorms +Level Warp = leesnyder +Player Position = kimhyers +Map cheat = sherrill + diff --git a/wadsrc/static/decaldef.txt b/wadsrc/static/decaldef.txt index 2cd09e1d0..46d031e02 100644 --- a/wadsrc/static/decaldef.txt +++ b/wadsrc/static/decaldef.txt @@ -108,13 +108,13 @@ decalgroup BulletChip * Blood smears crawl down walls a bit like in Blood. * * These do not need generators; the engine will create them automatically - * when something bleeds. In the future, the shade color will be ignored, + * when something bleeds. If a blood color is set, the shade color will be ignored, * and the actor's blood color will be used instead. */ decal BloodSplat1 { pic BSPLAT1 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -124,7 +124,7 @@ decal BloodSplat1 decal BloodSplat2 { pic BSPLAT2 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -134,7 +134,7 @@ decal BloodSplat2 decal BloodSplat3 { pic BSPLAT3 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -144,7 +144,7 @@ decal BloodSplat3 decal BloodSplat4 { pic BSPLAT4 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -154,7 +154,7 @@ decal BloodSplat4 decal BloodSplat5 { pic BSPLAT5 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -164,7 +164,7 @@ decal BloodSplat5 decal BloodSplat6 { pic BSPLAT6 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -174,7 +174,7 @@ decal BloodSplat6 decal BloodSplat7 { pic BSPLAT7 - shade "68 00 00" + shade "BloodDefault" x-scale 0.75 y-scale 0.75 randomflipx @@ -199,7 +199,7 @@ decal BloodSmear1 pic BSMEAR1 x-scale 0.625 y-scale 0.625 - shade "68 00 00" + shade "BloodDefault" randomflipx animator BloodSmearer } @@ -209,7 +209,7 @@ decal BloodSmear2 pic BSMEAR1 x-scale 0.625 y-scale 0.625 - shade "68 00 00" + shade "BloodDefault" randomflipx animator BloodSmearer } diff --git a/wadsrc/static/mapinfo/chex.txt b/wadsrc/static/mapinfo/chex.txt new file mode 100644 index 000000000..2c6b412ee --- /dev/null +++ b/wadsrc/static/mapinfo/chex.txt @@ -0,0 +1,87 @@ +// MAPINFO for Chex Quest + +clearepisodes +episode e1m1 + picname "M_EPI1" + key k + +// Registered/Retail Episode 1 + +map E1M1 lookup HUSTR_E1M1 +levelnum 1 +titlepatch WILV00 +next E1M2 +secretnext E1M9 +sky1 SKY1 0 +cluster 1 +par 30 +sucktime 1 +music D_E1M1 + +map E1M2 lookup HUSTR_E1M2 +levelnum 2 +titlepatch WILV01 +next E1M3 +secretnext E1M9 +sky1 SKY1 0 +cluster 1 +par 75 +sucktime 1 +music D_E1M2 + +map E1M3 lookup HUSTR_E1M3 +levelnum 3 +titlepatch WILV02 +next E1M4 +secretnext E1M9 +sky1 SKY1 0 +cluster 1 +par 120 +sucktime 1 +music D_E1M3 + +map E1M4 lookup HUSTR_E1M4 +levelnum 4 +titlepatch WILV03 +next E1M5 +secretnext E1M9 +sky1 SKY1 0 +cluster 1 +par 90 +sucktime 1 +music D_E1M4 + +map E1M5 lookup HUSTR_E1M5 +levelnum 5 +titlepatch WILV04 +next EndGame1 +secretnext E1M9 +sky1 SKY1 0 +cluster 1 +par 165 +sucktime 1 +music D_E1M5 + + +// Clusters (correspond with same-numbered episode) + +clusterdef 1 +flat FLOOR4_8 +music D_VICTOR +exittext lookup E1TEXT + +clusterdef 2 +flat SFLR6_1 +music D_VICTOR +exittext lookup E2TEXT + +clusterdef 3 +flat MFLR8_4 +music D_VICTOR +exittext lookup E3TEXT + +clusterdef 4 +flat MFLR8_3 +music D_VICTOR +exittext lookup E4TEXT +