summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Angus <tim@ngus.net>2003-09-08 01:47:43 +0000
committerTim Angus <tim@ngus.net>2003-09-08 01:47:43 +0000
commit5a9a825f2d86b000abc9f9f7d337d7c500e00c58 (patch)
tree3dfe245790188caadbe1b3a494d929ee14bf0ae3
parent17839915c9e52528c592565b3d6bee9e36445593 (diff)
* func_door_model -- a model based door
* Removed a bunch of entities not applicable to Tremulous * Wrote an entities.def file for Tremulous (ugh gak horrible syntax) * Updated depend file * Various other small tweaks here and there
-rw-r--r--depend1410
-rw-r--r--entities.def1571
-rw-r--r--src/cgame/cg_animmapobj.c123
-rw-r--r--src/cgame/cg_ents.c8
-rw-r--r--src/cgame/cg_local.h3
-rw-r--r--src/game/bg_public.h3
-rw-r--r--src/game/g_local.h8
-rw-r--r--src/game/g_misc.c114
-rw-r--r--src/game/g_mover.c371
-rw-r--r--src/game/g_spawn.c19
-rw-r--r--src/game/g_target.c160
11 files changed, 2623 insertions, 1167 deletions
diff --git a/depend b/depend
index 324b93e3..b3086ba1 100644
--- a/depend
+++ b/depend
@@ -1,838 +1,574 @@
-releasei386-glibc/game/bg_lib.o: ./src/game/bg_lib.c src/game/q_shared.h \
- src/game/surfaceflags.h
-releasei386-glibc/game/bg_misc.o: ./src/game/bg_misc.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h
-releasei386-glibc/game/bg_pmove.o: ./src/game/bg_pmove.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/bg_local.h
-releasei386-glibc/game/bg_slidemove.o: ./src/game/bg_slidemove.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/bg_local.h
-releasei386-glibc/game/g_active.o: ./src/game/g_active.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_buildable.o: ./src/game/g_buildable.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_client.o: ./src/game/g_client.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_cmds.o: ./src/game/g_cmds.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_combat.o: ./src/game/g_combat.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_main.o: ./src/game/g_main.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_mem.o: ./src/game/g_mem.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_misc.o: ./src/game/g_misc.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_missile.o: ./src/game/g_missile.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_mover.o: ./src/game/g_mover.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_physics.o: ./src/game/g_physics.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_session.o: ./src/game/g_session.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_spawn.o: ./src/game/g_spawn.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_svcmds.o: ./src/game/g_svcmds.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_syscalls.o: ./src/game/g_syscalls.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_target.o: ./src/game/g_target.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_team.o: ./src/game/g_team.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_trigger.o: ./src/game/g_trigger.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/g_utils.o: ./src/game/g_utils.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-releasei386-glibc/game/g_weapon.o: ./src/game/g_weapon.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-releasei386-glibc/game/q_math.o: ./src/game/q_math.c src/game/q_shared.h \
- src/game/surfaceflags.h
-releasei386-glibc/game/q_shared.o: ./src/game/q_shared.c src/game/q_shared.h \
- src/game/surfaceflags.h
-debugi386-glibc/game/bg_lib.o: ./src/game/bg_lib.c src/game/q_shared.h \
- src/game/surfaceflags.h
-debugi386-glibc/game/bg_misc.o: ./src/game/bg_misc.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h
-debugi386-glibc/game/bg_pmove.o: ./src/game/bg_pmove.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/bg_local.h
-debugi386-glibc/game/bg_slidemove.o: ./src/game/bg_slidemove.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/bg_local.h
-debugi386-glibc/game/g_active.o: ./src/game/g_active.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_buildable.o: ./src/game/g_buildable.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_client.o: ./src/game/g_client.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_cmds.o: ./src/game/g_cmds.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_combat.o: ./src/game/g_combat.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_main.o: ./src/game/g_main.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_mem.o: ./src/game/g_mem.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_misc.o: ./src/game/g_misc.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_missile.o: ./src/game/g_missile.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_mover.o: ./src/game/g_mover.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_physics.o: ./src/game/g_physics.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_session.o: ./src/game/g_session.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_spawn.o: ./src/game/g_spawn.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_svcmds.o: ./src/game/g_svcmds.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_syscalls.o: ./src/game/g_syscalls.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_target.o: ./src/game/g_target.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_team.o: ./src/game/g_team.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_trigger.o: ./src/game/g_trigger.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/g_utils.o: ./src/game/g_utils.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-debugi386-glibc/game/g_weapon.o: ./src/game/g_weapon.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-debugi386-glibc/game/q_math.o: ./src/game/q_math.c src/game/q_shared.h \
- src/game/surfaceflags.h
-debugi386-glibc/game/q_shared.o: ./src/game/q_shared.c src/game/q_shared.h \
- src/game/surfaceflags.h
-qvm/game/bg_lib.asm: ./src/game/bg_lib.c src/game/q_shared.h \
- src/game/surfaceflags.h
-qvm/game/bg_misc.asm: ./src/game/bg_misc.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h
-qvm/game/bg_pmove.asm: ./src/game/bg_pmove.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/bg_local.h
-qvm/game/bg_slidemove.asm: ./src/game/bg_slidemove.c src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/bg_local.h
-qvm/game/g_active.asm: ./src/game/g_active.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_buildable.asm: ./src/game/g_buildable.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_client.asm: ./src/game/g_client.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_cmds.asm: ./src/game/g_cmds.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_combat.asm: ./src/game/g_combat.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_main.asm: ./src/game/g_main.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_mem.asm: ./src/game/g_mem.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_misc.asm: ./src/game/g_misc.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_missile.asm: ./src/game/g_missile.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_mover.asm: ./src/game/g_mover.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_physics.asm: ./src/game/g_physics.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_session.asm: ./src/game/g_session.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_spawn.asm: ./src/game/g_spawn.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_svcmds.asm: ./src/game/g_svcmds.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_syscalls.asm: ./src/game/g_syscalls.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_target.asm: ./src/game/g_target.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_team.asm: ./src/game/g_team.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_trigger.asm: ./src/game/g_trigger.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/g_utils.asm: ./src/game/g_utils.c src/game/g_local.h src/game/q_shared.h \
- src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
- src/game/g_public.h
-qvm/game/g_weapon.asm: ./src/game/g_weapon.c src/game/g_local.h \
- src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
- src/game/tremulous.h src/game/g_public.h
-qvm/game/q_math.asm: ./src/game/q_math.c src/game/q_shared.h \
- src/game/surfaceflags.h
-qvm/game/q_shared.asm: ./src/game/q_shared.c src/game/q_shared.h \
- src/game/surfaceflags.h
-releasei386-glibc/cgame/cg_animmapobj.o: ./src/cgame/cg_animmapobj.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_buildable.o: ./src/cgame/cg_buildable.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_consolecmds.o: ./src/cgame/cg_consolecmds.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_creep.o: ./src/cgame/cg_creep.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_draw.o: ./src/cgame/cg_draw.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_drawtools.o: ./src/cgame/cg_drawtools.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_effects.o: ./src/cgame/cg_effects.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_ents.o: ./src/cgame/cg_ents.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_event.o: ./src/cgame/cg_event.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_localents.o: ./src/cgame/cg_localents.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_main.o: ./src/cgame/cg_main.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_marks.o: ./src/cgame/cg_marks.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_mem.o: ./src/cgame/cg_mem.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_mp3decoder.o: ./src/cgame/cg_mp3decoder.c src/cgame/cg_mp3decoder.h \
- src/cgame/cg_local.h src/cgame/../game/q_shared.h \
- src/cgame/../game/surfaceflags.h src/cgame/tr_types.h \
- src/cgame/../game/bg_public.h src/cgame/../game/tremulous.h \
- src/cgame/cg_public.h src/cgame/../ui/ui_shared.h \
- src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_players.o: ./src/cgame/cg_players.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_playerstate.o: ./src/cgame/cg_playerstate.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_predict.o: ./src/cgame/cg_predict.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_scanner.o: ./src/cgame/cg_scanner.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_servercmds.o: ./src/cgame/cg_servercmds.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_snapshot.o: ./src/cgame/cg_snapshot.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_spriter.o: ./src/cgame/cg_spriter.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_syscalls.o: ./src/cgame/cg_syscalls.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_trails.o: ./src/cgame/cg_trails.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_view.o: ./src/cgame/cg_view.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/cgame/cg_weapons.o: ./src/cgame/cg_weapons.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_animmapobj.o: ./src/cgame/cg_animmapobj.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_buildable.o: ./src/cgame/cg_buildable.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_consolecmds.o: ./src/cgame/cg_consolecmds.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_creep.o: ./src/cgame/cg_creep.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_draw.o: ./src/cgame/cg_draw.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_drawtools.o: ./src/cgame/cg_drawtools.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_effects.o: ./src/cgame/cg_effects.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_ents.o: ./src/cgame/cg_ents.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_event.o: ./src/cgame/cg_event.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_localents.o: ./src/cgame/cg_localents.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_main.o: ./src/cgame/cg_main.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_marks.o: ./src/cgame/cg_marks.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_mem.o: ./src/cgame/cg_mem.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_mp3decoder.o: ./src/cgame/cg_mp3decoder.c src/cgame/cg_mp3decoder.h \
- src/cgame/cg_local.h src/cgame/../game/q_shared.h \
- src/cgame/../game/surfaceflags.h src/cgame/tr_types.h \
- src/cgame/../game/bg_public.h src/cgame/../game/tremulous.h \
- src/cgame/cg_public.h src/cgame/../ui/ui_shared.h \
- src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_players.o: ./src/cgame/cg_players.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_playerstate.o: ./src/cgame/cg_playerstate.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_predict.o: ./src/cgame/cg_predict.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_scanner.o: ./src/cgame/cg_scanner.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_servercmds.o: ./src/cgame/cg_servercmds.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_snapshot.o: ./src/cgame/cg_snapshot.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_spriter.o: ./src/cgame/cg_spriter.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_syscalls.o: ./src/cgame/cg_syscalls.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_trails.o: ./src/cgame/cg_trails.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_view.o: ./src/cgame/cg_view.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-debugi386-glibc/cgame/cg_weapons.o: ./src/cgame/cg_weapons.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_animmapobj.asm: ./src/cgame/cg_animmapobj.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_buildable.asm: ./src/cgame/cg_buildable.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_consolecmds.asm: ./src/cgame/cg_consolecmds.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_creep.asm: ./src/cgame/cg_creep.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_draw.asm: ./src/cgame/cg_draw.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_drawtools.asm: ./src/cgame/cg_drawtools.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_effects.asm: ./src/cgame/cg_effects.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_ents.asm: ./src/cgame/cg_ents.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_event.asm: ./src/cgame/cg_event.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_localents.asm: ./src/cgame/cg_localents.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_main.asm: ./src/cgame/cg_main.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_marks.asm: ./src/cgame/cg_marks.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_mem.asm: ./src/cgame/cg_mem.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_mp3decoder.asm: ./src/cgame/cg_mp3decoder.c src/cgame/cg_mp3decoder.h \
- src/cgame/cg_local.h src/cgame/../game/q_shared.h \
- src/cgame/../game/surfaceflags.h src/cgame/tr_types.h \
- src/cgame/../game/bg_public.h src/cgame/../game/tremulous.h \
- src/cgame/cg_public.h src/cgame/../ui/ui_shared.h \
- src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_players.asm: ./src/cgame/cg_players.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_playerstate.asm: ./src/cgame/cg_playerstate.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_predict.asm: ./src/cgame/cg_predict.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_scanner.asm: ./src/cgame/cg_scanner.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_servercmds.asm: ./src/cgame/cg_servercmds.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_snapshot.asm: ./src/cgame/cg_snapshot.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_spriter.asm: ./src/cgame/cg_spriter.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_syscalls.asm: ./src/cgame/cg_syscalls.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_trails.asm: ./src/cgame/cg_trails.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_view.asm: ./src/cgame/cg_view.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-qvm/cgame/cg_weapons.asm: ./src/cgame/cg_weapons.c src/cgame/cg_local.h \
- src/cgame/../game/q_shared.h src/cgame/../game/surfaceflags.h \
- src/cgame/tr_types.h src/cgame/../game/bg_public.h \
- src/cgame/../game/tremulous.h src/cgame/cg_public.h \
- src/cgame/../ui/ui_shared.h src/cgame/../ui/../game/q_shared.h \
- src/cgame/../ui/../cgame/tr_types.h src/cgame/../ui/keycodes.h \
- src/cgame/../ui/../../ui/menudef.h
-releasei386-glibc/ui/ui_atoms.o: ./src/ui/ui_atoms.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-releasei386-glibc/ui/ui_gameinfo.o: ./src/ui/ui_gameinfo.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-releasei386-glibc/ui/ui_main.o: ./src/ui/ui_main.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-releasei386-glibc/ui/ui_players.o: ./src/ui/ui_players.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-releasei386-glibc/ui/ui_shared.o: ./src/ui/ui_shared.c src/ui/ui_shared.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/keycodes.h \
- src/ui/../../ui/menudef.h
-releasei386-glibc/ui/ui_syscalls.o: ./src/ui/ui_syscalls.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-debugi386-glibc/ui/ui_atoms.o: ./src/ui/ui_atoms.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-debugi386-glibc/ui/ui_gameinfo.o: ./src/ui/ui_gameinfo.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-debugi386-glibc/ui/ui_main.o: ./src/ui/ui_main.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-debugi386-glibc/ui/ui_players.o: ./src/ui/ui_players.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-debugi386-glibc/ui/ui_shared.o: ./src/ui/ui_shared.c src/ui/ui_shared.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/keycodes.h \
- src/ui/../../ui/menudef.h
-debugi386-glibc/ui/ui_syscalls.o: ./src/ui/ui_syscalls.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-qvm/ui/ui_atoms.asm: ./src/ui/ui_atoms.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-qvm/ui/ui_gameinfo.asm: ./src/ui/ui_gameinfo.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-qvm/ui/ui_main.asm: ./src/ui/ui_main.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-qvm/ui/ui_players.asm: ./src/ui/ui_players.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
-qvm/ui/ui_shared.asm: ./src/ui/ui_shared.c src/ui/ui_shared.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/keycodes.h \
- src/ui/../../ui/menudef.h
-qvm/ui/ui_syscalls.asm: ./src/ui/ui_syscalls.c src/ui/ui_local.h \
- src/ui/../game/q_shared.h src/ui/../game/surfaceflags.h \
- src/ui/../cgame/tr_types.h src/ui/ui_public.h src/ui/keycodes.h \
- src/ui/../game/bg_public.h src/ui/../game/tremulous.h \
- src/ui/ui_shared.h src/ui/../../ui/menudef.h
+releasei386-glibc/game/bg_lib.o: src/game/bg_lib.c src/game/q_shared.h src/game/surfaceflags.h
+releasei386-glibc/game/bg_misc.o: src/game/bg_misc.c src/game/q_shared.h src/game/surfaceflags.h \
+ src/game/bg_public.h src/game/tremulous.h
+releasei386-glibc/game/bg_pmove.o: src/game/bg_pmove.c src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/bg_local.h
+releasei386-glibc/game/bg_slidemove.o: src/game/bg_slidemove.c src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/bg_local.h
+releasei386-glibc/game/g_active.o: src/game/g_active.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_buildable.o: src/game/g_buildable.c src/game/g_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
+ src/game/tremulous.h src/game/g_public.h
+releasei386-glibc/game/g_client.o: src/game/g_client.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_cmds.o: src/game/g_cmds.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_combat.o: src/game/g_combat.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_main.o: src/game/g_main.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_mem.o: src/game/g_mem.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_misc.o: src/game/g_misc.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_missile.o: src/game/g_missile.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_mover.o: src/game/g_mover.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_physics.o: src/game/g_physics.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_session.o: src/game/g_session.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_spawn.o: src/game/g_spawn.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_svcmds.o: src/game/g_svcmds.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_syscalls.o: src/game/g_syscalls.c src/game/g_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
+ src/game/tremulous.h src/game/g_public.h
+releasei386-glibc/game/g_target.o: src/game/g_target.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_team.o: src/game/g_team.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_trigger.o: src/game/g_trigger.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_utils.o: src/game/g_utils.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/g_weapon.o: src/game/g_weapon.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+releasei386-glibc/game/q_math.o: src/game/q_math.c src/game/q_shared.h src/game/surfaceflags.h
+releasei386-glibc/game/q_shared.o: src/game/q_shared.c src/game/q_shared.h \
+ src/game/surfaceflags.h
+debugi386-glibc/game/bg_lib.o: src/game/bg_lib.c src/game/q_shared.h src/game/surfaceflags.h
+debugi386-glibc/game/bg_misc.o: src/game/bg_misc.c src/game/q_shared.h src/game/surfaceflags.h \
+ src/game/bg_public.h src/game/tremulous.h
+debugi386-glibc/game/bg_pmove.o: src/game/bg_pmove.c src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/bg_local.h
+debugi386-glibc/game/bg_slidemove.o: src/game/bg_slidemove.c src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/bg_local.h
+debugi386-glibc/game/g_active.o: src/game/g_active.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_buildable.o: src/game/g_buildable.c src/game/g_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
+ src/game/tremulous.h src/game/g_public.h
+debugi386-glibc/game/g_client.o: src/game/g_client.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_cmds.o: src/game/g_cmds.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_combat.o: src/game/g_combat.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_main.o: src/game/g_main.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_mem.o: src/game/g_mem.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_misc.o: src/game/g_misc.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_missile.o: src/game/g_missile.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_mover.o: src/game/g_mover.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_physics.o: src/game/g_physics.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_session.o: src/game/g_session.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_spawn.o: src/game/g_spawn.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_svcmds.o: src/game/g_svcmds.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_syscalls.o: src/game/g_syscalls.c src/game/g_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
+ src/game/tremulous.h src/game/g_public.h
+debugi386-glibc/game/g_target.o: src/game/g_target.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_team.o: src/game/g_team.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_trigger.o: src/game/g_trigger.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_utils.o: src/game/g_utils.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/g_weapon.o: src/game/g_weapon.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+debugi386-glibc/game/q_math.o: src/game/q_math.c src/game/q_shared.h src/game/surfaceflags.h
+debugi386-glibc/game/q_shared.o: src/game/q_shared.c src/game/q_shared.h \
+ src/game/surfaceflags.h
+qvm/game/bg_lib.asm: src/game/bg_lib.c src/game/q_shared.h src/game/surfaceflags.h
+qvm/game/bg_misc.asm: src/game/bg_misc.c src/game/q_shared.h src/game/surfaceflags.h \
+ src/game/bg_public.h src/game/tremulous.h
+qvm/game/bg_pmove.asm: src/game/bg_pmove.c src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/bg_local.h
+qvm/game/bg_slidemove.asm: src/game/bg_slidemove.c src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/bg_local.h
+qvm/game/g_active.asm: src/game/g_active.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_buildable.asm: src/game/g_buildable.c src/game/g_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
+ src/game/tremulous.h src/game/g_public.h
+qvm/game/g_client.asm: src/game/g_client.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_cmds.asm: src/game/g_cmds.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_combat.asm: src/game/g_combat.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_main.asm: src/game/g_main.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_mem.asm: src/game/g_mem.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_misc.asm: src/game/g_misc.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_missile.asm: src/game/g_missile.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_mover.asm: src/game/g_mover.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_physics.asm: src/game/g_physics.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_session.asm: src/game/g_session.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_spawn.asm: src/game/g_spawn.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_svcmds.asm: src/game/g_svcmds.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_syscalls.asm: src/game/g_syscalls.c src/game/g_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/game/bg_public.h \
+ src/game/tremulous.h src/game/g_public.h
+qvm/game/g_target.asm: src/game/g_target.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_team.asm: src/game/g_team.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_trigger.asm: src/game/g_trigger.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_utils.asm: src/game/g_utils.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/g_weapon.asm: src/game/g_weapon.c src/game/g_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/game/bg_public.h src/game/tremulous.h \
+ src/game/g_public.h
+qvm/game/q_math.asm: src/game/q_math.c src/game/q_shared.h src/game/surfaceflags.h
+qvm/game/q_shared.asm: src/game/q_shared.c src/game/q_shared.h \
+ src/game/surfaceflags.h
+releasei386-glibc/cgame/cg_animmapobj.o: src/cgame/cg_animmapobj.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_buildable.o: src/cgame/cg_buildable.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_consolecmds.o: src/cgame/cg_consolecmds.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_draw.o: src/cgame/cg_draw.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_drawtools.o: src/cgame/cg_drawtools.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_effects.o: src/cgame/cg_effects.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_ents.o: src/cgame/cg_ents.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_event.o: src/cgame/cg_event.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_localents.o: src/cgame/cg_localents.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_main.o: src/cgame/cg_main.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_marks.o: src/cgame/cg_marks.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_mem.o: src/cgame/cg_mem.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_mp3decoder.o: src/cgame/cg_mp3decoder.c src/cgame/cg_mp3decoder.h \
+ src/cgame/cg_local.h src/game/q_shared.h src/game/surfaceflags.h \
+ src/cgame/tr_types.h src/game/bg_public.h src/game/tremulous.h \
+ src/cgame/cg_public.h src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_players.o: src/cgame/cg_players.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_playerstate.o: src/cgame/cg_playerstate.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_predict.o: src/cgame/cg_predict.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_scanner.o: src/cgame/cg_scanner.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_servercmds.o: src/cgame/cg_servercmds.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_snapshot.o: src/cgame/cg_snapshot.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_spriter.o: src/cgame/cg_spriter.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_syscalls.o: src/cgame/cg_syscalls.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_trails.o: src/cgame/cg_trails.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_view.o: src/cgame/cg_view.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/cgame/cg_weapons.o: src/cgame/cg_weapons.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_animmapobj.o: src/cgame/cg_animmapobj.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_buildable.o: src/cgame/cg_buildable.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_consolecmds.o: src/cgame/cg_consolecmds.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_draw.o: src/cgame/cg_draw.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_drawtools.o: src/cgame/cg_drawtools.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_effects.o: src/cgame/cg_effects.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_ents.o: src/cgame/cg_ents.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_event.o: src/cgame/cg_event.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_localents.o: src/cgame/cg_localents.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_main.o: src/cgame/cg_main.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_marks.o: src/cgame/cg_marks.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_mem.o: src/cgame/cg_mem.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_mp3decoder.o: src/cgame/cg_mp3decoder.c src/cgame/cg_mp3decoder.h \
+ src/cgame/cg_local.h src/game/q_shared.h src/game/surfaceflags.h \
+ src/cgame/tr_types.h src/game/bg_public.h src/game/tremulous.h \
+ src/cgame/cg_public.h src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_players.o: src/cgame/cg_players.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_playerstate.o: src/cgame/cg_playerstate.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_predict.o: src/cgame/cg_predict.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_scanner.o: src/cgame/cg_scanner.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_servercmds.o: src/cgame/cg_servercmds.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_snapshot.o: src/cgame/cg_snapshot.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_spriter.o: src/cgame/cg_spriter.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_syscalls.o: src/cgame/cg_syscalls.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_trails.o: src/cgame/cg_trails.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_view.o: src/cgame/cg_view.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+debugi386-glibc/cgame/cg_weapons.o: src/cgame/cg_weapons.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_animmapobj.asm: src/cgame/cg_animmapobj.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_buildable.asm: src/cgame/cg_buildable.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_consolecmds.asm: src/cgame/cg_consolecmds.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_draw.asm: src/cgame/cg_draw.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_drawtools.asm: src/cgame/cg_drawtools.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_effects.asm: src/cgame/cg_effects.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_ents.asm: src/cgame/cg_ents.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_event.asm: src/cgame/cg_event.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_localents.asm: src/cgame/cg_localents.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_main.asm: src/cgame/cg_main.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_marks.asm: src/cgame/cg_marks.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_mem.asm: src/cgame/cg_mem.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_mp3decoder.asm: src/cgame/cg_mp3decoder.c src/cgame/cg_mp3decoder.h \
+ src/cgame/cg_local.h src/game/q_shared.h src/game/surfaceflags.h \
+ src/cgame/tr_types.h src/game/bg_public.h src/game/tremulous.h \
+ src/cgame/cg_public.h src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_players.asm: src/cgame/cg_players.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_playerstate.asm: src/cgame/cg_playerstate.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_predict.asm: src/cgame/cg_predict.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_scanner.asm: src/cgame/cg_scanner.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_servercmds.asm: src/cgame/cg_servercmds.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_snapshot.asm: src/cgame/cg_snapshot.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_spriter.asm: src/cgame/cg_spriter.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_syscalls.asm: src/cgame/cg_syscalls.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_trails.asm: src/cgame/cg_trails.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_view.asm: src/cgame/cg_view.c src/cgame/cg_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/game/bg_public.h \
+ src/game/tremulous.h src/cgame/cg_public.h src/ui/ui_shared.h \
+ src/ui/keycodes.h ui/menudef.h
+qvm/cgame/cg_weapons.asm: src/cgame/cg_weapons.c src/cgame/cg_local.h \
+ src/game/q_shared.h src/game/surfaceflags.h src/cgame/tr_types.h \
+ src/game/bg_public.h src/game/tremulous.h src/cgame/cg_public.h \
+ src/ui/ui_shared.h src/ui/keycodes.h ui/menudef.h
+releasei386-glibc/ui/ui_atoms.o: src/ui/ui_atoms.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+releasei386-glibc/ui/ui_gameinfo.o: src/ui/ui_gameinfo.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+releasei386-glibc/ui/ui_main.o: src/ui/ui_main.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+releasei386-glibc/ui/ui_players.o: src/ui/ui_players.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+releasei386-glibc/ui/ui_shared.o: src/ui/ui_shared.c src/ui/ui_shared.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/keycodes.h \
+ ui/menudef.h
+releasei386-glibc/ui/ui_syscalls.o: src/ui/ui_syscalls.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+debugi386-glibc/ui/ui_atoms.o: src/ui/ui_atoms.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+debugi386-glibc/ui/ui_gameinfo.o: src/ui/ui_gameinfo.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+debugi386-glibc/ui/ui_main.o: src/ui/ui_main.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+debugi386-glibc/ui/ui_players.o: src/ui/ui_players.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+debugi386-glibc/ui/ui_shared.o: src/ui/ui_shared.c src/ui/ui_shared.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/keycodes.h \
+ ui/menudef.h
+debugi386-glibc/ui/ui_syscalls.o: src/ui/ui_syscalls.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+qvm/ui/ui_atoms.asm: src/ui/ui_atoms.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+qvm/ui/ui_gameinfo.asm: src/ui/ui_gameinfo.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+qvm/ui/ui_main.asm: src/ui/ui_main.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+qvm/ui/ui_players.asm: src/ui/ui_players.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
+qvm/ui/ui_shared.asm: src/ui/ui_shared.c src/ui/ui_shared.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/keycodes.h \
+ ui/menudef.h
+qvm/ui/ui_syscalls.asm: src/ui/ui_syscalls.c src/ui/ui_local.h src/game/q_shared.h \
+ src/game/surfaceflags.h src/cgame/tr_types.h src/ui/ui_public.h \
+ src/ui/keycodes.h src/game/bg_public.h src/game/tremulous.h \
+ src/ui/ui_shared.h ui/menudef.h
diff --git a/entities.def b/entities.def
new file mode 100644
index 00000000..ee14cce8
--- /dev/null
+++ b/entities.def
@@ -0,0 +1,1571 @@
+// Tremulous entity definition file for GTKRadiant
+// Tim Angus <tma@op.ath.cx> 08/09/03
+
+// Based on entities.def from GTKRadiant 1.3.11 which in turn is based on...
+// Based on draft by Suicide 20 7.30.99 and inolen 9-3-99
+// Upgraded by Eutectic: eutectic@ritualistic.com
+// (visible models added by raYGunn - paths provided by Suicide 20)
+// (terrain information added to func_group entity by Paul Jaquays)
+// Q3Map2 entitys/keys added by ydnar
+// Version: 1.5
+// Last updated: 2003-06-09
+
+//=============================================================================
+
+LIGHT ENTITY
+
+//=============================================================================
+
+
+/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT
+Non-displayed point light source. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights.
+
+-------- KEYS --------
+_light OR light: overrides the default 300 intensity.
+
+_color: weighted RGB value of light color (default white - 1.0 1.0 1.0).
+
+target: Lights pointed at a target will be spotlights.
+
+radius: overrides the default 64 unit radius of a spotlight at the target point.
+
+-------- Q3MAP2 KEYS --------
+_sun: Set this key to 1 on a spotlight to make an infinite sun light.
+
+fade: Fades light attenuation. Only affects linear lights.
+
+scale: Scales light attentation, from SOF2/JK2. Scales the "light" value.
+
+-------- SPAWNFLAGS --------
+LINEAR: Use a linear falloff. Default is inverse distance squared (more realistic).
+
+NOANGLE: Ignore angle attenuation.
+
+NOGRIDLIGHT: Do not affect the lightgrid (dynamic entity lighting).
+*/
+
+/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT
+
+Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights.
+
+-------- KEYS --------
+_light OR light: overrides the default 300 intensity.
+
+_color: weighted RGB value of light color (default white - 1.0 1.0 1.0).
+
+target: Lights pointed at a target will be spotlights.
+
+radius: overrides the default 64 unit radius of a spotlight at the target point.
+
+-------- Q3MAP2 KEYS --------
+_sun: Set this key to 1 on a spotlight to make an infinite sun light.
+
+fade: Fades light attenuation. Only affects linear lights.
+
+scale: Scales light attentation, from SOF2/JK2. Scales the "light" value.
+
+-------- SPAWNFLAGS --------
+LINEAR: Use a linear falloff. Default is inverse distance squared (more realistic).
+
+NOANGLE: Ignore angle attenuation.
+
+NOGRIDLIGHT: Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.
+*/
+
+//=============================================================================
+
+FUNC_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS
+Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked.
+
+-------- KEYS --------
+speed: amount of time in seconds for one complete oscillation cycle (default 4).
+
+height: sets the amount of travel of the oscillation movement (default 32).
+
+phase: sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0).
+
+noise: path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav - See Notes).
+
+model2: path/name of model to include (eg: models/mapobjects/jets/jets01.md3).
+
+origin: alternate method of setting XYZ origin of sound and .md3 model included with entity (See Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- SPAWNFLAGS --------
+X_AXIS: entity will bob along the X axis.
+Y_AXIS: entity will bob along the Y axis.
+
+-------- NOTES --------
+In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_button (0 .5 .8) ?
+When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again.
+
+-------- KEYS --------
+angle: determines the direction in which the button will move (up = -1, down = -2).
+
+target: all entities with a matching targetname will be triggered.
+
+speed: speed of button's displacement (default 40).
+
+wait: number of seconds button stays pressed (default 1, -1 = return immediately).
+
+lip: lip remaining at end of move (default 4 units).
+
+health: (default 0) if set to any non-zero value, the button must take damage (any amount) to activate.
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+model2: path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3).
+
+origin: alternate method of setting XYZ origin of .md3 model included with entity (See Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+sound1to2: the sound played when the door, platform or button moves from state 1 to state 2.
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER
+Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it.
+
+-------- KEYS --------
+angle: determines the opening direction of door (up = -1, down = -2).
+
+speed: determines how fast the door moves (default 100).
+
+wait: number of seconds before door returns (default 2, -1 = return immediately)
+
+lip: lip remaining at end of move (default 8)
+
+targetname: if set, a func_button or trigger is required to activate the door.
+
+health: (default 0) if set to any non-zero value, the button must take damage (any amount) to activate.
+
+dmg: damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set.
+
+team: assign the same team name to multiple doors that should operate together (see Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+model2: path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3).
+
+origin: alternate method of setting XYZ origin of .md3 model included with entity (See Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+sound1to2: the sound played when the door, platform or button moves from state 1 to state 2.
+
+sound2to1: the sound played when the door or platform moves from from state 2 to state 1.
+
+soundPos2: the sound played when the door or platform reaches state 2.
+
+soundPos1: the sound played when the door or platform reaches state 1.
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- SPAWNFLAGS --------
+START_OPEN: the door will spawn in the open state and operate in reverse.
+
+CRUSHER: door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way.
+
+-------- NOTES --------
+Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_door_model (0 .5 .8) ?
+Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it.
+
+-------- KEYS --------
+speed: determines the time taken for the door to change state in msec (default 200).
+
+wait: number of seconds before door returns (default 2)
+
+targetname: if set, a func_button or trigger is required to activate the door.
+
+health: (default 0) if set to any non-zero value, the button must take damage (any amount) to activate.
+
+team: assign the same team name to multiple doors that should operate together (see Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+model2: path/name of the door model (eg: models/mapobjects/pipe/pipe02.md3).
+
+origin: alternate method of setting XYZ origin of .md3 model included with entity (See Notes).
+
+scale: scale the model in each of the major axes (e.g. 1.0 1.0 2.0 -- twice as high as normal).
+
+animation: The first frame and number of frames in the door open animation (e.g. 0 10). This will be reversed for the close animation.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+sound1to2: the sound played when the door, platform or button moves from state 1 to state 2.
+
+sound2to1: the sound played when the door or platform moves from from state 2 to state 1.
+
+soundPos2: the sound played when the door or platform reaches state 2.
+
+soundPos1: the sound played when the door or platform reaches state 1.
+
+-------- Q3MAP2 KEYS --------
+
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+The func_door_model provides two means of positioning and scaling the model representing the door. Firstly if neither the origin nor scale keys are set the client will attempt to scale and position the model so that it fills the associated brush (which incidentally is only used for clipping). This will only work with axially aligned brushes however, so the second method allows the setting of origin and scale manually, providing complete control over the model. In both cases the angle/angles keys are used to affect the orientation of the model.
+*/
+
+//=============================================================================
+
+/*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN - CRUSHER REVERSE - X_AXIS Y_AXIS
+Rotating door entity. By default, the door will activate when player walks close toit.
+
+-------- KEYS --------
+speed: determines how fast the door moves (in degrees/second).
+
+rotatorAngle: the number of degrees through which to rotate (default 90).
+
+wait: number of seconds before door returns (default 2)
+
+targetname: if set, a func_button or trigger is required to activate the door.
+
+health: (default 0) if set to any non-zero value, the button must take damage (any amount) to activate.
+
+dmg: damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set.
+
+team: assign the same team name to multiple doors that should operate together (see Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+model2: path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3).
+
+origin: alternate method of setting XYZ origin of .md3 model included with entity (See Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+sound1to2: the sound played when the door, platform or button moves from state 1 to state 2.
+
+sound2to1: the sound played when the door or platform moves from from state 2 to state 1.
+
+soundPos2: the sound played when the door or platform reaches state 2.
+
+soundPos1: the sound played when the door or platform reaches state 1.
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- SPAWNFLAGS --------
+START_OPEN: the door will spawn in the open state and operate in reverse.
+
+CRUSHER: door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way.
+
+REVERSE: the door will open the other way.
+
+X_AXIS: rotate on the X axis instead of the Z.
+
+Y_AXIS: rotate on the Y axis instead of the Z.
+
+-------- NOTES --------
+Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+
+You need to have an origin brush as part of this entity. The center of that brush will be the point around which it is rotated. It will rotate around the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that.
+*/
+
+//=============================================================================
+
+/*QUAKED func_group (0 .5 .8) ?
+This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this.
+
+-------- OLD TERRAIN KEYS (note: obsolete with Q3Map2) --------
+alphamap: this is the path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+layers: this integer value is the number unique root shaders that will be use on the terrain.
+
+shader: this is the path to the metashader used to assign textures to the terrain entity.
+
+terrain: this is an on/off flag. When set to 1, the entity becomes a terrain entity. Note: unecessary when compiling with Q3Map2. See Q3Map2 keys.
+
+-------- Q3MAP2 KEYS --------
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.
+*/
+
+//=============================================================================
+
+/*QUAKED func_pendulum (0 .5 .8) ?
+Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum instantly kills a player.
+
+-------- KEYS --------
+angle: angle offset of axis of rotation from default X axis (default 0).
+
+speed: angle of swing arc in either direction from initial position (default 30).
+
+phase: sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0).
+
+noise: path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav).
+
+model2: path/name of model to include (eg: models/mapobjects/jets/jets01.md3).
+
+origin: alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_plat (0 .5 .8) ?
+Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. There are no proper sounds for this entity, only beep noises. It will spawn in the game and work properly but it sounds silly (see Notes).
+
+-------- KEYS --------
+speed: determines how fast the plat moves (default 150).
+
+lip: lip remaining at end of move (default 16). Has no effect if "height" is set.
+
+height: if set, this will determine the total amount of vertical travel of the plat.
+
+dmg: damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked.
+
+targetname: if set, the trigger that points to this will raise the plat each time it fires. The plat raises and comes back down a second later if no player is on it.
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+model2: path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3).
+
+origin: alternate method of setting XYZ origin of .md3 model included with entity (See Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+sound1to2: the sound played when the door, platform or button moves from state 1 to state 2.
+
+sound2to1: the sound played when the door or platform moves from from state 2 to state 1.
+
+soundPos2: the sound played when the door or platform reaches state 2.
+
+soundPos1: the sound played when the door or platform reaches state 1.
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS
+Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable.
+
+-------- KEYS --------
+speed: determines how fast entity rotates (default 100).
+
+noise: path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav).
+
+model2: path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3).
+
+origin: alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- SPAWNFLAGS --------
+X_AXIS: entity will rotate along the X axis.
+
+Y_AXIS: entity will rotate along the Y axis.
+
+-------- NOTES --------
+You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_static (0 .5 .8) ?
+Static non-solid bspmodel. Can be used for conditional walls and models.
+
+-------- KEYS --------
+model2: path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3).
+
+origin: alternate method of setting XYZ origin of .md3 model included with entity (See Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+targetname: NOT SUPPORTED BY RENDERER - if set, a func_button or trigger can make entity disappear from the game (See Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: it will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static.
+
+Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").
+*/
+
+//=============================================================================
+
+/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON
+Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off.
+
+-------- KEYS --------
+wait: delay in seconds between each triggering of its targets (default 1).
+
+random: random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes).
+
+target: this points to the entities to trigger.
+
+targetname: a func_button or trigger that points to this will toggle the timer on/off when activated.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+START_ON: timer will start on in the game and continuously fire its targets.
+
+-------- NOTES --------
+When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).
+*/
+
+//=============================================================================
+
+/*QUAKED func_train (0 .5 .8) ?
+Trains are moving solids that follow a string of path_corner entities. Trains in Q3A are very basic, they also require an origin brush (see Notes).
+
+-------- KEYS --------
+speed: speed of displacement of train (default 100 or overridden by speed value of path).
+
+target: this points to the first path_corner of the path which is also the spawn location of the train's origin.
+
+model2: path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3).
+
+origin: alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (See Notes).
+
+light: constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0).
+
+color: constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- Q3MAP2 KEYS --------
+_targetname: Used to attach a misc_model entity to this entity.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+
+-------- NOTES --------
+1. Trains always start on in the game.
+2. Trains do not damage the player when blocked.
+3. Trains cannot emit sound.
+4. Trains are not triggerable or toggle-able.
+5. Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it.
+
+Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.
+
+Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/
+
+
+
+
+//=============================================================================
+
+INFO_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8)
+Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes.
+
+-------- KEYS --------
+targetname: must match the target key of entity that uses this for pointing.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+
+//=============================================================================
+
+/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8)
+Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes.
+
+-------- KEYS --------
+targetname: must match the target key of entity that uses this for pointing.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+//=============================================================================
+
+/*QUAKED info_player_intermission (1 0 1) (-8 -8 -8) (8 8 8)
+Camera for intermission screen between matches. This also automatically generates the podium for bot arena matches (see Notes). Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level.
+
+-------- KEYS --------
+angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0).
+
+target: point this to an info_notnull or target_position entity to set the camera's pointing angles.
+
+-------- NOTES --------
+In genuine bot arena matches, the podium for the 1st, 2nd and 3rd place players at the end of the match is generated by this entity. The podium's origin will automatically be located 128 units in the direction of the camera's view and 84 units down from the y height of the view line at that point. It will also always be generated on a level plane regardless of the pointing angle of the camera so if that angle is too steep, part of the podium model might not be visible. Make sure you leave at least 106 units of free space in front of where the camera points to otherwise the podium model won't be visible at all.
+*/
+
+//=============================================================================
+
+/*QUAKED info_alien_intermission (1 0 1) (-8 -8 -8) (8 8 8)
+Camera for aliens before they spawn. Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use one per level.
+
+-------- KEYS --------
+angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0).
+
+target: point this to an info_notnull or target_position entity to set the camera's pointing angles.
+*/
+
+//=============================================================================
+
+/*QUAKED info_human_intermission (1 0 1) (-8 -8 -8) (8 8 8)
+Camera for humans before they spawn. Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use one per level.
+
+-------- KEYS --------
+angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0).
+
+target: point this to an info_notnull or target_position entity to set the camera's pointing angles.
+*/
+
+
+
+//=============================================================================
+
+MISC_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16)
+Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported.
+
+-------- KEYS --------
+angle: direction in which model will be oriented.
+
+model: path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3).
+
+-------- Q3MAP2 KEYS --------
+angles: Individual control of PITCH, YAW, and ROLL (default 0 0 0).
+
+modelscale: Floating-point value used to scale a model up or down (default 1.0).
+
+modelscale_vec: Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0).
+
+_remap: Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new".
+
+target: Used to attach the misc_model to a brush entity, where its "targetname" key is the same value.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+*/
+
+//=============================================================================
+
+/*QUAKED misc_anim_model (1 .5 .25) (-16 -16 -16) (16 16 16) TRIGGER_TOGGLE
+A little like misc_model except that it is a game entity and does not become part of the map geometry. An instance of this entity will draw an arbituary md3 in the world with an arbituary frame or with an animation.
+
+-------- KEYS --------
+angle: direction in which model will be oriented.
+
+radius: The scale of the model compared to its original size. Defaults to 1.0.
+
+animation: The guts of the entity. This is identical to an entry in an animation.cfg - Start Frame, Number of frames, Looping Frames, Frame rate. For example 0 30 30 20 will play frames 0 through 30 continously at 20 fps.
+
+model: path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3).
+
+-------- SPAWNFLAGS --------
+TRIGGER_TOGGLE: With this set triggering the entity disables the model altogether as opposed to the regular behaviour of toggling the animation.
+*/
+
+//=============================================================================
+
+/*QUAKED misc_spriter (1 .5 .25) (-16 -16 -16) (16 16 16) DISABLE_OVERDRAW AMBIENT_LIGHT SPAWN_DISABLED
+A simple particle system producing entity.
+
+-------- KEYS --------
+angles: The direction the sprites will move in initially. angles is a vector of PITCH YAW ROLL. For example a value of "90 0 0" would emit sprites downwards. Special attention should be paid to the roll angle - this governs the rotation of the sprites. Setting this to 360 or greater will produce random rotations on the sprites.
+
+speed: The speed at which sprites are launched. This will remain constant unless acted upon by an acceleration (see below).
+
+acceleration: This is a vector that specifys the acceleration that sprites launched will be subject to. This is not a normalised vector, magnitude is incorporated.
+
+wait: The lifetime of sprites launched in 1000ths of a second.
+
+bounce: A value reflecting the proportion of velocity that is carried through by the sprite when it collides with a surface. e.g. 1.0 means all velocity is reflected, 0.5 means half. A value of 0.0 (or no bounce key at all) results in sprites that do not collide with brushes.
+
+alpha: Two numerical values giving the start and end alpha values for the sprites. e.g. a value "255 0" gives sprites that start 100% opaque and end up transparent.
+
+radius: Similar to alpha, this gives the start and end radii of the sprites. "16 64" will give sprites that start 16 units big and end up 64 units big.
+
+random: The angle about "angles" that the launch vector is randomised by. Maximum 180 degrees.
+
+count: The number of sprites to launch every second. Defaults to 1.
+
+targetShaderName: The full name of the shader to use for the sprites.
+
+-------- SPAWNFLAGS --------
+DISABLE_OVERDRAW: This turns overdraw protection off. With overdraw protection on sprites too close to the client's viewport are culled to prevent excessive fps loss.
+
+AMBIENT_LIGHT: Sprites are rendered with the ambient light value, otherwise sprites are fullbright.
+
+SPAWN_DISABLED: Spawn disabled.
+
+-------- NOTES --------
+Triggering this entity toggles it.
+*/
+
+//=============================================================================
+
+/*QUAKED misc_light_flare (.65 .65 1) (-8 -8 -8) (8 8 8) SPAWN_DISABLED
+A light flare entity.
+
+-------- KEYS --------
+targetShaderName: The name of the shader of the light flare.
+
+radius: The radius key is a vector.
+The first component is the size of the light flare. The radius is calculated by taking the distance of the viewer from the light flare and dividing by this key, so the larger the key value, the smaller the flare. Values between 2 and 10 are sensible.
+The second component indicates the angle around the direction the flare points for which it is visible. For example a value of 90 means that you can see the flare while infront of the entity, but not when behind it. If set to zero the light flare will be visible from any angle
+The third component is similar to the first except that it specifies the size of the light source rather than the size of the light flare itself. This is useful when the higher detail flare fading modes are enabled. If this is set to the same value as the first component, fading will commence as soon as the edge of the light flare is occluded by some surface between the viewer and the flare. If it is set larger the flare will overlap the occluding surface before it begins to fade.
+
+angles: This reflects which direction the flare points. It is not important unless the second component of the radius key is employed. angles is a vector of PITCH YAW ROLL. For example a value of "90 0 0" would create a flare pointing down. ROLL is redundant in this context and can be set arbitrarily.
+
+-------- SPAWNFLAGS --------
+SPAWN_DISABLED: Spawn disabled.
+
+-------- NOTES --------
+Triggering this entity toggles it.
+*/
+
+//=============================================================================
+
+/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE
+Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction.
+
+-------- KEYS --------
+angles: this sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle.
+
+target: point this to a target_position entity to set the camera's pointing direction.
+
+targetname: a misc_portal_surface portal surface indicator must point to this.
+
+roll: roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+SLOWROTATE: makes the portal camera rotate slowly along the roll axis.
+
+FASTROTATE: makes the portal camera rotate faster along the roll axis.
+
+-------- NOTES --------
+Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.
+*/
+
+//=============================================================================
+
+/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8)
+Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera that this entity targets. Also used for mirrors (see Notes).
+
+-------- KEYS --------
+target: point this to a misc_portal_camera that "sees" the view you want to display on the portal.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- NOTES --------
+The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.
+*/
+
+//=============================================================================
+
+/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16)
+Teleport destination location point for trigger_teleporter entities.
+
+-------- KEYS --------
+angle: direction in which player will look when teleported.
+
+targetname: make the trigger_teleporter point to this.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+
+
+
+//=============================================================================
+
+PATH_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8)
+Path corner entity that func_trains can be made to follow.
+
+-------- KEYS --------
+target: point to next path_corner in the path.
+
+targetname: the train following the path or the previous path_corner in the path points to this.
+
+speed: speed of func_train while moving to the next path corner. This will override the speed value of the train.
+
+wait: number of seconds func_train will pause on path corner before moving to next path corner (default 0 - see Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- NOTES --------
+Setting the wait key to -1 will not make the train stop on the path corner, it will simply default to 0.
+*/
+
+
+
+//=============================================================================
+
+TARGET_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8)
+Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets.
+
+-------- KEYS --------
+targetname: activating trigger points to this.
+
+target: this points to entities to activate when this entity is triggered.
+
+wait: delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1).
+
+delay: same as wait? replaces it? WTF?...I'm confused now.
+
+random: random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- NOTES --------
+When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).
+*/
+
+//=============================================================================
+
+/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8)
+This will kill the player who activates the trigger that fires this target.
+
+-------- KEYS --------
+targetname: the activating trigger points to this.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+//=============================================================================
+
+/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8)
+Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used.
+
+-------- KEYS --------
+message: name of the location (text string). Displayed in parentheses in front of all team chat and order messages.
+
+count: color of the location text displayed in parentheses during team chat. Set to 0-7 for color.
+ 0: white (default)
+ 1: red
+ 2: green
+ 3: yellow
+ 4: blue
+ 5: cyan
+ 6: magenta
+ 7: white
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+//=============================================================================
+
+/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8)
+Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular.
+
+-------- KEYS --------
+targetname: the entity that requires an aiming direction points to this.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- NOTES --------
+To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.
+*/
+
+//=============================================================================
+
+/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) HUMAN_TEAM ALIEN_TEAM PRIVATE
+This will print a message on the center of the screen when triggered. By default, all the clients will see the message.
+
+-------- KEYS --------
+message: text string to print on screen.
+
+targetname: the activating trigger points to this.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+HUMAN_TEAM: only the human team players will see the message.
+ALIEN_TEAM: only the alien team players will see the message.
+PRIVATE: only the player that activates the target will see the message.
+*/
+
+//=============================================================================
+
+/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) BOUNCEPAD
+This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger.
+
+-------- KEYS --------
+angles: this sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply.
+
+speed: speed of push (default 1000). Has no effect if entity targets an aiming entity.
+
+targetname: the activating trigger points to this. Push originates from the location of the trigger.
+
+target: this points to the aiming entity to which the player will jump.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+BOUNCEPAD: if set, trigger will play bounce noise instead of beep noise when activated (recommended).
+
+-------- NOTES --------
+To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.
+*/
+
+//=============================================================================
+
+/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) HUMAN_ONLY ALIEN_ONLY RANDOM
+This can only be activated by other triggers which will cause it in turn to activate its own targets.
+
+-------- KEYS --------
+targetname: activating trigger points to this.
+
+target: this points to entities to activate when this entity is triggered.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+HUMAN_ONLY: only human team players can activate trigger.
+ALIEN_ONLY: only alien team players can activate trigger.
+RANDOM: one one of the targeted entities will be triggered at random.
+*/
+
+//=============================================================================
+
+/*QUAKED target_score (0 .5 0) (-8 -8 -8) (8 8 8)
+This is used to automatically give frag points to the player who activates this. A spawn location entity like info_player_* or CTF respawn points can target this entity to give points to the player when he spawns in the game. Or a trigger can also be used to activate this. The activator of the trigger will get the points.
+
+-------- KEYS --------
+targetname: ativating entity points to this.
+
+count: number of frag points to give to player (default 1).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+//=============================================================================
+
+/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR
+Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger.
+
+-------- KEYS --------
+noise: path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes).
+
+wait: delay in seconds between each time the sound is played ("random" key must be set - see Notes).
+
+random: random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes).
+
+targetname: the activating button or trigger points to this.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+LOOPED_ON: sound will loop and initially start on in level (will toggle on/off when triggered).
+
+LOOPED_OFF: sound will loop and initially start off in level (will toggle on/off when triggered).
+
+GLOBAL: sound will play full volume throughout the level.
+
+ACTIVATOR: sound will play only for the player that activated the target.
+
+-------- NOTES --------
+The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels.
+
+The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).
+*/
+
+//=============================================================================
+
+/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8)
+Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events.
+
+-------- KEYS --------
+targetname: activating trigger points to this.
+
+target: this must point to a misc_teleporter_dest entity.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+
+
+
+//=============================================================================
+
+TEAM_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED team_human_spawn (0 .2 1) (-40 -40 -4) (40 40 4)
+The human spawn point.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/replicator/replicator.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_armoury (0 .2 1) (-40 -40 -13) (40 40 50)
+The human armoury.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/mcu/mcu.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_dcc (0 .2 1) (-35 -35 -13) (35 35 47)
+The human defense computer.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/dcc/dcc.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_medistat (0 .2 1) (-35 -35 -7) (35 35 7)
+The human medical station.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/medistat/medistat.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_mgturret (0 .2 1) (-25 -25 -20) (25 25 20)
+The human machinegun turret.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/mgturret/mgturret.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_reactor (0 .2 1) (-50 -50 -15) (50 50 95)
+The human reactor.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/reactor/reactor.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_repeater (0 .2 1) (-15 -15 -15) (15 15 25)
+The human repeater.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/repeater/repeater.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_human_tesla (0 .2 1) (-22 -22 -40) (22 22 40)
+The human tesla generator.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/tesla/tesla.md3"
+*/
+
+//=============================================================================
+
+
+
+/*QUAKED team_alien_spawn (1 .2 0) (-15 -15 -15) (15 15 15)
+The alien spawn point.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/bioegg/bioegg.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_alien_acid_tube (1 .2 0) (-35 -35 -11) (35 35 40)
+The alien acid tube.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/acid_tube/acid_tube.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_alien_barricade (1 .2 0) (-35 -35 -15) (35 35 60)
+The alien barricade.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/barricade/barricade.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_alien_booster (1 .2 0) (-26 -26 -9) (26 26 9)
+The alien booster.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/booster/booster.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_alien_hovel (1 .2 0) (-50 -50 -20) (50 50 20)
+The alien hovel.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/hovel/hovel.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_alien_overmind (1 .2 0) (-45 -45 -15) (45 45 95)
+The alien overmind.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/hivemind/hivemind.md3"
+*/
+
+//=============================================================================
+
+/*QUAKED team_alien_trapper (1 .2 0) (-15 -15 -15) (15 15 15)
+The alien trapper.
+
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/buildables/trapper/trapper.md3"
+*/
+
+//=============================================================================
+
+
+
+//=============================================================================
+
+TRIGGER_* ENTITIES
+
+//=============================================================================
+
+/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8)
+Automatic trigger. It will fire the entities it targets as soon as it spawns in the game.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+//=============================================================================
+
+/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF - SILENT NO_PROTECTION SLOW
+Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt.
+
+-------- KEYS --------
+dmg: number of points of damage inflicted to player per server frame (default 5 - integer values only).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- SPAWNFLAGS --------
+START_OFF needs to be triggered (toggle) for damage
+
+SILENT: supresses the sizzling sound while player is being hurt.
+
+NO_PROTECTION: player will be hurt regardless of protection (see Notes).
+
+SLOW: changes the damage rate to once per second.
+
+-------- NOTES --------
+The invulnerability power-up (item_enviro) does not protect the player from damage caused by this entity regardless of whether the NO_PROTECTION spawnflag is set or not. Triggering a trigger_hurt will have no effect if the START_OFF spawnflag is not set. A trigger_hurt always starts on in the game.
+*/
+
+//=============================================================================
+
+/*QUAKED trigger_multiple (.5 .5 .5) ?
+Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+targetname: activating trigger points to this.
+
+wait: time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once).
+
+random: random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes).
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- NOTES --------
+When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).
+*/
+
+//=============================================================================
+
+/*QUAKED trigger_push (.5 .5 .5) ?
+This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted.
+
+-------- KEYS --------
+target: this points to the target_position to which the player will jump.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+
+-------- NOTES --------
+To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.
+*/
+
+//=============================================================================
+
+/*QUAKED trigger_teleport (.5 .5 .5) ?
+Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events.
+
+-------- KEYS --------
+target: this must point to a misc_teleporter_dest entity.
+
+notfree: when set to 1, entity will not spawn in "Free for all" and "Tournament" modes.
+
+notteam: when set to 1, entity will not spawn in "Teamplay" and "CTF" modes.
+
+notsingle: when set to 1, entity will not spawn in Single Player mode (bot play mode).
+*/
+
+
+
+//=============================================================================
+
+WORLDSPAWN ENTITY
+
+//=============================================================================
+
+/*QUAKED worldspawn (0 0 0) ?
+Only used for the world.
+-------- KEYS --------
+message: text to print at user logon. Used for name of level.
+
+music: path/name of looping .wav file used for level's music (eg. music/sonic5.wav).
+
+humanBuildPoints: The maximum amount of power the humans can use. Defaults to 1000.
+
+humanMaxStage: The highest stage the humans are allowed to use [0/1/2]. Defaults to 2.
+humanStage2Threshold: The number of kills the humans must aquire to advance to stage 2. Defaults to 50.
+humanStage3Threshold: The number of kills the humans must aquire to advance to stage 3. Defaults to 100.
+
+alienBuildPoints: The maximum amount of sentience available to the hivemind. Defaults to 1000.
+
+alienMaxStage: The highest stage the aliens are allowed to use [0/1/2]. Defaults to 2.
+alienStage2Threshold: The number of kills the aliens must aquire to advance to stage 2. Defaults to 50.
+alienStage3Threshold: The number of kills the aliens must aquire to advance to stage 3. Defaults to 100.
+
+_ambient OR ambient: Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade.
+
+_color: RGB value for ambient light color (default is 0 0 0).
+
+gravity: gravity of level (default is normal gravity: 800).
+
+gridsize: granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps.
+
+_blocksize: q3map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Default _blocksize value is 1024. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density.
+
+-------- Q3MAP2 KEYS --------
+_minlight: Minimum light value, levelwide. Uses the _color key to set color. Does not add unlike ambient.
+
+_minvertexlight: Minimum vertex lighting, levelwide.
+
+_mingridlight: Minimum lightgrid (dynamic entity lighting) levelwide.
+
+_keeplights: Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase.
+
+_noshadersun: Ignore q3map_sun/sun directives in sky shaders and ONLY use entity sun lights.
+
+_farplanedist: Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps.
+
+_foghull: Shader to use for "fog hull." Foghull shader should be a sky shader. Omit the "textures/" prefix.
+
+_lightmapscale: Floating point value scaling the resolution of lightmaps on brushes/patches in the world. Can be overridden in func_group (or other entities) (default 1.0).
+
+_cs OR _castshadows: Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world.
+
+_rs OR _receiveshadows: Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities.
+
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. Overridable in entities.
+
+-------- Q3MAP2 TERRAIN KEYS --------
+_indexmap OR alphamap: Path/name for the art file used to guide the mapping of textures on the terrain surface.
+
+_layers OR layers: Integer value is the number unique root shaders that will be use on the terrain.
+
+_shader OR shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+*/
+
diff --git a/src/cgame/cg_animmapobj.c b/src/cgame/cg_animmapobj.c
index c7218b00..46b64073 100644
--- a/src/cgame/cg_animmapobj.c
+++ b/src/cgame/cg_animmapobj.c
@@ -74,7 +74,7 @@ static void CG_RunAMOLerpFrame( lerpFrame_t *lf )
if( anim->reversed )
lf->frame = anim->firstFrame + anim->numFrames - 1 - f;
- else if( anim->flipflop && f>=anim->numFrames )
+ else if( anim->flipflop && f >= anim->numFrames )
lf->frame = anim->firstFrame + anim->numFrames - 1 - ( f % anim->numFrames );
else
lf->frame = anim->firstFrame + f;
@@ -103,6 +103,125 @@ static void CG_RunAMOLerpFrame( lerpFrame_t *lf )
/*
===============
+CG_DoorAnimation
+===============
+*/
+static void CG_DoorAnimation( centity_t *cent, int *old, int *now, float *backLerp )
+{
+ CG_RunAMOLerpFrame( &cent->lerpFrame );
+
+ *old = cent->lerpFrame.oldFrame;
+ *now = cent->lerpFrame.frame;
+ *backLerp = cent->lerpFrame.backlerp;
+}
+
+
+/*
+===============
+CG_ModelDoor
+===============
+*/
+void CG_ModelDoor( centity_t *cent )
+{
+ refEntity_t ent;
+ entityState_t *es;
+ vec3_t mins, maxs, size;
+ vec3_t cMins, cMaxs, displacement;
+ vec3_t bMaxs, scale;
+ animation_t anim;
+ lerpFrame_t *lf = &cent->lerpFrame;
+
+
+ es = &cent->currentState;
+
+ if( !es->modelindex )
+ return;
+
+ //create the render entity
+ memset( &ent, 0, sizeof( ent ) );
+ VectorCopy( cent->lerpOrigin, ent.origin );
+ VectorCopy( cent->lerpOrigin, ent.oldorigin );
+ AnglesToAxis( cent->lerpAngles, ent.axis );
+
+ ent.renderfx = RF_NOSHADOW;
+
+ //add the door model
+ ent.skinNum = 0;
+ ent.hModel = cgs.gameModels[ es->modelindex ];
+
+ if( es->eFlags & EF_NO_AUTO_SCALE )
+ {
+ //this door is being manually scaled
+ VectorScale( ent.axis[ 0 ], es->origin2[ 0 ], ent.axis[ 0 ] );
+ VectorScale( ent.axis[ 1 ], es->origin2[ 1 ], ent.axis[ 1 ] );
+ VectorScale( ent.axis[ 2 ], es->origin2[ 2 ], ent.axis[ 2 ] );
+ ent.nonNormalizedAxes = qtrue;
+ }
+ else
+ {
+ //automatically scale and position the model
+ trap_R_ModelBounds( ent.hModel, mins, maxs );
+
+ //average of mins and maxs
+ VectorSubtract( maxs, mins, size );
+ VectorScale( size, 0.5f, size );
+
+ //set corrected bbox
+ VectorCopy( size, cMaxs );
+ VectorNegate( size, cMins );
+
+ //calculate the displacement needed to align
+ //the model with the centre of the brush
+ VectorSubtract( cMins, mins, displacement );
+
+ VectorCopy( es->angles2, bMaxs );
+
+ //scale the axis and displacement by the ratio
+ //of the brush to corrected bboxes
+ scale[ 0 ] = bMaxs[ 0 ] / cMaxs[ 0 ];
+ scale[ 1 ] = bMaxs[ 1 ] / cMaxs[ 1 ];
+ scale[ 2 ] = bMaxs[ 2 ] / cMaxs[ 2 ];
+
+ VectorScale( ent.axis[ 0 ], scale[ 0 ], ent.axis[ 0 ] );
+ VectorScale( ent.axis[ 1 ], scale[ 1 ], ent.axis[ 1 ] );
+ VectorScale( ent.axis[ 2 ], scale[ 2 ], ent.axis[ 2 ] );
+ ent.nonNormalizedAxes = qtrue;
+
+ displacement[ 0 ] = scale[ 0 ] * displacement[ 0 ];
+ displacement[ 1 ] = scale[ 1 ] * displacement[ 1 ];
+ displacement[ 2 ] = scale[ 2 ] * displacement[ 2 ];
+
+ VectorAdd( ent.origin, displacement, ent.origin );
+ VectorAdd( ent.oldorigin, displacement, ent.oldorigin );
+ }
+
+ //setup animation
+ anim.firstFrame = es->powerups;
+ anim.numFrames = es->weapon;
+ anim.reversed = !es->legsAnim;
+ anim.flipflop = qfalse;
+ anim.loopFrames = 0;
+ anim.frameLerp = 1000 / es->torsoAnim;
+ anim.initialLerp = 1000 / es->torsoAnim;
+
+ //door changed state
+ if( es->legsAnim != cent->doorState )
+ {
+ lf->animationTime = lf->frameTime + anim.initialLerp;
+ cent->doorState = es->legsAnim;
+ }
+
+ lf->animation = &anim;
+
+ //run animation
+ CG_DoorAnimation( cent, &ent.oldframe, &ent.frame, &ent.backlerp );
+
+ trap_R_AddRefEntityToScene( &ent );
+}
+
+
+/*
+===============
CG_AMOAnimation
===============
*/
@@ -144,7 +263,7 @@ void CG_animMapObj( centity_t *cent )
es = &cent->currentState;
// if set to invisible, skip
- if ( !es->modelindex || ( es->eFlags & EF_NODRAW ) )
+ if( !es->modelindex || ( es->eFlags & EF_NODRAW ) )
return;
memset( &ent, 0, sizeof( ent ) );
diff --git a/src/cgame/cg_ents.c b/src/cgame/cg_ents.c
index 9128597c..6a1fa650 100644
--- a/src/cgame/cg_ents.c
+++ b/src/cgame/cg_ents.c
@@ -438,8 +438,8 @@ static void CG_Mover( centity_t *cent )
// create the render entity
memset( &ent, 0, sizeof( ent ) );
- VectorCopy( cent->lerpOrigin, ent.origin);
- VectorCopy( cent->lerpOrigin, ent.oldorigin);
+ VectorCopy( cent->lerpOrigin, ent.origin );
+ VectorCopy( cent->lerpOrigin, ent.oldorigin );
AnglesToAxis( cent->lerpAngles, ent.axis );
ent.renderfx = RF_NOSHADOW;
@@ -929,6 +929,10 @@ static void CG_AddCEntity( centity_t *cent )
CG_animMapObj( cent );
break;
+ case ET_MODELDOOR:
+ CG_ModelDoor( cent );
+ break;
+
case ET_LIGHTFLARE:
CG_LightFlare( cent );
break;
diff --git a/src/cgame/cg_local.h b/src/cgame/cg_local.h
index df0366d0..941c3d31 100644
--- a/src/cgame/cg_local.h
+++ b/src/cgame/cg_local.h
@@ -223,6 +223,8 @@ typedef struct centity_s
float lastFlareRatio; //caching of likely flare ratio
int lastFlareTime; //last time flare was visible/occluded
qboolean flareStatus; //flare is visble?
+
+ qboolean doorState;
} centity_t;
@@ -1283,6 +1285,7 @@ void CG_LaunchSprite( const vec3_t p, const vec3_t vel, const vec3_t acce
// cg_animmapobj.c
//
void CG_animMapObj( centity_t *cent );
+void CG_ModelDoor( centity_t *cent );
//
// cg_predict.c
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index d0ae824f..a519595f 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -281,6 +281,7 @@ typedef enum
#define EF_TEAMVOTED 0x00008000 // already cast a vote
#define EF_OVERDRAW_OFF 0x00010000 // TA: disable overdraw protection on sprites
#define EF_REAL_LIGHT 0x00020000 // TA: light sprites according to ambient light
+#define EF_NO_AUTO_SCALE 0x00040000 // TA: don't auto scale model doors
typedef enum
{
@@ -1132,7 +1133,6 @@ typedef enum
ET_ITEM,
ET_BUILDABLE, //TA: buildable type
- ET_CREEP, //TA: creep type
ET_MISSILE,
ET_MOVER,
@@ -1147,6 +1147,7 @@ typedef enum
ET_CORPSE,
ET_SPRITER,
ET_ANIMMAPOBJ,
+ ET_MODELDOOR,
ET_LIGHTFLARE,
ET_EVENTS // any of the EV_* events can be added freestanding
diff --git a/src/game/g_local.h b/src/game/g_local.h
index 708a0c45..e65d1e69 100644
--- a/src/game/g_local.h
+++ b/src/game/g_local.h
@@ -54,7 +54,12 @@ typedef enum
ROTATOR_POS1,
ROTATOR_POS2,
ROTATOR_1TO2,
- ROTATOR_2TO1
+ ROTATOR_2TO1,
+
+ MODEL_POS1,
+ MODEL_POS2,
+ MODEL_1TO2,
+ MODEL_2TO1
} moverState_t;
#define SP_PODIUM_MODEL "models/mapobjects/podium/podium4.md3"
@@ -112,6 +117,7 @@ struct gentity_s
gentity_t *prevTrain;
vec3_t pos1, pos2;
float rotatorAngle;
+ gentity_t *clipBrush; //TA: clipping brush for model doors
char *message;
diff --git a/src/game/g_misc.c b/src/game/g_misc.c
index d8055f3a..fa7d660f 100644
--- a/src/game/g_misc.c
+++ b/src/game/g_misc.c
@@ -23,15 +23,6 @@ Used to group brushes together just for editor convenience. They are turned int
*/
-/*QUAKED info_camp (0 0.5 0) (-4 -4 -4) (4 4 4)
-Used as a positional target for calculations in the utilities (spotlights, etc), but removed during gameplay.
-*/
-void SP_info_camp( gentity_t *self )
-{
- G_SetOrigin( self, self->s.origin );
-}
-
-
/*QUAKED info_null (0 0.5 0) (-4 -4 -4) (4 4 4)
Used as a positional target for calculations in the utilities (spotlights, etc), but removed during gameplay.
*/
@@ -246,111 +237,6 @@ void SP_misc_portal_camera( gentity_t *ent )
/*
======================================================================
- SHOOTERS
-
-======================================================================
-*/
-
-void Use_Shooter( gentity_t *ent, gentity_t *other, gentity_t *activator )
-{
- vec3_t dir;
- float deg;
- vec3_t up, right;
-
- // see if we have a target
- if( ent->enemy )
- {
- VectorSubtract( ent->enemy->r.currentOrigin, ent->s.origin, dir );
- VectorNormalize( dir );
- }
- else
- VectorCopy( ent->movedir, dir );
-
- // randomize a bit
- PerpendicularVector( up, dir );
- CrossProduct( up, dir, right );
-
- deg = crandom( ) * ent->random;
- VectorMA( dir, deg, up, dir );
-
- deg = crandom( ) * ent->random;
- VectorMA( dir, deg, right, dir );
-
- VectorNormalize( dir );
-
-/* switch ( ent->s.weapon ) {
- case WP_GRENADE_LAUNCHER:
- fire_grenade( ent, ent->s.origin, dir );
- break;
- case WP_ROCKET_LAUNCHER:
- fire_rocket( ent, ent->s.origin, dir );
- break;
- }*/
-
- G_AddEvent( ent, EV_FIRE_WEAPON, 0 );
-}
-
-
-static void InitShooter_Finish( gentity_t *ent )
-{
- ent->enemy = G_PickTarget( ent->target );
- ent->think = 0;
- ent->nextthink = 0;
-}
-
-void InitShooter( gentity_t *ent, int weapon )
-{
- ent->use = Use_Shooter;
- ent->s.weapon = weapon;
-
- /*RegisterItem( BG_FindItemForWeapon( weapon ) );*/
-
- G_SetMovedir( ent->s.angles, ent->movedir );
-
- if( !ent->random )
- ent->random = 1.0;
-
- ent->random = sin( M_PI * ent->random / 180 );
- // target might be a moving object, so we can't set movedir for it
- if( ent->target )
- {
- ent->think = InitShooter_Finish;
- ent->nextthink = level.time + 500;
- }
-
- trap_LinkEntity( ent );
-}
-
-/*QUAKED shooter_rocket (1 0 0) (-16 -16 -16) (16 16 16)
-Fires at either the target or the current direction.
-"random" the number of degrees of deviance from the taget. (1.0 default)
-*/
-void SP_shooter_rocket( gentity_t *ent )
-{
- //InitShooter( ent, WP_ROCKET_LAUNCHER );
-}
-
-/*QUAKED shooter_plasma (1 0 0) (-16 -16 -16) (16 16 16)
-Fires at either the target or the current direction.
-"random" is the number of degrees of deviance from the taget. (1.0 default)
-*/
-void SP_shooter_plasma( gentity_t *ent )
-{
- //InitShooter( ent, WP_PLASMAGUN);
-}
-
-/*QUAKED shooter_grenade (1 0 0) (-16 -16 -16) (16 16 16)
-Fires at either the target or the current direction.
-"random" is the number of degrees of deviance from the taget. (1.0 default)
-*/
-void SP_shooter_grenade( gentity_t *ent )
-{
- //InitShooter( ent, WP_GRENADE_LAUNCHER);
-}
-
-/*
-======================================================================
-
NEAT EFFECTS AND STUFF FOR TREMULOUS
======================================================================
diff --git a/src/game/g_mover.c b/src/game/g_mover.c
index 787af188..ea7f40be 100644
--- a/src/game/g_mover.c
+++ b/src/game/g_mover.c
@@ -431,7 +431,8 @@ void G_RunMover( gentity_t *ent )
return;
// if stationary at one of the positions, don't move anything
- if( ent->s.pos.trType != TR_STATIONARY || ent->s.apos.trType != TR_STATIONARY )
+ if( ( ent->s.pos.trType != TR_STATIONARY || ent->s.apos.trType != TR_STATIONARY ) &&
+ ent->moverState < MODEL_POS1 ) //yuck yuck hack
G_MoverTeam( ent );
// check think function
@@ -516,10 +517,20 @@ void SetMoverState( gentity_t *ent, moverState_t moverState, int time )
VectorScale( delta, f, ent->s.apos.trDelta );
ent->s.apos.trType = TR_LINEAR_STOP;
break;
+
+ case MODEL_POS1:
+ break;
+
+ case MODEL_POS2:
+ break;
}
- BG_EvaluateTrajectory( &ent->s.pos, level.time, ent->r.currentOrigin );
- BG_EvaluateTrajectory( &ent->s.apos, level.time, ent->r.currentAngles );
+ if( moverState >= MOVER_POS1 && moverState <= MOVER_2TO1 )
+ BG_EvaluateTrajectory( &ent->s.pos, level.time, ent->r.currentOrigin );
+
+ if( moverState >= ROTATOR_POS1 && moverState <= ROTATOR_2TO1 )
+ BG_EvaluateTrajectory( &ent->s.apos, level.time, ent->r.currentAngles );
+
trap_LinkEntity( ent );
}
@@ -579,6 +590,114 @@ void ReturnToApos1( gentity_t *ent )
/*
================
+Think_ClosedModelDoor
+================
+*/
+void Think_ClosedModelDoor( gentity_t *ent )
+{
+ // play sound
+ if( ent->soundPos1 )
+ G_AddEvent( ent, EV_GENERAL_SOUND, ent->soundPos1 );
+
+ // close areaportals
+ if( ent->teammaster == ent || !ent->teammaster )
+ trap_AdjustAreaPortalState( ent, qfalse );
+
+ ent->moverState = MODEL_POS1;
+}
+
+
+/*
+================
+Think_CloseModelDoor
+================
+*/
+void Think_CloseModelDoor( gentity_t *ent )
+{
+ int entityList[ MAX_GENTITIES ];
+ int numEntities, i;
+ gentity_t *clipBrush = ent->clipBrush;
+ gentity_t *check;
+ qboolean canClose = qtrue;
+
+ numEntities = trap_EntitiesInBox( clipBrush->r.absmin, clipBrush->r.absmax, entityList, MAX_GENTITIES );
+
+ //set brush solid
+ trap_LinkEntity( ent->clipBrush );
+
+ //see if any solid entities are inside the door
+ for( i = 0; i < numEntities; i++ )
+ {
+ check = &g_entities[ entityList[ i ] ];
+
+ //only test items and players
+ if( check->s.eType != ET_ITEM && check->s.eType != ET_BUILDABLE &&
+ check->s.eType != ET_CORPSE && check->s.eType != ET_PLAYER &&
+ !check->physicsObject )
+ continue;
+
+ //test is this entity collides with this door
+ if( G_TestEntityPosition( check ) )
+ canClose = qfalse;
+ }
+
+ //something is blocking this door
+ if( !canClose )
+ {
+ //set brush non-solid
+ trap_UnlinkEntity( ent->clipBrush );
+
+ ent->nextthink = level.time + ent->wait;
+ return;
+ }
+
+ //toggle door state
+ ent->s.legsAnim = qfalse;
+
+ // play sound
+ if( ent->sound2to1 )
+ G_AddEvent( ent, EV_GENERAL_SOUND, ent->sound2to1 );
+
+ ent->moverState = MODEL_2TO1;
+
+ ent->think = Think_ClosedModelDoor;
+ ent->nextthink = level.time + ent->speed;
+}
+
+
+/*
+================
+Think_OpenModelDoor
+================
+*/
+void Think_OpenModelDoor( gentity_t *ent )
+{
+ //set brush non-solid
+ trap_UnlinkEntity( ent->clipBrush );
+
+ // looping sound
+ ent->s.loopSound = ent->soundLoop;
+
+ // starting sound
+ if( ent->soundPos2 )
+ G_AddEvent( ent, EV_GENERAL_SOUND, ent->soundPos2 );
+
+ ent->moverState = MODEL_POS2;
+
+ // return to pos1 after a delay
+ ent->think = Think_CloseModelDoor;
+ ent->nextthink = level.time + ent->wait;
+
+ // fire targets
+ if( !ent->activator )
+ ent->activator = ent;
+
+ G_UseTargets( ent, ent->activator );
+}
+
+
+/*
+================
Reached_BinaryMover
================
*/
@@ -691,20 +810,15 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator )
// open areaportal
if( ent->teammaster == ent || !ent->teammaster )
trap_AdjustAreaPortalState( ent, qtrue );
-
- return;
}
-
- // if all the way up, just delay before coming down
- if( ent->moverState == MOVER_POS2 )
+ else if( ent->moverState == MOVER_POS2 )
{
+ // if all the way up, just delay before coming down
ent->nextthink = level.time + ent->wait;
- return;
}
-
- // only partway down before reversing
- if( ent->moverState == MOVER_2TO1 )
+ else if( ent->moverState == MOVER_2TO1 )
{
+ // only partway down before reversing
total = ent->s.pos.trDuration;
partial = level.time - ent->s.pos.trTime;
@@ -715,13 +829,10 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator )
if( ent->sound1to2 )
G_AddEvent( ent, EV_GENERAL_SOUND, ent->sound1to2 );
-
- return;
}
-
- // only partway up before reversing
- if( ent->moverState == MOVER_1TO2 )
+ else if( ent->moverState == MOVER_1TO2 )
{
+ // only partway up before reversing
total = ent->s.pos.trDuration;
partial = level.time - ent->s.pos.trTime;
@@ -732,11 +843,8 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator )
if( ent->sound2to1 )
G_AddEvent( ent, EV_GENERAL_SOUND, ent->sound2to1 );
-
- return;
}
-
- if( ent->moverState == ROTATOR_POS1 )
+ else if( ent->moverState == ROTATOR_POS1 )
{
// start moving 50 msec later, becase if this was player
// triggered, level.time hasn't been advanced yet
@@ -752,20 +860,15 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator )
// open areaportal
if( ent->teammaster == ent || !ent->teammaster )
trap_AdjustAreaPortalState( ent, qtrue );
-
- return;
}
-
- // if all the way up, just delay before coming down
- if( ent->moverState == ROTATOR_POS2 )
+ else if( ent->moverState == ROTATOR_POS2 )
{
+ // if all the way up, just delay before coming down
ent->nextthink = level.time + ent->wait;
- return;
}
-
- // only partway down before reversing
- if( ent->moverState == ROTATOR_2TO1 )
+ else if( ent->moverState == ROTATOR_2TO1 )
{
+ // only partway down before reversing
total = ent->s.apos.trDuration;
partial = level.time - ent->s.apos.trTime;
@@ -776,13 +879,10 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator )
if( ent->sound1to2 )
G_AddEvent( ent, EV_GENERAL_SOUND, ent->sound1to2 );
-
- return;
}
-
- // only partway up before reversing
- if( ent->moverState == ROTATOR_1TO2 )
+ else if( ent->moverState == ROTATOR_1TO2 )
{
+ // only partway up before reversing
total = ent->s.apos.trDuration;
partial = level.time - ent->s.apos.trTime;
@@ -793,8 +893,32 @@ void Use_BinaryMover( gentity_t *ent, gentity_t *other, gentity_t *activator )
if( ent->sound2to1 )
G_AddEvent( ent, EV_GENERAL_SOUND, ent->sound2to1 );
+ }
+ else if( ent->moverState == MODEL_POS1 )
+ {
+ //toggle door state
+ ent->s.legsAnim = qtrue;
- return;
+ ent->think = Think_OpenModelDoor;
+ ent->nextthink = level.time + ent->speed;
+
+ // starting sound
+ if( ent->sound1to2 )
+ G_AddEvent( ent, EV_GENERAL_SOUND, ent->sound1to2 );
+
+ // looping sound
+ ent->s.loopSound = ent->soundLoop;
+
+ // open areaportal
+ if( ent->teammaster == ent || !ent->teammaster )
+ trap_AdjustAreaPortalState( ent, qtrue );
+
+ ent->moverState = MODEL_1TO2;
+ }
+ else if( ent->moverState == MODEL_POS2 )
+ {
+ // if all the way up, just delay before coming down
+ ent->nextthink = level.time + ent->wait;
}
}
@@ -869,7 +993,7 @@ void InitMover( gentity_t *ent )
// calculate time to reach second position from speed
VectorSubtract( ent->pos2, ent->pos1, move );
distance = VectorLength( move );
- if( ! ent->speed )
+ if( !ent->speed )
ent->speed = 100;
VectorScale( move, ent->speed, ent->s.pos.trDelta );
@@ -1055,7 +1179,11 @@ static void manualDoorTriggerSpectator( gentity_t *door, gentity_t *player )
//don't skip a door that is already open
if( door->moverState == MOVER_1TO2 ||
- door->moverState == MOVER_POS2 )
+ door->moverState == MOVER_POS2 ||
+ door->moverState == ROTATOR_1TO2 ||
+ door->moverState == ROTATOR_POS2 ||
+ door->moverState == MODEL_1TO2 ||
+ door->moverState == MODEL_POS2 )
return;
// find the bounds of everything on the team
@@ -1222,7 +1350,8 @@ void Think_SpawnNewDoorTrigger( gentity_t *ent )
other->count = best;
trap_LinkEntity( other );
- MatchTeam( ent, ent->moverState, level.time );
+ if( ent->moverState < MODEL_POS1 )
+ MatchTeam( ent, ent->moverState, level.time );
}
void Think_MatchTeam( gentity_t *ent )
@@ -1447,6 +1576,170 @@ void SP_func_door_rotating( gentity_t *ent )
}
}
+/*QUAKED func_door_model (0 .5 .8) ? START_OPEN
+TOGGLE wait in both the start and end states for a trigger event.
+START_OPEN the door to moves to its destination when spawned, and operate in reverse. It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
+NOMONSTER monsters will not trigger this door
+
+"model2" .md3 model to also draw
+"targetname" if set, no touch field will be spawned and a remote button or trigger field activates the door.
+"speed" movement speed (100 default)
+"wait" wait before returning (3 default, -1 = never return)
+"color" constantLight color
+"light" constantLight radius
+"health" if set, the door must be shot open
+*/
+void SP_func_door_model( gentity_t *ent )
+{
+ vec3_t abs_movedir;
+ float distance;
+ vec3_t size;
+ char *s;
+ float light;
+ vec3_t color;
+ qboolean lightSet, colorSet;
+ char *sound;
+ gentity_t *door;
+ gentity_t *clipBrush;
+ vec3_t scale;
+ qboolean dontAutoScale = qfalse;
+
+ G_SpawnString( "sound2to1", "sound/movers/doors/dr1_strt.wav", &s );
+ ent->sound2to1 = G_SoundIndex( s );
+ G_SpawnString( "sound1to2", "sound/movers/doors/dr1_strt.wav", &s );
+ ent->sound1to2 = G_SoundIndex( s );
+
+ G_SpawnString( "soundPos2", "sound/movers/doors/dr1_end.wav", &s );
+ ent->soundPos2 = G_SoundIndex( s );
+ G_SpawnString( "soundPos1", "sound/movers/doors/dr1_end.wav", &s );
+ ent->soundPos1 = G_SoundIndex( s );
+
+ //default speed of 100ms
+ if( !ent->speed )
+ ent->speed = 200;
+
+ //default wait of 2 seconds
+ if( ent->wait <= 0 )
+ ent->wait = 2;
+
+ ent->wait *= 1000;
+
+ //brush model
+ clipBrush = ent->clipBrush = G_Spawn( );
+ clipBrush->model = ent->model;
+ trap_SetBrushModel( clipBrush, clipBrush->model );
+ clipBrush->s.eType = ET_INVISIBLE;
+ trap_LinkEntity( clipBrush );
+
+ //copy the bounds back from the clipBrush so the
+ //triggers can be made
+ VectorCopy( clipBrush->r.absmin, ent->r.absmin );
+ VectorCopy( clipBrush->r.absmax, ent->r.absmax );
+ VectorCopy( clipBrush->r.mins, ent->r.mins );
+ VectorCopy( clipBrush->r.maxs, ent->r.maxs );
+
+ if( !VectorLength( ent->s.origin ) )
+ {
+ //calculate the centre of the brush
+ VectorSubtract( ent->r.maxs, ent->r.mins, size );
+ VectorScale( size, 0.5f, size );
+ VectorAdd( size, ent->r.mins, ent->s.origin );
+ }
+ else
+ dontAutoScale = qtrue;
+
+ if( G_SpawnVector( "scale", "1 1 1", scale ) )
+ dontAutoScale = qtrue;
+
+ //let the client know the scaling of the model
+ VectorCopy( scale, ent->s.origin2 );
+
+ //let the client know the bounds of the brush
+ VectorCopy( size, ent->s.angles2 );
+
+ if( dontAutoScale )
+ ent->s.eFlags |= EF_NO_AUTO_SCALE;
+
+ // if the "model2" key is set, use a seperate model
+ // for drawing, but clip against the brushes
+ if( !ent->model2 )
+ G_Printf( S_COLOR_YELLOW "WARNING: func_door_model %d spawned with no model2 key\n", ent->s.number );
+ else
+ ent->s.modelindex = G_ModelIndex( ent->model2 );
+
+ // if the "loopsound" key is set, use a constant looping sound when moving
+ if( G_SpawnString( "noise", "100", &sound ) )
+ ent->s.loopSound = G_SoundIndex( sound );
+
+ // if the "color" or "light" keys are set, setup constantLight
+ lightSet = G_SpawnFloat( "light", "100", &light );
+ colorSet = G_SpawnVector( "color", "1 1 1", color );
+
+ if( lightSet || colorSet )
+ {
+ int r, g, b, i;
+
+ r = color[ 0 ] * 255;
+ if( r > 255 )
+ r = 255;
+
+ g = color[ 1 ] * 255;
+ if( g > 255 )
+ g = 255;
+
+ b = color[ 2 ] * 255;
+ if( b > 255 )
+ b = 255;
+
+ i = light / 4;
+ if( i > 255 )
+ i = 255;
+
+ ent->s.constantLight = r | ( g << 8 ) | ( b << 16 ) | ( i << 24 );
+ }
+
+ ent->use = Use_BinaryMover;
+
+ ent->moverState = MODEL_POS1;
+ ent->s.eType = ET_MODELDOOR;
+ VectorCopy( ent->s.origin, ent->s.pos.trBase );
+ ent->s.pos.trTime = 0;
+ ent->s.pos.trDuration = 0;
+ VectorClear( ent->s.pos.trDelta );
+ VectorCopy( ent->s.angles, ent->s.apos.trBase );
+ ent->s.apos.trTime = 0;
+ ent->s.apos.trDuration = 0;
+ VectorClear( ent->s.apos.trDelta );
+
+ ent->s.powerups = (int)ent->animation[ 0 ]; //first frame
+ ent->s.weapon = abs( (int)ent->animation[ 1 ] ); //number of frames
+
+ //must be at least one frame -- mapper has forgotten animation key
+ if( ent->s.weapon == 0 )
+ ent->s.weapon = 1;
+
+ ent->s.torsoAnim = ent->s.weapon * ( 1000.0f / ent->speed ); //framerate
+
+ trap_LinkEntity( ent );
+
+ ent->s.pos.trType = TR_STATIONARY;
+
+ if( !( ent->flags & FL_TEAMSLAVE ) )
+ {
+ int health;
+
+ G_SpawnInt( "health", "0", &health );
+ if( health )
+ ent->takedamage = qtrue;
+
+ if( !( ent->targetname || health ) )
+ {
+ ent->nextthink = level.time + FRAMETIME;
+ ent->think = Think_SpawnNewDoorTrigger;
+ }
+ }
+}
+
/*
===============================================================================
diff --git a/src/game/g_spawn.c b/src/game/g_spawn.c
index 71197932..f5790024 100644
--- a/src/game/g_spawn.c
+++ b/src/game/g_spawn.c
@@ -169,6 +169,7 @@ void SP_func_pendulum( gentity_t *ent );
void SP_func_button( gentity_t *ent );
void SP_func_door( gentity_t *ent );
void SP_func_door_rotating( gentity_t *ent ); //TA
+void SP_func_door_model( gentity_t *ent ); //TA
void SP_func_train( gentity_t *ent );
void SP_func_timer( gentity_t *self);
@@ -178,12 +179,9 @@ void SP_trigger_push( gentity_t *ent );
void SP_trigger_teleport( gentity_t *ent );
void SP_trigger_hurt( gentity_t *ent );
-void SP_target_remove_powerups( gentity_t *ent );
-void SP_target_give( gentity_t *ent );
void SP_target_delay( gentity_t *ent );
void SP_target_speaker( gentity_t *ent );
void SP_target_print( gentity_t *ent );
-void SP_target_laser( gentity_t *self);
void SP_target_character( gentity_t *ent );
void SP_target_score( gentity_t *ent );
void SP_target_teleporter( gentity_t *ent );
@@ -227,12 +225,12 @@ spawn_t spawns[ ] =
{"info_null", SP_info_null},
{"info_notnull", SP_info_notnull}, // use target_position instead
- {"info_camp", SP_info_camp},
{"func_plat", SP_func_plat},
{"func_button", SP_func_button},
{"func_door", SP_func_door},
{"func_door_rotating", SP_func_door_rotating}, //TA
+ {"func_door_model", SP_func_door_model}, //TA
{"func_static", SP_func_static},
{"func_rotating", SP_func_rotating},
{"func_bobbing", SP_func_bobbing},
@@ -254,12 +252,9 @@ spawn_t spawns[ ] =
// targets perform no action by themselves, but must be triggered
// by another entity
- {"target_give", SP_target_give},
- {"target_remove_powerups", SP_target_remove_powerups},
{"target_delay", SP_target_delay},
{"target_speaker", SP_target_speaker},
{"target_print", SP_target_print},
- {"target_laser", SP_target_laser},
{"target_score", SP_target_score},
{"target_teleporter", SP_target_teleporter},
{"target_relay", SP_target_relay},
@@ -276,10 +271,6 @@ spawn_t spawns[ ] =
{"misc_portal_surface", SP_misc_portal_surface},
{"misc_portal_camera", SP_misc_portal_camera},
- {"shooter_rocket", SP_shooter_rocket},
- {"shooter_grenade", SP_shooter_grenade},
- {"shooter_plasma", SP_shooter_plasma},
-
{"misc_spriter", SP_misc_spriter},
{"misc_anim_model", SP_misc_anim_model},
{"misc_light_flare", SP_misc_light_flare},
@@ -309,14 +300,16 @@ qboolean G_CallSpawn( gentity_t *ent )
//check buildable spawn functions
if( ( buildable = BG_FindBuildNumForEntityName( ent->classname ) ) != BA_NONE )
{
- if( BG_FindStagesForBuildable( buildable, 1 ) )
+ /*if( BG_FindStagesForBuildable( buildable, 1 ) )*/
+ if( qtrue )
{
G_SpawnBuildable( ent, buildable );
return qtrue;
}
else
{
- G_Printf( "G_CallSpawn: buildable disabled\n" );
+ G_Printf( S_COLOR_YELLOW "WARNING: %s not allowed in stage 1\n",
+ BG_FindHumanNameForBuildable( buildable ) );
return qfalse;
}
}
diff --git a/src/game/g_target.c b/src/game/g_target.c
index 9022eb06..ee2d096f 100644
--- a/src/game/g_target.c
+++ b/src/game/g_target.c
@@ -18,60 +18,6 @@
//==========================================================
-/*QUAKED target_give (1 0 0) (-8 -8 -8) (8 8 8)
-Gives the activator all the items pointed to.
-*/
-void Use_Target_Give( gentity_t *ent, gentity_t *other, gentity_t *activator )
-{
- //TA: FIXME: well, this is fucked
- gentity_t *t;
- trace_t trace;
-
- if( !activator->client )
- return;
-
- if( !ent->target )
- return;
-
- memset( &trace, 0, sizeof( trace ) );
- t = NULL;
-
- while( ( t = G_Find( t, FOFS( targetname ), ent->target ) ) != NULL )
- {
- // make sure it isn't going to respawn or show any events
- t->nextthink = 0;
- trap_UnlinkEntity( t );
- }
-}
-
-void SP_target_give( gentity_t *ent )
-{
- ent->use = Use_Target_Give;
-}
-
-
-//==========================================================
-
-/*QUAKED target_remove_powerups (1 0 0) (-8 -8 -8) (8 8 8)
-takes away all the activators powerups.
-Used to drop flight powerups into death puts.
-*/
-void Use_target_remove_powerups( gentity_t *ent, gentity_t *other, gentity_t *activator )
-{
- if( !activator->client )
- return;
-
- memset( activator->client->ps.powerups, 0, sizeof( activator->client->ps.powerups ) );
-}
-
-void SP_target_remove_powerups( gentity_t *ent )
-{
- ent->use = Use_target_remove_powerups;
-}
-
-
-//==========================================================
-
/*QUAKED target_delay (1 0 0) (-8 -8 -8) (8 8 8)
"wait" seconds to pause before firing targets.
"random" delay variance, total delay = delay +/- random seconds
@@ -124,7 +70,7 @@ void SP_target_score( gentity_t *ent )
//==========================================================
-/*QUAKED target_print (1 0 0) (-8 -8 -8) (8 8 8) redteam blueteam private
+/*QUAKED target_print (1 0 0) (-8 -8 -8) (8 8 8) humanteam alienteam private
"message" text to print
If "private", only the activator gets the message. If no checks, all clients get the message.
*/
@@ -237,108 +183,6 @@ void SP_target_speaker( gentity_t *ent )
trap_LinkEntity( ent );
}
-
-
-//==========================================================
-
-/*QUAKED target_laser (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON
-When triggered, fires a laser. You can either set a target or a direction.
-*/
-void target_laser_think( gentity_t *self )
-{
- vec3_t end;
- trace_t tr;
- vec3_t point;
-
- // if pointed at another entity, set movedir to point at it
- if( self->enemy )
- {
- VectorMA( self->enemy->s.origin, 0.5, self->enemy->r.mins, point );
- VectorMA( point, 0.5, self->enemy->r.maxs, point );
- VectorSubtract( point, self->s.origin, self->movedir );
- VectorNormalize( self->movedir );
- }
-
- // fire forward and see what we hit
- VectorMA( self->s.origin, 2048, self->movedir, end );
-
- trap_Trace( &tr, self->s.origin, NULL, NULL, end, self->s.number,
- CONTENTS_SOLID | CONTENTS_BODY | CONTENTS_CORPSE );
-
- if( tr.entityNum )
- {
- // hurt it if we can
- G_Damage( &g_entities[ tr.entityNum ], self, self->activator, self->movedir,
- tr.endpos, self->damage, DAMAGE_NO_KNOCKBACK, MOD_TARGET_LASER );
- }
-
- VectorCopy( tr.endpos, self->s.origin2 );
-
- trap_LinkEntity( self );
- self->nextthink = level.time + FRAMETIME;
-}
-
-void target_laser_on( gentity_t *self )
-{
- if( !self->activator )
- self->activator = self;
-
- target_laser_think( self );
-}
-
-void target_laser_off( gentity_t *self )
-{
- trap_UnlinkEntity( self );
- self->nextthink = 0;
-}
-
-void target_laser_use( gentity_t *self, gentity_t *other, gentity_t *activator )
-{
- self->activator = activator;
- if( self->nextthink > 0 )
- target_laser_off( self );
- else
- target_laser_on( self );
-}
-
-void target_laser_start( gentity_t *self )
-{
- gentity_t *ent;
-
- self->s.eType = ET_BEAM;
-
- if( self->target )
- {
- ent = G_Find( NULL, FOFS( targetname ), self->target );
-
- if( !ent )
- G_Printf ( "%s at %s: %s is a bad target\n", self->classname, vtos( self->s.origin ), self->target );
-
- self->enemy = ent;
- }
- else
- G_SetMovedir( self->s.angles, self->movedir );
-
- self->use = target_laser_use;
- self->think = target_laser_think;
-
- if( !self->damage )
- self->damage = 1;
-
- if( self->spawnflags & 1 )
- target_laser_on( self );
- else
- target_laser_off( self );
-}
-
-void SP_target_laser( gentity_t *self )
-{
- // let everything else get spawned before we start firing
- self->think = target_laser_start;
- self->nextthink = level.time + FRAMETIME;
-}
-
-
//==========================================================
void target_teleporter_use( gentity_t *self, gentity_t *other, gentity_t *activator )
@@ -399,7 +243,7 @@ void target_relay_use( gentity_t *self, gentity_t *other, gentity_t *activator )
return;
}
- G_UseTargets (self, activator);
+ G_UseTargets( self, activator );
}
void SP_target_relay( gentity_t *self )