Title    : Egg's Quake-C Hack #1
Filename : egg_1.zip
Version  : 3.04
Date     : 97.3.22
Author   : Andrew Eglington.
Email    : betlog@ozemail.com.au

Format of Quake C
-----------------
unified diff  : no
context diff  : no
.qc files     : online at www.ozemail.com.au/~betlog/QUAKE/egg_1_qc.zip
progs.dat     : online at www.ozemail.com.au/~betlog/QUAKE/egg_1.zip

-------------------------------------------------------------------------------
			*IF* you use my CONFIG.CFG file:
CONFIG.CFG is read-only to preserve a few changes I made which Quake deletes.
(mainly comments describing what the impulse does)so *if* you make it writable
(preferably don't) and run quake, it will change a bit. (a lot)
-------------------------------------------------------------------------------

Description of the Modification
-------------------------------
Various hacks of Quake-C code, compiled and (heavily) modified.
 By collecting and playing heaps of patches, I wanted to play a few together,
With no prior C experience, I went about learning Quake-C through reading the
source code, and decompiling a few .DAT files here and there. This is the
result so far.

 Newer additions to the patch, or recent modifications to old additions will
be found toward the top of the list below.

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

Head Shots!
	* When using the sniper rifle you can shoot players in the head.
	* Head shots ignore armor effect.
	* Torso shots include armor effect.
	* Leg shots ignore armor effect, and victim bleeds as per severing.
	* When crouching, legs and head are more difficult to hit, the torso
		presents the largest target. So if someone is sniping at you
		and you have armor: crouch...they probably are too.
	* Completely original code, concept courtesy of CheckWaterJump();
		I think it's great, even if I do say so myself.  }:-]
	* I will probably apply this to all non-radius effect weapons
		..... eventually.
		IMPULSE NONE [use the sniper rifle]

		IMPULSE 251 [calls similar function CheckIfHeadShot();
				that checks where on an	opponent the
				player is aiming.]
		IMPULSE 30  [I have temporarily hooked it up to the
				crosshair/laser sight thingy, so if
				you use the crosshair you will see it
				in dynamic action]

T_DirectDamage (and modifications to T_WaterRadiusDamage & T_BeamDamage)
	* Many forms of damage should not be influenced by the players armor:
		eg: Armor should not protect the player from drowning,
			or falling.
	* Some forms of player inflicted damage ignore armor.
		eg: Lightning bolts.
		    Being pushed off a cliff!
		IMPULSE NONE

Jetpack Toss
	* Throw your jetpack and all of it's fuel.
	* Good for stockpiling jetpacks.
		IMPULSE 43

Motion Sensor
	* If you move you get shot.
	* Owner not shot at.
	* Fires nails 1 per second.
	* Requires 100 nails.
	* Does 25 damage per hit.
	* Sensor has 300 health.
		IMPULSE 9 [launch sensor] 24 [reload sensor]

More Cells
	* Cells replace shells and nails 20% of the time.
	* Levels previously with no cells, will now likely have at least a few.
		IMPULSE NONE (PROB_CELLS in defs.qc is replacement probability)


Shove
	* Push stuff around, if you can hurt it, you can shove it.
	* some items may be too low or too high off the ground to shove, but
		I'm pretty sure everything can be shoved, even corpses.
		The object's height is the only limitation... If you cannot
		shove something, then crouch and try again.
	* Items will respawn wherever they were last shoved to.
		IMPULSE 14

Gibable corpses
	* Corpses take damage, until reduced to mash.
	* They can be shoved around to form barriers, or trip people up.
	* Corpses make mushy noises when they are gibbed, so occasionally the
		bad guy will be shooting at you and blow up a corpse, then
		come waltzing around the corner to collect the booty, thinking
		that they just blasted you... Crouch down and let em have it.
		IMPULSE NONE

Grappling hook
	* Basically just a direct implementation of HOOK22.ZIP
		Plus some improvements
	* Only one impulse to extend and remove hook.
	* Hurts whatever it sticks into.
	* Will draw items toward the player, the player remains where they were.
		ie: shoot another player, some ammo, a weapon, or armor
			and it will be drawn toward you. NOTE: The target
			is still being damaged as it moves, so it may blow
			up just as it gets to you.
	* If object hit is not moveable (eg: the world, a wall) the player
		will be drawn toward the wall as per usual.
		IMPULSE 45

Crouching Position
	* Crouch down and present a smaller target to your opponent.
	* Movement rate is limited to 50% forward and 25% sideways.
	* New frames for player.mdl
	* Base frame [# 144] courtesy of Glen Murphy AKA FrenZon - Crouch v1.0
	* Can use (almost any weapon) from crouching position : except the axe,
		until I get around to making a suitable frame for the
		axe attack, run, die etc I have just procluded it's use. If you
		run out of ammo: shove and grappling hook, or better yet: stand up
		and use the axe. But not while crouching.
	* Can jump from crouching position.
	* Crouch function does a check on upper corners of players bounding box
		to ensure that it is possible to stand up, before doing so.
		IMPULSE 44 (also to get up again)

Axe Frenzy
	* Axe does significant damage (3 hits is almost always enough)
	* Upper and lower body haemmoraging.
		* One average swipe starts the upper body bleeding:
			- Big weapons do damage to the person firing them.
			- Movement rate is 95%
		* Two average swipes or one good swipe makes upper and lower
			body bleed.
			- Big weapons do Big damage to the firer. (DON'T use
				the payload rocket if you're limping.)
			- Movement rate is 50%
			- Moving around or jumping causes further injury.
		* Mega-Health heals one injury site. (legs or arms)
			Two mega-Healths required if both sites are bleeding.
		* Levels no longer get boring after you have accidentally
			blown all the weapons up, some pipebombs and an axe are
			all you need,... maybe just the axe !
		IMPULSE NONE [just use the axe]

Weapon Toss
	* Toss your current weapon to someone else, or just stash it for later.
	* Good for team play, when your partner has only the shotgun, you have
		everything, and the bad guys are coming.
		IMPULSE 41 

Hologram
	* Hologram, does what player does, without going anywhere.
	* With Cam function.
		IMPULSE 31(on), 32(holo-cam )

A flashlight to attract enemy fire with
	* A flashlight (uses NO power )
	* Does NOT illuminate the user.
	* Great for attracting enemy fire, or diverting fire to an opponent
		lurking in the dark.
		IMPULSE 13

Exploding Spikes
	* Nails explode on contact with player/monster or after 2 seconds.
		IMPULSE normal nailgun buttons [4&5] toggle these too.

Throwable & Destroyable Backpacks
	* Backpacks that can be thrown down, or destroyed.
	* Backpacks throw spikes when detonated.
	* When you kill an opponent and their backpack survives the onslaught,
		ALL of the weapons and remaining armor they had will be in the
		backpack they drop, rather than just their current weapon.
		IMPULSE 40 [throw a backpack containing ammo & jetpack fuel]

PipeBombs
	* Throw multiple [5] Grenades, detonate all when desired.
	* Can be detonated by shooting them (nails or explosions)
		IMPULSE 61 - Fires pipe bombs.
		IMPULSE 62 - Detonates all pipe bombs.

Choked Shotguns & Fully Automatic Shotgun	
	* Choked shotguns have half normal bullet spread, twice range
		IMPULSE normal shotgun buttons [2&3] toggle these too.

	* FULL-AUTO Shotgun fires the regular shotgun.....fast.
	* Respawned with 25 shells, a shotgun and a grudge?
		You can still mow em down.
		IMPULSE normal shotgun button [ 2 ] toggles

Sniper Rifle
	* For serious damage sniping.
	* Forces playe rto move at half movement rate while using sniper rifle.
	* Bullet moves at twice normal nail speed.
	* Reloads slowly.
	* Uses 10 nails per shot.
	* 176 - 225 points damage !
	* Best used when crouching.
		IMPULSE 9

Tripwire
	* A portable electric fence.
	* Make nice perimeter guards, while you are guiding a missile elsewhere.
	* Charged tripwire does big damage on contact.
	* May be destroyed.
		IMPULSE 21 [set point 1] 22 [set point 2] 23 [remove point 1]

Jetpack
	* Jetpack replaces items by preset probability.
	* Fuel display.
		IMPULSE Double jump [jump again while still in the air]

Laser Sight
	* Crosshair courtesy of LAZSIGHT (modified by me)
	* Crosshair changes colour to indicate entity targetted.
		- blue   = world
		- red    = damageable [includes secret doors]
		- yellow = door/platform [includes secret doors]
		IMPULSE 30

Guided Missiles
	* Hide good and launch a missile to check things out.
	* button2 (jump - on my setup) detonates the missile in flight.
		IMPULSE 7

Payload Missiles
	* Launch a rocket with 4 grenades attached.
	* Grenades eject on impact, explode 1.5 secs later.
	* Grenades may be individually dropped in flight.
	* Nice launcher model to suit. (Courtesy of heliquak.zip)
	* New sound (courtesy of MECH.ZIP but modified)
		IMPULSE 6 (selects weapon)
		IMPULSE 25 (drops grenades in flight)
		
Flame-Thrower
	* Uses cells to spew chemical fire. Almost meaner than a lightning gun!
	* Set them on fire, then give em some lead while they run for water.
		IMPULSE 8



Spawner
	* Spawns a random item every 25 seconds.
	* Requires 90 shells, 180 nails, 90 rockets & 90 cells 95 health,
		and 100 armor.
	* Just like a 'flag' only much more useful, and worth defending.
	* people usually get really pissed off when you blow theirs up, which
		is a stupid thing to do, unless you have one of your own first.
	* Spawners take 1000 damage.
	* Spawners suck players health (except owners) and adds it to spawner's
		health, so spawners can be very healthy after a bit of contact,
		and can also kill players if they are careless.
	* Spawner owner is immune to spawner vampirism. 
		IMPULSE 29

Backpack discard
	* If the player cannot carry some or all of the gear in a backpack, or
		jetpack they will automatically toss the remainder behind them.
	* All discarded backpacks are destroyable.
	* When discarding Jetpack fuel by itself the fuel is contained in a
		striped cylinder, looks a bit like a pipebomb.
		IMPULSE NONE [automatic]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


** Multiskins
	* Personalized Multiskins
		 [ You don't get these, coz they look like me and my buddies,
		 but the code's there for you to hack & use. ]
		IMPULSE 200

Footsteps
	* Hear the bastards coming.
	* Fly a guided missile at the correct height and it will make footstep
		sounds!	[ good for surprising ambush-setting players ]

Fragile explosives
	* All grenades and pipebombs can be 'killed' with explosions.
	* Includes players backpacks containing rockets. 
	* In fact, every new thing I added is killable with a few exceptions.

Health carried through levels as-is.
	* I figure that health should NOT be affected by changing levels.
	* Health above 100% does NOT rot away if carried through a level
	  ( wanted to but couldn't get the code right ...yet)

Teleport anything.
	* Pretty much anything can be teleported, weapons, backpacks,
		pipebombs, projectiles, all the good stuff. Just aim at the
		right spot in the teleporter.

Lightning discharge modifications.
	* Discharging lightning while IN water will not kill anything that
		is NOT in the water.
	* Discharging lightning into water while NOT in the water will not
		harm the attacker, but will cause 60 damage for a radius of
		600 units to anything that IS in water.


* PLAYER.MDL 
		Skins modified to show some kill-fest buddies' faces, and
		shirts with our names on them. [ NOT FOR PUBLIC ISSUE ]
-------------------------------------------------------------------------------
				KNOWN BUGS/FEATURES
		---- IF YOU CAN, OR DO FIX THESE, PLEASE TELL ME ----
* When crouching and firing guided missiles, the player frequently 'teleports'
	to the location where the missile was purposely detonated.
	(Not on impact, but player detonated)

* When using the holo-cam and firing a guided missile, the player appears to be
	riding the missile! [ I liked this one, so I *don't* want to know how
	to REMOVE it, I want to know how to REPLICATE it! ]

* Spawner Mega-health accumulates up to 250 but does not rot away. However, if
	you pick up a regular (non-spawner) mega health it will start rotting
	the spawner health aquired health.

* Sometimes when a few players are using their holograms your own cam view will
	be from someone elses hologram position, or sometimes from somewhere
	that there *is* not, and *was* not ever a hologram. 

* Players may get stuck when re-spawning on top of a discarded backpack.
	(usually it just blows them up!)

* Players may get stuck when picking up items in single player mode: sometimes
	the item respawns immediately (while the player is standing in it) which
	causes the player to get stuck... dunno why yet, they shouldnt respawn
	at all. I'll fix it eventually, we just never play single player mode,
	so I don't really give a shit.
 
* Players may get REALLY pissed off if you blow up their Spawner.

* If one player puts 5 pipebombs in a small area, and then another player also
	places 5 in the same area it is likely that when they detonate the server
	will crash unceremoniously. [ can anyone suggest why this happens? I have
	thrown 50 pipebombs in the patch I swiped the code from. ]

* Players may get stuck, if standing near a wall when changing from standing
	to crouching or vice versa.

* When firing a guided missile from crouching position, the player stands up
	but is still imbedded up to the waist in the floor. Crouching position
	is resumed when the missile detonates, however the player may be stuck
	to the floor... as above.
-------------------------------------------------------------------------------

How to Install the Modification
-------------------------------
Create a directory called:
c:\games\quake\mods\EGG_1
as a subdirectory in your /quake/mods directory ( Which may not exist )
(parallel to the ID1 directory is MESSY so I prefer to stick all patches under quake/mods/ )

Extract the archive to the EGG_1 directory.

The directory structure should look something like this:
        QUAKE (Directory you installed Quake to)
          |
          |-- ID1 (Original Quake game files)
          |
          |-- MODS (All modification DIRECTORIES go here)
                |
                |-- EGG_1 ( This Patch )


To play, type:

QUAKE.EXE -GAME MODS/EGG_1 
from the Quake directory.  


Too hard? Can't figure it out? Get a geek.


---- Or ----

1) Print this file for reference.

2) Copy CONFIG.CFG & PROGS.DAT into the \quake\mods\EGG_1\	directory.
	(make the directory if you haven't already)

3) Copy STEP.WAV into \quake\mods\egg_1\sound\PLAYER\

4) Copy ARTOO2.WAV, PAYLOAD.WAV, RAMJET.WAV and SNIPER.WAV
	into \quake\mods\egg_1\sound\WEAPONS\

5) Copy *.MDL and NULL.SPR into \quake\mods\egg_1\PROGS\

6) (In DOS at the prompt) Type: QUAKE.EXE -GAME MODS/EGG_1 +map start

