The BOOM Engine

Maintenance
Release
I
BOOM 2.01

By TeamTNT

Changes from the BOOM 2.00 release
MOST RECENT CHANGES AT THE TOP

Changes to BOOM in yellow
Changes to ancillary files in white

Fixed slight drift in scroller linedefs caused by roundoff errors

Added documentation on predefined lumps to BOOMREF.TXT

Fixed a bug in the numeric model texture changers that caused changes to not happen, or crash under certain circumstances

EDITUTL: Added STAT.EXE to BOOM utils for analyzing contents and balance of BOOM wads

Removed conditional net testing code

BOOMREF: changes to reflect new file distribution and to remove promise of demo compatibility for future versions

Fixed a bug in lights to max neighbor that would cause it to set all tagged sectors to the maximum lighting near the first sector searched

DETH: Upper numeric limit on thing entry changed from 10503 to 32767

DETH: Maximum number of levels loadable upped from 64 to 100
EDITUTL: CYAN colormap improved
BOOMEDIT: Jou added to credits in text file
Added a NULL entry to the code pointer mnemonics to allow an already existing code pointer to be cleared with BEX codepointers.
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
Fixed bug in which savegame consistency check failure message was applied inconsistently. -loadgame also allows savegames to be force loaded. In addition iwads are listed as well as pwads
Found that Doom bug in thinker deletion algorithm could be fixed without sacrificing demo sync in most cases. Current algorithm preserves sync while remaining 100% safe.
Fixed bug in status bar when the consoleplayer in a netgame demo isn't green.
Changed handling of unknown thing types from an abort with an error msg. to a continuation with a warning msg posted to the screen.
Added Player Starts 5-8 using doomednums of 4001-4004. This complies with DosDoom and other ports. These starts are ignored when spawning Things, so 8-player support is NOT implemented.
Added temporary config variable, "oldnetcode" to M_MISC.C to select between Lee and Stan's version of net code so both can be tested at once. Removed LEESFIXES from makefile. Formatted D_NET.C and I_NET.C.
Fixed "may change without notice" paragraph about generalized linedefs in BOOMREF.TXT
Improved output of debugging info when memory allocator self-check fails.
Fixed silent teleporters to be as glitch-free as possible.
Had to exclude voodoo dolls from environmental bobbing influences, in order to prevent hiccups from occurring in silent teleporters on conveyors.
Improved Boom performance around 20 fps by, reluctantly :), adding inlined assembly code for abs(), FixedMul() and FixedDiv().
Restored v1.9 demo sync during intermission screens with messages.
Fixed exit position of reversed line-to-line teleporters.
Switched ammo 3 and 4 in TNTAMMO cheat so that ordering follows status bar.
Fixed Doom bug in which RNG was called in a way that depended on compiler's order of evaluation, which is unspecified (I'm talking about where it uses P_Random()-P_Random() to generate random values around 0).
To prevent confusion, made translucency lumps get ignored unless they are exactly 64K. TRANMAP.DAT no longer will work without error.
Made monsters blind if they are directly tangent to a water surface (their head is right on the water), and the player is on the other side.
Moved wind/thing controller from 4001/2 to 5001/2 and made corresponding change to documentation and utilties.
Added new ENDBOOM with new URL, and made change in text files.
Fixed a bug of uninitialized delay in generalized close/delay/open doors affecting P_DOORS.C.
Fixed a possible crash due to dereferencing a sector backside that didn't exist in stair building in P_FLOOR.C.
Fixed an error in donuts allowing an already active pool to have another thinker started on it in P_FLOOR.C.
Added Rich Nagel's DIGMID instructions to SNDDRVR.TXT
EDITUTIL: Updated CLED to work with changed 5001/2 things
EDITUTIL: Added CMAPTOOL.EXE and some data files to support working with colormaps for the 242 linedef.
EDITUTIL: Added CVTTHING.BAT CLED patch to change 4001/4002 things to 5001/5002 in existing wad files. It also contains the updated editor configuration files.
DETH414B: COMMON.CFG updated for 4001/2 -> 5001/2 changes
DCKBOOM: DOOM17.DAT and DOOM19.DAT updated for 4001/2 -> 5001/2 changes
WACFG: BOOM.WCF updated for 4001/2 -> 5001/2 changes
BOOMEDIT: Room over room effect made seamless. Added a clearer silent teleport demonstration in mid-room. Added a colormap demo room and changed the colormaps used under the water, ice, and lava. Made the 4001/2->5001/2 change.
BEX now supports changing the savegame root name
Massive source formatting and reorganization changes
Fixed bug in networking that caused orig_doom_compatibility differences to cause consistency errors.
Fixed problem where the player is pressed against a wall while on ice and he's still trying to move forward with no success. The momentum code is used to drive the bobbing effect, and--though no movement was occurring-- momentum was still present, causing bobbing to occur. The fix was to kill momentum. Compatibility-optioned.
Fixed a DOOM bug in getNextSector that returned the same sector as passed when a line referenced to that sector on both sides existed. Functions like floor to highest neighbor floor and doors wouldn't work in the presence of intra-sector lines because of this.
The "action continues" in menu bug is fixed.
The trashing of the status bar after user help screens are viewed is fixed.
EDITUTL: Added a utility MAKTRLMP that will convert a TRANMAP.DAT file to a .LMP file suitable for inclusion in a wad for custom translucency percentage with textures.
BOOMEDIT: Added signs for MIDI, FLATS, and SPRITES from wad. Improved sprite clipping under water demonstration. Used custom translucency map for more transparent textures in translucency demo. Changed music to something that is quieter and public domain. Gave up on lift style room over room and made a stairs room over room. Visiplane/2SHOM/Plat test toughened greatly. Added sign for "shoot me" escape from pillars.
Added new ENDBOOM lump by Ty to INFO.C
Fixed bug in message review display that caused overwritten characters and incomplete erasure of lines when screen not fullsize.
Fixed "TNTAMO10" bug.
Improved texture error message display to show all bad textures (textures containing columns without a patch, or missing patches) before aborting.
EDITUTL: Fixed minor cosmetic bug in MUSPUT when used with DOOM2
Fixed three bugs due to data being used after it was freed.
Item pickup sounds no longer interfere with other player sounds like weapons.
Fixed problem with cheats remaining after level end.
Added mnemonic support for code pointer changing in BEX files. Details in BOOMDEH.TXT.
Fixed a bug in multiple string reading from a .BEX file if the continuation strings started with a blank.
Put strings back to deh-modifiable for GAMMALVL0-4, which were removed sometime around 3/23 during a merge.
Re-removed IDK cheat.
Removed some "draft" comments from BOOMDEH.TXT
Updated DEEP97 information and some of the Dehacked support info in the BOOM.TXT file.
Added a call to HU_Start() when leaving the Setup Screens to pick up any message changes that were made.
Added a button item on each of the Setup screens to allow you to reset values to the default values. Also collapsed more of the code.
Fixed bug in status bar display when New Game started after a DM demo in which spy mode had been used.
Fixed bug Ty spotted in WI_STUFF.C that was preventing animated backgrounds in non-DOOM II versions.
Fixed a bug in secret exits for non-DOOM II games.
Fix a bug in the sprite loading that caused the presence of an A0 lump to clear the rotate flag on the sprite definition, even when it wasn't used because the rotations were already defined.
Make the text color translation tables predefined lumps to support palette changes in TCs better.
Add exit color line to automap, default not shown.
Add endian macros, SHORT, LONG to BMP screenshot routine in M_MISC.C
Fixed a lockout problem in HU_STUFF.C, when the Setup changed the number of messages to 1 when the message review was displayed.
Added "-dumplumps file" switch to BOOM command line that writes the predefined lumps out as a wad.
EDITUTL: Added DOOM I support to MUSPUT.EXE.
EDITUTL: Fixed truncated line and added new documentation in MUSPUT.TXT
Fixed monster sight code so that monsters cannot see player when totally separated by water or fake ceilings. Leads to interesting effects -- monsters tend to pop their head out from under the water and attack the player!!! May need to be made optional and/or turned back off when translucent flats are added in Phase II.
Also found bug which caused some demo sync problems: monster sight code had slight roundoff error due to point/line query optimization. Now all 4 demos in Ultimate Doom stay in sync, and other v1.9 demos are expected to have better success now too.
Fixed bug in screenshot code (data could be freed before it was finished being used).
Consolidated cheat code into one table. Now deh-specific stuff is included as part of the cheat table and will not break if table order is modified. Cheats can be individually disabled during DM, coop, demo recordings, -deh, and while menu is active. idk added back, but disabled during -deh.
Fixed boss brain savegame bug. Landings were not properly reinitialized after saved game was loaded, causing saved landing targets to become NULL.
Fixed namespace errors in 5 places: flats animation, intermissions background, small screen size background, help screen background, and registered game check. Exhaustively searched every source file for lump name lookups. Found no more cases. Namespace code works now and should go out in the next release after a week of internal testing.
BOOM.TXT updated for -iwad parameter changes.
Fixed printout of IWAD found: with blank string when IWAD not found.
Added two digit printout to support v2.01 rather than v2.1 when version was 201 in VERSION.H
Upped BOOM version to 201 in VERSION.H
Rewrote the IWAD search to be more flexible and to eliminate some bugs still present in it. The -iwad parm on the command line can now be one of three things. The full pathname of the IWAD (.WAD optional), the directory in which a standard IWAD is to be found, or the filename of a standard or custom IWAD that is to be loaded (.WAD optional). The environment variables DOOMWADDIR and HOME can also now specify a full IWAD pathname if desired. If a filename for a custom or standard IWAD is specified thru -iwad, then it replaces any filename in DOOMWADDIR or HOME during the search. Examples:

BOOM Searches current dir, exe dir, DOOMWADDIR dir or path, HOME dir or path for a standard iwad or one fully specified in DOOMWADDIR or HOME

BOOM -iwad doom Tries to locate doom.wad in current dir, exe dir, DOOMWADDIR dir or HOME dir

BOOM -iwad c:\doom2 Looks for any standard iwad in c:\doom2, reports not found if none

BOOM -iwad c:\doom_se\doom Reports not found unless c:\doom_se\doom.wad exists

Once the IWAD file is located it is checked for an IWAD tag in the header, and the retail, registered, shareware, or commercial nature of the IWAD is determined from which levels are present. All levels corresponding to the mode must be present for detection, though the search allows Map31 and Map32 to be missing in the commercial version for the german edition. The french language version is detected from the IWAD filename doom2f.wad.

EDITUTL: Truncated end of file in MUSPUT.TXT fixed (one line)
WACFG: 3 generalized sector type entries fixed, mis-attribution to Rich Brennan also fixed.