=============================================================================
			     BLOOD History File
		 Copyright (c) 1994-95 Q Studios Corporation
			    Contact: Peter Freese
		    pfreese@qstudios.com or CIS:74170,543
=============================================================================

KEYBOARD FUNCTIONS:

D and +/-	Changes visibility

G and +/-	Changes gamma correction

S and +/-	Change player spring coefficient

X		jump

V		toggle external view (Alt-V rotates view)

Z		Secondary fire key

C		Crouch

Ctrl		Primary fire

Alt		strafe

1 - 9		Selects/deselects weapon (only pitchfork, tommy gun, shotgun
		for now)

F1		Help (not implemented)

F2

F3

F4

F5

F6

F7

F8

F9		Quick Load

F10

F11		Changes gamma correction

F12		Selects player view

Insert		Inserts fake player

Delete		Deletes fake player

ScrollLock	Selects fake player


CHEAT KEYS:

QSMAPS		Full map
QSAMMO		Full ammo
QSKEYS		All keys
QSCLIP		No clipping mode
QSOUCH		Pummel death
QSBURN		Burning death
QSBOOM		Explode death
QSRATE		Toggle display of frame rate
QSGOTO		Go to a specific x,y location
QSJUMP		Jump to a particular episode and level
QSHIGH		Delirium mode
QSONERING	Inviso mode
QSAIM		Toggle display of aiming reticle

=============================================================================

95/01/20

Change the tile cache size by editing the "TileCacheSize" parameter
in BLOOD.INI. (Ex. TileCacheSize=2048 will create a 2MB tile cache.)
Spaces between the parameter and value are NOT supported yet.

Note the icon in the upper right corner when a cache miss causes
a disk access to occur. Cool, eh?

Here are the monsters in the game:
* Gargoyle:       By far the coolest when running/jumping.
* The Hand:       Way cool!
* Gill Beast:     Cool, but sometimes humorous.
* Fat Boy Zombie: Use the butcher knife!!
* Jive Zombie:    No attack yet, kind of weak for a weak enemy.
* Phantasm:       Ok, we need lots o' art for this one, but attack works.
* Hell Hound:     Needs major art touchup.

Here are the weapons in the game (still frames with bobbing.):
* Pitchfork
* Tommy Gun (much better than before)
* Sawed-off shotgun (Love this baby.)

Next week:
Animated frames for the above weapons.
The NAIL GUN, yes! ($25 a day for rental...sheesh.)

-----------------------------------------------------------------------------

95/02/06

Sector lighting effects are now functional.  See the notes in MAPEDIT.TXT for
information on creating lighting effects.

Global visibility is now loaded from the mpx file, although you can still
change it with the V Pad+/i keys.

