Title      : Holy Wars
Filename   : hw15se.zip
Version    : 1.5 Special Edition
Date       : 26 of January, 1998
Author     : Paolo "Nusco" Perrotta
Email      : nusco@planetquake.com
WWW page   : http://www.planetquake.com/holywars/
Credits    : Look near the end of this file.

*****************
Modified to use the TutorBots from Coffee
Original tutor bots	: coffee@planetquake.com
WW page			: http:/www.planetquake.com/minion/
HolyWars additions by	: riever@planetquake.com

BotNotes:
	Teamplay is not yet fully tested/implemented
	Source code and compiler included in "src" directory
	Read the bot instructions in tutor.qc

	start with:
	glquake.exe -game holywars -listen 16 +map [NAME_HERE]
******************

Type of Mod
-----------
Quake C  : yes
Sound    : yes
MDL      : yes  


Format of QuakeC
----------------
unified diff  : no
context diff  : no
.qc files     : yes
progs.dat     : yessir, boy



#0. INTRO
    -----

Take it easy, you don't need to read all this stuff. Give a quick glance at the #1 
and #2 sections, call some friends, calmly launch a server on your local network 
and GET DOWN LIKE A SEX MACHINE. 



#1. THE GAME
    --------

1.1. What is Holy Wars
     -----------------

Holy Wars is a deathmatch/teamplay mod for a minimum of 3 players. It's very simple 
to install, learn and use, although it provides a completely different kind of 
deathmatch. Holy Wars can be a refreshing diversion after some hours of CTF, or 
TF, or <insert your favourite heavyweigth mod here>. 

This mod is strongly oriented towards mayhem and carnage, rather than subtle 
strategy and tactical reasoning. Who needs strategy, btw? GORE! WE WANT MORE GORE! 

Holy Wars includes some custom sounds'n'stuff, but these are not central to the 
game and can be left out if desired. That is, it can act indifferently as a server 
or client-side mod. 

Any comments will be very welcome. 


1.2. The rules
     ---------

A Holy Wars level contains a luminous, blue-sparkling entity called the Halo. 
If a player gets the Halo, he'll become a Saint and receive some armour and health. 
The Halo will follow the Saint around. The sparks of the Halo will become golden 
to indicate that the Halo cannot be picked up anymore, until the current owner 
dies. 

Normally, players can frag each other happily, but won't score frags for doing 
so. The Saint is the only player in the game who scores frags by killing other 
"normal" players. The players should avoid killing each other and concentrate on 
the Saint, their common enemy. 

If a player kills the Saint, the Halo will fall on the ground for everybody to take. 
After 30 seconds, an abandoned Halo will teleport to its starting position. 

The idea is that everybody must try to kill the Saint and steal the Halo. In 
deathmatch, the game is always a furious "The Saint vs. The Rest of the World". 
In teamplay games, the Saint's team is should defend him from the other team. 
If a fallen Halo is unreachable because it fell into lava or in some other 
unhealthy place, you'd better hurry to the base to be there when it reappers. 

That's all. The result will hopefully be total carnage. 


1.3. Score system
     ------------

If you're a normal player: 

 0  points for killing another player; 
 3  points for killing the Saint; 
 2  points for getting the Halo and becoming the Saint. 

If you're the Saint: 

 1 point per frag. Watch your score grow! 

When a player is sanctified, he/she will receive an amount of armour and 
health proportional to the number of enemies into the game (minus the number 
of friends if teamplay is on). 

At the end of a game, statistics for every player will be printed on the console. 
You can scroll the text using the PageUp and PageDown keys. These statistics have 
proven able to break long-lasting friendships.



#2. INSTALLATION AND BASIC USE
    --------------------------

2.1. Installation
     ------------

You must have the registered version of Quake to install Holy Wars. To install 
the patch, just make a HOLYWARS directory under your QUAKE directory and unzip 
the holywars.zip file in it (remember to keep all subdirectories).

Start Quake by typing: "quake -game holywars" and any other useful parameters.


2.2. Maps
     ----

Holy Wars 1.5 Special Edition includes five maps from Adriano "Escher" Lorenzini (all 
of them were released as "normal deathmatch" levels in the past). The maps are directly 
supported by the mod's code - this means that you can play these maps in Holy Wars 
simply by launching them.

