*** KeyTrap's Deathmatch Patch v2.0 ***  (Used to be KeyMix)

This patch is made to make a cool variety on the standard deathmatch games,
and hopefully add some more strategy to the game.  I've worked hard to make
it as balanced as possible, and still have a fast-paced game, in addition
to making things a little more realistic.  I have added some stuff of my own
as well as combining (and in most cases improving) my favorite patches
(in part or in whole).  This is the result.  A great deal of the credit goes
to the original authors, and the docs for the patches I've cannibalized are
included in the \docs directory.  All source is included, and generally, the
changes I've made are pretty well documented.  Frankly, I think I've made too
many changes for a .diff file to be worthwhile, but feel free to do one
yourself if you really want to...

The fiend patch is my favorite.  I've done extensive modifications to it, to
make it more fair and exciting to play.  I tell you, it's really freaky
when that thing jumps in your face out of some dark corner.  Try in on
e1m8.  Had to soup it up a bit to make it more playable.  Just don't let it
get anywhere near you...  :) It takes some practice, but it's worth it.
See below for more info.

INSTALLATION:
Go ahead and pkunzip this directly INTO your quake directory, using the -d
option.  (If you didn't, then you now know what the problem is)  Then just
run kdeath.bat or kserv.bat and have fun...

These are the additional impulses you need to set for this patch:

Impulse 54:  Toggles Fish Rockets

Impulse 62:  Detonates Pipe Bombs
Impulse 63:  Toggles between different types of a selected weapon.
             (for instance, toggles between normal rockets and drunk missiles)

Impulse 64:  "Gear Shift" for the fiend.  Toggles between high and low jump
              angles.  Good for the low gravity level(s).

Impulse 98:  Changes down one skin (for player skins or fiend skins)
Impulse 99:  Changes up one skin (for player skins or fiend skins)
Impulses 100 - 144:  Selects a particular player skin
Impulses 175 - 176:  Selects a particular fiend skin

Impulse 210:  Observer mode.  (You have to suicide to change back.)

Impulse 253:  End Fiend Cheat Mode (Back to Human)
Impulse 254:  Fiend Cheat (Doesn't work in Deathmatch or Co-op of course)

****************
Changes for v2.0
****************

-Added the code from the v1.06 source.  Not a lot of big changes, just some
 bug fixes and impulse 12 now reverse-scrolls through the weapons.  If you
 haven't downloaded the upgrade patch from ID software and installed it, you
 should now.  You can play without it, but you don't really want to...  :)

****************
Changes for v1.7
****************

-Teleporters!  Finally, I got someone on the Quake newsserv to help me out.
 gave me some code he'd gotten from someone else, and it was enough to enable
 me to hack out a patch to enable you to fire through them.  You can fire
 throwing axes, nails, lasers, all 3 grenades, and rockets throught the
 teleporters.  I had a bunch of trouble with the throwing axes, but I guess
 that's what you get for combining patches.  As of now, you can't kill
 yourself with your own missiles, etc. by firing them through a transporter
 and standing in front of it.  I tried, and it screwed up a whole bunch of
 other stuff, so I just put it back the way it was.  (I think there's only one
 spot in the game where you can actually do this anyway.)

 Discovered that you can get out of Observer mode by "kill"ing yourself.
 Thought about it for a while, and decided to leave it that way.  You lose
 all your frags when you get into Observer mode, and you have to die to get
 out of it, so it's not very productive to try and cheat with.

 As usual, let me know if you notice any bugs.  :)

****************
Changes for v1.6
****************

-Lots and lots of bug fixes, and little afterthought changes that number too
 many to list...

-Heh... I realized about 10:00p.m. that anytime anyone toggled a weapon,
 EVERYONE toggled that weapon.  Fixed that quick.

-Added the new alien skin for the fiend.  You can switch between the two using
 impulses 98 & 99 as a toggle like the player skins, or you can use 175 and 176
 to change directly. I liked the alien skin so much, I made it the normal skin
 for single-player.  The thrown fiend head also has the alien skin on it.

-I snagged the pipebomb models from the skarmod4 patch, implemented them, and
 made new ones for use with the proximity mines.

-Added a "gear shift" for the fiend.  The jump angle was too high on the low
 gravity level, and you had to look at the ground to jump forward.  So now
 impulse 64 will toggle between a low and high jump angle.

-Added and modified the Observer patch by some guy who didn't put his handle
 in the docs, which are of course in the \docs directory anyway.  Cleaned up
 the code a little bit, and made it so that you have the bubble model (fairly
 innocuous).  I didn't think observers should be able to interfere with the
 game in any way.

-Added a whole ton of new player skins, and rearranged some of the original
 ones.  I had to change the impulses around, so if you were using keymix15 or
 earlier, you may have to modify your autoexec.cfg and config.cfg files.
 Changes are listed above.

-Look in weapons.qc for a list of all the skins, or bind keys to impulses 98
 and 99 and scroll through them all.  The player.mdl is getting really huge, so
 I have some concerns about people with less then 16 megs of ram being able
 to pre-cache the thing.  If you have problems, let me know and I'll take out
 the less-exciting ones.  You can simply rename (or delete) the player.mdl file
 in the progs directory, and it'll solve the problem, although you won't have
 skins available.  Kudos to the Quake Grinder page where most of these new
 skins came from.

-I like DemonStar's Name-fun scripting, but it's sort of a pain in the ass to
 use, so I decided to hard-code it in.  Look in the \name directory, for
 instructions on creating your name, and place your personal script in the
 keyname.scr file.  The patch will re-run the script every time you pop up
 in a new level.  If you don't have the file, the worst you'll get is a
 "can't run keyname.scr" error.  No biggie.

-Added Wrath's RealHeal patch, so that health that you don't need isn't picked
 up, and is left in the health box for later.  Changed it so it works with
 the Mega-health boxes too...

-Added Wrath's RealFall patch, so that you take more damage the higher you
 fall.  I took the liberty of changing it a bit so you don't take quite as
 much damage as the original patch, but it's still more than the original
 game.  Also took out the annoying comments that tell you how far you fell,
 which are wrong on the low-gravity levels.  Docs are in the \docs directory.

-Fixed the bug where the fiend's corpse wasn't solid.

-Added an impulse "cheat" to end the fiend mode in single-player.

-Added psycho-prisoner's xitmsg patch.  Nothing special, just leaves different
 messages when someone leaves an ongoing deathmatch game, as in "BlahBlah
 wussed out with -2 frags.

-Moved all .mdl files into the \progs directory.

Well, the only complaint I've really had about my patch was the fish rockets.
I was just going to take them out, but for some reason I just couldn't bring
myself to get rid of them entirely, prob. for the nostalgic reason that they
were the first thing I put in here. So, you now have a choice.  Normal rockets
are default, Impulse 54 toggles them.  Have fun...  :)

