Ultimate Weapon Mod v1.0
by Andy Brennan (abrennan@indiana.edu)
http://ezinfo.ucs.indiana.edu/~abrennan/quake.html
Released 1/11/97

-= Overview =-

I made this patch as an exercise to learn Quake-C.  It combines a lot of 
great weapons patches into one.  Most of the new weapons have new models 
and sounds.  All are top quality patches.  Nearly all are accessible by 
cycling weapons and using the normal weapon impulses (1 through 8), so 
there isn't a need to bind up all the keys on your keyboard.  All weapons 
have been given obituary strings to print when someone is killed by them 
in deathmatch.  All new weapons' current ammo box now reflects how many 
shots you have left with that weapon, not the amount of ammo left.  For 
example, if you are using guided missiles which require 5 rockets to shoot 
and you have 25 rockets, your current ammo will be 5, not 25.  I think this
simplifies things a bit.  In addition, I've also added a player model with 
19 of some of the best skins available.  (I have also provided 
compatibility with Multiskin for those that don't want to use the skins I 
have selected.)

-= Credits =-

I would like to thank everyone who created the original patches which 
this is based upon and everyone who created the models and skins  I'm using.  
They  deserve most of the credit for this patch, because without their hard
work, this wouldn't have been possible.  Also thanks to Brian Martin 
(brian@phyast.pitt.edu) for MedDLe which I used to extract and import 
skin textures into the player model.  And, of course, thanks to id 
Software for making the best games ever.  If I've forgotten anyone, I 
apologize.  Write me some e-mail and I'll take care of it.

-= Weapons =-

1. Axe                  Just your normal axe...  Uses impulse 1.

2. Throwing Axe         (see throwaxe.txt)
			By Steve Bond (wedge@nuc.net)
			Model by John Guthrie (choryoth@nuc.net)
		
			Pretty self-explanatory.  You have an axe and you 
			can throw it.  'Nuff said.  You start out with 1
			throwing axe.  Uses impulse 1.
						 
3. Morningstar/         (see grap109b.txt)
   Grappling Hook       By "Mike" (amichael@asu.alasu.edu)

			This patch gives you a morningstar/grappling hook
			that you can use to hook onto walls, ceilings,
			players, or monsters.  While attached to something 
			you can also switch weapons.  I added some code
			that limits you to 15 consecutive hits to prevent
			a "paralysis" effect while hooked.  Doesn't use any 
			ammo.  Uses impulse 1.    