If everything is Ok you should be in the quake "start" map.
If, when you push the '2' button a few times, you get a number of weapons
	(3 of them)...	it should work fine.


I wrote this modification with the registered version of Quake,
so if you haven't got it, I dunno if it'll work... anyway stop being a suck,
and buy the game already. ID deserve your money!


Author Information
------------------
 Andrew Eglington is an Associate (Civil) Engineer, Design Draftsman,
DiveMaster, William Gibson freak, believer in logic dialects,
[as opposed to computer languages], HTML/VRML tinkerer and big-time geek.
 Armed with some LISP (AutoCAD) hacking experience, and a lack of knowledge
regarding this C++ beast which has recently evolved into Java. I figured I
would learn some Java and C++, but got bored with the lack of interesting
Java projects. I started learning Quake-C because I really wanted a fully
automatic shotgun, and a jetpack... and pipebombs....and guided missiles....
...and sniper rifles....and..and ....yeah..... So I hacked everyone else's
work and have learned sufficient Quake-C to construct this modification.
 I started about a week before christmas '96, and it is now half way through
January '97, so I guess I have been stuck to my PC about 13 hours a day for
the last few months, learning and writing Quake-C. I'll have to confirm that
with my woman.... if she is still around......Jasmine??? ...Yoohoo Jaz???

