summaryrefslogtreecommitdiff
path: root/mod
diff options
context:
space:
mode:
Diffstat (limited to 'mod')
-rw-r--r--mod/COPYING81
-rw-r--r--mod/Makefile343
-rw-r--r--mod/depend604
-rw-r--r--mod/entities.def1674
-rw-r--r--mod/manual.lyx7086
5 files changed, 9788 insertions, 0 deletions
diff --git a/mod/COPYING b/mod/COPYING
new file mode 100644
index 00000000..c77e9697
--- /dev/null
+++ b/mod/COPYING
@@ -0,0 +1,81 @@
+Open-Source Mod License v1.0
+ A mod (modification) may be placed under this license by or with written
+ permission of the original author of a mod. Once placed under this license,
+ users of the mod must accept terms (a) through (c), and distributors of the
+ mod must accept terms (d) and (f). To submit code to be added to the official
+ version, programmers must accept terms (g) and (h). By using source code taken
+ or derived from a mod under the OSML in a non-derivative mod, you must accept
+ terms (i) and (j). Derivative works of the open-source mod must also be placed
+ under this license.
+
+Terms of Use
+ By installing, compiling, or using in any way a mod placed under the
+ Open-Source Mod License (OSML), you, the end user, agree to all of the
+ following terms of this agreement:
+
+ a. You are granted the right to use, modify for personal use, and study all
+ binaries and source code part of the open-source mod. However, to distribute
+ binaries and/or source code which constitute part of the mod placed under
+ the OSML, this license requires you to agree additionally to terms (d)
+ through (f).
+
+ b. The mod authors, contributors, and distributors expressly disclaim any
+ warranty, expressed or implied, and accepts no responsibility for the
+ quality or reliability of any of its binary or source code components. They
+ accept no responsibility for any damages to you, your computer, or any other
+ property, person, or corporation which results, directly or indirectly, from
+ the downloading of, installation of, compilation of, and use of the mod.
+
+ c. You accept the right of server operators to disallow service to you or
+ any other parties with or without justification. The mod authors and
+ distributors are in no way obligated to resolve disputes between users and
+ server administrators, but may choose to do so at their option.
+
+Terms of Distribution
+ By distributing in any way the mod placed under this license, you, the end
+ use, agree to these additional terms.
+
+ d. Any distributions of the mod must be done purely on a non-commercial
+ basis. All persons receiving said distributions must agree to terms (a)
+ through (c) of this license, and must receive a copy of this license
+ unmodified and in full.
+
+ e. Any distributions of the open-source mod must include or make available
+ all source code. Where said distributions are modified, the source code must
+ be the modified source code which was used to produce the software being
+ distributed, and changes made must be clearly labelled, and it must be
+ clearly labelled as being modified. In cases where source code cannot be
+ included due to constraints of media capacity, a written offer must be
+ included redeemable for said source code.
+
+ f. Redistributed versions must retain all notices of copyright, license,
+ and authorship as they were when received.
+
+Terms of Contribution to Official Version
+ By contributing code to the official version of the mod, you agree to these
+ additional terms.
+
+ g. Changes must be clearly labeled in code, along with the name or nickname
+ of the person who made them, and what the purpose of the changes is.
+
+ h. Code taken from tutorials not written by the contributing person must
+ state clearly that it was taken from a tutorial and who the author of the
+ tutorial is.
+
+Terms For Use of Code in Non-Derivative Works
+ By using computer code taken or derived directly or indirectly from a mod
+ under the OSML in a mod not derived from the mod the source code originated
+ from, you agree to these additional terms.
+
+ i. You may only use code taken from or derived from a mod under the OSML in
+ mods also distributed under the OSML.
+
+ j. You must credit the mod from which source code was taken or derived
+ either in the contributors list (providing the source mod's name and URL),
+ in credits embedded in the mod, or in the mod's readme or manual.
+
+ In the event of a conflict between this license and the license, disclaimers
+ in code, etc of the game being modified, the conflicting parts of this license
+ do not apply. Amendments to this license may be made in the form of future
+ versions. The users, distributors, and contributors may optionally accept such
+ amendments, but are not required to do so.
diff --git a/mod/Makefile b/mod/Makefile
new file mode 100644
index 00000000..ddfb4ce3
--- /dev/null
+++ b/mod/Makefile
@@ -0,0 +1,343 @@
+#
+# Quake3 Unix Makefile
+#
+# GNU Make required
+#
+
+
+# --Makefile variables--
+MOUNT_DIR=./src
+Q3A_DIR=/home/tma/.q3a
+MOD_DIR=tremulous-dev
+
+# --object list--
+GOBJ = \
+ $(GDIRNAME)/g_main.o \
+ $(GDIRNAME)/bg_misc.o \
+ $(GDIRNAME)/bg_pmove.o \
+ $(GDIRNAME)/bg_slidemove.o \
+ $(GDIRNAME)/g_mem.o \
+ $(GDIRNAME)/q_math.o \
+ $(GDIRNAME)/q_shared.o \
+ $(GDIRNAME)/g_active.o \
+ $(GDIRNAME)/g_client.o \
+ $(GDIRNAME)/g_cmds.o \
+ $(GDIRNAME)/g_combat.o \
+ $(GDIRNAME)/g_physics.o \
+ $(GDIRNAME)/g_buildable.o \
+ $(GDIRNAME)/g_misc.o \
+ $(GDIRNAME)/g_missile.o \
+ $(GDIRNAME)/g_mover.o \
+ $(GDIRNAME)/g_session.o \
+ $(GDIRNAME)/g_spawn.o \
+ $(GDIRNAME)/g_svcmds.o \
+ $(GDIRNAME)/g_target.o \
+ $(GDIRNAME)/g_team.o \
+ $(GDIRNAME)/g_trigger.o \
+ $(GDIRNAME)/g_utils.o \
+ $(GDIRNAME)/g_maprotation.o \
+ $(GDIRNAME)/g_ptr.o \
+ $(GDIRNAME)/g_weapon.o
+
+CGOBJ = \
+ $(CGDIRNAME)/cg_main.o \
+ $(GDIRNAME)/bg_misc.o \
+ $(GDIRNAME)/bg_pmove.o \
+ $(GDIRNAME)/bg_slidemove.o \
+ $(GDIRNAME)/q_math.o \
+ $(GDIRNAME)/q_shared.o \
+ $(CGDIRNAME)/cg_consolecmds.o \
+ $(CGDIRNAME)/cg_buildable.o \
+ $(CGDIRNAME)/cg_animation.o \
+ $(CGDIRNAME)/cg_animmapobj.o \
+ $(CGDIRNAME)/cg_draw.o \
+ $(CGDIRNAME)/cg_drawtools.o \
+ $(CGDIRNAME)/cg_ents.o \
+ $(CGDIRNAME)/cg_event.o \
+ $(CGDIRNAME)/cg_marks.o \
+ $(CGDIRNAME)/cg_players.o \
+ $(CGDIRNAME)/cg_playerstate.o \
+ $(CGDIRNAME)/cg_predict.o \
+ $(CGDIRNAME)/cg_servercmds.o \
+ $(CGDIRNAME)/cg_snapshot.o \
+ $(CGDIRNAME)/cg_view.o \
+ $(CGDIRNAME)/cg_weapons.o \
+ $(CGDIRNAME)/cg_mem.o \
+ $(CGDIRNAME)/cg_scanner.o \
+ $(CGDIRNAME)/cg_attachment.o \
+ $(CGDIRNAME)/cg_trails.o \
+ $(CGDIRNAME)/cg_particles.o \
+ $(CGDIRNAME)/cg_ptr.o \
+ $(UIDIRNAME)/ui_shared.o
+
+UIOBJ = \
+ $(UIDIRNAME)/ui_main.o \
+ $(GDIRNAME)/bg_misc.o \
+ $(GDIRNAME)/q_math.o \
+ $(GDIRNAME)/q_shared.o \
+ $(UIDIRNAME)/ui_atoms.o \
+ $(UIDIRNAME)/ui_players.o \
+ $(UIDIRNAME)/ui_shared.o \
+ $(UIDIRNAME)/ui_gameinfo.o
+
+
+
+
+
+
+# --You shouldn't have to touch anything below here--
+
+# --general variables--
+PLATFORM=$(shell uname|tr A-Z a-z)
+PLATFORM_RELEASE=$(shell uname -r)
+
+BD=debug$(ARCH)$(GLIBC)
+BR=release$(ARCH)$(GLIBC)
+BQ=qvm
+
+GDIRNAME=game
+CGDIRNAME=cgame
+UIDIRNAME=ui
+GDIR=$(MOUNT_DIR)/$(GDIRNAME)
+CGDIR=$(MOUNT_DIR)/$(CGDIRNAME)
+UIDIR=$(MOUNT_DIR)/$(UIDIRNAME)
+
+
+# --gcc config--
+ifneq (,$(findstring libc6,$(shell if [ -e /lib/libc.so.6* ];then echo libc6;fi)))
+GLIBC=-glibc
+else
+GLIBC=
+endif #libc6 test
+
+
+ifneq (,$(findstring alpha,$(shell uname -m)))
+ARCH=axp
+RPMARCH=alpha
+VENDOR=dec
+else #default to i386
+ARCH=i386
+RPMARCH=i386
+VENDOR=unknown
+endif #alpha test
+
+BASE_CFLAGS=-pipe -Wall -Werror
+DEBUG_CFLAGS=$(BASE_CFLAGS) -g -pg
+DEPEND_CFLAGS= -MM
+
+ifeq ($(ARCH),axp)
+CC=pgcc
+RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations
+else
+NEWPGCC=/usr/local/gcc-2.95.2/bin/gcc
+CC=$(shell if [ -f $(NEWPGCC) ]; then echo $(NEWPGCC); else echo gcc; fi )
+RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG -O6 -mcpu=pentiumpro -march=pentium -fomit-frame-pointer -pipe -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
+endif
+
+LIBEXT=a
+
+SHLIBEXT=so
+SHLIBCFLAGS=-fPIC
+SHLIBLDFLAGS=-fPIC -shared
+
+ARFLAGS=ar rv
+RANLIB=ranlib
+
+THREAD_LDFLAGS=-lpthread
+LDFLAGS=-ldl -lm
+
+SED=sed
+
+
+
+# --qvm building config--
+LCC=q3lcc
+LCC_FLAGS=-DQ3_VM -S -Wf-target=bytecode
+LCC_INCLUDES=-I$(CGDIR) -I$(GDIR) -I$(UIDIR)
+
+Q3ASM=q3asm
+Q3ASM_FLAGS=
+
+
+# --source level flags--
+
+SLF_GAME_FLAGS=-D__GAME__
+SLF_CGAME_FLAGS=-D__CGAME__
+SLF_UI_FLAGS=-D__UI__
+
+
+# --main targets--
+all: release debug qvm
+
+release: ctags makedirs $(BR)/cgame$(ARCH).$(SHLIBEXT) $(BR)/qagame$(ARCH).$(SHLIBEXT) $(BR)/ui$(ARCH).$(SHLIBEXT)
+
+debug: ctags makedirs $(BD)/cgame$(ARCH).$(SHLIBEXT) $(BD)/qagame$(ARCH).$(SHLIBEXT) $(BD)/ui$(ARCH).$(SHLIBEXT)
+
+qvm: ctags makedirs $(BQ)/cgame.qvm $(BQ)/qagame.qvm $(BQ)/ui.qvm
+
+makedirs:
+ @if [ ! -d $(BR) ];then mkdir $(BR);fi
+ @if [ ! -d $(BR)/$(GDIRNAME) ];then mkdir $(BR)/$(GDIRNAME);fi
+ @if [ ! -d $(BR)/$(CGDIRNAME) ];then mkdir $(BR)/$(CGDIRNAME);fi
+ @if [ ! -d $(BR)/$(UIDIRNAME) ];then mkdir $(BR)/$(UIDIRNAME);fi
+ @if [ ! -d $(BD) ];then mkdir $(BD);fi
+ @if [ ! -d $(BD)/$(GDIRNAME) ];then mkdir $(BD)/$(GDIRNAME);fi
+ @if [ ! -d $(BD)/$(CGDIRNAME) ];then mkdir $(BD)/$(CGDIRNAME);fi
+ @if [ ! -d $(BD)/$(UIDIRNAME) ];then mkdir $(BD)/$(UIDIRNAME);fi
+ @if [ ! -d $(BQ) ];then mkdir $(BQ);fi
+ @if [ ! -d $(BQ)/$(GDIRNAME) ];then mkdir $(BQ)/$(GDIRNAME);fi
+ @if [ ! -d $(BQ)/$(CGDIRNAME) ];then mkdir $(BQ)/$(CGDIRNAME);fi
+ @if [ ! -d $(BQ)/$(UIDIRNAME) ];then mkdir $(BQ)/$(UIDIRNAME);fi
+
+ctags:
+ ctags -f tags -R src/* ui/menudef.h
+
+# --object lists for each build type--
+GQVMOBJ = $(GOBJ:%.o=$(BQ)/%.asm)
+GROBJ = $(GOBJ:%.o=$(BR)/%.o) $(BR)/$(GDIRNAME)/g_syscalls.o
+GDOBJ = $(GOBJ:%.o=$(BD)/%.o) $(BD)/$(GDIRNAME)/g_syscalls.o
+
+CGQVMOBJ = $(CGOBJ:%.o=$(BQ)/%.asm)
+CGROBJ = $(CGOBJ:%.o=$(BR)/%.o) $(BR)/$(CGDIRNAME)/cg_syscalls.o
+CGDOBJ = $(CGOBJ:%.o=$(BD)/%.o) $(BD)/$(CGDIRNAME)/cg_syscalls.o
+
+UIQVMOBJ = $(UIOBJ:%.o=$(BQ)/%.asm)
+UIROBJ = $(UIOBJ:%.o=$(BR)/%.o) $(BR)/$(UIDIRNAME)/ui_syscalls.o
+UIDOBJ = $(UIOBJ:%.o=$(BD)/%.o) $(BD)/$(UIDIRNAME)/ui_syscalls.o
+
+
+
+# --rules for the shared objects--
+#release qagamei386.so
+$(BR)/qagame$(ARCH).$(SHLIBEXT) : $(GROBJ)
+ $(CC) $(RELEASE_CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GROBJ)
+
+#debug qagamei386.so
+$(BD)/qagame$(ARCH).$(SHLIBEXT) : $(GDOBJ)
+ $(CC) $(DEBUG_CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GDOBJ)
+
+#qvm qagame.qvm
+$(BQ)/qagame.qvm : $(GQVMOBJ) $(BQ)/$(GDIRNAME)/bg_lib.asm
+ $(Q3ASM) $(Q3ASM_FLAGS) -o $@ $(GQVMOBJ) $(GDIR)/g_syscalls.asm $(BQ)/$(GDIRNAME)/bg_lib.asm
+
+
+#release cgamei386.so
+$(BR)/cgame$(ARCH).$(SHLIBEXT) : $(CGROBJ)
+ $(CC) $(RELEASE_CFLAGS) $(SHLIBLDFLAGS) -o $@ $(CGROBJ)
+
+#debug cgamei386.so
+$(BD)/cgame$(ARCH).$(SHLIBEXT) : $(CGDOBJ)
+ $(CC) $(DEBUG_CFLAGS) $(SHLIBLDFLAGS) -o $@ $(CGDOBJ)
+
+#qvm cgame.qvm
+$(BQ)/cgame.qvm : $(CGQVMOBJ) $(BQ)/$(GDIRNAME)/bg_lib.asm
+ $(Q3ASM) $(Q3ASM_FLAGS) -o $@ $(CGQVMOBJ) $(CGDIR)/cg_syscalls.asm $(BQ)/$(GDIRNAME)/bg_lib.asm
+
+
+#release uii386.so
+$(BR)/ui$(ARCH).$(SHLIBEXT) : $(UIROBJ)
+ $(CC) $(RELEASE_CFLAGS) $(SHLIBLDFLAGS) -o $@ $(UIROBJ)
+
+#debug cgamei386.so
+$(BD)/ui$(ARCH).$(SHLIBEXT) : $(UIDOBJ)
+ $(CC) $(DEBUG_CFLAGS) $(SHLIBLDFLAGS) -o $@ $(UIDOBJ)
+
+#qvm ui.qvm
+$(BQ)/ui.qvm: $(UIQVMOBJ) $(BQ)/$(GDIRNAME)/bg_lib.asm
+ $(Q3ASM) $(Q3ASM_FLAGS) -o $@ $(UIQVMOBJ) $(UIDIR)/ui_syscalls.asm $(BQ)/$(GDIRNAME)/bg_lib.asm
+
+
+
+# --rules for the objects--
+#release g_*.o
+$(BR)/$(GDIRNAME)/%.o: $(GDIR)/%.c
+ $(CC) $(RELEASE_CFLAGS) $(SLF_GAME_FLAGS) $(SHLIBCFLAGS) -o $@ -c $<
+
+#debug g_*.o
+$(BD)/$(GDIRNAME)/%.o: $(GDIR)/%.c
+ $(CC) $(DEBUG_CFLAGS) $(SLF_GAME_FLAGS) $(SHLIBCFLAGS) -o $@ -c $<
+
+#qvm g_*.asm
+$(BQ)/$(GDIRNAME)/%.asm: $(GDIR)/%.c
+ $(LCC) $(LCC_FLAGS) $(SLF_GAME_FLAGS) $(LCC_INCLUDES) -o $@ $<
+
+#release cg_*.o
+$(BR)/$(CGDIRNAME)/%.o: $(CGDIR)/%.c
+ $(CC) $(RELEASE_CFLAGS) $(SLF_CGAME_FLAGS) $(SHLIBCFLAGS) -o $@ -c $<
+
+#debug cg_*.o
+$(BD)/$(CGDIRNAME)/%.o: $(CGDIR)/%.c
+ $(CC) $(DEBUG_CFLAGS) $(SLF_CGAME_FLAGS) $(SHLIBCFLAGS) -o $@ -c $<
+
+#qvm cg_*.asm
+$(BQ)/$(CGDIRNAME)/%.asm: $(CGDIR)/%.c
+ $(LCC) $(LCC_FLAGS) $(SLF_CGAME_FLAGS) $(LCC_INCLUDES) -o $@ $<
+
+#release ui_*.o
+$(BR)/$(UIDIRNAME)/%.o: $(UIDIR)/%.c
+ $(CC) $(RELEASE_CFLAGS) $(SLF_UI_FLAGS) $(SHLIBCFLAGS) -o $@ -c $<
+
+#debug ui_*.o
+$(BD)/$(UIDIRNAME)/%.o: $(UIDIR)/%.c
+ $(CC) $(DEBUG_CFLAGS) $(SLF_UI_FLAGS) $(SHLIBCFLAGS) -o $@ -c $<
+
+#qvm ui_*.asm
+$(BQ)/$(UIDIRNAME)/%.asm: $(UIDIR)/%.c
+ $(LCC) $(LCC_FLAGS) $(SLF_UI_FLAGS) $(LCC_INCLUDES) -o $@ $<
+
+
+# --cleaning rules--
+clean:clean-debug clean-release clean-qvm
+
+clean-debug:
+ rm -f $(BD)/$(GDIRNAME)/*.o
+ rm -f $(BD)/$(CGDIRNAME)/*.o
+ rm -f $(BD)/$(UIDIRNAME)/*.o
+
+clean-release:
+ rm -f $(BR)/$(GDIRNAME)/*.o
+ rm -f $(BR)/$(CGDIRNAME)/*.o
+ rm -f $(BR)/$(UIDIRNAME)/*.o
+
+clean-qvm:
+ rm -f $(BQ)/$(GDIRNAME)/*.asm
+ rm -f $(BQ)/$(CGDIRNAME)/*.asm
+ rm -f $(BQ)/$(UIDIRNAME)/*.asm
+
+
+
+# --installing rules--
+install-release:release
+ @if [ ! -d $(Q3A_DIR) ];then mkdir $(Q3A_DIR);fi
+ @if [ ! -d $(Q3A_DIR)/$(MOD_DIR) ];then mkdir $(Q3A_DIR)/$(MOD_DIR);fi
+ cp $(BR)/*.so $(Q3A_DIR)/$(MOD_DIR)
+
+install-debug:debug
+ @if [ ! -d $(Q3A_DIR) ];then mkdir $(Q3A_DIR);fi
+ @if [ ! -d $(Q3A_DIR)/$(MOD_DIR) ];then mkdir $(Q3A_DIR)/$(MOD_DIR);fi
+ cp $(BD)/*.so $(Q3A_DIR)/$(MOD_DIR)
+
+install-qvm:qvm
+ @if [ ! -d $(Q3A_DIR) ];then mkdir $(Q3A_DIR);fi
+ @if [ ! -d $(Q3A_DIR)/$(MOD_DIR) ];then mkdir $(Q3A_DIR)/$(MOD_DIR);fi
+ @if [ ! -d $(Q3A_DIR)/$(MOD_DIR)/vm ];then mkdir $(Q3A_DIR)/$(MOD_DIR)/vm;fi
+ cp $(BQ)/*.qvm $(Q3A_DIR)/$(MOD_DIR)/vm
+
+
+# --dependency rules--
+DEPEND_FILE=depend
+
+depend:
+ echo > $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(GDIR)/*.c | $(SED) -e 's/^\(.*\.o\)/$(BR)\/$(GDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(GDIR)/*.c | $(SED) -e 's/^\(.*\.o\)/$(BD)\/$(GDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(GDIR)/*.c | $(SED) -e 's/\.o/.asm/g' -e 's/^\(.*\.asm\)/$(BQ)\/$(GDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(CGDIR)/*.c | $(SED) -e 's/^\(.*\.o\)/$(BR)\/$(CGDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(CGDIR)/*.c | $(SED) -e 's/^\(.*\.o\)/$(BD)\/$(CGDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(CGDIR)/*.c | $(SED) -e 's/\.o/.asm/g' -e 's/^\(.*\.asm\)/$(BQ)\/$(CGDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(UIDIR)/*.c | $(SED) -e 's/^\(.*\.o\)/$(BR)\/$(UIDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(UIDIR)/*.c | $(SED) -e 's/^\(.*\.o\)/$(BD)\/$(UIDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+ $(CC) $(DEPEND_CFLAGS) $(LCC_INCLUDES) $(UIDIR)/*.c | $(SED) -e 's/\.o/.asm/g' -e 's/^\(.*\.asm\)/$(BQ)\/$(UIDIRNAME)\/\1/g' >> $(DEPEND_FILE)
+
+include $(DEPEND_FILE)
+
diff --git a/mod/depend b/mod/depend
new file mode 100644
index 00000000..230aaa93
--- /dev/null
+++ b/mod/depend
@@ -0,0 +1,604 @@
+
+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_maprotation.o: src/game/g_maprotation.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_ptr.o: src/game/g_ptr.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_maprotation.o: src/game/g_maprotation.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_ptr.o: src/game/g_ptr.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_maprotation.asm: src/game/g_maprotation.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_ptr.asm: src/game/g_ptr.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_attachment.o: src/cgame/cg_attachment.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_particles.o: src/cgame/cg_particles.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_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_ptr.o: src/cgame/cg_ptr.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_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_attachment.o: src/cgame/cg_attachment.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_particles.o: src/cgame/cg_particles.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_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_ptr.o: src/cgame/cg_ptr.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_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_attachment.asm: src/cgame/cg_attachment.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_particles.asm: src/cgame/cg_particles.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_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_ptr.asm: src/cgame/cg_ptr.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_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/mod/entities.def b/mod/entities.def
new file mode 100644
index 00000000..bbe33af9
--- /dev/null
+++ b/mod/entities.def
@@ -0,0 +1,1674 @@
+// 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) ?
+A model based door entity. By default, the door will activate when player walks close to it. The opening and closing of the door is provided by an animation in the model itself.
+
+-------- 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).
+
+modelOrigin: means of setting the origin of the model.
+
+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 --------
+Every func_door_model needs its model to be positioned, scaled and orientated using the modelOrigin, scale and angle/angles keys repsectively.
+*/
+
+//=============================================================================
+
+/*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) ? START_OFF BLOCK_STOPS
+Trains are moving solids that follow a string of path_corner entities. Trains in Tremulous are less basic than in Q3A, 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).
+
+-------- SPAWNFLAGS --------
+START_OFF: the train will spawn in the off state
+
+BLOCK_STOPS: with this set a train simply stops if blocked, instead of killing.
+
+-------- 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 instakill anything in their path by default.
+2. Trains cannot emit sound.
+3. When BLOCK_STOPS is set, trains cannot be 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_particle_system (1 .5 .25) (-8 -8 -8) (8 8 8) SPAWN_DISABLED
+A particle system entity.
+
+-------- KEYS --------
+psName: The name of the particle system to spawn at this entity.
+
+-------- SPAWNFLAGS --------
+SPAWN_DISABLED: Spawn disabled.
+
+-------- NOTES --------
+Triggering this entity toggles it on and off.
+*/
+
+//=============================================================================
+/*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_rumble (1 0 0) (-8 -8 -8) (8 8 8)
+When triggered, this initiates a level-wide rumble effect. All players are affected.
+
+-------- KEYS --------
+speed: severity of the quake (default: 100)
+
+count: duration of the quake (default: 10)
+*/
+
+/*QUAKED target_alien_win (1 0 0) (-8 -8 -8) (8 8 8)
+When triggered, this causes an unconditional win for the alien team.
+*/
+
+/*QUAKED target_human_win (1 0 0) (-8 -8 -8) (8 8 8)
+When triggered, this causes an unconditional win for the human team.
+*/
+
+/*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/telenode/telenode.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/arm/arm.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/eggpod/eggpod.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/overmind/overmind.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_heal (.5 .5 .5) ? START_OFF SLOW
+Any player that touches this will be healed. It does heal points of healage each server frame. Targeting the trigger will toggle its effects.
+
+-------- SPAWNFLAGS --------
+START_OFF: needs to be triggered (toggle) to activate.
+
+SLOW: changes the heal rate to once per second.
+
+-------- KEYS --------
+heal: Health points to heal (default 5)
+*/
+
+/*QUAKED trigger_ammo (.5 .5 .5) ? SLOW NOENERGY NOCASE
+Any player that touches this will have the ammo for his held weapon restored. It gives ammo in chunks reflected by the key "ammo" each server frame.
+
+-------- SPAWNFLAGS --------
+SLOW: changes the ammo rate to once per second.
+
+NOENERGY: disables this entity for energy weapons.
+
+NOCASE: disables this entity for case based weapons.
+
+-------- KEYS --------
+ammo: Amount of ammo to give (default 1)
+*/
+
+/*QUAKED trigger_gravity (.5 .5 .5) ?
+The gravity (for players) within this trigger is determined by the gravity key. Targetting this entity toggles its effects.
+NOT THROUGHLY TESTED: please report whether or not this works for you.
+
+-------- KEYS --------
+gravity: The gravity within this trigger (default 800).
+*/
+
+/*QUAKED trigger_buildable (.5 .5 .5) ?
+Triggered by a buildable or subset of buildables. If no buildables key is supplied every buildable will trigger this entity.
+NOT THROUGHLY TESTED: please report whether or not this works for you.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+buildables: a comma delimited list of buildables which will trigger this entity.
+
+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).
+*/
+
+/*QUAKED trigger_class (.5 .5 .5) ?
+Triggered by a specific class or subset of classes. If no classes key is supplied every class will trigger this entity.
+NOT THROUGHLY TESTED: please report whether or not this works for you.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+classes: a comma delimited list of classes which will trigger this entity.
+
+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).
+*/
+
+/*QUAKED trigger_equipment (.5 .5 .5) ?
+Triggered by a player carrying some item (weapon or upgrade) or subset of items. If no equipment key is supplied every human will trigger this entity.
+NOT THROUGHLY TESTED: please report whether or not this works for you.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+equipment: a comma delimited list of equipment which will trigger this entity.
+
+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).
+*/
+
+//=============================================================================
+
+/*QUAKED trigger_stage (.5 .5 .5) (-8 -8 -8) (8 8 8)
+Fires its targets when the team key reaches stage key.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+team: the team which triggers this entity; 1 for aliens, 2 for humans
+
+stage: the stage at which this entity is triggered; 1 for stage 2, 2 for stage 3
+*/
+
+//=============================================================================
+
+/*QUAKED trigger_win (.5 .5 .5) (-8 -8 -8) (8 8 8)
+Fires its targets when the team key wins.
+
+-------- KEYS --------
+target: this points to the entity to activate.
+
+team: the team which triggers this entity; 1 for aliens, 2 for humans
+*/
+
+//=============================================================================
+
+/*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 overmind. 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.
+
+disabledEquipment: A comma delimited list of human weapons or upgrades to disable for this map.
+disabledClasses: A comma delimited list of alien classes to disable for this map.
+disabledBuildables: A comma delimited list of buildables to disable for this map.
+
+_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/mod/manual.lyx b/mod/manual.lyx
new file mode 100644
index 00000000..30cf4830
--- /dev/null
+++ b/mod/manual.lyx
@@ -0,0 +1,7086 @@
+#LyX 1.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 221
+\textclass article
+\language english
+\inputencoding auto
+\fontscheme pslatex
+\graphics default
+\paperfontsize default
+\spacing single
+\papersize a4paper
+\paperpackage a4
+\use_geometry 1
+\use_amsmath 0
+\use_natbib 0
+\use_numerical_citations 0
+\paperorientation portrait
+\leftmargin 2cm
+\topmargin 2cm
+\rightmargin 2cm
+\bottommargin 2cm
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation skip
+\defskip medskip
+\quotes_language english
+\quotes_times 2
+\papercolumns 1
+\papersides 1
+\paperpagestyle empty
+
+\layout Title
+
+TREMULOUS 1.0.2
+\layout Standard
+
+
+\begin_inset LatexCommand \tableofcontents{}
+
+\end_inset
+
+
+\layout Section
+
+Introduction
+\layout Standard
+
+Tremulous is a first person shooter featuring two opposing teams, humans
+ and aliens.
+ Both teams are able to build structures such as spawn points, which are
+ vital to their victory.
+ The goal of Tremulous is to eliminate the opposing team and all of their
+ spawn points.
+\layout Standard
+
+Each team in Tremulous differs fundamentally from the other.
+ The aliens are class based, with two classes initially available: the alien
+ team's builder, known as the Granger, and the Dretch, the weakest offensive
+ alien.
+ The aliens are awarded frags for killing their foes which may be used to
+ evolve into stronger classes, capable of greater and more varied maneuvers.
+ In contrast the human team is upgrade based, receiving credits for kills
+ that may be exchanged at an Armoury structure for new weapons, armour and
+ equipment.
+ Two such upgrades are available for free: a rifle and a construction kit,
+ used for building structures.
+\layout Standard
+
+During a game of Tremulous, each team occupies one of three stages of developmen
+t.
+ These stages are reached by accruing more than a specific total number
+ of kills by the whole team.
+ Each new stage unlocks new classes, upgrades and buildable structures.
+ If one team reaches a stage significantly earlier than the other team it
+ stands a better chance of defeating the opposing team.
+\layout Standard
+
+Section
+\begin_inset LatexCommand \ref{sec:Game}
+
+\end_inset
+
+ details the content of the game including the various controls that are
+ used to play.
+ Section
+\begin_inset LatexCommand \ref{sec:Technical}
+
+\end_inset
+
+ describes some technical aspects of how Tremulous works.
+ It is not necessary to read this section in order to play the game.
+\layout Section
+
+
+\begin_inset LatexCommand \label{sec:Game}
+
+\end_inset
+
+Game
+\layout Subsection
+
+Aliens
+\layout Standard
+
+Two classes are available upon joining the alien team: the Dretch and the
+ Granger.
+ As you gain kills, you may use your earned frags to evolve into higher
+ classes with the
+\noun on
+Use Structure/Evolve
+\noun default
+ button.
+ The alien team is mostly limited to melee attacks and must use stealth
+ and speed to defeat the longer range humans.
+ All aliens automatically regenerate health at a slow rate.
+\layout Subsubsection
+
+Classes
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Granger
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename granger.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="3">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="left" valignment="top" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Build
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Destroy Structure
+\end_inset
+</cell>
+<cell multicolumn="1" alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Deconstruct Structure
+\noun default
+ on an alien structure
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Granger
+\emph default
+ is the alien team's builder class.
+
+\noun on
+Primary Attack
+\noun default
+ will bring up a menu of structures available for building.
+ After selecting a structure a glowing outline of it will appear.
+ When this outline is green you can use the
+\noun on
+Primary Attack
+\noun default
+ button to place it.
+ The outline changes to red when the structure cannot be placed in its current
+ location.
+ To cancel placing the structure press the
+\noun on
+Secondary Attack
+\noun default
+ button.
+ To remove a placed structure use the
+\noun on
+Deconstruct Structure
+\noun default
+ button.
+ After building or deconstructing a structure a timer will appear in the
+ lower right corner of the screen.
+ Until this timer expires you cannot create or destroy another building.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Advanced Granger
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename agranger.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="6" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Build
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Slash
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Secondary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Lob Projectile
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Activate Upgrade
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Destroy Structure
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Deconstruct Structure
+\noun default
+on an alien structure
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wallwalk
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Crouch
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Advanced Granger
+\emph default
+ becomes available at no cost when the alien team reaches stage two.
+ In addition to the
+\emph on
+Granger's
+\emph default
+ abilities, the
+\emph on
+Advanced Granger
+\emph default
+ can move faster, jump higher, walk on walls and attack with a slash or
+ by lobbing small projectiles with the
+\noun on
+Activate Upgrade
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Dretch
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename dretch.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bite
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Touch a human
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wallwalk
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Crouch
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Dretch
+\emph default
+ is the alien team's weakest offensive class.
+ Its only attack is to make forward contact with a human player or human
+ defensive structure.
+ The amount of damage dealt to a human depends on what armour they were
+ wearing and where they were hit, with headshots resulting in the most damage.
+
+\emph on
+Dretches
+\emph default
+ can also wallwalk; toggle it by pressing the
+\noun on
+Crouch
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Basilisk
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename basilisk.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 1
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Slash
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Grab
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Touch a human
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wallwalk
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Crouch
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Basilisk
+\emph default
+ attacks by using the
+\noun on
+Primary Attack
+\noun default
+ button.
+ It can also grab human players by making contact with them at close range.
+ This freezes humans in place and, if they're not wearing a
+\emph on
+Battlesuit
+\emph default
+, restricts their ability to turn.
+ The
+\emph on
+Basilisk
+\emph default
+ can also wallwalk; toggle it by pressing the
+\noun on
+Crouch
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Advanced Basilisk
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename abasilisk.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 2
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="5" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Slash
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Gas
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Secondary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Grab
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Touch a human
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wallwalk
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Crouch
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+In addition to the
+\emph on
+Basilisk's
+\emph default
+ abilities, the
+\emph on
+Advanced Basilisk
+\emph default
+ can spray a cloud of noxious gas that will disorient and poison affected
+ human players.
+ Humans equipped with a
+\emph on
+Battlesuit
+\emph default
+ are immune to gas.
+ Use this ability with the
+\noun on
+Secondary Attack
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Marauder
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename marauder.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 2
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bite
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wall Jump
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Jump into a wall while holding down
+\noun on
+Jump
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Marauder
+\emph default
+ attacks with the
+\noun on
+Primary Attack
+\noun default
+ button and has the ability to rebound off walls.
+ To use this ability jump towards a wall and hold down the
+\noun on
+Jump
+\noun default
+ button.
+ When you hit the wall you will be propelled upward and in the direction
+ opposite of the wall.
+ As long as you continue hitting walls you will continue wall jumping.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Advanced Marauder
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename amarauder.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 3
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bite
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Zap
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Secondary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Wall Jump
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Jump into a wall while holding down
+\noun on
+Jump
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+In addition to the
+\emph on
+Marauder's
+\emph default
+ abilities, the
+\emph on
+Advanced Marauder
+\emph default
+ can use a chain lightning attack.
+ To use this, press the
+\noun on
+Secondary Attack
+\noun default
+ button while aiming at a nearby human or human structure.
+ If it connects the electric shock will jump to up to two other nearby targets
+ doing full damage to the first, half damage to the second and one third
+ damage to the third over a period of one second provided the attacker stays
+ within range.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Dragoon
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename dragoon.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 3
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bite
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pounce
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hold down
+\noun on
+Secondary Attack
+\noun default
+ briefly then release
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Dragoon
+\emph default
+ attacks by either biting with the
+\noun on
+Primary Attack
+\noun default
+ button or pouncing with
+\noun on
+Secondary Attack
+\noun default
+.
+ To pounce, first hold down the
+\noun on
+Secondary Attack
+\noun default
+ button to charge up, then release to leap forward and damage anything that
+ gets in the way.
+ While charging you will be unable to jump normally and will move at a reduced
+ rate.
+ Aim up a little to fly further when pouncing.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Advanced Dragoon
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename adragoon.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 4
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Bite
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Pounce
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hold down
+\noun on
+Secondary Attack
+\noun default
+ briefly then release
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Shoot Barb
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Activate Upgrade
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+In addition to the
+\emph on
+Dragoon's
+\emph default
+ abilities, the
+\emph on
+Advanced Dragoon
+\emph default
+ can fire long ranged spiked barbs with the
+\noun on
+Activate Upgrade
+\noun default
+ button.
+ Up to three of these barbs may be held in reserve and they regenerate automatic
+ally over time.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Tyrant
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename tyrant.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 5
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="4" columns="2">
+<features>
+<column alignment="left" valignment="top" rightline="true" width="0">
+<column alignment="left" valignment="top" width="0">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Ability
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Control
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Slash
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Trample
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Hold down
+\noun on
+Secondary Attack
+\noun default
+ briefly then release
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Healing Aura
+\end_inset
+</cell>
+<cell alignment="left" valignment="top" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stand close to teammates to increase their regeneration rate
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Tyrant
+\emph default
+ attacks by either slashing with the
+\noun on
+Primary Attack
+\noun default
+ button or trampling with
+\noun on
+Secondary Attack
+\noun default
+.
+ To trample, first hold down the
+\noun on
+Secondary Attack
+\noun default
+ button while moving forward to charge up, then release to run at high speed
+ for a short time, damaging anything in your path.
+ The
+\emph on
+Tyrant
+\emph default
+ also has a healing aura that will double the regeneration rate of lower
+ class aliens within range.
+\layout Subsubsection
+
+Structures
+\layout Standard
+
+All alien structures must be built in proximity to an
+\emph on
+Egg
+\emph default
+ or an
+\emph on
+Overmind
+\emph default
+.
+ All alien structures require the presence of an
+\emph on
+ Overmind
+\emph default
+ to function.
+ All alien structures create `creep' around their bases that slows human
+ movement.
+ When destroyed, alien structures explode in a shower of acid harmful to
+ humans.
+ All structures may be built on level floors and when
+\emph on
+Advanced Grangers
+\emph default
+ become available some structures may also be built on walls and ceilings.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Overmind
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename overmind.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Overmind
+\emph default
+ is the collective consciousness that controls all the alien structures
+ in a map and enables aliens to evolve into higher forms.
+ There can only be one
+\emph on
+Overmind
+\emph default
+ and it must be alive before any other structures can be built.
+ If the
+\emph on
+Overmind
+\emph default
+ is destroyed then all structures besides
+\emph on
+Eggs
+\emph default
+ cease to function and every alien loses the ability to upgrade their class
+ until a new
+\emph on
+Overmind
+\emph default
+ is built.
+ The
+\emph on
+Overmind
+\emph default
+ has a limited amount of `sentience' which is distributed amongst every
+ other structure built, each having its own cost.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Egg
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename egg.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 10
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Egg
+\emph default
+ is the most basic and important alien structure; it is from these that
+ aliens spawn into the game.
+ They are also the only structure that continues to function in the absence
+ of an
+\emph on
+Overmind
+\emph default
+.
+
+\emph on
+Eggs
+\emph default
+ may be built on ceilings.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Acid Tube
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename acidtube.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 8
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Acid Tubes
+\emph default
+ are the primary defensive structure for the alien team.
+ When approached by a human they eject lethal acid in all directions, even
+ over other structures.
+
+\emph on
+ Acid Tubes
+\emph default
+ may be built on walls and ceilings.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Barricade
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename barricade.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 10
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Barricades
+\emph default
+ are used to obstruct corridors and doorways, hindering human movement and
+ line-of-sight.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Trapper
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename trapper.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 10
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Trappers
+\emph default
+ fire a blob of adhesive spit at any human in their line of sight, freezing
+ them in place and, if they're not wearing a
+\emph on
+Battlesuit
+\emph default
+, restricts their ability to turn.
+
+\emph on
+ Trappers
+\emph default
+ may be built on walls and ceilings, and are rarely effective when built
+ on floors.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Booster
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename booster.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 12
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+Any alien that touches a
+\emph on
+Booster
+\emph default
+ is provided with a poison enhancement on all their melee attacks for a
+ limited time.
+ Poison causes victims to lose health steadily over time unless they use
+ a
+\emph on
+ Medkit
+\emph default
+ or visit a
+\emph on
+Medistation
+\emph default
+.
+ Poison does not work against humans equipped with a
+\emph on
+Battlesuit
+\emph default
+.
+ The
+\emph on
+Booster
+\emph default
+ will also double the regeneration rate of any nearby aliens with the exception
+ of
+\emph on
+ Tyrants
+\emph default
+.
+ The healing aura of a
+\emph on
+ Tyrant
+\emph off
+
+\emph default
+i
+\emph off
+s not
+\emph default
+cumulative
+\emph off
+ with the healing effect of boosters.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Hovel
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename hovel.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 8
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Hovels
+\emph default
+ are armored shells that
+\emph on
+Grangers
+\emph default
+ may hide in should the need arise.
+ They may be entered and exited with the
+\noun on
+Use Structure/Evolve
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Hive
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename hive.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Sentience: 12
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Hives
+\emph default
+ house millions of tiny insectoid aliens.
+ When a human approaches the structure the insects attack.
+
+\emph on
+Hives
+\emph default
+ may be built on ceilings.
+\layout Subsection
+
+Humans
+\layout Subsubsection
+
+Weapons
+\layout Standard
+
+Humans may spawn with either the
+\emph on
+Construction Kit
+\emph default
+ or the
+\emph on
+Rifle
+\emph default
+.
+ As credits are earned, humans may sell their old upgrades and purchase
+ new ones at an
+\emph on
+Armoury
+\emph default
+ structure.
+ Ammo may be refilled for normal weapons at
+\emph on
+Armouries
+\emph default
+, or at
+\emph on
+Reactors
+\emph default
+ and
+\emph on
+Repeaters
+\emph default
+ for energy weapons, all at no cost.
+ Players may only carry one weapon at a time, excluding the
+\emph on
+Blaster
+\emph default
+.
+ In general the humans rely on long range weapons to make up for their lack
+ of mobility relative to the alien team.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Construction Kit
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename ckit.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Construction Kit
+\emph default
+ is the humans' method of building structures.
+ The
+\noun on
+Primary
+\noun default
+
+\noun on
+Attack
+\noun default
+ button will bring up a menu of structures available for building.
+ After selecting a structure, a glowing outline of it will appear.
+ When this outline is green, pressing the
+\noun on
+Primary Attack
+\noun default
+ button will place it.
+ When the outline is red, the structure cannot be placed in its current
+ location.
+ To cancel placing the structure, press the
+\noun on
+Secondary Attack
+\noun default
+ button.
+ To remove a placed structure, use the
+\noun on
+Deconstruct Structure
+\noun default
+ button.
+ After building or deconstructing a structure, a timer will show up in the
+ lower right corner of the screen.
+ Until this timer expires, you cannot create, destroy or repair any structures.
+ Damaged structures may otherwise be repaired with the
+\noun on
+Secondary Attack
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Advanced Construction Kit
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename ackit.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+At stage two an upgraded
+\emph on
+Construction Kit
+\emph default
+ becomes available that allows the building of more advanced structures.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Blaster
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename blaster.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Blaster
+\emph default
+ is the human team's standard issue backup weapon.
+ All players spawn with one automatically and may not exchange it for another
+ weapon.
+ The
+\emph on
+Blaster
+\emph default
+ fires a weak projectile and uses no ammo.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Rifle
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename rifle.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Rifle
+\emph default
+ is the human team's most basic weapon and is available from spawning.
+ It rapidly fires moderately accurate shots with clip sizes of 30.
+ Up to 6 extra clips may be carried at a time.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Pain Saw
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename psaw.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 100
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Pain Saw
+\emph default
+ is a powerful melee weapon that emits a steady electric hum when in use.
+ It uses no ammunition.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Shotgun
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename shotgun.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 150
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Shotgun
+\emph default
+ fires 8 pellets at a wide angle and is thus best used in close quarters.
+ It holds 8 shots per clip and 3 extra clips may be carried at a time.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Las Gun
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename lasgun.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 250
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Las Gun
+\emph default
+ is similar to the
+\emph on
+Rifle
+\emph default
+ but is more powerful, accurate, slower to fire and uses no clips.
+ It is an energy weapon and so must be refilled at a
+\emph on
+Reactor
+\emph default
+ or
+\emph on
+Repeater
+\emph default
+.
+ It can hold up to 200 cells at a time, or 300 with a
+\emph on
+Battery Pack
+\emph default
+.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Mass Driver
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename mdriver.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 350
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Mass Driver
+\emph default
+ fires powerful, accurate shots at a slow rate of fire.
+ It is an energy weapon and holds 5 shots per clip, or 7 with a
+\emph on
+Battery Pack
+\emph default
+.
+ Up to 4 extra clips may be carried at a time.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Chaingun
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename chaingun.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 400
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Chaingun
+\emph default
+ is a powerful, wildly inaccurate rapid-fire weapon.
+ It holds up to 300 bullets at a time and is best used when crouching to
+ reduce its kickback.
+ Humans equipped with a
+\emph on
+Battlesuit
+\emph default
+do not experience this kickback.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Pulse Rifle
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename prifle.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 400
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Pulse Rifle
+\emph default
+ is an energy weapon that fires projectiles at high speeds.
+ It holds up to 50 cells per clip, or 75 with a
+\emph on
+Battery Pack
+\emph default
+.
+ Up to 4 extra clips may be carried at a time.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Grenade
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename grenade.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 200
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Grenade
+\emph default
+ is a hand held explosive device.
+ It is thrown for a short distance by using the
+\noun on
+Activate Upgrade
+\noun default
+ button.
+ After a brief delay it will explode and cause tremendous damage to anything
+ in its area of effect.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Flamethrower
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename flamer.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 450
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Flamethrower
+\emph default
+ is a short range incendiary weapon.
+ It holds up to 150 shots at a time and can easily damage the careless wielder.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Lucifer Cannon
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename lcannon.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 600
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Lucifer Cannon
+\emph default
+ is the human team's most devastating weapon.
+ It is an energy weapon that can hold up to 90 cells at a time, or 135 with
+ a
+\emph on
+Battery Pack
+\emph default
+.
+ By holding down the
+\noun on
+Primary Attack
+\noun default
+ button, a player may charge up a powerful, slow moving projectile with
+ splash damage.
+ The longer the attack is charged the more powerful the projectile and the
+ more ammo used.
+ If the attack is charged for too long the weapon will explode, damaging
+ the player.
+ The
+\noun on
+Secondary Attack
+\noun default
+button fires a smaller projectile that requires no charging.
+\layout Subsubsection
+
+Upgrades
+\layout Standard
+
+Human players may equip themselves with any number of the following upgrades,
+ with a few exceptions: the
+\emph on
+Jet Pack
+\emph default
+ and
+\emph on
+Battery Pack
+\emph default
+ may not be used together and the
+\emph on
+Battlesuit
+\emph default
+ may not be used with the
+\emph on
+Jet Pack
+\emph default
+,
+\emph on
+Battery Pack
+\emph default
+,
+\emph on
+Light Armour
+\emph default
+, or
+\emph on
+Helmet
+\emph default
+.
+ Only one of any type of upgrade may be carried at a time.
+ Upgrades that do not grant an intrinsic effect must be selected in the
+ player's inventory with the
+\noun on
+Next Upgrade
+\noun default
+ and
+\noun on
+Previous Upgrade
+\noun default
+ buttons and then activated with the
+\noun on
+Activate Upgrade
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Light Armour
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename larmour.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 70
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Light Armour
+\emph default
+ grants the wearer improved defense to the torso and leg areas.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Helmet
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename helmet.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 90
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Helmet
+\emph default
+ improves the defense of the wearer's head and also displays a radar that
+ shows the relative positions of nearby enemies and enemy structures.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="2" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Medkit
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Medkits
+\emph default
+ are a free holdable given to every human upon spawning and refilled at
+\emph on
+ Medistations
+\emph default
+ to players with full health.
+ They may not be refilled or exchanged at
+\emph on
+ Armouries
+\emph default
+.
+ When used with the
+\noun on
+ Activate Upgrade
+\noun default
+ button,
+\emph on
+ Medkits
+\emph default
+ immediately begin restoring health at a slow rate, gradually speeding up
+ until all damage incurred before the
+\emph on
+ Medkit
+\emph default
+ was activated is healed.
+ Additionally, if a human is poisoned, using a
+\emph on
+ Medkit
+\emph default
+ will cure the poison and confer a 30 second immunity to poison.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Battery Pack
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename battpack.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 100
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Battery Pack
+\emph default
+ increases the maximum ammo capacity of energy weapons by 50%.
+ It may not be used in conjunction with the
+\emph on
+Jet Pack
+\emph default
+.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Jet Pack
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename jetpack.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 120
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Jet Pack
+\emph default
+ grants the wearer the power of slow but unlimited flight.
+ When activated with the
+\noun on
+Activate Upgrade
+\noun default
+ button, a player may ascend or descend using the
+\noun on
+Jump
+\noun default
+ or
+\noun on
+Crouch
+\noun default
+ buttons, respectively.
+ The
+\emph on
+Jet Pack
+\emph default
+ ceases to function if there is no operational
+\emph on
+Reactor
+\emph default
+present.
+ Additionally it temporarily cuts out if the player receives any damage.
+ The
+\emph on
+Jet Pack
+\emph default
+ may not be used in conjunction with the
+\emph on
+Battery Pack
+\emph default
+.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Battlesuit
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename bsuit.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Cost: 400
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Battlesuit
+\emph default
+ provides a significant defensive boost to the wearer's entire body.
+ Due to this coverage, the
+\emph on
+Battlesuit
+\emph default
+ may not be used in conjunction with any other wearable upgrade (
+\emph on
+Light Armour
+\emph default
+,
+\emph on
+Helmet
+\emph default
+,
+\emph on
+Battery Pack
+\emph default
+, and
+\emph on
+Jet Pack
+\emph default
+).
+ Players are also prevented from crouching while wearing Battlesuits.
+\layout Subsubsection
+
+Structures
+\layout Standard
+
+All human structures must be built in proximity to a
+\emph on
+Reactor
+\emph default
+ or a
+\emph on
+Repeater
+\emph default
+.
+ With
+\emph on
+Telenodes
+\emph default
+ as the only exception, all structures require the presence of a working
+
+\emph on
+Reactor
+\emph default
+ to function.
+ All human structures explode in a powerful blast harmful to anything within
+ their radius when destroyed.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Reactor
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename reactor.jpg
+ scale 75
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Reactor
+\emph default
+ is the power source for all human structures in a map.
+ There may only be one
+\emph on
+Reactor
+\emph default
+, and it must be present before any structures other than
+\emph on
+ Repeaters
+\emph default
+ can be built.
+ If the
+\emph on
+Reactor
+\emph default
+ is destroyed then all structures besides
+\emph on
+Telenodes
+\emph default
+ cease to function.
+ The
+\emph on
+Reactor
+\emph default
+ has a limited amount of power which is distributed among every other structure
+ built, each having its own cost.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Telenode
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename telenode.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 10
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Telenode
+\emph default
+ is the most basic and fundamental human structure; it is from these that
+ humans spawn into the game.
+ They are also the only structure that continues to function in the absence
+ of a
+\emph on
+ Reactor
+\emph default
+.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Machine Gun Turret
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename turret.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 8
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Machine Gun Turret
+\emph default
+ is the primary defensive structure for the human team.
+ While they have a clear line of sight to an alien within their range, they
+ will track and fire at the alien until it is dead.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Tesla Generator
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename tesla.jpg
+ scale 80
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 10
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 3
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Tesla Generators
+\emph default
+ are a defensive structure that will unconditionally hit any target within
+ their range and line of sight with an electrical surge.
+ To be built and function, a
+\emph on
+Tesla Generator
+\emph default
+ requires the presence of a
+\emph on
+Defense Computer
+\emph default
+ somewhere in the map.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Armoury
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename armoury.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 10
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Armoury
+\emph default
+ is an essential part of every human base, allowing upgrades beyond the
+ basic spawning equipment to be bought and exchanged.
+ It is the sole means of human advancement.
+ To use an
+\emph on
+Armoury
+\emph default
+, approach it and press the
+\noun on
+Use Structure/Evolve
+\noun default
+ button.
+ Ammo for non-energy weapons may also be acquired at no cost from an
+\emph on
+Armoury
+\emph default
+ by using the
+\noun on
+Buy Ammo
+\noun default
+ button.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Defense Computer
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename dcc.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 8
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Defense Computers
+\emph default
+ coordinate the attacks of
+\emph on
+Machine Gun Turrets
+\emph default
+, preventing them from firing at a single target when multiple targets are
+ available.
+ They are also required for the production of
+\emph on
+Tesla Generators
+\emph default
+.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Medistation
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename medistat.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 8
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 1
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+The
+\emph on
+Medistation
+\emph default
+ provides the only means for humans to heal themselves.
+ By standing on one, a human will quickly regenerate health up to their
+ maximum of 100.
+
+\emph on
+ Medistations
+\emph default
+ will also refill
+\emph on
+ Medkits
+\emph default
+ to humans with full health.
+ Only one person may use a
+\emph on
+Medistation
+\emph default
+ at a time.
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="3" columns="2">
+<features>
+<column alignment="left" valignment="top" width="0">
+<column alignment="right" valignment="top" width="0">
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\emph on
+Repeater
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell multicolumn="1" alignment="center" valignment="top" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\begin_inset Graphics
+ filename repeater.jpg
+ scale 85
+
+\end_inset
+
+
+\end_inset
+</cell>
+<cell multicolumn="2" alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Power: 0
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Stage: 2
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\emph on
+Repeaters
+\emph default
+ serve as power distributors that may be built anywhere not already powered,
+ even when no
+\emph on
+Reactor
+\emph default
+ is present.
+ Any other structure may be built in proximity to a working
+\emph on
+Repeater
+\emph default
+ as if it were a
+\emph on
+Reactor
+\emph default
+.
+ If a
+\emph on
+Repeater
+\emph default
+ powers nothing for 90 seconds, it will automatically self destruct.
+\layout Section
+
+
+\begin_inset LatexCommand \label{sec:Technical}
+
+\end_inset
+
+Technical
+\layout Subsection
+
+Bindings
+\layout Standard
+\align center
+
+\begin_inset Tabular
+<lyxtabular version="3" rows="22" columns="3">
+<features islongtable="true">
+<column alignment="block" valignment="top" rightline="true" width="4cm">
+<column alignment="block" valignment="top" rightline="true" width="4cm">
+<column alignment="block" valignment="top" width="5.5cm">
+<row bottomline="true">
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Name in menu
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Binding
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Function
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Primary Attack
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
++attack
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Use primary attack function.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Secondary Attack
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
++button5
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Use secondary attack function.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Previous Upgrade
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+weapprev
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, preselect the previous upgrade in your inventory.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Next Upgrade
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+weapnext
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, preselect the next upgrade in your inventory.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Activate Upgrade
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
++button2
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, activate the current preselected inventory item.
+ Also used for some alien abilities.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Reload
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+reload
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, reload the selected weapon.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Buy Ammo
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+buy ammo
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, buy ammo from an
+\emph on
+armoury
+\emph default
+,
+\emph on
+repeater
+\emph default
+ or
+\emph on
+reactor
+\emph default
+.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Use Medkit
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+itemact medkit
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, activate your
+\emph on
+Medkit
+\emph default
+.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Use Structure/Evolve
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
++button7
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As human, use the structure in front of the player.
+ As alien, evolve into a different class.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Deconstruct Structure
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+deconstruct
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As a builder class, deconstruct the structure in front of the player cleanly.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\noun on
+Sprint
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+boost
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Run faster.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+destroy
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As a builder class, destroy the structure in front of the player.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+itemact <item>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If held, activate the specified item.
+ For weapons this will select them.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+itemdeact <item>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If held, deactivate the specified item.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+itemtoggle <item>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If held, toggle the state of the specified item.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+sell <item>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If held and within range of an
+\emph on
+armoury
+\emph default
+, sell the specified item.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+sell weapons
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If within range of an
+\emph on
+armoury
+\emph default
+, sell all weapons.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+sell upgrades
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If within range of an
+\emph on
+armoury
+\emph default
+, sell all upgrades.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+buy <item>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+If within range of an
+\emph on
+armoury
+\emph default
+ and sufficiently wealthy, buy the specified item.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+class <class>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+Given sufficient kills, evolve to the specified class.
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+--
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+
+\series bold
+build <structure>
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\layout Standard
+
+As a builder class, build the specified structure.
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\layout Standard
+
+
+\series bold
+<item>
+\series default
+ --
+\emph on
+blaster, rifle, ckit, ackit, shotgun, lgun, prifle, mdriver, flamer, chaingun,
+ lcannon, psaw, gren, medkit, jetpack
+\layout Standard
+
+
+\series bold
+<class>
+\series default
+ --
+\emph on
+builder, builderupg, level0, level1, level1upg, level2, level2upg, level3,
+ level3upg, level4
+\layout Standard
+
+
+\series bold
+<structure>
+\series default
+ --
+\emph on
+eggpod, barricade, booster, acid_tube, hive, trapper, overmind, hovel, telenode,
+ medistat, mgturret, tesla, dcc, arm, reactor, repeater
+\layout Subsection
+
+Particle System
+\layout Standard
+
+Files matching the pattern scripts/*.particle are loaded as particle system
+ description files.
+ Each .particle file can contain an arbitrary number of discrete particle
+ systems, much like a .shader file can house many shaders.
+ A particle system is declared by a name followed by curly braces within
+ which the functionality of the particle system is defined.
+ For example:
+\layout LyX-Code
+
+aShinyNewParticleSystem { }
+\layout Standard
+
+Inside the particle system declaration are placed up to four particle ejectors.
+ Ejectors are identified by the keyword ejector and curly braces:
+\layout LyX-Code
+
+aShinyNewParticleSystem
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ ejector { }
+\layout LyX-Code
+
+ ejector { }
+\layout LyX-Code
+
+}
+\layout Standard
+
+The role of the particle ejector is to create some number of new particles
+ at a defined rate.
+ These attributes are controlled by the following parameters:
+\layout Itemize
+
+
+\emph on
+count <number>|infinite
+\emph default
+ - the number of particles this ejector will spawn.
+\layout Itemize
+
+
+\emph on
+delay <msec>
+\emph default
+ - the delay in msec before the ejector starts spawning.
+\layout Itemize
+
+
+\emph on
+period <initial> <final> <variance>
+\emph default
+ - the period between particle ejections.
+\layout Standard
+
+It is perfectly acceptable to have an initial period of zero.
+ In this case the number of particles specified by the count keyword will
+ be ejected at once.
+ It is not permissible to have count infinite and a period of zero for obvious
+ reasons.
+\layout Standard
+
+At ejection time each ejector creates up to four new particles based on
+ templates.
+ These are specified in the ejector section using the particle keyword:
+\layout LyX-Code
+
+aShinyNewParticleSystem
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ ejector
+\layout LyX-Code
+
+ {
+\layout LyX-Code
+
+ particle { }
+\layout LyX-Code
+
+ particle { }
+\layout LyX-Code
+
+ count 50
+\layout LyX-Code
+
+ delay 0
+\layout LyX-Code
+
+ period 0 - 0
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+}
+\layout Standard
+
+Each particle template has a number of attributes:
+\layout Itemize
+
+
+\emph on
+shader <fps>|sync <shader1> <shader2> ...
+ <shaderN>
+\emph default
+ - this specifies the shaders to use for the particle.
+ The frame rate can be set to a static rate or the
+\emph on
+sync
+\emph default
+ parameter can be used in which case the frame rate will be synchronised
+ to the lifetime of the particle such that the first frame is displayed
+ on birth and the last frame is displayed immediately before death.
+\layout Itemize
+
+
+\emph on
+displacement <x> <y> <z> <variance>
+\emph default
+ - a static displacement about the attachment point.
+ The
+\emph on
+variance
+\emph default
+ parameter specifies a random displacement in all axes.
+\layout Itemize
+
+
+\emph on
+normalDisplacement <displacement>
+\emph default
+ - for particle systems that have their normal set (impact particle systems
+ for example) this specifies the magnitude of a displacement along the normal.
+\layout Itemize
+
+
+\emph on
+velocityType static|tag|cent|normal
+\emph default
+ - this specifies how the particle will compute its initial velocity.
+
+\emph on
+static
+\emph default
+ means it is specified statically in the .particle file,
+\emph on
+tag
+\emph default
+ means the velocity is in the direction of the tag it is attached to,
+\emph on
+cent
+\emph default
+ means the velocity is in the direction of the cent it is attached to and
+
+\emph on
+normal
+\emph default
+ means the velocity is in the direction of the particle system normal.
+\layout Itemize
+
+
+\emph on
+velocityDir linear|point
+\emph default
+ - this specifies whether the initial velocity is computed as a simple direction
+ or as the direction towards a secondary point (defined by
+\emph on
+velocityPoint
+\emph default
+ or dynamically through
+\emph on
+velocityType cent
+\emph default
+).
+\layout Itemize
+
+
+\emph on
+velocity <x> <y> <z> <variance>
+\emph default
+ - for when
+\emph on
+velocityType
+\emph default
+
+\emph on
+static
+\emph default
+ is present this specifies the direction.
+ The
+\emph on
+variance
+\emph default
+ here is specified in degrees e.g.
+ "~5" - up to 5 degrees deviation.
+\layout Itemize
+
+
+\emph on
+velocityMagnitude <magnitude>
+\emph default
+ - the magnitude of the velocity.
+\layout Itemize
+
+
+\emph on
+velocityPoint <x> <y> <z> <variance>
+\emph default
+ - for when
+\emph on
+velocityType static
+\emph default
+ and
+\emph on
+velocityDir point
+\emph default
+ are present this specifies the point to move towards.
+\layout Itemize
+
+
+\emph on
+parentVelocityFraction <fraction>
+\emph default
+ - for when the particle system is attached to a cent this specifies the
+ fraction of the cent's velocity that is added to the particle's velocity.
+\layout Itemize
+
+
+\emph on
+accelerationType static|tag|cent|normal
+\emph default
+ - this specifies how the particle will compute its acceleration.
+
+\emph on
+static
+\emph default
+ means it is specified statically in the .particle file,
+\emph on
+tag
+\emph default
+ means the acceleration is in the direction of the tag it is attached to,
+
+\emph on
+cent
+\emph default
+ means the acceleration is in the direction of the cent it is attached to
+ and
+\emph on
+normal
+\emph default
+ means the acceleration is in the direction of the particle system normal.
+\layout Itemize
+
+
+\emph on
+accelerationDir linear|point
+\emph default
+ - this specifies whether the acceleration is computed as a simple direction
+ or as the direction towards a secondary point (defined by
+\emph on
+accelerationPoint
+\emph default
+ or dynamically through
+\emph on
+accelerationType cent
+\emph default
+).
+\layout Itemize
+
+
+\emph on
+acceleration <x> <y> <z> <variance>
+\emph default
+ - for when
+\emph on
+accelerationType
+\emph default
+ static is present this specifies the direction.
+ The
+\emph on
+variance
+\emph default
+ here is specified in degrees e.g.
+ "~5" - up to 5 degrees deviation.
+\layout Itemize
+
+
+\emph on
+accelerationMagnitude <magnitude>
+\emph default
+ - the magnitude of the acceleration.
+\layout Itemize
+
+
+\emph on
+accelerationPoint <x> <y> <z> <variance>
+\emph default
+ - for when
+\emph on
+accelerationType static
+\emph default
+ and
+\emph on
+accelerationDir point
+\emph default
+ are present this specifies the point to move towards.
+\layout Itemize
+
+
+\emph on
+bounce <fraction>|cull
+\emph default
+ - the fraction of velocity that is reflected when a particle collides.
+ If this is set to 0.0 the particle won't collide.
+ When
+\emph on
+cull
+\emph default
+ is used particles are culled as soon as they collide with objects.
+\layout Itemize
+
+
+\emph on
+overdrawProtection
+\emph default
+ - cull particles that occupy a large amount of screen space.
+\layout Itemize
+
+
+\emph on
+realLight
+\emph default
+ - light particles using the lightgrid instead of fullbright.
+\layout Itemize
+
+
+\emph on
+cullOnStartSolid
+\emph default
+ - cull particles that are spawned inside brushes.
+\layout Itemize
+
+
+\emph on
+radius <delay> <initial> <final>
+\emph default
+ - the radius of the particle throughout its lifetime.
+ The
+\emph on
+delay
+\emph default
+ parameter specifies the time in msec before radius scaling begins.
+ The
+\emph on
+initial
+\emph default
+ and
+\emph on
+final
+\emph default
+ parameters specify the radii of the particle in quake units.
+\layout Itemize
+
+
+\emph on
+alpha <delay> <initial> <final>
+\emph default
+ - the alpha of the particle throughout its lifetime.
+ The
+\emph on
+delay
+\emph default
+ parameter specifies the time in msec before alpha scaling begins.
+ The
+\emph on
+initial
+\emph default
+ and
+\emph on
+final
+\emph default
+ parameters specify the alpha of the particle where 1.0 is totally opaque
+ and 0.0 is totally transparent.
+\layout Itemize
+
+
+\emph on
+rotation <delay> <initial> <final>
+\emph default
+ - the rotation of the particle throughout its lifetime.
+ The
+\emph on
+delay
+\emph default
+ parameter specifies the time in msec before the rotation begins.
+ The
+\emph on
+initial
+\emph default
+ and
+\emph on
+final
+\emph default
+ parameters specify the rotation of the particle in degrees.
+\layout Itemize
+
+
+\emph on
+lifeTime <time>
+\emph default
+ - the lifetime of the particle.
+\layout Itemize
+
+
+\emph on
+childSystem <particle system>
+\emph default
+ - specifies a particle system to attach to this particle.
+\layout Itemize
+
+
+\emph on
+onDeathSystem <particle system>
+\emph default
+ - specifies a particle system to spawn at the point where this particle
+ died.
+\layout Standard
+
+Except for vector components,
+\emph on
+shader fps ...
+
+\emph default
+ and
+\emph on
+period <initial <final> <variance>
+\emph default
+, every value can be specified with a random variance.
+ The syntax for this is as follows:
+\layout LyX-Code
+
+[value][~variance[%]]
+\layout Standard
+
+So the following forms are possible, where random is a random number between
+ 0.0 and 1.0 inclusive:
+\layout LyX-Code
+
+5.0 // 5.0
+\layout LyX-Code
+
+5.0~8.0 // 5.0 + ( random * 8.0 )
+\layout LyX-Code
+
+5.0~200% // 5.0 + ( random * 5.0 * 200% )
+\layout LyX-Code
+
+~7.0 // random * 7.0
+\layout Standard
+
+This allows for relatively flexible randomisation of most of the particle's
+ parameters.
+ For parameters taking an initial and final value, specifying the final
+ value as '-' will result in a final value the same as the initial value.
+\layout Standard
+
+For the purposes of map based particle systems using
+\emph on
+misc_particle_system
+\emph default
+ it is safe to ignore
+\emph on
+velocityType
+\emph default
+ and
+\emph on
+accelerationType tag|cent|normal
+\emph default
+,
+\emph on
+normalDisplacement
+\emph default
+ and
+\emph on
+parentVelocityFraction
+\emph default
+ altogether.
+\layout Standard
+
+Of course, it is not necessary to specify every parameter documented here
+ for every particle system.
+ If a parameter is not included it will usually default to zero.
+ C/C++ style comments can be used throughout.
+ There are an enormous number of possible combinations of particle systems
+ parameters and as such it is impractical to test them all.
+ For this reason it is possible that certain permutations do not behave
+ as expected or wrongly.
+ In this case you may have discovered a bug - let us know.
+ Having said this when you're having problems with a particle system make
+ sure you scroll up the console and check that it compiled OK, I've written
+ the parser to be very intolerant of error.
+\layout Standard
+
+Here is an example particle system:
+\layout LyX-Code
+
+aShinyNewParticleSystem
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ ejector
+\layout LyX-Code
+
+ {
+\layout LyX-Code
+
+ particle
+\layout LyX-Code
+
+ {
+\layout LyX-Code
+
+ shader sync shader1 shader2
+\layout LyX-Code
+
+
+\layout LyX-Code
+
+ velocityType static
+\layout LyX-Code
+
+ velocityDir linear
+\layout LyX-Code
+
+ velocityMagnitude 200
+\layout LyX-Code
+
+ velocity 0 0 1 ~30
+\layout LyX-Code
+
+\layout LyX-Code
+
+ accelerationType static
+\layout LyX-Code
+
+ accelerationDir linear
+\layout LyX-Code
+
+ accelerationMagnitude 50
+\layout LyX-Code
+
+ acceleration 0 0 1 ~0
+\layout LyX-Code
+
+\layout LyX-Code
+
+ radius 0 10.0 50.0
+\layout LyX-Code
+
+ alpha 0 1.0 1.0
+\layout LyX-Code
+
+ rotation 0 ~360 -
+\layout LyX-Code
+
+ bounce 0.4
+\layout LyX-Code
+
+ lifeTime 1500
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+\layout LyX-Code
+
+ count 50
+\layout LyX-Code
+
+ delay 0
+\layout LyX-Code
+
+ period 0 - 0
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+}
+\layout Subsection
+
+Map Rotation System
+\layout Standard
+
+The file
+\emph on
+maprotation.cfg
+\emph default
+ is used to describe up to 16 map rotations which may be used by a Tremulous
+ server.
+ In its most simple form, the syntax is as follows:
+\layout LyX-Code
+
+mapRotation1
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ map1
+\layout LyX-Code
+
+ map2
+\layout LyX-Code
+
+ map3
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+mapRotation2
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ map6
+\layout LyX-Code
+
+ map3
+\layout LyX-Code
+
+ map9
+\layout LyX-Code
+
+}
+\layout Standard
+
+This specifies two rotations, each consisting of three maps.
+ The contents of the cvar
+\emph on
+g_initialMapRotation
+\emph default
+ specifies the map rotation to start after the map the server was started
+ with has finished.
+ It is possible to specify a list of server commands to be run after a map
+ has finished:
+\layout LyX-Code
+
+mapRotation3
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ map1
+\layout LyX-Code
+
+ {
+\layout LyX-Code
+
+ set sv_hostname
+\begin_inset Quotes eld
+\end_inset
+
+Just finished map1!
+\begin_inset Quotes erd
+\end_inset
+
+
+\layout LyX-Code
+
+ set g_teamForceBalance 0
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+
+\layout LyX-Code
+
+ map2
+\layout LyX-Code
+
+ {
+\layout LyX-Code
+
+ set g_teamForceBalance 1
+\layout LyX-Code
+
+ }
+\layout LyX-Code
+
+\layout LyX-Code
+
+ map3
+\layout LyX-Code
+
+}
+\layout Standard
+
+Primitive logic is also available:
+\layout LyX-Code
+
+mapRotation4
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ map1
+\layout LyX-Code
+
+ goto map3
+\layout LyX-Code
+
+\layout LyX-Code
+
+ map2
+\layout LyX-Code
+
+ if numClients > 8
+\layout LyX-Code
+
+ mapRotation3
+\layout LyX-Code
+
+\layout LyX-Code
+
+ map3
+\layout LyX-Code
+
+ if lastWin aliens
+\layout LyX-Code
+
+ mapRotation2
+\layout LyX-Code
+
+
+\layout LyX-Code
+
+ if random
+\layout LyX-Code
+
+ mapRotation1
+\layout LyX-Code
+
+}
+\layout LyX-Code
+
+\layout LyX-Code
+
+mapRotation5
+\layout LyX-Code
+
+{
+\layout LyX-Code
+
+ map1
+\layout LyX-Code
+
+ if lastWin humans
+\layout LyX-Code
+
+ map4
+\layout LyX-Code
+
+ map2
+\layout LyX-Code
+
+ map3
+\layout LyX-Code
+
+ goto map1
+\layout LyX-Code
+
+ map4
+\layout LyX-Code
+
+ map5
+\layout LyX-Code
+
+}
+\layout Standard
+
+The
+\series bold
+goto
+\series default
+ keyword is used to unconditionally branch to either another map
+\emph on
+in the current rotation
+\emph default
+ or another map rotation entirely.
+ The
+\series bold
+if
+\series default
+keyword is used in conjunction with a condition to decide whether or not
+ to branch to the specified map or rotation (as with the
+\series bold
+goto
+\series default
+ keyword).
+ The condition itself can be one of
+\series bold
+numClients <op> <number>
+\series default
+,
+\series bold
+lastWin <team>
+\series default
+or
+\series bold
+random
+\series default
+, where
+\series bold
+<op>
+\series default
+ is
+\series bold
+<
+\series default
+,
+\series bold
+>
+\series default
+ or
+\series bold
+=
+\series default
+ and
+\series bold
+<team>
+\series default
+ is
+\series bold
+aliens
+\series default
+ or
+\series bold
+humans
+\series default
+.
+ The
+\series bold
+random
+\series default
+ condition simply chooses whether or not to execute the change randomly,
+ with each outcome equally likely.
+\layout Section
+
+Credits
+\layout Standard
+
+Tim
+\emph on
+'Timbo'
+\emph default
+ Angus -- Programming and Direction
+\layout Standard
+
+Nick
+\emph on
+'jex'
+\emph default
+ Jansens -- Mapping, texturing and 2D artwork
+\layout Standard
+
+Robin
+\emph on
+'OverFlow'
+\emph default
+ Marshall -- Modelling, animation and mapping
+\layout Standard
+
+Jan
+\emph on
+'Stannum'
+\emph default
+ van der Weg -- Texturing and mapping
+\layout Standard
+
+Mike
+\emph on
+'Veda'
+\emph default
+ Mcinnerney -- Modelling, animation and texturing
+\layout Standard
+
+Gordon
+\emph on
+'Godmil'
+\emph default
+ Miller -- Mapping
+\layout Standard
+
+'Who-[Soup]' -- Mapping
+\layout Standard
+
+Tristan
+\emph on
+'jhrx'
+\emph default
+ Blease -- Mapping
+\layout Standard
+
+Paul
+\emph on
+'MoP'
+\emph default
+ Greveson -- Modelling and texturing
+\layout Standard
+
+Chris
+\emph on
+'Dolby'
+\emph default
+ McCarthy -- Sound
+\layout Subsection*
+
+Special thanks
+\layout Standard
+
+Asa
+\emph on
+'Norfenstein'
+\emph default
+ Kravets -- Manual content, QA, design and balance suggestions
+\layout Standard
+
+'Crylar' -- Concept art
+\layout Standard
+
+Richard
+\emph on
+'R1CH'
+\emph default
+ Stanway -- Test server hosting
+\layout Standard
+
+Stéphane
+\emph on
+'MEGASTeP'
+\emph default
+ Peter -- Early test server hosting
+\layout Standard
+
+Sourceforge and TARDIS -- Web hosting
+\layout Standard
+
+Arsonide, Bajoran, Bt, Chamooze, Crylar, Cybernetsam, dzjepp, ectox, Edo,
+ evil poop, Excalibur, FroggyQuim, Idle Wild, juice, Kai, kingping, Lava
+ Croft, MajorPain, MiDiaN, Molog, Mutemode, Norfenstein, Orc, R1CH, Ratti,
+ Ravyn, Salteh, Sandy, SharkDog, slux, Suddien, Supa, Survivor, Swie, sysrq,
+ TerrorEast, Tyler, Vitae, Woo -- Beta testers
+\layout Subsection*
+
+Also thanks
+\layout Standard
+
+babyomen, Carc, djbob, Grim, Grytviken, Gumby, heimdall, Hellbringer, Hentai,
+ Mighty_Pea, Psylo, Reaper-1, RR2D02, Saig, Smack, T-bone, The GtkRadiant
+ people, The inhabitants of Quake3World, ThePyro, TTimo, ValouR, ydnar,
+ Yves 'evillair' Allaire
+\layout Standard
+\align center
+
+\noun on
+Tremulous is copyright darklegion development 2005
+\the_end