The SARACEN's Open Source Demo

The SARACEN has so far released several open source modifiactions for the game Quake
III Arena. The enclosed PK3 file is a fully-playable demonstration of the capabilities
of all of these modifications.

INSTALLATION -

Simply create a directory directly beneath your Quake III Arena directory, with the name
SARACEN. Your directory structure should resemble thus:

QUAKE III ARENA
      |
      +--BASEQ3		// the main Q3A file directory
      +--EXTRAS		// extra stuff supplied by id Software
      +--SARACEN		// the one you justmade
      +--TOOLS		// Q3Radiant and other stuff you may have installed...

Now copy the contents of the file TheSARACENDemo.zip into the SARACEN directory.

Finally, create a shortcut somewhere, with the commandline

	"[drive_letter]:\[directories]\Quake III Arena\quake3.exe" +set fs_game SARACEN +set sv_pure 0

where "drive_letter" is the drive your copy of Q3A is installed to, and "directories"
points to where you installed Q3A on that drive.

FEATURES -
		- Modules -

There are now six brand new items called Modules. The Modules do not spawn from normal
entity locations in the map file - instead they are spawned automatically by the
server from random Deathmatch Start locations. Each Module is only spawned once per
arena, and only one can be carried at a time - if you are carrying one Module and wish
to pick up a different one, you must first drop the one you are carrying. Unlike normal
Powerups, Modules last for as long as a player chooses to carry them. If a player is
killed, he drops the Module he was carrying. Every 60 seconds, any Modules that are
lying around the arena will be moved to a new location.

The six different Modules are listed below, with their respective behaviours:

Amplifier Module = Essentially half a Quad Damage. Whenever you shoot someone, the
                   damage you cause them is more than normal, but less than what it
                   would be if you had a Quad Damage.
Dampener Module  = Essentially half a Battle Suit. Whenever you are damaged, the
                   amount of damage you recieve is less than normal, but more than it
                   would be if you had a Battle Suit. Unlike the Battle Suit, the
                   Dampener does NOT make you invulnerable to "splash" damage.
Healer Module    = Essentially half a Regeneration. As long as you carry the Healer,
                   your health will constantly regenerate up to 100%, at a rate of
                   5 points per second.
Booster Module   = Essentially half a Speed. You move faster than you would normally,
                   but not as fast as if you had a Speed. Unlike the Speed, the Booster
                   has no effect upon your rate of fire.
Lifter Module    = Halves the effect that gravity has upon your body, allowing you to
                   jump higher, and fall further without getting hurt. Try Rocket
                   Jumping off a Bounce Pad when you're carrying this!!
Cloaker Module   = Essentially a conditional Invisibility. When you're stationary, you
                   will appear exactly the same as if you had an Invisibility. If you
                   jump or run about, however, you will become visible until you stand
                   still, again.