4. Shotgun              The original shotgun, but I included a new sound,  
			which I got from the Pulp Fiction wad for 
			Doom ][ by Keneda (hmhayes@students.wisc.edu).
			It sounds a lot cooler.  If you want the original 
			sound back, just delete guncock.wav from the 
			sound\weapons directory.  Uses impulse 2.

5. Crossbow             (see masters.txt)
			By Lando (lando@apollo.ruralnet.net.au)
			I didn't have the source code, so I wrote it 
			myself, but it's essentially the same thing,
			maybe a little more powerful.
			
			A cool crossbow weapon for Quake.  Currently uses
			no ammo, although I might change that in a future
			version...  Uses impulse 2.
			  
6. Super Shotgun        Same weapon, but I gave it a new sound.  I 
			got this one from the Pulp Fiction wad for 
			Doom ][ by Keneda also.  If you don't want it, 
			delete shotgn2.wav from the sound\weapons 
			directory.  Uses impulse 3.

7. Freezethrower        (see killer.txt)
			By Howard Roy (howard@mortimer.com)

			This weapon shoots a beam of ice and freezes
			enemies if their health is below 20.  I modified
			this by eliminating the charging time and by 
			changing the ammo required to be 5 cells.               
			Uses impulse 3.

8. Flamethrower         (see flame.txt)
			By Steve Bond (wedge@nuc.net)

			This weapon will shoot out a cool flame (unless
			underwater, of course) and burn enemies.  If set
			on fire, you must get to some water fast.  Uses
			impulse 3.

9. Nailgun              I changed the sound for the nailgun to something 
			I found in the T2 wad for Doom ][ by Solomon 
			White (whitesol@math.enmu.edu).  If you don't 
			like it, delete rocket1i.wav in the sound\weapons
			directory.  Uses impulse 4.

10. Plasma Gun          (see plasma10.txt)
			By Jonathan Wright (nelno@interpath.com)
			Model by John Guthrie (choryoth@nuc.net), skin 
			by Dan Bickell (danbickell@loop.com).  
			
			This gun is just like the plasma gun from Doom. 
			It has the same sprites and sounds.  The model 
			was released in the ClubShub patch which was
			really cool.  Heh.  Uses impulse 4.

11. Super Nailgun       No changes.  Uses impulse 5.

12. Phase Cannon        (see cannon.txt)
			By Josh Robinson (jrobinson@feist.com)
			I didn't have the source code, so I wrote it 
			myself, but it's essentially the same thing,
			but a little less powerful.

			This weapon fires out "absolute zero ionized 
			plasma" which causes displacement when it hits
			something.  This weapon originally gibbed some 
			monsters with one hit, so I toned it down a bit.
			Takes 3 cells to fire.  Uses impulse 5.

13. Laser               (see lasergn1.txt)
			By n-tropy (ntropy@voicenet.com)
			Model by ?.  It was part of the Rapid Fireball
			Launcher, but I haven't been able to find out
			who made it. 

			I took most of the weapon code from n-tropy's 
			patch, and combined it with a really cool 
			weapon model.  It also uses cool blue laser
			blasts.  This weapon uses 3 cells and impulse 5.

14. Grenade Launcher    Just the normal grenade launcher.  Uses impulse 6.

15. Bouncers            (see xtrawp19.txt)
			By John Allensworth (tarquin@texas.net)

			After this grenade is shot, it explodes and sends
			shrapnel flying.  It takes 1 rocket and 20 nails 
			to use.  It has a yellow stripe to distinguish
			it from normal grenades.  Uses impulse 6.

16. Cluster Bombs       (see xtrawp19.txt)
			By John Allensworth (tarquin@texas.net)

			After this grenade is shot, it explodes and 
			releases 6 more grenades.  This one uses
			the grenade with the yellow stripe also.  It 
			takes 7 rockets and uses impulse 6.             

17. Rocket Launcher     I gave the rocket launcher a new sound.  I got it
			from a Doom wad (although I can't remember which
			one).  If you don't want it, delete sgun1.wav in
			sound\weapons.  Uses imulse 7.

18. Guided Missiles     (see guide101.txt)
			By Ken Alverson (KenA@TSO.Cin.IX.Net)
		
			This is a really cool mod that lets you steer
			your missiles and hunt down your enemies.  I
			made these take 5 rockets since it's a lot easier
			to hit your targets.  Uses impulse 7. 

19. Homing Missiles     (see advwepv7.txt)
			By Lynx (briggsj@lurch.ball.com) and 
			Dumont (pjsmith@ix.netcom.com) who based their 
			work on a mod by Vhold (vhold@netwizards.net) 
			
			This mod creates missiles that will find an
			enemy in flight and hunt it down.  This is cool,
			but it makes it really easy to frag someone.  I
			upped the ammo requirements to 10 rockets and 
			fixed up the targeting messages.  I also made it
			not target certain doors and triggers.  Uses
			impulse 7.

20. Thunderbolt         Same old lightning gun.  Uses impulse 8.

21. BFG-9500            (see bfg11.txt)
			By Jonathan Wright (nelno@interpath.com)

			Doom's deadliest weapon is back in Quake.  The
			weapon damage is calculated very well (just like
			in Doom), but in Quake it doesn't seem like it 
			does quite as much damage.  Maybe that's because 
			there isn't as great a chance of being hit by the
			tracers.  I lowered the ammo requirements to 20 
			cells/shot and also fixed the frame functions so
			it doesn't wait for a button release to fire.
			Uses impulse 8.

22. Demo Charges        (see democh2.txt)
			By Steve Bond (wedge@nuc.net)
			Models by John Guthrie (choryoth@nuc.net)

			These are charges that you can plant and 
			detonate remotely.  I lowered the ammo
			requirements to 5 rockets.  Impulse 20 plants a
			charge and impulse 21 detonates all of your 
			charges within a certain radius. 

23. Stingers            (see stinger.txt)
			By Pangloss (weblook@mmv.se)
			
			This little grenade is used for throwing into
			some water and electrocuting everyone in it.  It 
			has a blue stripe to distinguish from other 
			grenades.  If it does't land in water, it does 
			nothing.  It takes 15 cells and 1 rocket and uses 
			impulse 22.

24. Flares              (see flares.txt)
			By Steve Bond (wedge@nuc.net)
			
			These flares shoot into walls, glow for a few 
			seconds, then shine brightly for 10 seconds,
			glow for a while more, then disappear.  I changed
			the model to the missile because it looks cooler.
			I also used basically the same code that he used 
			in Demo Charges to make the flares bounce off of
			doors and platforms, instead of just removing them
			(I'm not sure why he didn't do that).  Flares
			currently require no ammo, but that could change.
			Impulse 23 fires a flare. 
			
25. Motion Detectors    (see motion.txt)
			By KTGOW (ktgow@cory.eecs.berkeley.edu)
			Model by n-tropy (ntropy@voicenet.com)

			Motion detectors take 10 seconds to activate, 
			and then begin to shoot nails at anything that
			moves (including yourself) within a specified 
			range.  I modified these to take 5 rockets, 
			50 nails, and 5 cells.  When they run out of
			ammo, I made them self-destruct instead of letting
			the player "reload" it.  That seemed sorta 
			unrealistic.  They will also self-destruct if   
			someone touches them.  I changed the model to 
			that of the proximity bomb by n-tropy in his 
			proxmin1 patch.  I fixed up the tossing routine
			a bit so now the detectors don't float a foot away
			from a wall.  They will now stick to walls.  Toss
			a motion detector with impulse 24.

-= Other Features =-

-Super Shotgun now ejects shells after firing.  (See eject.txt)
 Original mod by Steve Bond (wedge@nuc.net).  Shell model is used with
 permission from the beta release of the Gatling gun (see gatling.txt) by 
 James Lazarus (models),  Robert Miller (QuakeC), and Christopher Bolin 
 (Skins).  I will most likely add this weapon to the Ultimate Weapon Mod 
 after the gun's final release.  The beta rocked...
  
-Added a new pain sound from Pulp Fiction, which I got in the Pulp Fiction
 wad for Doom ][.  If you want the original sound back, delete pain4.wav in
 the sound\players directory.

-Made a discharge of lightning in water only affect those players that 
 are actually in the water.  It just seemed dumb to have someone standing 
 on land get gibbed when this happenens.

-Included the extra ogre frames id left out.  (See ogresaw.txt)  That 
 patch was made by Dave Weiden (Weiden@Trenton.EDU)

-Changed the way some of the obituaries were handled to make them more
 accurate.  For example, if you shoot a homing missile, then switch to 
 another weapon and the missile then destroys its target, the obituary 
 will correctly identify what killed the player.

-Added support for a new Spider monster (see spider21.txt) by Ken Turner
(kturner@mail.dialnet.net) and Stan C. (76710.460@compuserve.com).  This is
a very well done, professional-looking model.  I'd really like to see more
maps designed to include this monster.  Just add a monster_spider to the
level.  No levels featuring the spider are included in this archive (you'll
have to find some or edit in your own).  If you know of a good level that
supports this monster, please send me the location where I can find it,
and I'll add a link on my web page, or maybe include the level in a future
release.

-Made a custom player.mdl with some cool skins.  It includes:

1. Original Quake Player by id Software, of course
2. Red Devil by Mike Hammel (plague@texas.net)
3. Crusader by Christopher Bolin (cbolin@teleport.com)
4. White Knight by ?
5. Toxic Armor by Christopher Bolin (cbolin@teleport.com)
6. Ninja by ?
7. Dark Toad by David Silverman (DrkToad@aol.com)
8. Bug by Christopher Bolin (cbolin@teleport.com)
9. Riptor by Christopher Bolin (cbolin@teleport.com)
10. Tiger by Lucas Pope (lupope@vt.edu)
11. Cowboy by Lucas Pope (lupope@vt.edu)
12. Skeleton by Helge and Lars Timenes (helge.timenes@ban.aid.no)
13. Jason by Paul J. Paella (paco@buffnet.net)
14. Han Solo by Dan Bickell (danbickell@loop.com)
15. 4-LOM by Dan Bickell (danbickell@loop.com)
16. Bossk by Les Helper (Helper@citynet.net)
17. Boba Fett by Dan Bickell (danbickell@loop.com)
18. Stormtrooper by Les Helper (Helper@citynet.net)
19. The Terminator by Dan Bickell (danbickell@loop.com)

To change skins, use impulse 200 and impulse 201.  You will retain your
current skin when respawning in deathmatch play, and when you go to a new
level in single player mode.  If you die in single player mode, you will
respawn with the skin you had when you originally began the level.  If 
anyone knows a way to change this, let me know.

For Multiskin compatibility, use the Multiskin player model and use
impulse 202 to switch to Multiskin mode.  (I assume that if you want
to use Multiskin that you already have the correct player model, so I
didn't include it.)  The original Multiskin code was written by Dennis
Noordsij (lnoordsi@inter.NL.net).  Updated by David Wiedenmann
(dwied@cats.ucsc.edu) so the corpses would keep the skin the player
was using at the time.

-= Installation =-

1. Download the .zip and place in a quake\ultimate directory
2. Unzip it with the -d option (don't forget this, or it'll be a mess)
3. Go to the Quake directory and type:

quake -game ultimate

You will want to bind a few keys also.

impulse 20 - throw a demo charge
impulse 21 - detonate demo charges
impulse 22 - throw a stinger
impulse 23 - launch a flare
impulse 24 - toss a motion detector
impulse 200 - change to next skin
impulse 201 - change to previous skin
impulse 202 - switch to Multiskin mode

If you want to recompile the code, obtain the original Quake 1.06 progs
and a Quake C compiler (I recommend FastQCC by Jonathan Roy) from any
Quake FTP site (I also have them on my web page).  Copy the compiler and
the progs into the ultimate\progs directory.  Then copy all the files from
the ultimate\src directory into the progs directory (overwriting all
duplicates).  Then run the compiler from the progs directory.

-= Known Bugs =-

I've tested this a lot on both single player and multiplayer.  There don't
appear to be any major bugs in this version, at least none that I know of.
There are a few minor inconveniences that I would like to fix, though:

-I had to set the current ammo for the morningstar and crossbow to something
 other than 0.  I added a few lines in W_CheckNoAmmo similar to those for
 the axe to correct the problem.  But for some reason, it was still calling
 W_BestWeapon and changing to another weapon as soon as they were selected.

-Any players or monsters that are killed while frozen (using the
 freezethrower), remain frozen.  This isn't a major problem, but I guess
 it could cause some slowdown if there are a lot of dead, frozen things.

-After firing a guided missile, the gasping sound was made.  I added 12 to
 air_finished to keep it from doing it, but that probably isn't a real great
 solution.  I still don't know what was causing that...  Also it appears
 sometimes that you hit your "clone" when firing a missile.  The clone
 should have been changed to DAMAGE_NO before you should be able to
 fire another missile.  Hmmm...

-The impulse commands sometimes give the wrong message (either "No weapon"
 or "Not enough ammo").  They will only change weapons if you really do have
 the weapon and enough ammo, so it's not a big deal.  It's probably just
 some dumb error in my W_ChangeWeapon function.

-Sometimes in the start level, you'll spawn at a weird angle.  Odd.

If you have any suggestions or fixes, e-mail me (abrennan@indiana.edu).

-= Stuff I hope to add in a future release =-

-Ammo usage for crossbow, flares
-Gatling gun
-Chase cam
-Hologram decoys
-More cool, new weapons 
-Support for cool, new monsters (not enough people are releasing source
 code for their monsters!)
-What would you like me to add?  E-mail me any suggestions.

-= Tech Notes =-

I tried to mark sections of code where I made important changes, but I
won't make any guarantees.  I made all new weapons their own .qc file
to keep things fairly organized.  It's assumed that I made major changes
in the weapons.qc file, so it is scarcely commented (sorry).

I added an entity field .weapons which holds the bit flags for all the
weapons instead of .items.  The original weapons must keep their original
values, and they must be maintained in the .items field as well so the
status bar will be displayed correctly.

-= Legal Stuff =-

Authors MAY use these modifications as a basis for other publicly
available work.  After all, customization is what makes this game so
great.  Send me some e-mail if you decide to make a patch based on this
one.  I'd like to hear about it.

You may distribute this Quake modification in any electronic
format as long as this description file remains intact and unmodified
and is retained along with all of the files in the archive.  If you
intend to make money off of this (by including it on a CD-ROM or
any other means), you must get my permission first.

