Ty Halderman - change log and diary 10/04/98 If -warp without a level number was used without having specified a PWAD, it would correctly warp to the first map in the IWAD but would report to the screen that it was warping to the highest map number (typically MAP32). Discovered and fixed a potential out of range subscript while fixing that message. 9/13/98 Fixed looping bug in new -warp routine that would print the wrong map name to the console, though it would still warp correctly. Only occurred with DOOM 1 or Ultimate DOOM. Updated documentation in BOOMDEH.TXT to match actual Thing bit mnemonics for unused bits 27-30 as "UNUSED1...UNUSED4" 8/29/98 Added the ability to put files on the command line and have them understood without the -file, -deh and -playdemo switches, so long as they come before the first -switch on the line. A file with no extension is assumed a .wad file. .bex and .deh files are handled as if they were preceded by -deh, and .lmp files are handled as if they were preceded by -loadfile Added functionality to the -warp parameter. If -warp does not have any map number after it, then the game will automatically warp to the first map of all files loaded at the command line. This allows a pwad to be run without concern for where the actual maps start. Added a new element to the lumpinfo_t structure: source This is set to an enum of source_iwad, source_pwad, source_lmp or source_pre (that latter indicates a predefined lump in the EXE, and the others should be obvious). Anywhere that the source of a lump needs to be determined, just use lumpinfo[i].source. This is used in the -warp functionality above, to allow searching for the first pwad-loaded map. Affected: W_WAD.C, W_WAD.H, D_MAIN.C, D_MAIN.H. Note many object files became obsolete with these .H changes and had to be recompiled. Changed BOOM.TXT to describe the above functionality with sections marked *New: 8/28/98 Fixed map names and intermission texts to properly display for Final DOOM episodes The Plutonia Experiment and TNT:Evilution. This also fixes the title display during startup. Added a new mnemonic feature to BEX to allow characteristics of a Thing to be set by real words and not just a huge "bits" number. Full list of default Thing bits included, along with documentation on the mnemonics, in BOOMDEH.TXT. Affected: BOOMDEH.TXT, D_DEH.C, HU_STUFF.C, F_FINALE.C 7/11/98 Fixed par times parsing and assignment problems. Had overcompensated for non-zero based arrays, and other general confusion. Now supports MAP[01-32] and E[1-3]M[1-9]. Note Ultimate DOOM never did have par times and so E4xx is not supported. Also corrected multi-line comments in D_DEH.H (thanks to Florian Schultze) 6/01/98 Altered a pointer assignment statement for compatibility with GCC v2.8.1 5/17/98 Fixed a bug that would process the last line of each deh/bex file twice. 5/16/98 Added a NULL entry to the code pointer mnemonics to allow an already existing code pointer to be cleared with BEX codepointers. Also fixed a bad looping logic in that area that would have caused segv's if it had encountered invalid BEX Codepointer entries in a file. Affected: D_DEH.C, BOOMDEH.TXT 5/4/98 Completed reformatting and commenting of my assigned files, except for some that are shared that I'm the last one in line for. Added support in BEX strings for the savegamename prefix (default boomsav) so that TC's can have their own savegames (and people can have sets of them without having to make subdirs if desired). Affected: G_GAME.C, D_DEH.C, D_DEH.H, DSTRINGS.H, BOOMDEH.TXT 4/26/98 Added mnemonic support for code pointer changing in BEX files. This will allow anyone to plug any of the code pointers in by a readable name, not only into the existing frames where pointers are used, but into any of the frames. BOOMDEH.TXT expanded considerably with a full table of all existing default code pointers in the engine. Affected: D_DEH.C, BOOMDEH.TXT, BOOM.TXT 4/24/98 Fixed a bug in multiple string reading from a .BEX file if the continuation strings started with a blank. This was advertised to be able to work, with leading blanks removed during string concatenation, but it was broken. Affected: D_DEH.C Put strings back to deh-modifiable for GAMMALVL0-4, which were removed sometime around 3/23 during a merge. Affected: M_MENU.C Re-removed IDK cheat. Affected: ST_STUFF.C Removed some "draft" comments from BOOMDEH.TXT Affected: BOOMDEH.TXT Updated DEEP97 information and some of the Dehacked support info in the BOOM.TXT file. Updated the date at the top to 4/24/98. Affected: BOOM.TXT 4/11/98 Changes based on sources as of 9:32AM 11 Apr Fixed Par times entry [PARS] for bex format, documented it in BOOMDEH. Corrected logic in WI_STUFF.C to show pars unless there is a pwad but no deh pars patch. Found silly problem due to zero-based arrays for DOOM2, 1-based for DOOM. Affected: WI_STUFF.C, D_DEH.C Removed IDK cheat and replaced it with TNTKA to give all keys. cheat_k() is still used, but no longer displays its own message, and IDK can't invoke it separately. Per email earlier: People were having problems with this because of dehacked patches that expected to be able to change the IDKFA cheat but IDK would trigger first. Affected: ST_STUFF.C Added the ability to load consecutive DEH/BEX files at the command line. Each one is still given a default extension of BEX, then DEH if not specified on the command line. Changed the point at which the DEHOUT.TXT file is erased so it'll hold all of one session's entries. Added a line to that log file, identifying the file path being loaded. Affected: D_MAIN.C Added INCLUDE capability in BEX files, no nesting, with the optional parameter NOTEXT. The notext flag says to ignore any DEH-style text blocks, since they've probably been redone in BEX and we just want the other stuff. Note that text changes are cumulative other than sprite names and such. If you change X to Y and then try to change X to Z, it won't find X any more because it's now Y. Affected: D_DEH.C Note that comments about BEX design down around 3/20 in this file are not the way it was implemented after all. Documented use of INCLUDE, PARS and the new banner strings STARTUPn. Affected: BOOMDEH.TXT 4/7/98 Added the logic to go searching through the default strings for text changes, if found in the old DEH style. This should be a stopgap fix to handle lots of text changes, so long as they are supported as valid things to change in BOOM. Should be transparent to the users--text hacks will just start working. Also fixed par times settings, new in BOOM. More docs coming later. 3/30/98 Fixed up the text change stuff using the [STRINGS] block separator. There is now a big descriptive file BOOMDEH.TXT that contains information on all 300+ strings that can be changed. Found a bug where the included \n in a string read in wasn't being changed to a real linefeed, so entries which were supposed to split lines wouldn't. Added new entries in the [STRINGS] area to change the background tiled flat textures for behind the intermission texts. 3/27/98 Finally got the deh changes in that I think are needed to complete this monster. The usual DEH files seem to work ok, and I've got the arrays built to be able to implement the externalized text strings, etc (see 3/20 specs). The main goal of this run is to merge the changes so far, so we're all caught up. More work tomorrow on making the functions work right and creating several test deh files. Files changed: D_DEH C WI_STUFF C M_MENU C HU_STUFF C AM_MAP C ST_STUFF C P_DOORS C P_SPEC C P_INTER C G_GAME C D_DEH H 3/20/98 Designed bex format for new text and extension entries (this will go in a separate doc later): 1. Replacement level names in the automap: [LEVELS] ExMx = text MAPxx = text 2. Replacement sprite names [SPRITES] TROO = IMPY # 4-character sprite names can be replaced by another 4-character name # Only a full 4-character name will be accepted for key or value, and # it is the _original_ entry that will be checked for replacement. There # won't be any cascading effect, so you could successfully use: TROO = POSS POSS = SPOS SPOS = TROO # and not have any problems with it. 3. Replacement sound names [SOUNDS] PSTOP = platwhoa PSTART = platgo BSPWLK = tread1 BAREXP = Zowie # The key must be the name of a sound entry in DOOM, without the # leading "S_" (ignored if present). "P_" PC sounds aren't supported # at this time. 4. Replacement music names [MUSICS] E1M1 = mymusic BUNNY = rabbitsong MAP04 = fred # Valid keys for DOOM2 music can be either the actual names # used there, such as THE_DA and DDTBLU, or the relative names # for the levels they go with, MAP06 and MAP08 in this example. # Various non-level names must be entered based on the name of # the entry in DOOM. The leading "D_" is optional and will be # ignored if present. 5. Replacement messages [MESSAGES] # Several kinds of these, used at the various logical places # Initially they will only replace the existing ones--with scripting # we will be able to add new entries, and call them in the script. # This message will appear between MAP06 and MAP07. Perhaps if there's # time a more logical name can be used--for now it's what DOOM uses # in the code. C1TEXT = "The end has arrived.\n\nThis is the biggest \" "thing you have ever seen\n\n\n\n...and you're scared." # Note \n is used to force a linefeed, and a trailing backslash # on a line will concatenate the next line after stripping leading # whitespace. If you want a blank between the parts of a line, use # a space before the backslash, as shown above with "biggest \" GOTREDCARD = "Got a maroon computer thingy" PD_BLUEO = "You need that blue gadget or you can't use this" GAMMALVL4 = "This is way bright now" QSPROMPT = "quicksave over your game named\n\n'%s'?\n\nHit Y or N." 6. Par times [PARS] 7. Cheats [CHEATS] GODMODE = IDdqdWasSilly 8. Monster Roster (cast) names [CAST] CC_BARON = "Harvey Wallbanger" 9. Code Pointers, alternative [CODEPOINTER] Frame 245 = scream 332 = explode # "Frame" is optional. The name in the value is the name of the function # that is actually called (list provided, no guessing ). Future additions # of new code pointer routines can be handled here as well. 3/18/98 Adding text support for level names and end messages. Currently requires a change to the format of the file, but there will be a utility written to handle a one-way modification to a .deh file to make it work with the new system. Either a .deh or new .bex file extension can be used. Boom EXtensions are allowed in either one, but it's easier for the author to tell which is a "pure" dehacked patch. Modules affected: D_DEH.C, D_MAIN.C Initial new deh extension logic inserted--unfinished merge Added par time modification, usage explained in sample.bex Modules affected: D_DEH.C Modified WI_STUFF.C to allow a dehacked par time patch to turn par times back on (they are normally off when a pwad is loaded) Modified WI_STUFF.C to allow frag counts up to +/- 999 Modified P_SPEC.C to handle -frags nn counter, default 10 frags if not otherwise specified. Note to self: there are switch name pairs in P_SWITCH.C 3/15/98 Fixed The Big Bug where the Thing number was off by one relative to its index in the structures. A pox on base 1 programming in a base 0 language! 3/9/98 Added dehacked file support. Added new module D_DEH.C. Usage: -deh filename[.deh] The file is assumed to be a patch version 6 dehacked file for DOOM version 1.9. No validation is done of that. Caveat haquor. - New link made to recognize the -deh command-line parameter. Modules affected: D_MAIN.C - The Misc entries were direct hacks into several places in the code where hardcoded entries were used. To change these required adding global ints and in some cases changing #defines to use ints instead (MAXHEALTH, BFGCELLS). The uppercase values have been #define'd to the variables. Modules affected: P_PSPR.C for BFGCELLS, ST_STUFF.C for things that are given for cheat codes, P_INTER.C for the rest of them. - Moved MAXHEALTH out of P_LOCAL.H into P_INTER.C and made it a variable - Added d_deh.c stuff to makefile Limitations on text substitution have forced a rethink of that--it won't be in the 3/9/98 build. /// end of file