Hack and Slash: Y2K Apocalypse Edition
Copyright (C) 2000  Galbraith Games

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


Modeling, code patches and textures by Seth Galbraith
"The Serpent Lord" <sgalbrai@krl.org>
                          
Graphics, modeling and animation by Ulrich Galbraith
"Zancrus" <ugalbrai@krl.org>

Skeleton model from the Q-Files TC models by:
"Orca3D"   <peter_lewyllie@mail.dotcom.fr>
"Shockman" <shockman@brutality.com>

Void maps and key models by Greg Mapes <gmapes@krl.org>
Health BSP models by Shawn Geier <sgeier@krl.org>
Beetagator (dog) model by Dylan Sartain <Lithiumbat@aol.com>


Installation:

To run the already compiled version of Hack and Slash:

1. Download it from http://www.planetquake.com/gg/fmp/hack.html
2. Create a new folder named "hands" in your Quake folder
3. Extract the Hack and Slash zip into that folder
4. Run "quake.exe -game hands".  For example in Windows 9x
   you would click on the Start menu, select Run, type
   "C:\Quake\quake.exe -game hands" and press enter.

To install the source version of Hack and Slash:

1. Download it to http://www.planetquake.com/gg/fmp/hack.html
2. Download The Serpent Lord's free Quake textures:
   http://asp.planetquake.com/dl/dl.asp?simitar/free_wad_qme.zip
3. Create a new folder anywhere you like
4. Extract the zip files into the new folder.
5. Use Quake Army Knife (QuArK) - version 4.07 will probably
   work best - to extract the files and rebuild the maps and
   QC patches.  Get it at http://www.planetquake.com/quark

NOTE:  All of the new Quake C is in the form of QuArK QC patches,
which are not meant to be used as stand-alone .qc files.
These files only contain the functions which have been modified.
Eventually, I might convert the Hack and Slash to stand-alone .qc files,
especially if it would help more people get involved in Hack and Slash
development, but using QuArK is a lot more convenient right now.


Controls:

move   - gamepad, joystick, mouse, arrow keys, S, D, E, F
walk   - hold down shift and use keyboard movement keys
attack - joy1, left mouse button, Ctrl, W
target - joy2, right mouse button, G
jump   - joy3, middle mouse button, R, spacebar, enter
swim   - Q to go up, Z to go down
camera - hold down L and use the arrow keys

Movement - move your character with a gamepad, joystick
mouse, arrow keys, or the S, D, F, and E keys.  With the mouse
it is helpful to use the left button (attack) to move forward.
Hold down the Shift key to walk slowly (keyboard movement only.)

Attacking - attack by pressing the Ctrl or W keys, left mouse
button, or primary joystick button.  It will also make your
character run forward.  Hold the H key while attacking for a
slower but more powerful attack.

Targeting - use the right mouse button, secondary joystick
button, or G key to lock on to a target.  These buttons and
keys are bound to the "pick_target" command.

Jumping - normally you will automatically jump when there is
a gap or obstacle in front of you, but you can also jump by
pressing the middle mouse button, Space, Enter, or R key,
or the third joystick button if you have more than 2 buttons.

Jumping while you are locked onto an opponent and circling
them makes you do a quick step around the opponent, which
can help you avoid an attack or flank the opponent to set
up an attack.

Climbing - move toward a ladder or hold the attack button
to climb it, and use jump to slide down the ladder. If you
stop moving you will just hang on the ladder.  Most edges
can be grabbed and climbed too.

Swimming - horizontal water movement is the same as moving
on the ground.  Use the Q and Z keys to swim up and down.

Camera - you can rotate the camera and zoom in and out with
the arrow keys by holding down the L key.  You can also
rotate the camera with the joystick or mouse in this mode.

When you release the L key the view angle will snap to a
multiple of 45 degrees.  This makes keyboard and 8 direction
gamepad control easier on some levels - especially Void4.

The [ and ] keys can be used to adjust the camera's "zoom"
factor.  This doesn't actually affect the position of the
camera but instead affects your feild-of-view angle.

Press the V key to to try out different camera styles:

1. Regular camera (the most camera and player independence)
2. The player always faces the same direction as the camera
3. The camera turns to face the player as the player moves
   Still experimental, camera movement is very "jerky"