Tiled parallaxed sky information is loaded from the MPX file (although I
haven't tested this yet).

Almost all errors are now caught by a global error handler.  Let me know if
you get any mysterious crashes.  There are still asserts which will go
through the monochrome monitor if you have the DEBUG environment variable
defined.

Multi-player network play works.  Yeah!  I've added synchronization checks
for now which should report if any slaves get out of sync.

Player movement dynamics have been overhauled.  You can now "slide" sideways,
spin in mid-air, crumple from a fall, and other stuff based on inertia.
It's really cool.

The tile cache system has been revamped.  It will now attempt to allocate as
large a cache as possible, up to the limit of available memory.  The
TileCache line in the INI file is now longer used, and can be removed.
Additional dynamic allocations (such as sound effects) in the game will come
from the tile cache.

Dynamic fire is working again, and looks better than ever.  The tile number
is 2342, and needs to be added to names.h.  We need a new 128x128 pic for
tiles.art -- the one from Doom is 128x112.

-----------------------------------------------------------------------------

95/02/13

Added new weapon swaying effect that is not directly related to the head bob.

Screen resizing is functional again, although there are a few problems with
the shade and size of the marble background.  Also, don't try resizing in
640x480 mode -- there a still some serious problems in the engine related to
view sizing.

2D mapping now working in the game video mode.  This should prevent problems
with mode switching (especially in network play with problematic video
cards).  Also, we'll be able to do more cool stuff with the maps with 256
colors, such as anti-aliased lines, parchment background, etc. -- we just need
to figure out what we want.

Zoom is no longer a player variable; it is solely a display metric now.

Zoom and view size are now written to the blood.ini file.

Fixed a inifile bug which caused an assertion failure if a key was not found
and a section contained blank lines.

Changed the way items are picked up to solve problems in picking up sprites
which are not in the same sector as the player.  In order to be picked up,
sprites now must be on stat list 1 (kSpriteStatTouch).  Sprites are
automatically tagged with this status in mapedit, so you'll need to load and
save all your maps.

Changed location and persistence of the disk sprite which appears during
cache misses.  It now appears on top of the status bar to ensure it doesn't
get left on the background when the view size is less than full screen.

During initialization, the status messages for building the various tables no
longer appear unless the tables are actually being built.  If they are just
being loaded, the messages do not appear.

Re-enabled chaining to the old timer interrupt handler.  This was previously
disabled due to a bug in Ken's network code.  Re-enabling it should cure those
system date and time problems, as well as help with any timer dependent DOS
drivers, such as disk caches.

-----------------------------------------------------------------------------

95/02/14

Did a major restructuring of source code.  This was a sorely needed cleanup
to produce organization out of a loose collection of hacks.  This should make
future changes and additions much easier.

Blood no longer uses Ken's keyboard handler.  This means functional key
repeat, less key lockouts, and input stream buffering.

Added support for cheat key sequences.  Try QSKFA!

Modified desynchronization so that animations are desynced by time, and not
be frame.  This means that even with only two frames, a lot of sprites of the
same tile should not animation in unison.

Optimized the routine for picking up sprites.  The additional trivial
rejection tests should speed things up a bit.

Warping no longer sets velocity to zero.

You should now be able to operate a platform sector from outside the sector
(via neartag).  Sector operation code is also optimized.

Head bobbing and weapon swaying are now related to the players actual
movement, not attempted movement.  This means that you should be still when
you are jammed up against a wall and running like hell.  There is a low pass
filter for the amplitude, so it should never jerk your head or the weapon.  I
also modified the scale for the metrics for bobbing and swaying, but I think
I've got them pretty close to the way they were before.  Please let me know
any comments you have on the feel of these features.

When you land and recover, I am now dropping the weapon a bit to simulate its
inertia.  I think this adds good visual cues for the landing effect.

-----------------------------------------------------------------------------

95/02/15

DO NOT RUN THIS VERSION IN UNCHAINED MODE.  It will probably do something
really horrible.

Wrote new code to support tiling the background when the screen size is
reduced.  This is some pretty crappy code right now, and I'll probably
rewrite it eventually, but for now it works except in unchained mode.

Reduced horizontal swaying of weapon by 1/3.  Let me know if this is enough.

Added code to support DAC effects, which will be used for visual feedback for
events such as one-ups, injuries, and special sector effects.  I've plugged
in a little flash effect for picking up items.  Also, try QSOUCH for an
injury effect.  If the DAC effects cause any snow problems we can always
switch to using palette lookups of the sort Doom uses, although this will
severely limit our use of separate palette lookups for sprites, or increase
the overhead in terms of the number of tables.

Reduced the amount of inverse Z adjustment for looking up and down.

Add QSRATE - Toggle display of frame rate.

Rewrote the 2D map function so it should look just like the map in Doom.

The status bar is always displayed in 2D map mode.

-----------------------------------------------------------------------------

95/02/18

Modified the way the DAC effects work somewhat to fix a bug which would cause
the hardware DACs not to be updated when the effect was 0.

Added QSGOTO and QSJUMP cheat keys.

Changed key combinations for setting gamma, visibility, and spring
coefficient to be compatible with those in MAPEDIT.  Use +/- instead of Pad
+/-.

Visibility is no longer written to the BLOOD.INI file, since it is level
dependent.

Changed key combination to change the depth cueing (visibility) to D +/- for
compatibility with MAPEDIT.

Provided a workaround for the off by 4 pixel error in getzrange.  This means
you shouldn't pop in the air when stepping on a floor sprite at floorz level
anymore.

-----------------------------------------------------------------------------

95/02/19

Added a module for processing command line parameters.  I'm not doing much
with this yet, but it's now pretty easy to handle switches and other optional
arguments.  The only visible change now is that when you start Blood, it
defaults to map E1M1, and if you pass a level (map) name, it ignores the
extension.

Made a change to the way that player location and velocity is stored.  This
is an internal code change that shouldn't result in any visible change, but
is necessary for me to write a more general purpose physics system (so any
sprite can move around with inertia).

Moved several constants controlling player movement dynamics out of the code
and into the player posture structure.  Now nearly every aspect of player
movement is driven by this data.

Rewrote the key handler to better provide services for getting characters in
a stream type of fashion.

Fixed a bug in the main drawing loop.  I wasn't clearing the gotpic[] array,
so once you saw the dynamic fire, it was getting calculated every frame.
This easy fix should give us a nice performance boost.

-----------------------------------------------------------------------------

95/03/05

Projectiles have been added.  Shame on Nick for not documenting them here.

Fixed a bug which would cause extended keys (e.g. Page Up and Delete) to be
dropped if NumLock was on.  This bug was introduced when I added code to
prevent filling up the keyboard buffer.  These keys are actually transmitted
as multiple make codes when Num Lock is on, hence the bug.

Fixed a bug in the debug version of the heap.  Sheesh!  It would dassert out
occasionally when it was unable to allocate a block when it thought it had
enough memory.  I wasn't subtracting out the space used for the fenceposts.

-----------------------------------------------------------------------------

95/03/06

Added an assertion to check for overflow of the ext arrays.  I found out that
some maps had sectorExt structures for nearly every sector, and were
overflowing the array!

Created a branding utility for limited demo versions.  This utility should
not be released outside of Q Studios.

-----------------------------------------------------------------------------

95/03/24

BUG FIXES

Fixed problem with allocatepermanenttile not marking the block of memory as
locked.  It could get added to the purge list during precaching....

Added some missing modify [...] registers to an inline function in the
dynamic fire system.  This would inevitably cause problems when
optimizations were enabled.

-----------------------------------------------------------------------------

95/04/18

Changed default key codes for jump, crouching, and alternate firing to be
identical to Dark Forces.

Added support for view centering (default key is Alt Pad 5) when look lock is
on.

-----------------------------------------------------------------------------

95/04/30

Added support for various screen modes now supported by the Build engine.

Rewrote line clipping routine, but there are still some problems to work out
in unchained mode.

INI file changes are not written out until the program exits.  This should
minimize disk access during game play.

-----------------------------------------------------------------------------

95/04/30

QAV playback support added and several weapon animations now work.

Trigger switches currently supported are:
	Toggle Switches and Momentary Switches

For Momentary Switches, the "data" field can be set to indicate
tenths of a second before the switch toggles back to the original state.

Sectors supporting currently switches are:
	Topdoor, Bottomdoor, Swingdoor, and Lift

Armed Proximity Bombs can now be placed and will function. More flexibility
for distance and damage will be added shortly.

Exploding bombs affect all "Crate Face" sprites within its proximity.
MAPPERS: Make sure that you use the damaged crate face for anything
that can be exploded, and don't use it anywhere else. I repeat, don't
use the damaged crate face for anything except crate faces that are
affected by explosions. Especially you, Richard.

-----------------------------------------------------------------------------

95/05/02

Fixed trigger bug with floor pads.

-----------------------------------------------------------------------------

95/05/08

Added panning sector effects, which now work for water current.
Water movement now has drag even if there is no current.  The drag is
relative to the depth of the water.

Rewrote/simplified trigger code.  Made callbacks a command type.

Added impulse to explosion projectiles.

Added code to support Top door, Bottom Door, and HSplit door types.

-----------------------------------------------------------------------------

95/05/08

Added !state command.

Sent events are now processed immediately, rather than being posted into the
message queue.  This allows cleaner coding for LINK commands.  Be careful not
to create infinite message loops!

Math and palette lookup table building has been removed from the game code.
These tables will now be created with stand-alone utilities.

Sector lighting amplitude now honors the sector busy state, so you control
light level with link commands.

-----------------------------------------------------------------------------

95/05/19

Added horizontal and rotation move sector types.  This means sliding and
swinging doors, but you are certainly not limited to these types.  Use your
imagination.

Modified DoSectorLighting() so it is not necessary to call
UndoSectorLighting() in Blood.  Should speed things up just a bit.

Fixed an overflow problem in 2D map mode which cause clipped lines to skew
weirdly.  I went through all the code and made all the multiply and shift
operations use a full 64 bits of precision.

Got rid of ALL the old door animation code.  We are no longer unwashed.
("This house, is clean." - Nick )

Kinetic sectors would never go the final distance fraction when going to the
on state.  The error fraction was 1/65536.  I've provided a work-around for
this, but the real solution is to increase the X structure busy variable
size by 1 bit.

-----------------------------------------------------------------------------

95/05/24

WEAPONS:
* Modified tommy gun.
* Added first-pass shadow gun.
* Added first-pass beast hands.
* Added code to throw dynamite. Try blowing up the crates in MAP04.MAP.
  (Don't get too close or you'll set off the proximity bomb and ruin it.)
* Added vector hit check and ricochet for shotgun and tommy gun.
  (NOTE: All the ricochets for the shotgun appear in one place for now.)

LIGHTING:
* New lighting effects and triggers added. Check some of them out in
the sample maps.

LINKED SECTORS:
* You can now go underwater, but cannot go back up or move around very well.
  (We intend to have the water physics working by the next upload.)

There's lots of other stuff, but I have to go to dinner. I'll just upload it
and let you fool around. Later!

-----------------------------------------------------------------------------

95/05/30

Fixed view bobbing/swaying bob which caused them not to work unless you were
running.  Don't you just love misplaced braces? <g>

Bobbing and swaying are now optional.  Just added "ViewBobbing=0" to the
[Options] setting of blood.ini.  This should cure George's nausea.

Increased strafe acceleration, and reduced angular velocity at George's
request.  You can also accelerate while landing now, also at his request.
Can we have an equipment advance? ;)

