=============================================
 Quake 3 Arena ++ by Dan 'Neurobasher' Gomes

 Version: Public Beta 1.1

 Last Update: 04-05-2000
=============================================


Installation
============

Unzip the q3app_beta11.zip on your Quake 3 Arena folder
(most likely "C:\quake3\" or "C:\Quake III Arena\"), using the
"folder names" option, so directories can be created. Run Q3A
and select the "Quake 3 Arena ++" option from the mods menu or
run Q3A++ directly with the "+set fs_game q3app" option.

NOTE: If it's the very first time you play Q3A++, run a game
before using the new User Interface menus, just so all Q3A++
cvars can be set to their default values.

List of Important Commands
==========================

\help
-----

If you like messing with console commands and cvars, use the "\help"
command to see a list of collapsed cvars and "\help <cvar>" for
details on a certain cvar. The help command is part of the
client-side game code and only works when running a game.

Collapsed cvars are normal cvars that have multiple values in them.
Since cvars can store information in string format, these values
are saved and retrieved according to a preset key/value
correspondence.

Ex.: If you query the value of cg_draw (by typing it in the
console), it'll show up multiple values:

"cg_draw" is:"1040 2 3" default: "0 2 3"

Each of these three values means something, issuing a help command
will show you what keys are associated with these values. Example:

"\help cg_draw"


\arg
----

Use the "\arg" command to view/set a cvar's key value. Usage:

\arg <cvar> [key] [value]

Examples:

        1. "\arg cg_draw"

        Shows help on cg_draw and displays its values.

        2. "\arg cg_draw bitflags"

        Displays the "bitflags" key value.

        3. "\arg cg_draw bitflags 1040"

        Changes the "bitflags" key value to 1040. Since biflags is
        the first key, it can also be referenced as 1:

        "\arg cg_draw 1 1040"
        
        As shown in cg_draw's help description, each bitflag from
        "bitflags" can also be accessed individually through aliases.
        For instance:

        4. "\arg cg_draw fps 1"

        "fps" is actually the "16" bitflag from the "bitflags" key,
        so setting it to 1 enables it and 0 disables the bitflag.

\def
----

Use "\def" to reset a cvar or cvar key to its default value.

Examples:

        1. "\def cg_draw"

        Resets all cg_draw cvar keys to their default values.

        2. "\def cg_draw centertime"

        Resets cg_draw's centertime key to its default value.

\weapon
-------

The usual weapon command with some additional options. It can now
be used like this:

"\weapon 2 3 5 7"

which would be the same as issuing "weapon 2; weapon 3; weapon 5;
weapon 7" with one command. This is usually done to have the
client select the best weapon (select machinegun; if there's a
shotgun, select it instead; ... if there's a railgun, select it
instead).

Using the "a" option makes the weapon command only allow weapon
selection of weapons that have ammo, like this:

"\weapon 1 a 2 5 8"

Will try to select 2, 5 then 8 only if they have ammo.

The most interesting option is "c", which tells the weapon command
to ignore the current weapon for selection. That leads to alternation
between the two last available weapons. Example:

"\bind E weapon c 4 5"

Pressing E repeatedly will alternate between the rocket launcher and
the grenade launcher.

\lose
-----

The "\lose" command can be used to voluntarily lose something,
such as ammo, powerups and items. Example: "\lose quad", will
throw away your quad damage. Some people may find this totally
useless, but it's the same principle behind the handicap option.


Collapsed Cvar Keys and Descriptions
====================================

cg_3rdPerson
------------
Sets third person camera range and angle.
Results from the collapse of cg_thirdPerson, cg_thirdPersonRange
and cg_thirdPersonAngle cvars.

Usage: cg_3rdPerson <range> <angle>

Keys:
        1 range - how far camera is from player. Range 0 disables
        3rd person view

        2 angle - angle camera is relative to player

cg_alpha
--------
Sets transparency of some game elements.

Usage: cg_alpha <smoke> <blood>

Keys:
        1 smoke - rocket/grenade smoke trail and shotgun puffs

        2 blood - blood trails from gibs

cg_announcer
------------
Disables announcer voice.

Usage: cg_announcer <bitflags>

Keys:
        1 bitflags
                1 leadtied - lead/tied announcements
                2 countdown - timelimit and fraglimit countdowns
                4 awards - awards
                8 powerup - powerup pickup announcements
                16 extra - other stuff like 'fight!', 'denied', etc.

cg_bob
------
View bobbing parameters.
Results from the collapse of cg_bobup, cg_bobpitch and cg_bobroll
cvars.

Usage: cg_bob <up> <pitch> <roll>

Keys:
        1 up - bobbing upward scale

        2 pitch - bobbing pitch scale

        3 roll - bobbing roll scale

cg_color
--------
Sets user's color preferences.

Usage: cg_color <fx> <tc> <lc>

Keys:
        1 tc - shirt color

        2 lc - pants color

cg_debug
--------
Debug cvars used by developers solely for testing.
Results from the collapse of cg_debugAnim, cg_debugEvents,
cg_debugPosition, cg_noPlayerAnims, cg_showmiss, cg_stats,
cg_animSpeed and cg_swingSpeed cvars.

Usage: cg_debug <bitflags> <swingspeed>

Keys:
        1 bitflags
                1 anim - display player animation frame
                2 event - display events
                4 pos - for CG_ResetPlayerEntity
                8 noplayeranims - set player animation frame to 0
                16 showmiss - shows prediction errors
                32 stats - shows clientframe number
                64 animspeed - sets player animation frame to 0

        2 swingspeed - speed player adjusts legs and torso to face
        head direction

cg_draw
-------
Sets HUD-related preferences.
Results from the collapse of cg_draw2D, cg_drawStatus,
cg_drawAttacker, cg_cg_drawFPS, cg_drawTimer, cg_drawAmmoWarning,
cg_drawRewards, cg_lagometer, cg_drawSnapshot, cg_draw3D,
cg_drawIcons and cg_centertime cvars.

Usage: cg_draw <bitflags> <icons> <centertime>

Keys:
        1 bitflags
                1 nothing - disables HUD
                2 nostatus - disables status bar
                4 noscores - disables score display on lower-right
                corner
                8 noattacker - disables attacker display on
                upper-right corner
                16 FPS - frames per second display
                32 notimer - disables timer display
                64 noammowarn - disables low/no ammo warning
                128 nodamage - disables directional damage indicators
                256 noreward - disables reward display
                512 nolagometer - disables lagometer
                1024 allammo - condensed ammo display
                2048 snapshot - displays snapshot info
                4096 nopickup - disables item pickup display
                8192 memory - displays available memory

        2 icons - specifies how icons are displayed
                0 - no icons
                1 - 2d icons
                2 - 3d icons
                3 - 3d icons also on pickup display (not implemented)
                4 - 3d icons also on weapon display (not implemented)

        3 centertime - how many seconds messages display centered on
        screen

cg_force
--------
Force players to use same model or standard skins, model, sounds or
strict team colors.
Based on cg_forceModel cvar.

Usage: cg_force <bitflags>

Keys:
        1 bitflags
                1 std_skin - all players use standard color-enabled skins
                2 std_model - all players use standard model for body
                4 std_sound - all players use standard male, female and
                neuter sounds
                8 same_model - all players use same model and skin as
                yours
                16 team_color - strict color policy for team games

cg_fx
-----
Special effects and local entity related preferences.
Results from collapse of cg_marks, cg_gibs, cg_brassTime,
cg_railTrailTime.

Usage: cg_fx <marks> <marktime> <gibs> <gibtime> <brasstime>
<railTime>

Keys:
        1 marks - max number of marks at one time. 0 disables marks

        2 marktime - time (msecs) marks stay before fading out

        3 gibs - how many gibs pop out of an exploding dead body, 9 is
        default, 18 is anatomically correct, > 20 is just extra blood

        4 gibtime - time (msecs) that gibs stay

        5 brasstime - time (msecs) brass stays

        6 railtime - time (msecs) rail trails stay

cg_gun
------
Preferences regarding the view weapon.
Results from the collapse of cg_gun_x, cg_gun_y, cg_gun_z and
cg_drawGun cvars.

Usage: cg_gun <x> <y> <z> <pos> <flash>

Keys:
        1 x - nudge view weapon on the x axis

        2 y - nudge view weapon on the y axis

        3 z - nudge the view weapon on the z axis

        4 pos - weapon display and position
                0 - no view weapon
                1 - view weapon on the right
                2 - centered view weapon

        5 flash - muzzle flash size scale

cg_noBeeps
----------
Disables audible damage, hit and other feedback beeps.

Usage: cg_noBeeps <bitflags>

Keys:
        1 bitflags
                1 nopain - disables pain sound
                2 nohit - disables hit sound
                4 noteamhit - disables team hit sound
                5 noteamwarn - disables team callsign sound
                (not implemented)
                6 notimewarn - disables timer sound

cg_predict
----------
Sets client-side prediction options.
Results from the collapse of cg_nopredict, cg_predictItems and
cg_errorDecay cvars.

Usage: cg_predict <prediction> <errordecay>

Keys:
        1 prediction
                0 - no prediction
                1 - prediction
                2 - prediction + item pickup prediction

        2 errordecay - prediction error correction 'smoothness' value

cg_run
------
View bobbing when running parameters.
Results from the collapse of cg_runroll and cg_runpitch cvars.

Usage: cg_run <roll> <pitch>

Keys:
        1 roll - running roll scale

        2 pitch - running pitch scale

cg_scoreboard
-------------

not implemented yet

cg_switch
---------
Sets weapon switching options.
Based on the cg_autoswitch cvar.

Usage: cg_switch <auto> <noammo> <list>

Keys:
        1 auto - sets automatic weapon switching
                0 - no autoswitch
                1 - autoswitch on weapon pickup
                2 - autoswitch on weapon or ammo pickup

        2 noammo - weapon switching when out of ammo
                0 - switches if server tells you to
                1 - switches if fire is held when out of ammo
                2 - switches ASAP when out of ammo

        3 list - weapon priority list. Use '>' or ',' to separate
        weapon numbers. 'n' option lists weapons that should never be
        considered for switching.
        Ex: \"2<3<5<n<7<9\" = 5 is better than 3 which is better than
        2. NEVER switch to 7 or 9.

cg_team
-------
Sets team HUD options.
Results from the collapse of cg_drawTeamOverlay, cg_teamChatTime
and cg_teamChatHeight cvars.

Usage: cg_team <overlay> <time> <lines> <warn>

Keys:
        1 overlay - team status overlay display and position
                0 - no team overlay
                1 - team overlay on upper-right
                2 - team overlay on lower-right
                3 - team orverlay on lower-left

        2 time - time (msecs) team chat stays on screen

        3 lines - max # of lines for team chat on screen

        4 warn - string used to warn user if it shows up on team
        chat (not implemented)

cg_tracer
---------
Sets bullet tracer parameters.
Results from the collapse of cg_tracerChance, cg_tracerWidth and
cg_tracerLength cvars.

Usage: cg_tracer <chance> <width> <length>

Keys:
        1 chance - chance of tracer appearing for every shot

        2 width - tracer width

        3 length - tracer length

cg_xhair
--------
Crosshair parameters.
Results from the collapse of cg_drawCrosshair, cg_drawCrosshairNames,
cg_crosshairHealth, cg_crosshairX, cg_crosshairY and
cg_crosshairSize cvars.

Usage: cg_xhair <style> <attrib> <x> <y> <size> <R> <G> <B>

Keys:
        1 style - crosshair style (1-10)

        2 options - options bitflags
                1 name - displays name of player on crosshair
                2 health - health condition changes crosshair color
                4 nopickup - disables crosshair pulse on pickup

        3 x - x offset

        4 y - y offset

        5 size - crosshair size

        6 R - red color value

        7 G - green color value

        8 B - blue color value

cg_zoom
-------
Sets values used for +zoom command.
Based on the cg_zoomFov cvar.

Usage: cg_zoom <fov> <time> <sens>

Keys:
        1 fov - zoom fov

        2 time - time (msecs) it takes to zoom

        3 sens - additional zoom sensitivity adjustment


Other Cvars
===========

cg_fastRespawn
--------------
Enables fast respawning.

Usage: cg_fastRespawn <value>

Values:
        0 - wait at least 1.5 seconds before respawn
        1 - respawn when button is released then pressed
        2 - respawn ASAP


r_playerMip
-----------
Specifies separate texture detail for player models.

Usage: r_playerMip <value>

Values:
        -1 - disables r_playerMip, player model's texture detail
        will be based on r_picmip
        0-3 - player's texture detail ( 0 = High, 1 = Normal, 2 = Low,
        3 = Very Low )