4. The camera follows the player like style 3 but smoother
   Unfortunately it only works with keyboard movement keys

Attacking, climbing, swimming, jumping and even running
uses up "Hit Points".  If the status bar is visible,
the number in the lower right is your current Hit Points.

Your Hit Points are fully restored every 2 seconds.
If you take damage, your maximum Hit Points is reduced.
When you rest - by not using up your Hit Points -
the unused Hit Points help you recover from damage.


Settings:

"skill" affects the "NPCs" that appear - non-player
characters or "bots" that fight you in single player,
cooperative, and deathmatch games:

"skill 0" (easy)
  NPCs only appear at monster_player starts.
  NPCs do not respawn.

"skill 1" (medium)
  If no monster_player start can be found,
  NPCs appear at deathmatch starts.
  NPCs do not respawn.

"skill 2" (hard)
  If no monster_player start can be found,
  NPCs appear at deathmatch starts.
  NPCs from deathmatch starts do respawn.
  NPCs from monster_player starts do not respawn.

"skill 3" (nightmare)
  If no monster_player start can be found,
  NPCs appear at deathmatch starts.
  All NPCs respawn

The "registered" console variable controls how many
"default" player models are loaded.  These models are
named "player1.mdl", "player2.mdl", "player3.mdl" etc.
As well as how many skins each model is assumed to have.
The formula for the "registered" variable is:

  (100 x skins) + models

So "registered 205" means 5 models with 2 skins each.
Levels designed for Hack and Slash do not require
default models.

NOTE: If you create your own autoexec.cfg file for Hack
and Slash you'll need to edit quake.rc and put autoexec.cfg
after the Hack and Slash defaults - QuArK.cfg.

A few special settings are recommended for glQuake:

gl_subdivide_size should be set to a high value like 2048.
This speeds up levels with sky textures - especially void
levels where there's lots of sky but it's all black.

r_shadows 1 - shadows are useful for third person point-
of-view games.  You shadow helps you see if you are on
the ground for example.

