---------------------------------------------------------- The release of Boom on 11 October 1999 has no functional changes whatsoever, and is provided to show the change to GPL licensing only. If you are a player, this will mean nothing to you. If you are a developer, this gives you certain freedoms to use Boom in your own development. See the included ABOUT.TXT and other files for details. ---------------------------------------------------------- The following change notes apply to the Boom version 2.02 Maintenance release 2, which was released 22 October 1998. Changes to the BOOM202 maintenance release on 10/12/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. Firelines are another form of slime-trail. They occur when the rounding of coordinates for lineseg vertices on very short linesegs introduces errors in the calculation of texture scaling and span painting. Firelines typically are shown as floor spans being painted up to the middle of the screen, and ceiling spans being painted down to the middle of the screen. They're named after the original sighting of fire textures in the wrong places. The correction is to adjust 'bad' lineseg vertices that are 'off' of their parent lines (from which they were split). Move them back 'on' to the parent line, or at least as close as you can get. By using the length of the short lineseg and the original angle of the parent line, you can get closer than the rounded-off coordinates that you get out of the wad. These changes are done during map setup when the segs are read in, so there's no affect on gameplay. Fixed a calculation in the blockmap that now allows zero guardband around level, hence slightly smaller blockmaps. Replaced brute force internal blockmap calculation with one much faster. Difference on a 64K blockmap is 5 sec vs 32 sec. Fixed a bug that didn't allow trailing backslashes in parameters for the -save option. Changes to the BOOM202 maintenance release on 9/16/98 ------------------------------------------------------ Allowed sector_t.soundtarget to be saved across savegames. This field is a pointer to a thinker that caused a sound to be propogated through the sector. Monsters can then target this thinker. The field was getting cleared. Solution was to serialize the thinkers a little bit earlier and allow the sector-saving code to store the index of the soundtarget thinker. After the saved game is loaded, the index is used to locate the actual address of the new target thinker. Changes to the BOOM202 maintenance release on 9/14/98 ------------------------------------------------------ The code that reduced your bobbing while stuck against a wall and on ice caused you not to be able to free yourself from a wall when mildly stuck. A DM Start in TNT Pursuit, Map 25 is too close to the wall and exhibits this problem. Id's code allowed for extra momentum buildup that would eventually free you if you weren't too far embedded in a wall. Backed out the original ice-bobbing code and replaced it with code that still fixes the ice-bobbing problem, and still leaves you enough momentum to free yourself when you're mildly stuck in a wall. Part of the original ice-bobbing problem (which I did not know at the time) was that you could build up so much forward momentum pressed against the wall that when you went to back away from the wall, it took about 2 seconds to free yourself before you started to back up. The new code gets rid of this problem as well. These changes are NOT compatibility-wrapped because they key off of new friction values which only exist in BOOM. While p_map.c was open for #1, moved the self-checks in the PIT_StompThing and PIT_CheckThing routines to the beginning of those routines. The player is always checked against himself, and there was no point to the other checks that preceded the self-check because eventually the routines would have bailed out at the self-check. There were no side effects prior to the self-check (i.e. global variables being set) so this appears safe. DETH can now be put in the path and work anywhere. The DETH.INI in the local directory is still required - but can now load the pwads, so typing DETH in a directory can open the wad developed there automatically (along with any resource wads it requires). This makes creating shortcuts to wad sessions far simpler - just set the working directory on a shortcut to DETH.EXE, and set the mode to full screen. CMAPTOOL now generates a BMP consisting of an array of squares of color not a spectrum of vertical lines, making editing the palette by hand easier. It also supports +V and -V for only modifying the invuln colormap or not modifying the invuln colormap. Thanks to Rand's analysis of the underwater fireball medusa problem -- tracking it down to there being far more sprites active than there should have been, was able to trace the problem to a mistaken parameter to R_AddSprites in R_Subsector in R_BSP. The temporary sector used to fake the heights underwater was being passed and validcount was not working to stop the sprites from being added once per subsector instead of once per sector. Fixed a bug in R_SEG's R_PointToDist that allowed division by zero if the player was exactly on a vertex, and the node builder worked a certain way, causing segviol on startup. Fixed the sole call to it to avoid doing so when division by zero would result. Removed 1S wall escape. Was causing problems when the player was moved by monster attacks and was not sufficient to solve line-line teleporter problem. Added a logical console output routine that all console output is directed thru. Each physical output is tagged with by a class identifer from: LO_INFO informational header - no new information present LO_CONFIRM informational - but outputs information that confirms a setting LO_WARN an error, but not too serious - execution continues LO_ERROR an error, may be serious enough to abort - execution continues LO_FATAL an error, BOOM will exit LO_DEBUG used for outputs that are for debugging LO_ALWAYS used to tag outputs that should always be shown, like build date Which outputs are allowed to pass to standard output, and which are sent to the console when standard output is redirected is controllable by two masks. These masks can be set by command line switches -cout and -cerr, each followed by a string of letters from ICWEFDA to indicate which classes pass to output and error console resp. 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" Changes to the BOOM202 maintenance release on 8/30/98 ------------------------------------------------------ Added right shift to "into/outof wall" calculation to avoid overflow in FixedMul. This was causing 1S walls to be walkable thru on occasion. Also added compatibility flag to change. All in P_MAP.C. 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. Changed BOOM.TXT to describe the above functionality with sections marked *New: 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. Changes to the BOOM202 maintenance release on 8/16/98 ------------------------------------------------------ SERBOOM.EXE fixed to avoid lag problems while playing. Fixed DM weapon pickup bug. Corpse management queue fixed by clearing at level start so invisible corpses can't overlay weapons. 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. Restricted escape from 1S walls to players until I can figure out why it allows monsters to embed themselves in walls while walking around. Fixed IDCLEV to not accept 33 or 34 in DOOM2. Leads to crash if allowed. Fixed "Raise to shortest texture linedefs". Now the regular linedef triggers raise to actual texture height, not min(64,textureheight) unless compatibility mode is set. Generalized linedefs always raise to actual texture height now. Problem was caused by missing textures being represented by texture 0, AASHITTY, which had height 64. Fixed tendency of monsters to get stuck in doorways, flagged by compatibility global. Imported ZDoom's fix to the openings limit removal. Changed behavior of being stuck in a 1S wall so that motion out of the wall is still allowed. This "fixes" the line-line teleport problem and the DM start embedding problem. Added the Flicker special to P_SAVEG, where it was left out when the special was added to DOOM II. Added better initialization of scrolling message display. Fixed update of HUD so it occurs on every refresh to avoid problems caused by lag on slower systems. Corrected padding size to allow for 128 bytes in v200 demos and 64 bytes in v201 and later demos. Fixed EV_BuildStairs to use the buggy code order in compatibility mode, and the new order otherwise. This fixes some problems with existing wads that depended on the old buggy order. Fixed the comment for MIDItoMidi in MMUS2MID.C Changes to the BOOM202 maintenance release on 6/20/98 ------------------------------------------------------ Fixed problems with v2.00 demo headers being a different size from v2.01 headers, causing game lockups when playing back v2.00 demos. Fixed rising stairs so that the step height does not increase twice as much when redirected by a moving step. Fixed misspelling in chat string variable in M_MISC.C. Net sync problem fixed by reversion to older version of net code Changes to the BOOM202 maintenance release on 6/1/98 ------------------------------------------------------ Fixed bug in switches caused by inadvertant deletion of sidedness check. Switches are only usable from the front side again! Altered a pointer assignment statement in D_DEH.C for compatibility with GCC v2.8.1 Fixed problem with End Game and Load Game during demo recordings, and Load Game during demo playbacks. Made compilation with v2.8.1 of GCC and binutils, no warnings or errors.