-----------------------------------------------------------------------------

95/06/24

Added sequence engine which will be used for transient sprite effects and
creature states.

Reworked weapon selection code to allow cleaner changing between certain
weapons, such as the dynamite and spray can.

Added sequences for ricochets and explosions.

Added the ability for explosions to chain other explosions.

Added a rudimentary death sequence for cultists.

Added damage/death for vector weapons.

-----------------------------------------------------------------------------

95/06/26

Added time delay for dynamite projectiles.

Added code to put dudes affected by explosions on the projectile list, and
greatly enhanced projectile code.  The net result is you can blow up the
creatures.  "They sure blowed up _real_ good!"

-----------------------------------------------------------------------------

95/07/03

Converted sprite management code to use a FIFO list for proper handling of
bullet holes and other purgeable sprites.

Fixed problems with projectiles (including bodies) falling through floor
sprites.

Temporarily removed above mentioned FIFO code until I can get it working
correctly.

Added support for moving z of sprites on the floor of z motion sectors.  This
means that when the floor moves, so too should sprites that are on it.  Also,
no more player bouncing when you are standing on a z motion floor.  The only
downside is that the player will not receive any intertia from the vertical
motion, so you can't 'throw' the player in the air with a fast moving floor.

Changed resource system so that it uses hashing and linear probing for rapid
lookup of resources.  This was one of those things that had been waiting too
long to be done.  Now we can move forward with creating RFF (Resource File
Format) archives and clearing up those directories of thousands of files.

