  Transfusion manual
  Mathieu Olivier and Dave Turner
  <{elric,darth_linux}@planetblood.com>

  v1.0.1, October 22, 2002

  This manual covers installation and usage of the ``Transfusion'' game.

  ______________________________________________________________________

  Table of Contents


  1. Introduction
  2. Installation
     2.1 Using Transfusion as a Quake mod
     2.2 Transfusion and QuakeWorld

  3.  Basic usage
     3.1 Game types
     3.2 Impulses
     3.3 Game play notes
     3.4 Bots
     3.5 Brink Of Death

  4. Bloody stuff
     4.1 Weapons
     4.2 Health & Armor
     4.3 Items & Powerups

  5. Advanced usage
     5.1 Warmup
     5.2 Voting menu
     5.3 Cvars
     5.4 Map cycling

  6. Frequently Asked Questions
  7. Links


  ______________________________________________________________________

  1.  Introduction

  The Transfusion Project aims to recreate an old DOS game from Monolith
  Productions called Blood, using the Quake engine.

  It looks like a simple od, but actually, you don't need any Quake
  data to run it. In fact, Transfusion is a complete total conversion of
  the multiplayer aspect of Blood. The original Blood is a remarkable
  game, and the Transfusion team hopes you'll have as much fun playing
  it as we had playing Blood.

  Obviously, you'll be more at ease if you already know Blood and/or
  Quake.  Even if it's not the case, don't worry: you should be able to
  find in this manual all you need to know about Transfusion.

  2.  Installation

  If you read this manual, chances are that you have already installed
  Transfusion on your machine. If it's not the case though, don't worry,
  it's extremely easy. If you are lucky enough to use a Transfusion
  installer program, just follow the steps as with any other installer
  program. If you have an archive file, such as a ZIP file for instance,
  extract its contents in a new, clean directory. That's it. You can
  launch the game now.
  Unfortunately, there are a few cases where people will have to use
  another Quake engine instead of the one we provide, because of a low-
  end machine, or a poor network connection, or because of drivers with
  no OpenGL support or even a video card with no 3D acceleration.


  2.1.  Using Transfusion as a Quake mod

  If you are in this case, you will be happy to know that Transfusion
  can be run using any Quake compatible engine, as a simple mod.
  Theorically, all you have to do is to copy the "transfusion"
  subdirectory (the one which contains the PAK files) into your Quake
  directory. Or copy a Quake binary in the Transfusion installation
  directory, for that matters.

  Be aware that most Quake 1 compatible engines will requier the Quake
  original data, despite the fact that Transfusion doesn't need them. So
  you may also want to have the "id1" directory by the side of the
  "transfusion" data directory.

  To launch Quake using Transfusion as a mod, type the following command
  line: "winquake -game transfusion", if your Quake engine is named
  "winquake" of course. You may encounter a few minor bugs (Quake
  engines with a software renderer have a few visual bugs, in
  particular), but the gameplay should be very similar to the one we
  intended to create.

  2.2.  Transfusion and QuakeWorld

  If you want to play on the internet and that your computer can't run
  our engine, then you will have to use a QuakeWorld based engine. Bad
  news...

  First, make sure you really want to play Transfusion on the internet
  and that there's no way to use our engine on your machine. I insist
  because 1- it's not easy to install and use Transfusion with
  QuakeWorld, and 2- the gameplay is significantly different and some
  features are missing.

  Now that you are sure you want to give it a try, start by getting a
  copy of a good QuakeWorld based engine (``ZQuake'' is the best choice
  in my opinion). Then, (re)install Transfusion with the QuakeWorld
  support if you haven't done it previously. You will get a "qw"
  directory in your install directory. This "qw" directory contains 2
  PAK files. The first one, "pak0.pak", will stay in this directory. The
  other one must be moved to the "transfusion" subdirectory when you
  play Transfusion with QuakeWorld, but only during that period of time.
  If this second PAK stays in "transfusion" while playing the game with
  a non-QuakeWorld engine, you will surely get at least visual bugs.
  Also, you may have the same kind of problems than those mentioned in
  the previous paragraph (Quake data needed, software renderer bugs,
  ...).

  If you have enough luck or skills to make all things work correctly,
  the greatest challenge still remains: finding a server and some other
  QuakeWorld players... Good luck. You will need it.

  3.  Basic usage


  3.1.  Game types

  Transfusion supports 3 game types:

  o  BloodBath (deathmatch = 0 or 1, and teamplay = 0): This is standard
     Free For All Deathmatch play. Everyone is your enemy - kill them
     all.

  o  Team BloodBath (deathmatch = 0 or 1, and teamplay = 1 or 2):
     Divides the game into two teams who are pitted against each other.
     When setting Teamplay to 1, team members are impervious to Friendly
     Fire, while setting Teamplay to 2 leaves you vulnerable to shots
     from your team mates.

  o  Capture The Flag (deathmatch = 2). Capture the opposing Teams flag
     and bring it your base. As with TBB, setting teamplay to 2
     activates friendly fire.

  3.2.  Impulses

  Impulses are command numbers. You can bind them to keys, or type them
  directly at console. For example, typing "impulse 12" at console will
  make you use the secondary fire of your weapon; you could achieve the
  same effect by binding a key to "impulse 12" and pressing it.

  Here is the complete impulse list:

  o  impulses 1 to 9, and impulse 17: select a weapon

  o  impulses 10 and 11: cycle to next/previous weapon

  o  impulse 12: secondary fire (equivalent to the "+button3" command)

  o  impulse 13: use the currently selected item

  o  impulses 14 and 15: select previous/next item

  o  impulse 16: view the current value of the next armor type

  o  impulse 20: become an observer (only allowed when dead)

  o  impulse 50: enter the ``voting menu''

  o  impulse 100: add a ``bot'' (to the red team if available)

  o  impulse 101: add a ``bot'' (to the blue team if available)

  o  impulse 102: kick a ``bot''

  o  impulse 141: identify the player you're aiming at

  All those impulses are considered cheats (not available in multiplayer
  games, except if the server has the "sv_cheats" cvar set to a non-zero
  value). WARNING: although it's unlikely, some of them ay crash the
  game under some conditions.

  o  impulse 103: botcam mode (unavailable in QuakeWorld)

  o  impulse 104: waypoint edit mode (unavailable in QuakeWorld)

  o  impulse 250: Dump all entities stats to console (for debugging)

  o  impulse 251: Give full armor

  o  impulse 252: Burn yourself !

  o  impulse 253: Give all inventory items

  o  impulse 254: Put you on the ``Brink Of Death''

  o  impulse 255: Give ``Guns Akimbo''

  3.3.  Game play notes


     Sending messages
        To communicate with other players during a multiplayer game,
        press "T" and type your message. Press [ENTER] to send it or
        [Esc] to abort.

     Teleporters
        Some Transfusion levels feature teleporters.  Learn to use these
        teleporters to get around levels quickly.  Teleporter
        destinations generally appear as animated markers on the floor.
        Stay away from these in a crowded game -- someone might teleport
        right into you, killing you instantly.

  3.4.  Bots

  Bots are fake players controled by a simple AI code. Transfusion bots
  are heavily based on FrikBotX source code, a Quake mod that provides
  its bot system as a separate piece of code.

  The bots are easy to use. Take a look at the ``impulse list'' to see
  the few ones you'll have to use to spawn and remove bots.

  Bots count as normal players, so if you can't spawn bots (message:
  "server is full") or if nobody can join your server, you have probably
  reached the current maximum number of players on the server, or you
  may have forgotten to put "-listen 8" or more in Quake's command line
  ("-dedicated 8" for a dedicated server). By default, Quake allows only
  1 client into the game. That's why you must explicitly start a
  multiplayer game with the menu or add a "-listen" or "-dedicated"
  argument to your command line to tell Quake you want more clients.

  You can't fill a server with bots. Transfusion will always let one
  slot free so that a new human player can come into the game. If a new
  player comes and takes the last free slot, a bot will be kicked
  automatically to free another slot if possible.

  3.5.  Brink Of Death

  Sometimes you'll knock opponents to their knees instead of killing
  them outright. The victim spends several moments swaying, poised
  between life and death. If no one reacts, the victim will slump over
  and die, earning you a point. Of course, because your victim is
  helpless, you'll have a moment or two to gloat. You may end the
  torture swiftly by blowing the victim's head off. You may also draw it
  out by tossing a lit bundle of dynamite on the ground nearby. Be
  careful, though. Victims bring themselves back from the brink of death
  after a dozen secondes.

  You'll recognize the brink of death by the sudden inability to move
  and the removal of your weapons.

  Also, note that BOD doesn't apply to someone who's on fire, and does
  NOT exist in QuakeWorld.

  4.  Bloody stuff


  4.1.  Weapons

  You have 12 differents weapons at your disposal in Transfusion. Aside
  from the Pitchfork, each of them has a normal fire and a secondary
  fire, also known as altfire. Most of the time, it's a deadlier mode
  that consumes more ammo.

     Pitch Fork
        This handy tool can be very effective if you can get close
        enough to your foes to use it on them. It doesn't need ammo, so
        you'll always have it to fall back on if you need it.

        Ammo: None. No altfire mode.

     Flare Gun
        Fires burning projectiles that lodge easily in flesh and
        continue to burn for a short period of time. Unless you dive
        into water, you'll take damage until the flare burns itself out,
        by which time it may be too late. The alternative fire launches
        a starburst flare that douses a large area with flames.  Can
        provide effective crowd control.

        Powered up by Guns Akimbo. Ammo: Flares.

     Sawed-off Shotgun
        A trusty companion if ever there was one. It doesn't have great
        range, but it packs a hell of a wallop up close. Can be fired
        either a barrel at a time or both at once for extra damage.

        Powered up by Guns Akimbo. Ammo: Shotgun shells.

     Thompson's Machine Gun
        The Tommy Gun is a favorite of the Cabal for its rapid rate of
        fire and impressive accuracy. On the down side, it chews up ammo
        quickly. The alternative mode is a strafing attack that covers a
        wider area with twice as many bullets, which is an effective way
        to clear out a room.

        Powered up by Guns Akimbo. Ammo: Bullet drums.

     Incinerator
        This monstrous weapon launches a huge ball of flaming napalm at
        an extremely high velocity. If the initial explosion doesn't
        kill your enemy, the burning probably will. Best used with
        extreme caution, especially in tight areas. The alt-fire
        launches several napalm projectiles, covering a wider area but
        also chewing up a lot more ammo.

        Powered up by Guns Akimbo. Ammo: Gasoline cans.

     Dynamite Bundle
        Light one up and chuck it at a group of zombies and you'll be
        rewarded with red rain and chunks of rotted flesh on the brim of
        your hat. The longer you hold down the fire button, the farther
        you'll throw the bundle. Watch the meter on the status bar to
        gauge the distance. The primary mode explodes on impact, while
        the alternative mode will burn all the way down before it
        explodes, making for some interesting traps.

        Ammo: Dynamite bundle.

     Remote Detonator
        Remotes work like dynamite bundles, except that you can detonate
        them at will. You can bounce them off walls or ceilings if
        you're afraid to peek around a corner. The alternative fire
        drops a remote at your feet, and you can hit the alt-fire key
        again to place additional remotes without detonating those
        you've already placed.

        Ammo: Remote detonator.

     Proximity Detonator
        These are by far the nastiest explosives you'll come across. You
        can scatter them around and concern yourself with other matters.
        As soon as someone steps near one, you'll hear a far-off boom
        and accompanying shrieks of agony.  Use the alt-fire to drop
        them at your feet. Also, remember where you've dropped
        proximities or you may fall prey to your own trap.

        Ammo: Proximity detonator.

     Aerosol Can
        Hairspray may not seem like the most daunting weapon, but apply
        it to a cigarette lighter and you've got an instant flamethrower
        (don't try this at home). While its range is rather limited, its
        effectiveness is quite impressive. You can also light one up
        like a Molotov cocktail and toss it into a group of adversaries.
        Hit alt-fire a second time after igniting a can to drop it at
        your feet-it will explode once it burns down.

        Ammo: Aerosol Can.

     Tesla Cannon
        This powerful prototype weapon packs a mighty load of amperage.
        Nikola Tesla would be proud. Press alt-fire and the Tesla cannon
        charges up, and releases a powerful electrical blast.

        Powered up by Guns Akimbo. Ammo: Batteries.

     Life Leech
        This artifact draws its power from the life energy of your foes.
        Run out of ammo and it saps your own strength!  Press alt-fire
        to set the Life Leech down. It will automatically fire at
        anything that comes into its sights.

        Ammo: Trapped Souls.

     Voodoo Doll
        The power of the voodoo doll is immense, but far subtler than
        that of a firearm. Hit alt-fire to unlease a more powerful
        supernatural attack at the expense using up the entire doll).

        Ammo: Voodoo doll.

  4.2.  Health & Armor


     Life Essence
        Boosts your health by 20 points, up to 100.

     Medicine Patch
        Boosts your health by 50 points, up to 100.

     Life Seed
        Adds 100 points to your health, up to 200 total.

     Body Armor
        Adds 100 body armor. Protects from bullets, shells, and
        concussion effects from explosives.

     Fire Armor
        Adds 100 fire resistant armor, which is useful against flares,
        flaming aerosol, and the residual effects of dynamite and
        napalm.

     Spirit Armor
        Adds 100 spiritual armor, which will absorb damage from the
        Voodoo Doll and Life Leech.

     Super Armor
        Adds 200 points of body, fire, and spirit armor.

     Basic Armor
        Adds 50 of each type of armor.

  4.3.  Items & Powerups


     Death Mask
        Provides temporary invulnerability to all attacks. Note that you
        are still susceptible to physics, which means a dynamite blast
        may hurl you off a cliff.

     Jump Boots
        Enable you to jump much higher than normal.  Useful for those
        hard to reach places or crossing chasms the easy way.

     Cloak of Invisibility
        The cloak will hide you from your enemies. That is, until you
        decide to attack them, even then they will have a hard time
        attacking you. Definately, one of the more useful power-ups in
        the game.

     Dr.'s Bag
        Will restore up to 100 points of health when activated. The
        unused medicine will remain in your inventory until used up.
        Keep this item handy!

     Guns akimbo
        Gives you double-fisted killing power with one-handed weapons,
        such as the shotgun, flare gun, and Tommy gun. Lasts 30 seconds.

     Reflective Shots
        This powerup causes bullets to bounce back at your attacker. You
        are still susceptible to flares and explosives, so be careful.

  5.  Advanced usage


  5.1.  Warmup

  The warmup is a short period of time before the fight actually begins.
  The idea behind this system is to make sure all players start at the
  same time so that no guy gets all the stuff before someone else even
  enters play. Also it lets the time to players who don't know the map
  yet to explore it a little bit.

  You control the amount of time dedicated to the warmup by setting the
  ``g_warmup'' cvar to a value in secondes. A server will wait after at
  least 2 players (of different teams if any) have entered the game to
  start the countdown. It will then reset the map and respawn all
  players. Be sure to set it to a non-zero value before starting the
  map, or you won't have any warmup at all.

  Of course, no frag can be taken during the warmup.

  5.2.  Voting menu

  The voting menu is a mecanism that allows players to change server
  settings via votes. For the moment, the available settings are: map,
  game type, frag limit, time limit, warmup duration, and options.

  To enter the menu, you must use "impulse 50" while idle. The menu is
  entirely based on impulse commands. To enter into a submenu or vote
  for something, just send the impulse number corresponding to your
  choice. Once you have voted, you will be exited from the menu
  automatically, but until you vote or you explicitely exit the menu,
  all your impulses will be handled by it.

  Observers don't have access to the menu.

  5.3.  Cvars

  You'll find in Transfusion quite a lot of the usual cvars from Quake
  (be careful though, "samelevel" hasn't the same use as in Quake, see
  the ``map cycling'' section for more informations). We have already
  talked about "deathmatch", "teamplay", "fraglimit" and "timelimit";
  but you'll also find "skill" for setting the bots skill.

  Transfusion has a few specific cvars that you may want to use if you
  host a server:

  o  "g_flashyEffects": turn on/off some flashy effects. Some of them
     may actually be changed only after restarting the map.

  o  "g_lockTeams": if set during a teamplay, the end of the ``warmup''
     locks the teams so that no new player can join them until the end
     of the match.

  o  "g_warmup": if set to a non-zero value, it indicates the duration
     of the ``warmup'' in secondes. If set to 0, the warmup is disabled.

  o  "g_weaponStay": if set, weapons don't disappear when taken, but you
     can't take a weapon more than once (equivalent to "Doom Old
     DeathMatch" and "Quake DM 3").

  o  "sv_cheats": enable a few client impulses which may be used to
     cheat one way or another.

  o  "sv_disable": a set of flags that allow a server administrator to
     keep his server under control despite the voting system. Its value
     must be set by adding the following numbers: 1 to disable bots, 2
     to disable map voting, 4 to disable game type voting, 8 to disable
     frag limit voting, 16 to disable time limit voting, 32 to disable
     warmup duration voting, and 64 to disable options voting. For
     example, setting "sv_disable" to 5 (1+4) will ensure your server
     won't have bots and won't change its initial game type.

     Your server must have a "set" command or an automatic cvar creation
     at progs request to allow you to use the new cvars though. It's not
     the case of the original Quake binaries and of quite a lot of more
     modern versions of the Quake engine. Be sure to check that.

  In general you won't have problems with Transfusion specific cvars.
  The ``voting menu'' allows the players to set most of them manually as
  needed, so you shouldn't have to worry about that.  That said, there's
  one particular case that is indeed problematic: when you want to set a
  Transfusion specific cvar right at server start, using the command
  line or some config file. At this time, the Transfusion cvars won't be
  created yet and the program will tell you that it doesn't know this
  command. This is due to the fact that they are created by the game
  code the first time you start a map.

  For instance, if you run "transfusion +set g_warmup 15 +map bb3", the
  ``g_warmup'' value will be 0 because the map is launched after the
  "set" command. The right way to do it is: "transfusion +map bb3 +set
  g_warmup 15". Actually, this example is even trickier than that,
  because you will probably want to have a warmup at once.
  Unfortunately, the value is set after you start the map, so you won't
  get a warmup the first time. The best way to do it is then:
  "transfusion +map bb3 +set g_warmup 15 +restart". With the addition of
  this last command, you'll restart the map immediately, and so you'll
  have a warmup.

  With the engine we provide with Transfusion, it's even more
  complicated (yes, it's possible). To put it in a nutshell, DarkPlaces
  doesn't launch a map when it executes the "map" command. Instead, it
  waits until all parts of the engine are initialized to do so. This
  means that you'll have to make your commands waiting too. How to do
  that? With the "wait" command. The previous example becomes
  "transfusion +map bb3 +wait +wait +wait +wait +wait +set g_warmup 15
  +restart". Yes, the 5 "wait" are necessary, because the engine has the
  time to execute the command buffer 4 times before the map is actually
  launched.

  5.4.  Map cycling

  Transfusion supports a map cycling mecanism which is very similar to
  the system used by several popular Quake mods, including FrikBotX and
  Omicron bots. It is based on a script file ("maps.cfg"), a cvar
  ("samelevel"), and a few console aliases. Basically, you have to write
  a "maps.cfg" in your "transfusion" subdirectory so that it sets
  "samelevel" to the number of maps in your list, and that it defines an
  alias for each of those maps, named "map1", "map2", "map3", ... you
  get the idea. Each alias must contain the command line to launch the
  map.

  Here's a sample "maps.cfg" file to help you understand the system. It
  cycles through 4 maps (bb3, bb7, cpbb01, and crypt):

           samelevel "4"
           alias map1 "changelevel bb3"
           alias map2 "changelevel bb7"
           alias map3 "changelevel cpbb01"
           alias map4 "changelevel crypt"



  This file is reloaded each time the server starts a map, so you can
  safely modify it without having to restart your server. Also, this
  means you don't have to execute it manually: the game code will do it
  for you when needed. All you have to do is putting the file in the
  right place.

  Note that the ``voting system'' still works correctly even if the
  server administrator defines a map cycling list.  The map will change
  according to the vote, and the cycle will resume afterwards.

  6.  Frequently Asked Questions


     I just replaced a PAK file and some of the objects look all
        messed up" Delete the "glquake" directory inside all of your
        Quake directories and run Transfusion again.

     Why didn't you use another engine to make Transfusion?
        Because in order to make the necessary AI, physic and logic
        changes to the game so that it feels and behaves like Blood, we
        need direct access to the engine source code, not just the
        "game.dll" or game code, or whatever you want to refer to it as.
        Making a "game.dll" only lets you change some things, and they
        aren't enough things to do a total conversion correctly (in our
        opinion). Therefore, we chose the Quake 1 engine, since we have
        complete control over every aspect of the game.  We felt it
        outweighed the other limitations of the Quake engine (low count
        polys, lower resolution, lack of things like colored lights,
        etc). Also, the Quake engine is licensed under the GNU GPL -
        which means we are free to change it without paying anyone a
        dime... To use the Quake 3 engine or the Unreal engine would
        have required us to purchase a license, something we don't have
        the money to do.

     Transfusion exits with: Z_Malloc: failed on allocation of XXX
        bytes" The engine hasn't allocated enough "zone" memory. You can
        change this with the "-zone" command line argument. With most
        engines, "-zone 256" will be enough, but some of them may
        require more (try 512).

     I want to contribute to the Transfusion Project
        It's very simple. Start doing a quick tour through our 2
        websites to be sure to know all the basic informations you may
        need. Then, contact the Project Coordinator and either the Lead
        Artist or the Lead Programmer, depending on what you want to
        contribute.

  7.  Links


  o  The Transfusion Project <http://www.planetblood.com/qblood/>: our
     home page

  o  Transfusion on SourceForge.net <http://blood.sourceforge.net/>: our
     development page

  o  The DarkPlaces engine <http://icculus.org/twilight/darkplaces/>:
     the engine we recommend and provide

  o  FrikBotX <http://www.inside3d.com/frikbot/>: where our bots come
     from

  o  ZQuake <http://zquake.frag.ru/>: arguably the best QuakeWorld based
     engine



