Balance of Power aka High-Ping Heaven
An Anti-Lag Quake 2 mod written by Matthew P. Ownby (bop@planetquake.com)
Project begun in the month of March, 1998
Developed with Linux (a REAL OS hehe)
Regular deathmatch and CTF support included!! =)
(Server side only!!)

Last updated 8/4/98 when v0.92 was released

###
Latest version is v0.92
###

	To all concerned:

	This is a Quake 2 mod which I refer to as Balance of Power.  There
is a slight question whether this title is too trite to keep, but it is so
appropriate that I have not made great efforts to come up with an
alternative.  Balancing Power is precisely what this mod does.  It was
inspired after one more frustrating game over the modem against LAN
players who were everywhere at once on the screen.
	BoP gives the high-pinger a chance against an LPB (a common title
for those who have extremely fast connections to the public Quake 2
servers). True, if you are really good (or rather, if the LPB is a
marginal player) you aren't bothered by an LPB.  But if the LPB happens to
be exceptionally good, it really doesn't matter how good you are.  You
will be at a disadvantage.
	BoP levels the playing field.  In a nutshell, the worse your ping,
the more powerful your player is.  You are more powerful in that you do
more damage in your attacks, and you can sustain more damage.  This provides
a better challenge for LPB's who are having too easy of a time with the
lagged-out players, and it also makes the game more fun for the HPW's.
	Another interesting feature is built-in protection for players who
"lag out", that is, players who suddenly freeze because of super-high
pings, and are out of the action for 10-20 seconds (modem retrain is one
cause of this rather annoying occurance).  If large packet loss is detected
(due to a modem retrain for example) you will be given a free invincibility
that will stay with you for 10 seconds after your phone jack disappears.  But
beware; for with this gift, comes a price.  Should you be compelled to
take advantage of this safeguard, you will be afflicted with "lag
sickness", a condition that prevents you from using any of your weapons!
Lag sickness lasts for a certain period of time (default 10 seconds) after
your free invincibility runs out.

	There are various bells and whistles that I've also added.  For
example, if your ping is significantly lower than your target's, the victim
will flash red for .5 seconds, indicating that he/she is getting a little
extra help.  Conversely, if a high-pinger hits you with a weapon, the
high-pinger will flash blue for .5 seconds, letting you know that he/she
is doing more damage than is normal.
	I modified the obituaries a little bit too, adding detection for
gibs, quad-deaths, and even invincibility-deaths.

        There is also the option to run this mod completely mostly invisible to
the client; that is, the damage and resistance will be adjusted in the
background, but everything else will look like an unmodified game.  Any server
running BoP should notify the player at the beginning of the game.  Some mods
may not do this, and so I highly recommend you include in your message of the
day that your server has added BoP support so your players know they are
playing on a BoP server and not a normal server.

	I have included the source code for both regular deathmatch and
CTF.  I developed this mod in Linux so I included the makefiles for that.
I have compiled it for Win32 using the free LCC compiler, but I don't have
access to MSVC++.  I hate Microsoft anyway.  This LCC compiler has impressed
me thus far (it compiles very fast).  There should be no problem porting BOP to
other UNIX platforms (I compiled this source code by making minor changes
to the Makefile on my ISP's Sun just as a test).  GCC is pretty nice that
way.

	This mod is server-side only.
	I added a file called g_bop.c which houses most of the functions
specific to the mod.  Sorry if I didn't comment it too heavily; I still
think it's pretty clean code =).
	I altered the following files as well:
	g_local.h
	g_combat.c
	p_client.c
	p_view.c
	p_weapon.c
	g_save.c
	g_svcmds.c	(check this one out for all the commands)
	g_cmds.c
	g_ctf.c (for CTF)

	Most (if not all) of my alterations have a "MATT" in upper-case
next to them, so you can "grep" to find them pretty easily.  I tried my best
to keep the code inside the g_bop.c file and only use function calls or
short additions into the rest of the code.  This seemed to be the easiest
way to have CTF and DM support at the same time.

	I encourage other people to help me write this mod.  But I would
like some order, so I have 2 requests:
	1 - If you come up with something cool to put in the mod, give it
to me to put it in my code.  That way, I will hold the master copy and we
won't have different versions floating around with different features.
	2 - I would prefer if any contributions were considered optional
for the end-user.  I don't mind adding practically anything anyone wants
me to, but I am kind of wary about having potentially "different" mods set
as a default option <grin>.

My email address is bop@planetquake.com

And my web page is http://www.planetquake.com/bop/
