Letter to Q3TC mappers
======================

by Coroner and Horst D.S.

updated version 09/26/01 for TC 0.45 by Horst D.S.
Q3:TrueCombat beta 045b10
www.truecombat.com

If you like to make a custom map for Q3TC you might start with the q3tc_sample.map to
become familar with the Q3TC entities and all the other stuff. The sample map is also meant
as a prefab base for your own projects.

Have fun !

0. Basics
---------
Mappers are asked to keep the dimensions of doors, windows, walls, and
ceilings as close as possible to the appropriate dimensions in the q3tc_sample.map.
This is important to provide the same game style and look and feel in all Q3TC maps. 
Due to the fact that weapons are able to pierce walls and that the projectiles
loose energy dependent on wall thickness and material, similar dimensions in all maps
are of special interest for Q3TC.

You can also visit : http://www.lemuria.org/q3tc/ for some small tutorials and stuff you might
want to know, its a fansite from Falcon, featuring 3 Tutorials as I write this.

1. Player bounding box
----------------------
The player bounding box is 30x30x72 (width x depth x height) units or 30x30x48 (ducked).
Note, this is different from the standard Q3 player bounding box (30x30x56, 30x30x40).

2. Player spawpoints
-------------------------
Q3TC uses normal player deathmatch spawnpoints for FFA/Survivor (Free For All) and CTF spawnpoints
for TeamDeathmatch/TeamSurvivor.

3. TC specific entities
-----------
All Q3TC custom entities are defined in q3tc_entities.def, which should be placed in the
Qradiant directory. 

3.1 func_breakable
When killed, it disappears spawns some glass particles and makes a glassbreak sound.

3.2 info_flare
Non-displayed entity which makes a light flare effect.
Only bright lights should have an additional flare effect.
"health" overrides the default size of 100.
"wait" flare color (default 0 = white, 1 = soft yellow, 2 = soft green, 3 = orange):

It is also possible to make 1 flare in the map to a Sunflare (probatly 2.. but who would want 2 suns).
To make a info_flare to a Sunflare change :
"spawnflag" to 1 (0 = normal flare)
"random" to 0-90 ... its the amplitude of the sun
"count" to 0-359  ... its the degree of the sun

3.3 item_bot_waypoint
Non-displayed entity. Bots like to go for it. Used to create routes for bots.

3.4 func_door_rotating
Rotating door. Z-Axis rotation only. 
NOTE: The door must be able to open 90 degree in both directions.
Include an origin brush to set the point of rotation.
WARNING: The standard Id q3map tool changes the texture coordinates of all brushes of any 
function that includes an origin brush. Do only use tilable textures.
If proper texture alignment is required use the q3tcmap tool.

Please have a look at the q3tc_sample.map, where all custom entities are used.
If there are other items than the item_bot_waypoint in a map they are automatically
interpreted as an item_bot_waypoint. 

4. Updating the shaderlist.txt
------------------------------

In order to use the Q3TC shaders add the following lines to your shaderlist.txt located
in /baseq3/scripts:

//custom TC shaders
q3tcmedia0
q3tcmedia1
q3tc_warehouse
q3tc_industrial
q3tc_Baugebiet
q3tc_tp1
q3tc_tp1_env
q3tc_cc2

5. Surface parameters
---------------------
Q3TC utilizes two standard Q3 surfaceparameters to effect the gameplay:

surfaceparm	metalsteps 	--- this is heavy metal, nothing goes through, produces metal sound.
surfaceparm	ladder		--- used for vertical ladders

All other surface effects require David Frey's (aka Mastaba) ShaderEx tool, 
which can be grabbed from 

http://personal.lig.bellsouth.net/~dfrey/.

You also need the q3tc_surfaceflags.txt, where the Q3TC surfaceflags are listed.
The first line in q3tc_surfaceflags.txt is your quake3 directory, the other lines
must not be changed since they are in sync with the Q3TC code:

g:\quake3a   --- quake3 installation directory
tin          --- for thin metal plates (easy to pierce) 
wood         --- for wooden panels ... (easy to pierce)
dirt         --- for asphalt, sand, ... (slightly reduced falling damage)
glass        --- for glass surfaces
snow         --- for snow (reduced falling damage)
slowdown     --- to slow down player movement on steep stairs (bots are able to use them)
fence        --- for metal fence (bullets produce sparcs by change)
grass, sand   ---  should explain themself 
platic --- platic surfaces (bullets go throw like throw butter)

If you want to make your own wood sound like wood, build a new shader and put the special statement

//$ wood

in. You might have a look at the different shaders in q3tcmedia.shader.
Note, all textures in q3tcmedia.pk3 have already correct shaders.
All that's left to you, is to use ShaderEx after you have compiled your map.
If both, ShaderEx.exe and q3tc_surfacefags.txt are located in your /tools directory,
and your compiled map is in /baseq3/maps, execute:

shaderex ../baseq3/maps/mymap.bsp q3tc_surfaceflags.txt

Note, ShaderEx is a BSP post processing tool. Thus, your map has to be compiled prior to
the use of ShaderEx. See also the help provided with the ShaderEx. 

I suggest to compile the map... (q3map; -vis; -light) than running ShaderEX, and finally creating the AAS files, 
otherwise it could happen, that you get an error in Q3.

6. Textures
---------------------

After you added the shaderlist.txt you have 2 options to use the TC textures in Radiant !

1) extract the textures directory of the q3tc pak0.pk3 into your baseq3 directory
or
2) copy the whole pak0.pk3 to your baseq3 directory (recommend for newbees)
     IMPORTANT : RENAME IT FIRST ! DONT OVERWRITE SOMETHING ! (eg: tcmapping.pk3)


Thanks a lot,

Coroner,
Horst D.S.