List of old cvars that were maintained:
---------------------------------------

- com_blood
- com_buildScript
- cg_deferPlayers
- cg_fov
- cl_paused
- cg_simpleItems
- cg_shadows
- cg_stereoSeparation
- g_syncronousClients
- cg_viewsize


User Interface
==============

Changes were made to the Player Settings, Player Model, Game Options,
System Setup, Demos and Server Browser.

The Server Browser uses code from Yak Bernier <jkeli0@pop.uky.edu>
updated with latest server browser features from the 1.16n release.

The Demos section has a small code enhancement from Coriolis.


Game Server Options
===================

So far, only one server option has been implemented:

g_damageScale
-------------

Usage: g_damageScale <value>

Changes the scale of all kinds of damage. Setting it to a value
less than 1 makes the game less threatening, setting it to a value
higher than 1 makes it more lethal (g_damageScale 3 would be like as
if everyone had a Quad).


Known Bugs
==========

- A few features listed with the "\help" command have not yet
been implemented. I'm working on them for a future release. Some of
them might not make it.

- Item prediction errors are happening sometimes specially when
picking up items such as the plasma gun or the railgun weapon or ammo.

- In team games, players sometimes load with wrong textures. Toggling
cg_force back and forth usually solves this.


Additional Info
===============

The standard model (inside the md3-standard.pk3) is based on the Keel
model, which isn't exactly the ideal standard model IMHO, but I'm
hoping some modeler out there will make a good standard model I can
use for Q3A++, once this mod reaches some popularity.