Added weapon QAV and sequence preloading.  If you have enough memory, you
shouldn't get ANY disk hits during game play, except for status bar graphics,
which will be done shortly.

-----------------------------------------------------------------------------

95/07/05

Players are now impulsed by explosions.  Try standing on a lit stick of
dynamite!

Changed the way that friction works for sliding objects.  The current method
is 'physically' correct.

-----------------------------------------------------------------------------

95/07/08

Rewrote DPMI services and code which attempts to determine how large a heap
to allocate.  It should now attempt to allocate less than the physical memory
available, even under DPMI hosts providing virtual memory (e.g., Windows)

Provided locking for nearly all interrupt handlers through new DPMI routines.
This should improve the robustness of Blood under other operating systems
such as Win 95.

Wrote a new virtual timer services module.  This allows any number of clients
to install their own timer handlers with varying rates all through a central
timer services handler.  This is some pretty low level code, and shouldn't
affect anyone but Blood programmers.

Fixed a bug in the sequencer in which the first frame would not be displayed
as long as it should have been.

Increased dispersion for tommy gun, and increase shotgun vectors per barrel
to 16.

-----------------------------------------------------------------------------

95/07/09

Fixed and reenabled sprite FIFO code.

In Z Motion sectors, sprites on the ceiling as well as sprites on the floor
will be z adjusted when the floor or ceiling moves, as appropriate.  I also
changed the method used to determine when to move the sprites.  Previously,
the code would take into account the sprite z extents to determine whether
the sprite was on the floor.  Now it looks only at the z value to see if it
is on or in the ceiling or floor.  This should provide results consistent
with the type of sprite being using, i.e., sprites meant to be placed on the
ceiling have their origin set at the top, and sprites meant to be placed on
the floor have their origin at the bottom.

