summaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
Diffstat (limited to 'assets')
-rw-r--r--assets/armour/bsuit.armour19
-rw-r--r--assets/configs/buildables/acid_tube.cfg5
-rw-r--r--assets/configs/buildables/arm.cfg5
-rw-r--r--assets/configs/buildables/dcc.cfg5
-rw-r--r--assets/configs/buildables/eggpod.cfg5
-rw-r--r--assets/configs/buildables/hovel.cfg5
-rw-r--r--assets/configs/buildables/medistat.cfg5
-rw-r--r--assets/configs/buildables/mgturret.cfg7
-rw-r--r--assets/configs/buildables/overmind.cfg5
-rw-r--r--assets/configs/buildables/reactor.cfg5
-rw-r--r--assets/configs/buildables/repeater.cfg5
-rw-r--r--assets/configs/buildables/telenode.cfg5
-rw-r--r--assets/configs/buildables/tesla.cfg5
-rw-r--r--assets/configs/buildables/trapper.cfg5
-rw-r--r--assets/configs/classes/builder.cfg17
-rw-r--r--assets/configs/classes/builderupg.cfg17
-rw-r--r--assets/configs/classes/human_base.cfg17
-rw-r--r--assets/configs/classes/level1upg.cfg17
-rw-r--r--assets/configs/classes/spectator.cfg17
-rw-r--r--assets/configs/configs/buildables/acid_tube.cfg5
-rw-r--r--assets/configs/configs/buildables/arm.cfg5
-rw-r--r--assets/configs/configs/buildables/barricade.cfg5
-rw-r--r--assets/configs/configs/buildables/booster.cfg5
-rw-r--r--assets/configs/configs/buildables/dcc.cfg5
-rw-r--r--assets/configs/configs/buildables/eggpod.cfg5
-rw-r--r--assets/configs/configs/buildables/hive.cfg5
-rw-r--r--assets/configs/configs/buildables/hovel.cfg5
-rw-r--r--assets/configs/configs/buildables/medistat.cfg5
-rw-r--r--assets/configs/configs/buildables/mgturret.cfg7
-rw-r--r--assets/configs/configs/buildables/overmind.cfg5
-rw-r--r--assets/configs/configs/buildables/reactor.cfg5
-rw-r--r--assets/configs/configs/buildables/repeater.cfg5
-rw-r--r--assets/configs/configs/buildables/telenode.cfg5
-rw-r--r--assets/configs/configs/buildables/tesla.cfg5
-rw-r--r--assets/configs/configs/buildables/trapper.cfg5
-rw-r--r--assets/configs/configs/classes/builder.cfg17
-rw-r--r--assets/configs/configs/classes/builderupg.cfg17
-rw-r--r--assets/configs/configs/classes/human_base.cfg17
-rw-r--r--assets/configs/configs/classes/human_bsuit.cfg17
-rw-r--r--assets/configs/configs/classes/level0.cfg17
-rw-r--r--assets/configs/configs/classes/level1.cfg17
-rw-r--r--assets/configs/configs/classes/level1upg.cfg17
-rw-r--r--assets/configs/configs/classes/level2.cfg17
-rw-r--r--assets/configs/configs/classes/level2upg.cfg17
-rw-r--r--assets/configs/configs/classes/level3.cfg17
-rw-r--r--assets/configs/configs/classes/level3upg.cfg17
-rw-r--r--assets/configs/configs/classes/level4.cfg17
-rw-r--r--assets/configs/configs/classes/spectator.cfg17
-rw-r--r--assets/emoticons/acidtube_1x1.tgabin0 -> 9773 bytes
-rw-r--r--assets/emoticons/advbasilisk_1x1.tgabin0 -> 6307 bytes
-rw-r--r--assets/emoticons/advdragoon_1x1.tgabin0 -> 4811 bytes
-rw-r--r--assets/emoticons/advmarauder_1x1.tgabin0 -> 3917 bytes
-rw-r--r--assets/emoticons/armoury_1x1.tgabin0 -> 11939 bytes
-rw-r--r--assets/emoticons/barricade_1x1.tgabin0 -> 6110 bytes
-rw-r--r--assets/emoticons/basilisk_1x1.tgabin0 -> 6305 bytes
-rw-r--r--assets/emoticons/blaster_1x1.tgabin0 -> 5634 bytes
-rw-r--r--assets/emoticons/booster_1x1.tgabin0 -> 4862 bytes
-rw-r--r--assets/emoticons/bsuit_1x1.tgabin0 -> 4458 bytes
-rw-r--r--assets/emoticons/chaingun_2x1.tgabin0 -> 9847 bytes
-rw-r--r--assets/emoticons/ckit_2x1.tgabin0 -> 14139 bytes
-rw-r--r--assets/emoticons/defcomp_1x1.tgabin0 -> 10338 bytes
-rw-r--r--assets/emoticons/dev_1x1.tgabin0 -> 16428 bytes
-rw-r--r--assets/emoticons/dragoon_1x1.tgabin0 -> 4827 bytes
-rw-r--r--assets/emoticons/dretch_1x1.tgabin0 -> 4544 bytes
-rw-r--r--assets/emoticons/egg_1x1.tgabin0 -> 7436 bytes
-rw-r--r--assets/emoticons/featured_1x1.tgabin0 -> 16428 bytes
-rw-r--r--assets/emoticons/flamer_2x1.tgabin0 -> 17303 bytes
-rw-r--r--assets/emoticons/granger_1x1.tgabin0 -> 6741 bytes
-rw-r--r--assets/emoticons/grenade_1x1.tgabin0 -> 8975 bytes
-rw-r--r--assets/emoticons/hive_1x1.tgabin0 -> 9506 bytes
-rw-r--r--assets/emoticons/hovel_1x1.tgabin0 -> 6692 bytes
-rw-r--r--assets/emoticons/human_1x1.tgabin0 -> 4878 bytes
-rw-r--r--assets/emoticons/lasgun_2x1.tgabin0 -> 12871 bytes
-rw-r--r--assets/emoticons/lcannon_2x1.tgabin0 -> 13825 bytes
-rw-r--r--assets/emoticons/marauder_1x1.tgabin0 -> 3833 bytes
-rw-r--r--assets/emoticons/mdriver_2x1.tgabin0 -> 8518 bytes
-rw-r--r--assets/emoticons/medstat_1x1.tgabin0 -> 8355 bytes
-rw-r--r--assets/emoticons/official_1x1.tgabin0 -> 16428 bytes
-rw-r--r--assets/emoticons/overmind_1x1.tgabin0 -> 7880 bytes
-rw-r--r--assets/emoticons/painsaw_2x1.tgabin0 -> 14135 bytes
-rw-r--r--assets/emoticons/prifle_2x1.tgabin0 -> 14233 bytes
-rw-r--r--assets/emoticons/reactor_1x1.tgabin0 -> 10112 bytes
-rw-r--r--assets/emoticons/repeater_1x1.tgabin0 -> 9801 bytes
-rw-r--r--assets/emoticons/rifle_2x1.tgabin0 -> 15418 bytes
-rw-r--r--assets/emoticons/shotgun_2x1.tgabin0 -> 13558 bytes
-rw-r--r--assets/emoticons/telenode_1x1.tgabin0 -> 9795 bytes
-rw-r--r--assets/emoticons/tent_1x1.tgabin0 -> 4322 bytes
-rw-r--r--assets/emoticons/tesla_1x1.tgabin0 -> 6126 bytes
-rw-r--r--assets/emoticons/trapper_1x1.tgabin0 -> 9113 bytes
-rw-r--r--assets/emoticons/turret_1x1.tgabin0 -> 4648 bytes
-rw-r--r--assets/emoticons/tyrant_1x1.tgabin0 -> 4959 bytes
-rw-r--r--assets/gfx/2d/bigchars.tgabin0 -> 46297 bytes
-rw-r--r--assets/gfx/2d/crosshair-psaw.tgabin0 -> 1022 bytes
-rw-r--r--assets/gfx/2d/teamoverlay.tgabin0 -> 14271 bytes
-rw-r--r--assets/gfx/level3upg/barb_splash.tgabin0 -> 12186 bytes
-rw-r--r--assets/models/weapons/abuildupg/weapon.cfg19
-rw-r--r--assets/models/weapons/lcannon/warning2.wavbin0 -> 4603 bytes
-rw-r--r--assets/models/weapons/level0/weapon.cfg9
-rw-r--r--assets/models/weapons/level1upg/weapon.cfg17
-rw-r--r--assets/models/weapons/level2/weapon.cfg11
-rw-r--r--assets/models/weapons/level3/weapon.cfg16
-rw-r--r--assets/scripts/crosshairs.shader96
-rw-r--r--assets/scripts/mdriver.trail10
-rw-r--r--assets/scripts/misc.particle378
-rw-r--r--assets/scripts/ui.shader19
-rw-r--r--assets/scripts/weapons.particle890
-rw-r--r--assets/scripts/weapons.shader93
-rw-r--r--assets/sound/weapons/click.wavbin0 -> 23662 bytes
-rw-r--r--assets/ui/assets/alien/buildstat.cfg37
-rw-r--r--assets/ui/assets/alien/buildstat/frame.tgabin0 -> 1724 bytes
-rw-r--r--assets/ui/assets/alien/buildstat/green.tgabin0 -> 49 bytes
-rw-r--r--assets/ui/assets/alien/buildstat/health.tgabin0 -> 48 bytes
-rw-r--r--assets/ui/assets/alien/buildstat/mark.tgabin0 -> 14180 bytes
-rw-r--r--assets/ui/assets/alien/buildstat/overlay.tgabin0 -> 25069 bytes
-rw-r--r--assets/ui/assets/human/buildstat.cfg39
-rw-r--r--assets/ui/assets/human/buildstat/frame.tgabin0 -> 1724 bytes
-rw-r--r--assets/ui/assets/human/buildstat/green.tgabin0 -> 49 bytes
-rw-r--r--assets/ui/assets/human/buildstat/health.tgabin0 -> 48 bytes
-rw-r--r--assets/ui/assets/human/buildstat/mark.tgabin0 -> 14180 bytes
-rw-r--r--assets/ui/assets/neutral/charge_bg_h.tgabin0 -> 2420 bytes
-rw-r--r--assets/ui/assets/neutral/charge_bg_v.tgabin0 -> 4880 bytes
-rw-r--r--assets/ui/assets/neutral/charge_cap_h.tgabin0 -> 464 bytes
-rw-r--r--assets/ui/assets/neutral/charge_cap_v.tgabin0 -> 330 bytes
-rw-r--r--assets/ui/assets/neutral/cross2.tgabin0 -> 2036 bytes
-rw-r--r--assets/ui/assets/neutral/cross3.tgabin0 -> 2868 bytes
-rw-r--r--assets/ui/assets/neutral/cross_medkit.tgabin0 -> 6146 bytes
-rw-r--r--assets/ui/assets/neutral/cross_poison.tgabin0 -> 6934 bytes
-rw-r--r--assets/ui/ingame_help.menu88
-rw-r--r--assets/ui/mod.menu108
-rw-r--r--assets/ui/news.menu102
-rw-r--r--assets/ui/ptrc.menu109
-rw-r--r--assets/ui/quit.menu99
-rw-r--r--assets/ui/quitcredit.menu410
-rw-r--r--assets/ui/tremulous_default_hud.menu37
134 files changed, 3061 insertions, 0 deletions
diff --git a/assets/armour/bsuit.armour b/assets/armour/bsuit.armour
new file mode 100644
index 0000000..c05a09d
--- /dev/null
+++ b/assets/armour/bsuit.armour
@@ -0,0 +1,19 @@
+
+{
+ name "bsuit body"
+ minHeight 0.0
+ maxHeight 0.8
+ minAngle 0
+ maxAngle 360
+ modifier 0.2
+}
+
+{
+ name "bsuit head"
+ minHeight 0.8
+ maxHeight 1.0
+ minAngle 0
+ maxAngle 360
+ modifier 0.27
+}
+
diff --git a/assets/configs/buildables/acid_tube.cfg b/assets/configs/buildables/acid_tube.cfg
new file mode 100644
index 0000000..e44ed48
--- /dev/null
+++ b/assets/configs/buildables/acid_tube.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/acid_tube/acid_tube.md3
+modelScale 0.6
+mins -15 -15 -15
+maxs 15 15 15
+zOffset -8.5
diff --git a/assets/configs/buildables/arm.cfg b/assets/configs/buildables/arm.cfg
new file mode 100644
index 0000000..3e45fc2
--- /dev/null
+++ b/assets/configs/buildables/arm.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/arm/arm.md3
+modelScale 1.0
+mins -40 -40 -13
+maxs 40 40 50
+zOffset -2.0
diff --git a/assets/configs/buildables/dcc.cfg b/assets/configs/buildables/dcc.cfg
new file mode 100644
index 0000000..932e302
--- /dev/null
+++ b/assets/configs/buildables/dcc.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/dcc/dcc.md3
+modelScale 1.0
+mins -35 -35 -13
+maxs 35 35 47
+zOffset 0
diff --git a/assets/configs/buildables/eggpod.cfg b/assets/configs/buildables/eggpod.cfg
new file mode 100644
index 0000000..71cb6c7
--- /dev/null
+++ b/assets/configs/buildables/eggpod.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/eggpod/eggpod.md3
+modelScale 1.0
+mins -15 -15 -15
+maxs 15 15 15
+zOffset 0
diff --git a/assets/configs/buildables/hovel.cfg b/assets/configs/buildables/hovel.cfg
new file mode 100644
index 0000000..5e2922c
--- /dev/null
+++ b/assets/configs/buildables/hovel.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/hovel/hovel.md3
+modelScale 1.0
+mins -50 -50 -20
+maxs 50 50 20
+zOffset 0
diff --git a/assets/configs/buildables/medistat.cfg b/assets/configs/buildables/medistat.cfg
new file mode 100644
index 0000000..179a052
--- /dev/null
+++ b/assets/configs/buildables/medistat.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/medistat/medistat.md3
+modelScale 1.0
+mins -35 -35 -7
+maxs 35 35 4
+zOffset 0
diff --git a/assets/configs/buildables/mgturret.cfg b/assets/configs/buildables/mgturret.cfg
new file mode 100644
index 0000000..83a2309
--- /dev/null
+++ b/assets/configs/buildables/mgturret.cfg
@@ -0,0 +1,7 @@
+model 0 models/buildables/mgturret/turret_base.md3
+model 1 models/buildables/mgturret/turret_barrel.md3
+model 2 models/buildables/mgturret/turret_top.md3
+modelScale 1.0
+mins -25 -25 -20
+maxs 25 25 20
+zOffset 0
diff --git a/assets/configs/buildables/overmind.cfg b/assets/configs/buildables/overmind.cfg
new file mode 100644
index 0000000..f9baca5
--- /dev/null
+++ b/assets/configs/buildables/overmind.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/overmind/overmind.md3
+modelScale 1.0
+mins -45 -45 -15
+maxs 45 45 95
+zOffset 0
diff --git a/assets/configs/buildables/reactor.cfg b/assets/configs/buildables/reactor.cfg
new file mode 100644
index 0000000..d724c44
--- /dev/null
+++ b/assets/configs/buildables/reactor.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/reactor/reactor.md3
+mins -41 -41 -15
+maxs 41 41 95
+zOffset -2.0
+modelScale 0.85
diff --git a/assets/configs/buildables/repeater.cfg b/assets/configs/buildables/repeater.cfg
new file mode 100644
index 0000000..eec2824
--- /dev/null
+++ b/assets/configs/buildables/repeater.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/repeater/repeater.md3
+modelScale 1.0
+mins -15 -15 -15
+maxs 15 15 25
+zOffset 0
diff --git a/assets/configs/buildables/telenode.cfg b/assets/configs/buildables/telenode.cfg
new file mode 100644
index 0000000..173a92f
--- /dev/null
+++ b/assets/configs/buildables/telenode.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/telenode/telenode.md3
+modelScale 1.0
+mins -40 -40 -4
+maxs 40 40 6
+zOffset 0
diff --git a/assets/configs/buildables/tesla.cfg b/assets/configs/buildables/tesla.cfg
new file mode 100644
index 0000000..36d1e33
--- /dev/null
+++ b/assets/configs/buildables/tesla.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/tesla/tesla.md3
+modelScale 1.0
+mins -22 -22 -40
+maxs 22 22 40
+zOffset 0
diff --git a/assets/configs/buildables/trapper.cfg b/assets/configs/buildables/trapper.cfg
new file mode 100644
index 0000000..0c3f0d0
--- /dev/null
+++ b/assets/configs/buildables/trapper.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/trapper/trapper.md3
+modelScale 1.0
+mins -15 -15 -15
+maxs 15 15 15
+zOffset 0
diff --git a/assets/configs/classes/builder.cfg b/assets/configs/classes/builder.cfg
new file mode 100644
index 0000000..dd1d665
--- /dev/null
+++ b/assets/configs/classes/builder.cfg
@@ -0,0 +1,17 @@
+name "Granger"
+model builder
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud alien_builder_hud
+
+mins -20 -20 -20
+maxs 20 20 20
+crouchMaxs 20 20 20
+deadMins -20 -20 -4
+deadMaxs 20 20 4
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -8 15 13
diff --git a/assets/configs/classes/builderupg.cfg b/assets/configs/classes/builderupg.cfg
new file mode 100644
index 0000000..e1b73fc
--- /dev/null
+++ b/assets/configs/classes/builderupg.cfg
@@ -0,0 +1,17 @@
+name "Advanced Granger"
+model builder
+modelScale 1.0
+skin advanced
+shadowScale 1.0
+hud alien_builder_hud
+
+mins -20 -20 -20
+maxs 20 20 20
+crouchMaxs 20 20 20
+deadMins -20 -20 -4
+deadMaxs 20 20 4
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -8 15 13
diff --git a/assets/configs/classes/human_base.cfg b/assets/configs/classes/human_base.cfg
new file mode 100644
index 0000000..6749bad
--- /dev/null
+++ b/assets/configs/classes/human_base.cfg
@@ -0,0 +1,17 @@
+name "Human Base"
+model human_base
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud human_hud
+
+mins -15 -15 -24
+maxs 15 15 32
+crouchMaxs 15 15 16
+deadMins -15 -15 -4
+deadMaxs 15 15 4
+zOffset -2.0
+
+viewheight 24
+crouchViewheight 7
+shoulderOffsets -10 15 0
diff --git a/assets/configs/classes/level1upg.cfg b/assets/configs/classes/level1upg.cfg
new file mode 100644
index 0000000..28a4beb
--- /dev/null
+++ b/assets/configs/classes/level1upg.cfg
@@ -0,0 +1,17 @@
+name "Advanced Basilisk"
+model level1
+modelScale 1.1666
+skin upgrade
+shadowScale 1.0
+hud alien_general_hud
+
+mins -21 -21 -21
+maxs 21 21 21
+crouchMaxs 21 21 21
+deadMins -21 -21 -4.666
+deadMaxs 21 21 4.666
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -10 0 18
diff --git a/assets/configs/classes/spectator.cfg b/assets/configs/classes/spectator.cfg
new file mode 100644
index 0000000..bfe7bf2
--- /dev/null
+++ b/assets/configs/classes/spectator.cfg
@@ -0,0 +1,17 @@
+name "Spectator"
+model ""
+modelScale 1.0
+skin ""
+shadowScale 1.0
+hud ""
+
+mins -15 -15 -15
+maxs 15 15 15
+crouchMaxs 15 15 15
+deadMins -15 -15 -15
+deadMaxs 15 15 15
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets 0 0 0
diff --git a/assets/configs/configs/buildables/acid_tube.cfg b/assets/configs/configs/buildables/acid_tube.cfg
new file mode 100644
index 0000000..e44ed48
--- /dev/null
+++ b/assets/configs/configs/buildables/acid_tube.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/acid_tube/acid_tube.md3
+modelScale 0.6
+mins -15 -15 -15
+maxs 15 15 15
+zOffset -8.5
diff --git a/assets/configs/configs/buildables/arm.cfg b/assets/configs/configs/buildables/arm.cfg
new file mode 100644
index 0000000..3e45fc2
--- /dev/null
+++ b/assets/configs/configs/buildables/arm.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/arm/arm.md3
+modelScale 1.0
+mins -40 -40 -13
+maxs 40 40 50
+zOffset -2.0
diff --git a/assets/configs/configs/buildables/barricade.cfg b/assets/configs/configs/buildables/barricade.cfg
new file mode 100644
index 0000000..5614647
--- /dev/null
+++ b/assets/configs/configs/buildables/barricade.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/barricade/barricade.md3
+modelScale 1.0
+mins -35 -35 -15
+maxs 35 35 60
+zOffset 0
diff --git a/assets/configs/configs/buildables/booster.cfg b/assets/configs/configs/buildables/booster.cfg
new file mode 100644
index 0000000..b0903df
--- /dev/null
+++ b/assets/configs/configs/buildables/booster.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/booster/booster.md3
+modelScale 1.0
+mins -26 -26 -9
+maxs 26 26 9
+zOffset 0
diff --git a/assets/configs/configs/buildables/dcc.cfg b/assets/configs/configs/buildables/dcc.cfg
new file mode 100644
index 0000000..932e302
--- /dev/null
+++ b/assets/configs/configs/buildables/dcc.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/dcc/dcc.md3
+modelScale 1.0
+mins -35 -35 -13
+maxs 35 35 47
+zOffset 0
diff --git a/assets/configs/configs/buildables/eggpod.cfg b/assets/configs/configs/buildables/eggpod.cfg
new file mode 100644
index 0000000..71cb6c7
--- /dev/null
+++ b/assets/configs/configs/buildables/eggpod.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/eggpod/eggpod.md3
+modelScale 1.0
+mins -15 -15 -15
+maxs 15 15 15
+zOffset 0
diff --git a/assets/configs/configs/buildables/hive.cfg b/assets/configs/configs/buildables/hive.cfg
new file mode 100644
index 0000000..bd427a2
--- /dev/null
+++ b/assets/configs/configs/buildables/hive.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/hive/hive.md3
+modelScale 1.0
+mins -20 -20 -20
+maxs 20 20 20
+zOffset -10
diff --git a/assets/configs/configs/buildables/hovel.cfg b/assets/configs/configs/buildables/hovel.cfg
new file mode 100644
index 0000000..5e2922c
--- /dev/null
+++ b/assets/configs/configs/buildables/hovel.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/hovel/hovel.md3
+modelScale 1.0
+mins -50 -50 -20
+maxs 50 50 20
+zOffset 0
diff --git a/assets/configs/configs/buildables/medistat.cfg b/assets/configs/configs/buildables/medistat.cfg
new file mode 100644
index 0000000..179a052
--- /dev/null
+++ b/assets/configs/configs/buildables/medistat.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/medistat/medistat.md3
+modelScale 1.0
+mins -35 -35 -7
+maxs 35 35 4
+zOffset 0
diff --git a/assets/configs/configs/buildables/mgturret.cfg b/assets/configs/configs/buildables/mgturret.cfg
new file mode 100644
index 0000000..83a2309
--- /dev/null
+++ b/assets/configs/configs/buildables/mgturret.cfg
@@ -0,0 +1,7 @@
+model 0 models/buildables/mgturret/turret_base.md3
+model 1 models/buildables/mgturret/turret_barrel.md3
+model 2 models/buildables/mgturret/turret_top.md3
+modelScale 1.0
+mins -25 -25 -20
+maxs 25 25 20
+zOffset 0
diff --git a/assets/configs/configs/buildables/overmind.cfg b/assets/configs/configs/buildables/overmind.cfg
new file mode 100644
index 0000000..f9baca5
--- /dev/null
+++ b/assets/configs/configs/buildables/overmind.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/overmind/overmind.md3
+modelScale 1.0
+mins -45 -45 -15
+maxs 45 45 95
+zOffset 0
diff --git a/assets/configs/configs/buildables/reactor.cfg b/assets/configs/configs/buildables/reactor.cfg
new file mode 100644
index 0000000..d724c44
--- /dev/null
+++ b/assets/configs/configs/buildables/reactor.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/reactor/reactor.md3
+mins -41 -41 -15
+maxs 41 41 95
+zOffset -2.0
+modelScale 0.85
diff --git a/assets/configs/configs/buildables/repeater.cfg b/assets/configs/configs/buildables/repeater.cfg
new file mode 100644
index 0000000..eec2824
--- /dev/null
+++ b/assets/configs/configs/buildables/repeater.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/repeater/repeater.md3
+modelScale 1.0
+mins -15 -15 -15
+maxs 15 15 25
+zOffset 0
diff --git a/assets/configs/configs/buildables/telenode.cfg b/assets/configs/configs/buildables/telenode.cfg
new file mode 100644
index 0000000..173a92f
--- /dev/null
+++ b/assets/configs/configs/buildables/telenode.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/telenode/telenode.md3
+modelScale 1.0
+mins -40 -40 -4
+maxs 40 40 6
+zOffset 0
diff --git a/assets/configs/configs/buildables/tesla.cfg b/assets/configs/configs/buildables/tesla.cfg
new file mode 100644
index 0000000..36d1e33
--- /dev/null
+++ b/assets/configs/configs/buildables/tesla.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/tesla/tesla.md3
+modelScale 1.0
+mins -22 -22 -40
+maxs 22 22 40
+zOffset 0
diff --git a/assets/configs/configs/buildables/trapper.cfg b/assets/configs/configs/buildables/trapper.cfg
new file mode 100644
index 0000000..0c3f0d0
--- /dev/null
+++ b/assets/configs/configs/buildables/trapper.cfg
@@ -0,0 +1,5 @@
+model 0 models/buildables/trapper/trapper.md3
+modelScale 1.0
+mins -15 -15 -15
+maxs 15 15 15
+zOffset 0
diff --git a/assets/configs/configs/classes/builder.cfg b/assets/configs/configs/classes/builder.cfg
new file mode 100644
index 0000000..dd1d665
--- /dev/null
+++ b/assets/configs/configs/classes/builder.cfg
@@ -0,0 +1,17 @@
+name "Granger"
+model builder
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud alien_builder_hud
+
+mins -20 -20 -20
+maxs 20 20 20
+crouchMaxs 20 20 20
+deadMins -20 -20 -4
+deadMaxs 20 20 4
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -8 15 13
diff --git a/assets/configs/configs/classes/builderupg.cfg b/assets/configs/configs/classes/builderupg.cfg
new file mode 100644
index 0000000..e1b73fc
--- /dev/null
+++ b/assets/configs/configs/classes/builderupg.cfg
@@ -0,0 +1,17 @@
+name "Advanced Granger"
+model builder
+modelScale 1.0
+skin advanced
+shadowScale 1.0
+hud alien_builder_hud
+
+mins -20 -20 -20
+maxs 20 20 20
+crouchMaxs 20 20 20
+deadMins -20 -20 -4
+deadMaxs 20 20 4
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -8 15 13
diff --git a/assets/configs/configs/classes/human_base.cfg b/assets/configs/configs/classes/human_base.cfg
new file mode 100644
index 0000000..6749bad
--- /dev/null
+++ b/assets/configs/configs/classes/human_base.cfg
@@ -0,0 +1,17 @@
+name "Human Base"
+model human_base
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud human_hud
+
+mins -15 -15 -24
+maxs 15 15 32
+crouchMaxs 15 15 16
+deadMins -15 -15 -4
+deadMaxs 15 15 4
+zOffset -2.0
+
+viewheight 24
+crouchViewheight 7
+shoulderOffsets -10 15 0
diff --git a/assets/configs/configs/classes/human_bsuit.cfg b/assets/configs/configs/classes/human_bsuit.cfg
new file mode 100644
index 0000000..0cdca1e
--- /dev/null
+++ b/assets/configs/configs/classes/human_bsuit.cfg
@@ -0,0 +1,17 @@
+name "Human Battlesuit"
+model human_bsuit
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud human_hud
+
+mins -15 -15 -38
+maxs 15 15 38
+crouchMaxs 15 15 38
+deadMins -15 -15 -4
+deadMaxs 15 15 4
+zOffset -16.0
+
+viewheight 29
+crouchViewheight 29
+shoulderOffsets -30 25 -2
diff --git a/assets/configs/configs/classes/level0.cfg b/assets/configs/configs/classes/level0.cfg
new file mode 100644
index 0000000..1497918
--- /dev/null
+++ b/assets/configs/configs/classes/level0.cfg
@@ -0,0 +1,17 @@
+name "Dretch"
+model level0
+modelScale 1.2
+skin default
+shadowScale 0.5
+hud alien_general_hud
+
+mins -15 -15 -15
+maxs 15 15 15
+crouchMaxs 15 15 15
+deadMins -15 -15 -15
+deadMaxs 15 15 15
+zOffset -5.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -5 0 17
diff --git a/assets/configs/configs/classes/level1.cfg b/assets/configs/configs/classes/level1.cfg
new file mode 100644
index 0000000..3add57e
--- /dev/null
+++ b/assets/configs/configs/classes/level1.cfg
@@ -0,0 +1,17 @@
+name "Basilisk"
+model level1
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud alien_general_hud
+
+mins -18 -18 -18
+maxs 18 18 18
+crouchMaxs 18 18 18
+deadMins -18 -18 -4
+deadMaxs 18 18 4
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -10 0 18
diff --git a/assets/configs/configs/classes/level1upg.cfg b/assets/configs/configs/classes/level1upg.cfg
new file mode 100644
index 0000000..28a4beb
--- /dev/null
+++ b/assets/configs/configs/classes/level1upg.cfg
@@ -0,0 +1,17 @@
+name "Advanced Basilisk"
+model level1
+modelScale 1.1666
+skin upgrade
+shadowScale 1.0
+hud alien_general_hud
+
+mins -21 -21 -21
+maxs 21 21 21
+crouchMaxs 21 21 21
+deadMins -21 -21 -4.666
+deadMaxs 21 21 4.666
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets -10 0 18
diff --git a/assets/configs/configs/classes/level2.cfg b/assets/configs/configs/classes/level2.cfg
new file mode 100644
index 0000000..999f9b5
--- /dev/null
+++ b/assets/configs/configs/classes/level2.cfg
@@ -0,0 +1,17 @@
+name "Marauder"
+model level2
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud alien_general_hud
+
+mins -22 -22 -22
+maxs 22 22 12
+crouchMaxs 22 22 12
+deadMins -22 -22 -4
+deadMaxs 22 22 4
+zOffset 0.0
+
+viewheight 8
+crouchViewheight 8
+shoulderOffsets 0 12 5
diff --git a/assets/configs/configs/classes/level2upg.cfg b/assets/configs/configs/classes/level2upg.cfg
new file mode 100644
index 0000000..5ea674c
--- /dev/null
+++ b/assets/configs/configs/classes/level2upg.cfg
@@ -0,0 +1,17 @@
+name "Advanced Marauder"
+model level2
+modelScale 1.1
+skin adv
+shadowScale 1.0
+hud alien_general_hud
+
+mins -24 -24 -24
+maxs 24 24 14
+crouchMaxs 24 24 14
+deadMins -24 -24 -4
+deadMaxs 24 24 4
+zOffset 0.0
+
+viewheight 10
+crouchViewheight 10
+shoulderOffsets 0 12 5
diff --git a/assets/configs/configs/classes/level3.cfg b/assets/configs/configs/classes/level3.cfg
new file mode 100644
index 0000000..6073201
--- /dev/null
+++ b/assets/configs/configs/classes/level3.cfg
@@ -0,0 +1,17 @@
+name "Dragoon"
+model level3
+modelScale 1.0
+skin default
+shadowScale 1.0
+hud alien_general_hud
+
+mins -26 -26 -23
+maxs 26 26 32
+crouchMaxs 26 26 32
+deadMins -26 -26 -4
+deadMaxs 26 26 4
+zOffset 0.0
+
+viewheight 24
+crouchViewheight 24
+shoulderOffsets -10 15 8
diff --git a/assets/configs/configs/classes/level3upg.cfg b/assets/configs/configs/classes/level3upg.cfg
new file mode 100644
index 0000000..e0e7455
--- /dev/null
+++ b/assets/configs/configs/classes/level3upg.cfg
@@ -0,0 +1,17 @@
+name "Advanced Dragoon"
+model level3
+modelScale 1.15
+skin adv
+shadowScale 1.0
+hud alien_general_hud
+
+mins -29 -29 -29
+maxs 29 29 37
+crouchMaxs 29 29 38
+deadMins -29 -29 -4
+deadMaxs 29 29 4
+zOffset 0.0
+
+viewheight 27
+crouchViewheight 27
+shoulderOffsets -10 17 12
diff --git a/assets/configs/configs/classes/level4.cfg b/assets/configs/configs/classes/level4.cfg
new file mode 100644
index 0000000..ad8482e
--- /dev/null
+++ b/assets/configs/configs/classes/level4.cfg
@@ -0,0 +1,17 @@
+name "Tyrant"
+model level4
+modelScale 1.0
+skin default
+shadowScale 2.0
+hud alien_general_hud
+
+mins -32 -32 -22
+maxs 32 32 70
+crouchMaxs 32 32 70
+deadMins -32 -32 -34
+deadMaxs 32 32 34
+zOffset 0.0
+
+viewheight 64
+crouchViewheight 64
+shoulderOffsets -20 -25 30
diff --git a/assets/configs/configs/classes/spectator.cfg b/assets/configs/configs/classes/spectator.cfg
new file mode 100644
index 0000000..eeec60c
--- /dev/null
+++ b/assets/configs/configs/classes/spectator.cfg
@@ -0,0 +1,17 @@
+name "Spectator"
+model ""
+modelScale 1.0
+skin ""
+shadowScale 1.0
+hud ""
+
+mins -12 -12 -12
+maxs 12 12 12
+crouchMaxs 12 12 12
+deadMins -12 -12 -12
+deadMaxs 12 12 12
+zOffset 0.0
+
+viewheight 0
+crouchViewheight 0
+shoulderOffsets 0 0 0
diff --git a/assets/emoticons/acidtube_1x1.tga b/assets/emoticons/acidtube_1x1.tga
new file mode 100644
index 0000000..aff4cb9
--- /dev/null
+++ b/assets/emoticons/acidtube_1x1.tga
Binary files differ
diff --git a/assets/emoticons/advbasilisk_1x1.tga b/assets/emoticons/advbasilisk_1x1.tga
new file mode 100644
index 0000000..f387d81
--- /dev/null
+++ b/assets/emoticons/advbasilisk_1x1.tga
Binary files differ
diff --git a/assets/emoticons/advdragoon_1x1.tga b/assets/emoticons/advdragoon_1x1.tga
new file mode 100644
index 0000000..fbbe685
--- /dev/null
+++ b/assets/emoticons/advdragoon_1x1.tga
Binary files differ
diff --git a/assets/emoticons/advmarauder_1x1.tga b/assets/emoticons/advmarauder_1x1.tga
new file mode 100644
index 0000000..19e2a85
--- /dev/null
+++ b/assets/emoticons/advmarauder_1x1.tga
Binary files differ
diff --git a/assets/emoticons/armoury_1x1.tga b/assets/emoticons/armoury_1x1.tga
new file mode 100644
index 0000000..f5ebc97
--- /dev/null
+++ b/assets/emoticons/armoury_1x1.tga
Binary files differ
diff --git a/assets/emoticons/barricade_1x1.tga b/assets/emoticons/barricade_1x1.tga
new file mode 100644
index 0000000..40efed1
--- /dev/null
+++ b/assets/emoticons/barricade_1x1.tga
Binary files differ
diff --git a/assets/emoticons/basilisk_1x1.tga b/assets/emoticons/basilisk_1x1.tga
new file mode 100644
index 0000000..59be142
--- /dev/null
+++ b/assets/emoticons/basilisk_1x1.tga
Binary files differ
diff --git a/assets/emoticons/blaster_1x1.tga b/assets/emoticons/blaster_1x1.tga
new file mode 100644
index 0000000..6860b70
--- /dev/null
+++ b/assets/emoticons/blaster_1x1.tga
Binary files differ
diff --git a/assets/emoticons/booster_1x1.tga b/assets/emoticons/booster_1x1.tga
new file mode 100644
index 0000000..a69f904
--- /dev/null
+++ b/assets/emoticons/booster_1x1.tga
Binary files differ
diff --git a/assets/emoticons/bsuit_1x1.tga b/assets/emoticons/bsuit_1x1.tga
new file mode 100644
index 0000000..867e63b
--- /dev/null
+++ b/assets/emoticons/bsuit_1x1.tga
Binary files differ
diff --git a/assets/emoticons/chaingun_2x1.tga b/assets/emoticons/chaingun_2x1.tga
new file mode 100644
index 0000000..8cddec8
--- /dev/null
+++ b/assets/emoticons/chaingun_2x1.tga
Binary files differ
diff --git a/assets/emoticons/ckit_2x1.tga b/assets/emoticons/ckit_2x1.tga
new file mode 100644
index 0000000..afd35cd
--- /dev/null
+++ b/assets/emoticons/ckit_2x1.tga
Binary files differ
diff --git a/assets/emoticons/defcomp_1x1.tga b/assets/emoticons/defcomp_1x1.tga
new file mode 100644
index 0000000..0e8ec49
--- /dev/null
+++ b/assets/emoticons/defcomp_1x1.tga
Binary files differ
diff --git a/assets/emoticons/dev_1x1.tga b/assets/emoticons/dev_1x1.tga
new file mode 100644
index 0000000..528b90c
--- /dev/null
+++ b/assets/emoticons/dev_1x1.tga
Binary files differ
diff --git a/assets/emoticons/dragoon_1x1.tga b/assets/emoticons/dragoon_1x1.tga
new file mode 100644
index 0000000..c13529c
--- /dev/null
+++ b/assets/emoticons/dragoon_1x1.tga
Binary files differ
diff --git a/assets/emoticons/dretch_1x1.tga b/assets/emoticons/dretch_1x1.tga
new file mode 100644
index 0000000..170b731
--- /dev/null
+++ b/assets/emoticons/dretch_1x1.tga
Binary files differ
diff --git a/assets/emoticons/egg_1x1.tga b/assets/emoticons/egg_1x1.tga
new file mode 100644
index 0000000..b96b9e5
--- /dev/null
+++ b/assets/emoticons/egg_1x1.tga
Binary files differ
diff --git a/assets/emoticons/featured_1x1.tga b/assets/emoticons/featured_1x1.tga
new file mode 100644
index 0000000..f5ffa28
--- /dev/null
+++ b/assets/emoticons/featured_1x1.tga
Binary files differ
diff --git a/assets/emoticons/flamer_2x1.tga b/assets/emoticons/flamer_2x1.tga
new file mode 100644
index 0000000..767a3c0
--- /dev/null
+++ b/assets/emoticons/flamer_2x1.tga
Binary files differ
diff --git a/assets/emoticons/granger_1x1.tga b/assets/emoticons/granger_1x1.tga
new file mode 100644
index 0000000..cab0f19
--- /dev/null
+++ b/assets/emoticons/granger_1x1.tga
Binary files differ
diff --git a/assets/emoticons/grenade_1x1.tga b/assets/emoticons/grenade_1x1.tga
new file mode 100644
index 0000000..5ee49b0
--- /dev/null
+++ b/assets/emoticons/grenade_1x1.tga
Binary files differ
diff --git a/assets/emoticons/hive_1x1.tga b/assets/emoticons/hive_1x1.tga
new file mode 100644
index 0000000..29d6a9a
--- /dev/null
+++ b/assets/emoticons/hive_1x1.tga
Binary files differ
diff --git a/assets/emoticons/hovel_1x1.tga b/assets/emoticons/hovel_1x1.tga
new file mode 100644
index 0000000..d45dd33
--- /dev/null
+++ b/assets/emoticons/hovel_1x1.tga
Binary files differ
diff --git a/assets/emoticons/human_1x1.tga b/assets/emoticons/human_1x1.tga
new file mode 100644
index 0000000..7290366
--- /dev/null
+++ b/assets/emoticons/human_1x1.tga
Binary files differ
diff --git a/assets/emoticons/lasgun_2x1.tga b/assets/emoticons/lasgun_2x1.tga
new file mode 100644
index 0000000..3171c7e
--- /dev/null
+++ b/assets/emoticons/lasgun_2x1.tga
Binary files differ
diff --git a/assets/emoticons/lcannon_2x1.tga b/assets/emoticons/lcannon_2x1.tga
new file mode 100644
index 0000000..f97339c
--- /dev/null
+++ b/assets/emoticons/lcannon_2x1.tga
Binary files differ
diff --git a/assets/emoticons/marauder_1x1.tga b/assets/emoticons/marauder_1x1.tga
new file mode 100644
index 0000000..a3c7cba
--- /dev/null
+++ b/assets/emoticons/marauder_1x1.tga
Binary files differ
diff --git a/assets/emoticons/mdriver_2x1.tga b/assets/emoticons/mdriver_2x1.tga
new file mode 100644
index 0000000..d129bd6
--- /dev/null
+++ b/assets/emoticons/mdriver_2x1.tga
Binary files differ
diff --git a/assets/emoticons/medstat_1x1.tga b/assets/emoticons/medstat_1x1.tga
new file mode 100644
index 0000000..fc26b53
--- /dev/null
+++ b/assets/emoticons/medstat_1x1.tga
Binary files differ
diff --git a/assets/emoticons/official_1x1.tga b/assets/emoticons/official_1x1.tga
new file mode 100644
index 0000000..2863a4f
--- /dev/null
+++ b/assets/emoticons/official_1x1.tga
Binary files differ
diff --git a/assets/emoticons/overmind_1x1.tga b/assets/emoticons/overmind_1x1.tga
new file mode 100644
index 0000000..0d2c413
--- /dev/null
+++ b/assets/emoticons/overmind_1x1.tga
Binary files differ
diff --git a/assets/emoticons/painsaw_2x1.tga b/assets/emoticons/painsaw_2x1.tga
new file mode 100644
index 0000000..b12f9c8
--- /dev/null
+++ b/assets/emoticons/painsaw_2x1.tga
Binary files differ
diff --git a/assets/emoticons/prifle_2x1.tga b/assets/emoticons/prifle_2x1.tga
new file mode 100644
index 0000000..c36945f
--- /dev/null
+++ b/assets/emoticons/prifle_2x1.tga
Binary files differ
diff --git a/assets/emoticons/reactor_1x1.tga b/assets/emoticons/reactor_1x1.tga
new file mode 100644
index 0000000..cbbc21e
--- /dev/null
+++ b/assets/emoticons/reactor_1x1.tga
Binary files differ
diff --git a/assets/emoticons/repeater_1x1.tga b/assets/emoticons/repeater_1x1.tga
new file mode 100644
index 0000000..c2c3712
--- /dev/null
+++ b/assets/emoticons/repeater_1x1.tga
Binary files differ
diff --git a/assets/emoticons/rifle_2x1.tga b/assets/emoticons/rifle_2x1.tga
new file mode 100644
index 0000000..b59ca2a
--- /dev/null
+++ b/assets/emoticons/rifle_2x1.tga
Binary files differ
diff --git a/assets/emoticons/shotgun_2x1.tga b/assets/emoticons/shotgun_2x1.tga
new file mode 100644
index 0000000..32e1de1
--- /dev/null
+++ b/assets/emoticons/shotgun_2x1.tga
Binary files differ
diff --git a/assets/emoticons/telenode_1x1.tga b/assets/emoticons/telenode_1x1.tga
new file mode 100644
index 0000000..fce534b
--- /dev/null
+++ b/assets/emoticons/telenode_1x1.tga
Binary files differ
diff --git a/assets/emoticons/tent_1x1.tga b/assets/emoticons/tent_1x1.tga
new file mode 100644
index 0000000..6d75514
--- /dev/null
+++ b/assets/emoticons/tent_1x1.tga
Binary files differ
diff --git a/assets/emoticons/tesla_1x1.tga b/assets/emoticons/tesla_1x1.tga
new file mode 100644
index 0000000..de8a816
--- /dev/null
+++ b/assets/emoticons/tesla_1x1.tga
Binary files differ
diff --git a/assets/emoticons/trapper_1x1.tga b/assets/emoticons/trapper_1x1.tga
new file mode 100644
index 0000000..b6dc1c1
--- /dev/null
+++ b/assets/emoticons/trapper_1x1.tga
Binary files differ
diff --git a/assets/emoticons/turret_1x1.tga b/assets/emoticons/turret_1x1.tga
new file mode 100644
index 0000000..f606ac2
--- /dev/null
+++ b/assets/emoticons/turret_1x1.tga
Binary files differ
diff --git a/assets/emoticons/tyrant_1x1.tga b/assets/emoticons/tyrant_1x1.tga
new file mode 100644
index 0000000..29e37b0
--- /dev/null
+++ b/assets/emoticons/tyrant_1x1.tga
Binary files differ
diff --git a/assets/gfx/2d/bigchars.tga b/assets/gfx/2d/bigchars.tga
new file mode 100644
index 0000000..6579120
--- /dev/null
+++ b/assets/gfx/2d/bigchars.tga
Binary files differ
diff --git a/assets/gfx/2d/crosshair-psaw.tga b/assets/gfx/2d/crosshair-psaw.tga
new file mode 100644
index 0000000..d3c0e06
--- /dev/null
+++ b/assets/gfx/2d/crosshair-psaw.tga
Binary files differ
diff --git a/assets/gfx/2d/teamoverlay.tga b/assets/gfx/2d/teamoverlay.tga
new file mode 100644
index 0000000..7ef4646
--- /dev/null
+++ b/assets/gfx/2d/teamoverlay.tga
Binary files differ
diff --git a/assets/gfx/level3upg/barb_splash.tga b/assets/gfx/level3upg/barb_splash.tga
new file mode 100644
index 0000000..d0e41c5
--- /dev/null
+++ b/assets/gfx/level3upg/barb_splash.tga
Binary files differ
diff --git a/assets/models/weapons/abuildupg/weapon.cfg b/assets/models/weapons/abuildupg/weapon.cfg
new file mode 100644
index 0000000..0646359
--- /dev/null
+++ b/assets/models/weapons/abuildupg/weapon.cfg
@@ -0,0 +1,19 @@
+disableIn3rdPerson
+crosshair 15 gfx/2d/crosshair-alien_s
+
+icon icons/icona_builder
+
+secondary
+{
+ flashSound 0 models/weapons/abuildupg/flash0.wav
+ impactFleshSound 0 models/weapons/abuildupg/impactflesh0.wav
+ alwaysImpact
+}
+
+tertiary
+{
+ missileModel models/weapons/level3upg/missile.md3
+
+ impactMark 64 creep
+ impactSound 0 sound/misc/organic_bounce.wav
+}
diff --git a/assets/models/weapons/lcannon/warning2.wav b/assets/models/weapons/lcannon/warning2.wav
new file mode 100644
index 0000000..bd7ea0e
--- /dev/null
+++ b/assets/models/weapons/lcannon/warning2.wav
Binary files differ
diff --git a/assets/models/weapons/level0/weapon.cfg b/assets/models/weapons/level0/weapon.cfg
new file mode 100644
index 0000000..2e52551
--- /dev/null
+++ b/assets/models/weapons/level0/weapon.cfg
@@ -0,0 +1,9 @@
+disableIn3rdPerson
+crosshair 15 gfx/2d/crosshair-alien_s
+
+icon icons/icona_lev0
+
+primary
+{
+ flashSound 0 models/weapons/level0/flash0.wav
+}
diff --git a/assets/models/weapons/level1upg/weapon.cfg b/assets/models/weapons/level1upg/weapon.cfg
new file mode 100644
index 0000000..5b60e8c
--- /dev/null
+++ b/assets/models/weapons/level1upg/weapon.cfg
@@ -0,0 +1,17 @@
+disableIn3rdPerson
+crosshair 15 gfx/2d/crosshair-alien_s
+
+icon icons/icona_lev1
+
+primary
+{
+ flashSound 0 models/weapons/level1/flash0.wav
+ impactFleshSound 0 models/weapons/level1/impactflesh0.wav
+ alwaysImpact
+}
+
+secondary
+{
+ flashSound 0 models/weapons/level1upg/gas.wav
+ muzzleParticleSystem models/weapons/level1upg/muzzlePS
+}
diff --git a/assets/models/weapons/level2/weapon.cfg b/assets/models/weapons/level2/weapon.cfg
new file mode 100644
index 0000000..927a731
--- /dev/null
+++ b/assets/models/weapons/level2/weapon.cfg
@@ -0,0 +1,11 @@
+disableIn3rdPerson
+crosshair 15 gfx/2d/crosshair-alien_s
+
+icon icons/icona_lev2
+
+primary
+{
+ flashSound 0 models/weapons/level2/flash0.wav
+ impactFleshSound 0 models/weapons/level2/impactflesh0.wav
+ alwaysImpact
+}
diff --git a/assets/models/weapons/level3/weapon.cfg b/assets/models/weapons/level3/weapon.cfg
new file mode 100644
index 0000000..faa2c18
--- /dev/null
+++ b/assets/models/weapons/level3/weapon.cfg
@@ -0,0 +1,16 @@
+disableIn3rdPerson
+crosshair 15 gfx/2d/crosshair-alien_s
+
+icon icons/icona_lev3
+
+primary
+{
+ flashSound 0 models/weapons/level3/flash0.wav
+ impactFleshSound 0 models/weapons/level3/impactflesh0.wav
+ alwaysImpact
+}
+
+secondary
+{
+ flashSound 0 models/weapons/level3/pounce.wav
+}
diff --git a/assets/scripts/crosshairs.shader b/assets/scripts/crosshairs.shader
new file mode 100644
index 0000000..278a296
--- /dev/null
+++ b/assets/scripts/crosshairs.shader
@@ -0,0 +1,96 @@
+gfx/2d/crosshair-alien_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-alien.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-rifle_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-rifle.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-prifle_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-prifle.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-chaingun_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-chaingun.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-mdriver_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-mdriver.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-lcannon_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-lcannon.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-lgun_s
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-lgun.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-flamer_s
+{
+ nopicmip
+ {
+ clampmap gfx/2d/crosshair-flamer1.tga
+ blendfunc blend
+ tcmod rotate 5
+ rgbGen vertex
+ }
+ {
+ clampmap gfx/2d/crosshair-flamer1.tga
+ blendfunc blend
+ tcmod rotate -5
+ rgbGen vertex
+ }
+}
+
+gfx/2d/crosshair-psaw
+{
+ nopicmip
+ {
+ map gfx/2d/crosshair-psaw.tga
+ blendfunc blend
+ rgbGen vertex
+ }
+} \ No newline at end of file
diff --git a/assets/scripts/mdriver.trail b/assets/scripts/mdriver.trail
new file mode 100644
index 0000000..b1545e6
--- /dev/null
+++ b/assets/scripts/mdriver.trail
@@ -0,0 +1,10 @@
+models/weapons/mdriver/fireTS
+{
+ beam
+ {
+ shader gfx/mdriver/trail
+ width 3.0 3.0
+ textureType stretch 0.94 0.03
+ }
+ lifeTime 70
+}
diff --git a/assets/scripts/misc.particle b/assets/scripts/misc.particle
new file mode 100644
index 0000000..40f3cc0
--- /dev/null
+++ b/assets/scripts/misc.particle
@@ -0,0 +1,378 @@
+firstPersonPoisonCloudPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/poisoncloud
+
+ displacement 0 0 0 ~32.0
+
+ parentVelocityFraction 1.0
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 16
+ velocity 0 0 1 ~0
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 1 0
+
+ radius 0 10.0 40.0
+ alpha 0 0.5 0.0
+ rotation 0 ~360 -
+ bounce 0.5
+
+ lifeTime 1000
+ }
+
+ count 400
+ delay 0
+ period 20 - ~0%
+ }
+}
+
+poisonCloudedPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/poisoncloud
+
+ displacement 0 0 0 ~6.0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 60
+ velocity 0 0 0 ~50
+
+ radius 0 4.0 12.0
+ alpha 0 0.25 0.0
+ rotation 0 ~360 -
+
+ lifeTime 800
+ }
+
+ count 100
+ delay 0
+ period 50 200 ~0%
+ }
+}
+
+
+alienEvolvePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/green_acid
+
+ displacement 0 0 0 ~0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 150~75%
+ velocity 0 0 1 ~50
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 -1 0
+
+ radius 0 5.0 30.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.2
+
+ lifeTime 1000
+ }
+
+ count 30
+ delay 0
+ period 5 - ~0%
+ }
+}
+
+alienBleedPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/damage/blood.tga
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .85 0
+ rotation 0 ~-15 ~15
+ bounce 0.0
+ color 0 { 1.0 1.0 0.6 } -
+
+ lifeTime 400~100
+ }
+
+ particle
+ {
+ shader sync gfx/damage/blood.tga
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .85 0
+ rotation 0 ~165 ~195
+ bounce 0.0
+ color 0 { 1.0 1.0 0.6 } -
+
+ lifeTime 400~100
+ }
+
+ count 2
+ delay 0
+ period 0 - 0
+ }
+
+ thirdPersonOnly
+}
+
+alienBuildableBleedPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/damage/blood.tga
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .85 0
+ rotation 0 ~-15 ~15
+ bounce 0.0
+ color 0 { 1.0 1.0 0.6 } -
+
+ lifeTime 400~100
+ }
+
+ particle
+ {
+ shader sync gfx/damage/blood.tga
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .85 0
+ rotation 0 ~165 ~195
+ bounce 0.0
+ color 0 { 1.0 1.0 0.6 } -
+
+ lifeTime 400~100
+ }
+
+ count 2
+ delay 0
+ period 0 - 0
+ }
+}
+
+
+humanBleedPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/damage/blood.tga
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .75 0
+ rotation 0 ~-15 ~15
+ bounce 0.0
+ color 0 { 0.8 0.2 0.2 } -
+
+ lifeTime 400~100
+ }
+
+ particle
+ {
+ shader sync gfx/damage/blood.tga
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .75 0
+ rotation 0 ~-15 ~15
+ bounce 0.0
+ color 0 { 0.8 0.2 0.2 } -
+
+ lifeTime 400~100
+ }
+
+ count 2
+ delay 0
+ period 0 - 0
+ }
+
+ thirdPersonOnly
+}
+
+humanBuildableBleedPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync flame3 flame4 flame5 flame6 flame7 flame8 flame9 flame10 flame11 flame12 flame13 flame14 flame15 flame16 flame17 flame18 flame19 flame20 flame21 flame22 flame23 flame24 flame25
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .75 0
+ rotation 0 ~-15 ~15
+ bounce 0.0
+ color 0 { 0.8 0.2 0.2 } -
+
+ lifeTime 200~50
+ }
+
+ particle
+ {
+ shader sync flame3 flame4 flame5 flame6 flame7 flame8 flame9 flame10 flame11 flame12 flame13 flame14 flame15 flame16 flame17 flame18 flame19 flame20 flame21 flame22 flame23 flame24 flame25
+ displacement 0 0 0 0
+
+ velocityType normal
+
+ velocityDir linear
+
+ velocityMagnitude 15
+ velocity 0 0 0 ~35
+
+ accelerationType static
+ accelerationDir linear
+ acceleration 0 0 -1 ~5
+ accelerationMagnitude 25
+
+ radius 0 5 8
+ alpha 250 .75 0
+ rotation 0 ~-15 ~15
+ bounce 0.0
+ color 0 { 0.8 0.2 0.2 } -
+
+ lifeTime 200~50
+ }
+
+ count 2
+ delay 0
+ period 0 - 0
+ }
+
+
+}
+
+disconnectPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/bubble
+ displacement 0 0 0 ~60
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 15
+ velocity 0 0 1 ~90
+
+ radius 0 24 32
+ alpha 0 1.0 -
+
+ lifeTime 1000~300
+ }
+
+ count 3
+ delay 0
+ period 0 - 0
+ }
+}
diff --git a/assets/scripts/ui.shader b/assets/scripts/ui.shader
new file mode 100644
index 0000000..a99d4f7
--- /dev/null
+++ b/assets/scripts/ui.shader
@@ -0,0 +1,19 @@
+ui/assets/neutral/squad_h
+{
+ nopicmip
+ {
+ map ui/assets/neutral/squad_h.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ rgbgen vertex
+ }
+}
+
+ui/assets/neutral/squad_v
+{
+ nopicmip
+ {
+ map ui/assets/neutral/squad_v.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ rgbgen vertex
+ }
+}
diff --git a/assets/scripts/weapons.particle b/assets/scripts/weapons.particle
new file mode 100644
index 0000000..cc4854e
--- /dev/null
+++ b/assets/scripts/weapons.particle
@@ -0,0 +1,890 @@
+models/weapons/hive/missilePS
+{
+ ejector
+ {
+ particle
+ {
+ shader 20 models/weapons/hive/sprite1.tga models/weapons/hive/sprite2.tga
+
+ displacement 0 0 0 ~4.0
+
+ parentVelocityFraction 0.5
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 100
+ velocity 0 0 1 ~180
+
+ accelerationType cent
+ accelerationDir point
+ accelerationMagnitude 2000
+
+ rotation 0 -20.0~40.0 -20.0~40.0
+ radius 0 2.0 2.0
+ alpha 0 1.0 0.0
+ bounce 0.5
+
+ lifeTime 4000
+ }
+
+ count infinite
+ delay 0
+ period 100 - ~0%
+ }
+}
+
+models/weapons/rifle/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/rifle/verysmallrock
+
+ displacement 0 0 0 ~4.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 100
+ velocity 0 0 0 ~20
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 600
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 1.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.0
+
+ lifeTime 350
+ }
+
+ count 0~2
+ delay ~100
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/smoke
+
+ displacement 0 0 0 ~1.0
+ normalDisplacement 3.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 20
+ velocity 0 0 0 0
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 1 0
+
+ radius 0 4.0 6.0
+ alpha 0 0.5 0.0
+ rotation 0 ~360 -
+ bounce 0.0
+
+ lifeTime 250
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ normalDisplacement 3.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 200
+ velocity 0 0 0 ~160
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 600
+ acceleration 0 0 -1 0
+
+ radius 0 3.0 0.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.0
+
+ lifeTime 200
+ }
+
+ count 0~1
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/rifle/muzzlePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/smoke
+
+ displacement 0 0 0 ~0.0
+
+ parentVelocityFraction 0.9
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 20
+ velocity 0 0 0 0
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 1 0
+
+ radius 0 2.0 4.0
+ alpha 0 0.4 0.0
+ rotation 0 ~360 -
+ bounce 0.0
+
+ lifeTime 200
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ model models/weapons/shells/rifle-shell.md3
+
+ displacement -5 -3 0 ~0.0
+
+ parentVelocityFraction 0.85
+
+ velocityType static_transform
+ velocityDir linear
+ velocityMagnitude 200
+ velocity 0 -1 3 ~10
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 -
+ bounce 0.5
+
+ lifeTime 5000
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/shotgun/muzzlePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/smoke
+
+ displacement 0 0 0 ~0.0
+
+ parentVelocityFraction 0.9
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 20
+ velocity 0 0 0 0
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 1 0
+
+ radius 0 2.0 4.0
+ alpha 0 0.4 0.0
+ rotation 0 ~360 -
+ bounce 0.0
+
+ lifeTime 200
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ model models/weapons/shells/shotgun-shell.md3
+
+ displacement -5 -3 0 ~0.0
+
+ parentVelocityFraction 0.85
+
+ velocityType static_transform
+ velocityDir linear
+ velocityMagnitude 200
+ velocity 0 -1 3 ~10
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 -
+ bounce 0.5
+
+ lifeTime 5000
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/chaingun/muzzlePS
+{
+ ejector
+ {
+ particle
+ {
+ model models/weapons/shells/rifle-shell.md3
+
+ displacement -5 -3 0 ~0.0
+
+ parentVelocityFraction 0.85
+
+ velocityType static_transform
+ velocityDir linear
+ velocityMagnitude 200
+ velocity 0 -1 3 ~10
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 -
+ bounce 0.5
+
+ lifeTime 5000
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/flamer/muzzlePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync flame3 flame4 flame5 flame6 flame7 flame8 flame9 flame10 flame11 flame12 flame13 flame14 flame15 flame16 flame17 flame18 flame19 flame20 flame21 flame22 flame23 flame24 flame25
+ displacement 0 0 0 ~0.0
+
+ parentVelocityFraction 0.65
+
+ velocityType cent
+ velocityDir linear
+ velocityMagnitude 300
+ velocity 0 0 0 ~0
+
+ physicsRadius 15
+
+ radius 0 4.0 40.0
+ alpha 0 1.0 1.0
+ rotation 0 ~360 -
+ bounce 0.1
+
+ lifeTime 800
+ }
+
+ count infinite
+ delay 0
+ period 15 - ~0%
+ }
+}
+
+models/weapons/level1upg/muzzlePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/poisoncloud
+
+ displacement 0 0 0 ~0.0
+
+ parentVelocityFraction 1.0
+
+ velocityType cent
+ velocityDir linear
+ velocityMagnitude 80
+ velocity 0 0 0 ~50
+
+ radius 0 10.0 25.0
+ alpha 0 0.5 0.0
+ rotation 0 ~360 -
+ bounce 1.0
+
+ lifeTime 800
+ }
+
+ count 20
+ delay 0
+ period 40 - ~0%
+ }
+}
+
+models/weapons/blaster/missilePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ displacement 0 0 0 ~2.0
+
+ parentVelocityFraction 0.5
+
+ radius 0 1.5 0.0
+ alpha 0 1.0 0.0
+ bounce 0.01
+
+ lifeTime 400
+ }
+
+ count infinite
+ delay 0
+ period 10 - ~0%
+ }
+}
+
+models/weapons/prifle/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/prifle/red_blob
+
+ radius 0 3.0 6.0
+ alpha 70 1.0 0.0
+ rotation 0 ~360 -
+
+ lifeTime 140
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/prifle/missilePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/prifle/red_blob
+
+ parentVelocityFraction 0.8
+
+ radius 0 2.0 1.5
+ alpha 0 0.8 0.0
+ bounce 0.01
+
+ lifeTime 400
+ }
+
+ count infinite
+ delay 0
+ period 10 - ~0%
+ }
+}
+
+models/weapons/mdriver/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/mdriver/green_particle
+
+ displacement 0 0 0 ~2.0
+
+ normalDisplacement 10.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 400
+ velocity 0 0 0 ~80
+
+ accelerationType normal
+ accelerationDir linear
+ accelerationMagnitude 200
+ acceleration 0 0 1 ~360
+
+ radius 0 6.0 4.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.5
+
+ lifeTime 1000
+ }
+
+ count 10
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/lcannon/missilePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ displacement 0 0 0 ~3.0
+
+ parentVelocityFraction 1.0
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 120
+ velocity 0 0 1 ~360
+
+ radius 0 1.0 5.0
+ alpha 0 1.0 0.0
+ bounce 0.1
+
+ lifeTime 1000
+ }
+
+ count infinite
+ delay 0
+ period 50 - ~0%
+ }
+}
+
+models/weapons/lcannon/secondaryMissilePS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ displacement 0 0 0 ~3.0
+
+ parentVelocityFraction 0.5
+
+ radius 0 2.0 0.0
+ alpha 0 1.0 0.0
+ bounce 0.1
+
+ lifeTime 400
+ }
+
+ count infinite
+ delay 0
+ period 25 - ~0%
+ }
+}
+
+models/weapons/lcannon/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ radius 0 8.0 16.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+
+ scaleWithCharge 0.10
+
+ lifeTime 250
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ displacement 0 0 0 ~2.0
+
+ normalDisplacement 10.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 200
+ velocity 0 0 0 ~160
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 5.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.8
+
+ lifeTime 2000~1000
+ }
+
+ count 30
+ delay 0
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/lcannon/primary
+
+ displacement 0 0 0 ~10.0
+
+ normalDisplacement 15.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 100
+ velocity 0 0 0 ~160
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 150
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 0.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 1.0
+
+ scaleWithCharge 0.10
+
+ lifeTime 1000~1000
+ }
+
+ count 6
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/lcannon/secondaryImpactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ radius 0 8.0 16.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+
+ lifeTime 250
+ }
+
+ count 1
+ delay 0
+ period 0 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/blaster/orange_particle
+
+ displacement 0 0 0 ~2.0
+
+ normalDisplacement 10.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 150
+ velocity 0 0 0 ~160
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 -1 0
+
+ radius 0 1.0 5.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.8
+
+ lifeTime 2000~1000
+ }
+
+ count 10
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/psaw/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/psaw/blue_particle
+
+ displacement 0 0 0 ~2.0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 100
+ velocity 0 0 -1 ~25
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 -1 ~10
+
+ radius 0 1.0~2.0 3.0~2.0
+ alpha 0 1.0 1.0
+ rotation 0 ~360 -
+ bounce 0.5
+
+ lifeTime 1000
+ }
+
+ count 3
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/lasgun/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/lasgun/purple_particle
+
+ displacement 0 0 0 ~2.0
+ normalDisplacement 7.0
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 100
+ velocity 0 0 0 ~90
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 600
+ acceleration 0 0 -1 ~10
+
+ radius 0 3.0~2.0 0.0
+ alpha 0 1.0 1.0
+ rotation 0 ~360 -
+ bounce 0.5
+
+ lifeTime 500
+ }
+
+ count 3
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/grenade/impactTrailPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync flame3 flame4 flame5 flame6 flame7 flame8 flame9 flame10 flame11 flame12 flame13 flame14 flame15 flame16 flame17 flame18 flame19 flame20 flame21 flame22 flame23 flame24 flame25
+
+ displacement 0 0 0 ~0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 30
+ velocity 0 0 -1 ~0
+
+ radius 0 30.0 10.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0
+
+ lifeTime 500
+ }
+
+ count 5
+ delay 0
+ period 40 - 0
+ }
+}
+
+models/weapons/grenade/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync flame3 flame4 flame5 flame6 flame7 flame8 flame9 flame10 flame11 flame12 flame13 flame14 flame15 flame16 flame17 flame18 flame19 flame20 flame21 flame22 flame23 flame24 flame25
+
+ displacement 0 0 11 ~0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 200~75%
+ velocity 0 0 1 ~10
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 300
+ acceleration 0 0 -1 0
+
+ radius 0 10.0 40.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0
+
+ lifeTime 500
+
+ childSystem models/weapons/grenade/impactTrailPS
+ }
+
+ count 5
+ delay 0
+ period 10 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/grenade/flare_01
+
+ displacement 0 0 8 ~0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 10~50%
+ velocity 0 0 1 ~60
+
+ radius 0 100.0 200.0
+ alpha 250 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0.0
+
+ lifeTime 300
+ }
+
+ count 1
+ delay 0
+ period 10 - ~0%
+ }
+
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/sprites/spark
+
+ displacement 0 0 8 ~0
+
+ velocityType static
+ velocityDir linear
+ velocityMagnitude 700~3%
+ velocity 0 0 1 ~180
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 1 0
+
+ radius 0 10.0 2.0
+ alpha 0 1.0 0.0
+ rotation 0 ~360 -
+ bounce 0
+
+ lifeTime 300
+ }
+
+ count 150
+ delay 0
+ period 0 - ~0%
+ }
+}
+
+models/weapons/level3upg/impactPS
+{
+ ejector
+ {
+ particle
+ {
+ shader sync gfx/level3upg/barb_splash
+
+ displacement 0 0 0 ~8
+
+ velocityType normal
+ velocityDir linear
+ velocityMagnitude 800
+ velocity 0 0 1 ~80
+
+ accelerationType static
+ accelerationDir linear
+ accelerationMagnitude 800
+ acceleration 0 0 -1 0
+
+ radius 0 3.0~2.0 0.0
+ alpha 0 1.0 1.0
+ rotation 0 ~360 -
+ bounce 0.4~100%
+
+ lifeTime 175
+ }
+
+ count 12
+ delay 0
+ period 0 - ~0%
+ }
+}
diff --git a/assets/scripts/weapons.shader b/assets/scripts/weapons.shader
new file mode 100644
index 0000000..960aecb
--- /dev/null
+++ b/assets/scripts/weapons.shader
@@ -0,0 +1,93 @@
+gfx/blaster/orange_particle
+{
+ cull disable
+ {
+ map gfx/blaster/orange_particle.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ alphaGen vertex
+ rgbGen vertex
+ }
+}
+
+gfx/mdriver/green_particle
+{
+ cull disable
+ {
+ map gfx/mdriver/green_particle.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ rgbGen vertex
+ alphaGen vertex
+ }
+}
+
+gfx/mdriver/trail
+{
+ nomipmaps
+ cull disable
+ {
+ map gfx/mdriver/trail.tga
+ blendFunc blend
+ }
+}
+
+gfx/psaw/blue_particle
+{
+ cull disable
+ {
+ map gfx/psaw/blue_particle.jpg
+ blendFunc GL_ONE GL_ONE
+ alphaGen vertex
+ rgbGen vertex
+ }
+}
+
+gfx/rifle/verysmallrock
+{
+ cull disable
+ {
+ map gfx/rifle/verysmallrock.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ alphaGen vertex
+ rgbGen vertex
+ }
+}
+
+gfx/prifle/red_blob
+{
+ cull disable
+ {
+ map gfx/prifle/red_blob.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ alphaGen vertex
+ }
+}
+
+gfx/prifle/red_streak
+{
+ nomipmaps
+ cull disable
+ {
+ map gfx/prifle/red_streak.tga
+ blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
+ alphaGen vertex
+ }
+}
+
+gfx/lcannon/primary
+{
+ cull disable
+ {
+ animmap 24 gfx/lcannon/primary_1.jpg gfx/lcannon/primary_2.jpg gfx/lcannon/primary_3.jpg gfx/lcannon/primary_4.jpg
+ blendFunc GL_ONE GL_ONE
+ }
+}
+
+gfx/lasgun/purple_particle
+{
+ cull disable
+ {
+ map gfx/lasgun/purple_particle.tga
+ blendFunc GL_ONE GL_ONE
+ }
+}
+
diff --git a/assets/sound/weapons/click.wav b/assets/sound/weapons/click.wav
new file mode 100644
index 0000000..3a04e10
--- /dev/null
+++ b/assets/sound/weapons/click.wav
Binary files differ
diff --git a/assets/ui/assets/alien/buildstat.cfg b/assets/ui/assets/alien/buildstat.cfg
new file mode 100644
index 0000000..318d401
--- /dev/null
+++ b/assets/ui/assets/alien/buildstat.cfg
@@ -0,0 +1,37 @@
+// config for the building status indicators that builders see
+// NOTES:
+// * all characters (text/icons) are square
+// * character size is derived totally from frameHeight and vertialMargin
+// * healthPadding is NOT used compensated for in the margins
+
+frameShader "ui/assets/alien/buildstat/frame"
+frameWidth 150
+frameHeight 30
+
+healthPadding 2
+healthSevereColor 0.24 0.02 0.02 1
+healthHighColor 0.32 0.04 0.04 1
+healthElevatedColor 0.40 0.06 0.06 1
+healthGuardedColor 0.48 0.08 0.08 1
+healthLowColor 0.56 0.10 0.10 1
+
+// this gets drawn over frame and health, but numbers and icons go on top of it
+overlayShader "ui/assets/alien/buildstat/overlay"
+overlayWidth 156
+overlayHeight 36
+
+// PERCENT of frameHeight to use for top/bottom margin of icons/text
+// value is for total of top and bottom margins
+// valid values between 0.0 and 1.0
+verticalMargin 0.5
+
+// number of CHARS worth of space that should be used for left/right margins
+// value is for one side only
+// char width is determined by frameHeight and verticalMargin
+horizontalMargin 1.0
+
+markedShader "ui/assets/alien/buildstat/mark"
+noPowerShader "ui/assets/alien/buildstat/nopower"
+
+backColor 1.0 1.0 1.0 1
+foreColor 0.0 0.0 0.0 1
diff --git a/assets/ui/assets/alien/buildstat/frame.tga b/assets/ui/assets/alien/buildstat/frame.tga
new file mode 100644
index 0000000..3b1e1f5
--- /dev/null
+++ b/assets/ui/assets/alien/buildstat/frame.tga
Binary files differ
diff --git a/assets/ui/assets/alien/buildstat/green.tga b/assets/ui/assets/alien/buildstat/green.tga
new file mode 100644
index 0000000..21a70b7
--- /dev/null
+++ b/assets/ui/assets/alien/buildstat/green.tga
Binary files differ
diff --git a/assets/ui/assets/alien/buildstat/health.tga b/assets/ui/assets/alien/buildstat/health.tga
new file mode 100644
index 0000000..fa26977
--- /dev/null
+++ b/assets/ui/assets/alien/buildstat/health.tga
Binary files differ
diff --git a/assets/ui/assets/alien/buildstat/mark.tga b/assets/ui/assets/alien/buildstat/mark.tga
new file mode 100644
index 0000000..ef9123c
--- /dev/null
+++ b/assets/ui/assets/alien/buildstat/mark.tga
Binary files differ
diff --git a/assets/ui/assets/alien/buildstat/overlay.tga b/assets/ui/assets/alien/buildstat/overlay.tga
new file mode 100644
index 0000000..64a2358
--- /dev/null
+++ b/assets/ui/assets/alien/buildstat/overlay.tga
Binary files differ
diff --git a/assets/ui/assets/human/buildstat.cfg b/assets/ui/assets/human/buildstat.cfg
new file mode 100644
index 0000000..c66b618
--- /dev/null
+++ b/assets/ui/assets/human/buildstat.cfg
@@ -0,0 +1,39 @@
+// config for the building status indicators that builders see
+// NOTES:
+// * all characters (text/icons) are square
+// * character size is derived totally from frameHeight and vertialMargin
+// * healthPadding is NOT used compensated for in the margins
+
+frameShader "ui/assets/human/buildstat/frame"
+frameWidth 150
+frameHeight 30
+
+healthPadding 2
+
+// Homeworld Security Advisory System
+healthSevereColor 0.83 0.03 0.02 1
+healthHighColor 0.84 0.48 0.03 1
+healthElevatedColor 0.82 0.82 0.00 1
+healthGuardedColor 0.19 0.65 0.00 1
+healthLowColor 0.27 0.49 0.55 1
+
+// this gets drawn over frame and health, but numbers and icons go on top of it
+overlayShader ""
+overlayWidth 160
+overlayHeight 40
+
+// PERCENT of frameHeight to use for top/bottom margin of icons/text
+// value is for total of top and bottom margins
+// valid values between 0.0 and 1.0
+verticalMargin 0.5
+
+// number of CHARS worth of space that should be used for left/right margins
+// value is for one side only
+// char width is determined by frameHeight and verticalMargin
+horizontalMargin 1.0
+
+markedShader "ui/assets/human/buildstat/mark"
+noPowerShader "ui/assets/human/buildstat/nopower"
+
+backColor 1.0 1.0 1.0 1
+foreColor 0.0 0.0 0.0 1
diff --git a/assets/ui/assets/human/buildstat/frame.tga b/assets/ui/assets/human/buildstat/frame.tga
new file mode 100644
index 0000000..3b1e1f5
--- /dev/null
+++ b/assets/ui/assets/human/buildstat/frame.tga
Binary files differ
diff --git a/assets/ui/assets/human/buildstat/green.tga b/assets/ui/assets/human/buildstat/green.tga
new file mode 100644
index 0000000..21a70b7
--- /dev/null
+++ b/assets/ui/assets/human/buildstat/green.tga
Binary files differ
diff --git a/assets/ui/assets/human/buildstat/health.tga b/assets/ui/assets/human/buildstat/health.tga
new file mode 100644
index 0000000..fa26977
--- /dev/null
+++ b/assets/ui/assets/human/buildstat/health.tga
Binary files differ
diff --git a/assets/ui/assets/human/buildstat/mark.tga b/assets/ui/assets/human/buildstat/mark.tga
new file mode 100644
index 0000000..ef9123c
--- /dev/null
+++ b/assets/ui/assets/human/buildstat/mark.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/charge_bg_h.tga b/assets/ui/assets/neutral/charge_bg_h.tga
new file mode 100644
index 0000000..a88994f
--- /dev/null
+++ b/assets/ui/assets/neutral/charge_bg_h.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/charge_bg_v.tga b/assets/ui/assets/neutral/charge_bg_v.tga
new file mode 100644
index 0000000..60a97bb
--- /dev/null
+++ b/assets/ui/assets/neutral/charge_bg_v.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/charge_cap_h.tga b/assets/ui/assets/neutral/charge_cap_h.tga
new file mode 100644
index 0000000..0ea453f
--- /dev/null
+++ b/assets/ui/assets/neutral/charge_cap_h.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/charge_cap_v.tga b/assets/ui/assets/neutral/charge_cap_v.tga
new file mode 100644
index 0000000..5129e07
--- /dev/null
+++ b/assets/ui/assets/neutral/charge_cap_v.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/cross2.tga b/assets/ui/assets/neutral/cross2.tga
new file mode 100644
index 0000000..a2ff8d8
--- /dev/null
+++ b/assets/ui/assets/neutral/cross2.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/cross3.tga b/assets/ui/assets/neutral/cross3.tga
new file mode 100644
index 0000000..6d13cd4
--- /dev/null
+++ b/assets/ui/assets/neutral/cross3.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/cross_medkit.tga b/assets/ui/assets/neutral/cross_medkit.tga
new file mode 100644
index 0000000..67c3ecc
--- /dev/null
+++ b/assets/ui/assets/neutral/cross_medkit.tga
Binary files differ
diff --git a/assets/ui/assets/neutral/cross_poison.tga b/assets/ui/assets/neutral/cross_poison.tga
new file mode 100644
index 0000000..360e597
--- /dev/null
+++ b/assets/ui/assets/neutral/cross_poison.tga
Binary files differ
diff --git a/assets/ui/ingame_help.menu b/assets/ui/ingame_help.menu
new file mode 100644
index 0000000..4c8065b
--- /dev/null
+++ b/assets/ui/ingame_help.menu
@@ -0,0 +1,88 @@
+#include "ui/menudef.h"
+
+{
+
+#define W 420
+#define H 290
+#define X 10
+#define Y 60
+#define BORDER 10
+
+#define LIST_W 140
+#define LIST_H (H-(2*BORDER))
+#define LIST_X BORDER
+#define LIST_Y BORDER
+
+#define INFO_W (W-((3*BORDER)+LIST_W))
+#define INFO_H (H-(2*BORDER))
+#define INFO_X ((2*BORDER)+LIST_W)
+#define INFO_Y BORDER
+#define INFO_TOFF 6
+
+ menuDef
+ {
+ name "ingame_help"
+ visible MENU_FALSE
+ fullscreen MENU_FALSE
+ outOfBoundsClick // this closes the window if it gets a click out of the rectangle
+ rect X Y W H
+ focusColor 1 .75 0 1
+ aspectBias ALIGN_LEFT
+ onOpen {
+ setFocus list;
+ }
+
+ itemDef
+ {
+ name window
+ rect 0 0 W H
+ style WINDOW_STYLE_FILLED
+ backcolor 0 0 0 1
+ visible MENU_TRUE
+ decoration
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.0
+ borderColor 0.5 0.5 0.5 1
+ }
+
+ itemDef
+ {
+ name "list"
+ rect LIST_X LIST_Y LIST_W LIST_H
+ type ITEM_TYPE_LISTBOX
+ style WINDOW_STYLE_EMPTY
+ elementwidth 120
+ elementheight 20
+ textscale .33
+ elementtype LISTBOX_TEXT
+ feeder FEEDER_HELP_LIST
+ border WINDOW_BORDER_FULL
+ bordercolor 0.5 0.5 0.5 0.5
+ forecolor 1 1 1 1
+ backcolor 0.2 0.2 0.2 1
+ outlinecolor 0.1 0.1 0.1 0.5
+ visible MENU_TRUE
+ }
+
+ itemDef
+ {
+ name infopane
+ ownerdraw UI_HELPINFOPANE
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ style WINDOW_STYLE_EMPTY
+ rect INFO_X INFO_Y INFO_W INFO_H
+ textscale .33
+ textalign ALIGN_LEFT
+ textvalign VALIGN_TOP
+ textalignx INFO_TOFF
+ textaligny INFO_TOFF
+ border WINDOW_BORDER_FULL
+ bordercolor 0.5 0.5 0.5 0.5
+ forecolor 1 1 1 1
+ backcolor 0.2 0.2 0.2 1
+ visible MENU_TRUE
+ decoration
+ }
+ }
+}
diff --git a/assets/ui/mod.menu b/assets/ui/mod.menu
new file mode 100644
index 0000000..38bee62
--- /dev/null
+++ b/assets/ui/mod.menu
@@ -0,0 +1,108 @@
+#include "ui/menudef.h"
+
+{
+ \\ MOD \\
+
+#define W 300
+#define H 240
+#define BUTT_W 45
+#define BUTT_H 35
+#define BORDER 10
+
+ menuDef
+ {
+ name "mod"
+ visible MENU_FALSE
+ fullscreen MENU_FALSE
+ rect (320-(W/2)) (240-(H/2)) W H
+ focusColor 1 .75 0 1
+ style WINDOW_STYLE_FILLED
+ border WINDOW_BORDER_FULL
+ popup
+ onEsc
+ {
+ close mod
+ }
+ onOpen
+ {
+ uiScript loadMods
+ }
+
+ itemDef
+ {
+ name window
+ rect 0 0 W H
+ style WINDOW_STYLE_FILLED
+ backcolor 0 0 0 1
+ visible MENU_TRUE
+ decoration
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.0
+ borderColor 0.5 0.5 0.5 1
+ }
+
+ itemDef
+ {
+ name modlist
+ rect BORDER BORDER (W-(2*BORDER)) (H-(BUTT_H+BORDER))
+ type ITEM_TYPE_LISTBOX
+ style WINDOW_STYLE_EMPTY
+ elementwidth 120
+ elementheight 20
+ textscale .25
+ elementtype LISTBOX_TEXT
+ feeder FEEDER_MODS
+ textalign 3
+ textaligny 14
+ border WINDOW_BORDER_FULL
+ bordercolor 0.5 0.5 0.5 0.5
+ forecolor 1 1 1 1
+ backcolor 0.2 0.2 0.2 1
+ outlinecolor 0.1 0.1 0.1 0.5
+ visible MENU_TRUE
+ doubleClick
+ {
+ play "sound/misc/menu1.wav";
+ uiScript RunMod
+ }
+ }
+
+ itemDef
+ {
+ name load
+ text "Load"
+ type ITEM_TYPE_BUTTON
+ textscale .25
+ rect (W-(2*BUTT_W)) (H-BUTT_H) BUTT_W BUTT_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu1.wav";
+ close mod;
+ uiScript RunMod
+ }
+ }
+
+ itemDef
+ {
+ name cancel
+ text "Cancel"
+ type ITEM_TYPE_BUTTON
+ textscale .25
+ rect (W-BUTT_W) (H-BUTT_H) BUTT_W BUTT_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu3.wav";
+ close mod
+ }
+ }
+ }
+}
diff --git a/assets/ui/news.menu b/assets/ui/news.menu
new file mode 100644
index 0000000..99d8d68
--- /dev/null
+++ b/assets/ui/news.menu
@@ -0,0 +1,102 @@
+#include "ui/menudef.h"
+
+{
+ \\ NEWS POPUP MENU \\
+
+#define W 400
+#define H 400
+#define BUTT_W 45
+#define BUTT_H 35
+#define TITLE_H 35
+#define BORDER 10
+#define LIST_W (W-(2*BORDER))
+
+ menuDef
+ {
+ name "news_menu"
+ visible MENU_FALSE
+ fullscreen MENU_FALSE
+ rect (320-(W/2)) (240-(H/2)) W H
+ focusColor 1 .75 0 1
+ style WINDOW_STYLE_FILLED
+ border WINDOW_BORDER_FULL
+ popup
+ onClose { }
+ onOpen { uiScript getNews }
+ onESC
+ {
+ close news_menu
+ }
+
+ itemDef
+ {
+ name window
+ rect 0 0 W H
+ style WINDOW_STYLE_FILLED
+ backcolor 0 0 0 1
+ visible MENU_TRUE
+ decoration
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.0
+ borderColor 0.5 0.5 0.5 1
+ }
+
+ itemDef
+ {
+ name title
+ type ITEM_TYPE_TEXT
+ text "Tremulous News"
+ style WINDOW_STYLE_EMPTY
+ textscale .5
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ rect BORDER BORDER LIST_W TITLE_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ decoration
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ }
+
+ itemDef
+ {
+ name newslistbox
+ rect BORDER ((2*BORDER)+TITLE_H) LIST_W (H-((TITLE_H+BUTT_H)+(2*BORDER)))
+ type ITEM_TYPE_LISTBOX
+ style WINDOW_STYLE_EMPTY
+ elementwidth 120
+ elementheight 16
+ textscale .25
+ border WINDOW_BORDER_FULL
+ bordersize 1
+ bordercolor .5 .5 .5 1
+ elementtype LISTBOX_TEXT
+ feeder FEEDER_NEWS
+ notselectable
+ visible MENU_TRUE
+ }
+
+ // BUTTON //
+
+ itemDef
+ {
+ name close
+ text "Close"
+ type ITEM_TYPE_BUTTON
+ textscale .25
+ style WINDOW_STYLE_EMPTY
+ rect (W-BUTT_W) (H-BUTT_H) BUTT_W BUTT_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu1.wav";
+ close news_menu
+ }
+ }
+ }
+}
+
+
diff --git a/assets/ui/ptrc.menu b/assets/ui/ptrc.menu
new file mode 100644
index 0000000..f4785f3
--- /dev/null
+++ b/assets/ui/ptrc.menu
@@ -0,0 +1,109 @@
+#include "ui/menudef.h"
+
+{
+ // PTRC POPUP MENU //
+
+#define W 280
+#define H 140
+#define BORDER 10
+
+#define BUTT_H 25
+#define BUTT_W 45
+
+#define INFO_W (W-(2*BORDER))
+#define INFO_H (H-((3*BORDER)+BUTT_H))
+#define INFO_X BORDER
+#define INFO_Y BORDER
+
+ menuDef
+ {
+ name "ptrc_popmenu"
+ visible MENU_FALSE
+ fullscreen MENU_FALSE
+ rect (320-(W/2)) (240-(H/2)) W H
+ focusColor 1 .75 0 1
+ style WINDOW_STYLE_FILLED
+ border WINDOW_BORDER_FULL
+ popup
+ onESC
+ {
+ play "sound/misc/menu1.wav";
+ close ptrc_popmenu
+ }
+
+
+ itemDef
+ {
+ name window
+ rect 0 0 W H
+ style WINDOW_STYLE_FILLED
+ backcolor 0 0 0 1
+ visible MENU_TRUE
+ decoration
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.0
+ borderColor 0.5 0.5 0.5 1
+ }
+
+
+ // PTRC //
+
+ itemDef
+ {
+ name confirm
+ type ITEM_TYPE_TEXT
+ text "It seems that you disconnected during this game. Would you like to be restored to your previous state?"
+ style WINDOW_STYLE_EMPTY
+ textscale .4
+ textstyle WINDOW_STYLE_SHADER
+ rect INFO_X INFO_Y INFO_W INFO_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ decoration
+ wrapped
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ }
+
+ itemDef
+ {
+ name yes
+ text "YES"
+ type ITEM_TYPE_BUTTON
+ textscale .4
+ rect (W-((2*BORDER)+(2*BUTT_W))) (H-(BORDER+BUTT_H)) BUTT_W BUTT_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu4.wav";
+ uiScript PTRCRestore;
+ close ptrc_popmenu
+ }
+ }
+
+
+ itemDef
+ {
+ name no
+ text "NO"
+ type ITEM_TYPE_BUTTON
+ textscale .4
+ rect (W-(BORDER+BUTT_W)) (H-(BORDER+BUTT_H)) BUTT_W BUTT_H
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu1.wav";
+ close ptrc_popmenu
+ }
+ }
+ }
+}
+
+
diff --git a/assets/ui/quit.menu b/assets/ui/quit.menu
new file mode 100644
index 0000000..0bd2e90
--- /dev/null
+++ b/assets/ui/quit.menu
@@ -0,0 +1,99 @@
+#include "ui/menudef.h"
+
+{
+ \\ QUIT POPUP MENU \\
+
+#define W 120
+#define H 120
+
+ menuDef
+ {
+ name "quit_popmenu"
+ visible MENU_FALSE
+ fullscreen MENU_FALSE
+ rect (320-(W/2)) (240-(H/2)) W H
+ focusColor 1 .75 0 1
+ style WINDOW_STYLE_FILLED
+ border WINDOW_BORDER_FULL
+ popup
+ onESC
+ {
+ play "sound/misc/menu1.wav";
+ close quit_popmenu
+ }
+
+
+ itemDef
+ {
+ name window
+ rect 0 0 W H
+ style WINDOW_STYLE_FILLED
+ backcolor 0 0 0 1
+ visible MENU_TRUE
+ decoration
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.0
+ borderColor 0.5 0.5 0.5 1
+ }
+
+
+ // QUIT //
+
+ itemDef
+ {
+ name confirm
+ type ITEM_TYPE_TEXT
+ text "Quit Tremulous?"
+ style WINDOW_STYLE_EMPTY
+ textscale .3
+ textstyle WINDOW_STYLE_SHADER
+ rect 0 0 W ((2*H)/3)
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ decoration
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ }
+
+
+ itemDef
+ {
+ name yes
+ text "YES"
+ type ITEM_TYPE_BUTTON
+ textscale .25
+ rect 0 (H/3) (W/2) ((2*H)/3)
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu4.wav";
+ open quitCredit
+ }
+ }
+
+
+ itemDef
+ {
+ name no
+ text "NO"
+ type ITEM_TYPE_BUTTON
+ textscale .25
+ rect (W/2) (H/3) (W/2) ((2*H)/3)
+ textalign ALIGN_CENTER
+ textvalign VALIGN_CENTER
+ forecolor 1 1 1 1
+ visible MENU_TRUE
+ action
+ {
+ play "sound/misc/menu1.wav";
+ close quit_popmenu
+ }
+ }
+ }
+}
+
+
diff --git a/assets/ui/quitcredit.menu b/assets/ui/quitcredit.menu
new file mode 100644
index 0000000..14a8f4f
--- /dev/null
+++ b/assets/ui/quitcredit.menu
@@ -0,0 +1,410 @@
+#include "ui/menudef.h"
+
+{
+ \\ QUIT CREDIT \\
+
+ menuDef
+ {
+ name "quitCredit"
+ visible MENU_FALSE
+ fullscreen MENU_TRUE
+ rect 0 0 640 480
+ focusColor 1 .75 0 1
+ style WINDOW_STYLE_FILLED
+ border WINDOW_BORDER_NONE
+ aspectBias ASPECT_NONE
+ onEsc
+ {
+ uiScript "quit"
+ }
+
+ itemDef
+ {
+ name exitclickbox
+ style WINDOW_STYLE_SHADER
+ rect 0 0 640 480
+ type ITEM_TYPE_BUTTON
+ visible MENU_TRUE
+ backcolor 0 0 0 1
+ background "ui/assets/credits_splash.jpg"
+ action
+ {
+ close quitCredit;
+ uiScript "quit"
+ }
+ }
+
+ itemDef
+ {
+ name topstripe
+ style WINDOW_STYLE_FILLED
+ rect -5 -5 645 64
+ visible MENU_TRUE
+ backcolor 0 0 0 1
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.5
+ borderColor 1 0 0 1
+ }
+
+ itemDef
+ {
+ name bottomstripe
+ style WINDOW_STYLE_FILLED
+ rect -5 416 645 485
+ visible MENU_TRUE
+ backcolor 0 0 0 1
+
+ border WINDOW_BORDER_FULL
+ borderSize 1.5
+ borderColor 1 0 0 1
+ }
+
+ itemDef
+ {
+ name "creditstitle"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 320 48 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_CENTER
+ textscale 0.75
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "CREDITS"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit1left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 96 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Tim 'Timbo' Angus"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit1right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 96 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Programming and Direction"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit2left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 128 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Nick 'jex' Jansens"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit2right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 128 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Mapping, texturing and 2D artwork"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit3left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 160 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Robin 'OverFlow' Marshall"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit3right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 160 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Modelling, animation and mapping"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit4left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 192 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Jan 'Stannum' van der Weg"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit4right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 192 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Texturing and mapping"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit5left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 224 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Mike 'Veda' McInerney"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit5right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 224 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Modelling, animation and texturing"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit6left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 256 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Gordon 'Godmil' Miller"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit6right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 256 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Mapping"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit7left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 288 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "'Who-[Soup]'"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit7right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 288 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Mapping"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit8left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 320 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Tristan 'jhrx' Blease"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit8right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 320 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Mapping"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit9left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 352 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Paul 'MoP' Greveson"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit9right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 352 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Modelling and texturing"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+
+ itemDef
+ {
+ name "credit10left"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 10 384 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_LEFT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Chris 'Dolby' McCarthy"
+ forecolor 1 1 1 1
+ backcolor 1 0 0 1
+ visible 1
+ decoration
+ }
+ itemDef
+ {
+ name "credit10right"
+ group grpidcredit
+ style WINDOW_STYLE_EMPTY
+ rect 630 384 1 1
+ type ITEM_TYPE_TEXT
+ textalign ALIGN_RIGHT
+ textscale 0.50
+ textstyle ITEM_TEXTSTYLE_NORMAL
+ text "Sound"
+ forecolor 1 1 1 1
+ backcolor 0 1 0 1
+ visible 1
+ decoration
+ }
+ }
+}
diff --git a/assets/ui/tremulous_default_hud.menu b/assets/ui/tremulous_default_hud.menu
new file mode 100644
index 0000000..8d1034b
--- /dev/null
+++ b/assets/ui/tremulous_default_hud.menu
@@ -0,0 +1,37 @@
+#include "ui/menudef.h"
+
+{
+
+#define W 640
+#define H 480
+
+ menuDef
+ {
+ name "default_hud"
+ fullScreen MENU_FALSE
+ visible MENU_TRUE
+ rect 0 0 W H
+ aspectBias ASPECT_NONE
+
+#define COMMON_HUD_R 1.0
+#define COMMON_HUD_G 1.0
+#define COMMON_HUD_B 1.0
+#include "ui/tremulous_common_hud.h"
+
+ //SPECTATOR TEXT
+ itemDef
+ {
+ name "spectatortext"
+ text "SPECTATOR"
+ rect 200 415 240 25
+ foreColor 1 1 1 1
+ aspectBias ALIGN_CENTER
+ textalign ALIGN_CENTER
+ textvalign VALIGN_TOP
+ visible MENU_TRUE
+ decoration
+ textScale .7
+ textStyle ITEM_TEXTSTYLE_SHADOWED
+ }
+ }
+}