]> de.git.xonotic.org Git - voretournament/voretournament.git/commitdiff
Add updated netradiant
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Fri, 10 Sep 2010 00:40:28 +0000 (03:40 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Fri, 10 Sep 2010 00:40:28 +0000 (03:40 +0300)
168 files changed:
extra/netradiant-1.5.0-win32/RADIANT_MAJOR [new file with mode: 0644]
extra/netradiant-1.5.0-win32/RADIANT_MINOR [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/black.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/brush_flipx.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/brush_flipy.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/brush_flipz.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/brush_rotatex.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/brush_rotatey.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/brush_rotatez.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/cap_bevel.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/cap_cylinder.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/cap_endcap.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/cap_ibevel.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/cap_iendcap.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/console.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/curve_cap.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/dontselectcurve.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/dontselectmodel.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/ellipsis.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/entities.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/file_open.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/file_save.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/icon.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/lightinspector.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/logo.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/modify_edges.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/modify_faces.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/modify_vertices.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/noFalloff.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/notex.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/patch_bend.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/patch_drilldown.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/patch_insdel.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/patch_showboundingbox.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/patch_weld.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/patch_wireframe.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/popup_selection.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/redo.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/refresh_models.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/scalelockx.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/scalelocky.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/scalelockz.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/select_mouseresize.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/select_mouserotate.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/select_mousescale.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/select_mousetranslate.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_csgmerge.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_csgsubtract.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_makehollow.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall_old.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_selectinside.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall_old.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/selection_selecttouching.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/shadernotex.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/show_entities.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/splash.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/texture_browser.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/texture_lock.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/textures_popup.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/undo.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/view_cameratoggle.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/view_cameraupdate.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/view_change.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/view_clipper.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/view_cubicclipping.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/view_entity.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/white.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/window1.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/window2.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/window3.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/bitmaps/window4.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/docs/index.html [new file with mode: 0644]
extra/netradiant-1.5.0-win32/etc/gtk-2.0/gdk-pixbuf.loaders [new file with mode: 0644]
extra/netradiant-1.5.0-win32/games/voretournament.game [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/lighting_DBS_XY_Z_arbfp1.cg [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/lighting_DBS_XY_Z_arbvp1.cg [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_fp.glp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_fp.glsl [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_vp.glp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_vp.glsl [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/utils.cg [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/zfill_arbfp1.cg [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/zfill_arbvp1.cg [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/zfill_fp.glp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/zfill_fp.glsl [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/zfill_vp.glp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/gl/zfill_vp.glsl [new file with mode: 0644]
extra/netradiant-1.5.0-win32/global.xlink [new file with mode: 0644]
extra/netradiant-1.5.0-win32/heretic2/h2data.exe [new file with mode: 0644]
extra/netradiant-1.5.0-win32/intl.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libatk-1.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libcairo-2.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0-pixbufloader-bmp.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgdk_pixbuf-2.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgdkglext-win32-1.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libglib-2.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgmodule-2.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgobject-2.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgtk-win32-2.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libgtkglext-win32-1.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libpango-1.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libpangocairo-1.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libpangowin32-1.0-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libpng12-0.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/libxml2-2.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/archivepak.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/archivewad.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/archivezip.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/entity.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/image.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/imagehl.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/imagepng.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/imageq2.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/mapq3.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/mapxml.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/md3model.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/model.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/shaders.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/modules/vfspk3.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_caulk.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_cleanup.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_dropent.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_merge.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_poly.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_split.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitcol.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitrow.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_trainpathplot.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_treeplanter.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_turnedge.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_actorclip.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level1.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level2.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level3.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level4.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level5.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level6.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level7.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level8.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_nodraw.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_stepon.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_weaponclip.bmp [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bobtoolz.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/brushexport.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bt/bt-el1.txt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bt/bt-el2.txt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bt/door-tex-trim.txt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bt/door-tex.txt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/bt/tp_ent.txt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/prtview.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/shaderplug.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/sunplug.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/plugins/ufoaiplug.dll [new file with mode: 0644]
extra/netradiant-1.5.0-win32/q2map.exe [new file with mode: 0644]
extra/netradiant-1.5.0-win32/q3data.exe [new file with mode: 0644]
extra/netradiant-1.5.0-win32/q3data.qdt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/q3map2.exe [new file with mode: 0644]
extra/netradiant-1.5.0-win32/qdata3.exe [new file with mode: 0644]
extra/netradiant-1.5.0-win32/radiant.exe [new file with mode: 0644]
extra/netradiant-1.5.0-win32/voretournament.game/data/default_shaderlist.txt [new file with mode: 0644]
extra/netradiant-1.5.0-win32/voretournament.game/data/entities.def [new file with mode: 0644]
extra/netradiant-1.5.0-win32/voretournament.game/data/turrets.def [new file with mode: 0644]
extra/netradiant-1.5.0-win32/voretournament.game/default_build_menu.xml [new file with mode: 0644]
extra/netradiant-1.5.0-win32/voretournament.game/game.xlink [new file with mode: 0644]
extra/netradiant-1.5.0-win32/zlib1.dll [new file with mode: 0644]

diff --git a/extra/netradiant-1.5.0-win32/RADIANT_MAJOR b/extra/netradiant-1.5.0-win32/RADIANT_MAJOR
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/extra/netradiant-1.5.0-win32/RADIANT_MINOR b/extra/netradiant-1.5.0-win32/RADIANT_MINOR
new file mode 100644 (file)
index 0000000..573541a
--- /dev/null
@@ -0,0 +1 @@
+0
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/black.bmp b/extra/netradiant-1.5.0-win32/bitmaps/black.bmp
new file mode 100644 (file)
index 0000000..8fc59ba
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/black.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/brush_flipx.bmp b/extra/netradiant-1.5.0-win32/bitmaps/brush_flipx.bmp
new file mode 100644 (file)
index 0000000..48ee0db
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/brush_flipx.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/brush_flipy.bmp b/extra/netradiant-1.5.0-win32/bitmaps/brush_flipy.bmp
new file mode 100644 (file)
index 0000000..d740877
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/brush_flipy.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/brush_flipz.bmp b/extra/netradiant-1.5.0-win32/bitmaps/brush_flipz.bmp
new file mode 100644 (file)
index 0000000..017c33e
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/brush_flipz.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatex.bmp b/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatex.bmp
new file mode 100644 (file)
index 0000000..c7e5505
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatex.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatey.bmp b/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatey.bmp
new file mode 100644 (file)
index 0000000..e50e5d6
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatey.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatez.bmp b/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatez.bmp
new file mode 100644 (file)
index 0000000..52ab554
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/brush_rotatez.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/cap_bevel.bmp b/extra/netradiant-1.5.0-win32/bitmaps/cap_bevel.bmp
new file mode 100644 (file)
index 0000000..3bb4186
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/cap_bevel.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/cap_cylinder.bmp b/extra/netradiant-1.5.0-win32/bitmaps/cap_cylinder.bmp
new file mode 100644 (file)
index 0000000..2196926
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/cap_cylinder.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/cap_endcap.bmp b/extra/netradiant-1.5.0-win32/bitmaps/cap_endcap.bmp
new file mode 100644 (file)
index 0000000..e6cea65
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/cap_endcap.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/cap_ibevel.bmp b/extra/netradiant-1.5.0-win32/bitmaps/cap_ibevel.bmp
new file mode 100644 (file)
index 0000000..b1fa49b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/cap_ibevel.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/cap_iendcap.bmp b/extra/netradiant-1.5.0-win32/bitmaps/cap_iendcap.bmp
new file mode 100644 (file)
index 0000000..da1f5b6
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/cap_iendcap.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/console.bmp b/extra/netradiant-1.5.0-win32/bitmaps/console.bmp
new file mode 100644 (file)
index 0000000..7fe64b0
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/console.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/curve_cap.bmp b/extra/netradiant-1.5.0-win32/bitmaps/curve_cap.bmp
new file mode 100644 (file)
index 0000000..574e761
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/curve_cap.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/dontselectcurve.bmp b/extra/netradiant-1.5.0-win32/bitmaps/dontselectcurve.bmp
new file mode 100644 (file)
index 0000000..a7b9795
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/dontselectcurve.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/dontselectmodel.bmp b/extra/netradiant-1.5.0-win32/bitmaps/dontselectmodel.bmp
new file mode 100644 (file)
index 0000000..e81b118
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/dontselectmodel.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/ellipsis.bmp b/extra/netradiant-1.5.0-win32/bitmaps/ellipsis.bmp
new file mode 100644 (file)
index 0000000..a4360a9
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/ellipsis.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/entities.bmp b/extra/netradiant-1.5.0-win32/bitmaps/entities.bmp
new file mode 100644 (file)
index 0000000..ce3d812
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/entities.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/file_open.bmp b/extra/netradiant-1.5.0-win32/bitmaps/file_open.bmp
new file mode 100644 (file)
index 0000000..754f10f
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/file_open.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/file_save.bmp b/extra/netradiant-1.5.0-win32/bitmaps/file_save.bmp
new file mode 100644 (file)
index 0000000..651afb6
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/file_save.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/icon.bmp b/extra/netradiant-1.5.0-win32/bitmaps/icon.bmp
new file mode 100644 (file)
index 0000000..01aec6e
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/icon.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/lightinspector.bmp b/extra/netradiant-1.5.0-win32/bitmaps/lightinspector.bmp
new file mode 100644 (file)
index 0000000..00b00a9
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/lightinspector.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/logo.bmp b/extra/netradiant-1.5.0-win32/bitmaps/logo.bmp
new file mode 100644 (file)
index 0000000..ddbd346
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/logo.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/modify_edges.bmp b/extra/netradiant-1.5.0-win32/bitmaps/modify_edges.bmp
new file mode 100644 (file)
index 0000000..7b048f9
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/modify_edges.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/modify_faces.bmp b/extra/netradiant-1.5.0-win32/bitmaps/modify_faces.bmp
new file mode 100644 (file)
index 0000000..03d9f8c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/modify_faces.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/modify_vertices.bmp b/extra/netradiant-1.5.0-win32/bitmaps/modify_vertices.bmp
new file mode 100644 (file)
index 0000000..c434732
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/modify_vertices.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/noFalloff.bmp b/extra/netradiant-1.5.0-win32/bitmaps/noFalloff.bmp
new file mode 100644 (file)
index 0000000..e86d10c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/noFalloff.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/notex.bmp b/extra/netradiant-1.5.0-win32/bitmaps/notex.bmp
new file mode 100644 (file)
index 0000000..b06664a
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/notex.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/patch_bend.bmp b/extra/netradiant-1.5.0-win32/bitmaps/patch_bend.bmp
new file mode 100644 (file)
index 0000000..af4fc94
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/patch_bend.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/patch_drilldown.bmp b/extra/netradiant-1.5.0-win32/bitmaps/patch_drilldown.bmp
new file mode 100644 (file)
index 0000000..01ebcf3
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/patch_drilldown.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/patch_insdel.bmp b/extra/netradiant-1.5.0-win32/bitmaps/patch_insdel.bmp
new file mode 100644 (file)
index 0000000..b60b76b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/patch_insdel.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/patch_showboundingbox.bmp b/extra/netradiant-1.5.0-win32/bitmaps/patch_showboundingbox.bmp
new file mode 100644 (file)
index 0000000..357cfaf
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/patch_showboundingbox.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/patch_weld.bmp b/extra/netradiant-1.5.0-win32/bitmaps/patch_weld.bmp
new file mode 100644 (file)
index 0000000..a0c9973
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/patch_weld.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/patch_wireframe.bmp b/extra/netradiant-1.5.0-win32/bitmaps/patch_wireframe.bmp
new file mode 100644 (file)
index 0000000..9804274
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/patch_wireframe.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/popup_selection.bmp b/extra/netradiant-1.5.0-win32/bitmaps/popup_selection.bmp
new file mode 100644 (file)
index 0000000..676c4d9
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/popup_selection.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/redo.bmp b/extra/netradiant-1.5.0-win32/bitmaps/redo.bmp
new file mode 100644 (file)
index 0000000..32a373a
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/redo.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/refresh_models.bmp b/extra/netradiant-1.5.0-win32/bitmaps/refresh_models.bmp
new file mode 100644 (file)
index 0000000..b6507f6
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/refresh_models.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/scalelockx.bmp b/extra/netradiant-1.5.0-win32/bitmaps/scalelockx.bmp
new file mode 100644 (file)
index 0000000..61363da
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/scalelockx.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/scalelocky.bmp b/extra/netradiant-1.5.0-win32/bitmaps/scalelocky.bmp
new file mode 100644 (file)
index 0000000..812394d
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/scalelocky.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/scalelockz.bmp b/extra/netradiant-1.5.0-win32/bitmaps/scalelockz.bmp
new file mode 100644 (file)
index 0000000..5692e4a
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/scalelockz.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/select_mouseresize.bmp b/extra/netradiant-1.5.0-win32/bitmaps/select_mouseresize.bmp
new file mode 100644 (file)
index 0000000..ca0c9ac
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/select_mouseresize.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/select_mouserotate.bmp b/extra/netradiant-1.5.0-win32/bitmaps/select_mouserotate.bmp
new file mode 100644 (file)
index 0000000..7f18a56
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/select_mouserotate.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/select_mousescale.bmp b/extra/netradiant-1.5.0-win32/bitmaps/select_mousescale.bmp
new file mode 100644 (file)
index 0000000..d8f3902
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/select_mousescale.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/select_mousetranslate.bmp b/extra/netradiant-1.5.0-win32/bitmaps/select_mousetranslate.bmp
new file mode 100644 (file)
index 0000000..04962fd
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/select_mousetranslate.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_csgmerge.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_csgmerge.bmp
new file mode 100644 (file)
index 0000000..fb5df4f
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_csgmerge.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_csgsubtract.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_csgsubtract.bmp
new file mode 100644 (file)
index 0000000..267d374
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_csgsubtract.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_makehollow.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_makehollow.bmp
new file mode 100644 (file)
index 0000000..8c5d60c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_makehollow.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall.bmp
new file mode 100644 (file)
index 0000000..8d2c104
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall_old.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall_old.bmp
new file mode 100644 (file)
index 0000000..1f911e8
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectcompletetall_old.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_selectinside.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectinside.bmp
new file mode 100644 (file)
index 0000000..12b22af
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectinside.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall.bmp
new file mode 100644 (file)
index 0000000..d21ddc2
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall_old.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall_old.bmp
new file mode 100644 (file)
index 0000000..77b418b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_selectpartialtall_old.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/selection_selecttouching.bmp b/extra/netradiant-1.5.0-win32/bitmaps/selection_selecttouching.bmp
new file mode 100644 (file)
index 0000000..e6d5c4b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/selection_selecttouching.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/shadernotex.bmp b/extra/netradiant-1.5.0-win32/bitmaps/shadernotex.bmp
new file mode 100644 (file)
index 0000000..6be415e
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/shadernotex.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/show_entities.bmp b/extra/netradiant-1.5.0-win32/bitmaps/show_entities.bmp
new file mode 100644 (file)
index 0000000..9188bee
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/show_entities.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/splash.bmp b/extra/netradiant-1.5.0-win32/bitmaps/splash.bmp
new file mode 100644 (file)
index 0000000..a484997
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/splash.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/texture_browser.bmp b/extra/netradiant-1.5.0-win32/bitmaps/texture_browser.bmp
new file mode 100644 (file)
index 0000000..22f7250
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/texture_browser.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/texture_lock.bmp b/extra/netradiant-1.5.0-win32/bitmaps/texture_lock.bmp
new file mode 100644 (file)
index 0000000..0a003bc
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/texture_lock.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/textures_popup.bmp b/extra/netradiant-1.5.0-win32/bitmaps/textures_popup.bmp
new file mode 100644 (file)
index 0000000..5333382
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/textures_popup.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/undo.bmp b/extra/netradiant-1.5.0-win32/bitmaps/undo.bmp
new file mode 100644 (file)
index 0000000..fd2b839
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/undo.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/view_cameratoggle.bmp b/extra/netradiant-1.5.0-win32/bitmaps/view_cameratoggle.bmp
new file mode 100644 (file)
index 0000000..4ec79ed
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/view_cameratoggle.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/view_cameraupdate.bmp b/extra/netradiant-1.5.0-win32/bitmaps/view_cameraupdate.bmp
new file mode 100644 (file)
index 0000000..dbb1195
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/view_cameraupdate.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/view_change.bmp b/extra/netradiant-1.5.0-win32/bitmaps/view_change.bmp
new file mode 100644 (file)
index 0000000..977ee1e
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/view_change.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/view_clipper.bmp b/extra/netradiant-1.5.0-win32/bitmaps/view_clipper.bmp
new file mode 100644 (file)
index 0000000..606a209
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/view_clipper.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/view_cubicclipping.bmp b/extra/netradiant-1.5.0-win32/bitmaps/view_cubicclipping.bmp
new file mode 100644 (file)
index 0000000..16f7cb0
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/view_cubicclipping.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/view_entity.bmp b/extra/netradiant-1.5.0-win32/bitmaps/view_entity.bmp
new file mode 100644 (file)
index 0000000..851ec2c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/view_entity.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/white.bmp b/extra/netradiant-1.5.0-win32/bitmaps/white.bmp
new file mode 100644 (file)
index 0000000..cbf038f
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/white.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/window1.bmp b/extra/netradiant-1.5.0-win32/bitmaps/window1.bmp
new file mode 100644 (file)
index 0000000..a8913c7
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/window1.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/window2.bmp b/extra/netradiant-1.5.0-win32/bitmaps/window2.bmp
new file mode 100644 (file)
index 0000000..6db9e56
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/window2.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/window3.bmp b/extra/netradiant-1.5.0-win32/bitmaps/window3.bmp
new file mode 100644 (file)
index 0000000..e81a299
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/window3.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/bitmaps/window4.bmp b/extra/netradiant-1.5.0-win32/bitmaps/window4.bmp
new file mode 100644 (file)
index 0000000..d753945
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/bitmaps/window4.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/docs/index.html b/extra/netradiant-1.5.0-win32/docs/index.html
new file mode 100644 (file)
index 0000000..45a168e
--- /dev/null
@@ -0,0 +1,16 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <meta http-equiv="Content-Style-Type" content="text/css">
+  <title></title>
+  <meta name="Generator" content="Cocoa HTML Writer">
+  <meta name="CocoaVersion" content="1038.25">
+  <style type="text/css">
+    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica}
+  </style>
+</head>
+<body>
+<p class="p1">put here links</p>
+</body>
+</html>
diff --git a/extra/netradiant-1.5.0-win32/etc/gtk-2.0/gdk-pixbuf.loaders b/extra/netradiant-1.5.0-win32/etc/gtk-2.0/gdk-pixbuf.loaders
new file mode 100644 (file)
index 0000000..1921bea
--- /dev/null
@@ -0,0 +1,10 @@
+# GdkPixbuf Image Loader Modules file
+#
+#
+
+"libgdk-win32-2.0-0-pixbufloader-bmp.dll"
+"bmp" 5 "gtk20" "The BMP image format"
+"image/bmp" "image/x-bmp" "image/x-MS-bmp" ""
+"bmp" ""
+"BM" "" 100
+
diff --git a/extra/netradiant-1.5.0-win32/games/voretournament.game b/extra/netradiant-1.5.0-win32/games/voretournament.game
new file mode 100644 (file)
index 0000000..4c595b2
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
+<!-- generated by Radiant setup, modify at your own risks -->
+<game
+  type="voretournament"
+  index="1"
+  name="VoreTournament"
+  enginepath_win32="C:/Program Files/VoreTournament/"
+  enginepath_linux="/usr/share/games/voretournament/"
+  enginepath_macos="/Applications/VoreTournament"
+  engine_win32="voretournament-sdl.exe"
+  engine_linux="voretournament-sdl"
+  engine_macos="VoreTournament.app"
+  prefix=".voretournament"
+  basegame="data"
+  basegamename="VoreTournament"
+  unknowngamename="Custom VoreTournament modification"
+  shaderpath="scripts"
+  archivetypes="pk3"
+  texturetypes="tga jpg png"
+  modeltypes="md3 mdl md2 ase obj"
+  maptypes="mapq3"
+  shaders="quake3"
+  entityclass="quake3"
+  entityclasstype="def"
+  entities="quake3"
+  brushtypes="quake3"
+  patchtypes="quake3"
+/>
diff --git a/extra/netradiant-1.5.0-win32/gl/lighting_DBS_XY_Z_arbfp1.cg b/extra/netradiant-1.5.0-win32/gl/lighting_DBS_XY_Z_arbfp1.cg
new file mode 100644 (file)
index 0000000..f535dbb
--- /dev/null
@@ -0,0 +1,92 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "AUTHORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+#include "utils.cg"
+
+struct cg_vertex2fragment
+{      
+       float4 position         : TEXCOORD0;
+       float4 tex_diffuse_bump : TEXCOORD1;
+       float4 tex_specular     : TEXCOORD2;
+       float4 tex_atten_xy_z   : TEXCOORD3;
+       
+       float3 tangent          : TEXCOORD4;
+       float3 binormal         : TEXCOORD5;
+       float3 normal           : TEXCOORD6;
+};
+
+struct cg_fragment2final
+{
+       float4 color            : COLOR;
+};
+
+
+cg_fragment2final main(cg_vertex2fragment IN,
+                       uniform sampler2D diffusemap,
+                       uniform sampler2D bumpmap,
+                       uniform sampler2D specularmap,
+                       uniform sampler2D attenuationmap_xy,
+                       uniform sampler2D attenuationmap_z,
+                       uniform float3 view_origin,
+                       uniform float3 light_origin,
+                       uniform float3 light_color,
+                       uniform float bump_scale,
+                       uniform float specular_exponent)
+{
+       cg_fragment2final OUT;
+       
+       // construct object-space-to-tangent-space 3x3 matrix
+       float3x3 rotation = float3x3(IN.tangent, IN.binormal, IN.normal);
+       
+       // compute view direction in tangent space
+       float3 V = normalize(mul(rotation, view_origin - IN.position.xyz));
+               
+       // compute light direction in tangent space
+       float3 L = normalize(mul(rotation, (light_origin - IN.position.xyz)));
+       
+       // compute half angle in tangent space
+       float3 H = normalize(L + V);
+       
+       // compute normal in tangent space from bumpmap
+       float3 T = CG_Expand(tex2D(bumpmap, IN.tex_diffuse_bump.zw).xyz);
+       T.z *= bump_scale;
+       float3 N = normalize(T);
+       
+       // compute the diffuse term
+       float4 diffuse = tex2D(diffusemap, IN.tex_diffuse_bump.xy);
+       diffuse.rgb *= light_color * saturate(dot(N, L));
+       
+       // compute the specular term
+       float3 specular = tex2D(specularmap, IN.tex_specular.xy).rgb * light_color * pow(saturate(dot(N, H)), specular_exponent);
+       
+       // compute attenuation
+       float3 attenuation_xy   = tex2Dproj(attenuationmap_xy, float3(IN.tex_atten_xy_z.x, IN.tex_atten_xy_z.y, IN.tex_atten_xy_z.w)).rgb;
+       float3 attenuation_z    = tex2D(attenuationmap_z, float2(IN.tex_atten_xy_z.z, 0)).rgb;
+                                       
+       // compute final color
+       OUT.color.rgba = diffuse;
+       OUT.color.rgb += specular;
+       OUT.color.rgb *= attenuation_xy;
+       OUT.color.rgb *= attenuation_z;
+
+       return OUT;
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/lighting_DBS_XY_Z_arbvp1.cg b/extra/netradiant-1.5.0-win32/gl/lighting_DBS_XY_Z_arbvp1.cg
new file mode 100644 (file)
index 0000000..59a6fc7
--- /dev/null
@@ -0,0 +1,78 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "AUTHORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+
+struct cg_app2vertex
+{
+       float4 position         : POSITION;
+       float4 tex0             : ATTR8;
+       
+       float3 tangent          : ATTR9;
+       float3 binormal         : ATTR10;
+       float3 normal           : ATTR11;
+};
+
+struct cg_vertex2fragment
+{
+       float4 hposition        : POSITION;
+       
+       float4 position         : TEXCOORD0;
+       float4 tex_diffuse_bump : TEXCOORD1;
+       float4 tex_specular     : TEXCOORD2;
+       float4 tex_atten_xy_z   : TEXCOORD3;
+       
+       float3 tangent          : TEXCOORD4;
+       float3 binormal         : TEXCOORD5;
+       float3 normal           : TEXCOORD6;
+};
+
+
+
+cg_vertex2fragment main(cg_app2vertex IN)
+{
+       cg_vertex2fragment OUT;
+       
+       // transform vertex position into homogenous clip-space
+       OUT.hposition = mul(glstate.matrix.mvp, IN.position);
+       
+       // assign position in object space
+       OUT.position = IN.position;
+       
+       // transform texcoords
+       OUT.tex_diffuse_bump.xy = mul(glstate.matrix.texture[0], IN.tex0).xy;
+       
+       // transform texcoords
+       OUT.tex_diffuse_bump.zw = mul(glstate.matrix.texture[1], IN.tex0).xy;
+       
+       // transform texcoords
+       OUT.tex_specular = mul(glstate.matrix.texture[2], IN.tex0);
+       
+       // transform vertex position into light space
+       OUT.tex_atten_xy_z = mul(glstate.matrix.texture[3], IN.position);
+       
+       // assign tangent space vectors
+       OUT.tangent = IN.tangent;
+       OUT.binormal = IN.binormal;
+       OUT.normal = IN.normal;
+                       
+       return OUT;
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_fp.glp b/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_fp.glp
new file mode 100644 (file)
index 0000000..88dab8d
--- /dev/null
@@ -0,0 +1,86 @@
+!!ARBfp1.0
+# cgc version 1.3.0001, build date Aug  4 2004 10:01:10
+# command line args: -profile arbfp1
+# source file: ..\..\setup\data\tools\gl\lighting_DBS_XY_Z_arbfp1.cg
+# source file: ..\..\setup\data\tools\gl/utils.cg
+#vendor NVIDIA Corporation
+#version 1.0.02
+#profile arbfp1
+#program main
+#semantic main.diffusemap
+#semantic main.bumpmap
+#semantic main.specularmap
+#semantic main.attenuationmap_xy
+#semantic main.attenuationmap_z
+#semantic main.view_origin
+#semantic main.light_origin
+#semantic main.light_color
+#semantic main.bump_scale
+#semantic main.specular_exponent
+#var float4 IN.position : $vin.TEX0 : TEX0 : 0 : 1
+#var float4 IN.tex_diffuse_bump : $vin.TEX1 : TEX1 : 0 : 1
+#var float4 IN.tex_specular : $vin.TEX2 : TEX2 : 0 : 1
+#var float4 IN.tex_atten_xy_z : $vin.TEX3 : TEX3 : 0 : 1
+#var float3 IN.tangent : $vin.TEX4 : TEX4 : 0 : 1
+#var float3 IN.binormal : $vin.TEX5 : TEX5 : 0 : 1
+#var float3 IN.normal : $vin.TEX6 : TEX6 : 0 : 1
+#var sampler2D diffusemap :  : texunit 0 : 1 : 1
+#var sampler2D bumpmap :  : texunit 1 : 2 : 1
+#var sampler2D specularmap :  : texunit 2 : 3 : 1
+#var sampler2D attenuationmap_xy :  : texunit 3 : 4 : 1
+#var sampler2D attenuationmap_z :  : texunit 4 : 5 : 1
+#var float3 view_origin :  : c[4] : 6 : 1
+#var float3 light_origin :  : c[2] : 7 : 1
+#var float3 light_color :  : c[3] : 8 : 1
+#var float bump_scale :  : c[1] : 9 : 1
+#var float specular_exponent :  : c[5] : 10 : 1
+#var float4 main.color : $vout.COL : COL : -1 : 1
+#const c[0] = 0.5 2 0
+PARAM c[6] = { { 0.5, 2, 0 },
+               program.local[1..5] };
+TEMP R0;
+TEMP R1;
+TEMP R2;
+ADD R1.xyz, -fragment.texcoord[0], c[2];
+DP3 R0.z, fragment.texcoord[6], R1;
+DP3 R0.x, fragment.texcoord[4], R1;
+DP3 R0.y, fragment.texcoord[5], R1;
+ADD R1.xyz, -fragment.texcoord[0], c[4];
+DP3 R0.w, R0, R0;
+DP3 R2.z, fragment.texcoord[6], R1;
+DP3 R2.x, fragment.texcoord[4], R1;
+DP3 R2.y, fragment.texcoord[5], R1;
+RSQ R0.w, R0.w;
+MUL R1.xyz, R0.w, R0;
+DP3 R1.w, R2, R2;
+RSQ R0.w, R1.w;
+MUL R2.xyz, R0.w, R2;
+ADD R2.xyz, R1, R2;
+DP3 R0.w, R2, R2;
+RSQ R2.w, R0.w;
+TEX R0.xyz, fragment.texcoord[1].zwzw, texture[1], 2D;
+ADD R0.xyz, R0, -c[0].x;
+MUL R0.xyz, R0, c[0].y;
+MUL R0.z, R0, c[1].x;
+DP3 R1.w, R0, R0;
+RSQ R0.w, R1.w;
+MUL R0.xyz, R0.w, R0;
+MUL R2.xyz, R2.w, R2;
+DP3_SAT R0.w, R0, R2;
+DP3_SAT R0.x, R0, R1;
+TEX R2.xyz, fragment.texcoord[2], texture[2], 2D;
+MUL R1.xyz, R2, c[3];
+POW R0.w, R0.w, c[5].x;
+MUL R2.xyz, R1, R0.w;
+MUL R1.xyz, R0.x, c[3];
+TEX R0, fragment.texcoord[1], texture[0], 2D;
+MAD R2.xyz, R0, R1, R2;
+TXP R0.xyz, fragment.texcoord[3], texture[3], 2D;
+MOV R1.y, c[0].z;
+MOV R1.x, fragment.texcoord[3].z;
+TEX R1.xyz, R1, texture[4], 2D;
+MUL R0.xyz, R2, R0;
+MUL result.color.xyz, R0, R1;
+MOV result.color.w, R0;
+END
+# 41 instructions, 3 R-regs
diff --git a/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_fp.glsl b/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_fp.glsl
new file mode 100644 (file)
index 0000000..7f80fea
--- /dev/null
@@ -0,0 +1,73 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "CONTRIBUTORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+uniform sampler2D      u_diffusemap;
+uniform sampler2D      u_bumpmap;
+uniform sampler2D      u_specularmap;
+uniform sampler2D      u_attenuationmap_xy;
+uniform sampler2D      u_attenuationmap_z;
+uniform vec3           u_view_origin;
+uniform vec3           u_light_origin;
+uniform vec3           u_light_color;
+uniform float          u_bump_scale;
+uniform float          u_specular_exponent;
+
+varying vec3           var_vertex;
+varying vec4           var_tex_diffuse_bump;
+varying vec2           var_tex_specular;
+varying vec4           var_tex_atten_xy_z;
+varying mat3           var_mat_os2ts;
+
+void   main()
+{      
+       // compute view direction in tangent space
+       vec3 V = normalize(var_mat_os2ts * (u_view_origin - var_vertex));
+       
+       // compute light direction in tangent space
+       vec3 L = normalize(var_mat_os2ts * (u_light_origin - var_vertex));
+       
+       // compute half angle in tangent space
+       vec3 H = normalize(L + V);
+       
+       // compute normal in tangent space from bumpmap
+       vec3 N = 2.0 * (texture2D(u_bumpmap, var_tex_diffuse_bump.pq).xyz - 0.5);
+       N.z *= u_bump_scale;
+       N = normalize(N);
+       
+       // compute the diffuse term
+       vec4 diffuse = texture2D(u_diffusemap, var_tex_diffuse_bump.st);
+       diffuse.rgb *= u_light_color * clamp(dot(N, L), 0.0, 1.0);
+       
+       // compute the specular term
+       vec3 specular = texture2D(u_specularmap, var_tex_specular).rgb * u_light_color * pow(clamp(dot(N, H), 0.0, 1.0), u_specular_exponent);
+       
+       // compute attenuation
+       vec3 attenuation_xy     = texture2DProj(u_attenuationmap_xy, vec3(var_tex_atten_xy_z.x, var_tex_atten_xy_z.y, var_tex_atten_xy_z.w)).rgb;
+       vec3 attenuation_z      = texture2D(u_attenuationmap_z, vec2(var_tex_atten_xy_z.z, 0)).rgb;
+                                       
+       // compute final color
+       gl_FragColor.rgba = diffuse;
+       gl_FragColor.rgb += specular;
+       gl_FragColor.rgb *= attenuation_xy;
+       gl_FragColor.rgb *= attenuation_z;
+}
+
diff --git a/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_vp.glp b/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_vp.glp
new file mode 100644 (file)
index 0000000..b4472d7
--- /dev/null
@@ -0,0 +1,410 @@
+!!ARBvp1.0
+# cgc version 1.3.0001, build date Aug  4 2004 10:01:10
+# command line args: -profile arbvp1
+# source file: ..\..\setup\data\tools\gl\lighting_DBS_XY_Z_arbvp1.cg
+#vendor NVIDIA Corporation
+#version 1.0.02
+#profile arbvp1
+#program main
+#semantic glstate : STATE
+#var float4 glstate.material.ambient : STATE.MATERIAL.AMBIENT :  : -1 : 0
+#var float4 glstate.material.diffuse : STATE.MATERIAL.DIFFUSE :  : -1 : 0
+#var float4 glstate.material.specular : STATE.MATERIAL.SPECULAR :  : -1 : 0
+#var float4 glstate.material.emission : STATE.MATERIAL.EMISSION :  : -1 : 0
+#var float4 glstate.material.shininess : STATE.MATERIAL.SHININESS :  : -1 : 0
+#var float4 glstate.material.front.ambient : STATE.MATERIAL.FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.material.front.diffuse : STATE.MATERIAL.FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.material.front.specular : STATE.MATERIAL.FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.material.front.emission : STATE.MATERIAL.FRONT.EMISSION :  : -1 : 0
+#var float4 glstate.material.front.shininess : STATE.MATERIAL.FRONT.SHININESS :  : -1 : 0
+#var float4 glstate.material.back.ambient : STATE.MATERIAL.BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.material.back.diffuse : STATE.MATERIAL.BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.material.back.specular : STATE.MATERIAL.BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.material.back.emission : STATE.MATERIAL.BACK.EMISSION :  : -1 : 0
+#var float4 glstate.material.back.shininess : STATE.MATERIAL.BACK.SHININESS :  : -1 : 0
+#var float4 glstate.light[0].ambient : STATE.LIGHT[0].AMBIENT :  : -1 : 0
+#var float4 glstate.light[0].diffuse : STATE.LIGHT[0].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[0].specular : STATE.LIGHT[0].SPECULAR :  : -1 : 0
+#var float4 glstate.light[0].position : STATE.LIGHT[0].POSITION :  : -1 : 0
+#var float4 glstate.light[0].attenuation : STATE.LIGHT[0].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[0].spot.direction : STATE.LIGHT[0].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[0].half : STATE.LIGHT[0].HALF :  : -1 : 0
+#var float4 glstate.light[1].ambient : STATE.LIGHT[1].AMBIENT :  : -1 : 0
+#var float4 glstate.light[1].diffuse : STATE.LIGHT[1].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[1].specular : STATE.LIGHT[1].SPECULAR :  : -1 : 0
+#var float4 glstate.light[1].position : STATE.LIGHT[1].POSITION :  : -1 : 0
+#var float4 glstate.light[1].attenuation : STATE.LIGHT[1].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[1].spot.direction : STATE.LIGHT[1].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[1].half : STATE.LIGHT[1].HALF :  : -1 : 0
+#var float4 glstate.light[2].ambient : STATE.LIGHT[2].AMBIENT :  : -1 : 0
+#var float4 glstate.light[2].diffuse : STATE.LIGHT[2].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[2].specular : STATE.LIGHT[2].SPECULAR :  : -1 : 0
+#var float4 glstate.light[2].position : STATE.LIGHT[2].POSITION :  : -1 : 0
+#var float4 glstate.light[2].attenuation : STATE.LIGHT[2].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[2].spot.direction : STATE.LIGHT[2].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[2].half : STATE.LIGHT[2].HALF :  : -1 : 0
+#var float4 glstate.light[3].ambient : STATE.LIGHT[3].AMBIENT :  : -1 : 0
+#var float4 glstate.light[3].diffuse : STATE.LIGHT[3].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[3].specular : STATE.LIGHT[3].SPECULAR :  : -1 : 0
+#var float4 glstate.light[3].position : STATE.LIGHT[3].POSITION :  : -1 : 0
+#var float4 glstate.light[3].attenuation : STATE.LIGHT[3].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[3].spot.direction : STATE.LIGHT[3].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[3].half : STATE.LIGHT[3].HALF :  : -1 : 0
+#var float4 glstate.light[4].ambient : STATE.LIGHT[4].AMBIENT :  : -1 : 0
+#var float4 glstate.light[4].diffuse : STATE.LIGHT[4].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[4].specular : STATE.LIGHT[4].SPECULAR :  : -1 : 0
+#var float4 glstate.light[4].position : STATE.LIGHT[4].POSITION :  : -1 : 0
+#var float4 glstate.light[4].attenuation : STATE.LIGHT[4].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[4].spot.direction : STATE.LIGHT[4].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[4].half : STATE.LIGHT[4].HALF :  : -1 : 0
+#var float4 glstate.light[5].ambient : STATE.LIGHT[5].AMBIENT :  : -1 : 0
+#var float4 glstate.light[5].diffuse : STATE.LIGHT[5].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[5].specular : STATE.LIGHT[5].SPECULAR :  : -1 : 0
+#var float4 glstate.light[5].position : STATE.LIGHT[5].POSITION :  : -1 : 0
+#var float4 glstate.light[5].attenuation : STATE.LIGHT[5].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[5].spot.direction : STATE.LIGHT[5].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[5].half : STATE.LIGHT[5].HALF :  : -1 : 0
+#var float4 glstate.light[6].ambient : STATE.LIGHT[6].AMBIENT :  : -1 : 0
+#var float4 glstate.light[6].diffuse : STATE.LIGHT[6].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[6].specular : STATE.LIGHT[6].SPECULAR :  : -1 : 0
+#var float4 glstate.light[6].position : STATE.LIGHT[6].POSITION :  : -1 : 0
+#var float4 glstate.light[6].attenuation : STATE.LIGHT[6].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[6].spot.direction : STATE.LIGHT[6].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[6].half : STATE.LIGHT[6].HALF :  : -1 : 0
+#var float4 glstate.light[7].ambient : STATE.LIGHT[7].AMBIENT :  : -1 : 0
+#var float4 glstate.light[7].diffuse : STATE.LIGHT[7].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[7].specular : STATE.LIGHT[7].SPECULAR :  : -1 : 0
+#var float4 glstate.light[7].position : STATE.LIGHT[7].POSITION :  : -1 : 0
+#var float4 glstate.light[7].attenuation : STATE.LIGHT[7].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[7].spot.direction : STATE.LIGHT[7].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[7].half : STATE.LIGHT[7].HALF :  : -1 : 0
+#var float4 glstate.lightmodel.ambient : STATE.LIGHTMODEL.AMBIENT :  : -1 : 0
+#var float4 glstate.lightmodel.scenecolor : STATE.LIGHTMODEL.SCENECOLOR :  : -1 : 0
+#var float4 glstate.lightmodel.front.scenecolor : STATE.LIGHTMODEL.FRONT.SCENECOLOR :  : -1 : 0
+#var float4 glstate.lightmodel.back.scenecolor : STATE.LIGHTMODEL.BACK.SCENECOLOR :  : -1 : 0
+#var float4 glstate.lightprod[0].ambient : STATE.LIGHTPROD[0].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[0].diffuse : STATE.LIGHTPROD[0].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[0].specular : STATE.LIGHTPROD[0].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[0].front.ambient : STATE.LIGHTPROD[0].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[0].front.diffuse : STATE.LIGHTPROD[0].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[0].front.specular : STATE.LIGHTPROD[0].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[0].back.ambient : STATE.LIGHTPROD[0].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[0].back.diffuse : STATE.LIGHTPROD[0].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[0].back.specular : STATE.LIGHTPROD[0].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[1].ambient : STATE.LIGHTPROD[1].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[1].diffuse : STATE.LIGHTPROD[1].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[1].specular : STATE.LIGHTPROD[1].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[1].front.ambient : STATE.LIGHTPROD[1].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[1].front.diffuse : STATE.LIGHTPROD[1].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[1].front.specular : STATE.LIGHTPROD[1].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[1].back.ambient : STATE.LIGHTPROD[1].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[1].back.diffuse : STATE.LIGHTPROD[1].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[1].back.specular : STATE.LIGHTPROD[1].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[2].ambient : STATE.LIGHTPROD[2].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[2].diffuse : STATE.LIGHTPROD[2].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[2].specular : STATE.LIGHTPROD[2].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[2].front.ambient : STATE.LIGHTPROD[2].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[2].front.diffuse : STATE.LIGHTPROD[2].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[2].front.specular : STATE.LIGHTPROD[2].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[2].back.ambient : STATE.LIGHTPROD[2].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[2].back.diffuse : STATE.LIGHTPROD[2].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[2].back.specular : STATE.LIGHTPROD[2].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[3].ambient : STATE.LIGHTPROD[3].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[3].diffuse : STATE.LIGHTPROD[3].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[3].specular : STATE.LIGHTPROD[3].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[3].front.ambient : STATE.LIGHTPROD[3].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[3].front.diffuse : STATE.LIGHTPROD[3].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[3].front.specular : STATE.LIGHTPROD[3].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[3].back.ambient : STATE.LIGHTPROD[3].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[3].back.diffuse : STATE.LIGHTPROD[3].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[3].back.specular : STATE.LIGHTPROD[3].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[4].ambient : STATE.LIGHTPROD[4].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[4].diffuse : STATE.LIGHTPROD[4].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[4].specular : STATE.LIGHTPROD[4].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[4].front.ambient : STATE.LIGHTPROD[4].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[4].front.diffuse : STATE.LIGHTPROD[4].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[4].front.specular : STATE.LIGHTPROD[4].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[4].back.ambient : STATE.LIGHTPROD[4].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[4].back.diffuse : STATE.LIGHTPROD[4].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[4].back.specular : STATE.LIGHTPROD[4].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[5].ambient : STATE.LIGHTPROD[5].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[5].diffuse : STATE.LIGHTPROD[5].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[5].specular : STATE.LIGHTPROD[5].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[5].front.ambient : STATE.LIGHTPROD[5].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[5].front.diffuse : STATE.LIGHTPROD[5].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[5].front.specular : STATE.LIGHTPROD[5].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[5].back.ambient : STATE.LIGHTPROD[5].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[5].back.diffuse : STATE.LIGHTPROD[5].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[5].back.specular : STATE.LIGHTPROD[5].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[6].ambient : STATE.LIGHTPROD[6].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[6].diffuse : STATE.LIGHTPROD[6].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[6].specular : STATE.LIGHTPROD[6].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[6].front.ambient : STATE.LIGHTPROD[6].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[6].front.diffuse : STATE.LIGHTPROD[6].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[6].front.specular : STATE.LIGHTPROD[6].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[6].back.ambient : STATE.LIGHTPROD[6].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[6].back.diffuse : STATE.LIGHTPROD[6].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[6].back.specular : STATE.LIGHTPROD[6].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[7].ambient : STATE.LIGHTPROD[7].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[7].diffuse : STATE.LIGHTPROD[7].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[7].specular : STATE.LIGHTPROD[7].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[7].front.ambient : STATE.LIGHTPROD[7].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[7].front.diffuse : STATE.LIGHTPROD[7].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[7].front.specular : STATE.LIGHTPROD[7].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[7].back.ambient : STATE.LIGHTPROD[7].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[7].back.diffuse : STATE.LIGHTPROD[7].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[7].back.specular : STATE.LIGHTPROD[7].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.texgen[0].eye.s : STATE.TEXGEN[0].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[0].eye.t : STATE.TEXGEN[0].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[0].eye.r : STATE.TEXGEN[0].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[0].eye.q : STATE.TEXGEN[0].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[0].object.s : STATE.TEXGEN[0].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[0].object.t : STATE.TEXGEN[0].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[0].object.r : STATE.TEXGEN[0].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[0].object.q : STATE.TEXGEN[0].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[1].eye.s : STATE.TEXGEN[1].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[1].eye.t : STATE.TEXGEN[1].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[1].eye.r : STATE.TEXGEN[1].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[1].eye.q : STATE.TEXGEN[1].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[1].object.s : STATE.TEXGEN[1].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[1].object.t : STATE.TEXGEN[1].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[1].object.r : STATE.TEXGEN[1].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[1].object.q : STATE.TEXGEN[1].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[2].eye.s : STATE.TEXGEN[2].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[2].eye.t : STATE.TEXGEN[2].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[2].eye.r : STATE.TEXGEN[2].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[2].eye.q : STATE.TEXGEN[2].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[2].object.s : STATE.TEXGEN[2].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[2].object.t : STATE.TEXGEN[2].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[2].object.r : STATE.TEXGEN[2].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[2].object.q : STATE.TEXGEN[2].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[3].eye.s : STATE.TEXGEN[3].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[3].eye.t : STATE.TEXGEN[3].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[3].eye.r : STATE.TEXGEN[3].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[3].eye.q : STATE.TEXGEN[3].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[3].object.s : STATE.TEXGEN[3].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[3].object.t : STATE.TEXGEN[3].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[3].object.r : STATE.TEXGEN[3].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[3].object.q : STATE.TEXGEN[3].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[4].eye.s : STATE.TEXGEN[4].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[4].eye.t : STATE.TEXGEN[4].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[4].eye.r : STATE.TEXGEN[4].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[4].eye.q : STATE.TEXGEN[4].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[4].object.s : STATE.TEXGEN[4].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[4].object.t : STATE.TEXGEN[4].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[4].object.r : STATE.TEXGEN[4].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[4].object.q : STATE.TEXGEN[4].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[5].eye.s : STATE.TEXGEN[5].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[5].eye.t : STATE.TEXGEN[5].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[5].eye.r : STATE.TEXGEN[5].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[5].eye.q : STATE.TEXGEN[5].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[5].object.s : STATE.TEXGEN[5].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[5].object.t : STATE.TEXGEN[5].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[5].object.r : STATE.TEXGEN[5].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[5].object.q : STATE.TEXGEN[5].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[6].eye.s : STATE.TEXGEN[6].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[6].eye.t : STATE.TEXGEN[6].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[6].eye.r : STATE.TEXGEN[6].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[6].eye.q : STATE.TEXGEN[6].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[6].object.s : STATE.TEXGEN[6].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[6].object.t : STATE.TEXGEN[6].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[6].object.r : STATE.TEXGEN[6].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[6].object.q : STATE.TEXGEN[6].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[7].eye.s : STATE.TEXGEN[7].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[7].eye.t : STATE.TEXGEN[7].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[7].eye.r : STATE.TEXGEN[7].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[7].eye.q : STATE.TEXGEN[7].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[7].object.s : STATE.TEXGEN[7].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[7].object.t : STATE.TEXGEN[7].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[7].object.r : STATE.TEXGEN[7].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[7].object.q : STATE.TEXGEN[7].OBJECT.Q :  : -1 : 0
+#var float4 glstate.fog.color : STATE.FOG.COLOR :  : -1 : 0
+#var float4 glstate.fog.params : STATE.FOG.PARAMS :  : -1 : 0
+#var float4 glstate.clip[0].plane : STATE.CLIP[0].PLANE :  : -1 : 0
+#var float4 glstate.clip[1].plane : STATE.CLIP[1].PLANE :  : -1 : 0
+#var float4 glstate.clip[2].plane : STATE.CLIP[2].PLANE :  : -1 : 0
+#var float4 glstate.clip[3].plane : STATE.CLIP[3].PLANE :  : -1 : 0
+#var float4 glstate.clip[4].plane : STATE.CLIP[4].PLANE :  : -1 : 0
+#var float4 glstate.clip[5].plane : STATE.CLIP[5].PLANE :  : -1 : 0
+#var float4 glstate.clip[6].plane : STATE.CLIP[6].PLANE :  : -1 : 0
+#var float4 glstate.clip[7].plane : STATE.CLIP[7].PLANE :  : -1 : 0
+#var float glstate.point.size : STATE.POINT.SIZE :  : -1 : 0
+#var float glstate.point.attenuation : STATE.POINT.ATTENUATION :  : -1 : 0
+#var float4x4 glstate.matrix.modelview[0] : STATE.MATRIX.MODELVIEW[0] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[1] : STATE.MATRIX.MODELVIEW[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[2] : STATE.MATRIX.MODELVIEW[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[3] : STATE.MATRIX.MODELVIEW[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[4] : STATE.MATRIX.MODELVIEW[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[5] : STATE.MATRIX.MODELVIEW[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[6] : STATE.MATRIX.MODELVIEW[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[7] : STATE.MATRIX.MODELVIEW[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.projection : STATE.MATRIX.PROJECTION : , 4 : -1 : 0
+#var float4x4 glstate.matrix.mvp : STATE.MATRIX.MVP : c[0], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[0] : STATE.MATRIX.TEXTURE[0] : c[4], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[1] : STATE.MATRIX.TEXTURE[1] : c[8], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[2] : STATE.MATRIX.TEXTURE[2] : c[12], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[3] : STATE.MATRIX.TEXTURE[3] : c[16], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[4] : STATE.MATRIX.TEXTURE[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[5] : STATE.MATRIX.TEXTURE[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[6] : STATE.MATRIX.TEXTURE[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[7] : STATE.MATRIX.TEXTURE[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[0] : STATE.MATRIX.PALETTE[0] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[1] : STATE.MATRIX.PALETTE[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[2] : STATE.MATRIX.PALETTE[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[3] : STATE.MATRIX.PALETTE[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[4] : STATE.MATRIX.PALETTE[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[5] : STATE.MATRIX.PALETTE[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[6] : STATE.MATRIX.PALETTE[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[7] : STATE.MATRIX.PALETTE[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[0] : STATE.MATRIX.PROGRAM[0] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[1] : STATE.MATRIX.PROGRAM[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[2] : STATE.MATRIX.PROGRAM[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[3] : STATE.MATRIX.PROGRAM[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[4] : STATE.MATRIX.PROGRAM[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[5] : STATE.MATRIX.PROGRAM[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[6] : STATE.MATRIX.PROGRAM[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[7] : STATE.MATRIX.PROGRAM[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[0] : STATE.MATRIX.MODELVIEW[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[1] : STATE.MATRIX.MODELVIEW[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[2] : STATE.MATRIX.MODELVIEW[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[3] : STATE.MATRIX.MODELVIEW[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[4] : STATE.MATRIX.MODELVIEW[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[5] : STATE.MATRIX.MODELVIEW[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[6] : STATE.MATRIX.MODELVIEW[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[7] : STATE.MATRIX.MODELVIEW[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.projection : STATE.MATRIX.PROJECTION.INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.mvp : STATE.MATRIX.MVP.INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[0] : STATE.MATRIX.TEXTURE[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[1] : STATE.MATRIX.TEXTURE[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[2] : STATE.MATRIX.TEXTURE[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[3] : STATE.MATRIX.TEXTURE[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[4] : STATE.MATRIX.TEXTURE[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[5] : STATE.MATRIX.TEXTURE[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[6] : STATE.MATRIX.TEXTURE[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[7] : STATE.MATRIX.TEXTURE[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[0] : STATE.MATRIX.PALETTE[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[1] : STATE.MATRIX.PALETTE[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[2] : STATE.MATRIX.PALETTE[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[3] : STATE.MATRIX.PALETTE[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[4] : STATE.MATRIX.PALETTE[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[5] : STATE.MATRIX.PALETTE[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[6] : STATE.MATRIX.PALETTE[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[7] : STATE.MATRIX.PALETTE[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[0] : STATE.MATRIX.PROGRAM[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[1] : STATE.MATRIX.PROGRAM[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[2] : STATE.MATRIX.PROGRAM[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[3] : STATE.MATRIX.PROGRAM[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[4] : STATE.MATRIX.PROGRAM[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[5] : STATE.MATRIX.PROGRAM[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[6] : STATE.MATRIX.PROGRAM[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[7] : STATE.MATRIX.PROGRAM[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[0] : STATE.MATRIX.MODELVIEW[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[1] : STATE.MATRIX.MODELVIEW[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[2] : STATE.MATRIX.MODELVIEW[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[3] : STATE.MATRIX.MODELVIEW[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[4] : STATE.MATRIX.MODELVIEW[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[5] : STATE.MATRIX.MODELVIEW[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[6] : STATE.MATRIX.MODELVIEW[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[7] : STATE.MATRIX.MODELVIEW[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.projection : STATE.MATRIX.PROJECTION.TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.mvp : STATE.MATRIX.MVP.TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[0] : STATE.MATRIX.TEXTURE[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[1] : STATE.MATRIX.TEXTURE[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[2] : STATE.MATRIX.TEXTURE[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[3] : STATE.MATRIX.TEXTURE[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[4] : STATE.MATRIX.TEXTURE[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[5] : STATE.MATRIX.TEXTURE[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[6] : STATE.MATRIX.TEXTURE[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[7] : STATE.MATRIX.TEXTURE[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[0] : STATE.MATRIX.PALETTE[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[1] : STATE.MATRIX.PALETTE[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[2] : STATE.MATRIX.PALETTE[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[3] : STATE.MATRIX.PALETTE[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[4] : STATE.MATRIX.PALETTE[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[5] : STATE.MATRIX.PALETTE[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[6] : STATE.MATRIX.PALETTE[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[7] : STATE.MATRIX.PALETTE[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[0] : STATE.MATRIX.PROGRAM[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[1] : STATE.MATRIX.PROGRAM[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[2] : STATE.MATRIX.PROGRAM[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[3] : STATE.MATRIX.PROGRAM[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[4] : STATE.MATRIX.PROGRAM[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[5] : STATE.MATRIX.PROGRAM[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[6] : STATE.MATRIX.PROGRAM[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[7] : STATE.MATRIX.PROGRAM[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[0] : STATE.MATRIX.MODELVIEW[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[1] : STATE.MATRIX.MODELVIEW[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[2] : STATE.MATRIX.MODELVIEW[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[3] : STATE.MATRIX.MODELVIEW[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[4] : STATE.MATRIX.MODELVIEW[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[5] : STATE.MATRIX.MODELVIEW[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[6] : STATE.MATRIX.MODELVIEW[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[7] : STATE.MATRIX.MODELVIEW[7].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.projection : STATE.MATRIX.PROJECTION.INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.mvp : STATE.MATRIX.MVP.INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[0] : STATE.MATRIX.TEXTURE[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[1] : STATE.MATRIX.TEXTURE[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[2] : STATE.MATRIX.TEXTURE[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[3] : STATE.MATRIX.TEXTURE[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[4] : STATE.MATRIX.TEXTURE[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[5] : STATE.MATRIX.TEXTURE[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[6] : STATE.MATRIX.TEXTURE[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[7] : STATE.MATRIX.TEXTURE[7].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[0] : STATE.MATRIX.PALETTE[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[1] : STATE.MATRIX.PALETTE[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[2] : STATE.MATRIX.PALETTE[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[3] : STATE.MATRIX.PALETTE[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[4] : STATE.MATRIX.PALETTE[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[5] : STATE.MATRIX.PALETTE[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[6] : STATE.MATRIX.PALETTE[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[7] : STATE.MATRIX.PALETTE[7].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[0] : STATE.MATRIX.PROGRAM[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[1] : STATE.MATRIX.PROGRAM[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[2] : STATE.MATRIX.PROGRAM[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[3] : STATE.MATRIX.PROGRAM[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[4] : STATE.MATRIX.PROGRAM[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[5] : STATE.MATRIX.PROGRAM[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[6] : STATE.MATRIX.PROGRAM[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[7] : STATE.MATRIX.PROGRAM[7].INVTRANS : , 4 : -1 : 0
+#var float4 IN.position : $vin.POSITION : POSITION : 0 : 1
+#var float4 IN.tex0 : $vin.ATTR8 : ATTR8 : 0 : 1
+#var float3 IN.tangent : $vin.ATTR9 : ATTR9 : 0 : 1
+#var float3 IN.binormal : $vin.ATTR10 : ATTR10 : 0 : 1
+#var float3 IN.normal : $vin.ATTR11 : ATTR11 : 0 : 1
+#var float4 main.hposition : $vout.HPOS : HPOS : -1 : 1
+#var float4 main.position : $vout.TEX0 : TEX0 : -1 : 1
+#var float4 main.tex_diffuse_bump : $vout.TEX1 : TEX1 : -1 : 1
+#var float4 main.tex_specular : $vout.TEX2 : TEX2 : -1 : 1
+#var float4 main.tex_atten_xy_z : $vout.TEX3 : TEX3 : -1 : 1
+#var float3 main.tangent : $vout.TEX4 : TEX4 : -1 : 1
+#var float3 main.binormal : $vout.TEX5 : TEX5 : -1 : 1
+#var float3 main.normal : $vout.TEX6 : TEX6 : -1 : 1
+PARAM c[20] = { state.matrix.mvp,
+               state.matrix.texture[0],
+               state.matrix.texture[1],
+               state.matrix.texture[2],
+               state.matrix.texture[3] };
+TEMP R0;
+DP4 result.position.w, vertex.position, c[3];
+DP4 result.position.z, vertex.position, c[2];
+DP4 result.position.y, vertex.position, c[1];
+DP4 result.position.x, vertex.position, c[0];
+DP4 R0.y, vertex.attrib[8], c[9];
+DP4 R0.x, vertex.attrib[8], c[8];
+MOV result.texcoord[0], vertex.position;
+MOV result.texcoord[1].zw, R0.xyxy;
+DP4 result.texcoord[1].y, vertex.attrib[8], c[5];
+DP4 result.texcoord[1].x, vertex.attrib[8], c[4];
+DP4 result.texcoord[2].w, vertex.attrib[8], c[15];
+DP4 result.texcoord[2].z, vertex.attrib[8], c[14];
+DP4 result.texcoord[2].y, vertex.attrib[8], c[13];
+DP4 result.texcoord[2].x, vertex.attrib[8], c[12];
+DP4 result.texcoord[3].w, vertex.position, c[19];
+DP4 result.texcoord[3].z, vertex.position, c[18];
+DP4 result.texcoord[3].y, vertex.position, c[17];
+DP4 result.texcoord[3].x, vertex.position, c[16];
+MOV result.texcoord[4].xyz, vertex.attrib[9];
+MOV result.texcoord[5].xyz, vertex.attrib[10];
+MOV result.texcoord[6].xyz, vertex.attrib[11];
+END
+# 21 instructions, 1 R-regs
diff --git a/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_vp.glsl b/extra/netradiant-1.5.0-win32/gl/lighting_DBS_omni_vp.glsl
new file mode 100644 (file)
index 0000000..6900b5a
--- /dev/null
@@ -0,0 +1,58 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "CONTRIBUTORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+attribute vec4         attr_TexCoord0;
+attribute vec3         attr_Tangent;
+attribute vec3         attr_Binormal;
+
+varying vec3           var_vertex;
+varying vec4           var_tex_diffuse_bump;
+varying vec2           var_tex_specular;
+varying vec4           var_tex_atten_xy_z;
+varying mat3           var_mat_os2ts;
+
+void   main()
+{
+       // transform vertex position into homogenous clip-space
+       gl_Position = ftransform();
+       
+       // assign position in object space
+       var_vertex = gl_Vertex.xyz;
+               
+       // transform texcoords into diffusemap texture space
+       var_tex_diffuse_bump.st = (gl_TextureMatrix[0] * attr_TexCoord0).st;
+       
+       // transform texcoords into bumpmap texture space
+       var_tex_diffuse_bump.pq = (gl_TextureMatrix[1] * attr_TexCoord0).st;
+       
+       // transform texcoords into specularmap texture space
+       var_tex_specular = (gl_TextureMatrix[2] * attr_TexCoord0).st;
+       
+       // calc light xy,z attenuation in light space
+       var_tex_atten_xy_z = gl_TextureMatrix[3] * gl_Vertex;
+
+       
+       // construct object-space-to-tangent-space 3x3 matrix
+       var_mat_os2ts = mat3(   attr_Tangent.x, attr_Binormal.x, gl_Normal.x,
+                               attr_Tangent.y, attr_Binormal.y, gl_Normal.y,
+                               attr_Tangent.z, attr_Binormal.z, gl_Normal.z    );
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/utils.cg b/extra/netradiant-1.5.0-win32/gl/utils.cg
new file mode 100644 (file)
index 0000000..63bfcb6
--- /dev/null
@@ -0,0 +1,36 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "AUTHORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+// fresnel approximation
+float  fast_fresnel(float3 I, float3 N, float3 fresnel_values)
+{
+       float power = fresnel_values.x;
+       float scale = fresnel_values.y;
+       float bias  = fresnel_values.z;
+
+       return bias + pow(1.0 - dot(I, N), power) * scale;
+}
+
+float3 CG_Expand(float3 v)
+{
+       return (v - 0.5) * 2;   // expand a range-compressed vector
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/zfill_arbfp1.cg b/extra/netradiant-1.5.0-win32/gl/zfill_arbfp1.cg
new file mode 100644 (file)
index 0000000..c80189c
--- /dev/null
@@ -0,0 +1,47 @@
+/// ============================================================================
+/*
+Copyright (C) 2003 Robert Beckebans <trebor_7@users.sourceforge.net>
+Copyright (C) 2003, 2004  contributors of the XreaL project
+Please see the file "AUTHORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+
+struct cg_vertex2fragment
+{
+       float4 position         : POSITION;
+       float4 tex0             : TEXCOORD0;
+};
+
+struct cg_fragment2final
+{
+       float4 color            : COLOR;
+};
+
+
+cg_fragment2final main(in      cg_vertex2fragment IN,
+                               uniform sampler2D colormap)
+{
+       cg_fragment2final OUT;
+       
+       OUT.color.w = tex2D(colormap, IN.tex0.xy).a;
+       
+       OUT.color.xyz = 0;
+    
+       return OUT;
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/zfill_arbvp1.cg b/extra/netradiant-1.5.0-win32/gl/zfill_arbvp1.cg
new file mode 100644 (file)
index 0000000..4ffc6e2
--- /dev/null
@@ -0,0 +1,49 @@
+/// ============================================================================
+/*
+Copyright (C) 2003 Robert Beckebans <trebor_7@users.sourceforge.net>
+Copyright (C) 2003, 2004  contributors of the XreaL project
+Please see the file "AUTHORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+
+struct cg_app2vertex
+{
+       float4 position         : ATTR0;
+       float4 texcoord0        : ATTR8;
+};
+
+struct cg_vertex2fragment
+{
+       float4 position         : POSITION;
+       float4 tex0             : TEXCOORD0;
+};
+
+
+cg_vertex2fragment main(cg_app2vertex IN)
+{
+       cg_vertex2fragment OUT;
+       
+       // transform vertex position into homogenous clip-space
+       OUT.position = mul(glstate.matrix.mvp, IN.position);
+       
+       // transform texcoords into 1st texture space
+       OUT.tex0 = mul(glstate.matrix.texture[0], IN.texcoord0);
+    
+       return OUT;
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/zfill_fp.glp b/extra/netradiant-1.5.0-win32/gl/zfill_fp.glp
new file mode 100644 (file)
index 0000000..5eb8b12
--- /dev/null
@@ -0,0 +1,19 @@
+!!ARBfp1.0
+# cgc version 1.3.0001, build date Aug  4 2004 10:01:10
+# command line args: -profile arbfp1
+# source file: ..\..\setup\data\tools\gl\zfill_arbfp1.cg
+#vendor NVIDIA Corporation
+#version 1.0.02
+#profile arbfp1
+#program main
+#semantic main.colormap
+#var float4 IN.position :  :  : 0 : 0
+#var float4 IN.tex0 : $vin.TEX0 : TEX0 : 0 : 1
+#var sampler2D colormap :  : texunit 0 : 1 : 1
+#var float4 main.color : $vout.COL : COL : -1 : 1
+#const c[0] = 0
+PARAM c[1] = { { 0 } };
+MOV result.color.xyz, c[0].x;
+TEX result.color.w, fragment.texcoord[0], texture[0], 2D;
+END
+# 2 instructions, 0 R-regs
diff --git a/extra/netradiant-1.5.0-win32/gl/zfill_fp.glsl b/extra/netradiant-1.5.0-win32/gl/zfill_fp.glsl
new file mode 100644 (file)
index 0000000..537db67
--- /dev/null
@@ -0,0 +1,29 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "CONTRIBUTORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+uniform sampler2D      u_colormap;
+
+void   main()
+{
+       gl_FragColor.a = texture2D(u_colormap, gl_TexCoord[0].st).a;
+       gl_FragColor.rgb = vec3(0.0, 0.0, 0.0);
+}
diff --git a/extra/netradiant-1.5.0-win32/gl/zfill_vp.glp b/extra/netradiant-1.5.0-win32/gl/zfill_vp.glp
new file mode 100644 (file)
index 0000000..f6eda0c
--- /dev/null
@@ -0,0 +1,384 @@
+!!ARBvp1.0
+# cgc version 1.3.0001, build date Aug  4 2004 10:01:10
+# command line args: -profile arbvp1
+# source file: ..\..\setup\data\tools\gl\zfill_arbvp1.cg
+#vendor NVIDIA Corporation
+#version 1.0.02
+#profile arbvp1
+#program main
+#semantic glstate : STATE
+#var float4 glstate.material.ambient : STATE.MATERIAL.AMBIENT :  : -1 : 0
+#var float4 glstate.material.diffuse : STATE.MATERIAL.DIFFUSE :  : -1 : 0
+#var float4 glstate.material.specular : STATE.MATERIAL.SPECULAR :  : -1 : 0
+#var float4 glstate.material.emission : STATE.MATERIAL.EMISSION :  : -1 : 0
+#var float4 glstate.material.shininess : STATE.MATERIAL.SHININESS :  : -1 : 0
+#var float4 glstate.material.front.ambient : STATE.MATERIAL.FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.material.front.diffuse : STATE.MATERIAL.FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.material.front.specular : STATE.MATERIAL.FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.material.front.emission : STATE.MATERIAL.FRONT.EMISSION :  : -1 : 0
+#var float4 glstate.material.front.shininess : STATE.MATERIAL.FRONT.SHININESS :  : -1 : 0
+#var float4 glstate.material.back.ambient : STATE.MATERIAL.BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.material.back.diffuse : STATE.MATERIAL.BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.material.back.specular : STATE.MATERIAL.BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.material.back.emission : STATE.MATERIAL.BACK.EMISSION :  : -1 : 0
+#var float4 glstate.material.back.shininess : STATE.MATERIAL.BACK.SHININESS :  : -1 : 0
+#var float4 glstate.light[0].ambient : STATE.LIGHT[0].AMBIENT :  : -1 : 0
+#var float4 glstate.light[0].diffuse : STATE.LIGHT[0].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[0].specular : STATE.LIGHT[0].SPECULAR :  : -1 : 0
+#var float4 glstate.light[0].position : STATE.LIGHT[0].POSITION :  : -1 : 0
+#var float4 glstate.light[0].attenuation : STATE.LIGHT[0].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[0].spot.direction : STATE.LIGHT[0].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[0].half : STATE.LIGHT[0].HALF :  : -1 : 0
+#var float4 glstate.light[1].ambient : STATE.LIGHT[1].AMBIENT :  : -1 : 0
+#var float4 glstate.light[1].diffuse : STATE.LIGHT[1].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[1].specular : STATE.LIGHT[1].SPECULAR :  : -1 : 0
+#var float4 glstate.light[1].position : STATE.LIGHT[1].POSITION :  : -1 : 0
+#var float4 glstate.light[1].attenuation : STATE.LIGHT[1].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[1].spot.direction : STATE.LIGHT[1].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[1].half : STATE.LIGHT[1].HALF :  : -1 : 0
+#var float4 glstate.light[2].ambient : STATE.LIGHT[2].AMBIENT :  : -1 : 0
+#var float4 glstate.light[2].diffuse : STATE.LIGHT[2].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[2].specular : STATE.LIGHT[2].SPECULAR :  : -1 : 0
+#var float4 glstate.light[2].position : STATE.LIGHT[2].POSITION :  : -1 : 0
+#var float4 glstate.light[2].attenuation : STATE.LIGHT[2].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[2].spot.direction : STATE.LIGHT[2].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[2].half : STATE.LIGHT[2].HALF :  : -1 : 0
+#var float4 glstate.light[3].ambient : STATE.LIGHT[3].AMBIENT :  : -1 : 0
+#var float4 glstate.light[3].diffuse : STATE.LIGHT[3].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[3].specular : STATE.LIGHT[3].SPECULAR :  : -1 : 0
+#var float4 glstate.light[3].position : STATE.LIGHT[3].POSITION :  : -1 : 0
+#var float4 glstate.light[3].attenuation : STATE.LIGHT[3].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[3].spot.direction : STATE.LIGHT[3].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[3].half : STATE.LIGHT[3].HALF :  : -1 : 0
+#var float4 glstate.light[4].ambient : STATE.LIGHT[4].AMBIENT :  : -1 : 0
+#var float4 glstate.light[4].diffuse : STATE.LIGHT[4].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[4].specular : STATE.LIGHT[4].SPECULAR :  : -1 : 0
+#var float4 glstate.light[4].position : STATE.LIGHT[4].POSITION :  : -1 : 0
+#var float4 glstate.light[4].attenuation : STATE.LIGHT[4].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[4].spot.direction : STATE.LIGHT[4].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[4].half : STATE.LIGHT[4].HALF :  : -1 : 0
+#var float4 glstate.light[5].ambient : STATE.LIGHT[5].AMBIENT :  : -1 : 0
+#var float4 glstate.light[5].diffuse : STATE.LIGHT[5].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[5].specular : STATE.LIGHT[5].SPECULAR :  : -1 : 0
+#var float4 glstate.light[5].position : STATE.LIGHT[5].POSITION :  : -1 : 0
+#var float4 glstate.light[5].attenuation : STATE.LIGHT[5].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[5].spot.direction : STATE.LIGHT[5].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[5].half : STATE.LIGHT[5].HALF :  : -1 : 0
+#var float4 glstate.light[6].ambient : STATE.LIGHT[6].AMBIENT :  : -1 : 0
+#var float4 glstate.light[6].diffuse : STATE.LIGHT[6].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[6].specular : STATE.LIGHT[6].SPECULAR :  : -1 : 0
+#var float4 glstate.light[6].position : STATE.LIGHT[6].POSITION :  : -1 : 0
+#var float4 glstate.light[6].attenuation : STATE.LIGHT[6].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[6].spot.direction : STATE.LIGHT[6].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[6].half : STATE.LIGHT[6].HALF :  : -1 : 0
+#var float4 glstate.light[7].ambient : STATE.LIGHT[7].AMBIENT :  : -1 : 0
+#var float4 glstate.light[7].diffuse : STATE.LIGHT[7].DIFFUSE :  : -1 : 0
+#var float4 glstate.light[7].specular : STATE.LIGHT[7].SPECULAR :  : -1 : 0
+#var float4 glstate.light[7].position : STATE.LIGHT[7].POSITION :  : -1 : 0
+#var float4 glstate.light[7].attenuation : STATE.LIGHT[7].ATTENUATION :  : -1 : 0
+#var float4 glstate.light[7].spot.direction : STATE.LIGHT[7].SPOT.DIRECTION :  : -1 : 0
+#var float4 glstate.light[7].half : STATE.LIGHT[7].HALF :  : -1 : 0
+#var float4 glstate.lightmodel.ambient : STATE.LIGHTMODEL.AMBIENT :  : -1 : 0
+#var float4 glstate.lightmodel.scenecolor : STATE.LIGHTMODEL.SCENECOLOR :  : -1 : 0
+#var float4 glstate.lightmodel.front.scenecolor : STATE.LIGHTMODEL.FRONT.SCENECOLOR :  : -1 : 0
+#var float4 glstate.lightmodel.back.scenecolor : STATE.LIGHTMODEL.BACK.SCENECOLOR :  : -1 : 0
+#var float4 glstate.lightprod[0].ambient : STATE.LIGHTPROD[0].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[0].diffuse : STATE.LIGHTPROD[0].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[0].specular : STATE.LIGHTPROD[0].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[0].front.ambient : STATE.LIGHTPROD[0].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[0].front.diffuse : STATE.LIGHTPROD[0].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[0].front.specular : STATE.LIGHTPROD[0].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[0].back.ambient : STATE.LIGHTPROD[0].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[0].back.diffuse : STATE.LIGHTPROD[0].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[0].back.specular : STATE.LIGHTPROD[0].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[1].ambient : STATE.LIGHTPROD[1].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[1].diffuse : STATE.LIGHTPROD[1].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[1].specular : STATE.LIGHTPROD[1].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[1].front.ambient : STATE.LIGHTPROD[1].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[1].front.diffuse : STATE.LIGHTPROD[1].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[1].front.specular : STATE.LIGHTPROD[1].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[1].back.ambient : STATE.LIGHTPROD[1].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[1].back.diffuse : STATE.LIGHTPROD[1].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[1].back.specular : STATE.LIGHTPROD[1].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[2].ambient : STATE.LIGHTPROD[2].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[2].diffuse : STATE.LIGHTPROD[2].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[2].specular : STATE.LIGHTPROD[2].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[2].front.ambient : STATE.LIGHTPROD[2].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[2].front.diffuse : STATE.LIGHTPROD[2].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[2].front.specular : STATE.LIGHTPROD[2].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[2].back.ambient : STATE.LIGHTPROD[2].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[2].back.diffuse : STATE.LIGHTPROD[2].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[2].back.specular : STATE.LIGHTPROD[2].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[3].ambient : STATE.LIGHTPROD[3].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[3].diffuse : STATE.LIGHTPROD[3].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[3].specular : STATE.LIGHTPROD[3].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[3].front.ambient : STATE.LIGHTPROD[3].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[3].front.diffuse : STATE.LIGHTPROD[3].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[3].front.specular : STATE.LIGHTPROD[3].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[3].back.ambient : STATE.LIGHTPROD[3].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[3].back.diffuse : STATE.LIGHTPROD[3].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[3].back.specular : STATE.LIGHTPROD[3].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[4].ambient : STATE.LIGHTPROD[4].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[4].diffuse : STATE.LIGHTPROD[4].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[4].specular : STATE.LIGHTPROD[4].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[4].front.ambient : STATE.LIGHTPROD[4].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[4].front.diffuse : STATE.LIGHTPROD[4].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[4].front.specular : STATE.LIGHTPROD[4].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[4].back.ambient : STATE.LIGHTPROD[4].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[4].back.diffuse : STATE.LIGHTPROD[4].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[4].back.specular : STATE.LIGHTPROD[4].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[5].ambient : STATE.LIGHTPROD[5].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[5].diffuse : STATE.LIGHTPROD[5].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[5].specular : STATE.LIGHTPROD[5].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[5].front.ambient : STATE.LIGHTPROD[5].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[5].front.diffuse : STATE.LIGHTPROD[5].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[5].front.specular : STATE.LIGHTPROD[5].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[5].back.ambient : STATE.LIGHTPROD[5].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[5].back.diffuse : STATE.LIGHTPROD[5].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[5].back.specular : STATE.LIGHTPROD[5].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[6].ambient : STATE.LIGHTPROD[6].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[6].diffuse : STATE.LIGHTPROD[6].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[6].specular : STATE.LIGHTPROD[6].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[6].front.ambient : STATE.LIGHTPROD[6].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[6].front.diffuse : STATE.LIGHTPROD[6].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[6].front.specular : STATE.LIGHTPROD[6].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[6].back.ambient : STATE.LIGHTPROD[6].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[6].back.diffuse : STATE.LIGHTPROD[6].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[6].back.specular : STATE.LIGHTPROD[6].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[7].ambient : STATE.LIGHTPROD[7].AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[7].diffuse : STATE.LIGHTPROD[7].DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[7].specular : STATE.LIGHTPROD[7].SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[7].front.ambient : STATE.LIGHTPROD[7].FRONT.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[7].front.diffuse : STATE.LIGHTPROD[7].FRONT.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[7].front.specular : STATE.LIGHTPROD[7].FRONT.SPECULAR :  : -1 : 0
+#var float4 glstate.lightprod[7].back.ambient : STATE.LIGHTPROD[7].BACK.AMBIENT :  : -1 : 0
+#var float4 glstate.lightprod[7].back.diffuse : STATE.LIGHTPROD[7].BACK.DIFFUSE :  : -1 : 0
+#var float4 glstate.lightprod[7].back.specular : STATE.LIGHTPROD[7].BACK.SPECULAR :  : -1 : 0
+#var float4 glstate.texgen[0].eye.s : STATE.TEXGEN[0].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[0].eye.t : STATE.TEXGEN[0].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[0].eye.r : STATE.TEXGEN[0].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[0].eye.q : STATE.TEXGEN[0].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[0].object.s : STATE.TEXGEN[0].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[0].object.t : STATE.TEXGEN[0].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[0].object.r : STATE.TEXGEN[0].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[0].object.q : STATE.TEXGEN[0].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[1].eye.s : STATE.TEXGEN[1].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[1].eye.t : STATE.TEXGEN[1].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[1].eye.r : STATE.TEXGEN[1].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[1].eye.q : STATE.TEXGEN[1].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[1].object.s : STATE.TEXGEN[1].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[1].object.t : STATE.TEXGEN[1].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[1].object.r : STATE.TEXGEN[1].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[1].object.q : STATE.TEXGEN[1].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[2].eye.s : STATE.TEXGEN[2].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[2].eye.t : STATE.TEXGEN[2].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[2].eye.r : STATE.TEXGEN[2].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[2].eye.q : STATE.TEXGEN[2].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[2].object.s : STATE.TEXGEN[2].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[2].object.t : STATE.TEXGEN[2].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[2].object.r : STATE.TEXGEN[2].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[2].object.q : STATE.TEXGEN[2].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[3].eye.s : STATE.TEXGEN[3].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[3].eye.t : STATE.TEXGEN[3].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[3].eye.r : STATE.TEXGEN[3].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[3].eye.q : STATE.TEXGEN[3].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[3].object.s : STATE.TEXGEN[3].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[3].object.t : STATE.TEXGEN[3].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[3].object.r : STATE.TEXGEN[3].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[3].object.q : STATE.TEXGEN[3].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[4].eye.s : STATE.TEXGEN[4].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[4].eye.t : STATE.TEXGEN[4].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[4].eye.r : STATE.TEXGEN[4].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[4].eye.q : STATE.TEXGEN[4].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[4].object.s : STATE.TEXGEN[4].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[4].object.t : STATE.TEXGEN[4].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[4].object.r : STATE.TEXGEN[4].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[4].object.q : STATE.TEXGEN[4].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[5].eye.s : STATE.TEXGEN[5].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[5].eye.t : STATE.TEXGEN[5].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[5].eye.r : STATE.TEXGEN[5].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[5].eye.q : STATE.TEXGEN[5].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[5].object.s : STATE.TEXGEN[5].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[5].object.t : STATE.TEXGEN[5].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[5].object.r : STATE.TEXGEN[5].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[5].object.q : STATE.TEXGEN[5].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[6].eye.s : STATE.TEXGEN[6].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[6].eye.t : STATE.TEXGEN[6].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[6].eye.r : STATE.TEXGEN[6].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[6].eye.q : STATE.TEXGEN[6].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[6].object.s : STATE.TEXGEN[6].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[6].object.t : STATE.TEXGEN[6].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[6].object.r : STATE.TEXGEN[6].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[6].object.q : STATE.TEXGEN[6].OBJECT.Q :  : -1 : 0
+#var float4 glstate.texgen[7].eye.s : STATE.TEXGEN[7].EYE.S :  : -1 : 0
+#var float4 glstate.texgen[7].eye.t : STATE.TEXGEN[7].EYE.T :  : -1 : 0
+#var float4 glstate.texgen[7].eye.r : STATE.TEXGEN[7].EYE.R :  : -1 : 0
+#var float4 glstate.texgen[7].eye.q : STATE.TEXGEN[7].EYE.Q :  : -1 : 0
+#var float4 glstate.texgen[7].object.s : STATE.TEXGEN[7].OBJECT.S :  : -1 : 0
+#var float4 glstate.texgen[7].object.t : STATE.TEXGEN[7].OBJECT.T :  : -1 : 0
+#var float4 glstate.texgen[7].object.r : STATE.TEXGEN[7].OBJECT.R :  : -1 : 0
+#var float4 glstate.texgen[7].object.q : STATE.TEXGEN[7].OBJECT.Q :  : -1 : 0
+#var float4 glstate.fog.color : STATE.FOG.COLOR :  : -1 : 0
+#var float4 glstate.fog.params : STATE.FOG.PARAMS :  : -1 : 0
+#var float4 glstate.clip[0].plane : STATE.CLIP[0].PLANE :  : -1 : 0
+#var float4 glstate.clip[1].plane : STATE.CLIP[1].PLANE :  : -1 : 0
+#var float4 glstate.clip[2].plane : STATE.CLIP[2].PLANE :  : -1 : 0
+#var float4 glstate.clip[3].plane : STATE.CLIP[3].PLANE :  : -1 : 0
+#var float4 glstate.clip[4].plane : STATE.CLIP[4].PLANE :  : -1 : 0
+#var float4 glstate.clip[5].plane : STATE.CLIP[5].PLANE :  : -1 : 0
+#var float4 glstate.clip[6].plane : STATE.CLIP[6].PLANE :  : -1 : 0
+#var float4 glstate.clip[7].plane : STATE.CLIP[7].PLANE :  : -1 : 0
+#var float glstate.point.size : STATE.POINT.SIZE :  : -1 : 0
+#var float glstate.point.attenuation : STATE.POINT.ATTENUATION :  : -1 : 0
+#var float4x4 glstate.matrix.modelview[0] : STATE.MATRIX.MODELVIEW[0] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[1] : STATE.MATRIX.MODELVIEW[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[2] : STATE.MATRIX.MODELVIEW[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[3] : STATE.MATRIX.MODELVIEW[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[4] : STATE.MATRIX.MODELVIEW[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[5] : STATE.MATRIX.MODELVIEW[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[6] : STATE.MATRIX.MODELVIEW[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.modelview[7] : STATE.MATRIX.MODELVIEW[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.projection : STATE.MATRIX.PROJECTION : , 4 : -1 : 0
+#var float4x4 glstate.matrix.mvp : STATE.MATRIX.MVP : c[0], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[0] : STATE.MATRIX.TEXTURE[0] : c[4], 4 : -1 : 1
+#var float4x4 glstate.matrix.texture[1] : STATE.MATRIX.TEXTURE[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[2] : STATE.MATRIX.TEXTURE[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[3] : STATE.MATRIX.TEXTURE[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[4] : STATE.MATRIX.TEXTURE[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[5] : STATE.MATRIX.TEXTURE[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[6] : STATE.MATRIX.TEXTURE[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.texture[7] : STATE.MATRIX.TEXTURE[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[0] : STATE.MATRIX.PALETTE[0] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[1] : STATE.MATRIX.PALETTE[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[2] : STATE.MATRIX.PALETTE[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[3] : STATE.MATRIX.PALETTE[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[4] : STATE.MATRIX.PALETTE[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[5] : STATE.MATRIX.PALETTE[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[6] : STATE.MATRIX.PALETTE[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.palette[7] : STATE.MATRIX.PALETTE[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[0] : STATE.MATRIX.PROGRAM[0] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[1] : STATE.MATRIX.PROGRAM[1] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[2] : STATE.MATRIX.PROGRAM[2] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[3] : STATE.MATRIX.PROGRAM[3] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[4] : STATE.MATRIX.PROGRAM[4] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[5] : STATE.MATRIX.PROGRAM[5] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[6] : STATE.MATRIX.PROGRAM[6] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.program[7] : STATE.MATRIX.PROGRAM[7] : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[0] : STATE.MATRIX.MODELVIEW[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[1] : STATE.MATRIX.MODELVIEW[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[2] : STATE.MATRIX.MODELVIEW[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[3] : STATE.MATRIX.MODELVIEW[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[4] : STATE.MATRIX.MODELVIEW[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[5] : STATE.MATRIX.MODELVIEW[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[6] : STATE.MATRIX.MODELVIEW[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.modelview[7] : STATE.MATRIX.MODELVIEW[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.projection : STATE.MATRIX.PROJECTION.INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.mvp : STATE.MATRIX.MVP.INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[0] : STATE.MATRIX.TEXTURE[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[1] : STATE.MATRIX.TEXTURE[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[2] : STATE.MATRIX.TEXTURE[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[3] : STATE.MATRIX.TEXTURE[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[4] : STATE.MATRIX.TEXTURE[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[5] : STATE.MATRIX.TEXTURE[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[6] : STATE.MATRIX.TEXTURE[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.texture[7] : STATE.MATRIX.TEXTURE[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[0] : STATE.MATRIX.PALETTE[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[1] : STATE.MATRIX.PALETTE[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[2] : STATE.MATRIX.PALETTE[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[3] : STATE.MATRIX.PALETTE[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[4] : STATE.MATRIX.PALETTE[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[5] : STATE.MATRIX.PALETTE[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[6] : STATE.MATRIX.PALETTE[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.palette[7] : STATE.MATRIX.PALETTE[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[0] : STATE.MATRIX.PROGRAM[0].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[1] : STATE.MATRIX.PROGRAM[1].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[2] : STATE.MATRIX.PROGRAM[2].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[3] : STATE.MATRIX.PROGRAM[3].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[4] : STATE.MATRIX.PROGRAM[4].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[5] : STATE.MATRIX.PROGRAM[5].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[6] : STATE.MATRIX.PROGRAM[6].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.inverse.program[7] : STATE.MATRIX.PROGRAM[7].INVERSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[0] : STATE.MATRIX.MODELVIEW[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[1] : STATE.MATRIX.MODELVIEW[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[2] : STATE.MATRIX.MODELVIEW[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[3] : STATE.MATRIX.MODELVIEW[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[4] : STATE.MATRIX.MODELVIEW[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[5] : STATE.MATRIX.MODELVIEW[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[6] : STATE.MATRIX.MODELVIEW[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.modelview[7] : STATE.MATRIX.MODELVIEW[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.projection : STATE.MATRIX.PROJECTION.TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.mvp : STATE.MATRIX.MVP.TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[0] : STATE.MATRIX.TEXTURE[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[1] : STATE.MATRIX.TEXTURE[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[2] : STATE.MATRIX.TEXTURE[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[3] : STATE.MATRIX.TEXTURE[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[4] : STATE.MATRIX.TEXTURE[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[5] : STATE.MATRIX.TEXTURE[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[6] : STATE.MATRIX.TEXTURE[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.texture[7] : STATE.MATRIX.TEXTURE[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[0] : STATE.MATRIX.PALETTE[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[1] : STATE.MATRIX.PALETTE[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[2] : STATE.MATRIX.PALETTE[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[3] : STATE.MATRIX.PALETTE[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[4] : STATE.MATRIX.PALETTE[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[5] : STATE.MATRIX.PALETTE[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[6] : STATE.MATRIX.PALETTE[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.palette[7] : STATE.MATRIX.PALETTE[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[0] : STATE.MATRIX.PROGRAM[0].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[1] : STATE.MATRIX.PROGRAM[1].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[2] : STATE.MATRIX.PROGRAM[2].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[3] : STATE.MATRIX.PROGRAM[3].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[4] : STATE.MATRIX.PROGRAM[4].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[5] : STATE.MATRIX.PROGRAM[5].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[6] : STATE.MATRIX.PROGRAM[6].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.transpose.program[7] : STATE.MATRIX.PROGRAM[7].TRANSPOSE : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[0] : STATE.MATRIX.MODELVIEW[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[1] : STATE.MATRIX.MODELVIEW[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[2] : STATE.MATRIX.MODELVIEW[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[3] : STATE.MATRIX.MODELVIEW[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[4] : STATE.MATRIX.MODELVIEW[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[5] : STATE.MATRIX.MODELVIEW[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[6] : STATE.MATRIX.MODELVIEW[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.modelview[7] : STATE.MATRIX.MODELVIEW[7].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.projection : STATE.MATRIX.PROJECTION.INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.mvp : STATE.MATRIX.MVP.INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[0] : STATE.MATRIX.TEXTURE[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[1] : STATE.MATRIX.TEXTURE[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[2] : STATE.MATRIX.TEXTURE[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[3] : STATE.MATRIX.TEXTURE[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[4] : STATE.MATRIX.TEXTURE[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[5] : STATE.MATRIX.TEXTURE[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[6] : STATE.MATRIX.TEXTURE[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.texture[7] : STATE.MATRIX.TEXTURE[7].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[0] : STATE.MATRIX.PALETTE[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[1] : STATE.MATRIX.PALETTE[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[2] : STATE.MATRIX.PALETTE[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[3] : STATE.MATRIX.PALETTE[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[4] : STATE.MATRIX.PALETTE[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[5] : STATE.MATRIX.PALETTE[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[6] : STATE.MATRIX.PALETTE[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.palette[7] : STATE.MATRIX.PALETTE[7].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[0] : STATE.MATRIX.PROGRAM[0].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[1] : STATE.MATRIX.PROGRAM[1].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[2] : STATE.MATRIX.PROGRAM[2].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[3] : STATE.MATRIX.PROGRAM[3].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[4] : STATE.MATRIX.PROGRAM[4].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[5] : STATE.MATRIX.PROGRAM[5].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[6] : STATE.MATRIX.PROGRAM[6].INVTRANS : , 4 : -1 : 0
+#var float4x4 glstate.matrix.invtrans.program[7] : STATE.MATRIX.PROGRAM[7].INVTRANS : , 4 : -1 : 0
+#var float4 IN.position : $vin.ATTR0 : ATTR0 : 0 : 1
+#var float4 IN.texcoord0 : $vin.ATTR8 : ATTR8 : 0 : 1
+#var float4 main.position : $vout.HPOS : HPOS : -1 : 1
+#var float4 main.tex0 : $vout.TEX0 : TEX0 : -1 : 1
+PARAM c[8] = { state.matrix.mvp,
+               state.matrix.texture[0] };
+DP4 result.position.w, vertex.attrib[0], c[3];
+DP4 result.position.z, vertex.attrib[0], c[2];
+DP4 result.position.y, vertex.attrib[0], c[1];
+DP4 result.position.x, vertex.attrib[0], c[0];
+DP4 result.texcoord[0].w, vertex.attrib[8], c[7];
+DP4 result.texcoord[0].z, vertex.attrib[8], c[6];
+DP4 result.texcoord[0].y, vertex.attrib[8], c[5];
+DP4 result.texcoord[0].x, vertex.attrib[8], c[4];
+END
+# 8 instructions, 0 R-regs
diff --git a/extra/netradiant-1.5.0-win32/gl/zfill_vp.glsl b/extra/netradiant-1.5.0-win32/gl/zfill_vp.glsl
new file mode 100644 (file)
index 0000000..4c81280
--- /dev/null
@@ -0,0 +1,35 @@
+/// ============================================================================
+/*
+Copyright (C) 2004 Robert Beckebans <trebor_7@users.sourceforge.net>
+Please see the file "CONTRIBUTORS" for a list of contributors
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+
+See the GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+/// ============================================================================
+
+attribute vec4         attr_TexCoord0;
+
+void   main()
+{
+       // transform vertex position into homogenous clip-space
+       gl_Position = ftransform();
+       
+       // transform texcoords
+       gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;
+       
+       // assign color
+       gl_FrontColor = gl_Color;
+}
diff --git a/extra/netradiant-1.5.0-win32/global.xlink b/extra/netradiant-1.5.0-win32/global.xlink
new file mode 100644 (file)
index 0000000..3ca47f1
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
+<!-- generated by Radiant setup, modify at your own risks -->
+<links>
+<item name="NetRadiant website" url="http://www.icculus.org/netradiant/"/>
+<item name="q3map2 handbook (web)" url="http://shaderlab.com/q3map2/manual/default.htm"/>
+<item name="ETB documentation (web)" url="http://www.map-craft.com/modules.php?name=ETB"/>
+</links>
diff --git a/extra/netradiant-1.5.0-win32/heretic2/h2data.exe b/extra/netradiant-1.5.0-win32/heretic2/h2data.exe
new file mode 100644 (file)
index 0000000..d375cdf
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/heretic2/h2data.exe differ
diff --git a/extra/netradiant-1.5.0-win32/intl.dll b/extra/netradiant-1.5.0-win32/intl.dll
new file mode 100644 (file)
index 0000000..393e714
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/intl.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libatk-1.0-0.dll b/extra/netradiant-1.5.0-win32/libatk-1.0-0.dll
new file mode 100644 (file)
index 0000000..f72f1ba
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libatk-1.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libcairo-2.dll b/extra/netradiant-1.5.0-win32/libcairo-2.dll
new file mode 100644 (file)
index 0000000..2a42bf2
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libcairo-2.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0-pixbufloader-bmp.dll b/extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0-pixbufloader-bmp.dll
new file mode 100644 (file)
index 0000000..27fe9c5
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0-pixbufloader-bmp.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0.dll b/extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0.dll
new file mode 100644 (file)
index 0000000..8001c2b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgdk-win32-2.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgdk_pixbuf-2.0-0.dll b/extra/netradiant-1.5.0-win32/libgdk_pixbuf-2.0-0.dll
new file mode 100644 (file)
index 0000000..2f4e1bb
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgdk_pixbuf-2.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgdkglext-win32-1.0-0.dll b/extra/netradiant-1.5.0-win32/libgdkglext-win32-1.0-0.dll
new file mode 100644 (file)
index 0000000..578e6e3
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgdkglext-win32-1.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libglib-2.0-0.dll b/extra/netradiant-1.5.0-win32/libglib-2.0-0.dll
new file mode 100644 (file)
index 0000000..73358d9
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libglib-2.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgmodule-2.0-0.dll b/extra/netradiant-1.5.0-win32/libgmodule-2.0-0.dll
new file mode 100644 (file)
index 0000000..0b9a850
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgmodule-2.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgobject-2.0-0.dll b/extra/netradiant-1.5.0-win32/libgobject-2.0-0.dll
new file mode 100644 (file)
index 0000000..f1f64c3
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgobject-2.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgtk-win32-2.0-0.dll b/extra/netradiant-1.5.0-win32/libgtk-win32-2.0-0.dll
new file mode 100644 (file)
index 0000000..567a4d9
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgtk-win32-2.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libgtkglext-win32-1.0-0.dll b/extra/netradiant-1.5.0-win32/libgtkglext-win32-1.0-0.dll
new file mode 100644 (file)
index 0000000..93e7ef4
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libgtkglext-win32-1.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libpango-1.0-0.dll b/extra/netradiant-1.5.0-win32/libpango-1.0-0.dll
new file mode 100644 (file)
index 0000000..db19cc3
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libpango-1.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libpangocairo-1.0-0.dll b/extra/netradiant-1.5.0-win32/libpangocairo-1.0-0.dll
new file mode 100644 (file)
index 0000000..b3b7a02
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libpangocairo-1.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libpangowin32-1.0-0.dll b/extra/netradiant-1.5.0-win32/libpangowin32-1.0-0.dll
new file mode 100644 (file)
index 0000000..bd2676b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libpangowin32-1.0-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libpng12-0.dll b/extra/netradiant-1.5.0-win32/libpng12-0.dll
new file mode 100644 (file)
index 0000000..99f6463
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libpng12-0.dll differ
diff --git a/extra/netradiant-1.5.0-win32/libxml2-2.dll b/extra/netradiant-1.5.0-win32/libxml2-2.dll
new file mode 100644 (file)
index 0000000..f8ebc5d
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/libxml2-2.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/archivepak.dll b/extra/netradiant-1.5.0-win32/modules/archivepak.dll
new file mode 100644 (file)
index 0000000..336fc8c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/archivepak.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/archivewad.dll b/extra/netradiant-1.5.0-win32/modules/archivewad.dll
new file mode 100644 (file)
index 0000000..8200757
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/archivewad.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/archivezip.dll b/extra/netradiant-1.5.0-win32/modules/archivezip.dll
new file mode 100644 (file)
index 0000000..80ace59
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/archivezip.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/entity.dll b/extra/netradiant-1.5.0-win32/modules/entity.dll
new file mode 100644 (file)
index 0000000..0981f71
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/entity.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/image.dll b/extra/netradiant-1.5.0-win32/modules/image.dll
new file mode 100644 (file)
index 0000000..cb9bde1
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/image.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/imagehl.dll b/extra/netradiant-1.5.0-win32/modules/imagehl.dll
new file mode 100644 (file)
index 0000000..e479bbe
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/imagehl.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/imagepng.dll b/extra/netradiant-1.5.0-win32/modules/imagepng.dll
new file mode 100644 (file)
index 0000000..7b41538
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/imagepng.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/imageq2.dll b/extra/netradiant-1.5.0-win32/modules/imageq2.dll
new file mode 100644 (file)
index 0000000..422b6bd
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/imageq2.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/mapq3.dll b/extra/netradiant-1.5.0-win32/modules/mapq3.dll
new file mode 100644 (file)
index 0000000..ca3f87c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/mapq3.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/mapxml.dll b/extra/netradiant-1.5.0-win32/modules/mapxml.dll
new file mode 100644 (file)
index 0000000..837d769
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/mapxml.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/md3model.dll b/extra/netradiant-1.5.0-win32/modules/md3model.dll
new file mode 100644 (file)
index 0000000..ad4e1b7
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/md3model.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/model.dll b/extra/netradiant-1.5.0-win32/modules/model.dll
new file mode 100644 (file)
index 0000000..37d5924
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/model.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/shaders.dll b/extra/netradiant-1.5.0-win32/modules/shaders.dll
new file mode 100644 (file)
index 0000000..09ac8a0
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/shaders.dll differ
diff --git a/extra/netradiant-1.5.0-win32/modules/vfspk3.dll b/extra/netradiant-1.5.0-win32/modules/vfspk3.dll
new file mode 100644 (file)
index 0000000..7bda954
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/modules/vfspk3.dll differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_caulk.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_caulk.bmp
new file mode 100644 (file)
index 0000000..5223950
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_caulk.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_cleanup.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_cleanup.bmp
new file mode 100644 (file)
index 0000000..8939d5d
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_cleanup.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_dropent.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_dropent.bmp
new file mode 100644 (file)
index 0000000..2fcdcba
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_dropent.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_merge.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_merge.bmp
new file mode 100644 (file)
index 0000000..2184f7a
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_merge.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_poly.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_poly.bmp
new file mode 100644 (file)
index 0000000..e714f3b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_poly.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_split.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_split.bmp
new file mode 100644 (file)
index 0000000..7e1dc72
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_split.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitcol.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitcol.bmp
new file mode 100644 (file)
index 0000000..3d47fdc
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitcol.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitrow.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitrow.bmp
new file mode 100644 (file)
index 0000000..03b1ae3
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_splitrow.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_trainpathplot.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_trainpathplot.bmp
new file mode 100644 (file)
index 0000000..66537dc
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_trainpathplot.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_treeplanter.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_treeplanter.bmp
new file mode 100644 (file)
index 0000000..5c967ab
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_treeplanter.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_turnedge.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_turnedge.bmp
new file mode 100644 (file)
index 0000000..b72cb2a
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/bobtoolz_turnedge.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_actorclip.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_actorclip.bmp
new file mode 100644 (file)
index 0000000..4a2887c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_actorclip.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level1.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level1.bmp
new file mode 100644 (file)
index 0000000..80a4b29
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level1.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level2.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level2.bmp
new file mode 100644 (file)
index 0000000..e84e254
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level2.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level3.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level3.bmp
new file mode 100644 (file)
index 0000000..141c324
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level3.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level4.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level4.bmp
new file mode 100644 (file)
index 0000000..3783a80
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level4.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level5.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level5.bmp
new file mode 100644 (file)
index 0000000..8f62851
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level5.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level6.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level6.bmp
new file mode 100644 (file)
index 0000000..418fdd2
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level6.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level7.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level7.bmp
new file mode 100644 (file)
index 0000000..d82dab6
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level7.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level8.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level8.bmp
new file mode 100644 (file)
index 0000000..c380953
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_level8.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_nodraw.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_nodraw.bmp
new file mode 100644 (file)
index 0000000..3eaa529
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_nodraw.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_stepon.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_stepon.bmp
new file mode 100644 (file)
index 0000000..b73896f
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_stepon.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_weaponclip.bmp b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_weaponclip.bmp
new file mode 100644 (file)
index 0000000..799468b
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bitmaps/ufoai_weaponclip.bmp differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bobtoolz.dll b/extra/netradiant-1.5.0-win32/plugins/bobtoolz.dll
new file mode 100644 (file)
index 0000000..0b351e0
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/bobtoolz.dll differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/brushexport.dll b/extra/netradiant-1.5.0-win32/plugins/brushexport.dll
new file mode 100644 (file)
index 0000000..e106321
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/brushexport.dll differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/bt/bt-el1.txt b/extra/netradiant-1.5.0-win32/plugins/bt/bt-el1.txt
new file mode 100644 (file)
index 0000000..f6485f9
--- /dev/null
@@ -0,0 +1,17 @@
+common/areaportal
+common/clip
+common/clusterportal
+common/cushion
+common/donotenter
+common/full_clip
+common/hint
+common/missileclip
+common/nodraw
+common/nodrawnonsolid
+common/nodrop
+common/noimpact
+common/origin
+common/trigger
+common/weapclip
+liquid
+fog
\ No newline at end of file
diff --git a/extra/netradiant-1.5.0-win32/plugins/bt/bt-el2.txt b/extra/netradiant-1.5.0-win32/plugins/bt/bt-el2.txt
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/extra/netradiant-1.5.0-win32/plugins/bt/door-tex-trim.txt b/extra/netradiant-1.5.0-win32/plugins/bt/door-tex-trim.txt
new file mode 100644 (file)
index 0000000..d52ef76
--- /dev/null
@@ -0,0 +1,5 @@
+base_support/support1rust
+base_support/support1shiny
+base_support/support2rust
+base_support/wplat1_1
+base_support/plate2_5
\ No newline at end of file
diff --git a/extra/netradiant-1.5.0-win32/plugins/bt/door-tex.txt b/extra/netradiant-1.5.0-win32/plugins/bt/door-tex.txt
new file mode 100644 (file)
index 0000000..6962998
--- /dev/null
@@ -0,0 +1,10 @@
+base_door/shinymetaldoor
+base_door/shinymetaldoor_outside
+gothic_door/door02_bred
+gothic_door/door02_bred2_shiny
+gothic_door/door02_eblue2_shiny
+gothic_door/door02_i_ornate5_fin
+gothic_door/door02_j
+gothic_door/door02_j3
+gothic_door/door02_j4
+gothic_door/door02_k2b
\ No newline at end of file
diff --git a/extra/netradiant-1.5.0-win32/plugins/bt/tp_ent.txt b/extra/netradiant-1.5.0-win32/plugins/bt/tp_ent.txt
new file mode 100644 (file)
index 0000000..f0645b3
--- /dev/null
@@ -0,0 +1,14 @@
+{
+       "entity" "misc_model"
+
+       "offset" "-16"
+
+       "model" "models/mapobjects/trees_sd/tree_a.md3"
+       "model" "models/mapobjects/trees_sd/tree_b.md3"
+       "model" "models/mapobjects/trees_sd/tree_c.md3"
+       "model" "models/mapobjects/trees_sd/tree_d.md3"
+
+       "pitch" "-5" "5"
+       "yaw" "0" "360"
+       "scale" "1" "1.3"
+}
\ No newline at end of file
diff --git a/extra/netradiant-1.5.0-win32/plugins/prtview.dll b/extra/netradiant-1.5.0-win32/plugins/prtview.dll
new file mode 100644 (file)
index 0000000..1894c9d
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/prtview.dll differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/shaderplug.dll b/extra/netradiant-1.5.0-win32/plugins/shaderplug.dll
new file mode 100644 (file)
index 0000000..8e8988d
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/shaderplug.dll differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/sunplug.dll b/extra/netradiant-1.5.0-win32/plugins/sunplug.dll
new file mode 100644 (file)
index 0000000..1969a70
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/sunplug.dll differ
diff --git a/extra/netradiant-1.5.0-win32/plugins/ufoaiplug.dll b/extra/netradiant-1.5.0-win32/plugins/ufoaiplug.dll
new file mode 100644 (file)
index 0000000..c9f2465
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/plugins/ufoaiplug.dll differ
diff --git a/extra/netradiant-1.5.0-win32/q2map.exe b/extra/netradiant-1.5.0-win32/q2map.exe
new file mode 100644 (file)
index 0000000..cf946fe
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/q2map.exe differ
diff --git a/extra/netradiant-1.5.0-win32/q3data.exe b/extra/netradiant-1.5.0-win32/q3data.exe
new file mode 100644 (file)
index 0000000..1a0de8c
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/q3data.exe differ
diff --git a/extra/netradiant-1.5.0-win32/q3data.qdt b/extra/netradiant-1.5.0-win32/q3data.qdt
new file mode 100644 (file)
index 0000000..ba30ee1
--- /dev/null
@@ -0,0 +1,552 @@
+$aseconvert models/mapobjects/spotlamp/spotlamp_x.ase
+$exit
+
+
+$aseconvert models/weapons2/machinegun/machinegun.ase -weapon
+$aseconvert models/weapons2/bfg/bfg.ase -weapon
+$aseconvert models/weapons2/railgun/railgun.ase -weapon
+$aseconvert models/weapons2/shotgun/shotgun.ase -weapon
+
+$aseconvert models/weapons2/meshes/chaingun.ase -weapon
+$aseconvert models/weapons2/meshes/flamethrower.ase -weapon
+$aseconvert models/weapons2/meshes/grapple.ase -weapon
+$aseconvert models/weapons2/meshes/grenadel.ase -weapon
+$aseconvert models/weapons2/meshes/lightning.ase -weapon
+$aseconvert models/weapons2/meshes/plasma.ase -weapon
+$aseconvert models/weapons2/meshes/railgun.ase -weapon
+$aseconvert models/weapons2/meshes/ricochet.ase -weapon
+$aseconvert models/weapons2/meshes/rocketl.ase -weapon
+$aseconvert models/weapons2/meshes/shotgun.ase -weapon
+
+
+$aseconvert models/mapobjects/chain1.ase
+$aseconvert models/mapobjects/chain2.ase
+$aseconvert models/mapobjects/chain3.ase
+$aseconvert models/mapobjects/chain4.ase
+
+$exit
+
+$aseanimconvert models/players/light/bandolier/bandolier.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/brandon/4brandon.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/cash/4cash.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/doom/doom.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/shauna/shauna.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/tim/4tim.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/visor/4visor.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/xian/4xian.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/carmack/carmack.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/heavy/paulj/4paulj.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/heavy/brock/brock.ase -origin 0 0 24 -playerparms 75 138 140 1
+
+$exit
+
+// note: playerparms are "skipStart skipEnd maxUpperFrames maxHeadFrames"
+$aseanimconvert models/players/medium/visor/4visor.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/visor/4visor.ase -lod 1 0 -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/visor/4visor.ase -lod 2 0 -origin 0 0 24 -playerparms 75 138 140 1
+
+
+
+$aseconvert models/powerups/ammo/backpack.ase
+
+$aseconvert models/weapons2/meshes/assault.ase -weapon
+$aseconvert models/weapons2/meshes/chaingun.ase -weapon
+$aseconvert models/weapons2/meshes/flamethrower.ase -weapon
+$aseconvert models/weapons2/meshes/grapple.ase -weapon
+$aseconvert models/weapons2/meshes/grenadel.ase -weapon
+$aseconvert models/weapons2/meshes/lightning.ase -weapon
+$aseconvert models/weapons2/meshes/plasma.ase -weapon
+$aseconvert models/weapons2/meshes/railgun.ase -weapon
+$aseconvert models/weapons2/meshes/ricochet.ase -weapon
+$aseconvert models/weapons2/meshes/rocketl.ase -weapon
+$aseconvert models/weapons2/meshes/shotgun.ase -weapon
+
+$aseconvert models/mapobjects/arenalogo.ase
+
+//
+// talk sprite
+//
+$modelname sprites/balloon
+$cd sprites
+$spritebase -8 -8 16 16
+$spriteshader sprites/balloon3.tga
+
+// plasma ball sprite
+$modelname sprites/plasma
+$cd sprites
+$spritebase -16 -16 32 32
+$spriteshader sprites/plasma1.tga
+$spriteshader sprites/plasma2.tga
+
+//
+// player models
+// note: playerparms are "skipStart skipEnd maxUpperFrames maxHeadFrames"
+//
+$aseanimconvert models/players/light/bandolier/bandolier.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/brandon/4brandon.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/cash/4cash.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/doom/doom.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/light/shauna/shauna.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/tim/4tim.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/visor/4visor.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/xian/4xian.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/medium/carmack/carmack.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/heavy/paulj/4paulj.ase -origin 0 0 24 -playerparms 75 138 140 1
+$aseanimconvert models/players/heavy/brock/brock.ase -origin 0 0 24 -playerparms 75 138 140 1
+
+//
+// weaphits
+//
+$modelname models/weaphits/bullet
+$cd models/weaphits
+$base bullet01.3ds
+$frame bullet01.3ds
+$frame bullet02.3ds
+$frame bullet03.3ds
+$frame bullet04.3ds
+$frame bullet05.3ds
+$frame bullet06.3ds
+$skin bullet01.3ds
+$skin bullet03.3ds
+$skin bullet05.3ds
+
+$modelname models/weaphits/ring01
+$cd models/weaphits
+$base ring01_1.3ds
+$frame ring01_1.3ds
+$frame ring01_2.3ds
+$frame ring01_3.3ds
+$frame ring01_4.3ds
+$frame ring01_5.3ds
+$frame ring01_6.3ds
+$skin ring01_1.3ds
+$skin ring01_3.3ds
+$skin ring01_5.3ds
+
+$modelname models/weaphits/ring02
+$cd models/weaphits
+$base ring02_1.3ds
+$frame ring02_1.3ds
+$frame ring02_2.3ds
+$frame ring02_3.3ds
+$frame ring02_4.3ds
+$frame ring02_5.3ds
+$frame ring02_6.3ds
+$skin ring02_1.3ds
+$skin ring02_3.3ds
+$skin ring02_5.3ds
+
+$modelname models/weaphits/boomgra
+$cd models/weaphits
+$base boomgra1.3ds
+$frame boomgra1.3ds
+$frame boomgra2.3ds
+$frame boomgra3.3ds
+$frame boomgra4.3ds
+$frame boomgra5.3ds
+$frame boomgra6.3ds
+$skin boomgra1.3ds
+$skin boomgra3.3ds
+$skin boomgra5.3ds
+
+$modelname models/weaphits/boom01
+$cd models/weaphits
+$base boom01_1.3ds
+$frame boom01_1.3ds
+$frame boom01_2.3ds
+$frame boom01_3.3ds
+$frame boom01_4.3ds
+$frame boom01_5.3ds
+$frame boom01_6.3ds
+$skin boom01_1.3ds
+$skin boom01_3.3ds
+$skin boom01_5.3ds
+
+$modelname models/weaphits/boom02
+$cd models/weaphits
+$base boom02_1.3ds
+$frame boom02_1.3ds
+$frame boom02_2.3ds
+$frame boom02_3.3ds
+$frame boom02_4.3ds
+$frame boom02_5.3ds
+$frame boom02_6.3ds
+$skin boom02_1.3ds
+$skin boom02_3.3ds
+$skin boom02_5.3ds
+
+$modelname models/weaphits/boom03
+$cd models/weaphits
+$base boom03_1.3ds
+$frame boom03_1.3ds
+$frame boom03_2.3ds
+$frame boom03_3.3ds
+$frame boom03_4.3ds
+$frame boom03_5.3ds
+$frame boom03_6.3ds
+$skin boom03_1.3ds
+$skin boom03_3.3ds
+$skin boom03_5.3ds
+
+$modelname models/weaphits/boom04
+$cd models/weaphits
+$base boom04_1.3ds
+$frame boom04_1.3ds
+$frame boom04_2.3ds
+$frame boom04_3.3ds
+$frame boom04_4.3ds
+$frame boom04_5.3ds
+$frame boom04_6.3ds
+$skin boom04_1.3ds
+$skin boom04_3.3ds
+$skin boom04_5.3ds
+
+$modelname models/weaphits/boom05
+$cd models/weaphits
+$base boom05_1.3ds
+$frame boom05_1.3ds
+$frame boom05_2.3ds
+$frame boom05_3.3ds
+$frame boom05_4.3ds
+$frame boom05_5.3ds
+$frame boom05_6.3ds
+$skin boom05_1.3ds
+$skin boom05_3.3ds
+$skin boom05_5.3ds
+
+//
+// point powerups
+//
+$aseconvert models/powerups/points/small.ase
+$aseconvert models/powerups/points/medium.ase
+$aseconvert models/powerups/points/large.ase
+
+//
+// ammo
+//
+$aseconvert models\powerups\ammo\bfgam.ASE
+$aseconvert models\powerups\ammo\bfgam_1.ASE
+$aseconvert models\powerups\ammo\bouncyam.ASE
+$aseconvert models\powerups\ammo\bouncyam_1.ASE
+$aseconvert models\powerups\ammo\carbineam.ASE
+$aseconvert models\powerups\ammo\carbineam_1.ASE
+$aseconvert models\powerups\ammo\flameam.ASE
+$aseconvert models\powerups\ammo\flameam_1.ASE
+$aseconvert models\powerups\ammo\grenadeam.ASE
+$aseconvert models\powerups\ammo\grenadeam_1.ASE
+$aseconvert models\powerups\ammo\lightningam.ASE
+$aseconvert models\powerups\ammo\lightningam_1.ASE
+$aseconvert models\powerups\ammo\machinegunam.ASE
+$aseconvert models\powerups\ammo\machinegunam_1.ASE
+$aseconvert models\powerups\ammo\plasmaam.ASE
+$aseconvert models\powerups\ammo\plasmaam_1.ASE
+$aseconvert models\powerups\ammo\railgunam.ASE
+$aseconvert models\powerups\ammo\railgunam_1.ASE
+$aseconvert models\powerups\ammo\rocketam.ASE
+$aseconvert models\powerups\ammo\rocketam_1.ASE
+$aseconvert models\powerups\ammo\shotgunam.ASE
+$aseconvert models\powerups\ammo\shotgunam_1.ASE
+
+$aseconvert models/powerups/ammo/backpack.ase
+
+//
+// missiles
+//
+$modelname models/ammo/plasma/plasma
+$cd models/ammo/plasma
+$base plasma1.3ds
+$frame plasma1.3ds
+$skin plasma1.3ds
+
+$modelname models/ammo/laser/laser
+$cd models/ammo/laser
+$base laser1.3ds
+$frame laser1.3ds
+$skin laser1.3ds
+
+$modelname models/ammo/rocket/rocket
+$cd models/ammo/rocket
+$base rocket1.3ds
+$frame rocket1.3ds
+$skin rocket1.3ds
+$skin rocket2.3ds
+
+$aseconvert models/ammo/grenade1.ase
+$aseconvert models/explosions/smoke2.ase
+
+//
+// map objects
+//
+$aseconvert models/mapobjects/ceilinglamp1.ase
+$aseconvert models/mapobjects/ceilinglamp2.ase
+$aseconvert models/mapobjects/chain1.ase
+$aseconvert models/mapobjects/chain2.ase
+$aseconvert models/mapobjects/chain3.ase
+$aseconvert models/mapobjects/chain4.ase
+$aseconvert models/mapobjects/crux.ase
+$aseconvert models/mapobjects/floorlamp1.ase
+$aseconvert models/mapobjects/floorlamp2.ase
+$aseconvert models/mapobjects/hook.ase
+$aseconvert models/mapobjects/impale.ase
+$aseconvert models/mapobjects/standinglamp1.ase
+$aseconvert models/mapobjects/standinglamp2.ase
+$aseconvert models/mapobjects/standinglamp3.ase
+$aseconvert models/mapobjects/walllamp1.ase
+$aseconvert models/mapobjects/walllamp2.ase
+$aseconvert models/mapobjects/walllamp3.ase
+
+
+//
+// objects
+//
+$aseconvert models/objects/dmspot.ase -origin 0 0 24
+$aseconvert    models/objects/box01.ase
+
+//
+// weapons
+//
+$aseconvert models/weapons2/meshes/assault.ase -weapon
+$aseconvert models/weapons2/meshes/bfg.ase -weapon
+$aseconvert models/weapons2/meshes/chaingun.ase -weapon
+$aseconvert models/weapons2/meshes/flamethrower.ase -weapon
+$aseconvert models/weapons2/meshes/grapple.ase -weapon
+$aseconvert models/weapons2/meshes/grenadel.ase -weapon
+$aseconvert models/weapons2/meshes/lightning.ase -weapon
+$aseconvert models/weapons2/meshes/plasma.ase -weapon
+$aseconvert models/weapons2/meshes/railgun.ase -weapon
+$aseconvert models/weapons2/meshes/ricochet.ase -weapon
+$aseconvert models/weapons2/meshes/rocketl.ase -weapon
+$aseconvert models/weapons2/meshes/shotgun.ase -weapon
+
+//
+// blood
+//
+$modelname models/weaphits/blood
+$cd models/weaphits
+$spritebase -16 -16 32 32
+$spriteshader models/weaphits/blood201.tga
+$spriteshader models/weaphits/blood202.tga
+$spriteshader models/weaphits/blood203.tga
+$spriteshader models/weaphits/blood204.tga
+$spriteshader models/weaphits/blood205.tga
+
+
+//
+// missiles
+//
+$modelname models/ammo/plasma/plasma
+$cd models/ammo/plasma
+$base plasma1.3ds
+$frame plasma1.3ds
+$skin plasma1.3ds
+
+$modelname models/ammo/laser/laser
+$cd models/ammo/laser
+$base laser1.3ds
+$frame laser1.3ds
+$skin laser1.3ds
+
+
+$modelname models/ammo/rocket/rocket
+$cd models/ammo/rocket
+$base rocket1.3ds
+$frame rocket1.3ds
+$skin rocket1.3ds
+$skin rocket2.3ds
+
+
+// weaphits
+
+$modelname models/weaphits/bullet
+$cd models/weaphits
+$base bullet01.3ds
+$frame bullet01.3ds
+$frame bullet02.3ds
+$frame bullet03.3ds
+$frame bullet04.3ds
+$frame bullet05.3ds
+$frame bullet06.3ds
+$skin bullet01.3ds
+$skin bullet03.3ds
+$skin bullet05.3ds
+
+$modelname models/weaphits/ring01
+$cd models/weaphits
+$base ring01_1.3ds
+$frame ring01_1.3ds
+$frame ring01_2.3ds
+$frame ring01_3.3ds
+$frame ring01_4.3ds
+$frame ring01_5.3ds
+$frame ring01_6.3ds
+$skin ring01_1.3ds
+$skin ring01_3.3ds
+$skin ring01_5.3ds
+
+$modelname models/weaphits/ring02
+$cd models/weaphits
+$base ring02_1.3ds
+$frame ring02_1.3ds
+$frame ring02_2.3ds
+$frame ring02_3.3ds
+$frame ring02_4.3ds
+$frame ring02_5.3ds
+$frame ring02_6.3ds
+$skin ring02_1.3ds
+$skin ring02_3.3ds
+$skin ring02_5.3ds
+
+$modelname models/weaphits/boomgra
+$cd models/weaphits
+$base boomgra1.3ds
+$frame boomgra1.3ds
+$frame boomgra2.3ds
+$frame boomgra3.3ds
+$frame boomgra4.3ds
+$frame boomgra5.3ds
+$frame boomgra6.3ds
+$skin boomgra1.3ds
+$skin boomgra3.3ds
+$skin boomgra5.3ds
+
+$modelname models/weaphits/boom01
+$cd models/weaphits
+$base boom01_1.3ds
+$frame boom01_1.3ds
+$frame boom01_2.3ds
+$frame boom01_3.3ds
+$frame boom01_4.3ds
+$frame boom01_5.3ds
+$frame boom01_6.3ds
+$skin boom01_1.3ds
+$skin boom01_3.3ds
+$skin boom01_5.3ds
+
+$modelname models/weaphits/boom02
+$cd models/weaphits
+$base boom02_1.3ds
+$frame boom02_1.3ds
+$frame boom02_2.3ds
+$frame boom02_3.3ds
+$frame boom02_4.3ds
+$frame boom02_5.3ds
+$frame boom02_6.3ds
+$skin boom02_1.3ds
+$skin boom02_3.3ds
+$skin boom02_5.3ds
+
+$modelname models/weaphits/boom03
+$cd models/weaphits
+$base boom03_1.3ds
+$frame boom03_1.3ds
+$frame boom03_2.3ds
+$frame boom03_3.3ds
+$frame boom03_4.3ds
+$frame boom03_5.3ds
+$frame boom03_6.3ds
+$skin boom03_1.3ds
+$skin boom03_3.3ds
+$skin boom03_5.3ds
+
+$modelname models/weaphits/boom04
+$cd models/weaphits
+$base boom04_1.3ds
+$frame boom04_1.3ds
+$frame boom04_2.3ds
+$frame boom04_3.3ds
+$frame boom04_4.3ds
+$frame boom04_5.3ds
+$frame boom04_6.3ds
+$skin boom04_1.3ds
+$skin boom04_3.3ds
+$skin boom04_5.3ds
+
+$modelname models/weaphits/boom05
+$cd models/weaphits
+$base boom05_1.3ds
+$frame boom05_1.3ds
+$frame boom05_2.3ds
+$frame boom05_3.3ds
+$frame boom05_4.3ds
+$frame boom05_5.3ds
+$frame boom05_6.3ds
+$skin boom05_1.3ds
+$skin boom05_3.3ds
+$skin boom05_5.3ds
+
+
+//
+// armor
+//
+$aseconvert    models/powerups/armor/armor_red.ase
+$aseconvert    models/powerups/armor/armor_yel.ase
+$aseconvert    models/powerups/armor/armor_grn.ase
+$aseconvert models/powerups/armor/shard.ase
+$aseconvert models/powerups/armor/shard_sphere.ase
+$aseconvert models/powerups/armor/shard_sphere_1.ase
+
+//
+// health
+//
+$aseconvert    models/powerups/health/small.ase
+$aseconvert    models/powerups/health/small_1.ase
+$aseconvert    models/powerups/health/medium.ase
+$aseconvert    models/powerups/health/medium_1.ase
+$aseconvert    models/powerups/health/large.ase
+$aseconvert    models/powerups/health/large_1.ase
+$aseconvert    models/powerups/health/mega.ase
+$aseconvert    models/powerups/health/mega_1.ase
+
+//
+// holdable powerups
+//
+$aseconvert models/powerups/holdable/ringodeth.ase
+$aseconvert models/powerups/holdable/medkit.ase
+$aseconvert models/powerups/holdable/teleporter.ase
+
+//
+// instant powerups
+//
+$aseconvert    models/powerups/instant/enviro.ase
+$aseconvert    models/powerups/instant/enviro_1.ase
+$aseconvert    models/powerups/instant/enviro_ring.ase
+$aseconvert    models/powerups/instant/enviro_ring_1.ase
+$aseconvert    models/powerups/instant/flight.ase
+$aseconvert    models/powerups/instant/flight_1.ase
+$aseconvert    models/powerups/instant/flight_ring.ase
+$aseconvert    models/powerups/instant/flight_ring_1.ase
+$aseconvert    models/powerups/instant/haste.ase
+$aseconvert    models/powerups/instant/haste_1.ase
+$aseconvert    models/powerups/instant/haste_ring.ase
+$aseconvert    models/powerups/instant/haste_ring_1.ase
+$aseconvert    models/powerups/instant/invis.ase
+$aseconvert    models/powerups/instant/invis_1.ase
+$aseconvert    models/powerups/instant/invis_ring.ase
+$aseconvert    models/powerups/instant/invis_ring_1.ase
+$aseconvert    models/powerups/instant/scan.ase
+$aseconvert    models/powerups/instant/scan_1.ase
+$aseconvert    models/powerups/instant/scan_ring.ase
+$aseconvert    models/powerups/instant/scan_ring_1.ase
+$aseconvert    models/powerups/instant/quad.ase
+$aseconvert    models/powerups/instant/quad_1.ase
+$aseconvert    models/powerups/instant/quad_ring.ase
+$aseconvert    models/powerups/instant/quad_ring_1.ase
+$aseconvert    models/powerups/instant/regen.ase
+$aseconvert    models/powerups/instant/regen_1.ase
+$aseconvert    models/powerups/instant/regen_ring.ase
+$aseconvert    models/powerups/instant/regen_ring_1.ase
+
+$exit
+
+//
+// maps
+//
+$maps test_box test_items mirror mirror2
+
+
+//
+// misc
+//
+$file q3default.cfg
+
+
diff --git a/extra/netradiant-1.5.0-win32/q3map2.exe b/extra/netradiant-1.5.0-win32/q3map2.exe
new file mode 100644 (file)
index 0000000..e43dab3
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/q3map2.exe differ
diff --git a/extra/netradiant-1.5.0-win32/qdata3.exe b/extra/netradiant-1.5.0-win32/qdata3.exe
new file mode 100644 (file)
index 0000000..679f757
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/qdata3.exe differ
diff --git a/extra/netradiant-1.5.0-win32/radiant.exe b/extra/netradiant-1.5.0-win32/radiant.exe
new file mode 100644 (file)
index 0000000..c681f1f
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/radiant.exe differ
diff --git a/extra/netradiant-1.5.0-win32/voretournament.game/data/default_shaderlist.txt b/extra/netradiant-1.5.0-win32/voretournament.game/data/default_shaderlist.txt
new file mode 100644 (file)
index 0000000..4e5dea8
--- /dev/null
@@ -0,0 +1,56 @@
+//**********************************************************************//
+//     shaderlist.txt modified for Q3Radiant                           //
+//     by Eutectic - 13 May 2000                                       //
+//                                                                      //
+//      Rev history:                                                    //
+//      08/11/2000
+//      TTimo - changed liquid to liquids and sky to skies for better   //
+//      consistency with the directories and actual shader names        //
+//                                                                     //
+//     Added the names of the new shader files created as a result     //
+//     of the cleanup of the old shader files so Q3Radiant will read   //
+//     and display all the shaders in the texture window.              //
+//                                                                     //
+//     SHADER FILE NAMES ADDED:                                        //
+//     base_door                                                       //
+//     gothic_button                                                   //
+//     gothic_door                                                     //
+//**********************************************************************//
+
+// this file lists all the separate shader files
+
+common
+dsi
+e7
+el3dm1
+evil3
+evil4_techtrims
+evil5
+evil6
+evil6_floors
+evil6_lights
+evil6_support
+evil6_trims
+evil6_walls
+evil8_base
+gfx
+harlequin_sky
+hell
+kaznexctf2
+liquids
+models
+museum
+official_cmp1
+organics
+reaper
+sav-graysky1
+sav-liquids
+savdm6ish
+sfx
+skies
+skin
+stralenex1
+terrademoQ3
+test
+tznex01
+tznex03
\ No newline at end of file
diff --git a/extra/netradiant-1.5.0-win32/voretournament.game/data/entities.def b/extra/netradiant-1.5.0-win32/voretournament.game/data/entities.def
new file mode 100644 (file)
index 0000000..a6e211e
--- /dev/null
@@ -0,0 +1,1351 @@
+/*QUAKED _skybox (0.77 0.88 1.0) (-4 -4 -4) (4 4 4) 
+Compiler-only entity that specifies a the origin of a sky box (a wholly contained, separate area of the map), similar to some games' portal skies. When compiled with Q3Map2, the sky box surfaces will be visible from any place where sky is normally visible. It will cast shadows on the normal parts of the map, and can be used with cloud layers and other effects. As it is compiler-only, it can't "scale up" entities in its box.
+To use this, carve a small box in some larger structure on your map, place this entity inside that box hole, and make a small version on what should be seen in the sky there.
+-------- KEYS --------
+angle: rotation angle of the sky surfaces.
+angles: Individual control of PITCH, YAW, and ROLL (default 0 0 0).
+_scale: scaling factor (default 64), good values are between 50 and 300, depending on the map.
+*/
+
+/*QUAKED dom_controlpoint (.3 .3 1) (-16 -16 -16) (16 16 16) 
+Domination  control point
+In order to get Domination working well in your map, you need to place dom_team and dom_controlpoint entities.  You *must* have at least 3 dom_team entities - 2 minimum teams and one blank one (empty netname and no team).  You can have up to 4 teams (5 dom_team entities).
+-------- KEYS --------
+message: message to be displayed to all players when this point is captured, preceded by the team's name.  This defaults to " has captured a control point".  You can specify different names for each point, for example " has captured the Lava Room".
+wait: How often this point gives its controlling team frags.
+frags: How many frags this point gives each wait cycle.
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+zbqry="zbqryf/qbzvangvba/qbz_hapynvzrq.zq3"
+
+*/
+
+/*QUAKED dom_team (.3 .3 1) (-16 -16 -16) (16 16 16) 
+Domination team.
+In order to get Domination working well in your map, you need to place dom_team and dom_controlpoint entities.  You *must* have at least 3 dom_team entities - 2 minimum teams and one blank one (empty netname and no team).  You can have up to 4 teams (5 dom_team entities).
+-------- KEYS --------
+netname: name of team (Red Team).  Set to "" or don't define for the required blank team.
+cnt: color of the team.  See the "Helpful Extras" section for info.
+model: When this team captures control points, the points turn to this model.  If this is the neutral team, points start out as this model.
+noise: Sound to be played on the control point when it's captured.  Only players nearby will hear it.
+noise1: Sound to be played to all players when the control point is captured.  Also good for an announcer voice ("Red Team has captured a control point")
+*/
+
+/*QUAKED func_assault_destructible (.5 0 .5) ?
+This is a brush model which can be damaged. Once triggered it's active and will happily receive damage players inflict upon it. Once all health is consumed it'll disappear and trigger the targeted entity/entities. As damage is received the brush model will be tinted in an increasingly visible flavor of red to give visible feedback.
+-------- KEYS --------
+health: The damage this trigger can take
+target: The entity/entities to be triggered once this entity gets invisible
+targetname: The name other entities can use to target this entity
+mdl: particle effect name to show when destroyed
+count: particle effect multiplier
+mdl_dead: optional replacement model to show when destroyed
+debris: names of debris models to show when destroyed, separated by spaces
+noise: sound to play when destroyed
+dmg: damage to deal to the environment when destroyed
+dmg_edge: edge damage to deal to the environment when destroyed
+dmg_radius: damage radius
+dmg_force: damage force
+message: death message when a player gets hit by the explosion
+message2: death message when someone gets pushed into this (default: "was pushed into an explosion by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+debrismovetype: way in which the debris moves: one of 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE
+debrissolid: solidity of the debris: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE
+debrisvelocity: initial velocity vector of the debris (static part)
+debrisvelocityjitter: initial velocity vector of the debris (random part)
+debrisavelocityjitter: initial angular velocity vector of the debris (random part)
+debristime: time till the debris fades (average)
+debristimejitter: time till the debris fades (random part)
+debrisfadetime: how long debris takes to fade
+debrisdamageforcescale: how much debris is affected by damage force (e.g. explosions)
+debrisskin: skin number of debris
+*/
+
+/*QUAKED func_assault_wall (.5 0 .5) ?
+Brush model that will disappear once the targeted target_objective is fulfilled. This can be used to restrict access to parts of the map until a certain objective has been conquered.
+-------- KEYS --------
+target: targetname of a target_objective
+*/
+
+/*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 or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
+dmg: damage a player who gets crushed by it receives
+dmgtime: interval to apply dmg to a player who is s in the way
+message: death message when a player gets crushed
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+-------- SPAWNFLAGS --------
+X_AXIS: entity will bob along the X axis.
+Y_AXIS: entity will bob along the Y axis.
+*/
+
+/*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.
+target2: all entities with a matching targetname will be triggered.
+target3: all entities with a matching targetname will be triggered.
+target4: 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.
+*/
+
+/*QUAKED func_door (0 .5 .8) ? START_OPEN - DOOR_DONT_LINK - - TOGGLE
+Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it.
+If DOOR_DONT_LINK is not set, the door will be linked with all doors it touches. Note however that for linked doors to work properly, it is necessary that ALL linked doors have SOME volume of common area (that is, there must be a point that is part of ALL doors).
+-------- KEYS --------
+message: is printed when the door is touched if it is a trigger door and it hasn't been fired yet, or death message if dmg is set
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+angle: determines the opening direction
+targetname: if set, no touch field will be spawned and a remote button or trigger field activates the door.
+health: if set, door must be shot open
+speed: movement speed (100 default)
+wait: wait before returning (3 default, -1 = never return)
+lip: lip remaining at end of move (8 default)
+dmg: damage to inflict when blocked (when triggered and someone is in the way)
+sounds: when 1, use default door sounds
+noise1: sound when the door opens
+noise2: sound when the door closes
+-------- SPAWNFLAGS --------
+START_OPEN: causes the door to move to its destination when spawned, and operate in reverse.  It is used to temporarily or permanently close off an area when triggered (not useful for touch or damage triggered doors).
+DOOR_DONT_LINK: the door won't link with another door it touches
+TOGGLE: causes the door to wait in both the start and end states for a trigger event.
+*/
+
+/*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN BIDIR DOOR_DONT_LINK BIDIR_IN_DOWN - TOGGLE X_AXIS Y_AXIS
+Normal rotating door entity that opens by rotating around an axis (default: Z). Use an origin brush to specify the rotation axis.
+By default, the door will activate when player walks close to it or when damage is inflicted to it.
+If DOOR_DONT_LINK is not set, the door will be linked with all doors it touches.
+BIDIR makes the door work bidirectional, so that the opening direction is always away from the requestor.
+The usage of bidirectional doors requires two manually instantiated triggers (trigger_multiple), the one to open it in the other direction
+must have set trigger_reverse to 1.
+BIDIR_IN_DOWN will the door prevent from reopening while closing if it is triggered from the other side.
+-------- KEYS --------
+message: is printed when the door is touched if it is a trigger door and it hasn't been fired yet, or death message if dmg is set
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+angle: determines the destination angle for opening. negative values reverse the direction (90 default)
+targetname: if set, no touch field will be spawned and a remote button or trigger field activates the door.
+health: if set, door must be shot open
+speed: speed to rotate (in degrees per second)
+wait: wait before returning (3 default, -1 = never return)
+dmg: damage to inflict when blocked (when triggered and someone is in the way)
+sounds: when 1, use default door sounds
+noise1: sound when the door opens
+noise2: sound when the door closes
+-------- SPAWNFLAGS --------
+START_OPEN: causes the door to move to its destination when spawned, and operate in reverse.  It is used to temporarily or permanently close off an area when triggered (not useful for touch or damage triggered doors).
+DOOR_DONT_LINK: the door won't link with another door it touches
+TOGGLE: causes the door to wait in both the start and end states for a trigger event.
+*/
+
+/*QUAKED func_door_secret (0 .5 .8) ? OPEN_ONCE 1ST_LEFT 1ST_DOWN NO_SHOOT ALWAYS_SHOOT
+Basic secret door. Slides back, then to the side. Angle determines direction. Opens when targeted or when shot; does not create its own trigger field like func_door does.
+-------- KEYS --------
+wait: # of seconds before coming back
+key1: first entity key with one-line description
+key2: second entity key with one-line description
+t_width: override WIDTH to move back (or height if going down)
+t_length: override LENGTH to move sideways
+dmg: damage to inflict when blocked (2 default)
+message: text to display when activating the door, or death message if dmg is set
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+noise1: sound when opening backwards or closing
+noise2: sound when opening sideways
+noise3: sound when stopping
+-------- SPAWNFLAGS --------
+OPEN_ONCE: only work once, then stay open
+1ST_LEFT: 1st move is left of arrow
+1ST_DOWN: 1st move is down from arrow
+NO_SHOOT: never respond to shots
+ALWAYS_SHOOT: even if targetname is set, respond to shots
+*/
+
+/*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.
+-------- Q3MAP2 KEYS --------
+_lightmapscale: light map resolution factor
+_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.
+_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.
+-------- KEYS --------
+_indexmap: Path/name for the TGA file used to guide the mapping of textures on the terrain surface.
+_layers: number of unique root shaders that will be use on the terrain.
+_shader: Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.
+_offsets: space separated list of height offsets for the index map
+*/
+
+/*QUAKED func_ladder (0 .5 .8) ? 
+a ladder, need i say no more
+grab a trigger brush and put it in front of the part that you want the player to climb
+*/
+
+/*QUAKED func_plat (0 .5 .8) ? - - CRUSH
+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.
+-------- 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. Plat will reverse direction when blocked.
+targetname: if set, the trigger that points to this will lower the plat each time it fires. The plat lowers and lifts someone up later.
+sounds: 2 for alternate sound set, -1 for silence, or use the fields below
+sound1: platform starts moving sound
+sound2: platform stop sound
+message: kill message, when someone gets killed by this plat
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+-------- SPAWNFLAGS --------
+CRUSH: crush players hit by the platform instantly
+-------- 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.
+*/
+
+/*QUAKED func_rain (0 .5 .8) ? 
+This is an invisible area like a trigger, which rain falls inside of.
+-------- KEYS --------
+velocity: falling direction (should be something like '0 0 -700', use the X and Y velocity for wind)
+cnt: sets color of rain in the Quake palette (default 12 - white)
+count: adjusts density, this many particles fall every second for a 1024x1024 area, default is 2000
+*/
+
+/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS
+Brush entity that spins in place on one axis (default Z). Use an origin brush to specify the rotation axis.
+To rotate around another axis, make a func_wall with an explicit avelocity given.
+-------- KEYS --------
+speed: speed to rotate (in degrees per second)
+noise: path/name of looping .wav file to play.
+dmg: Do this much dmg every .dmgtime interval when blocked
+dmgtime: See above. (0.25s default)
+message: kill message when crushed by this
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+-------- SPAWNFLAGS --------
+X_AXIS: rotate around the X axis
+Y_AXIS: rotate around the Y axis
+*/
+
+/*QUAKED func_snow (0 .5 .8) ? 
+This is an invisible area like a trigger, which snow falls inside of.
+-------- KEYS --------
+velocity: falling direction (should be something like '0 0 -300', use the X and Y velocity for wind)
+cnt: sets color of snow in the Quake palette (default 12 - white)
+count: adjusts density, this many particles fall every second for a 1024x1024 area, default is 2000
+*/
+
+/*QUAKED func_stardust (.5 .5 .5) (-8 -8 -8) (8 8 8) 
+Point entity with EF_STARDUST applied. This will spawn a particle cloud with mostly golden particles. Used as eye-candy.
+*/
+
+/*QUAKED func_train (0 .5 .8) ? 
+Trains are moving solids that follow a cycle of path_corner entities. Origin brushes are NOT supported; they use the "mins" corner as reference (that is, lowest x, y, and z coordinates).
+At each node, the train's mins corner hits exactly the path_corner.
+Trains always start on in the game.
+Trains do not damage the played when blocked.
+Trains cannot emit sound.
+Trains are not trigger-able or toggle-able.
+Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it.
+-------- KEYS --------
+speed: default/initial speed of train (default 100 or overridden by speed value of targeted path_corner)
+target: targetname of first path_corner to move to at the default speed; ideally, this path_corner shall be exactly where the train starts
+noise: path/name of .wav or .ogg file to play while moving. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
+dmg: damage a player who gets crushed by it receives
+dmgtime: interval to apply dmg to a player who is s in the way
+message: death message when a player gets crushed
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+*/
+
+/*QUAKED info_location (1 1 0) (-8 -8 -8) (8 8 8) 
+Location for use by the %l escape in "say" messages.
+The closest "visible" info_location entity is chosen to find the right location name for a point.
+-------- KEYS --------
+message: name of location, possibly with color codes
+*/
+
+/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) 
+Entity that does nothing, but may be targeted (e.g. to use its position)
+-------- KEYS --------
+targetname: must match the target key of entity that uses this for pointing.
+*/
+
+/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) 
+Aiming target for q3map2-internal entities like _decal or light. Removes itself when loaded, so it can NOT be used for in-game stuff!
+-------- KEYS --------
+targetname: the entity that requires an aiming direction points to this.
+*/
+
+/*QUAKED info_player_attacker (1 0.5 0) (-16 -16 -24) (16 16 45) 
+Attacking team's player spawning location in Assault. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+target: this should point to a target_objective to decide when this spawning point is active.
+target2: trigger all entities with this targetname when someone spawns
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED info_player_deathmatch (0 1 0) (-16 -16 -24) (16 16 45) 
+Normal player spawning location in game types without team spawns. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+target: trigger all entities with this targetname when someone spawns
+targetname: when targeted by a func_button, pressing the button will assign the spawn point to the team of the activator as an additional spawn point, or reassign it if it was already assigned. Also used to assign spawn points to Onslaught control points.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED info_player_defender (.5 .5 .5) (-16 -16 -24) (16 16 45) 
+Defending team's player spawning location in Assault. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+target: this should point to a target_objective to decide when this spawning point is active.
+target2: trigger all entities with this targetname when someone spawns
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED info_player_team1 (1 0 0) (-16 -16 -24) (16 16 45) 
+Red team's player spawning location in e.g. CTF and Onslaught. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+target: trigger all entities with this targetname when someone spawns
+targetname: when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED info_player_team2 (0 0 1) (-16 -16 -24) (16 16 45) 
+Blue team's player spawning location in e.g. CTF and Onslaught. Should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+target: trigger all entities with this targetname when someone spawns
+targetname: when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED info_player_team3 (1 1 0) (-16 -16 -24) (16 16 45) 
+Yellow team's player spawning location, but there is no game mode to use this yet. Anyway, should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+target: trigger all entities with this targetname when someone spawns
+targetname: when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED info_player_team4 (1 0 1) (-16 -16 -24) (16 16 45) 
+Pink team's player spawning location, but there is no game mode to use this yet. Anyway, should touch the floor, but not the walls, and should point where the player should look when he spawns there.
+-------- KEYS --------
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+target: trigger all entities with this targetname when someone spawns
+targetname: when targeted by a func_button, pressing the button will reassign the spawn point to the team of the activator. If a team has no more spawn point left, it immediately loses.
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED item_flag_team1 (1 0 0) (-32 -32 0) (32 32 74) 
+CTF flag for team one (Red). Use more than one if you really insist.
+-------- KEYS --------
+model: model to use
+scale: scaling factor (DO set this when using your own model!)
+noise: sound played when flag is picked up
+noise1: sound played when flag is returned
+noise2: sound played when flag is captured
+noise3: sound played when flag is lost in the field and respawns itself
+-------- ZBQRY SBE ENQVNAG BAYL - QB ABG FRG GUVF NF N XRL --------
+zbqry="zbqryf/pgs/enqvnag/synt_erq_enqvnag.zq3"
+*/
+
+/*QUAKED item_flag_team2 (0 0 1) (-32 -32 0) (32 32 74) 
+CTF flag for team two (Blue). Use more than one if you really insist.
+-------- KEYS --------
+model: model to use
+scale: scaling factor (DO set this when using your own model!)
+noise: sound played when flag is picked up
+noise1: sound played when flag is returned
+noise2: sound played when flag is captured
+noise3: sound played when flag is lost in the field and respawns itself
+-------- ZBQRY SBE ENQVNAG BAYL - QB ABG FRG GUVF NF N XRL --------
+zbqry="zbqryf/pgs/enqvnag/synt_oyhr_enqvnag.zq3"
+*/
+
+/*QUAKED item_health_large (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
+Large Health (default 50 health points)
+-------- KEYS --------
+respawntime: time till it respawns (default: 20)
+health: amount of health it gives (default: 50 (g_pickup_healthlarge))
+max_health: max of health it increases to (default: 999 (g_pickup_healthlarge_max))
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_h50.md3"
+*/
+
+/*QUAKED item_health_medium (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
+Medium Health (default 25 health points)
+-------- KEYS --------
+respawntime: time till it respawns (default: 15)
+health: amount of health it gives (default: 25 (g_pickup_healthmedium))
+max_health: max of health it increases to (default: 999 (g_pickup_healthmedium_max))
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_h25.md3"
+*/
+
+/*QUAKED item_health_mega (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
+Mega Health (default 100 health points)
+In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
+-------- KEYS --------
+respawntime: time till it respawns (default: 30)
+health: amount of health it gives (default: 100 (g_pickup_healthmega))
+max_health: max of health it increases to (default: 999 (g_pickup_healthmega_max))
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_h100.md3"
+*/
+
+/*QUAKED item_health_small (.9 .3 .3) (-30 -30 0) (30 30 48) FLOATING
+Small Health (default 5 health points)
+-------- KEYS --------
+respawntime: time till it respawns (default: 15)
+health: amount of health it gives (default: 5 (g_pickup_healthsmall))
+max_health: max of health it increases to (default: 5 (g_pickup_healthsmall_max))
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_h1.md3"
+*/
+
+/*QUAKED item_invincible (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
+Strong Shield
+In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
+-------- KEYS --------
+respawntime: time till it respawns (default: 120)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_invincible.md3"
+*/
+
+/*QUAKED item_strength (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
+Strength aka Quad damage
+In Minstagib, this randomly turns into either an invisibility, an extra lives or a speed power-up with a default respawn time of 120.
+-------- KEYS --------
+respawntime: time till it respawns (default: 120)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_strength.md3"
+*/
+
+/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE - - 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.
+Maximum intensity (in a radius 16 sphere around the light): regular lights have light/256, linear lights have light/8000-16*fade.
+Falloff radius to a negligible light amount: regular lights have light have 16*sqrt(light), linear lights have light/(fade*8000).
+By this you see that you HAVE to specify fade for a linear light... use values below 0.01 there.
+-------- KEYS --------
+light: intensity factor (default: 300). A linear
+_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: radius of a spotlight at the target point (default: 64)
+_anglescale: scales angle attenuation
+fade: Fade factor of light attenuation of linear lights. Linear lights completely vanish at distance light/(fade*8000), so if you want the light to vanish at distance X, specify light/(8000*X) here.
+_filterradius: filter radius for this light, similar to -light -filter
+_sun: if 1, this light is an infinite sun light
+_samples: number of samples to use to get soft shadows from a light
+_deviance: position deviance of the samples of a regular light (distributes the light samples in a cube of side length 2*_deviance around the origin), or angle deviance of the sun light samples in radians
+-------- SPAWNFLAGS --------
+LINEAR: Use a linear falloff. Default is inverse distance squared (more realistic).
+NOANGLE: Ignore angle attenuation.
+NOGRIDLIGHT: Do not affect the light grid (dynamic entity lighting).
+*/
+
+/*QUAKED lightJunior (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE
+Non-displayed point light source that JUST APPLIES TO THE LIGHT GRID. No idea what this is good for. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights.
+Maximum intensity (in a radius 16 sphere around the light): regular lights have light/256, linear lights have light/8000-16*fade.
+Falloff radius to a negligible light amount: regular lights have light have 16*sqrt(light), linear lights have light/(fade*8000).
+By this you see that you HAVE to specify fade for a linear light... use values below 0.01 there.
+-------- KEYS --------
+light: intensity factor (default: 300). A linear
+_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: radius of a spotlight at the target point (default: 64)
+_anglescale: scales angle attenuation
+fade: Fade factor of light attenuation of linear lights. Linear lights completely vanish at distance light/(fade*8000), so if you want the light to vanish at distance X, specify light/(8000*X) here.
+_filterradius: filter radius for this light, similar to -light -filter
+_sun: if 1, this light is an infinite sun light
+_samples: number of samples to use to get soft shadows from a light
+_deviance: position deviance of the samples of a regular light (distributes the light samples in a cube of side length 2*_deviance around the origin), or angle deviance of the sun light samples in radians
+-------- SPAWNFLAGS --------
+LINEAR: Use a linear falloff. Default is inverse distance squared (more realistic).
+NOANGLE: Ignore angle attenuation.
+*/
+
+/*QUAKED misc_laser (.5 .5 .5) (-8 -8 -8) (8 8 8) START_ON FINITE
+Laser beam emitter. Note that for the laser to be deadly, it has to start OUTSIDE the player's collision box. To ensure this, you may want to put this entity inside the walls (or directly on their surface), or cover it with a playerclip brush.
+-------- KEYS --------
+target: target_position the laser targets (may be another entity, preferably target_position, possibly controlled by misc_follow)
+mdl: name of particle effect for the beam end point (see effectinfo.txt; default is laser_deadly if dmg is set, and none if not)
+colormod: color of the laser beam (default: red, that is, 1 0 0)
+dmg: damage inflicted by the beam per second, or -1 for an instant-death ray
+targetname: name to target this (then its state is toggled)
+alpha: when set, makes a dark laser of the given strength; may be combined with colormod
+scale: scales the beam thickness (default 1)
+modelscale: scales the dynamic light radius at the endpoint (default 1, -1 to turn off)
+-------- SPAWNFLAGS --------
+START_ON: when targeted, the laser will start switched on
+FINITE: the laser does not extend over its target like light would do, but stops there (takes more bandwidth)
+-------- NOTES --------
+Use trigger_monoflop if you want the laser to turn off for a while, then turn back on.
+When the laser's target has itself target set, its targets are triggered when someone enters or leaves the laser.
+*/
+
+/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) - SOLID - EXTRUDE_NORMALS EXTRUDE_TERRAIN COLOR_TO_ALPHA
+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.
+-------- Q3MAP2 KEYS --------
+model: file name of model to include
+_frame: frame of model to include
+_remap: string of the form from;to specifying which texture name of the model to replace by which shader; * is allowed. Any key starting with this prefix will work, so if you need more remappings, create _remap2, etc.
+angle: view direction of the model
+angles: view direction of the model in PITCH YAW ROLL
+modelscale: scaling factor
+modelscale_vec: scaling vector for non-uniform scaling
+_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.
+_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.
+_lightmapscale: light map resolution factor
+_celshader: the cel shader for this
+-------- SPAWNFLAGS --------
+SOLID: make the model solid
+EXTRUDE_NORMALS: for converting triangles to clip brushes, extrude along the model normals (by default, extrusion happens in a coordinate axis direction that is decided per triangle)
+EXTRUDE_TERRAIN: always extrude downwards (for terrain)
+COLOR_TO_ALPHA: use the color value as alpha (for terrain blending)
+*/
+
+/*QUAKED misc_gamemodel (0 .5 .8) (-8 -8 -8) (8 8 8) ALIGN_ORIGIN ALIGN_BOTTOM
+A way to load models from a map by the engine (e.g. self-animated zym models).
+Is non-solid by default.
+The keys below actually apply to most engine-loaded model entities as they are engine features; however, they are described here as they aren't overridden by game code in misc_gamemodel. Its q3map2 keys below will work on any brush entity!
+-------- KEYS --------
+model: when used as a point entity, file name of model to load; when used as a brush entity, do not specify that
+frame: animation frame to play (for self-animated zym models)
+skin: number of skin to load (when model is used)
+movetype: way in which it moves: one of 0 = NONE, 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE
+solid: solidity: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE
+avelocity: vector giving its angular velocity (useful for spinning models)
+scale: scale factor of the model (range: 0.0625 to 15.9375)
+colormap: 1024 + 16 * pantscolor + shirtcolor
+velocity: when movetype isn't 0, initial velocity vector
+angles: initial looking direction
+modelscale: scaling factor
+effects: sum of 1 = BRIGHTFIELD, 4 = BRIGHTLIGHT, 8 = DIMLIGHT, 32 = ADDITIVE, 64 = BLUE, 128 = RED, 512 = FULLBRIGHT, 1024 = FLAME, 2048 = STARDUST, 4096 = NOSHADOW, 8192 = NODEPTHTEST, 32768 = DOUBLESIDED, 8388608 = NOMODELFLAGS (ignores the following coming from a model file), 16777216 = ROCKET, 33554432 = GRENADE, 67108864 = GIB, 134217728 = ROTATE, 268435456 = TRACER, 536870912 = ZOMGIB, 1073741824 = TRACER2, -2147483648 = TRACER3
+loddistance1: distance after which to show the first LOD model replacement (default: 1000)
+loddistance2: distance after which to show the second LOD model replacement (default: 2000)
+lodmodel1: file name of the first LOD model replacement
+lodmodel2: file name of the second LOD model replacement
+targetname: when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature.
+originjitter: a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.
+anglesjitter: a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.
+anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
+gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
+-------- SPAWNFLAGS --------
+ALIGN_ORIGN: align the origin to the surface below the model
+ALIGN_BOTTOM: align the bottom of the model to the surface below it
+*/
+
+/*QUAKED func_illusionary (0 .5 .8) ? 
+NOTE: THIS ENTITY IS BROKEN REGARDING CLIENT AND PROJECTILE PREDICTION. DO NOT USE IT. USE NONSOLID SHADERS OR FUNC_CLIENTILLUSIONARY INSTEAD.
+A non-solid brush entity. Use func_wall if you want it solid.
+The keys below actually apply to most brush entities as they are engine features; however, they are described here as they aren't overridden by game code in misc_models. Its q3map2 keys below will work on any brush entity!
+-------- KEYS --------
+movetype: way in which it moves: one of 0 = NONE, 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE
+avelocity: vector giving its angular velocity (useful for spinning models)
+scale: scale factor of the model (range: 0.0625 to 15.9375)
+colormap: 1024 + 16 * pantscolor + shirtcolor
+velocity: when movetype isn't 0, initial velocity vector
+angles: initial looking direction
+effects: sum of 1 = BRIGHTFIELD, 4 = BRIGHTLIGHT, 8 = DIMLIGHT, 32 = ADDITIVE, 64 = BLUE, 128 = RED, 512 = FULLBRIGHT, 1024 = FLAME, 2048 = STARDUST, 4096 = NOSHADOW, 8192 = NODEPTHTEST, 32768 = DOUBLESIDED, 8388608 = NOMODELFLAGS (ignores the following coming from a model file), 16777216 = ROCKET, 33554432 = GRENADE, 67108864 = GIB, 134217728 = ROTATE, 268435456 = TRACER, 536870912 = ZOMGIB, 1073741824 = TRACER2, -2147483648 = TRACER3
+loddistance1: distance after which to show the first LOD model replacement (default: 1000)
+loddistance2: distance after which to show the second LOD model replacement (default: 2000)
+lodtarget1: targetname of the first LOD model entity (can be used instead of lodmodel1 to use a brush model instead)
+lodtarget2: targetname of the second LOD model entity (can be used instead of lodmodel2 to use a brush model instead)
+targetname: when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.
+originjitter: a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.
+anglesjitter: a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.
+anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
+gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
+-------- Q3MAP2 KEYS --------
+_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.
+_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.
+_clone: copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.
+_clonename: template name so one can clone from it
+min: override automatically found minimum coordinate bounds
+max: override automatically found maximum coordinate bounds
+targetname: if targeted by a misc_model, its brushes get inserted into this
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+*/
+
+/*QUAKED func_wall (0 .5 .8) ? 
+A solid brush entity. Use func_clientillusionary if you want it non-solid.
+The keys below actually apply to most brush entities as they are engine features; however, they are described here as they aren't overridden by game code in misc_models. Its q3map2 keys below will work on any brush entity!
+-------- KEYS --------
+movetype: way in which it moves: one of 0 = NONE, 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE
+solid: solidity: one of 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE (default: 4, any other value causes prediction problems and should not be used until further notice)
+avelocity: vector giving its angular velocity (useful for spinning models)
+scale: scale factor of the model (range: 0.0625 to 15.9375)
+colormap: 1024 + 16 * pantscolor + shirtcolor
+velocity: when movetype isn't 0, initial velocity vector
+angles: initial looking direction
+effects: sum of 1 = BRIGHTFIELD, 4 = BRIGHTLIGHT, 8 = DIMLIGHT, 32 = ADDITIVE, 64 = BLUE, 128 = RED, 512 = FULLBRIGHT, 1024 = FLAME, 2048 = STARDUST, 4096 = NOSHADOW, 8192 = NODEPTHTEST, 32768 = DOUBLESIDED, 8388608 = NOMODELFLAGS (ignores the following coming from a model file), 16777216 = ROCKET, 33554432 = GRENADE, 67108864 = GIB, 134217728 = ROTATE, 268435456 = TRACER, 536870912 = ZOMGIB, 1073741824 = TRACER2, -2147483648 = TRACER3
+loddistance1: distance after which to show the first LOD model replacement (default: 1000)
+loddistance2: distance after which to show the second LOD model replacement (default: 2000)
+lodtarget1: targetname of the first LOD model entity (can be used instead of lodmodel1 to use a brush model instead)
+lodtarget2: targetname of the second LOD model entity (can be used instead of lodmodel2 to use a brush model instead)
+targetname: when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.
+originjitter: a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.
+anglesjitter: a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.
+anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
+gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
+-------- Q3MAP2 KEYS --------
+_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.
+_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.
+_clone: copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.
+_clonename: template name so one can clone from it
+min: override automatically found minimum coordinate bounds
+max: override automatically found maximum coordinate bounds
+targetname: if targeted by a misc_model, its brushes get inserted into this
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+*/
+
+/*QUAKED misc_clientmodel (0 .5 .8) (-8 -8 -8) (8 8 8) ALIGN_ORIGIN ALIGN_BOTTOM
+A way to load models from a map by the engine (e.g. self-animated zym models) on client side.
+Is non-solid by default.
+-------- KEYS --------
+scale: scale factor of the model (range: 0.0625 to 15.9375)
+colormap: 1024 + 16 * pantscolor + shirtcolor
+angles: initial looking direction
+targetname: when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.
+bgmscript: emitter class from the BGM script (if prefixed with <, movedir is treated as an angle value)
+bgmscriptattack: attack time of the effect strength (0 to 3.9)
+bgmscriptdecay: decay time of the effect strength (0 to 3.9)
+bgmscriptsustain: sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)
+bgmscriptrelease: release time of the effect strength (0 to 3.9)
+movedir: vector by which the entity moves when "pressed" by the bgmscript
+lip: alpha change when "pressed" by the bgmscript (if > 0, it fades in when pressed, if < 0, it fades out when pressed)
+originjitter: a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.
+anglesjitter: a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.
+anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
+gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
+-------- SPAWNFLAGS --------
+ALIGN_ORIGN: align the origin to the surface below the model
+ALIGN_BOTTOM: align the bottom of the model to the surface below it
+*/
+
+/*QUAKED func_clientillusionary (0 .5 .8) ? 
+A client-side non-solid brush entity. Use func_wall if you want it solid.
+-------- KEYS --------
+scale: scale factor of the model (range: 0.0625 to 15.9375)
+colormap: 1024 + 16 * pantscolor + shirtcolor
+angles: initial looking direction
+targetname: when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.
+bgmscript: emitter class from the BGM script
+bgmscriptattack: attack time of the effect strength (0 to 3.9)
+bgmscriptdecay: decay time of the effect strength (0 to 3.9)
+bgmscriptsustain: sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)
+bgmscriptrelease: release time of the effect strength (0 to 3.9)
+movedir: vector by which the entity moves when "pressed" by the bgmscript
+lip: alpha change when "pressed" by the bgmscript (if > 0, it fades in when pressed, if < 0, it fades out when pressed)
+originjitter: a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.
+anglesjitter: a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.
+anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
+gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
+-------- Q3MAP2 KEYS --------
+_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.
+_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.
+_clone: copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.
+_clonename: template name so one can clone from it
+min: override automatically found minimum coordinate bounds
+max: override automatically found maximum coordinate bounds
+targetname: if targeted by a misc_model, its brushes get inserted into this
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+*/
+
+/*QUAKED func_clientwall (0 .5 .8) ? 
+NOTE: THIS ENTITY IS IN MOST USE CASES BROKEN REGARDING CLIENT AND PROJECTILE PREDICTION. DO NOT USE IT. USE FUNC_WALL INSTEAD.
+A client-side solid brush entity. Use func_clientillusionary if you want it non-solid.
+-------- KEYS --------
+solid: solidity: one of 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE (default: 4, any other value causes prediction problems and should not be used until further notice)
+scale: scale factor of the model (range: 0.0625 to 15.9375)
+colormap: 1024 + 16 * pantscolor + shirtcolor
+angles: initial looking direction
+targetname: when invoking it by a button etc., it changes the color to the initiator of the action (e.g. the one pressing a button). In Onslaught, this can be used to color control points for team who owns them. In other game types, this can be used as a fun feature. Works only with _shirt and _pants textures.
+bgmscript: emitter class from the BGM script
+bgmscriptattack: attack time of the effect strength (0 to 3.9)
+bgmscriptdecay: decay time of the effect strength (0 to 3.9)
+bgmscriptsustain: sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)
+bgmscriptrelease: release time of the effect strength (0 to 3.9)
+movedir: vector by which the entity moves when "pressed" by the bgmscript
+lip: alpha change when "pressed" by the bgmscript (if > 0, it fades in when pressed, if < 0, it fades out when pressed)
+originjitter: a vector describing a random offset this entity will be moved on initial spawn. This corresponds to the "origin" field. Works on any non-q3map2-only entity.
+anglesjitter: a vector in the order "pitch yaw roll" describing a random angles change on this entity on initial spawn. The value 180 180 180 makes the angles entirely random and uniformly distributed (among euler angles). This corresponds to the "angles" field. Works on any non-q3map2-only entity.
+anglejitter: a float describing a random yaw angle change on this entity on initial spawn. The value 180 makes the yaw angle entirely random (maybe good for items). This corresponds to the "angle" field. Works on any non-q3map2-only entity.
+gametypefilter: either a + sign and a comma separated list of game types or the aliases "teams" and "noteams" to ONLY show the entity in the listed game types, or a - sign and a comma separated list of game types or the aliases "teams" and "noteams" to NOT show the entity in the listed game types. The syntax is the same as in sbar_columns_set strings. Works on any non-q3map2-only entity.
+-------- Q3MAP2 KEYS --------
+_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.
+_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.
+_clone: copies brushes from entity with identical _clonename. Still needs a single brush that will get replaced.
+_clonename: template name so one can clone from it
+min: override automatically found minimum coordinate bounds
+max: override automatically found maximum coordinate bounds
+targetname: if targeted by a misc_model, its brushes get inserted into this
+_celshader: Sets the cel shader used for this geometry. Note: omit the "textures/" prefix.
+*/
+
+/*QUAKED misc_teleporter_dest (1 .5 .25) (-16 -16 -24) (16 16 45) 
+Teleport destination location point for trigger_teleport entities. Do not let it touch the floor, but place it slightly higher (like, 16 units above) for better flow when jumping through it.
+-------- KEYS --------
+targetname: make the trigger_teleporter point to this.
+target: target to activate when a teleporter targeting this is used
+angle: direction in which player will look when teleported, OR use
+angles: pitch and yaw when coming out of the teleporter (also specifies the direction the player will aim when coming out)
+cnt: weight for random selection, in case a teleporter points at multiple misc_teleporter_dest
+speed: maximum speed cap for the teleported player (if -1, teleported players will have no speed)
+*/
+
+/*QUAKED onslaught_controlpoint (0 .5 .8) (-32 -32 0) (32 32 128) 
+Control point.  Be sure to give this enough clearance so that the shootable part has room to exist
+This should link to an onslaught_controlpoint entity or onslaught_generator entity.
+-------- KEYS --------
+targetname: name that onslaught_link entities will use to target this.
+target: target any entities that are tied to this control point, such as vehicles and buildable structure entities.
+message: name of this control point (should reflect the location in the map, such as "center bridge", "north tower", etc)
+*/
+
+/*QUAKED onslaught_generator (0 .5 .8) (-32 -32 -24) (32 32 64) 
+Base generator.
+
+onslaught_link entities can target this.
+-------- KEYS --------
+team: team that owns this generator (5 = red, 14 = blue, etc), MUST BE SET.
+targetname: name that onslaught_link entities will use to target this.
+*/
+
+/*QUAKED onslaught_link (0 .5 .8) (-16 -16 -16) (16 16 16) 
+Link between control points.
+
+This entity targets two different onslaught_controlpoint or onslaught_generator entities, and suppresses shielding on both if they are owned by different teams.
+-------- KEYS --------
+target: first control point.
+target2: second control point.
+*/
+
+/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) 
+Path corner entity that func_train will follow.
+All path_corner entities of a train have to connect in a circular manner, while the func_train shall point to one of the path_corners (ideally the one at the train's starting point)
+-------- 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 this path corner. If unset, the value from the func_train will be used.
+wait: number of seconds func_train will pause on this path corner before moving to next path corner (default: 0.1; to not wait, set this to -1
+*/
+
+/*QUAKED target_assault_roundend (1 0 0) (-8 -8 -8) (8 8 8) 
+This entity ends the current assault round if triggered or if the timelimit is reached.
+Ending a round means swapping attacker/defender teams, resetting objectives and rewarding the winning team.
+Every assault map needs this entity. There should only be one per map.
+-------- KEYS --------
+targetname: Name to target this entity
+*/
+
+/*QUAKED target_assault_roundstart (.5 0 .5) (-8 -8 -8) (8 8 8) 
+This entity triggers its targets whenever a new assault round is started. This can be used to e.g. activate the first objective.
+-------- KEYS --------
+target: targetname of entities to be enabled/triggered on round start (e.g. the first target_objective)
+target2: targetname of entities to be enabled/triggered on round start (e.g. the func_assault_destructibles targeting the target_objective)
+target3: targetname of entities to be enabled/triggered on round start
+target4: targetname of entities to be enabled/triggered on round start
+*/
+
+/*QUAKED target_objective (.5 0 .5) (-8 -8 -8) (8 8 8) 
+target_objective controls an objective. Once triggered the objective is active and has 100 "health" points. If this "health" falls below zero it is assumed this objective has been fulfilled and entities targeted will be triggered (e.g. to activate the next objective or to end this round). Use target_objective_decrease to decrease the objective health.
+-------- KEYS --------
+target: targetname of entities to be enabled/triggered on objective fulfilling (e.g. the next target_objective, or target_assault_roundend)
+target2: targetname of entities to be enabled/triggered on objective fulfilling (e.g. the func_assault_destructibles targeting the target_objective)
+target3: targetname of entities to be enabled/triggered on objective fulfilling
+target4: targetname of entities to be enabled/triggered on objective fulfilling
+targetname: targetname for this entity so it can be triggered by other entities.
+*/
+
+/*QUAKED target_objective_decrease (0 1 0) (-8 -8 -8) (8 8 8) 
+When triggered decreases health of the targeted target_objective by the amount specified in dmg. Remember, target_objective has 100 health points and is considered conquered if health falls below zero.
+If you want e.g. two events to happen to conquer an objective you'd need two target_objective_decrease, each with a value for cnt of e.g. 51. To show attackers and defenders where to go, target_objective_decrease will show a fitting sprite ("Defend" to defenders, "Destroy"/"Push" to attackers) which can be seen through walls.
+-------- KEYS --------
+target: The targetname of the target_objective you want to manipulate.
+targetname: Name for other entities to target this entity.
+dmg: The amount of "health"-points you want to subtract from the objective health. Defaults to 101. Also used as score for triggering this objective.
+*/
+
+/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) 
+Aiming target for entities like light and trigger_push.
+-------- KEYS --------
+targetname: the entity that requires an aiming direction points to this.
+target: target to activate when a jumppad targeting this is used
+*/
+
+/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) 
+Sound generating entity that plays sound files.
+If targeted, it plays the sound file every time when triggered.
+If not targeted, it loops the sound file as an ambient noise.
+-------- KEYS --------
+noise: path/name of .wav/.ogg file to play
+targetname: the activating button or trigger points to this.
+atten: distance attenuation of the sound (a value from 0.1 to 3.9), default is 0.5 if targeted, 3 otherwise; set to -1 for no attenuation (global sound)
+volume: volume of the sound
+*/
+
+/*QUAKED trigger_counter (.5 .5 .5) ? NOMESSAGE
+Acts as an intermediary for an action that takes multiple inputs.
+After the counter has been triggered "count" times, it will fire all of its targets and remove itself.
+-------- KEYS --------
+count: how many times this needs to be triggered to activate its targets
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+delay: delay the triggering by the given time
+message: print this message to the player who activated the trigger
+killtarget: remove all entities with this targetname when triggered
+-------- SPAWNFLAGS --------
+NOMESSAGE: don't print a "2 more to go..."-like message when triggered
+*/
+
+/*QUAKED trigger_delay (.5 .5 .5) (-8 -8 -8) (8 8 8) 
+Trigger that delays triggering by a given amount of time. Only one action can be waited for; if triggered again before the "wait" time expires, the timer will restart (as opposed to trigger_relay).
+-------- KEYS --------
+wait: delay the triggering by the given time
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+message: print this message to the player who activated the trigger
+killtarget: remove all entities with this targetname when triggered
+*/
+
+/*QUAKED trigger_hurt (.5 .5 .5) ? 
+Any object touching this will be hurt.
+Has the useful effect of automatically returning flags, keys and runes when they touch it.
+-------- KEYS --------
+dmg: amount of damage to deal (default: 1000)
+message: kill message when someone gets killed by this (default: "was in the wrong place")
+message2: kill message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+*/
+
+/*QUAKED trigger_impulse (.5 .5 .5) ? 
+An accelerator/dampener/wind field.
+Can be used in two ways:
+"dampener field": just set strength to a value from 0 to 1. Entering the field will slow down to this factor.
+"accelerator field": just set strength to a value from 1 to infinity. Entering the field will accelerate by this factor.
+"wind field": set strength to the amount of velocity to add per second, and target a target_position. The field will apply force in the direction from its own origin to the target (use an origin brush to specify its own origin, or this will fail) when touched.
+"gravity field": set strength to the amount of velocity to add per second at the center, and set radius to the radius of the field. Set falloff to the desired falloff characteristics.
+-------- KEYS --------
+target: "wind field": points to the target_position to which the player will get pushed.
+strength: "wind field", "gravity field": amount of force per second to apply. "dampener/accelerator field": slowdown/speedup factor.
+falloff: "gravity field": 0 means no falloff, 1 means linear falloff (zero at the outside), 2 means inverted linear falloff (zero at the inside)
+*/
+
+/*QUAKED trigger_multiple (.5 .5 .5) ? NOTOUCH ALLENTS
+Variable sized repeatable trigger.  Must be targeted at one or more entities.  If "health" is set, the trigger must be killed to activate each time.
+-------- KEYS --------
+health: amount of damage that has to be dealt to the trigger to activate (it then won't respond to merely touching it)
+wait: prevent triggering again for this amount of time
+sounds: 1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav
+noise: path to sound file, if you want to play something else
+target: trigger all entities with this targetname when triggered
+target2: trigger all entities with this targetname when triggered
+target3: trigger all entities with this targetname when triggered
+target4: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+delay: delay the triggering by the given time
+message: print this message to the player who activated the trigger
+killtarget: remove all entities with this targetname when triggered
+-------- SPAWNFLAGS --------
+NOTOUCH: the trigger can only be triggered by other entities, not by touching or firing (you should probably use trigger_relay or trigger_delay instead)
+ALLENTS: the trigger responds to all entities, not just players (useful for targetting trigger_items)
+*/
+
+/*QUAKED trigger_once (.5 .5 .5) ? NOTOUCH
+Variable sized repeatable trigger.  Must be targeted at one or more entities.  If "health" is set, the trigger must be killed to activate each time.
+Basically, it's a use-once trigger_multiple.
+-------- KEYS --------
+health: amount of damage that has to be dealt to the trigger to activate (it then won't respond to merely touching it)
+sounds: 1 to play misc/secret.wav, 2 to play misc/talk.wav, 3 to play misc/trigger1.wav
+noise: path to sound file, if you want to play something else
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+delay: delay the triggering by the given time
+message: print this message to the player who activated the trigger
+killtarget: remove all entities with this targetname when triggered
+-------- SPAWNFLAGS --------
+NOTOUCH: the trigger can only be triggered by other entities, not by touching or firing (you should probably use trigger_relay or trigger_delay instead)
+*/
+
+/*QUAKED trigger_push (1 .5 0) ? - - INVERT_TEAM
+Jump pad. What else?
+Can be used in three ways:
+Nexuiz "target/height" way: put the target_position where the player should land, and tune height to get a nice jump path. A good starting value for height is 100.
+Q3A "target" way: put the target_position at the apex of the jump, and hope the player will land at the right spot. Good luck.
+Quake "movedir/speed" way: player will get velocity movedir * speed * 10 when using the jump pad
+-------- KEYS --------
+target: point the player will fly to when using the jump pad (use a target_position here)
+height: if height is 0, the (player's origin at the) apex of the jump will be at the target; otherwise, the apex will be abs(height) above the higher point of player's origin and the target; if positive, the apex will be reached in the jump from initial origin to target
+movedir: when target is not set, direction vector to push to
+speed: speed of jump pad (default: 1000)
+noise: sound to play when jump pad is used; default is misc/jumppad.wav; you can set it to "" to make the pad silent
+team: team that owns this jump pad (5 = red, 14 = blue, etc) (when set, only this team can teleport)
+targetname: when targeted by a func_button, pressing the button will reassign the teleporter to the team of the activator.
+-------- SPAWNFLAGS --------
+INVERT_TEAM: the team that owns the teleporter will NOT jump when touching this
+*/
+
+/*QUAKED trigger_relay (.5 .5 .5) (-8 -8 -8) (8 8 8) 
+This fixed size trigger cannot be touched, it can only be fired by other events. It can, like any other trigger, contain killtargets, targets, delays, and messages.
+One possible use is to trigger entities with more than one targetname on an action, e.g. a button. For this, set target of your button to foobar. Create two trigger_relay with targetname=foobar. Give one of the trigger_relay entities target=ent1, and give the other target=ent2.
+More than one "trigger event" can be delayed at once, as opposed to trigger_delay.
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+target2: trigger all entities with this targetname when triggered
+target3: trigger all entities with this targetname when triggered
+target4: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+delay: delay the triggering by the given time
+message: print this message to the player who activated the trigger
+killtarget: remove all entities with this targetname when triggered
+*/
+
+/*QUAKED trigger_swamp (.5 .5 .5) ? 
+Players getting into the swamp will get slowed down and damaged
+-------- KEYS --------
+dmg: damage per interval to deal (default is 5)
+swamp_interval: interval of damage when in swamp (default is 1)
+swamp_slowdown: amount of slowdown caused by the swamp (default is 0.5)
+*/
+
+/*QUAKED trigger_teleport (.5 .5 .5) ? - - INVERT_TEAM
+Touching this will teleport players to the location of the targeted misc_teleporter_dest entity.
+Note that in Nexuiz, teleporters preserve momentum of the player using them.
+-------- KEYS --------
+target: this must point to a misc_teleporter_dest entity. If it points to more than one, a destination is randomly selected on teleport.
+team: team that owns this teleporter (5 = red, 14 = blue, etc) (when set, only this team can teleport)
+targetname: when targeted by a func_button, pressing the button will reassign the teleporter to the team of the activator.
+-------- SPAWNFLAGS --------
+INVERT_TEAM: the team that owns the teleporter will NOT teleport when touching this
+*/
+
+/*QUAKED worldspawn (0 0 0) ? 
+The world.
+If you see this, the currently selected brush is not of an entity.
+-------- KEYS --------
+fog: fog parameters of the map (density red green blue alpha mindist maxdist); works just like the "fog" console command
+author: name of the author of the map, if not specified in "message". Will get copied to the "author" entry of the mapinfo file when none is present.
+message: text to print at user logon. Used for name of level. Ideally: "NAMEOFLEVEL by AUTHOR". Will get copied to the "title" and "author" entries of the mapinfo file when none is present.
+_description: one-line description of the map. Will get copied to the "description" entry of the mapinfo file when none is present.
+-------- Q3MAP2 KEYS --------
+_blocksize: vector specifying the automatic vis subdivision block size (default: 1024 1024 1024)
+gridsize: lightgrid granularity vector (default: 64 64 128)
+_color: color of the global light parameters
+_ambient: light added to all surfaces
+_mingridlight: minimum grid light
+_minlight: minimum light value on both surfaces and lightgrid
+_keepLights: do not remove light entities from the map (useful e.g. for realtime lighting)
+_floodlight: flood light parameters (red green blue distance intensity), start with 240 240 255 1024 128
+_farplanedist: range after which everything is completely invisible by fog (when fog is being used)
+_noshadersun: turn off sun defined by shaders (useful if you defined your own light entity to be a sun)
+_ignoreleaks: ignore leaks when compiling
+_lightmapscale: light map resolution factor
+_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.
+_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 trigger_race_checkpoint (0 1 0) ? NOTOUCH STRICTTRIGGER CRUSH FINISH
+A checkpoint, for the race game mode. Be sure to make them quite long, so they actually catch a player reliably!
+-------- KEYS --------
+cnt: Number of the checkpoint. 0 for start/finish line, and at least two other checkpoints have to exist. They MUST be touched in sequential order!
+message: Death message, when touching checkpoints in the wrong order.
+message2: Death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+targetname: Name of the checkpoint. info_player_race can target this to assign a spawn to a checkpoint. Also used for triggering a checkpoint by an event.
+target: when the checkpoint is passed, these entities are triggered. Useful for forcing items in certain areas using trigger_items
+race_penalty: when set, this penalty time is given if passing this checkpoint, and the checkpoint does not show up with a sprite. Useful for invisible checkpoints to detect driving around the intended checkpoint
+race_penalty_reason: reason to display when the penalty time is imposed. Default: "missing a checkpoint"
+-------- SPAWNFLAGS --------
+NOTOUCH: the checkpoint will not become active when touched, it HAS to be targeted
+STRICTTRIGGER: only trigger the targets when the checkpoint actually was reached in a valid way (that is, not when going back)
+CRUSH: the checkpoint kills when used at the wrong time
+FINISH: when set on the last checkpoint (i.e. the one with highest cnt), it is marked as finish line and the CP with cnt=0 is the start line
+*/
+
+/*QUAKED trigger_race_penalty (0 1 0) ? NOTOUCH
+A penalty trigger.
+-------- KEYS --------
+race_penalty: this penalty time is given if passing this trigger
+race_penalty_reason: reason to display when the penalty time is imposed. Default: "leaving the track"
+-------- SPAWNFLAGS --------
+NOTOUCH: the trigger will not become active when touched, it HAS to be targeted
+*/
+
+/*QUAKED info_player_race (1 0.5 0) (-16 -16 -24) (16 16 45) 
+Race spawn point.
+NOTE for race_place: when the race starts after the qualifying, the player with the fastest map ends up at the info_player_race with race_place 1, and so on. If there are too many players, or if someone comes in later, he will spawn at an info_player_race with race_place not set. So for each trigger_race_checkpoint, there must be at least one corresponding info_player_race with race_place NOT set.
+-------- KEYS --------
+target: this should point to a trigger_race_checkpoint to decide when this spawning point is active. The checkpoint has to be AFTER this spawn.
+target2: trigger all entities with this targetname when someone spawns
+cnt: weight of spawn point for random selection. Set to a lower value if you have many spawn points close together. Default value is 1.
+race_place: if target points to the trigger_race_checkpoint with cnt 0 (finish line), this sets which place the spawn corresponds to; the special value 0 stands for spawns for players who come in later (have to be behind the ones with race_place set to an actual place), and -1 marks the spawnpoint for qualifying mode only; any race map must have spawnpoints with race_place being 1, 2, 3 or it gets marked as a frustrating map
+restriction: when 1, only bots can spawn here; when 2, only humans can spawn here (be careful with these, or the game will crash because someone cannot spawn)
+*/
+
+/*QUAKED func_pointparticles (.5 .5 .5) ? START_ON IMPULSE
+A brush that emits particles.
+-------- KEYS --------
+mdl: particle effect name from effectinfo.txt
+impulse: when positive, number of particles to emit per second; when negative; number of particles to emit per second and 64^3 block
+velocity: particle direction and speed
+waterlevel: extra velocity jitter amount
+count: particle count multiplier (per spawned particle)
+movedir: when set, trace direction (particles will then be emitted from the surface the trace hits); the length of the vector is used as strength of taking the normal of the trace into account
+noise: sound to play when the particle is emitted
+atten: distance attenuation of the sound (a value from 0.1 to 3.9), default is 0.5; set to -1 for no attenuation (global sound)
+volume: volume of the sound
+targetname: name to target this (then its state is toggled)
+bgmscript: emitter class from the BGM script
+bgmscriptattack: attack time of the effect strength (0 to 3.9)
+bgmscriptdecay: decay time of the effect strength (0 to 3.9)
+bgmscriptsustain: sustain level of the effect strength (0.1 to 1, set to -1 to disable sustain)
+bgmscriptrelease: release time of the effect strength (0 to 3.9)
+-------- SPAWNFLAGS --------
+START_ON: when targeted, the particle emitter will start switched on
+IMPULSE: only send the full amount of impulse particles when the entity is triggered
+-------- NOTES --------
+Use trigger_monoflop if you want the particles to turn off for a while, then turn back on.
+A BGM script is a .bgs file named like the map, in the maps directory. Its format is lines of the form
+  <emitter class> <time since start of background music> <0 if the emitters are to be switched off, >0 and <=1 if they are to be switched on>
+e.g.
+  smokers 4.7 1
+  smokers 4.9 0
+The lines MUST be sorted by emitter class as primary key, and by the time since start of the BGM as secondary key.
+*/
+
+/*QUAKED trigger_flipflop (.5 .5 .5) (-8 -8 -8) (8 8 8) START_ON
+"Flip-flop" trigger gate... lets only every second trigger event through
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+-------- SPAWNFLAGS --------
+START_ON: assume it is already turned on (so the first event is NOT passed through)
+*/
+
+/*QUAKED trigger_monoflop (.5 .5 .5) (-8 -8 -8) (8 8 8) FIXED
+"Mono-flop" trigger gate... turns trigger events into pairs of events
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+wait: time to wait until the "off" event is fired
+-------- SPAWNFLAGS --------
+FIXED: do pulses of fixed length (so the "off" delay is NOT extended as usual and new events are just ignored)
+*/
+
+/*QUAKED trigger_multivibrator (.5 .5 .5) (-8 -8 -8) (8 8 8) START_ON
+"Multivibrator" trigger gate... repeatedly sends trigger events. When triggered, turns on or off.
+-------- KEYS --------
+target: trigger all entities with this targetname when it goes off
+targetname: name that identifies this entity so it can be triggered
+phase: phase of the multivibrator (it is added to the time)
+wait: "on" cycle time (default: 1)
+respawntime: "off" cycle time (default: same as wait)
+-------- SPAWNFLAGS --------
+START_ON: assume it is already turned on (when targeted)
+*/
+
+/*QUAKED trigger_gamestart (.5 .5 .5) (-8 -8 -8) (8 8 8)
+Triggers once when the game starts, then no longer does anything.
+-------- KEYS --------
+target: trigger all entities with this targetname when starting the game
+target2: trigger all entities with this targetname when starting the game
+target3: trigger all entities with this targetname when starting the game
+target4: trigger all entities with this targetname when starting the game
+wait: wait so many seconds before triggering
+*/
+
+/*QUAKED misc_follow (.5 .5 .5) (-8 -8 -8) (8 8 8) ATTACH LOCAL
+Makes one entity follow another. Will not work with all entities.
+-------- KEYS --------
+target: points to the entity to move (e.g. something that won't move by itself)
+killtarget: points to the entity that is to be used as the source (e.g. a func_plat)
+message: tag name to attach to (if ATTACH is used)
+punchangle: angle modifier (if LOCAL is used, and ATTACH is not)
+-------- SPAWNFLAGS --------
+ATTACH: attachment will be used instead of MOVETYPE_FOLLOW (mostly useful for attaching stuff to ZYM models)
+LOCAL: do not untransform the coordinates (that is, the map specifies local coordinates, not global ones). Mostly useful with ATTACH.
+*/
+
+/*QUAKED target_items (0 0 1) (-8 -8 -8) (8 8 8) AND OR ANDNOT
+Sets the items of any player who triggers this.
+For the number fields, not specifying a value means not changing it. To clear armor, you need to explicitly set "armor" to "-1".
+You may want to target this by a race checkpoint, a teleporter, or a trigger_multiple with ALLENTS set (so it removes weapons thrown through the field to avoid getting a weapon through it).
+-------- KEYS --------
+targetname: used to trigger this
+netname: space separated list of items (either weapon short names (like in g_start_weapon_* cvars), or item short names "unlimited_ammo", "unlimited_weapon_ammo", "unlimited_superweapons", "invincible", "strength", "jetpack" and "fuel_regen"
+message: message to print
+ammo_fuel: amount of fuel
+health: amount of health
+armorvalue: amount of armor (note that armor is NOT supported in Vore Tournament by default)
+strength_finished: if "strength" is specified, the time in seconds for which the strength will hold
+invincible_finished: if "invincible" is specified, the time in seconds for which the invincibility will hold
+-------- SPAWNFLAGS --------
+AND: any items not listed will get removed, and none will get added
+OR: the player may keep items not listed
+ANDNOT: the items listed will get removed from the player
+*/
+
+/*QUAKED target_spawn (1 0 1) (-8 -8 -8) (8 8 8) - ONLOAD
+Spawns or modifies an entity when triggered.
+The entity field list is a single string of the form:
+'field' 'value' 'field' 'value' ... 'classname' 'item_bullets' ... 'field' 'value'
+The special "field" name $ calls a void(void) function, for example a spawn function.
+Special function names available are _setmodel and _setsize.
+Field values can use various variable replacements:
+$E
+$E.field
+$E.field+offset
+$E.field+offset+randomoffset
+where "E" can be self, activator, target (the entity being created/modified), killtarget, target2, target3, target4 and pusher.
+Example is a Mario-style question mark block which could throw a new weapon_nex when activated like this:
+{
+"classname" "func_button"
+"angle" "-1"
+"wait" "5"
+"target" "makenex"
+"speed" "1000"
+"lip" "64"
+...
+}
+{
+"classname" "target_spawn"
+"origin" "0 0 448"
+"targetname" "makenex"
+"message" "origin $self.origin owner $activator flags 65536 colormap $activator.colormap classname droppedweapon $ spawnfunc_weapon_nex think thrown_wep_think nextthink $time+0.5 velocity $activator.velocity velocity_z 512 movetype 3"
+}
+-------- KEYS --------
+targetname: used to trigger this
+message: entity field list
+target: when set, target_spawn edits entities, instead of creating new ones
+count: make sure no more than count entities have been created by this (refuse to spawn new ones if exceeded)
+killtarget: reference entity (can be used as $killtarget)
+target2: reference entity (can be used as $target2)
+target3: reference entity (can be used as $target3)
+target4: reference entity (can be used as $target4)
+-------- SPAWNFLAGS --------
+ONLOAD: create a first entity on map load
+*/
+
+/*QUAKED func_breakable (1 0 0) ? DISABLED INDICATE
+This is a brush model which can be damaged.
+Once all health is consumed it'll disappear and trigger the targeted entity/entities.
+When triggered, it resets to full health, and unbreaks.
+-------- KEYS --------
+health: The damage this trigger can take
+target: The entity/entities to be triggered once this entity gets invisible
+targetname: The name other entities can use to target this entity
+mdl: particle effect name to show when destroyed
+count: particle effect multiplier
+mdl_dead: optional replacement model to show when destroyed
+debris: names of debris models to show when destroyed, separated by spaces
+noise: sound to play when destroyed
+dmg: damage to deal to the environment when destroyed
+dmg_edge: edge damage to deal to the environment when destroyed
+dmg_radius: damage radius
+dmg_force: damage force
+message: death message when a player gets hit by the explosion
+message2: death message when someone gets pushed into this (default: "was pushed into an explosion by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+debrismovetype: way in which the debris moves: one of 1 = ANGLENOCLIP, 2 = ANGLECLIP, 3 = WALK, 4 = STEP, 5 = FLY, 6 = TOSS, 7 = PUSH, 8 = NOCLIP, 9 = FLYMISSILE, 10 = BOUNCE, 11 = BOUNCEMISSILE
+debrissolid: solidity of the debris: one of 0 = NOT, 1 = TRIGGER, 2 = BBOX, 3 = SLIDEBOX, 4 = BSP, 5 = CORPSE
+debrisvelocity: initial velocity vector of the debris (static part)
+debrisvelocityjitter: initial velocity vector of the debris (random part)
+debrisavelocityjitter: initial angular velocity vector of the debris (random part)
+debristime: time till the debris fades (average)
+debristimejitter: time till the debris fades (random part)
+debrisfadetime: how long debris takes to fade
+debrisdamageforcescale: how much debris is affected by damage force (e.g. explosions)
+debrisskin: skin number of debris
+-------- SPAWNFLAGS --------
+DISABLED: do not allow damaging this until it is first activated
+INDICATE: indicate amount of damage already taken by coloring
+*/
+
+/*QUAKED trigger_relay_if (0 1 0) (-8 -8 -8) (8 8 8) NEGATE
+Relays the trigger event if a cvar is set to a specified value.
+-------- KEYS --------
+target: The entity/entities to relay the trigger events to
+targetname: The name other entities can use to target this entity
+netname: The name of the cvar to check
+message: The value of the cvar to check
+count: The count of entities that must be found
+-------- SPAWNFLAGS --------
+NEGATE: trigger if the cvar does NOT match the value.
+*/
+
+/*QUAKED weapon_grabber (1 0 .5) (-30 -30 0) (30 30 32) FLOATING
+the Grabber.
+-------- KEYS --------
+ammo_fuel: initial fuel of the weapon (if unset, g_pickup_fuel is used)
+respawntime: time till it respawns (default: 30)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/weapons/g_grabber.md3"
+*/
+
+/*QUAKED trigger_heal (.5 .5 .5) ?
+Any object touching this will be healed.
+-------- KEYS --------
+health: health to give per second (default 10)
+max_health: max health this trigger will give (default 200)
+noise: sound file to play (use misc/null.wav to make it silent), default = item_health_medium sound
+*/
+
+/*QUAKED func_fourier (0 .5 .8) ?
+Solid entity that oscillates according to a sum of sine waves.
+-------- KEYS --------
+speed: amount of time in seconds for one complete oscillation cycle in the base frequency (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 or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
+dmg: damage a player who gets crushed by it receives
+dmgtime: interval to apply dmg to a player who is s in the way
+message: death message when a player gets crushed
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+netname: list of <frequencymultiplier> <phase> <x> <y> <z> quadruples, separated by spaces; note that phase 0 represents a sine wave, and phase 0.25 a cosine wave (by default, it uses 1 0 0 0 1, to match func_bobbing's defaults
+*/
+
+/*QUAKED func_vectormamamam (0 .5 .8) ? PROJECT_ON_TARGETNORMAL TARGET2NORMAL_IS_DIRECTION TARGET3NORMAL_IS_DIRECTION TARGET4NORMAL_IS_DIRECTION
+Solid entity that moves according to the movement of multiple given entities (max 4)
+-------- KEYS --------
+target: first reference entity
+targetfactor: factor by which to take the first reference entity (default 1).
+targetnormal: if set, the first reference entity's location is first projected onto a plane with that normal
+target2: second reference entity
+target2factor: factor by which to take the second reference entity (default 1).
+target2normal: if set, the second reference entity's location is first projected onto a plane with that normal
+target3: third reference entity (optional)
+target3factor: factor by which to take the third reference entity (default 1).
+target3normal: if set, the third reference entity's location is first projected onto a plane with that normal
+target4: fourth reference entity (optional)
+target4factor: factor by which to take the fourth reference entity (default 1).
+target4normal: if set, the fourth reference entity's location is first projected onto a plane with that normal
+noise: path/name of .wav or .ogg file to play. Use looping sounds only (e.g. sound/world/drone6.wav - See Notes).
+dmg: damage a player who gets crushed by it receives
+dmgtime: interval to apply dmg to a player who is s in the way
+message: death message when a player gets crushed
+message2: death message when someone gets pushed into this (default: "was thrown into a world of hurt by"). The # character is replaced by the attacker name if present (and it instead does not get appended to the end)
+-------- SPAWNFLAGS --------
+PROJECT_ON_TARGETNORMAL: target's origin is projected onto the given direction vector, not on the plane perpendicular to it
+PROJECT_ON_TARGET2NORMAL: target2's origin is projected onto the given direction vector, not on the plane perpendicular to it
+PROJECT_ON_TARGET3NORMAL: target3's origin is projected onto the given direction vector, not on the plane perpendicular to it
+PROJECT_ON_TARGET4NORMAL: target4's origin is projected onto the given direction vector, not on the plane perpendicular to it
+*/
+
+/*QUAKED trigger_relay_teamcheck (.5 .5 .5) (-8 -8 -8) (8 8 8) NOTEAM_TOO INVERT
+Works similar to trigger_relay, but only relays trigger events if the team of the activator matches this entity's team
+-------- KEYS --------
+target: trigger all entities with this targetname when triggered
+target2: trigger all entities with this targetname when triggered
+target3: trigger all entities with this targetname when triggered
+target4: trigger all entities with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+delay: delay the triggering by the given time
+message: print this message to the player who activated the trigger
+killtarget: remove all entities with this targetname when triggered
+team: 5 for red, 14 for blue, 13 for yellow, 10 for pink team
+-------- SPAWNFLAGS --------
+NOTEAM_TOO: also relay events if the activator has no team set
+INVERT: only relay the event if this entity has the matching team
+*/
+
+/*QUAKED trigger_disablerelay (.5 .5 .5) (-8 -8 -8) (8 8 8) 
+Disables a trigger_relay temporarily (until triggered again)
+-------- KEYS --------
+target: disable/enable all relays with this targetname when triggered
+targetname: name that identifies this entity so it can be triggered
+*/
+
+/*QUAKED item_fuel (.3 .3 1) (-30 -30 0) (30 30 32) FLOATING
+Jetpack fuel
+-------- KEYS --------
+ammo_fuel: fuel units gained by this item (if unset, g_pickup_fuel is used)
+respawntime: time till it respawns (default: 15)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_fuel.md3"
+*/
+
+/*QUAKED item_fuel_regen (1 .3 1) (-30 -30 0) (30 30 48) FLOATING
+Fuel regenerator
+-------- KEYS --------
+respawntime: time till it respawns (default: 120)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_fuelregen.md3"
+*/
+
+/*QUAKED item_jetpack (.3 .3 1) (-30 -30 0) (30 30 48) FLOATING
+Jetpack
+-------- KEYS --------
+ammo_fuel: fuel units gained by this item (if unset, g_pickup_fuel_jetpack is used)
+respawntime: time till it respawns (default: 120)
+team: out of items with the same value here, only one (random one) will spawn. Useful to put multiple items on one spot.
+cnt: weight of this item for random selection using "team". Set to a lower value for items you want to see less likely.
+-------- SPAWNFLAGS --------
+FLOATING: the item will float in air, instead of aligning to the floor by falling
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------
+model="models/items/g_jetpack.md3"
+*/
+
+/*QUAKED target_music (1 0 0) (-8 -8 -8) (8 8 8)
+Background music target (when this is used, the cdtrack line in mapinfo must not be used, and there MUST be a default target_music).
+When triggered, the background music is switched to the given track.
+When targetname is not set, this is the default track of the map.
+-------- KEYS --------
+targetname: The name other entities can use to target this entity (when not set, this one is the default)
+noise: the music to play (as full sound file name)
+volume: the volume (default: 1)
+fade_time: fade-in time
+fade_rate: fade-out time
+lifetime: when set, the music created by this target is switched back to the default one when this time expires
+-------- SPAWNFLAGS --------
+START_OFF: the trigger is off initially
+*/
+
+/*QUAKED trigger_music (1 0 0) ?
+Background music trigger (when this is used, the cdtrack line in mapinfo must not be used, and there MUST be a default target_music).
+When triggered, its effect is turned off until triggered again.
+-------- KEYS --------
+targetname: The name other entities can use to target this entity
+noise: the music to play (as full sound file name)
+volume: the volume (default: 1)
+fade_time: fade-in time
+fade_rate: fade-out time
+-------- SPAWNFLAGS --------
+START_OFF: the trigger is off initially
+*/
\ No newline at end of file
diff --git a/extra/netradiant-1.5.0-win32/voretournament.game/data/turrets.def b/extra/netradiant-1.5.0-win32/voretournament.game/data/turrets.def
new file mode 100644 (file)
index 0000000..9c271b9
--- /dev/null
@@ -0,0 +1,54 @@
+/*QUAKED turret_tesla (1 0 0) (-32 -32 0) (32 32 50)\r
+Fires a lightning bolt that will jump to up to 10 targets if they are close enough to each other. Missiles included.\r
+-------- KEYS --------\r
+turret_scale_damage: 2 = double damage, 0.5 = half\r
+turret_scale_range: 2 = double range, 0.5 = half\r
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)\r
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen\r
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed\r
+turret_scale_health: 2 = double health, 0.5 = half\r
+master_name: This turret controls what all turrets with master_nameof set to this aim at\r
+master_nameof: Dont select own targets, use the target of the turret with this master_name\r
+target: Defend the position of this entity\r
+team: 5=red, 14=blue\r
+-------- SPAWNFLAGS --------\r
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)\r
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------\r
+model="models/turrets/radiant/tesla.md3"\r
+*/\r
+\r
+/*QUAKED turret_phaser (1 0 0) (-32 -32 0) (32 32 50)\r
+Constant beam weapon that will considerably slow its target down while dealing low but constant damage.\r
+-------- KEYS --------\r
+turret_scale_damage: 2 = double damage, 0.5 = half\r
+turret_scale_range: 2 = double range, 0.5 = half\r
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)\r
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen\r
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed\r
+turret_scale_health: 2 = double health, 0.5 = half\r
+master_name: This turret controls what all turrets with master_nameof set to this aim at\r
+master_nameof: Dont select own targets, use the target of the turret with this master_name\r
+target: Defend the position of this entity\r
+team: 5=red, 14=blue\r
+-------- SPAWNFLAGS --------\r
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)\r
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------\r
+model="models/turrets/radiant/phaser.md3"\r
+*/\r
+\r
+/*QUAKED turret_fusionreactor (1 0 0) (-32 -32 0) (32 32 50)\r
+-------- KEYS --------\r
+turret_scale_damage: 2 = double damage, 0.5 = half\r
+turret_scale_range: 2 = double range, 0.5 = half\r
+turret_scale_refire: 2 = double refire (SLOWER!), 0.5 = half (FASTER!)\r
+turret_scale_ammo: 2 = double ammo carry & regen, 0.5 = half ammo carry & regen\r
+turret_scale_aim: 2 = aim twice as fast, 0,5 = aim at half speed\r
+turret_scale_health: 2 = double health, 0.5 = half\r
+team: 5=red, 14=blue\r
+-------- SPAWNFLAGS --------\r
+PILLAR: Adds a supporting pillar under this turret, for turrets on terrain/uneven surfaces. (only for visuals)\r
+---------NOTES----------\r
+Supplies neerby energy based turrets with more power so they can fire more often.\r
+-------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY --------\r
+model="models/turrets/radiant/reactor.md3"\r
+*/\r
diff --git a/extra/netradiant-1.5.0-win32/voretournament.game/default_build_menu.xml b/extra/netradiant-1.5.0-win32/voretournament.game/default_build_menu.xml
new file mode 100644 (file)
index 0000000..ef9613e
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--
+build commands
+[RadiantPath]: path to Radiant .. C:\Program Files\Gtkradiant
+[EnginePath]: path to the engine .. C:\quake3\ C:\Program Files\Quake III Arena\ /usr/local/games/quake3/
+-->
+<project version="2.0">
+<var name="q3map2">"[RadiantPath]q3map2.[ExecutableType]" -v<cond value="[MonitorAddress]"> -connect [MonitorAddress]</cond> -game voretournament -fs_basepath "[EnginePath]"<cond value="[GameName]"> -fs_game [GameName]</cond></var>
+<build name="Q3Map2: (single) BSP">
+<command>[q3map2] -meta "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (single) -vis">
+<command>[q3map2] -vis "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (single) -light, low quality">
+<command>[q3map2] -light -deluxe -cheapgrid -faster "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (single) -light, medium quality">
+<command>[q3map2] -light -deluxe -fast "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (single) -light, high quality">
+<command>[q3map2] -light -deluxe -fast -samples 3 "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (single) -minimap">
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (rebuild only entitys) ">
+<command>[q3map2] -onlyents "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (test)">
+<command>[q3map2] -meta -v -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -fast -samples 3 "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (test) fast vis, fast light">
+<command>[q3map2] -meta -v -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt -fast "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -faster -cheapgrid -filter "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (test) fast vis, good light">
+<command>[q3map2] -meta -v -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt -fast "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -fast -samples 2 "[MapFile]"</command>
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (final) simple lighting">
+<command>[q3map2] -meta -v -samplesize 8 -minsamplesize 4 -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -fast -patchshadows -samples 2 "[MapFile]"</command>
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (final) long distance lighting">
+<command>[q3map2] -meta -v -samplesize 8 -minsamplesize 4 -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -patchshadows -samples 3 "[MapFile]"</command>
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (final) + radiosity (VoreTournament default)">
+<command>[q3map2] -meta -v -samplesize 8 -minsamplesize 4 -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -patchshadows -samples 3 -bounce 8 -fastbounce -bouncegrid "[MapFile]"</command>
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (final) + highres external lightmaps">
+<command>[q3map2] -meta -v -samplesize 8 -minsamplesize 4 -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -patchshadows -samples 3 -lightmapsize 512 -bounce 8 -fastbounce -bouncegrid "[MapFile]"</command>
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+<build name="Q3Map2: (final) + ambient occlusion">
+<command>[q3map2] -meta -v -samplesize 8 -minsamplesize 4 -mv 1000000 -mi 6000000 "[MapFile]"</command>
+<command>[q3map2] -vis -saveprt "[MapFile]"</command>
+<command>[q3map2] -light -deluxe -patchshadows -samples 3 -lightmapsize 512 -bounce 8 -fastbounce -bouncegrid -dirty -dirtscale 2 "[MapFile]"</command>
+<command>[q3map2] -minimap "[MapFile]"</command>
+</build>
+</project>
+
diff --git a/extra/netradiant-1.5.0-win32/voretournament.game/game.xlink b/extra/netradiant-1.5.0-win32/voretournament.game/game.xlink
new file mode 100644 (file)
index 0000000..53c0e1d
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
+<!-- generated by Radiant setup, modify at your own risks -->
+<links>
+<item name="Vore Tournament" url="http://sourceforge.net/projects/voretournament/"/>
+</links>
diff --git a/extra/netradiant-1.5.0-win32/zlib1.dll b/extra/netradiant-1.5.0-win32/zlib1.dll
new file mode 100644 (file)
index 0000000..7912482
Binary files /dev/null and b/extra/netradiant-1.5.0-win32/zlib1.dll differ