Did extensive work in code for handling interactions between objects and
explosions.  Explosions can now be triggered (this is the way that throw
sticks of TNT are handled).  The impulse effect for explosions is now no
longer instantaneous, but occurs over the duraction of the explosion.  You
can see this by watching your health while standing in range of an explosion.
Sprite movement as a result of impulse still seems off, and I thinks it's
because I have yet to handle sprite collisions (soon, though).

Creature death sequences are determine by the type of damage which caused the
death.  Currently, this is supported only (in terms of art) for the fat
zombie.

When the fat zombie explodes, he throws off chunks of gore.

-----------------------------------------------------------------------------

95/07/14

Multi-player starting markers now function. Check out MAP02.MAP to see
how they are inserted.

Network code is semi-stable. Runs for a while then asserts out with a
synchronization failure. This is probably in Ken's code, since we are
getting bad or missing packets which cause the de-synch.

In multi-player mode players animate in the walk sequece until they shoot,
then the shooting animation stays on until they die. We are working on the
AI and animation states for the players and enemies, so bear with us. At
least now the players, as well as the monsters, die agonizing deaths. Shoot
the fat boy for fun!

Breakable walls now function. Check out the new types in MAPEDIT by pressing
Alt-F6 on a red wall you want to mask and turn to a breakable wall. Similar
sprite types will be added soon. Look at and shoot the stained glass in
MAP19(?) which used to be QSEYMY.

We try to test out as many bugs as possible before uploading a demo, but
sometimes we slip up. As always, let Peter or me know if something no
longer works.

Lots of new artwork this upload. Better take a trip through all the art
first. Look at the art using EDITART or MAPEDIT before making level or
area texture changes; you may find just what you've been waiting for.

-----------------------------------------------------------------------------

95/07/17

Monsters now trigger OFF at death and send their command and txID.

Added BloodBath (deathmatch) starts but though you can't play that mode yet.

-----------------------------------------------------------------------------

95/07/20

			 !!! MAP VERSION CHANGE !!!

Once you've backed up all your maps in another directory or ZIP file, run the
CONVDB5.EXE conversion utility. You can use wildcards, so typing "CONVDB5
*.MAP" is acceptable.  The old maps will be saved with an extension of ".MA4".

Maps are now loaded as resources, which means they can be placed into
BLOOD.RFF.

Level definition files are loaded now along with the maps.  See the sample
FXTEST.DEF for an example.  They can't be placed in resource files yet,
though.

Explosions now use an expanding sphere of influence, so they won't effect
things within a possible range immediately.  The closer you are to an
explosion, the faster you'll take damage from it.

-----------------------------------------------------------------------------
95/07/27

Modified some cheat keys. Make sure your read the cheat section in this doc.

Ammo can be picked up and is added to your stats. The stats are NOT displayed.
Since this is still being coded, expect some funkiness with the way the weapon
behaves when it has no ammo, or you pick up ammo the first time. Your best bet
is to type "QSAMMO" when you first get into the game.

The spear gun is all screwed up. Don't play with it, or at least don't
complain if using it causes Blood to crash. ;)

-----------------------------------------------------------------------------

95/07/29

Lot's of new additions to the physics system.  Explosions can now affect all
dudes and "things", which include body parts.  Everything in the physics
system now has a mass, which means that lighter things can be blown
farther.  Have fun with the TNT and TNT barrels.

Player death greatly improved.

Dynamic shadows added for all dudes and things.  This will be a detail level
option, since it can have an impact on performance for highly populated
screens. Try DEATH.MAP for a fun time.  This map has around 150 combined
dudes and TNT barrels in a single sector, and is a pretty good stress test.
DON'T put this many things in your game maps.

-----------------------------------------------------------------------------
95/08/01