****************
Changes for v1.5
****************

-Added the Throwing axe patch.  Kudos to those guys for the well-documented,
 smooth code.  Very cool.  Changed it so you start out with 3 at the beginning
 of each level or when you respawn.  Docs are in the Docs dir. with everything
 else.

-Bubbles!  If you try to fire the superlasergun under water, all you get are
 bubbles.  Similarly, if you fire it into water, the bolt won't go through
 the water, but will 'evaporate' a small chunk of water into so many bubbles.
 Much thanks to S. Patrick Gallaty for his help with code so that the bolts
 could recognize that they were in water, and the bubble idea.

-Added Steve Bond's shotgun shell patch, although I took great liberties in
 changing the velocities of the shells so that which way they go depends on
 what direction you're facing.  Very cool patch tho.

-Changed the proximity mines so they use twice as much ammo.  They're very
 cool, but too powerful.  It sucks when someone puts about 100 of them
 around a transporter pad.

-Fixed it so that when you change back into a human from being the fiend, your
 "best" weapon is selected, instead of just having the shotgun.
 
-Changed the drunk missile launcher so there is a little more time between
 shots.  Makes it a little more playable, plus you're supposed to be reloading
 3 rockets instead of just one.

-When you switch weapons, the game tells you which modified weapon you're
 using (SuperLaserGun, Proximity Mines, etc.).

-Having problems with the biosuit patch. Right now it just changes your
 skin so you look like the wizard.  Have to figure out how to modify the
 player.mdl file to add the biosuit skin.  Always something new to figure
 out...  :)

****************
Changes for v1.4
****************

-Mostly just fine-tuning stuff...

-Added Shyft's biosuit patch, but it doesn't really work.  I think I need to
 mess with the .mdl files and junk.  Prob. for 1.5.

-The laser "nails" use 2 cells instead of 3.

-Drunk missiles do approximately 3/4 of the damage of normal missiles.  This
 offsets being able to be hit by 3 of them at once.  I also made them
 considerably more "drunker".  All three of them now have the same origin
 point, as we were having trouble with the "side" two missiles exploding
 on a wall you were standing next to.

-Changed all grenades/pipe bombs/proximity mines so they explode when they
 land in lava. It's not perfect, because they will only explode when they
 touch something in the lava, so if for some odd reason you were standing
 UNDER the lava (ouch) you can fire out of it.  Or you could fire through some
 free floating patch of lava, if someone makes a level with one.
 
-Your proximity mines now all explode when you die.  Had to do something to
 try to keep from having 300 proximity mines bouncing all over the place.
 You can still get packet overflow errors if you have too many.
 
****************
Changes for v1.3
****************

-Fixed a fairly nasty bug which caused you to switch to the nailgun when out
 ammo with something else.  This normally is supposed to happen, except that
 the nailgun wouln't fire in this case.  Caused quite a few unneccessary
 deaths...  :)  That's what I get for coding at 3 a.m., I guess....

****************
Changes for v1.2
****************