Here are them:

HOLY1 (De Bello Quakero) - The most strikingly beautiful Quake1 DM map around. Period. 
HOLY2 (UltraViolence)    - Incredibly fast and funny, higher-than-professional-quality map. 
HOLY3 (The Messy Base)   - Not messy at all. My favourite DM map ever. 
HOLY4 (Razzi Amari)      - Larger than the other ones, another good blast. 

To launch a map, just use the command MAP on the console. For example, if you want to 
play Razzi Amari, type: 

  MAP HOLY4

All of id's original Quake maps are also directly supported - just start any Quake map and 
play. See sections #3.5 and #3.6 for information on using other maps in HW. 

Please note: If you use any non-standard Quake map (included the HOLYx maps), 
Holy Wars won't work as a server-side mod anymore - the maps will have to be copied 
on the clients as well as the server. If a client doesn't find the map, it will refuse 
to connect.




#3. ADVANCED USE
    ------------

3.1. Holy Wars environment settings
     ------------------------------

The settings of Holy Wars are stored into the TEMP1 console variable. 
The TEMP1 variable has been used as a set of flags. To activate 
the desired options, take note of each option number, add all the numbers 
together and assign the resulting value to TEMP1 (an example follows the 
list of options). This must be done *before* launching a map, or it might 
not work as expected.

Here are the possible options:

 Option      | Option number |     Use
---------------------------------------------------------------------------------
 LAG         |       1       | When this option is on, the Halo moves smoothly,
             |               | with a nice "inertia" effect, following its
             |               | owner around and emitting colourful particles.
             |               | This nice animation comes at the
             |               | price of a noticeable net lag. If you're
             |               | playing on the Internet, you'd better keep this
             |               | option off and be happy with worst but faster
             |               | animation.
             |               | The default is ON.
             |               |
---------------------------------------------------------------------------------
 CLIENT-SIDE |       2       | When this option is on, the client-side files (the
             |               | new sounds and models) are used. This is nice,
             |               | but it also prevents a player from entering a
             |               | game if he doesn't have Holy Wars installed on
             |               | his system. Turn this option OFF if you're setting
             |               | up an Internet server, or if you couldn't install 
             |               | HW on each machine on a LAN for some reason. This
             |               | way, everyone can play HW without installing any
             |               | file on his own computer.
             |               | This option is ON by default.
             |               |