Temporary fix for sequence caching code that was causing "Out of memory"
bailout. You will experience slower map loads and slower caching in this
version. This is just _temporary_ until we have the new resource prelock
code running.

Added more cheat keys (listed *way* up at the top) and also fixed a bug
in the QSKEYS cheat code.

!!! IMPORTANT - READ THIS !!!
For those of you not receiving an art update with this version, the
Tommy Gun will be positioned incorrectly. This is because we have new art
that you don't have yet. Since this is primarily a bug fix related update
I thought it would be better not to include 6MEGS of zipped art.

-----------------------------------------------------------------------------
95/08/05

After a full 10 hour night of playing Blood deathmatch, we changed the
following:

Adjusted the dispersion for the tommy gun and the sawed off shotgun for
tighter dispersal.

Tweaked damage amounts for all weapons.

Adjusted spray can flame speed -- if you run at full speed with it, you
damage yourself!

Added support for impact triggers to sprites.

Changed impulse center of explosions to be optical center.

-----------------------------------------------------------------------------
95/08/06

Added respawning for items. Check out DONOR.MAP, which is a test
deathmatch level.

-----------------------------------------------------------------------------
95/08/07

Shadows are now only drawn if they are below your view z.  This should
eliminate shadows "floating" in the air.

Some code got changed which caused breakable walls to no longer change their
state, hence you couldn't use them for triggering other events.  This has
been fixed.

-----------------------------------------------------------------------------
95/08/16

Thrown dynamite no longer goes through walls.

-----------------------------------------------------------------------------
95/09/16
* Added auto-targeting. (Does not work for missiles yet.)

* Added the voodoo doll, which can hurt you if you don't have an enemy
in your auto-targeting cone.

* Added a test glow feature for the flare gun.

* Added a ShowDetails option, which can be added to BLOOD.INI to enable
or disable shadow and glow processing.

* Added view mode (V and Alt-V) to view the player form a distance.

* Added new status bar. (This has a some bugs when changing view size.)

* Added "wall crack" object which can be used to trigger exploding walls
when hit by dynamite. Check out MAP01.MAP.

(BUG: Wall cracks can be damaged by other weapons, but will NOT trigger
the wall explosion. Once the wall crack is taken to 0 health by a
non-explosive weapon, the crack cannot be triggered. This will be fixed.)

-----------------------------------------------------------------------------
95/09/20
* Added the Delirium Shroom "power-up" effect. Pick up a shroom or
type 'QSHIGH' to test it out. Peace!

-----------------------------------------------------------------------------
95/09/26
* Fixed the teleporter height bug.
* Player sprites now go translucent in invisible mode. Try "QSONERING".
* Voodoo doll is working, but one of the sequences is reversed.
* Cultists now drop cool stuff when they die.

-----------------------------------------------------------------------------
95/11/15

Uh, uh, huh, huh, huh, huh.  We forgot to document stuff for like 2 months, so
there a billion changes that probably aren't in here.  Huh, huh....  huh, huh.

* Dude AI added.

* New network system put in.  No more sync errors.

* Level music added. Create new .DEF files for your maps to hear music.

* Mouse input added and updated.  The mouse shouldn't diminish keyboard
movement anymore.

-----------------------------------------------------------------------------
95/12/18