-A whole bunch more new skins.  Pretty cool, especially Kramer.  Kinda funny
 seeing a Quake dude in a suit.  Fixed the wierd text errors I was getting.
 Funny how much you can fix if you change a || to a &&.

-Umm... I noticed that you can now gib the zombies that are hanging on the
 wall.  I'm not sure how that happened, but it's pretty cool...  :)
 
-Added some new weapons and a toggle.  Hook a key up to impulse 63.  When you
 switch to the grenade launcher or the rocket launcher, hit impulse 63 to
 toggle between the different available weapons.

-You have regular grenades or pipe bombs that you can set off whenever you
 want (impulse 62).  Changed it so that they all go off if you die, suicide,
 or disconnect.  Proximity mine grenades are enabled, but aren't too hard to
 disable if you think they're too much for deathmatch.  Remember you can kill
 yourself with them just as easily...

-You have your choice of either the regular rocket launcher (fish!) or drunk
 missiles. (ROTT!) There's code in there for them to be homing missiles, but
 it didn't work very well, and sucked for deathmatch anyway, so I made it
 go away.

-You have either the regular supernailgun, or the superlasergun (something I
 actually wrote myself) which does a bit more damage, but takes 3 cells per
 shot.  I couldn't get rid of the nail "tink" sound, so when a laser hits you
 or a wall, so you'll hear both sounds.  Kind of odd....
 Made it so you can select the super nailgun even if you don't have any nails,
 but you have cells.  It gives you a message if you switch to the lasergun but
 don't have any cells.

-Grrrr... I had a patch put in that let you fire through transporters, but
 it was buggy, and would crash quake if you started level e2m1.  (seekprox.zip,
 it does it with the original patch, so it's not my error).  Have to find
 a new one... this won't be finished without it. 

-There's code in there for the kicking patch, but it doesn't work at all.
 Oh well.  Something else to fix.

-Fixed a bug that you could fire more shells than you had, and sometimes you
 would get below zero ammo and it will wrap around to 255 or 254.  You didn't
 actually get that ammo.  The bug was actually in the original game code for
 the super shotgun.

I hope to add more weapons as I find good ones. I want to get a hold of the
"grappling hook" source code.

****************
Changes for v1.1
****************

-After getting my ass kicked a couple times as the demon (25 to -2, by
 my roommate, Kalima) I decided the demon needed to be just a WEE BIT
 tougher.  Basically all I can say now is you'd better kill it before it
 gets anywhere near you.  And I changed the Pentagram so that it also acts
 like a megahealth box.  The main problem with the demon is that it doesn't
 have a long-range weapon, so against 3 guys with rockets, well, it needed
 to be tougher.  An interesting side note is that if the level ends with
 someone as the demon, everyone who's not a demon will see his arms and legs
 sticking out from that vantage camera angle.  Kinda funky.

-For some reason, the text that goes with MultiSkin is cycling over and over
 and not leaving the screen.  That gets really annoying, so I disabled it.
 Have to figure out what the prob. is and fix it for v1.2.

-I would like to add various weapons from the morewpns.zip and drunkm3.zip
 files, but the source code isn't in those.  I hope to contact the authors
 and beg it from them...  :)

****************
Notes for v1.0
****************

-This is a combination of code from Jfiend, Multiskins, and gibbin3,
 with a little changing of the impulses from me.  You can set impulse
 200-218 in your autoexec.cfg to start as that skin, but for some reason
 if you go to a new level, you have to re-do it.  I recommend binding a
 key to that impulse.  Also, I recommend binding the [ and ] keys to
 impulses 198 and 199 respectively.  These allow you to change skins at
 will.  I will be adding various things to these as more new things come
 out, and I actually develop some of my own stuff...  :)

-In addition I marked some lines of code (starting at line 1213 in 
 weapons.qc) that if you rem them out will enable the impulse 9 cheat in
 deathmatch.  However, since the server controls it, that means that
 EVERYONE can use the cheat. It's really kinda pointless, as that takes
 all the fun out of the game, but it's nice to know.

-I added the fairly simple "exfish" code.  If you don't like firing fish,
 I marked the code where you can change it back.  :)
 
************

Planned Additions:

- I'm going to make a model so that the fiend can be invisible.
- I'm going to make the backpacks explode when they land in lava.
- I'm going to try making the shotgun shoot lava balls if you have
     cells to burn.  See how that works in Deathmatch.
- I'll try and add the Deathmatch 3 code, in case anyone wants to use it.
- I'm going to make it so you can shoot through teleporters, as soon as
     I figure it out or find source code for it.  High priority.
- Will make the grenades explode if you shoot them.
- Various other things I'll think of later.

The whole point of this is to make cooler deathmatch games.  If you have cool
patches you'd like to add or cool ideas, feel free to send me mail.

Have Fun, but remember to look up from the monitor every couple of hours.
Play Quake too much and you'll go blind.  :)

-KeyTrap
gaunt@cdsnet.net

If you have any cool source code (like working code for weapon teleporters!),
or any bugs you care to report, please send them to me.