---------------------------------------------------------------------------------
 SKINS       |       4       | This option uses the new skins in HW (if you
             |               | added a new player.mdl with skins - see section
             |               | #3.2). When this option is not enabled,
             |               | the players will see the standard Quake skins.
             |               | BTW, if a player connects to a HW server without
             |               | having the client-side files on his own system,
             |               | the game won't crash because of the loss of skins:
             |               | the player will just see the standard Quake
             |               | skins instead. This means that there is no reason 
             |               | to uncheck this option, unless some player
             |               | really dislikes the new skins that you added.
             |               | The default for this option is ON.
             |               |
---------------------------------------------------------------------------------

An example: let's say we want to enable "SKINS" and "LAG", but not "CLIENT-SIDE" 
(this is the typical Internet server setting). By adding together 1 (for LAG) and 4 
(for SKINS) we have 5, which is the new value for TEMP1. Just type: 

TEMP1 5 

on the console, *before* launching a map. 

The default value for TEMP1 (set into the HOLYWARS.CFG file) is 7, meaning that 
all the options are on. 



3.2. Adding skins
     ------------

Holy Wars doesn't supply new skins for the players in this version. If you turn skin 
support ON, the players will look like normal Quake marines. Only the player's gibbed 
head model will show a new skin (an excellent "universal head giblet" skin). 
To have new skins, you've got to put an alternative player.mdl into the \HOLYWARS\PROGS 
directory. This player.mdl should contain three skins, in this order: 

      1. The standard Quake skin to use when skin support is turned off. 
      2. An alternative player skin to when skin support is on. 
      3. A skin for the Saint to use when skin support is on. 

To produce a modified player.mdl you should extract a copy of the original player.mdl 
from Quake's pak0.pak. Use an extractor like Xpak 
(ftp://ftp.cdrom.com/pub/quake/utils/bsp_pak_tools/xpak041.zip). Then, you can add 
new skins with a MDL editor like qME (http://www.xs4all.nl/~renep/quakeme/). The best 
skins on the Net can be found at the SkinForge (http://www.planetquake.com/skinforge/). 


3.3. Holy Wars impulses
     ------------------

Here is the list of new impulses (none of which is needed for playing - this means 
that you can safely ignore these if you're not curious), and the aliases to which 
the new impulses are bound. You can use these easy mnemonic aliases on the console 
instead of the impulses. To change the aliases, edit the HOLYWARS.CFG file. 

IMPULSE 42        Gives the position of the player on the console. Only 
                  works in DEATHMATCH 0, used for map-modifying purposes. 
                  See the "Adapting existing maps" section. Aliased to POS. 

IMPULSE 60        Gives the statistics during the game (the "Halo possession" 
                  statistic is only updated when a Saint dies). Aliased to 
                  STATS. 

IMPULSE 250       Gives basic instructions for Holy Wars on the console. 
                  Aliased to INSTRUCTIONS. 

IMPULSE 251       Gives the environment settings for Holy Wars on the console. 
                  Aliased to SERVERSETTINGS. 


3.4. Enhanced Teamplay
     -----------------

This patch includes version 0.92 of The Complete Enhanced Teamplay by 
John Spickes. This excellent patch allows you to customize your team games 
in novel and interesting ways. Read the file TEAM.TXT for info. 


3.5. Using other maps
     ----------------

Holy Wars also directly supports HIPDM1, the Hipnotic deathmatch map from Mission 
Pack #1. Holy Wars will automatically take away all the new Hipnotic weapons and 
powerups from the map and substitute them with mundane Quake stuff (I'm 
sorry about this, but keeping the new stuff in would require a completely 
different version of the progs.dat just on purpose). To use this map, 
you'll need a pack processor (like Xpak, which you can find at 
ftp://ftp.cdrom.com/pub/quake/utils/bsp_pak_tools/xpak041.zip) to extract 
a it from Hipnotic's *.pak file (and copy it into HOLYWARS/MAPS). 



3.6. Adapting existing maps
     ----------------------

It's fairly easy to adapt existing maps for use with Holy Wars. 
To do this you must be able to use a map entity extractor (like Mapent), 
and QBSP (with the "-onlyents" switch) to put the entities back in. Here 
are the addresses where you can find the files: 

ftp://ftp.cdrom.com/pub/quake/utils/level_edit/bsp_builders/mapent.zip 
ftp://ftp.cdrom.com/pub/quake/utils/level_edit/bsp_builders/qbsp_dos.zip 

To adapt a map, you must add a new entity to it: 

{ 
"classname" "item_holywars_halo" 
"origin" "x y z" 
} 

Where x, y and z are the three coordinates of the Halo's base. To find a good 
position for the Halo, you can launch the map in single player 
("DEATHMATCH 0"), and use "IMPULSE 42" - this will print the current position 
of the player on the console. Use "FLY" or "NOCLIP" to move around freely and 
find a good spot. 
When you've patched the map, put it under QUAKE/HOLYWARS/MAPS. Each client 
should have a copy of the map, but the copies on the clients don't need to be 
patched. 

IMPULSE 42 won't work in deathmatch. This little feature can be used for 
whatever it's worth - I once used it to find good spots for deathmatch 
cameras in a level. 



#4. DISTRIBUTION NOTES
    ------------------

4.1. Client-side stuff
     -----------------

I added the client-side files in a hurry. I know that the sound of the Saint shooting 
is bad - it's just a modification of one of Quake's existing sounds. Besides, I didn't 
find any player skins that were freely usable, good, and on topic, so I didn't include 
player skins at all. And the halo MDL is just something that I threw together in 3 
minutes. This means that the client files are not "professional" at all, apart from 
a couple of sounds and the head gib skin. This will change with the next release 
(Holy Wars 2.0 for Quake 2). 


4.1. Source availability  and technical notes
     ----------------------------------------

I decided to include the source code, even if it's embarrassingly messy. Please, 
understand - this project was born as a series of thrown-together stuff, and I 
don't have the time to clean the code as I'm busy working on HW for Quake 2.

You can easily modify the teamplay and deathmatch default values by editing 
the holywars.cfg file. This configuration file is auto-started when you 
launch Quake + Holy Wars. 



4.2. Copyright and Distribution Permissions
     --------------------------------------

Quake is copyright by id Software. 
The Enhanced Teamplay Patch is copyrighted by John Spickes aka Guru 
(jspickes@eng.umd.edu). 
The "universal head giblet" is copyrighted by Dan Bickell (danbickell@loop.com). 
Adriano Lorenzini and Walter Sammarchi are copyrighted by themselves. 
The rest of this patch is copyrighted by Paolo "Nusco" 
Perrotta (nusco@planetquake.com).

You can do what you want with this patch, excluded: 

1) strip out this copyright notice from it; 
2) make money from it in any form without asking for the author's permission 
first. 

"In any form" means: "No, you cannot pick up this stuff and put it on a 
commercial CD. If you ask me, I could give you the permission to do so - if 
you don't have the permission, you can't". 

Any non-commercial use is allowed and welcome. You can redistribute this 
patch at your own leisure. Letting me know of any use of this patch 
(appearances on web pages or in compilations, modifications, etc.) would 
be polite, but is not required. If you use any part of the HW source inside 
your own project, then you must make available the source of your project to 
others.

The strange language that I used to write this document is my own version 
of English, and it's copyright of myself. 

I don't make any implicit or explicit guarantees about this patch: you're 
using it at your own risk. I bet it won't explode, BTW. 



4.3. Availability
     ------------

The official Holy Wars web page (including news and updated versions) is at: 

	http://www.planetquake.com/holywars/ 



4.4. Known bugs:
     -----------

They're not bugs: they're miracles. 

The only miracle that I know of is that the Halo can fly out of the level after 
the Saint dies. This happens rarely, and doesn't ruin the game at all - and BTW, 
it looks like it's a limit of the game engine, not my mod. The Halo will reappear 
at the base after the usual 30 seconds. 



4.5. Credits:
     --------

Adriano "Escher" Lorenzini (a.lorenzini@iol.it) makes maps that kick ass. 
Walter Sammarchi (pec1063@iperbole.bologna.it) did the sounds. 
Paolo "Earthbreaker" Petrini supported this mod on Quake Italia 
(http://quake.shiny.it/).
John Spickes (jspickes@eng.umd.edu). He did The Complete Enhanced Teamplay patch, 
which included in HW. I never played HW in teams, BTW... Who knows? It might 
actually work. 
Dan Bickell (danbickell@loop.com) made the universal head giblet skin. You're 
leet, man. I mean it. Those skins of yours are the very best around. 
id and Hipnotic did you-know-what. 
And to all the friends, betatesters and people helping, commenting and giving 
suggestions: 

                                Thanks, guys. 



4.6. Version History:
     ----------------


* 1.5 Special Edition (26/01/98) 

-> 5 maps from Escher included!
-> Source code included. 


* 1.4 (11/04/97) 

-> All the stuff from 1.3internal that the world didn't have a chance to see before. 
-> Built-in support for some new maps. 


* 1.3internal (07/18/97 - never distributed) 

-> Client-side support: new sounds and models. 
-> Support for skins. 
-> No-lag option for Internet servers. 
-> Minor stuff. 


* 1.2 (06/04/1997) 

-> Statistics at the end of the game and with IMPULSE 60. 
-> Support for all of id's maps. 
-> The Halo is now teleported with the owner, to avoid the previous 
   impossibility to recognize the Saint soon after a teleportation. 
-> The Halo shines blue particles when it's free, to improve visibility 
   (exp. on GLQuake). 
-> Deleted unnecessary messages ("You have taken some ammo" and other such 
   useless stuff). 
-> "What to do" message at respawning. 
-> Random respawn spots. 
-> Optimized Halo movement function (now almost twice as fast, useful on 
   slow systems). 
-> Other very minor things and bug fixes. 


* 1.01 (05/19/1997) 

-> Corrected a bug that generated "Unknown entities" when starting certain maps. 


* 1.0 (05/15/1997) 

-> First publicly distributed version with a lot of changes. 


* 1.0b (02/22/1997, unreleased) 

-> First semi-working version for betatesters. 