* Vases can "drop" objects when destroyed. (See the TESTxx maps.)
* Timer generators added. (See XSYSTEM.TXT.)
* Fireball generators added. (See the TESTxx maps and XSYSTEM.TXT.)
* Padlock sprite now works. (See the TESTxx maps.)
* Z Motion sprite sectors added (See the TESTxx maps.)
* Linked sectors added (See PFFX.MAP: Dudes don't go through yet, but
missiles and projectiles, and gibs(!) do.

-----------------------------------------------------------------------------
96/01/07

Saw blades are now functional.  They can be turned on an off, and do damage
to anyone touching when spinning.  Lots of blood, too!

Change player movement code so that it uses the generic MoveDude() function.
This allows the player to get damaged by the saw blades and other stuff that
we add later.  The negative effect of this is that I have to find a new way
to do the view inertia effects, so as fall crumbling, stair smoothing, etc.
You may notice some change in the feel of turning, acceleration,
deceleration, etc.  I think it feels more responsive, but let me know if you
have any complaints, and I'll try to please!  You may also notice that if you
run and jump against a wall, you'll bounce off it, rather than keeping your
forward momentum (like those 'other' games).

Players drop all their weapons when they are killed.

All dudes now can move through linked sectors.

Added new explosion types.  There are now three concussion types of
explosions.  Single sticks of TNT do small explosions; bundles do medium
explosions, and barrels do large explosions.  Barrels may do more damage than
previously.

All dudes are now affected by falling damage.

Improved accuracy of Tommygun cultists by allowing them to aim while they are
shooting (what a concept, eh?)  They are pretty brutal monsters now, so we
may need to tone down the damage or ROF a bit.

New aiming system in place.  Specifically, the auto-aim point does not track
instantly, but sort of 'homes in' on a target.  If your target is standing
still and so are you, you should hit your target dead on.  If your target is
running a serpentine pattern you may miss him a bit unless you do a little
bit of targeting yourself.  The rate at which the auto-aim homes in is
adjustable in the code.  For some weapons, such as the tommy gun, the
auto-aim point gets updated while you are firing.  For others, such as the
sawed-off, it doesn't.  What this means is that you will get a more accurate
shot with the sawed-off if you wait a tiny bit between each shot rather than
just holding down the fire key.  There is an aiming reticle that is present
for the moment so you can see how this works.  It will probably be taken out
for the actual game unless people decide they really like it.  To enable
display of the reticle, type "QSAIM".

QAV playback engine enhanced.  The QAV engine now uses a different metaphor
to create and display animations.  It is now based on fixed frames intervals,
with a fixed number of layers (currently 8).  This means that it is much
easier to control the z-ordering of tiles, and simple to adjust the overall
speed of playback.  It now supports scaling and rotation of sprites, so you
should see enhancements in the weapon animations.  This also allows us to cut
down on some of the weapon art (which is really big and takes lots of
memory).

Weapon code overhauled.  There are now callbacks in the weapon firing QAVs,
so this simplifies some of the state code in the weapon system.  Damage is
now incurred at the appropriate point in the firing sequence, rather that at
the beginning.  This improvement is particularly noticeable in the pitchfork.
Automatic weapons such as the tommy gun and the spray can now have a
consistent rate of fire and smoother animation.

Throwing of TNT enhanced.  When you throw a stick or bundle with the primary
fire key it will explode on impact, making it simpler to use.  It's a bit
unrealistic, but, hey, it's more fun.  You can control how hard you throw it
but how long you hold down the fire key.  If you've played Dark Forces, this
should be familiar to you as the same way the thermal detonators work.  If
you press the Alt-Fire key you be able to "burn off" the TNT.  It will light
and you can hold it in your hand until you throw it or it blows up in your
face, which ever comes first.  You can also drop it with the Alt-Fire key.
When you burn off the TNT, it will explode only when the fuse burns out, not
on impact.

TNT Remote Detonators enabled.  If you throw the bundles, they explode on
impact.  If you drop them, they can be triggered with the remote detonator.
You can drop multiple bundles by pressing the Alt-Fire key when you are
holding just the detonator.

Global physics change.  The relative scale of game units to world units has
been changed.  One effect of this is that everything is smaller in terms of
world units (they still look the same, though).  Another effect is that
things will appear to fall faster.  You'll notice that when you jump, you
don't seem to hang in the air as long.

There is a new status bar.  Don't count on this one sticking around too long,
though.  Nobody seems to like it.

Fixed the problem with dudes spinning around in circles.  They should now act
a bit more intelligent in determining where to go.

Fixed problems with running on slopes.  You can now jump while moving on
slopes as well.  There may be some residual problems jumping if you are
running on a flat area and suddenly start down a steep slope, since you will
be briefly in the air, and you can't jump while falling, but that's life!

Decreased the overall game processing rate, but increased how often dudes
think.  Hopefully, this will improve the frame rate problems on network play
and slower machines.

All TNT modes enabled and working.  Try out the proximity bombs and remote
detonators -- they're great!

-----------------------------------------------------------------------------
96/01/10

Fixed problems with z velocity, including bodies not falling, thrown things
to fly in the air or down in the ground, and disappearing TNT.

Changed gravity and restored world scale ratios to previous values.  Gravity
is now twice normal.

Fixed problems with voodoo doll shaking like it was being held by Beavis on a
caffeine high when the player stopped.

Cultists now can aim up and down when shooting and throwing TNT.

-----------------------------------------------------------------------------
96/01/11

Added a .5 second delay between when proximity triggers are activated and
when they explode.

Added a slight delay when remote detonators are triggers.

Fixed problem with dudes that were on over/under areas spinning around.
Ken's updatesector() function wasn't taking into account z position, so I
wrote a replacement that does.

Tweaked axe zombie code to make them a little smarter.  Now they don't go
into chase mode between axe swings, so they won't creep up on you until
they're forced to go past you.

-----------------------------------------------------------------------------

96/01/12

Sound channel manager written.  This allows interface sound effects to
preempt each other or layer as needed.  This code layer will allow the 3D
sound system to be built on top of it.

-----------------------------------------------------------------------------

96/01/13

Basic 3D sound system in.  The system does distance attenuation, but is not
yet dynamic, and doesn't support stereo or phasing.  Just a few sound effects
are in (switch, breaking pottery, breaking glass), but it does support
relative volume for each sound, which allows the samples to be as hot as
possible.

-----------------------------------------------------------------------------

96/01/14

More significant work on 3D sound code.  It now supports stereo volume and
phase effects.  Still yet to do are dynamic updating of position and
frequency shifting.

Added some player sound effects for jumping, landing, falling, and pushing on
things which don't trigger.

-----------------------------------------------------------------------------

96/01/19

Sound system now supports fixed and dynamic 3d sound effects.  Fixed location
sounds use "bonkles" (see Meaning of Liff), which are automatically recycled
when the sound is complete.  Dynamic sounds are 1 per xsprite, and preempt
each other automatically.

Many new sound effects added, and existing sound effects changed to use
bonkles where appropriate.

Dispersion of Tommy gun increased.

-----------------------------------------------------------------------------

96/01/22

Added flares burning in guys.

-----------------------------------------------------------------------------

96/01/24

Player no longer stutters when injured (this was a particular problem when
burning).

Vector weapons (including melee weapons) now produce a ricochet and sound
effect appropriate for what they hit.  Try stabbing various types of surfaces
and objects with the pitchfork to hear this -- really cool.  Also, listen to
the sounds of bullets ricocheting of walls and things when you are being
shot.

-----------------------------------------------------------------------------

96/01/25

Weapons tweaked for damage: spray flame, shotgun, tommy gun.

Starbust flare added in alt fire for flare gun.

New fonts added for messages.

Added auto aiming for TNT barrels.

Added gaussian grouping for player shotgun vectors.

Reduced sizes of TNT explosions.

-----------------------------------------------------------------------------

96/01/28

Credits screen roughed in with new font.

General optimizations to code, and tweaks made to improve 3D sound system.

Keyboard control code modified to make it much more like Doom.  Hopefully
I've got it right this time.  Turning uses a two-step threshold for
rotational velocity, and player (and dude) movement use drag rather than
friction to slow down.

-----------------------------------------------------------------------------

96/01/30

Added diving suit mask, with (detail option) translucent reflections.

-----------------------------------------------------------------------------

96/02/01

Major optimization to Ken's cansee() function, which was taking up around 20%
of execution time (in worst cases).  This new optimization speeds it up by
about 50%, which is quite noticeable.

-----------------------------------------------------------------------------

96/02/02

MAJOR COOL NEW FEATURE!  Vector masking for masked walls and face sprites!
What this means is that objects and walls can be partially blocking of
bullets depending on their shapes.  For example, you can shoot through the
bars of a grate, but still be able to hit the grate itself.  This is still
pretty unoptimized, so expect some potential speed hits -- also, there's
loads of debugger output.

Debris gibs added.  These are pretty rudimentary for now, but we'll be adding
tables for all the different types of debris soon.  Currently, when dudes
explode, they spawn 20 little "worm" giblets.

-----------------------------------------------------------------------------

96/02/03

Drip generators changed so that spawned drips start at the bottom of the
sprite, rather than the z center.

Parallaxed skies now preload correctly.

Re-enabled falling for all things and dudes, and also optimized the z motion
calculations.  The result is that all things now fall properly, and the frame
rate is back where it is supposed to be.

Optimized vector masking so it only happens for vector weapons.  This
prevents is from slowing the AI down.  We still need to add a replacement for
hitscan to test for arbitrary blocking bits.  I'll be asking Ken about this.
