----------------------------------------------------------
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.