Credits   
-------
	Kevin Cheung - cheungi@mskcc.org
	Nick Wilson aka NiCkMaN - nick-man@indra.com
	Requiem - requiem@powernet.com.au
	Stalin - dunno
	AsmodeusB - tazq@sos.on.ca
	Hellblazr - dunno
	Harlequin - dtebben@alumni.caltech.edu
	Charlie Zimmerman - czimmerm@cyberenet.net
	Jeff Epler - jepler@inetnebr.com
	Shannon Greene - blckbrt@wavenet.com
	Scott Ramsay - sramsay@smart.net
	Lando (Aka Conan) - lando@apollo.ruralnet.net.au
	Perecli Manole - Borg - dunno his email
	Merlin Hansen - Merlin.Hansen@Develcon.com
	Talon - bart@powernet.net
	Olivier Montanuy - Olivier.Montanuy@wanadoo.fr
		[Quake-C specification and HTML version.]
	ID Software - We all know why. 
			(It's called Quake-C released to the public domain,
			for all the Dukey Nukey players who still don't get it.)


Copyright and Distribution Permissions
--------------------------------------
Authors MAY use this patch as a base for other publically available work,
but this patch MAY NOT, repeat, MAY NOT be packaged on a CD-ROM without
my permission. Really I just want to know about it. Or if you plan to make
money I want some, or at least a copy of the CD.

You may distribute this Quake modification in any electronic format as long
as all the files in this archive remain intact and unmodified, and doesn't
conflict with anything I said above. Modified variants of this work should
give credit to me and the other dudes whos' work this compillation contains.

If you can't be bothered de-compiling the progs.dat file, then the source is
online. But right now I am still fiddling with it, so it changes daily.
......... Just play the patch!

Availability
------------
This patch is available from the following places:

---- Probably rather outdated: ----
FTP   : ftp.cdrom.com in the /pub/quake/quakec/compilations    	( I Assume )


---- Up to date: ----
And a link on my web page:
http:/www.ozemail.com.au/~betlog/index.html

Or direct to my QUAKE web page:
http:/www.ozemail.com.au/~betlog/QUAKE/index.html

The direct PATCH link is:
http:/www.ozemail.com.au/~betlog/QUAKE/egg_1.zip

The direct SOURCE link is:
http:/www.ozemail.com.au/~betlog/QUAKE/egg_1_qc.zip