There are also some new console variables, as follows:
	(The Item Flags menu (Multiplayer->Create->Next->Specify) allows much simpler
		control of these variables

g_quadfactor (default = 3) When carrying a Quad Damage, all pain inflicted will be
                   multiplied by this number. When carrying an Amplifier, all pain
                   inflicted will be multiplied by half this number.
                   (this one was actually part of the original game)
                   (In the Item Flags (Powerups) menu, this value is controlled by a
                    	text field)
g_quadskitz (default = 1) If set to 1, the effects of a Quad Damage will combine
                   with those of an Amplifier if the player is carrying both, ie
                   all pain inflicted will be multiplied by (3/2) times the value
                   of g_quadfactor. If set to 0, the Quad Damage will override the
                   Amplifier, not combine with it.
                   (In the Item Flags (Modules) menu, this value is controlled by a
                    	button - "on" = allowed)
g_suitfactor (default = 50) When carrying a Battle Suit, all pain recieved will be
                   reduced by this percentage. When carrying a Dampener, all pain
                   recieved will be reduced by half this percentage.
                   (In the Item Flags (Powerups) menu, this value is controlled by a
                    	text field)
g_suitskitz (default = 1) If set to 1, the effects of a Battle Suit will combine
                   with those of a Dampener if the player is carrying both, ie all
                   pain recieved will be reduced by (3/2) the percentage value of
                   g_suitfactor. If set to 0, the Battle Suit will override the
                   Dampener, not combine with it.
                   (In the Item Flags (Modules) menu, this value is controlled by a
                    	button - "on" = allowed)
g_speedfactormove (default = 30) When carrying a Speed, the player will move this
                   percentage faster than normal. When carrying a Booster, the
                   player will move half this percentage faster.
                   (In the Item Flags (Powerups) menu, this value is controlled by a
                    	text field)
g_speedfactorweapon (default = 30) When carrying a Speed, the player will fire this
                   percentage faster than normal.
                   (maximum rate-of-fire for ANY weapon is 20 shots per second)
                   (Booster Module does not affect rate-of-fire)
                   (In the Item Flags (Powerups) menu, this value is controlled by a
                    	text field)
g_speedskitz (default = 1) If set to 1, the effects of a Speed will combine with
                   those of a Booster if the player is carrying both, ie the player
                   will move (3/2) times the percentage value of g_speedfactormove
                   faster than normal. If set to 0, the Speed will override the
                   Booster, not combine with it.
                   (does not affect the player's rate-of-fire)
                   (In the Item Flags (Modules) menu, this value is controlled by a
                    	button - "on" = allowed)
g_maxModules (default = 1) The server will spawn this number of each (non-banned)
                   Module in the level.
                   (latched - changes won't take effect until map restart)
                   (In the Item Flags (Modules) menu, this value is controlled by a
                    	text field
cg_drawteamicon (default = 1) If a player sets this to 1, he will see that triangle
                   icon printed above his teammates' heads. If he sets it to 0, the
                   icon won't be drawn.

It would be a good idea to bind a key to "+button5", which will enable you to drop
the currently-held Module. I use the F key, so I go (at the console)
	\bind f "+button5"

BUGS:
- As yet, there are no custom models for the Modules, so they will each appear as
	spining rings - the Amplifier is red the Dampener gold, the Healer purple, the
	Booster yellow, the Lifter light blue, and the Cloaker a clear glassy color.
- The Dampener doesn't play a sound when you shoot at your own feet with a rocket.
- I have no idea how the Amplifier sounds will play when using the Gauntlet...
- It is possible to be running forward, drop a Module, but it does not appear, and
	never appears in the game again unless someone types in "give cloaker" (eg)
	and then drops it.
	(this has been jerry-rigged - if it does not appear when you drop it, it will
	 be respawned next time the server shuffles the Module locations).

		- Item Flags Console Variables -

The DMFlags console variable was already part of the game, but although it was
included in the server-setup menu system, it was not fully documented, and its
functionality was greatly reduced by comparison to its role in Quake II. I have
added three new values to this variable, and also added five new variables to
expand the server's control over Items spawing within the game (these can be
controlled much more easily by going to the Item Flags (Multiplayer->Create->
Next->Specify) menu, which will allow you to turn all of the individual features
on or off with a few mouse clicks).

DMFLAGS = Deathmatch Flags. This is an all-purpose variable that controls six aspects
		of the game. The original three values added by id Software allowed the
		server to prevent the use of the Zoom function, to turn footstep sounds
		on or off, and to allow players to fall long distances without getting
		hurt. The three new functions allow the server to prevent the spawning
		of Health, and/or Armor, and to set it so that weapons respawn instantly
		after being picked up, but can only be picked up by players that don't
		already have that weapon (known as Weapons Stay).

WPFLAGS = Weapon Prevention Flags. If flag is set, no ammo will be spawned for that
		weapon, nor shall the weapon itself be spawned. Reason: some pussies
		don't like some weapons.
		(In the Item Flags (Weapons) menu, this is controlled by the list of
			buttons under "Prevent Spawn" - "on" = banned)
WIFLAGS = Weapon Initialise Flags. If flag is set, this weapon will never appear in
		that level, regardless of whether or not there is any ammo. Reason: you
		will already be carrying this weapon (with ammo) upon spawning! In a
		Team Deathmatch game, the amount of that weapon's ammo you spawn with
		will be half as much as in every other game type (id's idea, not mine).
		(players will never spawn with prevented weapons)
		(In the Item Flags (Weapons) menu, this is controlled by the list of
			buttons under "Initial Weapon" - "on" = players spawn with that
			weapon)
		(for obvious reasons, this defaults to 3 = Gauntlet + Machinegun)
WAFLAGS = Weapon Ammo Flags. If flag is set, no ammo will be spawned for that weapon.
		Reason: you won't need it because that ammo will be UNLIMITED!!!
		(has no effect upon Gauntlet or Grappling Hook)
		(In the Item Flags (Weapons) menu, this is controlled by the list of
			buttons under "Ammo Unlimited" - "on" = unlimited ammo for that
			weapon)
		(it's pointless to flag a weapon here that's already been prevented with
			wpflags)

PPFLAGS = Powerup Prevention Flags. If flag is set, that powerup/carried item will
		not be spawned. Reason: some pussies don't like some powerups.
		(In the Item Flags (Powerups) menu, this is controlled by the list of
			buttons under "Prevent Spawn" - "on" = banned)
PIFLAGS = Powerup Initialise Flags. If flag is set, players will spawn with that
		powerup item already active, to last for 30 seconds (the Flight powerup
		is also 30 seconds). For carried items, the server will choose a random
		one from those that are flagged; if only one carried item is flagged,
		all players will always spawn with that item.
		(In the Item Flags (Powerups) menu, this is controlled by the list of
			buttons under "Initial Powerup" - "on" = players spawn with 30
			seconds of that powerup, or, for carried items, with a random one
			of the	carried items so marked, ie "on")
		(players can still be spawned with a prevented powerup/carried item)

MPFLAGS = Module Prevention Flags. If flag is set, that Module will not be spawned.
		Reason: some pussies won't like some Modules.
		(In the Item Flags (Modules) menu, this is controlled by the list of
			buttons under "Prevent Spawn" - "on" = banned)

The actual flag values are:
        Weapons         |          Powerups           |          DMFlags
------------------------+-----------------------------+------------------------------
Gauntlet         =   1  |  Personal Teleporter =   1  |  Prevent Health Spawning =  1
Shotgun          =   2  |  Medkit              =   2  |  Prevent Armor Spawning  =  2
Machinegun       =   4  |-----------------------------|  Weapons Stay            =  4
Grenade Launcher =   8  |  Quad Damage         =   4  |  No Falling Damage       =  8
Rocket Launcher  =  16  |  Battle Suit         =   8  |  Fixed Field-of-view     = 16
Lightning Gun    =  32  |  Speed               =  16  |  No Footstep Sounds      = 32
Railgun          =  64  |  Invisibility        =  32  |
Plasma Gun       = 128  |  Regeneration        =  64  |
BFG 10000        = 256  |  Flight              = 128  |
Grappling Hook   = 512  |                             |
------------------------+-----------------------------+------------------------------
        Modules         |
------------------------+
Amplifier        =   1  |
Dampener         =   2  |
Healer           =   4  |
Booster          =   8  |
Lifter           =  16  |
Cloaker          =  32  |

Simply add the relevant flags together and set that as the console value, eg to ban
the BFG and the Rocket Launcher (ya pussy) just go:

16 + 256 = 272
set wpflags 272

If you want players to spawn with Speed, Invisibility and Flight, and either a Medkit
or a Personal Teleporter, it's:

1 + 2 + 16 + 32 + 128 = 179
set piflags 179

To ban all Armor, make Weapons Stay, and turn off Falling Damage, it's:

2 + 4 + 8 = 14
set dmflags 14

To ban all Modules except the Amplifier, it's:
2 + 4 + 8 + 16 + 32 = 62
set mpflags 62

Just think of the possibilities:
- Everyone spawns with 30 seconds of invulnerability (prevent respawn camping)
- Everyone spawns with Railguns and nothing else (WIFlags defaults to 3, but it
doesn't have to!), and unlimited Slugs!
- No Health or Armor allowed, and no falling damage? We can do that, too!
- Wanna put a Cloaker in there? Merry Christmas!
- Use your imagination!

The server can change the values of these variables at any time - the game should
fully adjust within about 30 seconds (MPFLAGS changes within about 60 seconds).

		- Weapon Slots -

There is now a way to bind multiple weapons to the same key. You can select WHICH
weapons are grouped together using the slots.cfg file (instructions for doing so
are contained inside that file). There are eight slots, with room for up to four
weapons per slot.

By default, the original Quake III Arena weapons are grouped into pairs:

Slot 1 = Utility Weapons    = Gauntlet / Grappling Hook
Slot 2 = Lead Weapons       = Machinegun / Shotgun
Slot 3 = Explosive Weapons  = Grenade Launcher / Rocket Launcher
Slot 4 = Scientific Weapons = Lightning Gun / Railgun
Slot 5 = Energy Weapons     = Plasma Gun / BFG10K

Slots 6, 7 and 8 are currently empty.

When we pick a slot that we've been to before, the game will automatically pick the
last weapon we used from that slot. We can also use a key to simply cycle the weapons
in our current slot (whichever that may be) by not specifying a slot.

Thus, our keybinds are as follows:

"slot 1" = cycle through the weapons in slot 1 (Utility Weapons)
"slot 2" = cycle through the weapons in slot 1 (Lead Weapons)
...
"slot 8" = cycle through the weapons in slot 8 (empty)
"slot"   = cycle through the weapons in the same slot as our current weapon

		- Lightning Discharge -

Now, if you attempt to fire the Lightning Gun underwater, it will discharge all of
the cells in your posession at once, electrocuting everyone else in the water in a
radius proportional to the number of cells discharged.

		- Two-Colored Railgun Trail -

The Railgun Trail effect can now be customised to be drawn in two colors - one for
the core and one for the rings. This is done in exactly the same way as before: go
to the Setup->Player menu, and you will find two separate color bars, where before
there was only the one. The top color bar selects the color of the core, as well
as the color of the Railgun itself during the "recharge" phase. The bottom color
bar in the menu selects the color of the rings, as well as the color of the
Railgun's muzzleflash and impact marks.

:Extra bit - also added a replacement blue banner for CTF maps (just doodling...)
:Note - the Classic Railgun Trail has been removed, due to too many bugs.

COPYRIGHT -

Quake III Arena and all of its trademarks are owned by id Software. The modifications
made by The SARACEN to this game, and provided with this text file, are open source,
and available free of charge and obligation to any who wish to use these modifications
in their own mods.
The sound file "mod_pickup.wav" is a modified version of the file "quadfire1.wav",
which was taken from the game Quake II Mission Pack: The Reckoning by Xatrix, published
by Activision. They own it. I don't really have permission to use it, and I will quite
happily find a different sound to use if either Xatrix or Activision ask me to do so.
Any other persons using this sound file as a result of using my code or my mod should
NOT be held liable in ANY way.

AVAILABILITY -

The source code for these modifications are available separately at The House of Hard
Havoc, http://www.planetquake.com/hardhavoc. If you have any questions or bug reports,
please eMail: The SARACEN at thesaracen@ozemail.com.au
Another place to check for these and many other mods, maps, models and skins is Mod On
Demand, at http://www.planetquake.com/modondemand, a site specifically designed for
mod (etc) authors to publicise their creations and make them available to the public -
The House of Hard Havoc got its start at Mod On Demand.