r_wateralpha 0.5 (or any number between 0.0 and 1.0)
Seeing through water helps you see your targetting sprite.
(But it won't work in the original Quake maps.)


Known Bugs:

 * When your health is between 0 and 1, your view goes sideways,
   but you are not really dead.
 * Players can hurt each other in the player model selection room.
   We need to add a flag or something that prevents this.
 * We need six 256x128 help screens, these should include:
   - the copyright line and the 3 paragraph GPL statement above
   - the credits from above (room for pretty graphics?)
   - keyboard controls
   - mouse controls (pretty graphics - diagram?)
   - joystick and gamepad controls (more diagrams?)
   - settings
 * NPCs don't implement some player-like behavior:
   - smooth motion while attacking
   - automatic climb, jump, and swim
   - look for gaps to jump over
 * Hack and Slash Role-Playing system is not fully implemented:
   - size level (based on mass) should affect damage and pushing
   - monsters should use hit points when they move and attack
   - damage should come in lasting and stun flavors
   - hitpoints should affect running, climbing, and swimming speed
   - new armor system needs to be implemented

Report any bugs, defects, flaws, anomalies or suggestions to:
Seth "The Serpent Lord" Galbraith <sgalbrai@krl.org>


History of Changes:

8-21-00

Greg Mapes (gmapes@krl.org):
 * Removed line "if (!(self.flags & FL_CLIENT)) return;"
   from player_die3 function in Player Quake-C patch.
   This fixes the bug where sometimes you can't respawn.

8-22-00

Seth Galbraith (sgalbrai@krl.org)
 * Fixed skins on Hack and Slash player models.
 * Grouped Run and Stand frames in player models.
 * Changed Player Quake-C to use Run and Stand frame groups.
 * Halved delay between monster_player walk and run frames.

8-23-00

Seth Galbraith (sgalbrai@krl.org)
 * Updated Open Quartz gfx + new H&S qplaque.lmp
 * Added extra run and walk frames to player3.mdl and player4.mdl.
 * Changed the W_attack function in the Weapons Quake-C patch
   to attack anything in the way even when no enemy is selected.
 * Changed W_attack and FireAxe in Weapons Quake-C patch
   to aim high and low using new W_TraceSwing function.

8-24-00

Seth Galbraith (sgalbrai@krl.org)
 * Modified monster_player attack functions to stop aiming while
   attacking and to do damage in only one frame using FireAxe ().
 * Added mp_sidestep to monster_player melee ai, this makes
   monster_players circle instead of always attacking.
 * Gave monster_players a quicker, less damaging attack.

8-25-00

Seth Galbraith (sgalbrai@krl.org)
 * You move forward while attacking if you hold the attack button down.
 * You start attacking from further away.
 * Powerful attack can be enabled by holding 'H' key.
 * Maximum strength is health or 20, whichever is higher.
 * all attacks, running and jumping now use strength.
 * Strength recovers completely every 2 seconds instead of gradually.
 * monster_player is less likely to attack when less healthy.
 * monster_player lunges forward more when attacking.
 * Maximum and starting health is now 70.
 * Added decimal points to status bar.

8-26-00

Seth Galbraith (sgalbrai@krl.org)
 * Fixed a flag-mangling bug in teleport_touch.
 * Added two new exits to the test map start room.
 * Raised start room entrance to reduce telefragging.
 * Made the multimodel selector zero units wide.
 * Moved the model selectors closer together.
 * Added automatic jumping onto and off of stuff.
   in PlayerPreThink function of Client Quake C.
 * Modified WaterJump function in Client Quake C.
   to use player angles instead of camera angles.
 * W_Attack in Weapons Quake C modified to hit secret doors and switches.
 * Started working on code in PlayerPreThink in Client Quake C
   to keep the camera angle from interfering with water movement.

8-27-00

Seth Galbraith (sgalbrai@krl.org)
 * Removed debug print statements accidently left in yesterday
 * Small improvements to water movement code in PlayerPreThink
 * Made jumping out of water easier
 * Changed "edgefriction" console variable to 1
   (i.e 1 times the regular friction)

8-27-00

Seth Galbraith (sgalbrai@krl.org)
 * Started changing references to "strength" to "hit points".
 * PlayerPostThink() no longer uses hit points for vertical movement,
   running with attack button or movement while attacking.
 * Hit point usage added to jumping, climbing, and running functions.
 * Reduced hit point consumption for running.
 * Increased speed of running with attack button

8-28-00

Seth Galbraith (sgalbrai@krl.org)
 * Started changing references to "strength" to "hit points".
 * PlayerPostThink() no longer uses hit points for vertical movement,
   running with attack button or movement while attacking.
 * Hit point usage added to jumping, climbing, and running functions.
 * Reduced hit point consumption for running.
 * Increased speed of running with attack button
 * Fixed resting/healing so it should really work right now
 * Finished water movement and floating code

8-29-00

Greg Mapes (gmapes@krl.org):
 * Added the .qme source files for the Valley and Wyvern maps

Seth Galbraith (sgalbrai@krl.org)
 * Added some new textures to the free wad needed for those maps
 * Skill 0 disables bots, Skill 1 enables bots but does not allow
   them to respawn.  Skill 2 and 3 enable respawning bots.
 * Health was recovering too fast, reduced it to 0.1 * hit points
   remaining at the end of a round.
 * Changed Wyvern map to use the new simpler style of player start
   and model selector room.

8-31-00

Ulrich Galbraith (ugalbrai@krl.org)
 * New console background

9-1-00

Seth Galbraith (sgalbrai@krl.org)
 * Fixed up camera modes - press V to cycle between the 3 modes
 * Added SetViewAngles for the third camera mode to PlayerPreThink
   Where it seems to work better than in PlayerPostThink.
 * Fixed up both of the old maps a bit

9-2-00

Seth Galbraith (sgalbrai@krl.org)
 * Now you can grab edges while jumping, and climb ladder-like
   structures.  This required some modification to CheckWaterJump()
   and calling CheckWaterJump in PlayerPreThink().  While hanging,
   the Jump button lets you slide (actually fall) down.

9-3-00

Seth Galbraith (sgalbrai@krl.org)
 * Added a ladder to the Wyvern map
 * Modified the cave and some texturing in the Wyvern map.
 * Fixed Wyvern map so it can now be VIS'd again.
 * View angles are not forced during attacks in camera mode 1 anymore

9-6-00

Seth Galbraith (sgalbrai@krl.org)
 * Now func_ladders work the same way as regular climbing surfaces
   This required some additions to the CheckWaterJump() function
   and removed a big section of PlayerPreThink() in Client QC.
 * Holding the attack button while climbing means always climb
   without checking forward velocity (which was unreliable.)
 * Running forward with the attack button only works when you are
   on the ground now.  But this has a side effect: you slow down
   significantly when you jump.
 * Fixed that by changing horizontal velocity to 240 in the
   direction that the player is facing, when jumping and holding
   the attack button.
 * Jumping while locked onto an enemy makes you jump left or right
   at 45 degrees if you are moving forward or sideways,
   and backward if you are not moving forward or sideways.
   This uses fewer hit points than a regular jump.
 * Split up new entities into seperate Quake C entries.

9-7-00

Seth Galbraith (sgalbrai@krl.org)
 * defined CAMERA_ constants for the various camera styles.
 * Added a new camera style, which turns to follow the player,
   like camera mode 2, but is smoother because it uses client
   pitch and yawspeed commands.  Unfortunately strafe must be
   turned off so it does not work with mouse and joystick.

9-9-00

Seth Galbraith (sgalbrai@krl.org)
 * With help from Greg Mapes (gmapes@krl.org) I may have fixed
   the monster_player infinite loop bug, by simply not calling
   mp_run during mp_missile.
 * Now mp_missile has a 1 in 10 chance of jumping.  This can
   make monsters do stupid stuff like jumping into lava
   (although monsters aren't hurt by lava.)
 * Monster_players have a 30% chance of jumping when sidestepping,
   similar to the player jumping while locked on to a target.

9-11-00

Greg Mapes (gmapes@krl.org)
 * Converted void maps for Hack and Slash

Seth Galbraith (sgalbrai@krl.org)
 * camera_on() sets self.view_ofs to '0 0 -1'
   This prevents the camera from poking through ceilings.
 * camera_off() sets self.view_ofs back to '0 0 22'
 * Holding 'L' key to look now changes forward and back arrows
   to zoom in and zoom out (also mouse does not look up/down)
 * New way to adjust the camera:  'L' plus up/down arrows "zooms"
   the camera, while the '[' and ']' keys "move" the camera.
 * Worked on valley map, but it still has major leaks

9-12-00

Seth Galbraith (sgalbrai@krl.org)
 * Changed localcmd() to stuffcmd() in SetClientVar()
   (in camera Quake C) because localcmd executes the command
   on the server, while stuffcmd executes the command on the
   specified client.
 * Added information about controls and settings to hands.txt
 * Added GPL license information.

9-13-00

Seth Galbraith (sgalbrai@krl.org)
 * info_player_deathmatch now spawns a monster_player
   instead of becoming one.
 * Jumping up to catch an edge that is out of reach from
   the ground is now automatic. (This is handled in the
   CheckWaterJump() function of the Client Quake C.)
 * camera_cycleModes() was using localcmd() instead of stuffcmd()
 * cl_pitchspeed and cl_yawspeed are restored to their default
   values when you don't use the CAMERA_CLIENTCMD camera style.
 * Added some Open Quartz graphics:  Health BSP models, exploding
   box and barrel BSP models, and a whole bunch of .mdl models.

9-14-00

Seth Galbraith (sgalbrai@krl.org)
 * Added installation instructions to hands.txt.
 * Added "crosshair 0" to the Configuration settings.

9-15-00

Ulrich Galbraith (ugalbrai@krl.org)
 * Added s_splash.spr - splash sprite

Seth Galbraith (sgalbrai@krl.org)
 * Added modified WaterMove() function to Client Quake C
   - This function has a simpler drowning damage rule:
     5 damage per second after 30 seconds underwater
     (i.e. 1 hit point per round after 15 rounds underwater)
   - Drowning damage is ignored in slime and lava
   - Damage from slime increased by 25%
   - Lava damage creates smoke/fire effect using explosion sprite
   - Running in water creates splash effect
   - Getting in and out of water creates the splash effect too
 * Reorganized shared models and sprites
   - Added Open Quartz GPL explosion sprite to gfx.qme
   - Moved Scenery models and sprites from shared.qme to gfx.qme
   - Moved s_*.spr from "Scenery" to "PROGS" in gfx.qme
   - Moved 3D pointers from "Scenery" to "PROGS" in gfx.qme
 * Replaced Quake water texture with a free texture in 3streams

9-16-00

Seth Galbraith (sgalbrai@krl.org)
 * Added a new func_wall option:  setting spawnflags to 1 makes
   the wall invisible - like indestructible glass.
 * Tweaked the climbing and hanging from ledges settings
 * Spawnflags 1 makes func_wall and func_ladders invisible
   They are more solid than clip brushes.  They can be climbed
   and walked on (without auto-jumping.)  Small objects and
   missiles can't pass through them.

9-18-00

Greg Mapes (gmapes@krl.org)
 * Fixed black box which blinded the camera in some Void maps
 * Added monster_player starts to void maps.

Ulrich Galbraith (ugalbrai@krl.org)
 * New, better looking water splash sprite

Seth Galbraith (sgalbrai@krl.org)
 * Fixed a major bug in the monster_player QC which prevented
   sidestepping (attack_finished time was set after mp_sidestep()
   was called instead of before.)
 * CAMERA_SERVERCMD and CAMERA_CLIENTCMD styles try to stay above
   a 40 degree angle in camera_think() function of Camera Quake C.
 * Camera now focuses more on the player's head
 * Camera doesn't stick into walls (so void4 sky doesn't blind you)
 * Void2 - added destination for trigger_teleport with unmatched target
 * Void4 - reoriented teleport destinations so you don't jump into the void.
 * Void5 - changed clip brush to invisible func_wall so you can walk on it.

9-19-00

Seth Galbraith (sgalbrai@krl.org)
 * self.view_ofs moves up when you look up and down when you look down.
   This helps keep the camera from looking through ceilings and floors.
   (added at the end of camera_think in Camera Quake C)
 * New camera utility functions assigned to I, J and K keys:
   KEY IMPULSE FUNCTION
    I    24    player_faceWall()  in Camera Quake C
    J    25    camera_turnLeft()  in Camera Quake C
    K    26    camera_turnRight() in Camera Quake C

9-20-00

Greg Mapes (gmapes@krl.org)
 * Fixed the major bug that made the camera go horizontal when respawning
   and restarting levels by removing "fixangles = TRUE;" from the
   PutClientInServer() function in the Client Quake C.
 * Put "self.enemy = world" in playerdie() function.
 * Fixed targetting system targetting ghosts by checking for
   self.enemy.classname == "ghost" in autotarg_think

Seth Galbraith (sgalbrai@krl.org)
 * Added axe sound to camera_turnLeft() and camera_turnRight()
 * Releasing the L key snaps the camera to a multiple of 45 degrees
 * Removed old valley map which was leaky and difficult to fix
 * NPCs only appear at DM starts if there are no monster_player starts
 * NPC respawning rules depend on whether monster_player starts exist
 * Fixed a bug in ClientObituary() function where self.netname was
   being modified instead of attacker.netname and targ.netname
 * Added check for "ghosts" to autotarg_pickTarget()
 * Added check for invisibility to autotarg_Think()
 * Scaled grass texture in Wyvern map down to 1.00 from 4.00 and 2.00
 * Running forward with the attack button stops when you are close
   to your target.  This makes attacking less "slippery"

9-21-00

Seth Galbraith (sgalbrai@krl.org)
 * Removed spawnflags that kept info_player_deathmatch out of wyvern
   map in single player mode because it is no longer needed and it
   was keeping a bug hidden in single player mode
 * Fixed that bug - monsters were still appearing at DM starts when
   monster_player entities were present in the level
 * Fixed the bug where "a monster" was blamed when you telefrag an NPC,
   but now no attacker name is printed when you telefrag an NPC
 * New misc_sound behavior (documented in misc_sound Quake C)

9-23-00

Seth Galbraith (sgalbrai@krl.org)
 * NPCs sink into the floor a bit when they hit a multimodel selector
   I removed this from the buglist because NPCs should not be placed
   in player model selection rooms.
 * view_ofs fix from 9-19-00 was backward - instead of fixing a bug
   it only made it worse.  I have fixed it right this time (I hope :-)
 * Now a correct message is printed when you telefrag a monster
 * When a monster dies trying to telefrag you, it prints that the monster
   telefragged himself.  (The teledeath's owner is not the player for
   some reason, but I'm not interested in that at the moment ...)
 * Fixed some things in Wyvern Monastery level:
   - invisible imprecision errors which caused autojumping on solid ground
   - moved NPCs away from player teleport targets
   - overhauled lighting using IKLITE's angle 2 feature (no attenuation).
   - Stretched some ground textures so that they don't wrap-around because
     of 3D hardware interpolation.
 * Made bots run smoother by having unlimited thinking framerates.

9-24-00

Seth Galbraith (sgalbrai@krl.org)
 * Re-enabled intermissions in changelevel_touch, and fixed some related bugs:
   - mangle is used to hold camera angle so you don't get intermission camera
     angle instead of player camera angles when you start the next level.
     (affects changelevel_touch() and SetChangeParms() in Client QC)
   - camera_think() function on Camera QC restores 90 degree feild-of-view
     and no longer puts you into first-person view during intermissions.
 * Streamlined the customizeable armor code and split it into it's own module
 * Moved customizeable health item code into it's own module too.
 * Made artifacts more customizeable, removed "666" armor value invulnerability
   effect which doesn't go with our default invulnerability model (an ankh),
   and changed the default artifact names to better fit our default models
 * PlayerPostThink() function in Client QC module has been overhauled:
   - it now completely replaces the original instead of using inherited()
   - the falling/landing section is moved to player_checkLanding()
   - the hit points section is moved to rps_think() in new RPS QC module
 * NPCs now splash when running in shallow water (mp_move() function)
 * WaterMove() - now you don't splash when you enter/exit lava and slime
 * mp_sidestep() now runs smoothly like mp_walk() and mp_run()
 * NPCs can drown, but only during actions which call the mp_move() function

9-25-00

Seth Galbraith (sgalbrai@krl.org)
 * Fixed player selectors which were broken because of redesigned PlayerPostThink()
   by disabling the modelindex_eyes check in CheckPowerUps()
   multimodel_think() changes the model to eyes when invisible anyway
 * Intermissions were broken because of the third person camera
   Now the camera is disabled using the SVC_SETVIEWPORT server command

9-26-00

Seth Galbraith (sgalbrai@krl.org)
 * Saved out QC modules as individual .qc files for non-QuArK users
   (see install instructions for a few important notes about these patches)
 * The one exception to the above, the configuration module has been
   exported as a file named QuArK.cfg.  This is the .cfg file executed
   by quake.rc.  It's like an autoxec.cfg AFTER the regular autoexec.cfg.
 * NPCs drown and take lava/slime damage during all actions.
 * Trigger_changelevels can be activated by target/targetname systems
 * Moved trigger_changelevel into it's own Quake C module

9-30-00

Seth Galbraith (sgalbrai@krl.org)
 * Added decimal points to item_health descriptions (i.e. "1.5 health")

10-1-00

Seth Galbraith (sgalbrai@krl.org)
 * New enhanced light class - custom sounds and lightstyles - light.qc
 * New duplicator class - clones it's target's bmodel - func_duplicator.qc
 * New feilds for sounds - .attenuation, .channel, .volume - misc_sound.qc
 * New feilds for worldspawn - .gravity, .friction - World.qc
 * Players start out with a random model (PutClientInServer(), Client.qc)
 * Moved player model and skin cycling from Weapons.qc to Multimodel.qc
   - removed impulse 0..9 player model change code (broken anyway)
   - multimodel_CyclePlayerModels now cycles through all models
   - specific model selectors can have different "skins" counts
 * Removed all inherited() keywords by inserting these whole functions:
   Monsters.qc  - ChangeYaw() and hknight/ogre/shambler missile functions
   World.qc     - worldspawn() (also removed some unnecessary precaches)
   func_wall.qc - func_wall() and func_wall_use()
   Client.qc    - PlayerDeathThink() and ClientObituary()
                  (also removed a section affecting velocity - friction?
                  and variations of slime/lava/water death messages)
 * Multimodel styles are now numbered starting at 1 instead of 0,
   so I have re-compiled all of the maps