The collapsed cvars feature didn't turn out exactly as I intended it
due to some arbitrary limitation regarding cvars and commands in Q3A.
I've already asked Robert Duffy to consider changing this behaviour
and, once he "fixes" this, I hope I can do a full implementation of
collapsed cvars in a future release.

Source code for the mod will be released once I clean it up and make
it presenteable. I'm also willing to help coders out there that are
interested in adding specific Q3A++ features to their own mods, as
long as they give me some credit.


Special Thanks
==============

Yak Bernier <jkeli0@pop.uky.edu> for publicly providing the source
code for his cool in-game server browser.

Coriolis for some enhancements to the Demos section.

PlanetQuake (www.planetquake.com) for always providing awesome support
and unlimited web hosting space for Q3A++'s files and website.

Darkside Quake Community (www.darkside.com.br) for giving me a
lot of motivation and support to pursue this mod's goals.

Andrew <~andrew@desm-03-027.dialup.netins.net> from #UnrealScript
for always being available in IRC to patiently answer all my stupid
C-related questions :) Thanks dude!


Disclaimer
==========

<Lawyers, insert legal crap here>

I'm not responsible if this mod harms your computer or data.

More info and source: www.planetquake.com/q3app/


Contact
=======

Please feel free to send your comments, suggestions and bug
reports to:

Dan 'Neurobasher' Gomes <neurobasher@planetquake.com>

I'm very interested in useful feedback, but I'm also a busy guy, so
don't expect an immediate reply, I hope you understand.
