WHAT THIS IS:

The second biggest requested feature is a monster who goes along with you
and beats up on your enemies.  I've added that in this release of my QuakeC
programs.  As shipped, dogs and monsters with FL_FRIENDLY (8192) are
friendly to whatever player they see first.  Just fire up quake with this
progs.dat and enter e1m1.  In the "room" with the bridge, stand and let the
grunt fire at you.  The dog will notice that you're in danger and leap at
the grunt, usually managing to kill him.  Your friends will follow you
around, and can be pushed out of the way. (though not off the edge of
platforms)

Just because they're your friends doesn't mean they're any smarter than
regular monsters.  I've seen one dog eat right through another to get to
the enemy it was looking for.  They also don't get mad at you, even if you
take the axe to them.

You can also use arcane powers to summon up a minion/pet.  Most of the time
you'll get a dog, sometimes a grunt, and very rarely a demon or a shambler.
Unless you're god, this takes 50% of your health away.  This code, 'impulse
250', should function even in coop and deathmatch games.  Be careful that
you land the "grenade" (I should make it a zombie flesh piece, I suppose)
somewhere that there's enough room to spawn a monster -- Not against walls.
You lose the health regardless of whether you get a monster.

Now, your animals change color to reflect their owner.  However, things
seem not to work on deathmatch servers.  I'm working on debugg(er)ing
this.

I also fixed a problem which caused dogs and fiends to be unpushable
after they did a leaping attack.


HOW TO TRY THIS OUT:

Read howpatch.txt for details on how to use this patch file

Bind a key to 'impulse 250' to conjure up monsters to serve you.

ABOUT MY CODE:

I added a .friend property to all entities.  When a monster is
friendly it'll set its .friend property to the first player it sees.
When a .friend gets hurt, the monster attacks whoever hurt the friend.
When doing nothing else, the ai_run code guides the monster to its friend.


TWEAKS:

Change the line in ai.qc:FindTarget() .. about line 435 and remove the
	|| self.classname == "monster_dog"
part to make only monsters that are FL_FRIENDLY be friendly.  However,
having friendly dogs on E1M1 really shows off my code.


KNOWN PROBLEMS


This program encounters some sort of error during deathmatch.  I've not
had a chance to fix it yet, but with the Linux version

THANKS TO

id, for the game and all the openness about it.

Dave Taylor for working so diligently on the Linux version.

My girlfriend, for patiently ignoring me when I try to explain how cool
Quake is.


GIVE ME FEEDBACK:

Please mail me with your thoughts about this quick quake hack. (try saying
that three times fast!)  It may not be as glamorous as level editing, but
I like it.

Jeff Epler
(jepler@inetnebr.com, Synger on IRC (linuxnet and undernet, primarily))
