From d7450ff4fb29df5b2657f11bb72a6622fd558d30 Mon Sep 17 00:00:00 2001 From: Clinton Freeman Date: Thu, 10 May 2012 07:53:35 -0400 Subject: [PATCH] removed installs dir --- .../models/mapobjects/lamps/bot_lamp2.md3 | Bin 4548 -> 0 bytes .../models/mapobjects/pipe/.svn/entries | 96 - .../pipe/.svn/prop-base/pipe02.md3.svn-base | 5 - .../pipe/.svn/prop-base/pipe02b.md3.svn-base | 5 - .../pipe/.svn/text-base/pipe02.md3.svn-base | Bin 3052 -> 0 bytes .../pipe/.svn/text-base/pipe02b.md3.svn-base | Bin 3052 -> 0 bytes .../baseq3/models/mapobjects/pipe/pipe02.md3 | Bin 3052 -> 0 bytes .../baseq3/models/mapobjects/pipe/pipe02b.md3 | Bin 3052 -> 0 bytes .../models/mapobjects/podium/.svn/entries | 62 - .../.svn/prop-base/podium4.md3.svn-base | 5 - .../.svn/text-base/podium4.md3.svn-base | Bin 20452 -> 0 bytes .../models/mapobjects/podium/podium4.md3 | Bin 20452 -> 0 bytes .../models/mapobjects/portal_2/.svn/entries | 62 - .../.svn/prop-base/portal_2.md3.svn-base | 5 - .../.svn/text-base/portal_2.md3.svn-base | Bin 11180 -> 0 bytes .../models/mapobjects/portal_2/portal_2.md3 | Bin 11180 -> 0 bytes .../models/mapobjects/skel/.svn/entries | 198 - .../skel/.svn/prop-base/skel01.md3.svn-base | 5 - .../.svn/prop-base/skel02mid.md3.svn-base | 5 - .../.svn/prop-base/skel_ribs.md3.svn-base | 5 - .../skel/.svn/prop-base/xray.md3.svn-base | 5 - .../skel/.svn/prop-base/xraybig.md3.svn-base | 5 - .../skel/.svn/text-base/skel01.md3.svn-base | Bin 13420 -> 0 bytes .../.svn/text-base/skel02mid.md3.svn-base | Bin 13420 -> 0 bytes .../.svn/text-base/skel_ribs.md3.svn-base | Bin 1988 -> 0 bytes .../skel/.svn/text-base/xray.md3.svn-base | Bin 13420 -> 0 bytes .../skel/.svn/text-base/xraybig.md3.svn-base | Bin 13420 -> 0 bytes .../baseq3/models/mapobjects/skel/skel01.md3 | Bin 13420 -> 0 bytes .../models/mapobjects/skel/skel02mid.md3 | Bin 13420 -> 0 bytes .../models/mapobjects/skel/skel_ribs.md3 | Bin 1988 -> 0 bytes .../baseq3/models/mapobjects/skel/xray.md3 | Bin 13420 -> 0 bytes .../baseq3/models/mapobjects/skel/xraybig.md3 | Bin 13420 -> 0 bytes .../models/mapobjects/skull/.svn/entries | 130 - .../.svn/prop-base/monkeyface.md3.svn-base | 5 - .../skull/.svn/prop-base/skull.md3.svn-base | 5 - .../.svn/prop-base/skull_tilt1.md3.svn-base | 5 - .../.svn/text-base/monkeyface.md3.svn-base | Bin 3500 -> 0 bytes .../skull/.svn/text-base/skull.md3.svn-base | Bin 2452 -> 0 bytes .../.svn/text-base/skull_tilt1.md3.svn-base | Bin 2452 -> 0 bytes .../models/mapobjects/skull/monkeyface.md3 | Bin 3500 -> 0 bytes .../baseq3/models/mapobjects/skull/skull.md3 | Bin 2452 -> 0 bytes .../models/mapobjects/skull/skull_tilt1.md3 | Bin 2452 -> 0 bytes .../models/mapobjects/spotlamp/.svn/entries | 62 - .../.svn/prop-base/spotlamp.md3.svn-base | 5 - .../.svn/text-base/spotlamp.md3.svn-base | Bin 6348 -> 0 bytes .../models/mapobjects/spotlamp/spotlamp.md3 | Bin 6348 -> 0 bytes .../baseq3/models/mapobjects/statue_major.md3 | Bin 27892 -> 0 bytes .../models/mapobjects/storch/.svn/entries | 130 - .../storch/.svn/prop-base/storch.md3.svn-base | 5 - .../.svn/prop-base/storchx.md3.svn-base | 5 - .../.svn/prop-base/tall_torch.md3.svn-base | 5 - .../storch/.svn/text-base/storch.md3.svn-base | Bin 1660 -> 0 bytes .../.svn/text-base/storchx.md3.svn-base | Bin 2012 -> 0 bytes .../.svn/text-base/tall_torch.md3.svn-base | Bin 3332 -> 0 bytes .../models/mapobjects/storch/storch.md3 | Bin 1660 -> 0 bytes .../models/mapobjects/storch/storchx.md3 | Bin 2012 -> 0 bytes .../models/mapobjects/storch/tall_torch.md3 | Bin 3332 -> 0 bytes .../models/mapobjects/teleporter/.svn/entries | 62 - .../.svn/prop-base/teleporter.md3.svn-base | 5 - .../.svn/text-base/teleporter.md3.svn-base | Bin 6500 -> 0 bytes .../mapobjects/teleporter/teleporter.md3 | Bin 6500 -> 0 bytes .../models/mapobjects/timlamp/.svn/entries | 62 - .../.svn/prop-base/timlamp.md3.svn-base | 5 - .../.svn/text-base/timlamp.md3.svn-base | Bin 2260 -> 0 bytes .../models/mapobjects/timlamp/timlamp.md3 | Bin 2260 -> 0 bytes .../models/mapobjects/tree2/.svn/entries | 436 -- .../tree2/.svn/prop-base/branch2.tga.svn-base | 5 - .../tree2/.svn/prop-base/tree1.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree10.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree2.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree3.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree4.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree5.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree6.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree7.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree8.md3.svn-base | 5 - .../tree2/.svn/prop-base/tree9.md3.svn-base | 5 - .../tree2/.svn/prop-base/trunk2.tga.svn-base | 5 - .../tree2/.svn/text-base/branch2.tga.svn-base | Bin 196652 -> 0 bytes .../tree2/.svn/text-base/tree1.md3.svn-base | Bin 2284 -> 0 bytes .../tree2/.svn/text-base/tree10.md3.svn-base | Bin 3868 -> 0 bytes .../tree2/.svn/text-base/tree2.md3.svn-base | Bin 1748 -> 0 bytes .../tree2/.svn/text-base/tree3.md3.svn-base | Bin 2808 -> 0 bytes .../tree2/.svn/text-base/tree4.md3.svn-base | Bin 2808 -> 0 bytes .../tree2/.svn/text-base/tree5.md3.svn-base | Bin 2808 -> 0 bytes .../tree2/.svn/text-base/tree6.md3.svn-base | Bin 2808 -> 0 bytes .../tree2/.svn/text-base/tree7.md3.svn-base | Bin 2808 -> 0 bytes .../tree2/.svn/text-base/tree8.md3.svn-base | Bin 2808 -> 0 bytes .../tree2/.svn/text-base/tree9.md3.svn-base | Bin 3868 -> 0 bytes .../tree2/.svn/text-base/trunk2.tga.svn-base | Bin 49196 -> 0 bytes .../models/mapobjects/tree2/branch2.tga | Bin 196652 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree1.md3 | Bin 2284 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree10.md3 | Bin 3868 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree2.md3 | Bin 1748 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree3.md3 | Bin 2808 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree4.md3 | Bin 2808 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree5.md3 | Bin 2808 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree6.md3 | Bin 2808 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree7.md3 | Bin 2808 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree8.md3 | Bin 2808 -> 0 bytes .../baseq3/models/mapobjects/tree2/tree9.md3 | Bin 3868 -> 0 bytes .../baseq3/models/mapobjects/tree2/trunk2.tga | Bin 49196 -> 0 bytes .../baseq3/models/mapobjects/visor_posed.md3 | Bin 23924 -> 0 bytes .../models/mapobjects/wallhead/.svn/entries | 130 - .../.svn/prop-base/femhead.md3.svn-base | 5 - .../wallhead/.svn/prop-base/lion.md3.svn-base | 5 - .../.svn/prop-base/wallhead02.md3.svn-base | 5 - .../.svn/text-base/femhead.md3.svn-base | Bin 9228 -> 0 bytes .../wallhead/.svn/text-base/lion.md3.svn-base | Bin 3764 -> 0 bytes .../.svn/text-base/wallhead02.md3.svn-base | Bin 3452 -> 0 bytes .../models/mapobjects/wallhead/femhead.md3 | Bin 9228 -> 0 bytes .../models/mapobjects/wallhead/lion.md3 | Bin 3764 -> 0 bytes .../models/mapobjects/wallhead/wallhead02.md3 | Bin 3452 -> 0 bytes .../baseq3/models/mapobjects/walllamp3.md3 | Bin 3072 -> 0 bytes .../install/baseq3/scripts/.svn/entries | 1082 ---- .../prop-base/base_button.shader.svn-base | 5 - .../.svn/prop-base/base_door.shader.svn-base | 5 - .../.svn/prop-base/base_floor.shader.svn-base | 5 - .../.svn/prop-base/base_light.shader.svn-base | 5 - .../prop-base/base_object.shader.svn-base | 5 - .../prop-base/base_support.shader.svn-base | 5 - .../.svn/prop-base/base_trim.shader.svn-base | 5 - .../.svn/prop-base/base_wall.shader.svn-base | 5 - .../.svn/prop-base/common.shader.svn-base | 5 - .../.svn/prop-base/ctf.shader.svn-base | 5 - .../.svn/prop-base/gfx.shader.svn-base | 5 - .../prop-base/gothic_block.shader.svn-base | 5 - .../prop-base/gothic_button.shader.svn-base | 5 - .../prop-base/gothic_door.shader.svn-base | 5 - .../prop-base/gothic_floor.shader.svn-base | 5 - .../prop-base/gothic_light.shader.svn-base | 5 - .../prop-base/gothic_trim.shader.svn-base | 5 - .../prop-base/gothic_wall.shader.svn-base | 5 - .../.svn/prop-base/hell.shader.svn-base | 5 - .../.svn/prop-base/liquids.shader.svn-base | 5 - .../.svn/prop-base/models.shader.svn-base | 5 - .../.svn/prop-base/museum.shader.svn-base | 5 - .../.svn/prop-base/organics.shader.svn-base | 5 - .../.svn/prop-base/sfx.shader.svn-base | 5 - .../.svn/prop-base/skies.shader.svn-base | 5 - .../.svn/prop-base/skin.shader.svn-base | 5 - .../prop-base/terrademoQ3.shader.svn-base | 5 - .../.svn/prop-base/test.shader.svn-base | 5 - .../text-base/base_button.shader.svn-base | 21 - .../.svn/text-base/base_door.shader.svn-base | 97 - .../.svn/text-base/base_floor.shader.svn-base | 900 --- .../.svn/text-base/base_light.shader.svn-base | 1683 ------ .../text-base/base_object.shader.svn-base | 30 - .../text-base/base_support.shader.svn-base | 211 - .../.svn/text-base/base_trim.shader.svn-base | 591 -- .../.svn/text-base/base_wall.shader.svn-base | 1406 ----- .../.svn/text-base/common.shader.svn-base | 321 -- .../.svn/text-base/ctf.shader.svn-base | 577 -- .../text-base/default_project.proj.svn-base | 62 - .../text-base/default_shaderlist.txt.svn-base | 47 - .../.svn/text-base/entities.def.svn-base | 1747 ------ .../.svn/text-base/gfx.shader.svn-base | 1474 ----- .../text-base/gothic_block.shader.svn-base | 514 -- .../text-base/gothic_button.shader.svn-base | 25 - .../text-base/gothic_door.shader.svn-base | 77 - .../text-base/gothic_floor.shader.svn-base | 212 - .../text-base/gothic_light.shader.svn-base | 1468 ----- .../text-base/gothic_trim.shader.svn-base | 296 - .../text-base/gothic_wall.shader.svn-base | 120 - .../.svn/text-base/hell.shader.svn-base | 437 -- .../.svn/text-base/liquids.shader.svn-base | 759 --- .../.svn/text-base/models.shader.svn-base | 4824 ----------------- .../.svn/text-base/museum.shader.svn-base | 27 - .../.svn/text-base/organics.shader.svn-base | 32 - .../.svn/text-base/sfx.shader.svn-base | 3253 ----------- .../.svn/text-base/skies.shader.svn-base | 1073 ---- .../.svn/text-base/skin.shader.svn-base | 161 - .../text-base/terrademoQ3.shader.svn-base | 623 --- .../.svn/text-base/test.shader.svn-base | 943 ---- .../install/baseq3/scripts/base_button.shader | 21 - .../install/baseq3/scripts/base_door.shader | 97 - .../install/baseq3/scripts/base_floor.shader | 900 --- .../install/baseq3/scripts/base_light.shader | 1683 ------ .../install/baseq3/scripts/base_object.shader | 30 - .../baseq3/scripts/base_support.shader | 211 - .../install/baseq3/scripts/base_trim.shader | 591 -- .../install/baseq3/scripts/base_wall.shader | 1406 ----- .../install/baseq3/scripts/common.shader | 462 -- .../Q3Pack/install/baseq3/scripts/ctf.shader | 577 -- .../baseq3/scripts/default_project.proj | 62 - .../baseq3/scripts/default_shaderlist.txt | 47 - .../install/baseq3/scripts/entities.def | 2190 -------- .../Q3Pack/install/baseq3/scripts/gfx.shader | 1474 ----- .../baseq3/scripts/gothic_block.shader | 514 -- .../baseq3/scripts/gothic_button.shader | 25 - .../install/baseq3/scripts/gothic_door.shader | 77 - .../baseq3/scripts/gothic_floor.shader | 212 - .../baseq3/scripts/gothic_light.shader | 1468 ----- .../install/baseq3/scripts/gothic_trim.shader | 296 - .../install/baseq3/scripts/gothic_wall.shader | 120 - .../Q3Pack/install/baseq3/scripts/hell.shader | 437 -- .../install/baseq3/scripts/liquids.shader | 759 --- .../install/baseq3/scripts/models.shader | 4824 ----------------- .../install/baseq3/scripts/museum.shader | 27 - .../install/baseq3/scripts/organics.shader | 32 - .../Q3Pack/install/baseq3/scripts/sfx.shader | 3253 ----------- .../install/baseq3/scripts/skies.shader | 1073 ---- .../Q3Pack/install/baseq3/scripts/skin.shader | 161 - .../install/baseq3/scripts/terrademoQ3.shader | 623 --- .../Q3Pack/install/baseq3/scripts/test.shader | 943 ---- .../install/baseq3/textures/.svn/entries | 37 - .../baseq3/textures/proto2/.svn/entries | 62 - .../prop-base/pj_terralpha01.pcx.svn-base | 5 - .../text-base/pj_terralpha01.pcx.svn-base | Bin 2384 -> 0 bytes .../baseq3/textures/proto2/pj_terralpha01.pcx | Bin 2384 -> 0 bytes .../baseq3/textures/skies2/.svn/entries | 62 - .../skies2/.svn/prop-base/clouds.tga.svn-base | 5 - .../skies2/.svn/text-base/clouds.tga.svn-base | Bin 1068 -> 0 bytes .../install/baseq3/textures/skies2/clouds.tga | Bin 1068 -> 0 bytes .../baseq3/textures/stone/.svn/entries | 130 - .../.svn/prop-base/pjrock10b_2.tga.svn-base | 5 - .../.svn/prop-base/pjrock12b_2.tga.svn-base | 5 - .../.svn/prop-base/pjrock9b_2.tga.svn-base | 5 - .../.svn/text-base/pjrock10b_2.tga.svn-base | Bin 197347 -> 0 bytes .../.svn/text-base/pjrock12b_2.tga.svn-base | Bin 197178 -> 0 bytes .../.svn/text-base/pjrock9b_2.tga.svn-base | Bin 196633 -> 0 bytes .../baseq3/textures/stone/pjrock10b_2.tga | Bin 197347 -> 0 bytes .../baseq3/textures/stone/pjrock12b_2.tga | Bin 197178 -> 0 bytes .../baseq3/textures/stone/pjrock9b_2.tga | Bin 196633 -> 0 bytes .../installs/Q3Pack/install/docs/.svn/entries | 46 - .../install/docs/Compile_Manual/.svn/entries | 232 - .../.svn/prop-base/bspc.txt.svn-base | 5 - .../.svn/prop-base/cfgq3.c.svn-base | 5 - .../.svn/prop-base/headskins.txt.svn-base | 5 - .../.svn/prop-base/index.html.svn-base | 5 - .../.svn/prop-base/modelskins.txt.svn-base | 5 - .../.svn/prop-base/q3map.html.svn-base | 5 - .../.svn/text-base/bspc.txt.svn-base | 565 -- .../.svn/text-base/cfgq3.c.svn-base | 78 - .../.svn/text-base/headskins.txt.svn-base | 75 - .../.svn/text-base/index.html.svn-base | 65 - .../.svn/text-base/modelskins.txt.svn-base | 73 - .../.svn/text-base/q3map.html.svn-base | 410 -- .../install/docs/Compile_Manual/bspc.txt | 565 -- .../install/docs/Compile_Manual/cfgq3.c | 78 - .../install/docs/Compile_Manual/headskins.txt | 75 - .../install/docs/Compile_Manual/index.html | 65 - .../docs/Compile_Manual/modelskins.txt | 73 - .../install/docs/Compile_Manual/q3map.html | 410 -- .../install/docs/Model_Manual/.svn/entries | 65 - .../.svn/prop-base/model_manual.htm.svn-base | 5 - .../.svn/text-base/model_manual.htm.svn-base | 217 - .../docs/Model_Manual/model_manual.htm | 217 - .../docs/Model_Manual/styles/.svn/entries | 62 - .../styles/.svn/prop-base/q3rad.css.svn-base | 5 - .../styles/.svn/text-base/q3rad.css.svn-base | 23 - .../docs/Model_Manual/styles/q3rad.css | 23 - .../docs/New_Teams_For_Q3TA/.svn/entries | 62 - .../.svn/prop-base/index.html.svn-base | 5 - .../.svn/text-base/index.html.svn-base | 1040 ---- .../docs/New_Teams_For_Q3TA/index.html | 1040 ---- .../docs/Q3AShader_Manual/.svn/entries | 89 - .../.svn/prop-base/index.htm.svn-base | 5 - .../.svn/text-base/index.htm.svn-base | 76 - .../Q3AShader_Manual/appendix/.svn/entries | 62 - .../.svn/prop-base/appA.html.svn-base | 5 - .../.svn/text-base/appA.html.svn-base | 60 - .../docs/Q3AShader_Manual/appendix/appA.html | 60 - .../docs/Q3AShader_Manual/ch01/.svn/entries | 62 - .../ch01/.svn/prop-base/pg1_1.htm.svn-base | 5 - .../ch01/.svn/text-base/pg1_1.htm.svn-base | 126 - .../docs/Q3AShader_Manual/ch01/pg1_1.htm | 126 - .../docs/Q3AShader_Manual/ch02/.svn/entries | 62 - .../ch02/.svn/prop-base/pg2_1.htm.svn-base | 5 - .../ch02/.svn/text-base/pg2_1.htm.svn-base | 222 - .../docs/Q3AShader_Manual/ch02/pg2_1.htm | 222 - .../docs/Q3AShader_Manual/ch03/.svn/entries | 62 - .../ch03/.svn/prop-base/pg3_1.htm.svn-base | 5 - .../ch03/.svn/text-base/pg3_1.htm.svn-base | 197 - .../docs/Q3AShader_Manual/ch03/pg3_1.htm | 197 - .../docs/Q3AShader_Manual/ch04/.svn/entries | 62 - .../ch04/.svn/prop-base/pg4_1.htm.svn-base | 5 - .../ch04/.svn/text-base/pg4_1.htm.svn-base | 64 - .../docs/Q3AShader_Manual/ch04/pg4_1.htm | 64 - .../docs/Q3AShader_Manual/ch05/.svn/entries | 62 - .../ch05/.svn/prop-base/pg5_1.htm.svn-base | 5 - .../ch05/.svn/text-base/pg5_1.htm.svn-base | 483 -- .../docs/Q3AShader_Manual/ch05/pg5_1.htm | 483 -- .../docs/Q3AShader_Manual/ch06/.svn/entries | 62 - .../ch06/.svn/prop-base/pg6_1.htm.svn-base | 5 - .../ch06/.svn/text-base/pg6_1.htm.svn-base | 145 - .../docs/Q3AShader_Manual/ch06/pg6_1.htm | 145 - .../install/docs/Q3AShader_Manual/index.htm | 76 - .../q3ashader_manual_files/.svn/entries | 62 - .../.svn/prop-base/image002.jpg.svn-base | 5 - .../.svn/text-base/image002.jpg.svn-base | Bin 26981 -> 0 bytes .../q3ashader_manual_files/image002.jpg | Bin 26981 -> 0 bytes .../docs/Q3AShader_Manual/styles/.svn/entries | 62 - .../styles/.svn/prop-base/q3rad.css.svn-base | 5 - .../styles/.svn/text-base/q3rad.css.svn-base | 23 - .../docs/Q3AShader_Manual/styles/q3rad.css | 23 - .../docs/Team_Arena_Mapping_Help/.svn/entries | 68 - .../.svn/prop-base/start.html.svn-base | 5 - .../.svn/text-base/start.html.svn-base | 30 - .../pages/.svn/entries | 368 -- .../.svn/prop-base/design_tips.html.svn-base | 5 - .../map_converters_checklist.html.svn-base | 5 - .../.svn/prop-base/preface.html.svn-base | 5 - .../prop-base/related_links.html.svn-base | 5 - .../prop-base/ta_game_types.html.svn-base | 5 - .../prop-base/table_of_contents.htm.svn-base | 5 - ...eam_arena_entity_definitions.html.svn-base | 5 - .../team_arena_prefabs.html.svn-base | 5 - .../team_powerup_bases.html.svn-base | 5 - .../using_new_game_entities.html.svn-base | 5 - .../.svn/text-base/design_tips.html.svn-base | 113 - .../map_converters_checklist.html.svn-base | 101 - .../.svn/text-base/preface.html.svn-base | 40 - .../text-base/related_links.html.svn-base | 51 - .../text-base/ta_game_types.html.svn-base | 199 - .../text-base/table_of_contents.htm.svn-base | 77 - ...eam_arena_entity_definitions.html.svn-base | 66 - .../team_arena_prefabs.html.svn-base | 96 - .../team_powerup_bases.html.svn-base | 62 - .../using_new_game_entities.html.svn-base | 115 - .../pages/design_tips.html | 113 - .../pages/map_converters_checklist.html | 101 - .../pages/preface.html | 40 - .../pages/related_links.html | 51 - .../pages/ta_game_types.html | 199 - .../pages/table_of_contents.htm | 77 - .../pages/team_arena_entity_definitions.html | 66 - .../pages/team_arena_prefabs.html | 96 - .../pages/team_powerup_bases.html | 62 - .../pages/using_new_game_entities.html | 115 - .../Team_Arena_Mapping_Help/pics/.svn/entries | 300 - .../pics/.svn/prop-base/CRUSADER.gif.svn-base | 5 - .../pics/.svn/prop-base/INTRUDER.gif.svn-base | 5 - .../pics/.svn/prop-base/MAINPOP.gif.svn-base | 5 - .../.svn/prop-base/MENUBACKgif.gif.svn-base | 5 - .../pics/.svn/prop-base/PAGANs.gif.svn-base | 5 - .../pics/.svn/prop-base/STROGGS.gif.svn-base | 5 - .../.svn/prop-base/THEFALLEN.gif.svn-base | 5 - .../pics/.svn/prop-base/logo.gif.svn-base | 5 - .../pics/.svn/text-base/CRUSADER.gif.svn-base | Bin 4292 -> 0 bytes .../pics/.svn/text-base/INTRUDER.gif.svn-base | Bin 4732 -> 0 bytes .../pics/.svn/text-base/MAINPOP.gif.svn-base | Bin 25903 -> 0 bytes .../.svn/text-base/MENUBACKgif.gif.svn-base | Bin 21338 -> 0 bytes .../pics/.svn/text-base/PAGANs.gif.svn-base | Bin 3861 -> 0 bytes .../pics/.svn/text-base/STROGGS.gif.svn-base | Bin 4884 -> 0 bytes .../.svn/text-base/THEFALLEN.gif.svn-base | Bin 5367 -> 0 bytes .../pics/.svn/text-base/logo.gif.svn-base | Bin 42182 -> 0 bytes .../Team_Arena_Mapping_Help/pics/CRUSADER.gif | Bin 4292 -> 0 bytes .../Team_Arena_Mapping_Help/pics/INTRUDER.gif | Bin 4732 -> 0 bytes .../Team_Arena_Mapping_Help/pics/MAINPOP.gif | Bin 25903 -> 0 bytes .../pics/MENUBACKgif.gif | Bin 21338 -> 0 bytes .../Team_Arena_Mapping_Help/pics/PAGANs.gif | Bin 3861 -> 0 bytes .../Team_Arena_Mapping_Help/pics/STROGGS.gif | Bin 4884 -> 0 bytes .../pics/THEFALLEN.gif | Bin 5367 -> 0 bytes .../Team_Arena_Mapping_Help/pics/logo.gif | Bin 42182 -> 0 bytes .../docs/Team_Arena_Mapping_Help/start.html | 30 - .../install/docs/Terrain_Manual/.svn/entries | 68 - .../.svn/prop-base/start.html.svn-base | 5 - .../.svn/text-base/start.html.svn-base | 30 - .../docs/Terrain_Manual/pages/.svn/entries | 1082 ---- .../pages/.svn/prop-base/Image3.gif.svn-base | 5 - .../pages/.svn/prop-base/Image4.gif.svn-base | 5 - .../pages/.svn/prop-base/Image5.gif.svn-base | 5 - .../pages/.svn/prop-base/Image6.gif.svn-base | 5 - .../.svn/prop-base/adding_bots.html.svn-base | 5 - .../adding_buildings_to_terrain.html.svn-base | 5 - .../.svn/prop-base/art_tools.html.svn-base | 5 - .../.svn/prop-base/blocking_vis.html.svn-base | 5 - .../boxing_in_the_world.html.svn-base | 5 - .../clipping_the_terrain.html.svn-base | 5 - .../creating_the_alphamap.html.svn-base | 5 - .../creating_the_terrain.html.svn-base | 5 - .../entity_keys_and_values.html.svn-base | 5 - .../.svn/prop-base/glossary.html.svn-base | 5 - ...height_map_into_terrain_mesh.html.svn-base | 5 - .../.svn/prop-base/height_maps.html.svn-base | 5 - .../.svn/prop-base/introduction.html.svn-base | 5 - .../.svn/prop-base/key_changes.html.svn-base | 5 - .../lighting_the_terrain.html.svn-base | 5 - ...anipulating_the_terrain_mesh.html.svn-base | 5 - .../mapping_the_textures.html.svn-base | 5 - ...or_revised_q3map_shader_comm.html.svn-base | 5 - ...er_possible_height_map_tools.html.svn-base | 5 - .../prop-base/related_links.html.svn-base | 5 - .../suggested_gensurf_settings.html.svn-base | 5 - .../prop-base/table_of_contents.html.svn-base | 5 - .../prop-base/terrain_entity.html.svn-base | 5 - ...ain_mesh_into_terrain_entity.html.svn-base | 5 - ..._related_worldspawn_features.html.svn-base | 5 - .../prop-base/terrain_texture.html.svn-base | 5 - .../prop-base/the_meta_shader.html.svn-base | 5 - .../pages/.svn/text-base/Image3.gif.svn-base | Bin 46899 -> 0 bytes .../pages/.svn/text-base/Image4.gif.svn-base | Bin 24307 -> 0 bytes .../pages/.svn/text-base/Image5.gif.svn-base | Bin 27694 -> 0 bytes .../pages/.svn/text-base/Image6.gif.svn-base | Bin 46899 -> 0 bytes .../.svn/text-base/adding_bots.html.svn-base | 40 - .../adding_buildings_to_terrain.html.svn-base | 85 - .../.svn/text-base/art_tools.html.svn-base | 39 - .../.svn/text-base/blocking_vis.html.svn-base | 101 - .../boxing_in_the_world.html.svn-base | 48 - .../clipping_the_terrain.html.svn-base | 58 - .../creating_the_alphamap.html.svn-base | 194 - .../creating_the_terrain.html.svn-base | 63 - .../entity_keys_and_values.html.svn-base | 102 - .../.svn/text-base/glossary.html.svn-base | 52 - ...height_map_into_terrain_mesh.html.svn-base | 41 - .../.svn/text-base/height_maps.html.svn-base | 174 - .../.svn/text-base/introduction.html.svn-base | 49 - .../.svn/text-base/key_changes.html.svn-base | 64 - .../lighting_the_terrain.html.svn-base | 135 - ...anipulating_the_terrain_mesh.html.svn-base | 42 - .../mapping_the_textures.html.svn-base | 71 - ...or_revised_q3map_shader_comm.html.svn-base | 361 -- ...er_possible_height_map_tools.html.svn-base | 62 - .../text-base/related_links.html.svn-base | 40 - .../suggested_gensurf_settings.html.svn-base | 135 - .../text-base/table_of_contents.html.svn-base | 88 - .../text-base/terrain_entity.html.svn-base | 50 - ...ain_mesh_into_terrain_entity.html.svn-base | 44 - ..._related_worldspawn_features.html.svn-base | 222 - .../text-base/terrain_texture.html.svn-base | 65 - .../text-base/the_meta_shader.html.svn-base | 192 - .../docs/Terrain_Manual/pages/Image3.gif | Bin 46899 -> 0 bytes .../docs/Terrain_Manual/pages/Image4.gif | Bin 24307 -> 0 bytes .../docs/Terrain_Manual/pages/Image5.gif | Bin 27694 -> 0 bytes .../docs/Terrain_Manual/pages/Image6.gif | Bin 46899 -> 0 bytes .../Terrain_Manual/pages/adding_bots.html | 40 - .../pages/adding_buildings_to_terrain.html | 85 - .../docs/Terrain_Manual/pages/art_tools.html | 39 - .../Terrain_Manual/pages/blocking_vis.html | 101 - .../pages/boxing_in_the_world.html | 48 - .../pages/clipping_the_terrain.html | 58 - .../pages/creating_the_alphamap.html | 194 - .../pages/creating_the_terrain.html | 63 - .../pages/entity_keys_and_values.html | 102 - .../docs/Terrain_Manual/pages/glossary.html | 52 - .../pages/height_map_into_terrain_mesh.html | 41 - .../Terrain_Manual/pages/height_maps.html | 174 - .../Terrain_Manual/pages/introduction.html | 49 - .../Terrain_Manual/pages/key_changes.html | 64 - .../pages/lighting_the_terrain.html | 135 - .../pages/manipulating_the_terrain_mesh.html | 42 - .../pages/mapping_the_textures.html | 71 - .../new_or_revised_q3map_shader_comm.html | 361 -- .../other_possible_height_map_tools.html | 62 - .../Terrain_Manual/pages/related_links.html | 40 - .../pages/suggested_gensurf_settings.html | 135 - .../pages/table_of_contents.html | 88 - .../Terrain_Manual/pages/terrain_entity.html | 50 - .../terrain_mesh_into_terrain_entity.html | 44 - .../terrain_related_worldspawn_features.html | 222 - .../Terrain_Manual/pages/terrain_texture.html | 65 - .../Terrain_Manual/pages/the_meta_shader.html | 192 - .../docs/Terrain_Manual/pics/.svn/entries | 130 - .../.svn/prop-base/background.jpg.svn-base | 5 - .../pics/.svn/prop-base/start.gif.svn-base | 5 - .../pics/.svn/prop-base/terrain.jpg.svn-base | 5 - .../.svn/text-base/background.jpg.svn-base | Bin 31101 -> 0 bytes .../pics/.svn/text-base/start.gif.svn-base | Bin 218030 -> 0 bytes .../pics/.svn/text-base/terrain.jpg.svn-base | Bin 25120 -> 0 bytes .../docs/Terrain_Manual/pics/background.jpg | Bin 31101 -> 0 bytes .../docs/Terrain_Manual/pics/start.gif | Bin 218030 -> 0 bytes .../docs/Terrain_Manual/pics/terrain.jpg | Bin 25120 -> 0 bytes .../install/docs/Terrain_Manual/start.html | 30 - .../Q3Pack/install/missionpack/.svn/entries | 108 - .../.svn/prop-base/mapmedia-TA.pk3.svn-base | 5 - .../prop-base/terrademo-README.txt.svn-base | 5 - .../.svn/text-base/mapmedia-TA.pk3.svn-base | Bin 353896 -> 0 bytes .../text-base/terrademo-README.txt.svn-base | 40 - .../install/missionpack/mapmedia-TA.pk3 | Bin 353896 -> 0 bytes .../install/missionpack/maps/.svn/entries | 65 - .../.svn/prop-base/terrademo.map.svn-base | 5 - .../.svn/text-base/terrademo.map.svn-base | 553 -- .../maps/Team Arena Prefabs/.svn/entries | 300 - .../prop-base/TA_banner_blue.pfb.svn-base | 5 - .../.svn/prop-base/TA_banner_red.pfb.svn-base | 5 - .../.svn/prop-base/armorpad_blue.pfb.svn-base | 5 - .../prop-base/armorpad_neutral.pfb.svn-base | 5 - .../.svn/prop-base/armorpad_red.pfb.svn-base | 5 - .../prop-base/weaponpad_blue.pfb.svn-base | 5 - .../prop-base/weaponpad_neutral.pfb.svn-base | 5 - .../.svn/prop-base/weaponpad_red.pfb.svn-base | 5 - .../text-base/TA_banner_blue.pfb.svn-base | 22 - .../.svn/text-base/TA_banner_red.pfb.svn-base | 22 - .../.svn/text-base/armorpad_blue.pfb.svn-base | 12 - .../text-base/armorpad_neutral.pfb.svn-base | 12 - .../.svn/text-base/armorpad_red.pfb.svn-base | 12 - .../text-base/weaponpad_blue.pfb.svn-base | 32 - .../text-base/weaponpad_neutral.pfb.svn-base | 32 - .../.svn/text-base/weaponpad_red.pfb.svn-base | 32 - .../Team Arena Prefabs/TA_banner_blue.pfb | 22 - .../maps/Team Arena Prefabs/TA_banner_red.pfb | 22 - .../maps/Team Arena Prefabs/armorpad_blue.pfb | 12 - .../Team Arena Prefabs/armorpad_neutral.pfb | 12 - .../maps/Team Arena Prefabs/armorpad_red.pfb | 12 - .../Team Arena Prefabs/weaponpad_blue.pfb | 32 - .../Team Arena Prefabs/weaponpad_neutral.pfb | 32 - .../maps/Team Arena Prefabs/weaponpad_red.pfb | 32 - .../install/missionpack/maps/terrademo.map | 553 -- .../install/missionpack/models/.svn/entries | 31 - .../models/mapobjects/.svn/entries | 31 - .../models/mapobjects/spawn/.svn/entries | 96 - .../spawn/.svn/prop-base/spawn.md3.svn-base | 5 - .../spawn/.svn/prop-base/spawn_r.md3.svn-base | 5 - .../spawn/.svn/text-base/spawn.md3.svn-base | Bin 1084 -> 0 bytes .../spawn/.svn/text-base/spawn_r.md3.svn-base | Bin 1084 -> 0 bytes .../models/mapobjects/spawn/spawn.md3 | Bin 1084 -> 0 bytes .../models/mapobjects/spawn/spawn_r.md3 | Bin 1084 -> 0 bytes .../install/missionpack/scripts/.svn/entries | 844 --- .../.svn/prop-base/base_floor.shader.svn-base | 5 - .../prop-base/base_floor2.shader.svn-base | 5 - .../.svn/prop-base/base_light.shader.svn-base | 5 - .../.svn/prop-base/base_wall.shader.svn-base | 5 - .../.svn/prop-base/base_wall2.shader.svn-base | 5 - .../.svn/prop-base/common.shader.svn-base | 5 - .../.svn/prop-base/ctf.shader.svn-base | 5 - .../.svn/prop-base/ctf2.shader.svn-base | 5 - .../prop-base/gothic_trim.shader.svn-base | 5 - .../prop-base/gothic_wall.shader.svn-base | 5 - .../.svn/prop-base/liquids.shader.svn-base | 5 - .../.svn/prop-base/liquids2.shader.svn-base | 5 - .../.svn/prop-base/museum.shader.svn-base | 5 - .../.svn/prop-base/proto2.shader.svn-base | 5 - .../.svn/prop-base/sfx.shader.svn-base | 5 - .../.svn/prop-base/sfx2.shader.svn-base | 5 - .../.svn/prop-base/skies.shader.svn-base | 5 - .../.svn/prop-base/skies2.shader.svn-base | 5 - .../.svn/prop-base/stone2.shader.svn-base | 5 - .../.svn/prop-base/team.shader.svn-base | 5 - .../.svn/prop-base/terrain.shader.svn-base | 5 - .../.svn/prop-base/tim.shader.svn-base | 5 - .../.svn/text-base/base_floor.shader.svn-base | 900 --- .../text-base/base_floor2.shader.svn-base | 29 - .../.svn/text-base/base_light.shader.svn-base | 1683 ------ .../.svn/text-base/base_wall.shader.svn-base | 1406 ----- .../.svn/text-base/base_wall2.shader.svn-base | 860 --- .../.svn/text-base/common.shader.svn-base | 429 -- .../.svn/text-base/ctf.shader.svn-base | 577 -- .../.svn/text-base/ctf2.shader.svn-base | 343 -- .../text-base/default_shaderlist.txt.svn-base | 23 - .../.svn/text-base/entities-ta.def.svn-base | 374 -- .../text-base/gothic_trim.shader.svn-base | 296 - .../text-base/gothic_wall.shader.svn-base | 120 - .../.svn/text-base/liquids.shader.svn-base | 1153 ---- .../.svn/text-base/liquids2.shader.svn-base | 243 - .../.svn/text-base/museum.shader.svn-base | 28 - .../.svn/text-base/proto2.shader.svn-base | 1833 ------- .../.svn/text-base/sfx.shader.svn-base | 3253 ----------- .../.svn/text-base/sfx2.shader.svn-base | 1160 ---- .../.svn/text-base/skies.shader.svn-base | 1073 ---- .../.svn/text-base/skies2.shader.svn-base | 245 - .../.svn/text-base/stone2.shader.svn-base | 10 - .../.svn/text-base/team.shader.svn-base | 140 - .../.svn/text-base/terrain.shader.svn-base | 557 -- .../.svn/text-base/tim.shader.svn-base | 213 - .../missionpack/scripts/base_floor.shader | 900 --- .../missionpack/scripts/base_floor2.shader | 29 - .../missionpack/scripts/base_light.shader | 1683 ------ .../missionpack/scripts/base_wall.shader | 1406 ----- .../missionpack/scripts/base_wall2.shader | 860 --- .../install/missionpack/scripts/common.shader | 429 -- .../install/missionpack/scripts/ctf.shader | 577 -- .../install/missionpack/scripts/ctf2.shader | 343 -- .../scripts/default_shaderlist.txt | 23 - .../missionpack/scripts/entities-ta.def | 374 -- .../missionpack/scripts/gothic_trim.shader | 296 - .../missionpack/scripts/gothic_wall.shader | 120 - .../missionpack/scripts/liquids.shader | 1153 ---- .../missionpack/scripts/liquids2.shader | 243 - .../install/missionpack/scripts/museum.shader | 28 - .../install/missionpack/scripts/proto2.shader | 1833 ------- .../install/missionpack/scripts/sfx.shader | 3253 ----------- .../install/missionpack/scripts/sfx2.shader | 1160 ---- .../install/missionpack/scripts/skies.shader | 1073 ---- .../install/missionpack/scripts/skies2.shader | 245 - .../install/missionpack/scripts/stone2.shader | 10 - .../install/missionpack/scripts/team.shader | 140 - .../missionpack/scripts/terrain.shader | 557 -- .../install/missionpack/scripts/tim.shader | 213 - .../install/missionpack/terrademo-README.txt | 40 - .../install/missionpack/textures/.svn/entries | 31 - .../textures/base_wall2/.svn/entries | 62 - .../prop-base/techfloor_kc_blue.tga.svn-base | 5 - .../text-base/techfloor_kc_blue.tga.svn-base | Bin 42275 -> 0 bytes .../textures/base_wall2/techfloor_kc_blue.tga | Bin 42275 -> 0 bytes install/installs/ReactionPack/.svn/entries | 34 - .../installs/ReactionPack/game/.svn/entries | 96 - .../game/.svn/text-base/game.xlink.svn-base | 10 - .../.svn/text-base/synapse.config.svn-base | 61 - install/installs/ReactionPack/game/game.xlink | 10 - .../installs/ReactionPack/game/synapse.config | 61 - .../ReactionPack/install/.svn/entries | 34 - .../install/Boomstick/.svn/entries | 65 - .../.svn/prop-base/common-tti.pk3.svn-base | 5 - .../.svn/text-base/common-tti.pk3.svn-base | Bin 518829 -> 0 bytes .../install/Boomstick/common-tti.pk3 | Bin 518829 -> 0 bytes .../install/Boomstick/scripts/.svn/entries | 164 - .../.svn/text-base/common.shader.svn-base | 818 --- .../text-base/default_project.proj.svn-base | 63 - .../.svn/text-base/reaction.def.svn-base | 1296 ----- .../.svn/text-base/shaderlist.txt.svn-base | 1 - .../install/Boomstick/scripts/common.shader | 818 --- .../Boomstick/scripts/default_project.proj | 63 - .../install/Boomstick/scripts/reaction.def | 1296 ----- .../install/Boomstick/scripts/shaderlist.txt | 1 - .../ReactionPack/install/docs/.svn/entries | 43 - .../install/docs/Compile_Manual/.svn/entries | 232 - .../.svn/text-base/bspc.txt.svn-base | 565 -- .../.svn/text-base/cfgq3.c.svn-base | 78 - .../.svn/text-base/headskins.txt.svn-base | 75 - .../.svn/text-base/index.html.svn-base | 65 - .../.svn/text-base/modelskins.txt.svn-base | 73 - .../.svn/text-base/q3map.html.svn-base | 410 -- .../install/docs/Compile_Manual/bspc.txt | 565 -- .../install/docs/Compile_Manual/cfgq3.c | 78 - .../install/docs/Compile_Manual/headskins.txt | 75 - .../install/docs/Compile_Manual/index.html | 65 - .../docs/Compile_Manual/modelskins.txt | 73 - .../install/docs/Compile_Manual/q3map.html | 410 -- .../install/docs/Model_Manual/.svn/entries | 65 - .../.svn/text-base/model_manual.htm.svn-base | 217 - .../docs/Model_Manual/model_manual.htm | 217 - .../docs/Model_Manual/styles/.svn/entries | 62 - .../styles/.svn/text-base/q3rad.css.svn-base | 23 - .../docs/Model_Manual/styles/q3rad.css | 23 - .../docs/Q3AShader_Manual/.svn/entries | 89 - .../.svn/text-base/index.htm.svn-base | 76 - .../Q3AShader_Manual/appendix/.svn/entries | 62 - .../.svn/text-base/appA.html.svn-base | 60 - .../docs/Q3AShader_Manual/appendix/appA.html | 60 - .../docs/Q3AShader_Manual/ch01/.svn/entries | 62 - .../ch01/.svn/text-base/pg1_1.htm.svn-base | 126 - .../docs/Q3AShader_Manual/ch01/pg1_1.htm | 126 - .../docs/Q3AShader_Manual/ch02/.svn/entries | 62 - .../ch02/.svn/text-base/pg2_1.htm.svn-base | 222 - .../docs/Q3AShader_Manual/ch02/pg2_1.htm | 222 - .../docs/Q3AShader_Manual/ch03/.svn/entries | 62 - .../ch03/.svn/text-base/pg3_1.htm.svn-base | 197 - .../docs/Q3AShader_Manual/ch03/pg3_1.htm | 197 - .../docs/Q3AShader_Manual/ch04/.svn/entries | 62 - .../ch04/.svn/text-base/pg4_1.htm.svn-base | 64 - .../docs/Q3AShader_Manual/ch04/pg4_1.htm | 64 - .../docs/Q3AShader_Manual/ch05/.svn/entries | 62 - .../ch05/.svn/text-base/pg5_1.htm.svn-base | 483 -- .../docs/Q3AShader_Manual/ch05/pg5_1.htm | 483 -- .../docs/Q3AShader_Manual/ch06/.svn/entries | 62 - .../ch06/.svn/text-base/pg6_1.htm.svn-base | 145 - .../docs/Q3AShader_Manual/ch06/pg6_1.htm | 145 - .../install/docs/Q3AShader_Manual/index.htm | 76 - .../q3ashader_manual_files/.svn/entries | 62 - .../.svn/prop-base/image002.jpg.svn-base | 5 - .../.svn/text-base/image002.jpg.svn-base | Bin 26981 -> 0 bytes .../q3ashader_manual_files/image002.jpg | Bin 26981 -> 0 bytes .../docs/Q3AShader_Manual/styles/.svn/entries | 62 - .../styles/.svn/text-base/q3rad.css.svn-base | 23 - .../docs/Q3AShader_Manual/styles/q3rad.css | 23 - .../docs/Q3Map2Shader_Manual/.svn/entries | 547 -- .../.svn/text-base/apA.htm.svn-base | 58 - .../.svn/text-base/apB.htm.svn-base | 131 - .../.svn/text-base/apC.htm.svn-base | 117 - .../.svn/text-base/apI.htm.svn-base | 260 - .../.svn/text-base/ch0.htm.svn-base | 103 - .../.svn/text-base/ch1.htm.svn-base | 249 - .../.svn/text-base/ch2.htm.svn-base | 246 - .../.svn/text-base/ch3.htm.svn-base | 799 --- .../.svn/text-base/ch4.htm.svn-base | 387 -- .../.svn/text-base/ch5.htm.svn-base | 102 - .../.svn/text-base/ch6.htm.svn-base | 505 -- .../.svn/text-base/ch7.htm.svn-base | 110 - .../.svn/text-base/ch8.htm.svn-base | 40 - .../.svn/text-base/contents.htm.svn-base | 236 - .../.svn/text-base/start.htm.svn-base | 42 - .../install/docs/Q3Map2Shader_Manual/apA.htm | 58 - .../install/docs/Q3Map2Shader_Manual/apB.htm | 131 - .../install/docs/Q3Map2Shader_Manual/apC.htm | 117 - .../install/docs/Q3Map2Shader_Manual/apI.htm | 260 - .../install/docs/Q3Map2Shader_Manual/ch0.htm | 103 - .../install/docs/Q3Map2Shader_Manual/ch1.htm | 249 - .../install/docs/Q3Map2Shader_Manual/ch2.htm | 246 - .../install/docs/Q3Map2Shader_Manual/ch3.htm | 799 --- .../install/docs/Q3Map2Shader_Manual/ch4.htm | 387 -- .../install/docs/Q3Map2Shader_Manual/ch5.htm | 102 - .../install/docs/Q3Map2Shader_Manual/ch6.htm | 505 -- .../install/docs/Q3Map2Shader_Manual/ch7.htm | 110 - .../install/docs/Q3Map2Shader_Manual/ch8.htm | 40 - .../docs/Q3Map2Shader_Manual/contents.htm | 236 - .../Q3Map2Shader_Manual/images/.svn/entries | 62 - .../images/.svn/prop-base/q3logo.jpg.svn-base | 5 - .../images/.svn/text-base/q3logo.jpg.svn-base | Bin 757 -> 0 bytes .../Q3Map2Shader_Manual/images/q3logo.jpg | Bin 757 -> 0 bytes .../Q3Map2Shader_Manual/scripts/.svn/entries | 62 - .../.svn/text-base/styles.css.svn-base | 14 - .../Q3Map2Shader_Manual/scripts/styles.css | 14 - .../docs/Q3Map2Shader_Manual/start.htm | 42 - .../start_files/.svn/entries | 130 - .../.svn/prop-base/title.gif.svn-base | 5 - .../.svn/prop-base/titleImage.jpg.svn-base | 5 - .../.svn/text-base/styles.css.svn-base | 14 - .../.svn/text-base/title.gif.svn-base | Bin 2526 -> 0 bytes .../.svn/text-base/titleImage.jpg.svn-base | Bin 25182 -> 0 bytes .../start_files/styles.css | 14 - .../Q3Map2Shader_Manual/start_files/title.gif | Bin 2526 -> 0 bytes .../start_files/titleImage.jpg | Bin 25182 -> 0 bytes .../install/docs/Terrain_Manual/.svn/entries | 68 - .../.svn/text-base/start.html.svn-base | 30 - .../docs/Terrain_Manual/pages/.svn/entries | 1082 ---- .../pages/.svn/prop-base/Image3.gif.svn-base | 5 - .../pages/.svn/prop-base/Image4.gif.svn-base | 5 - .../pages/.svn/prop-base/Image5.gif.svn-base | 5 - .../pages/.svn/prop-base/Image6.gif.svn-base | 5 - .../pages/.svn/text-base/Image3.gif.svn-base | Bin 46899 -> 0 bytes .../pages/.svn/text-base/Image4.gif.svn-base | Bin 24307 -> 0 bytes .../pages/.svn/text-base/Image5.gif.svn-base | Bin 27694 -> 0 bytes .../pages/.svn/text-base/Image6.gif.svn-base | Bin 46899 -> 0 bytes .../.svn/text-base/adding_bots.html.svn-base | 40 - .../adding_buildings_to_terrain.html.svn-base | 85 - .../.svn/text-base/art_tools.html.svn-base | 39 - .../.svn/text-base/blocking_vis.html.svn-base | 101 - .../boxing_in_the_world.html.svn-base | 48 - .../clipping_the_terrain.html.svn-base | 58 - .../creating_the_alphamap.html.svn-base | 194 - .../creating_the_terrain.html.svn-base | 63 - .../entity_keys_and_values.html.svn-base | 102 - .../.svn/text-base/glossary.html.svn-base | 52 - ...height_map_into_terrain_mesh.html.svn-base | 41 - .../.svn/text-base/height_maps.html.svn-base | 174 - .../.svn/text-base/introduction.html.svn-base | 49 - .../.svn/text-base/key_changes.html.svn-base | 64 - .../lighting_the_terrain.html.svn-base | 135 - ...anipulating_the_terrain_mesh.html.svn-base | 42 - .../mapping_the_textures.html.svn-base | 71 - ...or_revised_q3map_shader_comm.html.svn-base | 361 -- ...er_possible_height_map_tools.html.svn-base | 62 - .../text-base/related_links.html.svn-base | 40 - .../suggested_gensurf_settings.html.svn-base | 135 - .../text-base/table_of_contents.html.svn-base | 88 - .../text-base/terrain_entity.html.svn-base | 50 - ...ain_mesh_into_terrain_entity.html.svn-base | 44 - ..._related_worldspawn_features.html.svn-base | 222 - .../text-base/terrain_texture.html.svn-base | 65 - .../text-base/the_meta_shader.html.svn-base | 192 - .../docs/Terrain_Manual/pages/Image3.gif | Bin 46899 -> 0 bytes .../docs/Terrain_Manual/pages/Image4.gif | Bin 24307 -> 0 bytes .../docs/Terrain_Manual/pages/Image5.gif | Bin 27694 -> 0 bytes .../docs/Terrain_Manual/pages/Image6.gif | Bin 46899 -> 0 bytes .../Terrain_Manual/pages/adding_bots.html | 40 - .../pages/adding_buildings_to_terrain.html | 85 - .../docs/Terrain_Manual/pages/art_tools.html | 39 - .../Terrain_Manual/pages/blocking_vis.html | 101 - .../pages/boxing_in_the_world.html | 48 - .../pages/clipping_the_terrain.html | 58 - .../pages/creating_the_alphamap.html | 194 - .../pages/creating_the_terrain.html | 63 - .../pages/entity_keys_and_values.html | 102 - .../docs/Terrain_Manual/pages/glossary.html | 52 - .../pages/height_map_into_terrain_mesh.html | 41 - .../Terrain_Manual/pages/height_maps.html | 174 - .../Terrain_Manual/pages/introduction.html | 49 - .../Terrain_Manual/pages/key_changes.html | 64 - .../pages/lighting_the_terrain.html | 135 - .../pages/manipulating_the_terrain_mesh.html | 42 - .../pages/mapping_the_textures.html | 71 - .../new_or_revised_q3map_shader_comm.html | 361 -- .../other_possible_height_map_tools.html | 62 - .../Terrain_Manual/pages/related_links.html | 40 - .../pages/suggested_gensurf_settings.html | 135 - .../pages/table_of_contents.html | 88 - .../Terrain_Manual/pages/terrain_entity.html | 50 - .../terrain_mesh_into_terrain_entity.html | 44 - .../terrain_related_worldspawn_features.html | 222 - .../Terrain_Manual/pages/terrain_texture.html | 65 - .../Terrain_Manual/pages/the_meta_shader.html | 192 - .../docs/Terrain_Manual/pics/.svn/entries | 130 - .../.svn/prop-base/background.jpg.svn-base | 5 - .../pics/.svn/prop-base/start.gif.svn-base | 5 - .../pics/.svn/prop-base/terrain.jpg.svn-base | 5 - .../.svn/text-base/background.jpg.svn-base | Bin 31101 -> 0 bytes .../pics/.svn/text-base/start.gif.svn-base | Bin 218030 -> 0 bytes .../pics/.svn/text-base/terrain.jpg.svn-base | Bin 25120 -> 0 bytes .../docs/Terrain_Manual/pics/background.jpg | Bin 31101 -> 0 bytes .../docs/Terrain_Manual/pics/start.gif | Bin 218030 -> 0 bytes .../docs/Terrain_Manual/pics/terrain.jpg | Bin 25120 -> 0 bytes .../install/docs/Terrain_Manual/start.html | 30 - install/installs/UFOAIPack/.svn/entries | 34 - install/installs/UFOAIPack/game/.svn/entries | 96 - .../game/.svn/text-base/game.xlink.svn-base | 8 - .../.svn/text-base/synapse.config.svn-base | 59 - install/installs/UFOAIPack/game/game.xlink | 8 - .../installs/UFOAIPack/game/synapse.config | 59 - .../installs/UFOAIPack/install/.svn/entries | 31 - .../UFOAIPack/install/base/.svn/entries | 34 - .../install/base/scripts/.svn/entries | 198 - .../.svn/prop-base/shaderlist.txt.svn-base | 5 - .../.svn/text-base/common.shader.svn-base | 47 - .../text-base/default_project.proj.svn-base | 98 - .../.svn/text-base/entities.def.svn-base | 164 - .../.svn/text-base/shaderlist.txt.svn-base | 2 - .../.svn/text-base/textures.shader.svn-base | 44 - .../install/base/scripts/common.shader | 47 - .../install/base/scripts/default_project.proj | 98 - .../install/base/scripts/entities.def | 164 - .../install/base/scripts/shaderlist.txt | 2 - .../install/base/scripts/textures.shader | 44 - .../install/base/textures/.svn/entries | 31 - .../base/textures/radiant/.svn/entries | 62 - .../radiant/.svn/prop-base/notex.tga.svn-base | 5 - .../radiant/.svn/text-base/notex.tga.svn-base | Bin 1583 -> 0 bytes .../install/base/textures/radiant/notex.tga | Bin 1583 -> 0 bytes install/installs/UrTPack/.svn/entries | 34 - install/installs/UrTPack/game/.svn/entries | 96 - .../game/.svn/text-base/game.xlink.svn-base | 5 - .../.svn/text-base/synapse.config.svn-base | 56 - install/installs/UrTPack/game/game.xlink | 5 - install/installs/UrTPack/game/synapse.config | 56 - install/installs/UrTPack/install/.svn/entries | 31 - .../UrTPack/install/q3ut4/.svn/entries | 65 - .../.svn/prop-base/common-spog.pk3.svn-base | 5 - .../.svn/text-base/common-spog.pk3.svn-base | Bin 28724 -> 0 bytes .../UrTPack/install/q3ut4/common-spog.pk3 | Bin 28724 -> 0 bytes .../install/q3ut4/scripts/.svn/entries | 198 - .../.svn/text-base/common.shader.svn-base | 321 -- .../text-base/default_project.proj.svn-base | 63 - .../.svn/text-base/entities.def.svn-base | 1747 ------ .../.svn/text-base/shaderlist.txt.svn-base | 150 - .../.svn/text-base/urbanterror.def.svn-base | 437 -- .../install/q3ut4/scripts/common.shader | 321 -- .../q3ut4/scripts/default_project.proj | 63 - .../install/q3ut4/scripts/entities.def | 1747 ------ .../install/q3ut4/scripts/shaderlist.txt | 150 - .../install/q3ut4/scripts/urbanterror.def | 437 -- 830 files changed, 140826 deletions(-) delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/lamps/bot_lamp2.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02b.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/text-base/pipe02.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/text-base/pipe02b.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/pipe02.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/pipe02b.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/prop-base/podium4.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/text-base/podium4.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/podium4.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/prop-base/portal_2.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/text-base/portal_2.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/portal_2.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/prop-base/skel01.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/prop-base/skel02mid.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/prop-base/skel_ribs.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/prop-base/xray.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/prop-base/xraybig.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/text-base/skel01.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/text-base/skel02mid.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/text-base/skel_ribs.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/text-base/xray.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/.svn/text-base/xraybig.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/skel01.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/skel02mid.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/skel_ribs.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/xray.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/xraybig.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/monkeyface.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull_tilt1.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/monkeyface.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/skull.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/skull_tilt1.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/monkeyface.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/skull.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/skull_tilt1.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/prop-base/spotlamp.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/text-base/spotlamp.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/spotlamp.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/statue_major.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storch.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storchx.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/tall_torch.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/storch.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/storchx.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/tall_torch.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/storch.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/storchx.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/tall_torch.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/prop-base/teleporter.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/text-base/teleporter.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/teleporter.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/prop-base/timlamp.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/text-base/timlamp.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/timlamp.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/branch2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree1.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree10.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree2.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree3.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree4.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree5.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree6.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree7.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree8.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree9.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/trunk2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/branch2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree1.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree10.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree2.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree3.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree4.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree5.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree6.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree7.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree8.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree9.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/trunk2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/branch2.tga delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree1.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree10.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree2.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree3.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree4.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree5.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree6.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree7.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree8.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree9.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/trunk2.tga delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/visor_posed.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/femhead.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/lion.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/wallhead02.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/femhead.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/lion.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/wallhead02.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/femhead.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/lion.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/wallhead02.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/models/mapobjects/walllamp3.md3 delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_button.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_door.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_floor.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_light.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_object.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_support.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_trim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/common.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/ctf.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gfx.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_block.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_button.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_door.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_floor.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_light.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_trim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/hell.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/liquids.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/models.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/museum.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/organics.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/sfx.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skies.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skin.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/terrademoQ3.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/test.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_button.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_door.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_floor.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_light.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_object.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_support.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_trim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/common.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/ctf.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_project.proj.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_shaderlist.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/entities.def.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gfx.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_block.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_button.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_door.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_floor.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_light.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_trim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/hell.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/liquids.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/models.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/museum.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/organics.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/sfx.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skies.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skin.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/terrademoQ3.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/test.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_button.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_door.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_floor.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_light.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_object.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_support.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_trim.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/base_wall.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/common.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/ctf.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/default_project.proj delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/default_shaderlist.txt delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/entities.def delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gfx.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_block.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_button.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_door.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_floor.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_light.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_trim.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/gothic_wall.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/hell.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/liquids.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/models.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/museum.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/organics.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/sfx.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/skies.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/skin.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/terrademoQ3.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/scripts/test.shader delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/prop-base/pj_terralpha01.pcx.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/text-base/pj_terralpha01.pcx.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/proto2/pj_terralpha01.pcx delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/prop-base/clouds.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/text-base/clouds.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/skies2/clouds.tga delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/entries delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock10b_2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock12b_2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock9b_2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock10b_2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock12b_2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock9b_2.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/pjrock10b_2.tga delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/pjrock12b_2.tga delete mode 100644 install/installs/Q3Pack/install/baseq3/textures/stone/pjrock9b_2.tga delete mode 100644 install/installs/Q3Pack/install/docs/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/prop-base/bspc.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/prop-base/cfgq3.c.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/prop-base/headskins.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/prop-base/index.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/prop-base/modelskins.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/prop-base/q3map.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/bspc.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/bspc.txt delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/cfgq3.c delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/headskins.txt delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/index.html delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/modelskins.txt delete mode 100644 install/installs/Q3Pack/install/docs/Compile_Manual/q3map.html delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/.svn/prop-base/model_manual.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/model_manual.htm delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/prop-base/q3rad.css.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Model_Manual/styles/q3rad.css delete mode 100644 install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/prop-base/index.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/text-base/index.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/index.html delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/prop-base/index.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/prop-base/appA.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/appA.html delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/prop-base/pg1_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/prop-base/pg2_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/prop-base/pg3_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/prop-base/pg4_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/prop-base/pg5_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/prop-base/pg6_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/index.htm delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/text-base/image002.jpg.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/image002.jpg delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/prop-base/q3rad.css.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/q3rad.css delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/prop-base/start.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/text-base/start.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/design_tips.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/map_converters_checklist.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/preface.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/related_links.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/ta_game_types.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/table_of_contents.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_entity_definitions.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_prefabs.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_powerup_bases.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/using_new_game_entities.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/design_tips.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/map_converters_checklist.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/preface.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/related_links.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/ta_game_types.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/table_of_contents.htm.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_entity_definitions.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_prefabs.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_powerup_bases.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/using_new_game_entities.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/design_tips.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/map_converters_checklist.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/preface.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/related_links.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/ta_game_types.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/table_of_contents.htm delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_entity_definitions.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_prefabs.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_powerup_bases.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/using_new_game_entities.html delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/CRUSADER.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/INTRUDER.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MAINPOP.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MENUBACKgif.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/PAGANs.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/STROGGS.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/THEFALLEN.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/logo.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/CRUSADER.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/INTRUDER.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/MAINPOP.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/MENUBACKgif.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/PAGANs.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/STROGGS.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/THEFALLEN.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/logo.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/CRUSADER.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/INTRUDER.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/MAINPOP.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/MENUBACKgif.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/PAGANs.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/STROGGS.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/THEFALLEN.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/logo.gif delete mode 100644 install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/start.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/prop-base/start.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/text-base/start.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_bots.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_buildings_to_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/art_tools.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/blocking_vis.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/boxing_in_the_world.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/clipping_the_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_alphamap.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/entity_keys_and_values.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/glossary.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_map_into_terrain_mesh.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_maps.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/introduction.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/key_changes.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/lighting_the_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/manipulating_the_terrain_mesh.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/mapping_the_textures.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/new_or_revised_q3map_shader_comm.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/other_possible_height_map_tools.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/related_links.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/suggested_gensurf_settings.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/table_of_contents.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_entity.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_mesh_into_terrain_entity.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_related_worldspawn_features.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_texture.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/the_meta_shader.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/Image3.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/Image4.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/Image5.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/Image6.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/adding_bots.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/adding_buildings_to_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/art_tools.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/blocking_vis.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/boxing_in_the_world.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/clipping_the_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/creating_the_alphamap.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/creating_the_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/entity_keys_and_values.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/glossary.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/height_map_into_terrain_mesh.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/height_maps.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/introduction.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/key_changes.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/lighting_the_terrain.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/manipulating_the_terrain_mesh.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/mapping_the_textures.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/new_or_revised_q3map_shader_comm.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/other_possible_height_map_tools.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/related_links.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/suggested_gensurf_settings.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/table_of_contents.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_entity.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_mesh_into_terrain_entity.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_related_worldspawn_features.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_texture.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/the_meta_shader.html.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/Image3.gif delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/Image4.gif delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/Image5.gif delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/Image6.gif delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/adding_bots.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/adding_buildings_to_terrain.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/art_tools.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/blocking_vis.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/boxing_in_the_world.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/clipping_the_terrain.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/creating_the_alphamap.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/creating_the_terrain.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/entity_keys_and_values.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/glossary.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/height_map_into_terrain_mesh.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/height_maps.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/introduction.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/key_changes.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/lighting_the_terrain.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/manipulating_the_terrain_mesh.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/mapping_the_textures.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/new_or_revised_q3map_shader_comm.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/other_possible_height_map_tools.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/related_links.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/suggested_gensurf_settings.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/table_of_contents.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/terrain_entity.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/terrain_mesh_into_terrain_entity.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/terrain_related_worldspawn_features.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/terrain_texture.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pages/the_meta_shader.html delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/entries delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/prop-base/background.jpg.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/prop-base/start.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/prop-base/terrain.jpg.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/text-base/background.jpg.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/text-base/start.gif.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/.svn/text-base/terrain.jpg.svn-base delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/background.jpg delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/start.gif delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/pics/terrain.jpg delete mode 100644 install/installs/Q3Pack/install/docs/Terrain_Manual/start.html delete mode 100644 install/installs/Q3Pack/install/missionpack/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/.svn/prop-base/mapmedia-TA.pk3.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/.svn/prop-base/terrademo-README.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/.svn/text-base/mapmedia-TA.pk3.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/.svn/text-base/terrademo-README.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/mapmedia-TA.pk3 delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/.svn/prop-base/terrademo.map.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/.svn/text-base/terrademo.map.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_blue.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_red.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_blue.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_neutral.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_red.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_blue.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_neutral.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_red.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_blue.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_red.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_blue.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_neutral.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_red.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_blue.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_neutral.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_red.pfb.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_blue.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_red.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_blue.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_neutral.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_red.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_blue.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_neutral.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_red.pfb delete mode 100644 install/installs/Q3Pack/install/missionpack/maps/terrademo.map delete mode 100644 install/installs/Q3Pack/install/missionpack/models/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn_r.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/text-base/spawn.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/text-base/spawn_r.md3.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/spawn.md3 delete mode 100644 install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/spawn_r.md3 delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_light.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/common.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_trim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/museum.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/proto2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/stone2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/team.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/terrain.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/tim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_light.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/common.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/default_shaderlist.txt.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/entities-ta.def.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_trim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_wall.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/museum.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/proto2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/stone2.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/team.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/terrain.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/tim.shader.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/base_floor.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/base_floor2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/base_light.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/base_wall.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/base_wall2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/common.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/ctf.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/ctf2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/default_shaderlist.txt delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/entities-ta.def delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/gothic_trim.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/gothic_wall.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/liquids.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/liquids2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/museum.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/proto2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/sfx.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/sfx2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/skies.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/skies2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/stone2.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/team.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/terrain.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/scripts/tim.shader delete mode 100644 install/installs/Q3Pack/install/missionpack/terrademo-README.txt delete mode 100644 install/installs/Q3Pack/install/missionpack/textures/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/entries delete mode 100644 install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/prop-base/techfloor_kc_blue.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/text-base/techfloor_kc_blue.tga.svn-base delete mode 100644 install/installs/Q3Pack/install/missionpack/textures/base_wall2/techfloor_kc_blue.tga delete mode 100644 install/installs/ReactionPack/.svn/entries delete mode 100644 install/installs/ReactionPack/game/.svn/entries delete mode 100644 install/installs/ReactionPack/game/.svn/text-base/game.xlink.svn-base delete mode 100644 install/installs/ReactionPack/game/.svn/text-base/synapse.config.svn-base delete mode 100644 install/installs/ReactionPack/game/game.xlink delete mode 100644 install/installs/ReactionPack/game/synapse.config delete mode 100644 install/installs/ReactionPack/install/.svn/entries delete mode 100644 install/installs/ReactionPack/install/Boomstick/.svn/entries delete mode 100644 install/installs/ReactionPack/install/Boomstick/.svn/prop-base/common-tti.pk3.svn-base delete mode 100644 install/installs/ReactionPack/install/Boomstick/.svn/text-base/common-tti.pk3.svn-base delete mode 100644 install/installs/ReactionPack/install/Boomstick/common-tti.pk3 delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/.svn/entries delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/common.shader.svn-base delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/default_project.proj.svn-base delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/reaction.def.svn-base delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/shaderlist.txt.svn-base delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/common.shader delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/default_project.proj delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/reaction.def delete mode 100644 install/installs/ReactionPack/install/Boomstick/scripts/shaderlist.txt delete mode 100644 install/installs/ReactionPack/install/docs/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/bspc.txt.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/bspc.txt delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/cfgq3.c delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/headskins.txt delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/index.html delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/modelskins.txt delete mode 100644 install/installs/ReactionPack/install/docs/Compile_Manual/q3map.html delete mode 100644 install/installs/ReactionPack/install/docs/Model_Manual/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Model_Manual/model_manual.htm delete mode 100644 install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Model_Manual/styles/q3rad.css delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/appA.html delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/index.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/text-base/image002.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/image002.jpg delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/q3rad.css delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apA.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apB.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apC.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apI.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch0.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch1.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch2.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch3.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch4.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch5.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch6.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch7.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch8.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/contents.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/start.htm.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apA.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apB.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apC.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apI.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch0.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch1.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch2.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch3.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch4.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch5.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch6.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch7.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch8.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/contents.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/prop-base/q3logo.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/text-base/q3logo.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/q3logo.jpg delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/scripts/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/scripts/.svn/text-base/styles.css.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/scripts/styles.css delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start.htm delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/title.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/titleImage.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/styles.css.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/title.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/titleImage.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/styles.css delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/title.gif delete mode 100644 install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/titleImage.jpg delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/.svn/text-base/start.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/Image3.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/Image4.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/Image5.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/Image6.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/adding_bots.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/adding_buildings_to_terrain.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/art_tools.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/blocking_vis.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/boxing_in_the_world.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/clipping_the_terrain.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/creating_the_alphamap.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/creating_the_terrain.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/entity_keys_and_values.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/glossary.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/height_map_into_terrain_mesh.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/height_maps.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/introduction.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/key_changes.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/lighting_the_terrain.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/manipulating_the_terrain_mesh.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/mapping_the_textures.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/new_or_revised_q3map_shader_comm.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/other_possible_height_map_tools.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/related_links.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/suggested_gensurf_settings.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/table_of_contents.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_entity.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_mesh_into_terrain_entity.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_related_worldspawn_features.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/terrain_texture.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/the_meta_shader.html.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/Image3.gif delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/Image4.gif delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/Image5.gif delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/Image6.gif delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/adding_bots.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/adding_buildings_to_terrain.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/art_tools.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/blocking_vis.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/boxing_in_the_world.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/clipping_the_terrain.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/creating_the_alphamap.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/creating_the_terrain.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/entity_keys_and_values.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/glossary.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/height_map_into_terrain_mesh.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/height_maps.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/introduction.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/key_changes.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/lighting_the_terrain.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/manipulating_the_terrain_mesh.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/mapping_the_textures.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/new_or_revised_q3map_shader_comm.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/other_possible_height_map_tools.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/related_links.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/suggested_gensurf_settings.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/table_of_contents.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/terrain_entity.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/terrain_mesh_into_terrain_entity.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/terrain_related_worldspawn_features.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/terrain_texture.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pages/the_meta_shader.html delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/entries delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/prop-base/background.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/prop-base/start.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/prop-base/terrain.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/text-base/background.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/text-base/start.gif.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/.svn/text-base/terrain.jpg.svn-base delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/background.jpg delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/start.gif delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/pics/terrain.jpg delete mode 100644 install/installs/ReactionPack/install/docs/Terrain_Manual/start.html delete mode 100644 install/installs/UFOAIPack/.svn/entries delete mode 100644 install/installs/UFOAIPack/game/.svn/entries delete mode 100644 install/installs/UFOAIPack/game/.svn/text-base/game.xlink.svn-base delete mode 100644 install/installs/UFOAIPack/game/.svn/text-base/synapse.config.svn-base delete mode 100644 install/installs/UFOAIPack/game/game.xlink delete mode 100644 install/installs/UFOAIPack/game/synapse.config delete mode 100644 install/installs/UFOAIPack/install/.svn/entries delete mode 100644 install/installs/UFOAIPack/install/base/.svn/entries delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/entries delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/prop-base/shaderlist.txt.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/text-base/common.shader.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/text-base/default_project.proj.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/text-base/entities.def.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/text-base/shaderlist.txt.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/scripts/.svn/text-base/textures.shader.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/scripts/common.shader delete mode 100644 install/installs/UFOAIPack/install/base/scripts/default_project.proj delete mode 100644 install/installs/UFOAIPack/install/base/scripts/entities.def delete mode 100644 install/installs/UFOAIPack/install/base/scripts/shaderlist.txt delete mode 100644 install/installs/UFOAIPack/install/base/scripts/textures.shader delete mode 100644 install/installs/UFOAIPack/install/base/textures/.svn/entries delete mode 100644 install/installs/UFOAIPack/install/base/textures/radiant/.svn/entries delete mode 100644 install/installs/UFOAIPack/install/base/textures/radiant/.svn/prop-base/notex.tga.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/textures/radiant/.svn/text-base/notex.tga.svn-base delete mode 100644 install/installs/UFOAIPack/install/base/textures/radiant/notex.tga delete mode 100644 install/installs/UrTPack/.svn/entries delete mode 100644 install/installs/UrTPack/game/.svn/entries delete mode 100644 install/installs/UrTPack/game/.svn/text-base/game.xlink.svn-base delete mode 100644 install/installs/UrTPack/game/.svn/text-base/synapse.config.svn-base delete mode 100644 install/installs/UrTPack/game/game.xlink delete mode 100644 install/installs/UrTPack/game/synapse.config delete mode 100644 install/installs/UrTPack/install/.svn/entries delete mode 100644 install/installs/UrTPack/install/q3ut4/.svn/entries delete mode 100644 install/installs/UrTPack/install/q3ut4/.svn/prop-base/common-spog.pk3.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/.svn/text-base/common-spog.pk3.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/common-spog.pk3 delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/.svn/entries delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/common.shader.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/default_project.proj.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/entities.def.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/shaderlist.txt.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/urbanterror.def.svn-base delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/common.shader delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/default_project.proj delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/entities.def delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/shaderlist.txt delete mode 100644 install/installs/UrTPack/install/q3ut4/scripts/urbanterror.def diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/lamps/bot_lamp2.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/lamps/bot_lamp2.md3 deleted file mode 100644 index 8fc84566f7795b94d6e8b51ddeb7a7a8bdd09421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4548 zcmbVP3sh9s6@ByO$M6$H6f=Ne6a_3lKcF*nucAglMG=~!Wi)<0mmyR0uEwGrfD}-D2BSwZ66X+WXvl&bfEq zyYHMg@#Cit>mdk2enFNguOuQrqp%=zfoX1ONkm>oeql*OWRCIWL)-dMxv`Z#U zDkaWiyhFmNo=i;lIU%gKoDfnxPYPp3#0lHl;)F?8<0N+nEqNR_Zb)`H2?b><=(7yuz@L0efth3qm8?^cnTD??ZTLP6i8k>h%*gJCq?z z0`y=>g9l209wcdSumos#29W_5-#0Yds>22=7~qTN2Y&$CL(*VR20g=Y244x#{Ui~55eyiQkZg=WM@u#s&k2Bzk^s$PFo!&sHIwMl zx?nohCy%~)uZnc~me6-<2GEFwJIQ_@E%lrhVR+c$N(1_YlIn3<`a^`yuskGbaXUDzAt_o%zU&oBjt0Fb9o{as>11!8H?%e)4A09Q4yUl zQ2Oij)99<7OX=bwEgh*h7``cT<{!LmB?;Iy&k+2rGjC$1Gw*q$Gv6;#o%#3gJVbnh z$I;H3C=&T`47HxCBOeY;rezt?#OxnSM?5&_n6KI49RF_8TJn{4C~X*cnuMH-q|vvX z_T-sPdv;vC!7Ftp_3@79Zc`SMsA_nC?gG3#mCRNAZe zQNw!=RuJ(1of>*Zy_9&?uP3wraMYkq_odg;7nA$5M5>e3l2vOJbks+a9Q%3Yz$M}~ zu#%KtbNauw?t~-0*YabId;_|iaXSi+IPz2n)j8s0Rvvf!u6*khd4pzp(K5@Iowe?| z4f)nH)&|X#>SY##SnD2>ORTHypY;f;NU|BMXL|(f<#wWNwS7rXmkJ*D*xu6Ks{Gkj z9`9=p>WFt6b)b9PxelLyY!6bkDwAL3`I2l6a+W`-JFjzn?&oW7RcrkGh)0sdrC_lR78JjJwvT!ez|%4UrM~S^3;~r^HL*1X*Tsg=&p8TJh6c*W|N1 z3KgkmD^!(oW^1p>_bUq(Ge^FuT5kWleWq|v@xClf$cg&TygVOYm*-ufSZnXsvxmTW zkNluwnP*x=i~WDyR5Wd^#~IJG#l*E>WRW~b#iBcN964*>gD#w$|T_p zb)EHPm&99h6q`D7)$}sYvq%1#h2{Npx%#MB;1Si2$Mbw|s0BHT)ABrX6mKb6d?;VH zyN{!yz4#?#p#W+kdg(rfJcc=}VQyoMv5_^#XMfK;yOE>MpvUqa1dYA}8;qU=K%Ko(3pb_=DhXN z24fyPhygJGH2eT)%%_K(BimluOWvB5te<^JPxi;O6Y%?Aeq_M-AXO9bC@Q0~vcl+! zKARl&Uk@K77smV2p{DsXeoG^nSbT_#@oplA-N^J&|nMsnd# zhsgCSO{9E58Ljc2u7@8Oek(su(_9GIf5(k(zCD$eT$w@mJoo4E+@JgLxJ*sGEU-PxZ<$MJXS^l;_A-}NG2Svc zBvWJV3T)4~e@qKZBzHhz`&&%`h{j`Zw+dowp zTUz7=9i!c%{f66CwFj#b3R;DY9p3KVGdr;FQeEL{XG9vx@!|l=~z?FSiyiAr;-4T8i#s@{h-zX(5QL%kAa$n{~P?j2kMxr z!bFcQHPYJo-xx;jNu#|lWKp3&ruQprGQ`cfrMp*RqUq{1x@upOp*kpyhWVQ4$*kY$ zvd%Xc?)dN0nfl!@ygO`wUi`C({^~s=T{*VVP`oOQ`p?Rui0A%1p6BE7Mhk6w`+kDW zXvul-;6Z||N$~1OQiA)p%2f%rWSi~Lp!>1M_xzatcv^Gp@e`t3Tc9%b`1dw_TZ}69 zc$4shlKG29OLY$x&-jR%P@qu^n4ez#3`kr)& d_Sa}u$k%D2{R_K(sbu2;N37Z2#!iF(KLM{@7hwPZ diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/entries deleted file mode 100644 index 6fabc9d8..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/entries +++ /dev/null @@ -1,96 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/pipe -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pipe02.md3 -file - - - - -2012-04-01T16:52:03.645658Z -50e7d8a93a39e1fbdb0843dcea4a8a91 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3052 - -pipe02b.md3 -file - - - - -2012-04-01T16:52:03.648659Z -a3e71d852f7a1cb8d32cf0ecd1764127 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3052 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02b.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02b.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/prop-base/pipe02b.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/text-base/pipe02.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/.svn/text-base/pipe02.md3.svn-base deleted file mode 100644 index 1d7c09a614ae01ee97780d09089cc9714f9d6d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3052 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 N^qZ&Ft1;Cpe*@*r7MlP7 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/pipe02.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/pipe/pipe02.md3 deleted file mode 100644 index 1d7c09a614ae01ee97780d09089cc9714f9d6d2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3052 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 N^qZ&Ft1;Cpe*@*r7MlP7 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/entries deleted file mode 100644 index 38493c4e..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/podium -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -podium4.md3 -file - - - - -2012-04-01T16:52:03.415645Z -d3cc143655edec16bb17ce9612c4d669 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -20452 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/prop-base/podium4.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/prop-base/podium4.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/prop-base/podium4.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/text-base/podium4.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/.svn/text-base/podium4.md3.svn-base deleted file mode 100644 index 6f7c580a66dd3cf02c189c7952b12b8e785af793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20452 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 EUtQkaPXGV_ diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/podium4.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/podium/podium4.md3 deleted file mode 100644 index 6f7c580a66dd3cf02c189c7952b12b8e785af793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20452 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 EUtQkaPXGV_ diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/entries deleted file mode 100644 index 74c9d8dd..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/portal_2 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -portal_2.md3 -file - - - - -2012-04-01T16:52:00.579483Z -ab162edd13ba40fdbd3cdd69c3ac88f6 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11180 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/prop-base/portal_2.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/prop-base/portal_2.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/prop-base/portal_2.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/text-base/portal_2.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/portal_2/.svn/text-base/portal_2.md3.svn-base deleted file mode 100644 index fd60db44fa8bdfb681c81837084fbb3e0bcfc0a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11180 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 RdJ~k|-N~f?3xnF({td;mqAvgd diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/skel01.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skel/skel01.md3 deleted file mode 100644 index 635bf1806a4fcf8a26f070b6d35a603549945d47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13420 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 RdJ~k|-N~f?3xnF({td;mqAvgd diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/entries deleted file mode 100644 index f5699bba..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/skull -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -monkeyface.md3 -file - - - - -2012-04-01T16:52:02.620600Z -5c2f4589a7e90b6ce67a2b6602deca30 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3500 - -skull_tilt1.md3 -file - - - - -2012-04-01T16:52:02.623600Z -b8f1e78887f879f43d0f7d2af546f1e3 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2452 - -skull.md3 -file - - - - -2012-04-01T16:52:02.635601Z -6ebb97e0b80ed5ddaa773c96c1480de0 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2452 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/monkeyface.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/monkeyface.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/monkeyface.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull_tilt1.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull_tilt1.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/prop-base/skull_tilt1.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/monkeyface.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/monkeyface.md3.svn-base deleted file mode 100644 index e04a6b1fdaca39da5d79b51fff7cdaf1a32de92e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3500 zcmbW4dr(!!9mjX~ToF*?D}cx|JOm2@*9U^!yFWmpqG<3D1DL2FC?W)rt5yYVYoe2h z8q@LBv=-ZhiH%GfQy(#!_-d0jL1QW{SRWyY6^+DV0yfp$bGl!=2C$v{8e?_aQA1=~K_M?cCjEz0PGN)xR7L&!=wr8ieI>_x+*ej z=A*;^dp%d>n6=zfJuhYKw++7sAwOuA(rTsGm5^h(4`aT5jP337UF%R@R$Q9oSyZfU zdO*Q4jaC||1)i)KK1BPSTo$7BNzoS3f2U>R++I)>W?jDAqykxIA+#hwSw337$NiJIZa6#^qa)Z@G%hQK(NU^v=9;3Um( zdp^j=o-Y`A|Mt+QGU#v?bxwa%Mqf;)ggb|2N}dnhd-9BYe^xQAt8me#iv{G}7(*Ka z)2Vo5ETMkIW8oAKwwU(5`@D2?HluKirTu{(kaH?+w;&kdj? zixaEn?)DMqr0eZL(!cezbowT`qqZEBe>6v`HjI8bceotX=yn&Rk9H+&+#xqju5dNJ zoh5%4Tk7t(cSFr*IwfsowC}^mY0!E`*|MCvz1?#EC%JT>ut)BFVkjNk!RY*zOzPcr zM>elZqjyq{$cf7?$mXX$kUOpUG^OyGjGnxPcI5@gSso9?_kUhSbmvjnpZ_5n&aB2G zLgH8~ZAc3w%xA(OgD{`JH~ACh^V> zH_Y|>&uiuOmRvdXM2I|IzuR57;cMABJxyM($e>@0igI;q@}*lhGu??TMfA;YoN{q> zmxKpR>XPe|>!{N2-|kBjW~#FiAj_lbsCnHa`NGv1l)pJhrn>4WJkXzR6_wCdXAoVf zDWbE%x8=GE^>pZ~5%kW*|^psp2D|SbDbUh4*LU>(Y^T3_zOHW_F1un^;nZbPq3eOf6T_ew_1#4i}|SV zFVs^LV+8#(j|Esy8qpoc)LVPG5#rOuPFlxB=#_t|w`_nB7u3WS@Y5nG$d4DXogyJ} zHydbuEF!M=79UwbMnLNae3mswMEos>_n4bS(6ysx4_oQzGwhQ2tmSY7UMw)TTG@_} zSE|el<}*h0sXFV|>}w;i&uH&u7H>E`c6+Jwhj%V3lNOsW)hpT!(+Yb zEo7w!eq|oDdMwYPMr);Y)>>J!&D`ZJ;c0K#ZufKDyH)Jt<7eCb*|B~9HEX|m4|!(# zSda5@tZKI1-#N=A4zc{Pw&OcJr)**I@=DJ<=e(4W>iPd(g{!+DUnPgq>q?bM?MjiV zV!qOY|F7UXedKq4sH^@k4&Kuc*igc^2FCsWZ@`9q^)%znwdyylUj26N$+&#b;X(}e zZ+$rfLJXn)e;IWn_+{^15q>Y5N%Nu+e(yBzv<`>}qfPw_*lt7^cKijKA(lysYSM-4ySg0%8tlqctzno*uwYlEy&;R$F_i*0l z|J?iD?1edV#xll273)fZm9s;EjTLLlONy&1XIHMT4hDz*CWY3`k$diTakW8vP}WD3 z_Kw8Oi>KMvo2MCT?qV#_$F}~S&YHS>xTCMQ>>giy>86U%WM5w9jG@(R*<-kyHI<=2 zFqrJooByYyFDOH*K&nj&J)W~O);o-`Ya{+^4tf8YL)B9Ox&LmLLvE1AvEfn)Qt?tV zmB5IF8a_)2oGA66)V)$sN??3GsNs=H;3UQHWF>HlVz^TYjJctPKcoasQw*Q01fHiD zK1m5YRWW>u5_o~)$6~lEuVDyMNAhSyee4k>t&IQIyP{T0?IM((5 z<6g897|%crM<19a=8V}vV6S3$iWK_8Y;^x%WJGSv1lb|*eC3!S7y|p0!0Ae0d@@KH)&JQp>5q!fCHmBOD! zfZ^yJYuJPQsL?ylg23n*49EG%I!y}MATaX4rz=Jc7OI9LC(c3tdbVI(vtlx7x@UxV z;mwmGHn-4wc+Wf<_2uFDdfinSO}^{JA|z6cV*%bg2ELNNX>nf$utmUT;12G>z#!=4BNDxj#VJ2b#p_MbC*Hz9v!7 z?4UneJmROtuZXYKbcpj)S9vqUVye6GB&EhSiQ#KvwLUo7qn=Ss48__-?&eiF`A zTM$FX_m&9Vx6ZNdQ#Un~C)~~vv{Lvc$E2JM++h11QEbrS>^H}-Z9(gtDc9RPd?WwX zJ|nr$y1+{ff8i3-v|h6&3D8% zWXZShEYEDHmM_5x`z+RO7_7(0Vi|_p+GkI`tovxOcA14dZ|4(+Wj$-;FrP7Kx^2t) zOupM{<;!o};%CiahX2PtYn&NvPdio2SDF0=T_|E@W;xIOSnwrgwBi3;uV3Y_T9??e zpCfs!<>h%jrM%f%%X0fWSd_Jrt?rKCo2>z>qO*qEW8WUdLf_*^dYxJ+KnTDgC8pEby3u0_TC zE#7aW&lJ3a%RHVUwx7#XU1u`af(X8Y4Okl% N>d#Tv`u?5g{tYJe=3)Q< diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/skull_tilt1.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/.svn/text-base/skull_tilt1.md3.svn-base deleted file mode 100644 index d3160004b62d326dbb9f9ddb3d1f1d5feabe9717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2452 zcmb7^d2Ccw6voeeLj?-h7Dl?zVhdDSI^FC@EoJWQRF*c{uoPirNg3Nhg&7J=0l^NE zSX7n(QS=|wRwzmdTV#!)LQ!0zBsN%qVA2NEutkkpMMVDEs%l>#+wWam`{IJ?%DO;yVBs>Kujg+?-Alf@+$?`pp3MCB#ndD1 zJ{dPFZS9MPGumiP?>3@+Cuq%ZH&Is+6$Pa~ShbZ0-D&fd*7}p(<>S+P_Df}r;c6-Z zey`7$llvh3e-Y|}ilsbK2c%Hr_q}8#j}YDJ^G|aqe=vuvy7^w2|6eOYCdlKcx0FLF zO=^@97;PbjXDER)rA9~%l!{RTwNG~6~mL1z=IXTbv?is4Qv)Q8#V`oZWCePbr*9Re3B#|*&`*sTOEQUc>0 zAco_vep3CV&4&n0cbD;2AMJxLTav93wJ6DHHosonq>- z)#4X#jQFCsOtfBh3cj*NY(I3A7aXb)*DoF6dVkN}m&Jgty)LTt%6zXVeZPtKo3NIz zb2o9%t_acHlFP4_Y~mLxj_~$jvs}fzMAYAzEAkVXc<+ihdA6OW95BRJ>8rS}Z-Lm^ z%J`?H4$<`)7eR5D-wjQ36*WhRQ?KWX8&f>uuh~hWajZim&9sZI%xH0OeUNXw=n+TT ziJvW-Dn8oQ!1rueDEy~Qmt8EExjsJb&!9-G|BySXSBjr%azxtddeO8l$0h6KdJd0f z8X~^ea?v^I3@>X4iugdjxHZ@#w*8tUP*3VIL*V><6InPu9$|>>PqkuX=CKy>C{whWpC0 zSoq%Qjo*g*TIq=s`?pqeUAOL|>boTI>H^38K03Rv(_J>Y>OyFPwbd58uC;ro^_r30 zaHD&pxton`eAbL)8Mfh*_F5;|8JbaiHuQ&e*{WOAW+j_*$a_M^`uWMwRa!!x7rqJI zG@Ueeht6y6?yw@*lwd90v)-je%hIj2);(Lq`SY~P%C-#+Wmqj{qb=!cUB?=F&up<) zwcMsd)uedcjgDGGK*RZ93~?ouk6eLZit#PB~Yvu>>oMCUq_~8Y~BSZf}xb&SuK6 z7Rw)r0Ie#YW#*b^4aZ^a59dF8pFUsLr}K3kDVCppv<(`)nCcm$B_*@z1B$kd8j{RH zRAQtjEM>)HGe$%fnMc?$<|^$^HEgnxp0}IUvo@CR_?$MgX5yK8Kh7wlwJdAkbF71+ km@_5cm`d%G9^c7+r&20O^%+~JjLKv6d(^Rh{_wef15&{FzyJUM diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/monkeyface.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/monkeyface.md3 deleted file mode 100644 index e04a6b1fdaca39da5d79b51fff7cdaf1a32de92e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3500 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 N>d#Tv`u?5g{tYJe=3)Q< diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/skull_tilt1.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/skull/skull_tilt1.md3 deleted file mode 100644 index d3160004b62d326dbb9f9ddb3d1f1d5feabe9717..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2452 zcmb7^d2Ccw6voeeLj?-h7Dl?zVhdDSI^FC@EoJWQRF*c{uoPirNg3Nhg&7J=0l^NE zSX7n(QS=|wRwzmdTV#!)LQ!0zBsN%qVA2NEutkkpMMVDEs%l>#+wWam`{IJ?%DO;yVBs>Kujg+?-Alf@+$?`pp3MCB#ndD1 zJ{dPFZS9MPGumiP?>3@+Cuq%ZH&Is+6$Pa~ShbZ0-D&fd*7}p(<>S+P_Df}r;c6-Z zey`7$llvh3e-Y|}ilsbK2c%Hr_q}8#j}YDJ^G|aqe=vuvy7^w2|6eOYCdlKcx0FLF zO=^@97;PbjXDER)rA9~%l!{RTwNG~6~mL1z=IXTbv?is4Qv)Q8#V`oZWCePbr*9Re3B#|*&`*sTOEQUc>0 zAco_vep3CV&4&n0cbD;2AMJxLTav93wJ6DHHosonq>- z)#4X#jQFCsOtfBh3cj*NY(I3A7aXb)*DoF6dVkN}m&Jgty)LTt%6zXVeZPtKo3NIz zb2o9%t_acHlFP4_Y~mLxj_~$jvs}fzMAYAzEAkVXc<+ihdA6OW95BRJ>8rS}Z-Lm^ z%J`?H4$<`)7eR5D-wjQ36*WhRQ?KWX8&f>uuh~hWajZim&9sZI%xH0OeUNXw=n+TT ziJvW-Dn8oQ!1rueDEy~Qmt8EExjsJb&!9-G|BySXSBjr%azxtddeO8l$0h6KdJd0f z8X~^ea?v^I3@>X4iugdjxHZ@#w*8tUP*3VIL*V><6InPu9$|>>PqkuX=CKy>C{whWpC0 zSoq%Qjo*g*TIq=s`?pqeUAOL|>boTI>H^38K03Rv(_J>Y>OyFPwbd58uC;ro^_r30 zaHD&pxton`eAbL)8Mfh*_F5;|8JbaiHuQ&e*{WOAW+j_*$a_M^`uWMwRa!!x7rqJI zG@Ueeht6y6?yw@*lwd90v)-je%hIj2);(Lq`SY~P%C-#+Wmqj{qb=!cUB?=F&up<) zwcMsd)uedcjgDGGK*RZ93~?ouk6eLZit#PB~Yvu>>oMCUq_~8Y~BSZf}xb&SuK6 z7Rw)r0Ie#YW#*b^4aZ^a59dF8pFUsLr}K3kDVCppv<(`)nCcm$B_*@z1B$kd8j{RH zRAQtjEM>)HGe$%fnMc?$<|^$^HEgnxp0}IUvo@CR_?$MgX5yK8Kh7wlwJdAkbF71+ km@_5cm`d%G9^c7+r&20O^%+~JjLKv6d(^Rh{_wef15&{FzyJUM diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/entries deleted file mode 100644 index 6a1e550f..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/spotlamp -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -spotlamp.md3 -file - - - - -2012-04-01T16:52:04.419703Z -f091f34e03f6095decfe5e864ad7b561 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -6348 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/prop-base/spotlamp.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/prop-base/spotlamp.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/prop-base/spotlamp.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/text-base/spotlamp.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/.svn/text-base/spotlamp.md3.svn-base deleted file mode 100644 index 37dc2a734c556db60bbfdcd579df4913a7ddf09a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6348 zcmeI0dt8)N8pr3x%rG-tMD9v~sDL0>DQ%edXj}v@fgptbd~R8VKEHJC9TQ$!7z3I2Kg7IB z%2f~g3g_?MSoqc<(RVwKicX4-iB7u2i$?BxROG*Q4A#&wt8r3%aMAp-QvWd-i6OSq z6zJoa1r=p^kL?N|bNYSbP*I!@t?qveg{mMRn1i=5 z4A21rz<|*J-Z;j1V80|B^f-plEs+Bt=b%>rDnJQ9m#v^z0~!EsLFCLqk8|q^^aI>D z==%fifCu2oLGJ|&0DJ)-4tkuvfq)J$$8sobMx1NlH6kjp_o zoqN;*?onrO&=+!#Iui&5!hqo%^x;4R5D7$a(Bl(64=4lXaL~`?9(4r={Yn7m2UjM} z5rTdM@D#8JSja(N$vtWn2mNATDNqe8;h?YK9(5V_sLMI%pXMI*Prw>r74QrP{c7$} zpXDBPEeHKN?on%jSl}VxVGjC{z$oAmK+8cN2P6QG0`VO5iNFM4959}Pej+dnC<2N( z=w}0Zpagi5gT54~0OkYb9P|r-8=jS{WBu2{Kk9o0RE)=I1~H87_1=1Fx4Eue7`%C@ z*6D0DtKIyifH5k@SpMmmcjC6kEn!m&7c*3h^N*EVV^qxBzVEoT9V*5_jgDG84=SAp zmCldnrR(^}JcaAq;)IQRB|2l&1>Fa=d#thV;eQIxu0N-{9ehR@bMqJ7$IfR2hh1*E zvKtOMzt7L>-XAT|H3T^8{6@Yiyt^V!==ay}t$A%(UeaoJtb+y4drja};yf7@7E!bGe3UlI^By`x$P+B&0) z+m9Q~GtKXBJ@5BEzyBY>LrkyHlACUjIroIXub4rWCPyuX_}xC# zG&$-c&c_X3TXLG;)kO6kHsv&LQ%p5HFV1NmAU|Y!8p=y#g`F$=W@%-r1vhfdv$Rht zD!UJgA$D5RQ48hS(mG>`W!mg=DKiZcB^3NDsp@{tlD;NWGX3_KqK7tZl_uXFFLBvV zaf>X-v|T(Tf%0!Tgm;HYJTFpSsXW2hCie2BypPpI-LYnWb%HvrYpL1qJmpb4CzV6z zj^6NN6x-)fJzf7(rC;Y@)A+siG4(q}xwY$@F>f8|8_EOSFB%I9slRl;=Nx+tl|7Tj z*w<4z^*>a7&d_BV5o90JebW6=T(4Xpg86J}Qn|}vKAY+sTBR_LO>a82NMK%@PDoVZ zp?zcLGwBlZaB*zI2}zq}Xy3#QOuAAsTpW>iOIB?Tk@y|H8?TatNIW7a|C-!jSs{M# zU$j0?XY+S%uy*cb>{HV zlt=BTo~|>;v0Z)El$uHX^KhJ}TGvxFkMu>ysmiRL;+=a`u8P^FNk^&Q)Gw;1e(X^P zD}2n6r>MWwFWi46%q+@Zps&b_`X4r7V)#}}J z_#VM}d=FthzGvVo-nz~*HMaEtYJJ`_HMVt?sj;nxOpR^*WNK{d5Y)QPGBy9X4x<0? zO2GL?#siT6t%DozfF#31+XxTvulyfVFf+gOH&y_g6b^h2@%h2$6`vtge2zkZ;Q;MH zF~)x2eklnU3ncS61r(oEe0Hhd=<&c94_wdaQSo}TmT+Amw2sizdcx-%pLbeYv<@)F zwSc+UN8B6Z{uV(`|4pFc{}Wh_ivLaEy2dq+>z&p=z6YkogG^T6(_zE`6@@>7XAH}-~nO68PC<&<|y z>D}pRO5C?|;OAE_TuR*c*?_+5P8YN5l zZ6iOok4xb@8TxaQbe;OBs=?y!-4$5u5_ogK6*tX(Wr1bDm59I^x3Zf)p`^=I8qG>` zFxwSS?0%*_I+5BfckEPuV@k=Oa>@(wk9W_xo|5s(gU)V+SM&8jjtf=Gdh+#eI8Iki z>?z(-;@|D;eRam(4^*Ct98=n1imCo~fV0!SYiWn)1x7oCwvTGHkKb2^E1b;{-;n+r Dn>9JF diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/spotlamp.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/spotlamp/spotlamp.md3 deleted file mode 100644 index 37dc2a734c556db60bbfdcd579df4913a7ddf09a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6348 zcmeI0dt8)N8pr3x%rG-tMD9v~sDL0>DQ%edXj}v@fgptbd~R8VKEHJC9TQ$!7z3I2Kg7IB z%2f~g3g_?MSoqc<(RVwKicX4-iB7u2i$?BxROG*Q4A#&wt8r3%aMAp-QvWd-i6OSq z6zJoa1r=p^kL?N|bNYSbP*I!@t?qveg{mMRn1i=5 z4A21rz<|*J-Z;j1V80|B^f-plEs+Bt=b%>rDnJQ9m#v^z0~!EsLFCLqk8|q^^aI>D z==%fifCu2oLGJ|&0DJ)-4tkuvfq)J$$8sobMx1NlH6kjp_o zoqN;*?onrO&=+!#Iui&5!hqo%^x;4R5D7$a(Bl(64=4lXaL~`?9(4r={Yn7m2UjM} z5rTdM@D#8JSja(N$vtWn2mNATDNqe8;h?YK9(5V_sLMI%pXMI*Prw>r74QrP{c7$} zpXDBPEeHKN?on%jSl}VxVGjC{z$oAmK+8cN2P6QG0`VO5iNFM4959}Pej+dnC<2N( z=w}0Zpagi5gT54~0OkYb9P|r-8=jS{WBu2{Kk9o0RE)=I1~H87_1=1Fx4Eue7`%C@ z*6D0DtKIyifH5k@SpMmmcjC6kEn!m&7c*3h^N*EVV^qxBzVEoT9V*5_jgDG84=SAp zmCldnrR(^}JcaAq;)IQRB|2l&1>Fa=d#thV;eQIxu0N-{9ehR@bMqJ7$IfR2hh1*E zvKtOMzt7L>-XAT|H3T^8{6@Yiyt^V!==ay}t$A%(UeaoJtb+y4drja};yf7@7E!bGe3UlI^By`x$P+B&0) z+m9Q~GtKXBJ@5BEzyBY>LrkyHlACUjIroIXub4rWCPyuX_}xC# zG&$-c&c_X3TXLG;)kO6kHsv&LQ%p5HFV1NmAU|Y!8p=y#g`F$=W@%-r1vhfdv$Rht zD!UJgA$D5RQ48hS(mG>`W!mg=DKiZcB^3NDsp@{tlD;NWGX3_KqK7tZl_uXFFLBvV zaf>X-v|T(Tf%0!Tgm;HYJTFpSsXW2hCie2BypPpI-LYnWb%HvrYpL1qJmpb4CzV6z zj^6NN6x-)fJzf7(rC;Y@)A+siG4(q}xwY$@F>f8|8_EOSFB%I9slRl;=Nx+tl|7Tj z*w<4z^*>a7&d_BV5o90JebW6=T(4Xpg86J}Qn|}vKAY+sTBR_LO>a82NMK%@PDoVZ zp?zcLGwBlZaB*zI2}zq}Xy3#QOuAAsTpW>iOIB?Tk@y|H8?TatNIW7a|C-!jSs{M# zU$j0?XY+S%uy*cb>{HV zlt=BTo~|>;v0Z)El$uHX^KhJ}TGvxFkMu>ysmiRL;+=a`u8P^FNk^&Q)Gw;1e(X^P zD}2n6r>MWwFWi46%q+@Zps&b_`X4r7V)#}}J z_#VM}d=FthzGvVo-nz~*HMaEtYJJ`_HMVt?sj;nxOpR^*WNK{d5Y)QPGBy9X4x<0? zO2GL?#siT6t%DozfF#31+XxTvulyfVFf+gOH&y_g6b^h2@%h2$6`vtge2zkZ;Q;MH zF~)x2eklnU3ncS61r(oEe0Hhd=<&c94_wdaQSo}TmT+Amw2sizdcx-%pLbeYv<@)F zwSc+UN8B6Z{uV(`|4pFc{}Wh_ivLaEy2dq+>z&p=z6YkogG^T6(_zE`6@@>7XAH}-~nO68PC<&<|y z>D}pRO5C?|;OAE_TuR*c*?_+5P8YN5l zZ6iOok4xb@8TxaQbe;OBs=?y!-4$5u5_ogK6*tX(Wr1bDm59I^x3Zf)p`^=I8qG>` zFxwSS?0%*_I+5BfckEPuV@k=Oa>@(wk9W_xo|5s(gU)V+SM&8jjtf=Gdh+#eI8Iki z>?z(-;@|D;eRam(4^*Ct98=n1imCo~fV0!SYiWn)1x7oCwvTGHkKb2^E1b;{-;n+r Dn>9JF diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/statue_major.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/statue_major.md3 deleted file mode 100644 index 112af2c2679d6a8ea2b99250d9c6db93dd071dfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27892 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 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/entries deleted file mode 100644 index efd8a75a..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/storch -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -storch.md3 -file - - - - -2012-04-01T16:52:04.795724Z -bfa84b2c1b3ed943e0b8d439acc7138f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1660 - -storchx.md3 -file - - - - -2012-04-01T16:52:04.799724Z -320b93298191d3ffcd0b922b70a004fa -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2012 - -tall_torch.md3 -file - - - - -2012-04-01T16:52:04.803725Z -ab4a251dadd95851f8588bc15750d241 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3332 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storch.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storch.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storch.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storchx.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storchx.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/storchx.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/tall_torch.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/tall_torch.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/prop-base/tall_torch.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/storch.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/storch.md3.svn-base deleted file mode 100644 index 100ffb35382c34814de3bd3173dd1f3c03090aee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcmb7^ZA_JA7{~ADJ`bHEQWOQgfOv#>J04yRG;9p+OAvLmA|`JlI#UkhP&_1*6W?sz+i%zJy081? zdYt2xjs)7=rPW)rmgXzC$E9xae9J5UzZtv* zWHb59M+|y&IfQ68h4?<|zu!aWv-^0*y+;g}aStE62pj`B#(E7ro_UaYfWdbF@Q1V` z#xXcUGWLLDFJgjrZ^4YQhAtATH1Fz;lL13167 zMMvDAf#Y){M|5l8$=VUuY2b<45tDR|`TI3+>_?8spK1{}?n915lMOWe zoQGZ=+(Y$^zLNPSFMWLd6*aT-7!4HksPVRPnw#>LT&kZ?PsMjr{Fw^@Z~#i=#s-!{?$M733)@C4XLU(R?*CF@v6VpQXi)IOMI>vYMq`}L07-p zy8TauJ`!4Qs=Gyke6lut$x->G5U0X^*$}d<-0(AI*;vTf5jiM#e&drDCD$M0{~FRS zcUOgs3kJ_`T(E9PURNA#c&#pR_!GNspA&6d7hR&I$gbP@9cw|RIM)}A%Gbgf&e+L2 zmbH-L%pM<=T{6R&oPXSW-AHrhterL^R;JS}j+;j#Y0gcvAsGmNYnIL}gb{(j9)U~yywzj!i>JCcjNNKcZh-G&jip;7~8-$*h zTr*+vlh4?(lFu3YlUU7{xr{xX%a$kdkkLm$_jF#ov&GeD$t~TPur^yLdR*%!&8Dxr z7e#*{S&%OHK!6_22F99=jQ!;IpYI{1?b%wfjNGGF~$}Ne2Cxy!Tkb! z2LS(|^w3}d&d}ehus)Bym55>a~~4ub>SZtgb6kZHc8+U z1(?TYL=51?Yx8;NRtdbn^iYcgK2mzWc84``>IX7 zpo;t>;?_{@>fU0Ha$XVhi7VO_RjkVnP?EF`*7T{K*Ut%1rdbDbX6bo7zNxLKQKl_f zqv|W(I8)HnO-);gG9{0XsvT;aDKh=I@l_?pl(K2oxT?jQEbO?keKp3k{klhWd4DkG zU%9h>ZNEqDR>geMopaaD(d+8ZF`-s!MM~Kp6Y5*6NZA`&UZlTU-0A)T)b*3Vn*@jF`g6X!>ZEP)O$0^!;n9}I5JMO18hkqEdEK`TG1ehQ nen|UhCDTODB>MXqpol4KErt$h`39lq68)F3?i^w$V$A;w43eB5 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/tall_torch.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/.svn/text-base/tall_torch.md3.svn-base deleted file mode 100644 index 50f688159aeed10ec8a526590d500cf5e316c15f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3332 zcmbW33s98T7018t1C53xq%0bcpd0D~MZ^d30qnUf6%2@qP*6c5u3&b@cf-hE_G&zlskX_~LH!tGt2BA2WFs}MnWt@HA zN47l=nz^6$MbxPn<8O)wMOtb_(h8fB{&csUKhcQnuag1F8KZSu#l^!wtG#Nuv7<{bI z!!Z(g^!7;xpYUV}{A31q1$V|FfzM>nBfK`%LwLN#LI!<9uK_&zJD(|H=1JfeFbkPt zrbGh2h$&^BW)@4}%a{tLoN-Cu-3-3R9%derz&|KGbf5%&fb`HX3H&3{LsdRJ*2Fya zKn&n9z9jB(;rwlcfIhqR-}G&7vWVGf(%6;;%KO7(0{TJYWomdfn>ynk5=Yxc(+hJ< zT0J+LI>aryv1}c;)Gks#nL{_vFA<0@U#bhlzj&9uK`MNk`9Ypvs64$G5$a^y^dUwDiU%`evhz{uFhN!cL5&ty`|s--q^dAn)T7p^m86 zf_1as3+5$64Wfm1C)I=n^V_fNb>Mu3XZJg>@2U;g1N(hYR3~n&UL|hsD-qG58_x`0 z`f@-gY$*W5Gs#EKzb=5v`AEa)DG}?Y)Yp#pU0z`GK^c=J3XU^)EgRWtd?QKTJQ8s zXm|DI_IBNRV)y%cvAMp()^gQA9Cy3aL>$TEJN5M)(ZjA92Mx{}R%#-)`CPq-#YFvaaIYcl1A7ckkwZwO#A4FYB6@qw3YZD(~KW@I0peN2|4~=nFNk z>P&rw*4kBIQ|D3VR`q`UqM6d2^O;|ts;6|%j8^-rbE$jqH^a~#@z41FJ}fXS>qK{+ z<}|)C=lW;2_w9qaN2<;X-y0tHs&&*oQmX1yp1Mc)|LgIV`P}0t@~_SR|L9x_@H-aD9AUgnD`V%0Ql{En zQ@x_f&42$rHA#U@CoF%a!u`Mg^70Bley|UJYy-fDF#Q?q+fM@j0P{lYcE^=#9x*)r zIRQm{ytXP8G4yMfH=wPjHwN+$BM&j=!_AYur+dWHn~lK+6tNf>jG^JC(_r1Z*=R%F KUc^wu82=79#;wBu diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/storch.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/storch.md3 deleted file mode 100644 index 100ffb35382c34814de3bd3173dd1f3c03090aee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1660 zcmb7^ZA_JA7{~ADJ`bHEQWOQgfOv#>J04yRG;9p+OAvLmA|`JlI#UkhP&_1*6W?sz+i%zJy081? zdYt2xjs)7=rPW)rmgXzC$E9xae9J5UzZtv* zWHb59M+|y&IfQ68h4?<|zu!aWv-^0*y+;g}aStE62pj`B#(E7ro_UaYfWdbF@Q1V` z#xXcUGWLLDFJgjrZ^4YQhAtATH1Fz;lL13167 zMMvDAf#Y){M|5l8$=VUuY2b<45tDR|`TI3+>_?8spK1{}?n915lMOWe zoQGZ=+(Y$^zLNPSFMWLd6*aT-7!4HksPVRPnw#>LT&kZ?PsMjr{Fw^@Z~#i=#s-!{?$M733)@C4XLU(R?*CF@v6VpQXi)IOMI>vYMq`}L07-p zy8TauJ`!4Qs=Gyke6lut$x->G5U0X^*$}d<-0(AI*;vTf5jiM#e&drDCD$M0{~FRS zcUOgs3kJ_`T(E9PURNA#c&#pR_!GNspA&6d7hR&I$gbP@9cw|RIM)}A%Gbgf&e+L2 zmbH-L%pM<=T{6R&oPXSW-AHrhterL^R;JS}j+;j#Y0gcvAsGmNYnIL}gb{(j9)U~yywzj!i>JCcjNNKcZh-G&jip;7~8-$*h zTr*+vlh4?(lFu3YlUU7{xr{xX%a$kdkkLm$_jF#ov&GeD$t~TPur^yLdR*%!&8Dxr z7e#*{S&%OHK!6_22F99=jQ!;IpYI{1?b%wfjNGGF~$}Ne2Cxy!Tkb! z2LS(|^w3}d&d}ehus)Bym55>a~~4ub>SZtgb6kZHc8+U z1(?TYL=51?Yx8;NRtdbn^iYcgK2mzWc84``>IX7 zpo;t>;?_{@>fU0Ha$XVhi7VO_RjkVnP?EF`*7T{K*Ut%1rdbDbX6bo7zNxLKQKl_f zqv|W(I8)HnO-);gG9{0XsvT;aDKh=I@l_?pl(K2oxT?jQEbO?keKp3k{klhWd4DkG zU%9h>ZNEqDR>geMopaaD(d+8ZF`-s!MM~Kp6Y5*6NZA`&UZlTU-0A)T)b*3Vn*@jF`g6X!>ZEP)O$0^!;n9}I5JMO18hkqEdEK`TG1ehQ nen|UhCDTODB>MXqpol4KErt$h`39lq68)F3?i^w$V$A;w43eB5 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/tall_torch.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/storch/tall_torch.md3 deleted file mode 100644 index 50f688159aeed10ec8a526590d500cf5e316c15f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3332 zcmbW33s98T7018t1C53xq%0bcpd0D~MZ^d30qnUf6%2@qP*6c5u3&b@cf-hE_G&zlskX_~LH!tGt2BA2WFs}MnWt@HA zN47l=nz^6$MbxPn<8O)wMOtb_(h8fB{&csUKhcQnuag1F8KZSu#l^!wtG#Nuv7<{bI z!!Z(g^!7;xpYUV}{A31q1$V|FfzM>nBfK`%LwLN#LI!<9uK_&zJD(|H=1JfeFbkPt zrbGh2h$&^BW)@4}%a{tLoN-Cu-3-3R9%derz&|KGbf5%&fb`HX3H&3{LsdRJ*2Fya zKn&n9z9jB(;rwlcfIhqR-}G&7vWVGf(%6;;%KO7(0{TJYWomdfn>ynk5=Yxc(+hJ< zT0J+LI>aryv1}c;)Gks#nL{_vFA<0@U#bhlzj&9uK`MNk`9Ypvs64$G5$a^y^dUwDiU%`evhz{uFhN!cL5&ty`|s--q^dAn)T7p^m86 zf_1as3+5$64Wfm1C)I=n^V_fNb>Mu3XZJg>@2U;g1N(hYR3~n&UL|hsD-qG58_x`0 z`f@-gY$*W5Gs#EKzb=5v`AEa)DG}?Y)Yp#pU0z`GK^c=J3XU^)EgRWtd?QKTJQ8s zXm|DI_IBNRV)y%cvAMp()^gQA9Cy3aL>$TEJN5M)(ZjA92Mx{}R%#-)`CPq-#YFvaaIYcl1A7ckkwZwO#A4FYB6@qw3YZD(~KW@I0peN2|4~=nFNk z>P&rw*4kBIQ|D3VR`q`UqM6d2^O;|ts;6|%j8^-rbE$jqH^a~#@z41FJ}fXS>qK{+ z<}|)C=lW;2_w9qaN2<;X-y0tHs&&*oQmX1yp1Mc)|LgIV`P}0t@~_SR|L9x_@H-aD9AUgnD`V%0Ql{En zQ@x_f&42$rHA#U@CoF%a!u`Mg^70Bley|UJYy-fDF#Q?q+fM@j0P{lYcE^=#9x*)r zIRQm{ytXP8G4yMfH=wPjHwN+$BM&j=!_AYur+dWHn~lK+6tNf>jG^JC(_r1Z*=R%F KUc^wu82=79#;wBu diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/entries deleted file mode 100644 index 89e4fe15..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/teleporter -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -teleporter.md3 -file - - - - -2012-04-01T16:52:01.334526Z -4cfcb220431ff5d0863361c52b9735cd -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -6500 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/prop-base/teleporter.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/prop-base/teleporter.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/prop-base/teleporter.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/text-base/teleporter.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/.svn/text-base/teleporter.md3.svn-base deleted file mode 100644 index b7f4cbd9adab3575496ab61767b98c0be7a89d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6500 zcmb`L3shBA8pqFl@wgyQA1Rnu92F)+6jBrK*(jumsr1mwG9L&Q1A0&iXlrv|o|N8&G@7u3) z&i9?Y?;V<*n--~QT5-vw{G#bSizk$pOf1aLE1TZ4EWaqfv}9UY{d=wykQHrp@ze^Bx_fRcs!ltqRSunj4h&dXKEcf@vkio`Lt= zo@7Rb$~ERs$)7g)iPTS|UV(=N)VT9cua9mc~YhSwM$dK)13q z9ARmgya4DZi}6{UthySdm) z`*&U`*-85Z-;AA>?Zxicue*+2P|!`smic1vy!YlA{#W1JWbh{+zh(Gy!jBqkJ95lwQ0XkwyWITl6P6g*N3z`(k$)uHG%jh$<=!Uxy{mFU1K-m zhZj1G_~Fl8M!$x2PGj7r&t1lR;p?2nd|@?qV|`s0I*j#nCI1ILR#q}DwYPlQH-3>@ zAXj35M3n^jKaZr8i8D_o(=YuFT(1VmQSyV_09WP;ITLRI-OQmJ!_lAbKe^sZ{KcHs$?x115N$R`DH${D8 zZniYsNrLyq`-!uF<~?A;yo>GOoAblW z4>LdWEUh@B?-|s?TbF)N|KLGQly_XFpKA4fMyJMP;jTNTUmaI|)vnc-W5wHBCyHmj zyGyKpDP8o)3K#Wv=z?c(VB^Ri{i@y7@$% z4~-QsY?vrs9S|-)${aLeg{4ndE z`LbQG?%t!SbnXLY{rDSv_g|cx5dD0uV?#sF*yIywEpXzC@pk-iO_{#?zOM=$Rh92Q z+PKnDG&`nwUc>L)gO=pl4Evmludvf@SgmSz&PBVd#$&dTr(THe{;Ay$r&cLe^ECM8 zhdh!HJteKBS7d5zVqvWVPHrD>#~&A*>3b@6OX#TFnC3B&Meae<^Zl3HuR4mJ&b1jF zvBFM#SgLBL;^$nn&k8?gTO9MJ=2{O4e|6urj-eOIWBS?} ze8f{q)q2xf41c+LZt8wxnmre`hYp{mp3f2gt(Q8u3LZY^!apKNJumfKmTJTcZ&Bl@ zb*TB(ylQ;aUX829i?@H_it}_ksh*d5ezlJ0L+8fy4K(bWn~h!=jQ#!>UD^{9E(_-Z`WPmRO*t%>A^EgMCb&@5_x=0sh{-y}C9{LM2k5goS@-wH}%$uBQGjE4f zoB5hmZRTTowV8+gtIhmLsW$T|rJDRHoiOQt`|&29qk5m6rS?du{7IEByq|oTnexS5 zH-F?Ju9Y)#xF0X|?s%_&_sDzZyvn;Le*v2F66Y$;Q|dx<2IhkK9S6|l92!;^ntS7d z$zR6gLetM9K|6rvyoQG919NUxXKOTPWo(%98$ff0L&K^)n)4qv%y_iD`uxqhXbY?J zAWWZY)e&_?Jy8pQGpnjKG_{2dGsa8Dz2c+bIr{h+XY{j;V+8y|rx+doqJfzrGVI*} zCkvkxz6E7^&5RM^FCV?AV}JeBN-uW&?636irneDyu76gqjBM7^_Vn_?>8s85Q`VUA zUdzpRaD&-@;QZD4!`o|g`McD6=lUFd>(hVL;m(~Jz4+PB2-lv!2)CXa5`@1)r)3cj`CMA!>2Jd~+uAtdO zHHTA68<`q(ul*ipVqt2~F5f-Qm`y*$pKNhzeO4>K8tsqm8YuWF}_I4}EEyS2U-Wxwi>Alh~K zsvwwn;#X7L^iR~({T2i>Zek~6|Cu&n%Jk9+)AFa}J;Cn7Z-!rcQ73@JS@N-#IkjI`z#{-#L7I`>v9~2@R`#k#=e>G;wU0Hi6C^ zV`qt0lr#=X(;-q2dkY>CeKxX`xm^v1T{x|Q}@&mNEUHmvkxXS_2oV8k~s z@EQKf<=QKaTRdHkB-s9S;VnU_Wh;sFF!^-Fh$=ah*z#gUO3}AYWD9qg5TKx=^)2uAyP_ zQRO6SWgM0Jst%;f7#pT;uB;t2{TPdjzSyjTIjBojr_95c^kGe^Ht9MVg)|KY&w$7*j@ZJ3LG5%1UP z;%^Tb_0;8XsH~+o^%+yc)^E2H#Pc_18s|pph<4eFlLhTUn>^H=*LlJm zqtVye_}{@cd=K^KRpYC1sayL0zs4UQ*m>6OoVaj||C{f>4$WGi1?ubTLhfDX4t(*$ zF=t`HXpMOBg?$=!URZ^VcG*q4HQEjR=K}5XZ=Z|o_U{DSrc-;O66z27;r6d(2Jol8 zF+R{S!s(niQwyAHb13BA2gmp?#2gRJdcqyJ9QKW~aK&hic(Hq*hMjl5!bUthc(+FT ip@|DLTbm`3-MS>$dc=GfmC){>A8tP`Gk`z!{{H|1kL~9G diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/teleporter.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/teleporter/teleporter.md3 deleted file mode 100644 index b7f4cbd9adab3575496ab61767b98c0be7a89d6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6500 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 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/entries deleted file mode 100644 index 67059cd1..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/timlamp -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -timlamp.md3 -file - - - - -2012-04-01T16:52:05.185746Z -f0dfd0643af91634ed9435a091988583 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2260 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/prop-base/timlamp.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/prop-base/timlamp.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/prop-base/timlamp.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/text-base/timlamp.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/.svn/text-base/timlamp.md3.svn-base deleted file mode 100644 index d8373047129d63f943820096165dd8a7f8838db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2260 zcmd5-TS$~a6rNr0Zq{nr#j^F9+hyJL!a}v~xSEooC{}c#Tr^j)c3E?ONeWqno+=9J zsUm76G6~?>Y zvAM^rqR&Ix!@71>3U`fObv0C4+q;8-Y|p;xE&56=)#&L_f?h|-x30gfQ6JzSlo1{f zP-8X~d^?sn{#W{-bhJ>+awC%#*AdnWKyMHlyiou;OK9*W0cZ=Mh>%0b6M)VZ8k{cx zT_7}gGr>-<61ECJ7YYsDCIG!%Xt0fdeR2ue0?^2d9C##%0iY3s=WQU!0c{ipm|Cj= znp&)BFkT4&+C+d~96=7~wZZ_e5r9q;8k`{jy_$gabOLMuI#p<}Spa&4&|rKA0CWlg z>nnwgIcU@g4New-#u;FPlLVj>1fbCu02;l(9>^vAp^*b;K;5z)Xw)pfD|ud;(t5I# zqq8^3}j2pH;>5~ig#Pw-+$>}~`5N{|4OMkg8=f97aasS%?(2g>m z>U>lVZZ&^&+p6mL+@-5-rDooJ>%PqeuAVgWANjqX-^`IbNIk+DNvSvBNQgrb2B#mo;d1E^Fj5 z3yjfv|1j~ODI*M~_3)57pbna>5u2K)(s~3o%}3OwxzA)r$$NqFX-s*dO-A_VOpO~g z|0&qyKlOoL6!K?#h$+9uG|!rhsLyH{H){1+VAH%s?kn@jePn$yk365uBhSZJ)nevi zM^x5}c+^+3$XMp$$?!vZ>4|B7y*}haJ&cVSD2~fIkPrQl{xTl>lD}8>NwUm?`=Oog zD&JqaAMhW-_bKm(G19YyL^_A!>s5NXeIa|Oz1Oa7S{&+Z^A-L4R-go8AU6i3`}*I+ zw|%NS*`4*=$1guQz=tN^l!IYo9yVk3s*7>*oHhncI_q}53LAY8w|2XunB4ww$h!X5 VKFm@B>D;_QWsJ_PF>K7k{sKOcqeuV% diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/timlamp.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/timlamp/timlamp.md3 deleted file mode 100644 index d8373047129d63f943820096165dd8a7f8838db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2260 zcmd5-TS$~a6rNr0Zq{nr#j^F9+hyJL!a}v~xSEooC{}c#Tr^j)c3E?ONeWqno+=9J zsUm76G6~?>Y zvAM^rqR&Ix!@71>3U`fObv0C4+q;8-Y|p;xE&56=)#&L_f?h|-x30gfQ6JzSlo1{f zP-8X~d^?sn{#W{-bhJ>+awC%#*AdnWKyMHlyiou;OK9*W0cZ=Mh>%0b6M)VZ8k{cx zT_7}gGr>-<61ECJ7YYsDCIG!%Xt0fdeR2ue0?^2d9C##%0iY3s=WQU!0c{ipm|Cj= znp&)BFkT4&+C+d~96=7~wZZ_e5r9q;8k`{jy_$gabOLMuI#p<}Spa&4&|rKA0CWlg z>nnwgIcU@g4New-#u;FPlLVj>1fbCu02;l(9>^vAp^*b;K;5z)Xw)pfD|ud;(t5I# zqq8^3}j2pH;>5~ig#Pw-+$>}~`5N{|4OMkg8=f97aasS%?(2g>m z>U>lVZZ&^&+p6mL+@-5-rDooJ>%PqeuAVgWANjqX-^`IbNIk+DNvSvBNQgrb2B#mo;d1E^Fj5 z3yjfv|1j~ODI*M~_3)57pbna>5u2K)(s~3o%}3OwxzA)r$$NqFX-s*dO-A_VOpO~g z|0&qyKlOoL6!K?#h$+9uG|!rhsLyH{H){1+VAH%s?kn@jePn$yk365uBhSZJ)nevi zM^x5}c+^+3$XMp$$?!vZ>4|B7y*}haJ&cVSD2~fIkPrQl{xTl>lD}8>NwUm?`=Oog zD&JqaAMhW-_bKm(G19YyL^_A!>s5NXeIa|Oz1Oa7S{&+Z^A-L4R-go8AU6i3`}*I+ zw|%NS*`4*=$1guQz=tN^l!IYo9yVk3s*7>*oHhncI_q}53LAY8w|2XunB4ww$h!X5 VKFm@B>D;_QWsJ_PF>K7k{sKOcqeuV% diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/entries deleted file mode 100644 index da26d9f1..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/entries +++ /dev/null @@ -1,436 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/tree2 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -trunk2.tga -file - - - - -2012-04-01T16:51:59.993449Z -17864e38bbd6faf982eb179a42f42c64 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -49196 - -tree1.md3 -file - - - - -2012-04-01T16:51:59.997450Z -87766d3370e9375f8565246c1887e097 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2284 - -tree10.md3 -file - - - - -2012-04-01T16:51:59.999450Z -44aa061f1f17f019304663a3bb04a883 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3868 - -tree2.md3 -file - - - - -2012-04-01T16:52:00.026451Z -93fe60e197be8b0efae50a9ea253a853 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1748 - -tree3.md3 -file - - - - -2012-04-01T16:52:00.039452Z -4597f5cfe8aaea8b1a6332bd9804c86c -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2808 - -tree4.md3 -file - - - - -2012-04-01T16:52:00.042452Z -5ae8e4856a60f663d61f9bdfd44a26d2 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2808 - -tree5.md3 -file - - - - -2012-04-01T16:52:00.047453Z -34b21e0190953f94fabb7b8b09c41ce2 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2808 - -tree6.md3 -file - - - - -2012-04-01T16:52:00.049453Z -06b6500d42cc8f1266b4be4e4cfa1eb0 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2808 - -tree7.md3 -file - - - - -2012-04-01T16:52:00.051453Z -8b3cf09fdf896cfada33be4f89d9d397 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2808 - -branch2.tga -file - - - - -2012-04-01T16:52:00.056453Z -5c21b6df305cc6dc07564edb14ebcc31 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -196652 - -tree8.md3 -file - - - - -2012-04-01T16:52:00.059453Z -82d987d5bb1a314a632b9ac7abad9b29 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2808 - -tree9.md3 -file - - - - -2012-04-01T16:52:00.061453Z -adecb39fa0a4cd6154293c19c587eb30 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3868 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/branch2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/branch2.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/branch2.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree1.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree1.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree1.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree10.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree10.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree10.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree2.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree2.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree2.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree3.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree3.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree3.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree4.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree4.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree4.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree5.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree5.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree5.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree6.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree6.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree6.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree7.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree7.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree7.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree8.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree8.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree8.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree9.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree9.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/tree9.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/trunk2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/trunk2.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/prop-base/trunk2.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/branch2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/branch2.tga.svn-base deleted file mode 100644 index 3c76b55bc576e670765467e58ba3aec3dfc1d54a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196652 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])_h%0 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 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree1.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree1.md3.svn-base deleted file mode 100644 index eba900f10a885a28ca5ffc6b628bd6f5d933ae1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2284 zcmeIydu&rx90%~z`)Y67xqCNzFM@^9&2FQ@*dT1On|s0>m~MuljK#noJl4?xd%!l0 z#CDEEQVE?fLIS8v$5=20Bfdh^IS>JtF*0j-M3kTobOQKh$3b=MvHSL{=}m% zG7s4YGS8Ek3A19^SPsTwG=`_VkJKE-V_J-C7eQ)0mVy~DV-l&;Fadi4BflX*Y7v`& zNtm2O>Zh=$v5DBEBvPBP3~VwsC5hC}V42ud%#uXvEX;a^hUZTP)Y)x?aM`Cvm2Fpk zQbFS;#WumD^tPlcE3N{V^;JxjkNAt{?zpbbQNC4=-I%PPscxvhkg0SzX-M_5aLIQ? zko1%Lw>RfPagGaKu5iO6egMC=8{zpX7xZ^L3x~$E01h z&)Tl4X+3VZZ+=icQ``!-EoR_bodMMrEQIRF&q`BxNVV^6QA8qu5=!_`959oiq$p4mjd`3JzBmOUE zL<6{lMzxaVy@VWlT`yTqM!OOunP_@wwn4Pkfj%_EiPlY;kJUSSvZRxv*x5R$8NF`S>{Q^WeT0SrfPxS(NbUNIGef8I(S}+9;MS z1m{pHFP8nul*Rpeu}n_HA}I#ZzAT)HnhjE*8hBBkRto$Qsf>$y>H6|SI=et`y2)rJ zaUFWuR|$5Zlbq~(B{9s5>ttUQIE*^Al6M|=LbKK&d8?R)STiqqZB#q+D$Zq0y=FQu Y`y}u#noG;(v3Ox@fR)XTr~#4u8_p7N82|tP diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree10.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree10.md3.svn-base deleted file mode 100644 index e576df0d922ad8f35c1e6733c8fead782d64fae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3868 zcmeH~ZBSI#8OP7E?<{DQ$^v_L@7-nhUY6xWl!%ebJ(Wl!M1mRuGj=A{0768-0NOO& z-Jqj`(=0`(8LUpR3d{(oB{4HZrD~|Pl#(hLUlY^Tmlz9O8!Ion%iTRaXS2*CopF+; zU-H2-^V|P3=RAAP*|Yon&)wV=s~67&094hKmTj&}t=h1q=H*RgCG~Zw^|fVXi-NCd z3sb5}7vrR_X_C;mETo&Uc7~wHB7OOT;PXX;0Q@Ek^exK<4QsOj$ayA|9+YEwYoAHj zSX)!YEPo-#`o%~t-s8))8>&kx%IX%TeL4Goi^={7WZEc9ABOC4FYde<27noF{Bh^- z#rlg<>dQCacYJ*#>)wF*U0t}1cFbNnrMv5V4MIf;PqsAyPst_a&$3$W@n1~Q0 zo{#w+W)6lNFM-7KFfo{Dj5Y*`V=)va4xdEwRJD6*yr3D1fJOBjD8{I~;9Ef)}SB3BNk6 zfS>6(KKUI7ywj!QJ6e6hW!tC1{4NJPoHHeSkm-cYFUa7|cDG=g%7DWC8+@(zqLBOR z27bNuIX?VaM<$t6BQE)WVcr36ReG51(4DHf}9Z_^+T`ErvQ!-4C0qsR^&1dv; z#R1<-F^qnrXDC3Fctm~e*6Pat#~|?Un$#_U)Do%1S&yJ_C-I30T-1;Ah~WC)&?07Q z9xoAWr2fgeq!A_FL294)1n~s|iHR?em?+sF@dM%y#19Bx_6p(|#1E9~-xGGWN8)-) zf~0nw`hCHgX^f7A+Y08uS9NY7Q1%o4VM!8%PdQ<&w*bOo4g5%F59Y7Rh=sDEIWT&Y zTj-OP^XU!!%ep(Aurd0i(77cN#@4k72ktrGjVy20R9j?lzWfC){$o@I&^%$;K;Y*{ z4q(eoL`md8;1y^M(#{uJ=7J7XoDy?scDxY8Bi}rD{Q_8u^9Aw0^Je>J=bfEz_Ih8KG>qz5^6=tNk7A}hf%;*&dM zaaOKThg#7^J=f?AOI8${xyClsiHaDuVvV9?=8%o8*on?~hAeFP>vFH;FBbNdbuzWz zhx0zhdFe(A$nvcYTuLBXE+twg3HSaW&6sx>T|w_!jd@SY^8Ck=jd`2=qHjrxG55G9 z9_dn9cRzBWQ!MLF@fG?-8$14vKT5teiG5HEbP6h&>p6nj&~7u=)9b$@b6UBc9@K~G zSk|>yeqN$VWnJCUYOyVmbvY$XvIAI;ORFS4oVN+>N4qIb|ExblTy5g?{XPvM`W27( z2G6#Svydkq@#LBEyY@_Z1Z0B<6Ll}$cRlP1N8O7GTvigbJX))AShZvIc)Xd`j^#`q z_Ya%3W4{!;HBO6mY!YD{8EyslZTeq%~w)~}2K z`I2)n`jwkC+r*W$eq|2W0iM-SHmUFSL@P_#u1{P;CmAa7l1x2)mZ6e%h=rbUoVN=9 zW3f=W^IQE-so#&+o&URhB&d5Pd&IOPZDbqR3cAeN$T6|S)1IK6v&PdZ<*eF>j=*hA zL?YG4fIQG^r20ObNmIL7>Uf0uhq8^F?(Ml6DTqwaSEhk7@EWbJJgr(Kt1;^<*MSmH zYNYb*vTIXbE0te0Q|{euq4E!^+TkX1dnjG5*WY?CutP=k EKY~dsuK)l5 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree2.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree2.md3.svn-base deleted file mode 100644 index 9a4cd7c677c8eee9184c1ef74851c182353e694a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1748 zcmbu93rt&O6vuBVZJ|)))k}Nt1%Y)G27){sb6mco$lUOS%Y-E}${2KP<7vT1V%wqF zg2^xlPQfh0I3OxB*&`rl&T6rw-TqCkEKO%Q_gV^1f{!Ow zu-NHgP|ZYi`bn-Y?j*<66Rs~XhkGP6ha0_><4Io#$BmlD;x}5WE2AG>vm)X4l{|LF z4c6kSl1-M{2UG9N{%;!3hhW(-#(oB#aVOjSi5=SHd-wNnyMJ18U0E@^qGI+791h+^FD0rg_WB1Q}&)&pu2BW^?qLti>cMtvqcf8e;>H1Zwcs^5?k z4SM-lU6{Q7DhH;+ZW7TmkhQ$!23ab9LHfp`WEx`!?S)11M`cRzIi`Yw6UzYeasSr# z1PEDbgJ1IP&@;fnk-R_{Dzw2sa}u1J{EK{WR1Mc7&GG{W?Qo?_lsj5x$YA1C653^l zJu6(~Y?cF>*7(A! zXPoSqQ-P^$mwr|Odvs^Z(E`z=2 z&dYDom0U0{#*VoSv!4iJ?C8{c^B9LFcTP-+ym>2?xQKAxtX3RyWgB>N(?s)Jzk!dd znK1buH40~vXfK@&7S4P#KH~ctFP{EPY4UgR!q=<)I@MhfQp5Z6ztVj{QbVzF!tYX; z^w#5ah8_qO%liFdWm_fo!Pn?vE{e8={HHRF;9D33{1zwKuPl=@>U)-d+UbA>{xIpR(SfnHmF&7^hvDq$Y*(vp zq2AN_Mmd!p<}PWomuu%Q(_oG?r_l;UFqbVC&UaI%mb|lxeT%<|K|1gCebi2W)WQ!Y Vt_Abw{+Z|9_ty2+^WNvJ_cuc7$|e8+ diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree3.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree3.md3.svn-base deleted file mode 100644 index 47f8644ff0e83f2191932ef3d54c051cad99e42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmeH}ZA?>F7{^b&eWx%4tRk1v%e_!afy&E-!R4NzG6hsz6wC&hZ&U;=AfRNiWoUFb z&=?$vY>PNS7p7)&`+`n4nMO0?5OFAz=rjtOFH|95OKIudIkhBiiE%Gq_F*Ua_5bAd zxz9O0_dfsAjCo7qUjYCZOA8DeD)h!xWu>c&4QnbZ^p)iXL!A3FKE_xOk8)l%1fB%K zqZ^PO@-QYx!Ry6m!JV~d0jS|X&0BMTZ{r;BbN*aUx?4JRWpg9emX{jUX-m_!&%Vh( zYg}Evs$|VNL&dDv=d=G_jMs<3W&IJy5qOP_=;F;O05HNA@58hC<6Y*9`G|Z}vI3#oYq9JHm|CPoUpr;dYp= zaO0NstR^-I9__luE(Lj@EP__UiER6=S+u%p%-e-E)^>ULjd+sDM!SE7AsKo~-iR@Z zWZoS;>a2(+nVivLMWkMR=`nwhCqvYi8b?~hdM$M^Q&g-_Myfln$_d$W9aEdkU*QL4 zGPT1(tzsR+)OvvtzEMRN8@yaLv7Rn|#4AR&h0{fL*hH)2V`|M{n71j)!Gf191D|BdyK&ps|rQ0;1kN=XP+d7>cvIjc4O^4q4EgHH$T>gj{ zkEiP&h==UkqUriHf|Bh-IwD>`?2n?`I{4eXG>{1jbJp26QB2TJwjLK&>=Bjan@ZOI z8-qaaHSSvs?j_udlO92$i`XX=sHtD2*C_dfOs>5H9zEeL*I7{=&pSD9rVN%3=$5oG4@yYTA=OKU58Cl_$AFW!^Bb zVjuU(uV#27)t+kI=k2byXxc7zgtvkL|J3A0*HzvZz=o&%LxC?yWuLg-=RpA15Rcx) z$avj}$?tc91^jJ)*c%`yK>6JGpYtZKPu88RH+kP=y+526acBen;lR%U^Z$AA|9SCW zIWNwET#%_|i237(C)y(z;+VZxh&6xM>Qw7glKnsrj*u!z>bU9Yd`2Z1ergvl4pT{T z_-%ed4b>(^C%jcjwJmbo_mNSdpS5_!h=wTjktXkVT(LA$)XHB59ezwvvRArjF3A*S zgE^o?NoAfP_72|(r!qH=32gZ)Y5^lZ;3!a0S#d;>RUgb09R&CJcBw=v)iQNC=wHhRBvbbbF(^AnGj$ap3FL%?8fEeXM~^PlcvP^} qnjaQwjFzqyu11<8Nt>u*m^uY01$TYJK(qY|S9V|+IA(t!!umV)ci%Js diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree4.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree4.md3.svn-base deleted file mode 100644 index e4cffab4942f4d8239953a6966f566d919303c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 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 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree6.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree6.md3.svn-base deleted file mode 100644 index b272036608d22202fe415e4df9caead2a4efec80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmeH|YfKbZ6vtHbkxj ziAy&kZE|7pM!`?<-w;m_L|Z2@BVaz!GG#uIH9ysr?v(g97pF$AEh{OCoVRQN^Xy7G z+T)tC)x~**1?4klKA-*1V!S^LE*pqwLEt^^Mw55M1VKw*{2ZRGA3wc9w;J8?@`2Yu zC7tU8Aq_@o5mAU}gbab76I#*uE5DFJKCJ~VcC1RQj9BU91LWNMfz%h-`K9GPL7tKOKRT9WKevaSu z;F>^`e86*I!F+o~AiwG%0qD~A(tW{=Y(40$i2*%hPleCV%E8ZM6d!xS0QwIp_{LhR z(8oO#rW`VWg9}E5D=C#=*D@)nt~U$ZXc7WzRZ4| z!ngS>ztL+v#aj7`aOJYzSu?I!0+#p7K&5F87`FGNfJ=IyOJhKzNDp%N>H$$A0@+{q zfUdpoftpGVBpe(TcGzWru6v(1*XzO1Tla;cYy-gSExkPuT4UY6&=NsTtcs7($OYNUnyOorB%o69odVj2UxF?d-*2C}Mi6BzTiipub z1*!dPB+@>Fbkhju^){*QUIg>upuf8N+VDAPP8ij7L&ABH;p)pq&l))sK^spxw!=JM z+PFhv^~?#Pjrp(YQzY&ws5O7+lY;-079G`d+2KZSdO=;kJy+M_9gZmxnS;ZO)=8u9o_ zyjDe-5@p^KRt04u#fRk(sUV9JCoAY?8t#VQd(&jFt=)QmGEHu>1I+VYfjtBJfk$qeP+jkb`Y8tB-l-(_I(x<#5)L+HP6F>J%z~p} zGyhv&3;?fHg0k^U09N>b+X}rie{oVckY-N;A?wXTi$upKRJA65*;EOPA*Y3=Qa=!0 zUMK8-WB|A3j?W#f^K;f)5^UnL;5uSkfRL$Jz!p)7q8BX|I2yN z1%HGIG^-xAhuTs(R;`?9a9~|&4YVwbrL~t}C*)ML_BJtKF-6hZ^Ok zWSH(9a4XE8%5=}MBuV;cw(GPwQ@%&TTqfiO=|L@LRKZ$!CyX;zi(}<|k(}`WY=XZl z*uoX^yool3E&LdETK1?}U6pKHbU@9nTP5|f?^AKcdnk_}86wr1E zo}tM&46no7C`|^CX4q%PXfjIeHtXFOP5LPd1xI69a|blR4vIA=SeM(QSaz_@9wmQ&z6Z-%F diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree7.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/tree7.md3.svn-base deleted file mode 100644 index 0661ea64878c6369786dc7d18601185963716eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmeH|dr(wW9LLW-*$2DqvfO(i_7VauASi+;CYO6gMyH?@9g!L#5djxaK!LJ!S#iqQ zoR$c42Bb0(oH48kX&fJ+mKidr8IF&%8Z&%QxDJkr`#znsE;H7QV~>CO!!z^Q?{Cii z-QPKT@BMvG*6jIHg8%@P)g`4XYm+LAR#h*nC@rq5O{%LYElu(LrcJIanTm5BHw69! zkzZG0?et?;;6M|16pW@E1z`Ij0KzjtcW@?n{aB_y-6uV}Ze+$Suc@w#oV9RH{DUi5 zc#q3!imHmsN^7SiKb-x~VzNI1DXYVDW5^!2;K`qa0K|wN{Tv>wpE9}5ScLC*{2=S# zlD>69uu>QUCKeNikzmMk!b|!fu@oc61Yl%-NK77`3ZujX`XO;JMuSmf$U7vESc?h8 z&=|%KiNi2@%u|?fKO|-`k(da~(|$<&3?>>g0Tbni#4#AdRS`V@t&LA@NQ3!%j&My^ z&+wpn1D6m=alLgqZs|1uV-C1^X5V1?%*`YGbnX!U)y)VFO{j;83(;J=Q3Qp(61eE= z8Ia_Y`O%H>P&?fOFXz<5eS-iV%nF3(^GtBCIT4<|e}~`tr4-&^W4TE^^>AosIM=b+ z$)8QQ#s}}Lhdbts@u$+wuxX(fzO~K9Cyb>*e)u9+<2cP{ebm4e#=pQRE_9@mx@2EA z)nWddl8M|(xg*_a{+&N{(&Vd|R3(DBLlS7VJ`3-9&ZfgY6Ex0_haCbFENnGFP%VIY zA1h&h>pIwMPJpR9?(*+=Brv9BJ!jiyg0~j`%2(#qL$cn2OD=xipa3?;)#Lq(@c**$ z8%^KyPTLADHhBizefk_X7u-R@KssuV=UwOfL3C87Bgsp&$v$|uRiiazgX3teLTk7n z0AoEWtzp(!q-TO!Ylt38kpHNr2JEN=X=K#E`g=#j3j?YCH^m9^y@4SoQ{~N4PQ_T3 zqPNlWQpPev?3B$@FcuByK<5MKvTk{!pu*nk2~rUiNr)a4CXZzXYqKN4F#1rX&F+!TajP}j?7MEKy;!5onlkpAcT_{! zc+i0Ql$33eJ=ZM?qDKlm#(;T2)U6o771`b(x+@O6hgK-)t_7Z`fVC>RD-nEw+LV-a zhwM|~RSjhwk|Y^bB(OO$v-UCpai zEB=c?;P0CBErIkB>BVu6(Bnzs6M?v?AMKTR{l94ur0>Ul5{JH+tV;$_;vJ;-iBAw; zAdr~&0*Q%|{SiMP{y_YI@UT}9&mevfP`ICeYnux9Qz9h2V`f`@J!7H6;A=T*xH{a% zdrQ}Fw~G@YoMwhKjvNSIQo>8&CSU%GX<<;Dr-pQejqes2xzvVzGe7AxLkoR??_8yV zVYMy%2iNQ2#SBNrSc}S6Z!Tr!+^8HZk#RH6csC&z;+wrFTHrz)7m0FExh$i3D*hI? zQnJhA*VlnalrQ6dxDBS`{0#SB^Ty}L>yFnOzi+(WpU#UE`~d#tAn$?jhAPL9rz(UoyzI!4 z#!~u$H1Gy`MXevWZch_!57zfD7v)F=y6}^qN$bU%bP<;C&}OtHFv5~7nj~%0L|C#w zCyG|HW#WKhS184nO#_GRW-V)+By|WjXxVa=MDFq8yhfb2TdfD9&iUQ~9Z{o*s6nW3 zG=(zRx!@cc)-l;P#o3;Gn#pFpZs+GTlU3x1Mj4FWRt~I47p%8kaprpFQ|w5oS0`zs z^tTj(aH)`HyB32Mv|qz^E%6SCkL%d30?>_aX!X|Tq{jrwjNV!xu5#Cf=&i}ZM)4Y~ fMdC_|881!t>IDNZaYvfGpTe@70<&mE3p9yiE9 z02Q!{kgX5UE5VbujuLm0z9NWghl!z6#}UrRaYQSfhVKN2enWiPp!r3G`OMg<>G2O| zGte6673CDzUa}Vt9TtrI=N7LIgVV|pP6S@#Ml|^yk06ZvNAJVK`bk4d@^a7~`cfdd7|ZU+qX4f-0Hz-u z32;1~zq2wP3`ll>A2LfpLmL4OWk|t=EC*<-wSuz`?s4yaAq2l@&1}MFrJ!S%hOJxg z;m%ubaFM%8!Orv^?o4VKSUZ&uR%~~1mYx*AbzWwR+-JFrZRKos{6toAu`U(o#p`m( znz^rY2eXUB?o?0NuiTk$9sM~I3n(zHLjcOEo(A`Q=TpH62gn;A59&w<$lmM#L?H>X z-VX(*HZKFUWfm}E=Y4LCPXLUY-e6tZ9pLth*SP$wQh@6{f2EI`+(v@xL8WN@6#8E- zZl$A@^SBnW=3yhjM`zpFBQoE%n9B}_*z5^ zGgv_MWGiBrt8T{UiHc#m-4^j6HPhNc=EB`lruBo~!~A3g(^4t2h+mL1=O#;Qg$w0$ zWiwF$JH>S67NIAkDx9voMApG)q_l0gtlHhKplx-$W54YkK+ltfKHz0U(DrHK&b}rT zH=DNu%4H^Ee_xZYQ-Lidz&1@Ztmo}$^_XI+6TYQTk9kLu?wzSpkBuNby~}9znAM(} z{$ zA5M%^)ig@?^5&>jH50^=zCwknW|Z(lVGpv&;zZuLfm&xTu@SBhiKB1&n>;7O;^;|z zr~LE6<7liAB}GdL7XBB3K;Jd)TMX_c+>1eth(?oGC#0yUAFY+B{@;`c-1oTWg9H1x zE*{uo?ZCZ{bpq=G2K!hSu#YWXAJzk`4_FT{f7A-B8CVZQ*`ISOw#!gISpn{yGVSL6 zo>`?-gQb~a;1!LF^V?r#@7k;YJXHpY+?fE(2nAO(j{f*bDQdva3IoaoF3w5iu_MYG zM(wUI1FMvcT>WAhP#16Fw*FiSE{}GP?%5>k&-a|7itQv{CQLGJ)Czwkya`9v?t!sn z1LW8NWG0*~L)U^jm|+;$6}+FzW1v(v?$TBw8Loxt-oM5L=Yx5J`GU^{^Zn_(NJ1O% zF9&`Pm?!7Olk?*La$bZ8zK4C$7F{Ag%Ih;&bT)E_za-Y8>mua6DJGL)8^0N@qD_W1 z!p`31I+J0qzr$ClH|bCNGld5Y=9Xsab$CE&ZrS5Yp_*dMXPA&o;d@$hYk6oXze}sH zxXN1(yX5+c38Dny8MVIR2vrZKEA{rVQd{3FMsMH1Z|-f-=xs|SZt@7NpPwQY`(kK) zg_&OujZs$OM>xg5L5FP~g>6oV#C;%+Nt+>PhwF4q+A7JjzD9#?{0++MnQLUm&4sa0 z9B1vm&98#nqOILo#5CVQgVlA7k_$E)tar8uHNqByao?N#O|XPE?wdn(@ITfW_qFq# zaAvfwS}8q7w#VwKmxv3z$91~usiJDWiP2T(i1W#K6nBre1#XE<(0oItcz3H3H0dxD JD%A;^-vM>+=NyL)$G?_y98HKKC4XNsW(loE-78QLi|KmZXiyqG3k zHfUvN#-#@03{5P-K z`H~Nwncx1OIrq8eoIQJ=|GAs{*yAfB0RXl2d5e_a-6EzAN*?D}AOK;DAO*C##Q zP+!ab@QLgtUtY<@YkaC$;#$B;Gd!=0Z>0Z7CPf6zXB zIsb~3rphh&j&E*c9z0}Vo>;7L7!G5@Bw-X78HVf?fy7FT8WVz11tD=LMuQ2%ga;vU zH0B4G2n^X?0*RwAdW;sM3qoQ8hQ`EWs30U}Ff7K1F$E#96_bE5V=O^PoQUCW%i#4t zyM$G(>F}qg&hdM1Ull<8PCi*5#}78e@V~eNVB&kCpc@#;Sl4w=Sk3=Yc>mu<9+_KU z=vV@Os8R-{g9`ZMpVmNl2&84kGj2|3(-&?O|#r9vE_Rg}t3Y~%5KAWuW(i<;lqjKcb7%vacoRdErYq~Td zOIF9l8HabOI+as#Z2O!3-=Nn++4eS>SCtyYw*MUUq7;p(%BSk^Jf}BRWuc+jSEEgp zAB4<8aVFUy7gT7;NL}d!1A=0!ty)izo4&6mgZG0Y5WQ%R_ z@p)OI*BwE{=eErL%Rfz-Tu#)Ax?)VO!}FWPQN8Kjaj`Na-(bA|47jP9F|d6*&`YQ^ zitRfnT0)AnY~Sa2?DUxNLc3<)nB_7e#&|FvZT?_(0*Q9O1`mV71pa$2| zQb=mY!Sn=brd?}*I|?G;Gn7m4S3Jv4l`VzvQ3q`B6hK%U20x+ff&7i>1}HCzfZDAt zp(&Iu%a3#Nd8is(&}6P-{VyUb zfSnsqg2W0k`C5Mgx~>sAcj9M}Ptc4nUjG2G=$r=LfM7Mw7sUV0TkKyPcX7PM`xeLh z+Ig`8Z@~ZA$nQXScwRg_FTOA5#d-91G{M*`_kB9?tpuAzzi`M;wAdTtF1DJv_t9BY zO_{k-aM#_-nz=LXabL07%pG+XD0f?|m)p>D$f2`dUg=JkRU5fWr=O%WtZS4-}GNpyGwRfW<$gJb4HYv*%YAjsUZgkfDGR;*!ukc8EXs)_MuJ#S# zyuaZ*zYbTo_i_IL6VXZ;(MCzACp5{NcNkqm4%VEvR-WhkWuke*R-fnvR&(x2cLKU& zmEzs(yJ+F=z3q!pzy$7oF`$$a3AVmts2dehw!Ra-ad{4F>+3`PD3jrw z`xHZxt5(i=TvjJ;F>_9bq(feT^`xv;GKBNCqW!2a#>V{Emo8EU8#CYyLqxyk5#Q$J z_5mL9&?6qcQ-0sxDUX3HFs7#`R(WqoUp3MbG5*mIqSom`RSv70Y{J(|w7SXc*^|C~ zly356@pxDct()8#dNI72p*lpgAJj)v9Yu;HO^Jctb0W+ldJNQFwfcp*Yw=8u9^^~* zL^3(s!gh$!S|%qO>;lozbh6BQYvyMRoqS_v4EE?9J$ZqN+sDV=6g>~vR~bP=1}U9u^YF1*)&E9^Q; z_p=}mH0$a9s|#uB0fs&quKtmHxsf^*872c`My4hWRDktbrsj-lqkJvJ)RcfSkfNva z?eej?3oM;qyHM#Vr0M)uR4!i;*3+^n&pS9T75o*fk6>;->79~=$1*qH_3u&<{ST`3 BCinmV diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/trunk2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/.svn/text-base/trunk2.tga.svn-base deleted file mode 100644 index a278d99ebedb99af719a810ce6b2e90d339a9bea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49196 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 N{o$v7|M>QI{|EEx@_hgR diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/branch2.tga b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/branch2.tga deleted file mode 100644 index 3c76b55bc576e670765467e58ba3aec3dfc1d54a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196652 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])_h%0 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 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree1.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree1.md3 deleted file mode 100644 index eba900f10a885a28ca5ffc6b628bd6f5d933ae1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2284 zcmeIydu&rx90%~z`)Y67xqCNzFM@^9&2FQ@*dT1On|s0>m~MuljK#noJl4?xd%!l0 z#CDEEQVE?fLIS8v$5=20Bfdh^IS>JtF*0j-M3kTobOQKh$3b=MvHSL{=}m% zG7s4YGS8Ek3A19^SPsTwG=`_VkJKE-V_J-C7eQ)0mVy~DV-l&;Fadi4BflX*Y7v`& zNtm2O>Zh=$v5DBEBvPBP3~VwsC5hC}V42ud%#uXvEX;a^hUZTP)Y)x?aM`Cvm2Fpk zQbFS;#WumD^tPlcE3N{V^;JxjkNAt{?zpbbQNC4=-I%PPscxvhkg0SzX-M_5aLIQ? zko1%Lw>RfPagGaKu5iO6egMC=8{zpX7xZ^L3x~$E01h z&)Tl4X+3VZZ+=icQ``!-EoR_bodMMrEQIRF&q`BxNVV^6QA8qu5=!_`959oiq$p4mjd`3JzBmOUE zL<6{lMzxaVy@VWlT`yTqM!OOunP_@wwn4Pkfj%_EiPlY;kJUSSvZRxv*x5R$8NF`S>{Q^WeT0SrfPxS(NbUNIGef8I(S}+9;MS z1m{pHFP8nul*Rpeu}n_HA}I#ZzAT)HnhjE*8hBBkRto$Qsf>$y>H6|SI=et`y2)rJ zaUFWuR|$5Zlbq~(B{9s5>ttUQIE*^Al6M|=LbKK&d8?R)STiqqZB#q+D$Zq0y=FQu Y`y}u#noG;(v3Ox@fR)XTr~#4u8_p7N82|tP diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree10.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree10.md3 deleted file mode 100644 index e576df0d922ad8f35c1e6733c8fead782d64fae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3868 zcmeH~ZBSI#8OP7E?<{DQ$^v_L@7-nhUY6xWl!%ebJ(Wl!M1mRuGj=A{0768-0NOO& z-Jqj`(=0`(8LUpR3d{(oB{4HZrD~|Pl#(hLUlY^Tmlz9O8!Ion%iTRaXS2*CopF+; zU-H2-^V|P3=RAAP*|Yon&)wV=s~67&094hKmTj&}t=h1q=H*RgCG~Zw^|fVXi-NCd z3sb5}7vrR_X_C;mETo&Uc7~wHB7OOT;PXX;0Q@Ek^exK<4QsOj$ayA|9+YEwYoAHj zSX)!YEPo-#`o%~t-s8))8>&kx%IX%TeL4Goi^={7WZEc9ABOC4FYde<27noF{Bh^- z#rlg<>dQCacYJ*#>)wF*U0t}1cFbNnrMv5V4MIf;PqsAyPst_a&$3$W@n1~Q0 zo{#w+W)6lNFM-7KFfo{Dj5Y*`V=)va4xdEwRJD6*yr3D1fJOBjD8{I~;9Ef)}SB3BNk6 zfS>6(KKUI7ywj!QJ6e6hW!tC1{4NJPoHHeSkm-cYFUa7|cDG=g%7DWC8+@(zqLBOR z27bNuIX?VaM<$t6BQE)WVcr36ReG51(4DHf}9Z_^+T`ErvQ!-4C0qsR^&1dv; z#R1<-F^qnrXDC3Fctm~e*6Pat#~|?Un$#_U)Do%1S&yJ_C-I30T-1;Ah~WC)&?07Q z9xoAWr2fgeq!A_FL294)1n~s|iHR?em?+sF@dM%y#19Bx_6p(|#1E9~-xGGWN8)-) zf~0nw`hCHgX^f7A+Y08uS9NY7Q1%o4VM!8%PdQ<&w*bOo4g5%F59Y7Rh=sDEIWT&Y zTj-OP^XU!!%ep(Aurd0i(77cN#@4k72ktrGjVy20R9j?lzWfC){$o@I&^%$;K;Y*{ z4q(eoL`md8;1y^M(#{uJ=7J7XoDy?scDxY8Bi}rD{Q_8u^9Aw0^Je>J=bfEz_Ih8KG>qz5^6=tNk7A}hf%;*&dM zaaOKThg#7^J=f?AOI8${xyClsiHaDuVvV9?=8%o8*on?~hAeFP>vFH;FBbNdbuzWz zhx0zhdFe(A$nvcYTuLBXE+twg3HSaW&6sx>T|w_!jd@SY^8Ck=jd`2=qHjrxG55G9 z9_dn9cRzBWQ!MLF@fG?-8$14vKT5teiG5HEbP6h&>p6nj&~7u=)9b$@b6UBc9@K~G zSk|>yeqN$VWnJCUYOyVmbvY$XvIAI;ORFS4oVN+>N4qIb|ExblTy5g?{XPvM`W27( z2G6#Svydkq@#LBEyY@_Z1Z0B<6Ll}$cRlP1N8O7GTvigbJX))AShZvIc)Xd`j^#`q z_Ya%3W4{!;HBO6mY!YD{8EyslZTeq%~w)~}2K z`I2)n`jwkC+r*W$eq|2W0iM-SHmUFSL@P_#u1{P;CmAa7l1x2)mZ6e%h=rbUoVN=9 zW3f=W^IQE-so#&+o&URhB&d5Pd&IOPZDbqR3cAeN$T6|S)1IK6v&PdZ<*eF>j=*hA zL?YG4fIQG^r20ObNmIL7>Uf0uhq8^F?(Ml6DTqwaSEhk7@EWbJJgr(Kt1;^<*MSmH zYNYb*vTIXbE0te0Q|{euq4E!^+TkX1dnjG5*WY?CutP=k EKY~dsuK)l5 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree2.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree2.md3 deleted file mode 100644 index 9a4cd7c677c8eee9184c1ef74851c182353e694a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1748 zcmbu93rt&O6vuBVZJ|)))k}Nt1%Y)G27){sb6mco$lUOS%Y-E}${2KP<7vT1V%wqF zg2^xlPQfh0I3OxB*&`rl&T6rw-TqCkEKO%Q_gV^1f{!Ow zu-NHgP|ZYi`bn-Y?j*<66Rs~XhkGP6ha0_><4Io#$BmlD;x}5WE2AG>vm)X4l{|LF z4c6kSl1-M{2UG9N{%;!3hhW(-#(oB#aVOjSi5=SHd-wNnyMJ18U0E@^qGI+791h+^FD0rg_WB1Q}&)&pu2BW^?qLti>cMtvqcf8e;>H1Zwcs^5?k z4SM-lU6{Q7DhH;+ZW7TmkhQ$!23ab9LHfp`WEx`!?S)11M`cRzIi`Yw6UzYeasSr# z1PEDbgJ1IP&@;fnk-R_{Dzw2sa}u1J{EK{WR1Mc7&GG{W?Qo?_lsj5x$YA1C653^l zJu6(~Y?cF>*7(A! zXPoSqQ-P^$mwr|Odvs^Z(E`z=2 z&dYDom0U0{#*VoSv!4iJ?C8{c^B9LFcTP-+ym>2?xQKAxtX3RyWgB>N(?s)Jzk!dd znK1buH40~vXfK@&7S4P#KH~ctFP{EPY4UgR!q=<)I@MhfQp5Z6ztVj{QbVzF!tYX; z^w#5ah8_qO%liFdWm_fo!Pn?vE{e8={HHRF;9D33{1zwKuPl=@>U)-d+UbA>{xIpR(SfnHmF&7^hvDq$Y*(vp zq2AN_Mmd!p<}PWomuu%Q(_oG?r_l;UFqbVC&UaI%mb|lxeT%<|K|1gCebi2W)WQ!Y Vt_Abw{+Z|9_ty2+^WNvJ_cuc7$|e8+ diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree3.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree3.md3 deleted file mode 100644 index 47f8644ff0e83f2191932ef3d54c051cad99e42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmeH}ZA?>F7{^b&eWx%4tRk1v%e_!afy&E-!R4NzG6hsz6wC&hZ&U;=AfRNiWoUFb z&=?$vY>PNS7p7)&`+`n4nMO0?5OFAz=rjtOFH|95OKIudIkhBiiE%Gq_F*Ua_5bAd zxz9O0_dfsAjCo7qUjYCZOA8DeD)h!xWu>c&4QnbZ^p)iXL!A3FKE_xOk8)l%1fB%K zqZ^PO@-QYx!Ry6m!JV~d0jS|X&0BMTZ{r;BbN*aUx?4JRWpg9emX{jUX-m_!&%Vh( zYg}Evs$|VNL&dDv=d=G_jMs<3W&IJy5qOP_=;F;O05HNA@58hC<6Y*9`G|Z}vI3#oYq9JHm|CPoUpr;dYp= zaO0NstR^-I9__luE(Lj@EP__UiER6=S+u%p%-e-E)^>ULjd+sDM!SE7AsKo~-iR@Z zWZoS;>a2(+nVivLMWkMR=`nwhCqvYi8b?~hdM$M^Q&g-_Myfln$_d$W9aEdkU*QL4 zGPT1(tzsR+)OvvtzEMRN8@yaLv7Rn|#4AR&h0{fL*hH)2V`|M{n71j)!Gf191D|BdyK&ps|rQ0;1kN=XP+d7>cvIjc4O^4q4EgHH$T>gj{ zkEiP&h==UkqUriHf|Bh-IwD>`?2n?`I{4eXG>{1jbJp26QB2TJwjLK&>=Bjan@ZOI z8-qaaHSSvs?j_udlO92$i`XX=sHtD2*C_dfOs>5H9zEeL*I7{=&pSD9rVN%3=$5oG4@yYTA=OKU58Cl_$AFW!^Bb zVjuU(uV#27)t+kI=k2byXxc7zgtvkL|J3A0*HzvZz=o&%LxC?yWuLg-=RpA15Rcx) z$avj}$?tc91^jJ)*c%`yK>6JGpYtZKPu88RH+kP=y+526acBen;lR%U^Z$AA|9SCW zIWNwET#%_|i237(C)y(z;+VZxh&6xM>Qw7glKnsrj*u!z>bU9Yd`2Z1ergvl4pT{T z_-%ed4b>(^C%jcjwJmbo_mNSdpS5_!h=wTjktXkVT(LA$)XHB59ezwvvRArjF3A*S zgE^o?NoAfP_72|(r!qH=32gZ)Y5^lZ;3!a0S#d;>RUgb09R&CJcBw=v)iQNC=wHhRBvbbbF(^AnGj$ap3FL%?8fEeXM~^PlcvP^} qnjaQwjFzqyu11<8Nt>u*m^uY01$TYJK(qY|S9V|+IA(t!!umV)ci%Js diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree4.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree4.md3 deleted file mode 100644 index e4cffab4942f4d8239953a6966f566d919303c23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 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 diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree6.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree6.md3 deleted file mode 100644 index b272036608d22202fe415e4df9caead2a4efec80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmeH|YfKbZ6vtHbkxj ziAy&kZE|7pM!`?<-w;m_L|Z2@BVaz!GG#uIH9ysr?v(g97pF$AEh{OCoVRQN^Xy7G z+T)tC)x~**1?4klKA-*1V!S^LE*pqwLEt^^Mw55M1VKw*{2ZRGA3wc9w;J8?@`2Yu zC7tU8Aq_@o5mAU}gbab76I#*uE5DFJKCJ~VcC1RQj9BU91LWNMfz%h-`K9GPL7tKOKRT9WKevaSu z;F>^`e86*I!F+o~AiwG%0qD~A(tW{=Y(40$i2*%hPleCV%E8ZM6d!xS0QwIp_{LhR z(8oO#rW`VWg9}E5D=C#=*D@)nt~U$ZXc7WzRZ4| z!ngS>ztL+v#aj7`aOJYzSu?I!0+#p7K&5F87`FGNfJ=IyOJhKzNDp%N>H$$A0@+{q zfUdpoftpGVBpe(TcGzWru6v(1*XzO1Tla;cYy-gSExkPuT4UY6&=NsTtcs7($OYNUnyOorB%o69odVj2UxF?d-*2C}Mi6BzTiipub z1*!dPB+@>Fbkhju^){*QUIg>upuf8N+VDAPP8ij7L&ABH;p)pq&l))sK^spxw!=JM z+PFhv^~?#Pjrp(YQzY&ws5O7+lY;-079G`d+2KZSdO=;kJy+M_9gZmxnS;ZO)=8u9o_ zyjDe-5@p^KRt04u#fRk(sUV9JCoAY?8t#VQd(&jFt=)QmGEHu>1I+VYfjtBJfk$qeP+jkb`Y8tB-l-(_I(x<#5)L+HP6F>J%z~p} zGyhv&3;?fHg0k^U09N>b+X}rie{oVckY-N;A?wXTi$upKRJA65*;EOPA*Y3=Qa=!0 zUMK8-WB|A3j?W#f^K;f)5^UnL;5uSkfRL$Jz!p)7q8BX|I2yN z1%HGIG^-xAhuTs(R;`?9a9~|&4YVwbrL~t}C*)ML_BJtKF-6hZ^Ok zWSH(9a4XE8%5=}MBuV;cw(GPwQ@%&TTqfiO=|L@LRKZ$!CyX;zi(}<|k(}`WY=XZl z*uoX^yool3E&LdETK1?}U6pKHbU@9nTP5|f?^AKcdnk_}86wr1E zo}tM&46no7C`|^CX4q%PXfjIeHtXFOP5LPd1xI69a|blR4vIA=SeM(QSaz_@9wmQ&z6Z-%F diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree7.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/tree7.md3 deleted file mode 100644 index 0661ea64878c6369786dc7d18601185963716eb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2808 zcmeH|dr(wW9LLW-*$2DqvfO(i_7VauASi+;CYO6gMyH?@9g!L#5djxaK!LJ!S#iqQ zoR$c42Bb0(oH48kX&fJ+mKidr8IF&%8Z&%QxDJkr`#znsE;H7QV~>CO!!z^Q?{Cii z-QPKT@BMvG*6jIHg8%@P)g`4XYm+LAR#h*nC@rq5O{%LYElu(LrcJIanTm5BHw69! zkzZG0?et?;;6M|16pW@E1z`Ij0KzjtcW@?n{aB_y-6uV}Ze+$Suc@w#oV9RH{DUi5 zc#q3!imHmsN^7SiKb-x~VzNI1DXYVDW5^!2;K`qa0K|wN{Tv>wpE9}5ScLC*{2=S# zlD>69uu>QUCKeNikzmMk!b|!fu@oc61Yl%-NK77`3ZujX`XO;JMuSmf$U7vESc?h8 z&=|%KiNi2@%u|?fKO|-`k(da~(|$<&3?>>g0Tbni#4#AdRS`V@t&LA@NQ3!%j&My^ z&+wpn1D6m=alLgqZs|1uV-C1^X5V1?%*`YGbnX!U)y)VFO{j;83(;J=Q3Qp(61eE= z8Ia_Y`O%H>P&?fOFXz<5eS-iV%nF3(^GtBCIT4<|e}~`tr4-&^W4TE^^>AosIM=b+ z$)8QQ#s}}Lhdbts@u$+wuxX(fzO~K9Cyb>*e)u9+<2cP{ebm4e#=pQRE_9@mx@2EA z)nWddl8M|(xg*_a{+&N{(&Vd|R3(DBLlS7VJ`3-9&ZfgY6Ex0_haCbFENnGFP%VIY zA1h&h>pIwMPJpR9?(*+=Brv9BJ!jiyg0~j`%2(#qL$cn2OD=xipa3?;)#Lq(@c**$ z8%^KyPTLADHhBizefk_X7u-R@KssuV=UwOfL3C87Bgsp&$v$|uRiiazgX3teLTk7n z0AoEWtzp(!q-TO!Ylt38kpHNr2JEN=X=K#E`g=#j3j?YCH^m9^y@4SoQ{~N4PQ_T3 zqPNlWQpPev?3B$@FcuByK<5MKvTk{!pu*nk2~rUiNr)a4CXZzXYqKN4F#1rX&F+!TajP}j?7MEKy;!5onlkpAcT_{! zc+i0Ql$33eJ=ZM?qDKlm#(;T2)U6o771`b(x+@O6hgK-)t_7Z`fVC>RD-nEw+LV-a zhwM|~RSjhwk|Y^bB(OO$v-UCpai zEB=c?;P0CBErIkB>BVu6(Bnzs6M?v?AMKTR{l94ur0>Ul5{JH+tV;$_;vJ;-iBAw; zAdr~&0*Q%|{SiMP{y_YI@UT}9&mevfP`ICeYnux9Qz9h2V`f`@J!7H6;A=T*xH{a% zdrQ}Fw~G@YoMwhKjvNSIQo>8&CSU%GX<<;Dr-pQejqes2xzvVzGe7AxLkoR??_8yV zVYMy%2iNQ2#SBNrSc}S6Z!Tr!+^8HZk#RH6csC&z;+wrFTHrz)7m0FExh$i3D*hI? zQnJhA*VlnalrQ6dxDBS`{0#SB^Ty}L>yFnOzi+(WpU#UE`~d#tAn$?jhAPL9rz(UoyzI!4 z#!~u$H1Gy`MXevWZch_!57zfD7v)F=y6}^qN$bU%bP<;C&}OtHFv5~7nj~%0L|C#w zCyG|HW#WKhS184nO#_GRW-V)+By|WjXxVa=MDFq8yhfb2TdfD9&iUQ~9Z{o*s6nW3 zG=(zRx!@cc)-l;P#o3;Gn#pFpZs+GTlU3x1Mj4FWRt~I47p%8kaprpFQ|w5oS0`zs z^tTj(aH)`HyB32Mv|qz^E%6SCkL%d30?>_aX!X|Tq{jrwjNV!xu5#Cf=&i}ZM)4Y~ fMdC_|881!t>IDNZaYvfGpTe@70<&mE3p9yiE9 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 BCinmV diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/trunk2.tga b/install/installs/Q3Pack/install/baseq3/models/mapobjects/tree2/trunk2.tga deleted file mode 100644 index a278d99ebedb99af719a810ce6b2e90d339a9bea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49196 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 N{o$v7|M>QI{|EEx@_hgR diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/visor_posed.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/visor_posed.md3 deleted file mode 100644 index aae1d8f8638847d7f4cb4b1efa666380eca947c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23924 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 AxBvhE diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/entries b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/entries deleted file mode 100644 index 7e74bd4e..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/models/mapobjects/wallhead -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -lion.md3 -file - - - - -2012-04-01T16:52:00.409473Z -3b2962c40611ff3da36435eee361c2ff -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3764 - -wallhead02.md3 -file - - - - -2012-04-01T16:52:00.411473Z -05cff486c3effab6f9d309a9c47ae77d -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3452 - -femhead.md3 -file - - - - -2012-04-01T16:52:00.415474Z -3e1a19b0c377a415e186f244eeac3225 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -9228 - diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/femhead.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/femhead.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/femhead.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/lion.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/lion.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/lion.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/wallhead02.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/wallhead02.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/prop-base/wallhead02.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/femhead.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/femhead.md3.svn-base deleted file mode 100644 index f26dadc61ff437a7f5ba932e69a15fae2d7a9dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9228 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 aOC403G}{~_^;S&2!QLT7y%o(&Uh|(w_WL;i diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/lion.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/lion.md3.svn-base deleted file mode 100644 index fda947d4e54dd1499076f946bb1f479897c5b69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3764 zcmbW3dr(x@9mmhTckeFCqJX%>DCqh?p*$8O0s?!EzyhK?Be+Hr1V!Tmf{7+bOBgkp zF;quwoTknsqfMAdVl%!g*i?(ui4Qc=B*qtL6+3F9P!u~uU~kWN_uS^6PMqnT`Of$A zJLh-L>z;G(&2bjS`x8Q{swMz`Q9@3(l6C&ABvwf$GuqO~s#)o%(XS_=8`8sREu;$fre#g&W7-b~a z6d^GBMGV(3u)bDsMF<=y7#<)54&sXCisC}M5I9;eJWdEaRWKZR5Eym&TzuNZA_Vpk z3@;G^7Yl|X9~Z_uObCo|qVF+W`q;pjCw#PE#9+)5{(@k{;6xF_M+$-G3Wlc$fs+Ko zokCz=!SD;{=ZoF&xhf0^`{s4>9J7KF}V< zfPUt1pha8cpewl0PBM}Ltv~U7>+qZ;9|jWAHi^}3EG;#HA4tINibX= z8yNG1z?d5Z#yw#8M8R;(J%Z~OT;YQ4B1RcFM#S*3Lf}xr@DL&J^Mc{igun@c;nRh{ zMS|h!Lg42F!zT-Yg9XEFLf~kd|Fl+v{ZS6<-Q?}JcHUaH!+#dbO`OgeS4A`D@&dN@mv`yex9VA4pN*Y* z_c?Yn(TDZVn$D)yMDuYKu=BsaOZV1#%Rg(ZXPH-QEHGh^?)p;#o8R9;<8~!8>y`!@ zI=`6JZ)u^MHzl(L2T#(huoBkwdIOd6ikWS3DT^FcLh~2d*y?3FXu`gFHb=cf-)Jah z`@SxrFE-b+hH-c3@@gB)@7O_^%fi>-JpI9LVePM+r_Nuu)8adCvi&>5=wZKd*0JM; zo3FLf^O;m`CgJ=c~_Gp_`&jF6R%-*pDjz5|7H+2ICS zk+Pf4e$Y+B-b|+j`$u}p^B48fh?je4!2M$mOO};AzuHCP;~!J?^ft$eyvMX~tBb-v znb_i~zxcU7ed*mRw6&>`&Mdsa^Strw2aWWP8*k8yn@7-??R!$n?gp@fCo3HT5C553 z(H_l4O`bzDLQpo$(m8O1)Cc$EgP7{*qA@6C^Rd0VQvVK==$^EEoDCCZb3{93Xn zZ)(jj_PMNS`J{?GQAS8PWP#I9xg}ZU!tg%nnrtTXM#TFJX*Gr{(rmiwzNt9xZ7}`a zy-A(c*<#ApzEb9zn@v-sn@Z*=J#T|4O5*hsTTCs4*Z=#e6guQfT#qc|sdj2;DLEk$~oPa zq=5mKk#<^@4+rgP)^%UvGtet%UiDK5~&88?e<}0v{5o9$DEKK zE6L_W+haLSdC!zOzE|!T+-6F>ske7YmH7K%A=z%M&`y&0uJvkyR!*Y6Y&BdX+1kPx zdi??Q1bLv%8{cYBwQQ~A++j6F>(PpD=8Zjr|mHQhWv%FP`x}!JtKXjIHx74 zN$!u7jP?dY@6aMc(RU4oAenn)t#PAdGNy#p8rQqIUvDy;ayOeJAM7;r$bU5^Ms&!T zLxC1sS0H(Hu*MSdZMWjq@+={w$v`EZ7u+Eql6n0Ey?m!3aERacz1uXTeXNEPX8e={ znPLMoj4o}YDYi#9n`1;+&IV*c>Kb=}q##*)-8FH^W zcG0tUt6A!w(^J(b{y*{V{5W@I=p+JF0qdf`m$0&ynDNHtoNN!chN@`ejUMTn diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/wallhead02.md3.svn-base b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/.svn/text-base/wallhead02.md3.svn-base deleted file mode 100644 index ab7ab3ab00d998308c189ec0309a334823c869ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3452 zcmb7`3s6+o9melt-y4Cfpd`iw5d?WZWr5vuWI+Xu4-it6AS@4!5eEg0lxP~-iBwY4 zaT04vHE9xwCUJ_=q)8lWV$8IWakPXU&8@irZL~Ompw` zk;Mr;YiN8>uzd@K9f0~3uedhn4crLJxXe5pjc*ZA8lJr}vBwf7khwj6cbzWL`ug`2c5k`a)KO%~W zRm3vlQDUh8?i7w(A%Ld|M=ln?bA==G1n@-!)}<1d2jD5fk(dYI*}{=n3*aaN>*f)d z2jDrvk(dYIS;CQ6YbR(MC7S?l7LKHC)__}xVB!JdK>^$#963V(pF`mMLj=YEt_nw@ zUjSExBlQnFKn#%g3*h)2aAH2e1n_j>$b|xUK7sG&An<(ve5P=uk(f`o39JEdmvCeT zfqC>Aet#V}_6O%O34JXb_r-qa5DNrw^n`b6Ie~Wpz*iG^x9}d72;fx&ewKlRp8$J+ zV*rkQfg`bZQ;8q~YXHvS7=Y_@kmz6<5kcT*i^Le60XXL9^YrWBIPNiBB*p;Oz%c-i z6^_Jw0DnX{GE@M6n83Oi0`mYoQaCb10FM%moF#zA2}dRg;0eN$DfRhq+!teHhyadf z!WfBX!FpULUI54aFh)iT;P}&s#B;&{9N))FtRWs3z;Pa9WT^mNCLCEVfaBf37`a3M zUo0G%CmdNWfUgveED*p8g(Hgu@U_B`)dY@V{$m2Teh*wve||W=6B5_czc0K(jFH$6 z0Iwu)9{0f*z;QezOXlOvDXil_J7d?sa(fF0SV{MOwqA;7=?j{f-|~3Yv{z-Dk3{o_ z4;Ayh)fWDMVICh&e2fR&NaOh%qIgMn3{OtZ=AQC!9-I9*?+Uf^KNdX2!%eTTOD#M2 zz~@u=`I%sor|NsjS%@yf=l{I)26${vnx%);O6xtbxDxW*-0L zRfSiTe$ApXlK6V5kJYvOj!k5bFq5N@wZ)ufjq{?}`9YOO2M4)Ij&awwZ8KbN+WzG3 za~jzjv(sH?fAVwIS(xQ&Xbg9ic%ESed2U{LyOHm7-evvMoP6i%7n#~HgFioB&30ua z@cC1l*g#epKl9xcb~SJcw+{bR%fI~I%B?LvZGUk8_0oAp_jB7W%yu>H{g#E+47od# za(HoiitA`yE-x&IV4oga#%bSN9#+f~Eio?ZZ~#AfYC2O+1o6((pSat@xA0friFHN# zZ{WC2ro4mq&Wvz<(5~`B*AKH>uWaXju>)*0V+CEOPwS)Xt{>YWM8$8WUZf>t5dXo{#Lw=U*5c!pXyBH zFPQq-cV1cRsUuGG(^NFsPg{)EPi>Py>*K>Qv(`^ti=S(7Yq{&uv|U<1xhuvp(a+&j zH*d8(&Fu@T*|wAM+~jyk>u2Yge=?=j$)A1yS*;&y%Va+TS?${UU_Lk5Pu_vazJ4|9 z99uO#%^kMSmx+FgPDQc{Da(22_+70hyc_6ctMZ`Mi`zEYi@7XV>!Y*ql-qxQJ;!sQ zmm2GECVELq9wK^HVoW$L=1q#oqqH&^=gW@w{`y zm@?FBF1@3V_4D0Eb@+rOK2TrRtZo{`58U+@2#)b$G7RazcA%W zm(&*~eyS|)sWH(1LCPA*p;k-;D$B3DrkbTTxj<5kvUH!(DVtyQV5xpP1uU=oPLjA=5r=Q97naUi6`iQDfGF0j(vfsB;rM}`iWUf#@NqxRi zmHJ83@27uH{kT5X`*Emm%hboLOX@Q+^%VNQy}T|{FAwQ`+*BmFRq{sMyB9x|dU5?5 DRifbd diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/femhead.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/femhead.md3 deleted file mode 100644 index f26dadc61ff437a7f5ba932e69a15fae2d7a9dd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9228 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 aOC403G}{~_^;S&2!QLT7y%o(&Uh|(w_WL;i diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/lion.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/lion.md3 deleted file mode 100644 index fda947d4e54dd1499076f946bb1f479897c5b69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3764 zcmbW3dr(x@9mmhTckeFCqJX%>DCqh?p*$8O0s?!EzyhK?Be+Hr1V!Tmf{7+bOBgkp zF;quwoTknsqfMAdVl%!g*i?(ui4Qc=B*qtL6+3F9P!u~uU~kWN_uS^6PMqnT`Of$A zJLh-L>z;G(&2bjS`x8Q{swMz`Q9@3(l6C&ABvwf$GuqO~s#)o%(XS_=8`8sREu;$fre#g&W7-b~a z6d^GBMGV(3u)bDsMF<=y7#<)54&sXCisC}M5I9;eJWdEaRWKZR5Eym&TzuNZA_Vpk z3@;G^7Yl|X9~Z_uObCo|qVF+W`q;pjCw#PE#9+)5{(@k{;6xF_M+$-G3Wlc$fs+Ko zokCz=!SD;{=ZoF&xhf0^`{s4>9J7KF}V< zfPUt1pha8cpewl0PBM}Ltv~U7>+qZ;9|jWAHi^}3EG;#HA4tINibX= z8yNG1z?d5Z#yw#8M8R;(J%Z~OT;YQ4B1RcFM#S*3Lf}xr@DL&J^Mc{igun@c;nRh{ zMS|h!Lg42F!zT-Yg9XEFLf~kd|Fl+v{ZS6<-Q?}JcHUaH!+#dbO`OgeS4A`D@&dN@mv`yex9VA4pN*Y* z_c?Yn(TDZVn$D)yMDuYKu=BsaOZV1#%Rg(ZXPH-QEHGh^?)p;#o8R9;<8~!8>y`!@ zI=`6JZ)u^MHzl(L2T#(huoBkwdIOd6ikWS3DT^FcLh~2d*y?3FXu`gFHb=cf-)Jah z`@SxrFE-b+hH-c3@@gB)@7O_^%fi>-JpI9LVePM+r_Nuu)8adCvi&>5=wZKd*0JM; zo3FLf^O;m`CgJ=c~_Gp_`&jF6R%-*pDjz5|7H+2ICS zk+Pf4e$Y+B-b|+j`$u}p^B48fh?je4!2M$mOO};AzuHCP;~!J?^ft$eyvMX~tBb-v znb_i~zxcU7ed*mRw6&>`&Mdsa^Strw2aWWP8*k8yn@7-??R!$n?gp@fCo3HT5C553 z(H_l4O`bzDLQpo$(m8O1)Cc$EgP7{*qA@6C^Rd0VQvVK==$^EEoDCCZb3{93Xn zZ)(jj_PMNS`J{?GQAS8PWP#I9xg}ZU!tg%nnrtTXM#TFJX*Gr{(rmiwzNt9xZ7}`a zy-A(c*<#ApzEb9zn@v-sn@Z*=J#T|4O5*hsTTCs4*Z=#e6guQfT#qc|sdj2;DLEk$~oPa zq=5mKk#<^@4+rgP)^%UvGtet%UiDK5~&88?e<}0v{5o9$DEKK zE6L_W+haLSdC!zOzE|!T+-6F>ske7YmH7K%A=z%M&`y&0uJvkyR!*Y6Y&BdX+1kPx zdi??Q1bLv%8{cYBwQQ~A++j6F>(PpD=8Zjr|mHQhWv%FP`x}!JtKXjIHx74 zN$!u7jP?dY@6aMc(RU4oAenn)t#PAdGNy#p8rQqIUvDy;ayOeJAM7;r$bU5^Ms&!T zLxC1sS0H(Hu*MSdZMWjq@+={w$v`EZ7u+Eql6n0Ey?m!3aERacz1uXTeXNEPX8e={ znPLMoj4o}YDYi#9n`1;+&IV*c>Kb=}q##*)-8FH^W zcG0tUt6A!w(^J(b{y*{V{5W@I=p+JF0qdf`m$0&ynDNHtoNN!chN@`ejUMTn diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/wallhead02.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/wallhead/wallhead02.md3 deleted file mode 100644 index ab7ab3ab00d998308c189ec0309a334823c869ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3452 zcmb7`3s6+o9melt-y4Cfpd`iw5d?WZWr5vuWI+Xu4-it6AS@4!5eEg0lxP~-iBwY4 zaT04vHE9xwCUJ_=q)8lWV$8IWakPXU&8@irZL~Ompw` zk;Mr;YiN8>uzd@K9f0~3uedhn4crLJxXe5pjc*ZA8lJr}vBwf7khwj6cbzWL`ug`2c5k`a)KO%~W zRm3vlQDUh8?i7w(A%Ld|M=ln?bA==G1n@-!)}<1d2jD5fk(dYI*}{=n3*aaN>*f)d z2jDrvk(dYIS;CQ6YbR(MC7S?l7LKHC)__}xVB!JdK>^$#963V(pF`mMLj=YEt_nw@ zUjSExBlQnFKn#%g3*h)2aAH2e1n_j>$b|xUK7sG&An<(ve5P=uk(f`o39JEdmvCeT zfqC>Aet#V}_6O%O34JXb_r-qa5DNrw^n`b6Ie~Wpz*iG^x9}d72;fx&ewKlRp8$J+ zV*rkQfg`bZQ;8q~YXHvS7=Y_@kmz6<5kcT*i^Le60XXL9^YrWBIPNiBB*p;Oz%c-i z6^_Jw0DnX{GE@M6n83Oi0`mYoQaCb10FM%moF#zA2}dRg;0eN$DfRhq+!teHhyadf z!WfBX!FpULUI54aFh)iT;P}&s#B;&{9N))FtRWs3z;Pa9WT^mNCLCEVfaBf37`a3M zUo0G%CmdNWfUgveED*p8g(Hgu@U_B`)dY@V{$m2Teh*wve||W=6B5_czc0K(jFH$6 z0Iwu)9{0f*z;QezOXlOvDXil_J7d?sa(fF0SV{MOwqA;7=?j{f-|~3Yv{z-Dk3{o_ z4;Ayh)fWDMVICh&e2fR&NaOh%qIgMn3{OtZ=AQC!9-I9*?+Uf^KNdX2!%eTTOD#M2 zz~@u=`I%sor|NsjS%@yf=l{I)26${vnx%);O6xtbxDxW*-0L zRfSiTe$ApXlK6V5kJYvOj!k5bFq5N@wZ)ufjq{?}`9YOO2M4)Ij&awwZ8KbN+WzG3 za~jzjv(sH?fAVwIS(xQ&Xbg9ic%ESed2U{LyOHm7-evvMoP6i%7n#~HgFioB&30ua z@cC1l*g#epKl9xcb~SJcw+{bR%fI~I%B?LvZGUk8_0oAp_jB7W%yu>H{g#E+47od# za(HoiitA`yE-x&IV4oga#%bSN9#+f~Eio?ZZ~#AfYC2O+1o6((pSat@xA0friFHN# zZ{WC2ro4mq&Wvz<(5~`B*AKH>uWaXju>)*0V+CEOPwS)Xt{>YWM8$8WUZf>t5dXo{#Lw=U*5c!pXyBH zFPQq-cV1cRsUuGG(^NFsPg{)EPi>Py>*K>Qv(`^ti=S(7Yq{&uv|U<1xhuvp(a+&j zH*d8(&Fu@T*|wAM+~jyk>u2Yge=?=j$)A1yS*;&y%Va+TS?${UU_Lk5Pu_vazJ4|9 z99uO#%^kMSmx+FgPDQc{Da(22_+70hyc_6ctMZ`Mi`zEYi@7XV>!Y*ql-qxQJ;!sQ zmm2GECVELq9wK^HVoW$L=1q#oqqH&^=gW@w{`y zm@?FBF1@3V_4D0Eb@+rOK2TrRtZo{`58U+@2#)b$G7RazcA%W zm(&*~eyS|)sWH(1LCPA*p;k-;D$B3DrkbTTxj<5kvUH!(DVtyQV5xpP1uU=oPLjA=5r=Q97naUi6`iQDfGF0j(vfsB;rM}`iWUf#@NqxRi zmHJ83@27uH{kT5X`*Emm%hboLOX@Q+^%VNQy}T|{FAwQ`+*BmFRq{sMyB9x|dU5?5 DRifbd diff --git a/install/installs/Q3Pack/install/baseq3/models/mapobjects/walllamp3.md3 b/install/installs/Q3Pack/install/baseq3/models/mapobjects/walllamp3.md3 deleted file mode 100644 index 9baac1943961822f0557a7d01f3ddf5912e76e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 zcmbW3YfMx}7>4KUo?R3W6)&Kmps~UdMGVI3cJ~YtQK?j@;1!LoiUL^z3Z|e|XksWo zh?l6eiB$SSL4VZR#A-}y6>X!n(TLGnZ=trE*e06B#2W^o^DO6Rt7)`O^5%WtkC|_V z;hXP}IW;G>uMnc7bVY%`d|ZjItaMp%!SagoaUb~ne!s7zEH$}gMXH+d>Y?Zpa z?=d05&EScORv~IUB1KCVV%-!`ldbsq7(8=Bdg978r6uuGax+{#@l16_P7}{@;#1?7 z`N|7Y#y?;4x{C9GScTCF2NgJDrA>(W>d=$)|GI}IJr_~2%BQBka#+8=N-F?^ebKPm zCI~dwf`>y*pu2Awr>_2{eCmJRE5PJ=D~2v-Yqjwx`J$cwo9LD&1y6okBN5M~E zb5ygjegAL9h06`b{im0VW3wB)QAb9|+rwHsH8bL5>)8>;+@^e4xb3cYUcOJB&C{fJ z*IIcc(k8EWY*go6D4RTsq&IYx%D+sywK`j^o+6WMuy=Hl&81~HV-wvP9H!#;x@I`X zJaKDqbZe5W{^@2t<$_y-J<5l4Ew|;|bZf9rd50*{3Ld*PxJs>e+7{au40mgAo)qE_ z`z5tsxdwYjmusiBx{%mJA>eQopVzfHWXuyG;ON$JZEWW)wVx2MNBKLQo3xypLcl)d zZL0PQ9#Q$4s8Z|W?CZ1z!-atJbIzE?qydUS^rUhbc? zjNpz-s*+!?aqyO@Y2G$KQ}1Y)UI5U%88mG54K#1TdMms^K#X^ShOHigW)IepllNx5 zLnVV6w)zR09)pL;3(({u2l=dlwt5rHJb-3CKr@d#oWt4+%~{IM_X@tRma5an#nN^I z-X1+r65ll^PX2i$PCg1~a@)rBL7w~JaCx#e!CUe}m*+(OQUk6(I#UwwH^1uH{8#0T z(I<&>A#2tb>hE=*3-KRZ>VV4vUpR=DMg{bWN|17BvN|8b&kEsz)^Sh=;8=hvr@3t@p$nG0s%Q(EL(dg*w3iABP6FeEe zlzA*BUi;%EFCNC<-Q8&5Vf^uk&Y*|!P3MxNemmTI;IK`0e4Y^W@a5joLI3a*Z;-bH zW(RqPW*7bJE8Y9-c9CxPcS(Dl$kCH$wQF@EMISUx+N-;Bbk~V?t-3o!_ne4x*u^9L z{jMs#PAqav&aKj`yB9f<4=+^lZ=BQaT~+Z@PWkp#6+h*i*pQ(Ix+&$NQGU0TkM+v8{WFj9b}L^%f86~z dT(tJ|8P}SgzT=WT{l?YO({EhYdisqk{BK4^EPen0 diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/entries b/install/installs/Q3Pack/install/baseq3/scripts/.svn/entries deleted file mode 100644 index bd651e86..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/entries +++ /dev/null @@ -1,1082 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/scripts -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-03-02T21:35:45.428388Z -32 -timo - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -base_floor.shader -file - - - - -2012-04-01T16:52:10.023023Z -76f07736637f598b71d3e53ccd0d70ab -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -17698 - -museum.shader -file - - - - -2012-04-01T16:52:10.053025Z -a72e9fe5f9eca2d0d193277edf0af585 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -536 - -skies.shader -file - - - - -2012-04-01T16:52:10.135030Z -a15a65a06bc84c161ffa6f9dd747ceb7 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -20574 - -hell.shader -file - - - - -2012-04-01T16:52:10.154031Z -bfa97d2e2d8bb31b19573e0a0021e5db -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -7833 - -terrademoQ3.shader -file - - - - -2012-04-01T16:52:10.157031Z -9c9869dc3afb1970bebf4a4ad438b665 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -10292 - -common.shader -file - - - - -2012-04-01T16:52:10.162031Z -59dee7ed6e9c6fe07f8e1770c5141d3a -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5620 - -base_wall.shader -file - - - - -2012-04-01T16:52:10.167031Z -c9b6a4598ecaa7a088c12d0b60380a38 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -25377 - -gothic_wall.shader -file - - - - -2012-04-01T16:52:10.197033Z -90ac9c800e2e815fbfcd045c94bebc78 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2110 - -base_door.shader -file - - - - -2012-04-01T16:52:10.208034Z -84240d6a8e4cc39739b3cd3c244784d1 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1542 - -gothic_door.shader -file - - - - -2012-04-01T16:52:10.218034Z -0767707e626606d3b26c873a71d4b49a -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1455 - -base_object.shader -file - - - - -2012-04-01T16:52:10.212034Z -eb93c5e1dd4c52e9ffe66ddc01a6b998 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -531 - -skin.shader -file - - - - -2012-04-01T16:52:10.232035Z -75b1202b5a1fe282b9ce814053688c30 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2442 - -gothic_light.shader -file - - - - -2012-04-01T16:52:10.230035Z -c17f77fcc3ef25034b7b97b91e2e4add -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -31297 - -base_trim.shader -file - - - - -2012-04-01T16:52:10.235035Z -1d2be52751258a2b4e6816e8e58abc3e -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11903 - -base_support.shader -file - - - - -2012-04-01T16:52:10.245036Z -d403a766a17ca6393a98e5be9706cb4f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3779 - -gothic_trim.shader -file - - - - -2012-04-01T16:52:10.271037Z -5051248ff6593df4880a642458269486 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5169 - -liquids.shader -file - - - - -2012-04-01T16:52:10.020023Z -ed6a70ccaa94df18381f59a5991f2ae5 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -13815 - -entities.def -file - - - - -2012-04-01T16:52:10.071026Z -b86083ec3cc3c2510eee738b0b8ed5e0 -2008-02-28T02:40:44.363662Z -30 -timo - - - - - - - - - - - - - - - - - - - - - -139167 - -ctf.shader -file - - - - -2012-04-01T16:52:10.074026Z -fde130d5d5d3817fa44ea7e104b1567d -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11611 - -default_project.proj -file - - - - -2012-04-01T16:52:10.078026Z -7dbc3bc571b94f7311c0147f1bce9a89 -2008-03-02T21:35:45.428388Z -32 -timo - - - - - - - - - - - - - - - - - - - - - -6414 - -gothic_floor.shader -file - - - - -2012-04-01T16:52:10.132029Z -dc0cdcf46e12dc5584a33697ae83727d -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4627 - -default_shaderlist.txt -file - - - - -2012-04-01T16:52:10.138030Z -e0553714a5a63c8410b1a0cf46f9952a -2008-02-28T02:40:44.363662Z -30 -timo - - - - - - - - - - - - - - - - - - - - - -1186 - -test.shader -file - - - - -2012-04-01T16:52:10.141030Z -aa163245e20ee9b97e630112d8787aa9 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -18145 - -models.shader -file - - - - -2012-04-01T16:52:10.148030Z -706440a10f4caadaf5c1876b914731cd -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -106019 - -gfx.shader -file - - - - -2012-04-01T16:52:10.151030Z -0008c745b3d690c65a9b78a103d4adc6 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -25381 - -gothic_block.shader -file - - - - -2012-04-01T16:52:10.159031Z -c4d2bdfb36b65cec5d485a232b6da4d4 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11251 - -sfx.shader -file - - - - -2012-04-01T16:52:10.222035Z -71719108e0590d3fdbca0ebf41c64523 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -67806 - -base_light.shader -file - - - - -2012-04-01T16:52:10.227035Z -ed4c32860fa809bab26f07e31dd33634 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -31565 - -organics.shader -file - - - - -2012-04-01T16:52:10.242036Z -7bc525a954fff0c41d1cccb5bac76f50 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -458 - -base_button.shader -file - - - - -2012-04-01T16:52:10.238035Z -683222c51ed526d8e5bcdc0d41dcbba4 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -441 - -gothic_button.shader -file - - - - -2012-04-01T16:52:10.268037Z -dd7ba49d21373128ab8ecd1060d8fe28 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -382 - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_button.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_button.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_button.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_door.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_door.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_door.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_floor.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_floor.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_floor.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_light.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_light.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_light.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_object.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_object.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_object.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_support.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_support.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_support.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_trim.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_trim.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_trim.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_wall.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_wall.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/base_wall.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/common.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/common.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/common.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/ctf.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/ctf.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/ctf.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gfx.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gfx.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gfx.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_block.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_block.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_block.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_button.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_button.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_button.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_door.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_door.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_door.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_floor.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_floor.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_floor.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_light.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_light.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_light.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_trim.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_trim.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_trim.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_wall.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_wall.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/gothic_wall.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/hell.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/hell.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/hell.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/liquids.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/liquids.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/liquids.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/models.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/models.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/models.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/museum.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/museum.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/museum.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/organics.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/organics.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/organics.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/sfx.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/sfx.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/sfx.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skies.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skies.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skies.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skin.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skin.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/skin.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/terrademoQ3.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/terrademoQ3.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/terrademoQ3.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/test.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/test.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/prop-base/test.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_button.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_button.shader.svn-base deleted file mode 100644 index f9de7549..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_button.shader.svn-base +++ /dev/null @@ -1,21 +0,0 @@ - -textures/base_button/shootme2 -{ - qer_editorimage textures/base_button/metal3_3_shootme.tga - q3map_lightimage textures/base_button/shootme_glow.tga - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_support/metal3_3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_button/shootme_glow.tga - rgbGen wave sin 0.5 1.0 0 .3 - blendFunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_door.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_door.shader.svn-base deleted file mode 100644 index e697701f..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_door.shader.svn-base +++ /dev/null @@ -1,97 +0,0 @@ - -textures/base_door/shinymetaldoor -{ - - { - //map $lightmap - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - rgbGen identity - } - - - { - map textures/base_door/shinymetaldoor.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map textures/base_door/quake3sign.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} - -textures/base_door/shinymetaldoor_outside -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - rgbGen identity - } - - - { - map textures/base_door/shinymetaldoor_outside.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map textures/base_door/quake3sign_outside.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} - -textures/base_door/shinymetaldoor_outside3a2 -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - rgbGen identity - } - - - { - map textures/base_door/shinymetaldoor_outside3a2.tga - blendFunc blend - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc filter - } - - { - map textures/base_door/shinymetaldoor_outside3glow.tga - blendFunc add - rgbGen wave sin .9 .1 0 5 - } - -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_floor.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_floor.shader.svn-base deleted file mode 100644 index b6c754aa..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_floor.shader.svn-base +++ /dev/null @@ -1,900 +0,0 @@ -textures/base_floor/clang_floor3blava -{ - surfaceparm nolightmap - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clang_floor3blava.tga - blendfunc blend - - } - -} - -textures/base_floor/clangdark -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow3 -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clangdark_ow3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangdarkspot -{ - surfaceparm metalsteps - //{ - // map textures/base_floor/clangdarkspot.tga - // rgbGen identity - //} - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangdarkspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangfloor_noisy -{ - qer_editorimage textures/base_floor/clang_floor.tga - surfaceparm metalsteps - { - map $lightmap - rgbGen identity - } - - { - map textures/base_floor/clang_floor.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbgen identity - - } - -} - -textures/base_floor/clangspot2 -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangspot2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/concretefloor1 -{ - - { - map textures/base_wall/chrome_env.tga - tcgen environment - rgbgen wave sin .25 0 0 0 - } - - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ZERO GL_SRC_ALPHA - tcmod scale .1 .1 - rgbgen identity - } - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ONE GL_SRC_ALPHA - rgbgen identity - } - - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - - - -} - -textures/base_floor/cybergrate2 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/base_floor/cybergrate2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/cybergrate3 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/sfx/hologirl.tga - blendFunc add - tcmod scale 1.2 .5 - tcmod scroll 3.1 1.1 - - } - { - map textures/base_floor/cybergrate3.tga - alphaFunc GE128 - depthWrite - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/diamond2c_ow -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/diamond2c_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond2cspot -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/base_floor/diamond2cspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond_noisy -{ - qer_editorimage textures/base_floor/diamond2.tga - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/diamond2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/floor3_3dark_ow -{ - - { - map textures/effects/envmapblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/base_floor/floor3_3dark_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/base_floor/hfloor3 -{ - //deformVertexes wave 100 sin 3 2 .1 3 - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/hfloor3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_floor/hfloor3.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/metalbridge04dbroke -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/metalbridge04dbroke.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/nomarkstone_1 -{ - qer_editorimage textures/base_floor/smallstone.tga - q3map_lightimage textures/base_floor/smallstone.tga - q3map_globaltexture - surfaceparm nomarks - surfaceparm noimpact - - // A stone that isn't marked by weapons. Used below red fog in pj_dm10 - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/smallstone.tga - tcMod scale 2 2 - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/pjgrate1 -{ - surfaceparm metalsteps - cull none - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate1.tga - tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/pjgrate2 -{ - surfaceparm metalsteps - cull none - - // A RUSTED GRATE THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate2.tga - tcMod scale 2.0 2.0 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - rgbGen identity - } -} - -textures/base_floor/pool_floor2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_floor2.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_floor3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_side2.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/proto_grate -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate3 -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate3.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate4 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm nonsolid //Tim's fuckage - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate4.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate2 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate2.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/rusty_pentagrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - - cull none - nopicmip - // A RUSTY and Eeevil grate THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/rusty_pentagrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/skylight1 -{ - q3map_lightimage textures/base_floor/skylight1_lm.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/skylight1.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 2 0 7.7 - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 5 1 5.1 - } - -} - -textures/base_floor/skylight_spec -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/skylight_spec.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_floor/techfloor -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztpink.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - //clampmap textures/gothic_block/blocks18cgeomtrn2.tga - clampmap textures/base_floor/techfloor2.tga - blendFunc blend - tcmod rotate 170 - tcMod stretch sin .8 0.2 0 .4 - rgbGen identity - } - { - map textures/base_floor/techfloor.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/techfloor2 -{ - cull disable - //surfaceparm trans - surfaceparm nomarks - //nomipmaps - - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 70 - tcMod stretch sin .8 0.2 0 .3 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate -50 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/base_floor/tilefloor7_ow -{ - q3map_lightimage textures/base_floor/tilefloor7_owfx.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/tilefloor7_ow.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_light.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_light.shader.svn-base deleted file mode 100644 index 07ade964..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_light.shader.svn-base +++ /dev/null @@ -1,1683 +0,0 @@ -textures/base_light/baslt4_1_2k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 2000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/baslt4_1_4k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 4000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light -{ - q3map_surfacelight 500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light_300 -{ - qer_editorimage textures/base_light/border11light.tga - q3map_lightimage textures/base_light/border11light.blend.tga - - q3map_surfacelight 235 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border7_ceil50 -{ - qer_editorimage textures/base_light/border7_ceil50.tga - q3map_surfacelight 100 - // Square dirty white llight - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border7_ceil50.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border7_ceil50glow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_22a.tga - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_trans -{ - qer_editorimage textures/base_light/ceil1_22a.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square rich blue light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_30.tga - q3map_surfacelight 8000 -// light 1 - // Square rich blue light (8k light wattage - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_trans -{ - qer_editorimage textures/base_light/ceil1_30.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_10k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_1k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_2k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_5k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_37 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_37.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_37.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38 -{ - surfaceparm nomarks - q3map_surfacelight 2500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_10k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_20k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_30k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_40k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_50k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_70k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_90k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_39 -{ - surfaceparm nomarks - q3map_surfacelight 7500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_4 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_4.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_4.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil_white5k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/cornerlight -{ - q3map_lightimage textures/base_light/cornerlight.glow.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/cornerlight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/cornerlight.glow.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } -} - -textures/base_light/geolight -{ - q3map_lightimage textures/base_light/geolight_glow.tga - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/geolight.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_light/geolight_glow.tga - blendFunc add - rgbgen wave sin .575 .025 0 10 - } - -} - -textures/base_light/jaildr03_1 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/jaildr03_2 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_2.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/base_light/jaildr1_3 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr1_3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr1_3.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_1500 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_3000 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_5000 -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_1500 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_2000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_5000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_800 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 800 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1dark -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 6000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_2000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_5000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_10k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/xlight5.blend.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_15k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/light5.blend.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_3000 -{ - qer_editorimage textures/base_light/light5.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 3000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_5k -{ - qer_editorimage textures/base_light/light5.tga - //light 1 - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 5000 - { - map textures/base_light/light5.tga - rgbGen identity - } -} - -textures/base_light/lt2_2000 -{ - qer_editorimage textures/base_light/light2.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin 0.6 0.1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_4000 -{ - qer_editorimage textures/base_light/light2.tga - //light 1 - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_8000 -{ - qer_editorimage textures/base_light/light2.tga - surfaceparm nomarks - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite -{ - q3map_surfacelight 2500 - surfaceparm nomarks -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2 -{ - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2_1000 -{ - qer_editorimage textures/base_light/patch10_pj_lite2.tga - q3map_surfacelight 1000 - surfaceparm nomarks - //light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1K -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - // Square dirty white - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1p5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/proto_light -{ - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_light_2k -{ - qer_editorimage textures/base_light/proto_light.tga - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_lightred -{ - q3map_lightimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 300 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - } - -} - -textures/base_light/proto_lightred2 -{ - q3map_lightimage textures/base_light/proto_lightred.tga - qer_editorimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - rgbGen wave square .5 .5 0 1 - } - -} - -textures/base_light/runway -{ - q3map_lightimage textures/base_light/runway_glow.tga - surfaceparm nomarks - q3map_surfacelight 400 - { - map textures/base_light/runway_glow.tga - tcmod scale 1 .25 - rgbgen wave square -1 2 .5 8 - tcmod scroll 0 .5 - } - - { - map textures/base_light/runway.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/base_light/runwayb.tga - blendFunc add - rgbGen identity - } - - -} - -textures/base_light/s_proto_light -{ - q3map_lightimage textures/base_light/s_proto_lightmap.tga - qer_editorimage textures/base_light/proto_light.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/scrolllight -{ - q3map_lightimage textures/sfx/scrolllight2.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - Map textures/base_light/scrolllight.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1 0 - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -2 0 - } - - -} - -textures/base_light/trianglelight -{ - q3map_lightimage textures/base_light/trianglelight.blend.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/trianglelight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/trianglelight.blend.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } - - -} - -textures/base_light/wsupprt1_12 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - //light1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_1 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_10k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_110k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 110000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_15k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_20k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_2k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_30k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_500k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 500000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_50k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_70k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_90k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_a -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_b -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_object.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_object.shader.svn-base deleted file mode 100644 index 964e3345..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_object.shader.svn-base +++ /dev/null @@ -1,30 +0,0 @@ - -textures/base_object/boxQ3_3 -{ - // A red box side with a specular map on it - { - map $lightmap - rgbGen identity - } - { - map textures/base_object/boxQ3_3.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } -} - -textures/base_object/boxq3_4 -{ - // A golden yellow box with a specular map on it - { - map $lightmap - rgbGen identity - } - { - map textures/base_object/boxq3_4.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_support.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_support.shader.svn-base deleted file mode 100644 index 03647ee1..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_support.shader.svn-base +++ /dev/null @@ -1,211 +0,0 @@ - -textures/base_support/cable_trans -{ - - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_support/cable_trans.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_support/grate1_3 -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/base_support/grate1_3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - alphaGen lightingSpecular - rgbGen identity - } - -} - -textures/base_support/pj_metal14_1 -//Paul Jaquays uses this on the tops of metal frameworks -{ - qer_editorimage textures/base_support/metal14_1.tga - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_support/metal14_1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/base_support/support1rust -{ - //deformVertexes wave 100 sin 3 2 .1 3 - { - rgbGen identity - map $lightmap - } - { - map textures/base_support/support1rust.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_trim/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_support/support1rust.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_support/support1shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_support/support1shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - - -textures/base_support/support2rust -{ - qer_editorimage textures/base_support/support1rust.tga - { - rgbGen identity - map $lightmap - } - { - map textures/base_support/support1rust.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_support/x_support -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/x_support.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_support/x_support2 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm playerclip - surfaceparm nonsolid - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/x_support2.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_support/x_support3 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/x_support3.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_support/z_support -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/z_support.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_trim.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_trim.shader.svn-base deleted file mode 100644 index c0582be3..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_trim.shader.svn-base +++ /dev/null @@ -1,591 +0,0 @@ - -textures/base_trim/border11_250 -{ - qer_editorimage textures/base_trim/border11light.tga - q3map_surfacelight 250 - q3map_lightimage textures/base_trim/border11light.glow.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border11light.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border11light.glow.tga - blendfunc GL_ONE GL_ONE - rgbgen wave sin .9 .1 0 10 - } -} - -textures/base_trim/border11light -{ - q3map_surfacelight 500 - Q3map_lightimage textures/base_trim/border11light.glow.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border11light.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border11light.glow.tga - blendfunc GL_ONE GL_ONE - rgbgen wave sin .9 .1 0 10 - } -} - -textures/base_trim/border12b -{ - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border12b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border12bfx.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/border12b_pj -{ - qer_editorimage textures/base_trim/border12b.tga - q3map_surfacelight 150 - q3map_lightimage textures/base_trim/border12bfx.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border12b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border12bfx.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/dark_tin2 -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen vertex - } - { - map textures/base_trim/dark_tin2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_trim/dark_tin2_trans -{ - qer_editorimage textures/base_trim/dark_tin2.tga - surfaceparm nonsolid - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen vertex - } - { - map textures/base_trim/dark_tin2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_trim/deeprust_trans -{ - qer_editorimage textures/base_trim/deeprust.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_trim/deeprust.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_trim/electricwall -{ - qer_editorimage textures/organics/wire02a_f.tga - q3map_surfacelight 400 - - { - map $lightmap - rgbGen identity - } - { - map textures/organics/wire02a_f.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/organics/wire02a_f.tga - blendFunc GL_ONE GL_ONE - } - { - map textures/sfx/electric2.blend.tga - rgbGen wave sin 0.6 1 0 2 - tcMod scroll 0.53 0.43 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/panel_glo -{ - - { - map textures/sfx/firegorre2.tga - - tcMod turb 0 .6 0 0.06 - tcmod scale .53 .61 - tcmod scroll 0 4 - blendFunc GL_ONE GL_ZERO - rgbGen wave sin 1 1 0 .1 - } - { - map textures/base_trim/panel_glo.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/panel_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/panel_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/panelbrn010w -{ - q3map_lightimage textures/base_trim/panelbrn010wfx.tga - - { - map textures/base_trim/panelbrn010w.tga - } - - { - map textures/sfx/hologirl2.tga - tcmod scale .4 .4 - tcmod scroll 6 2 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/base_trim/panelbrn010w.tga - blendfunc blend - - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_trim/pewter_nonsolid -{ - qer_editorimage textures/base_trim/dirty_pewter.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_trim/dirty_pewter.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_trim/pewter_shiney -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/pewter_shiney.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/pewter_spec -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_trim/pewter_spec.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -textures/base_trim/proto_comp -{ - { - map textures/base_trim/proto_comp2.tga - tcmod scroll 0 -.2 - rgbGen wave sin .5 .5 0 3 - rgbGen identity - } - { - clampmap textures/sfx/console03.tga - tcmod rotate -33 - tcMod stretch sin .8 0 0 0 - blendfunc add - rgbGen wave sin .6 0 0 0 - } - { - clampmap textures/sfx/console02.tga - tcmod rotate -333 - tcMod stretch sin .8 0 0 0 - blendfunc add - rgbGen wave sin .3 0 0 0 - } - { - map textures/effects/tinfx2c.tga - tcGen environment - blendfunc add - rgbGen identity - } - { - map textures/base_trim/proto_comp.tga - blendfunc blend - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/base_trim/proto_fence -{ - surfaceparm trans - cull none - nopicmip - - { - map textures/base_trim/proto_fence.tga - tcMod scale 3 3 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_trim/spiderbit -{ - q3map_lightimage textures/base_trim/spiderbit_fx.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/spiderbit.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_trim/spiderbit_fx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .1 .5 0 7 - } - -} - -textures/base_trim/spiderbite -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .3 0 .2 - tcmod scroll 6 .7 - tcmod scale .4 1 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_trim/spiderbite.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcMod stretch sin .8 0.4 0 .2 - tcmod scroll .3 0 - rgbGen identity - } - { - map textures/base_trim/spiderbite.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcMod stretch sin .8 0.2 0 .1 - tcmod scroll -.5 0 - rgbGen identity - } - { - map textures/base_trim/spiderbite.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/spidertrim3 -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/spidertrim3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/spidertrim4 -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/spidertrim4.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/techborder -{ - q3map_surfacelight 300 - q3map_lightimage textures/base_trim/techborder_fx.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/techborder.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/techborder_fx.tga - //tcmod scale .1 1 - tcmod scroll .1 0 - - blendfunc GL_ONE GL_ONE - } - { - map textures/base_trim/techborder_fx.tga - tcmod scale .1 1 - tcmod scroll .1 0 - - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/tin -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_trim/tin.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_trim/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_trim/tin.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_trim/wires01 -{ - cull disable - surfaceparm alphashadow - deformVertexes autoSprite2 - surfaceparm trans - { - map textures/base_trim/wires01.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_trim/wires01_ass -{ - cull disable - surfaceparm alphashadow - deformVertexes autoSprite2 - { - map textures/base_trim/wires01_ass.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_trim/wires02 -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - { - map textures/base_trim/wires02.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_trim/xborder12b -{ - qer_editorimage textures/base_trim/border12b.tga - q3map_surfacelight 100 - q3map_lightimage textures/base_trim/border12bfx.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border12b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border12bfx.tga - blendfunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_wall.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_wall.shader.svn-base deleted file mode 100644 index 82730f68..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/base_wall.shader.svn-base +++ /dev/null @@ -1,1406 +0,0 @@ - -textures/base_wall/atech1_alpha -{ - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atech1_alpha.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/atechengine_ax -{ - q3map_lightimage textures/base_wall/atechengine_ax2.tga - q3map_surfacelight 300 - { - map textures/sfx/proto_zzztpink.tga - tcmod rotate 60 - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atechengine_ax.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/basewall01_ow -{ - q3map_lightimage textures/base_wall/basewall01_owfx.tga - - { - map $lightmap - rgbGen identity - } - { - map textures/base_wall/basewall01_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_wall/basewall01_owfx.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 0 .5 - } - -} - -textures/base_wall/basewall01bit -{ - q3map_lightimage textures/base_wall/basewall01bitfx.tga - q3map_surfacelight 300 - { - map textures/base_wall/basewall01bit.tga - rgbGen identity - } - - { - map textures/base_wall/basewall01bitfx.tga - blendfunc GL_ONE GL_ONE - tcmod scroll 3.3 1 - rgbGen wave sin .5 0.5 0 5 - } - { - map textures/effects/envmap2.tga - tcGen environment - tcmod scale 4 4 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/base_wall/basewall01bit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - -} - -textures/base_wall/bluemetal1b_chrome -{ - qer_editorimage textures/base_wall/bluemetal1b_shiny.tga - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetal1b_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/bluemetal2_noisy -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm metalsteps - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny_trans -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetalsupport2 -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/bluemetalsupport2c -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1vent -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1vent.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2clight -{ - surfaceparm nomarks - q3map_surfacelight 500 - - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2clight.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2clight.glow.tga - blendFunc add - rgbgen wave sawtooth .6 .1 0 4 - } -} - -textures/base_wall/bluemetalsupport2d_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2d_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e2 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e2.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2eye -{ - - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/bluemetalsupport2eyel.tga - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2eye.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - { - map textures/base_wall/bluemetalsupport2eyel.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } -} - -textures/base_wall/bluemetalsupport2f -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2f.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2fline -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2fline_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2fline.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2fline_glow.tga - blendFunc add - rgbGen wave sin .5 .5 0 1 - } - - -} - -textures/base_wall/bluemetalsupport2ftv -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2ftv_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2ftv.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2ftv_glow.tga - blendFunc add - rgbGen wave sawtooth .4 .05 0 10 - } - - -} - -textures/base_wall/blumtlspt2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/blumtlspt2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/blumtlspt2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/c_met5_2_trans -{ - qer_editorimage textures/base_wall/c_met5_2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_wall/c_met5_2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_wall/chrome_metal -{ - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - - } - - { - map textures/base_wall/chrome_metal.tga - blendFunc GL_ONE GL_ONE - detail - tcMod scale 0.0693 0.0712 - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - - } - - - -} - -textures/base_wall/comp3 -{ - q3map_lightimage textures/base_wall/comp3env.tga - qer_editorimage textures/base_wall/comp3_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3text.tga - rgbGen identity - tcmod scroll 3 1 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b_dark -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3c -{ - qer_editorimage textures/base_wall/comp3c_qer.tga - - { - map textures/base_wall/comp3env.tga - rgbGen identity - tcGen environment - } - - { - map $lightmap - tcGen environment - blendFunc GL_ONE GL_ONE - } - - { - map textures/base_wall/comp3c.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/concrete_ow -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/concrete_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/dooreye -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye2 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye3 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/girders1i_yellofin -{ - qer_editorimage textures/base_wall/girders1i_yellodark_fin.tga - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm playerclip - surfaceparm nonsolid - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_wall/girders1i_yellodark_fin.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_wall/glass01 -{ - qer_editorimage textures/base_wall/shiny3.tga - surfaceparm trans - cull none - qer_trans 0.5 - - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/glass_frame -{ - cull none - surfaceparm alphashadow - - { - map textures/effects/tinfx2.tga - blendFunc GL_ONE GL_ONE - tcgen environment - rgbGen identity - } - { - map textures/base_wall/glass_frame.tga - alphaFunc GE128 - depthWrite - //rgbGen vertex - //blendfunc blend - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/grill -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/grill.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/main_q3abanner -{ - q3map_lightimage textures/base_wall/main_q3abanner.tga - q3map_surfacelight 100 - - - { - map textures/base_wall/main_q3abanner.tga - rgbGen wave square 0 1 0 .5 - } - - { - map textures/base_wall/comp3text.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3textb.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map $lightmap - tcgen environment - tcmod scale .5 .5 - rgbGen wave sin .25 0 0 0 - blendfunc add - } -} - -textures/base_wall/medal_impressive -{ - qer_editorimage textures/base_wall/medal_impressive.tga - q3map_surfacelight 100 - - - { - animMap .25 textures/base_wall/medal_impressive.tga textures/base_wall/medal_gauntlet.tga textures/base_wall/medal_excellent.tga textures/base_wall/medal_accuracy.tga textures/base_wall/medal_victory.tga textures/base_wall/medal_frags.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - tcmod scroll 5 .25 - rgbGen wave inversesawtooth 0 1 0 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_wall/metalfloor_wall_14_specular -{ - qer_editorimage textures/base_wall/metalfloor_wall_14_specular.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/metalfloor_wall_14_specular.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/metalfloor_wall_15ow -{ - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ONE - rgbGen identity - - } - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - //blendfunc dst_color gl_zero - } - -} - -textures/base_wall/metaltechgeomtrn -{ - - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/patch10shiny -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/patch10shiny_trans -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/protobanner -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - deformVertexes wave 30 sin 0 3 0 .2 - deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_ow -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - deformVertexes wave 100 sin 0 1 0 .1 - deformVertexes wave 100 sin 0 1 0 .2 - - { - map textures/base_wall/protobanner_ow.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_still -{ - qer_editorimage textures/base_wall/protobanner.tga - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - //deformVertexes wave 30 sin 0 3 0 .2 - //deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/q3tourneyscreen -{ - qer_editorimage textures/base_wall/q3tourney1.tga - q3map_surfacelight 100 - - - - { - animMap .25 textures/base_wall/q3tourney1.tga textures/base_wall/q3tourney2.tga textures/base_wall/q3tourney3.tga textures/base_wall/q3tourney4.tga textures/base_wall/q3tourney5.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - rgbGen wave inversesawtooth 0 1 0 .25 - tcmod scroll 5 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - -} - -textures/base_wall/shinybluemetal1 -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/shinybluemetal1.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/shinygrate1_4 -{ - - { - map $lightmap - tcgen environment - tcmod scale .25 .25 - rgbgen identity - } - - - { - map textures/base_wall/shinygrate1_4.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - - -} - -textures/base_wall/steed1gf -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/steed1gf.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/symbol_bluelt1 -{ - q3map_lightimage textures/base_wall/symbol_bluelt1_mask.tga - q3map_surfacelight 100 -// light 1 - - { - map $lightmap - rgbGen identity - } - - - { - map textures/base_wall/symbol_bluelt1.tga - blendfunc filter - rgbgen identity - } - - { - map textures/base_wall/symbol_bluelt1_mask.tga - blendfunc add - rgbgen wave sawtooth .2 .05 0 7 - } -} - -textures/base_wall/train1 -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .1 - rgbGen identity - } - - - { - map textures/base_wall/train1.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/common.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/common.shader.svn-base deleted file mode 100644 index 1cd1fe40..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/common.shader.svn-base +++ /dev/null @@ -1,321 +0,0 @@ - -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip -} - -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm clusterportal -} - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm nodamage -} - -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm donotenter -} - - -// never used -// -//textures/common/energypad -//{ -// qer_editorimage textures/sfx/bluegoal.tga -// surfaceparm nolightmap -// cull twosided -// { -// map textures//bluegoal.tga -// blendFunc GL_ONE GL_SRC_ALPHA -// tcGen environment -// tcMod turb 0 0.25 0 0.05 -// } -//} - -textures/common/full_clip // silly shader, use weapclip instead -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/hint // should NOT use surfaceparm hint.. strange but true -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm hint // ydnar: yes it should. -} - -textures/common/invisible // solid, transparent polygons, casts shadows -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/mirror1.tga - surfaceparm nolightmap - portal - - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } - -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip - surfaceparm trans -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nolightmap - surfaceparm nodraw -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm nodrop -} - - -textures/common/noimpact -{ - qer_editorimage textures/common/nolightmap.tga - surfaceparm noimpact -} - -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm origin -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - tcMod turb 0 0.25 0 0.05 - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - - } -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks -} - -textures/common/metalclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/ctf.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/ctf.shader.svn-base deleted file mode 100644 index 6a280383..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/ctf.shader.svn-base +++ /dev/null @@ -1,577 +0,0 @@ - -textures/ctf/blue_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - sort additive - - { - - clampmap textures/ctf/blue_telep.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/blue_telep2.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/ctf_arch_b_shiny -{ - qer_editorimage textures/ctf/ctf_arch_b.tga - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_arch_r_shiny -{ - qer_editorimage textures/ctf/ctf_arch_r.tga - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_blueflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .5 .1 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_blueflag.tga - rgbGen identity - } - { - map textures/effects/redflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_blueflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_redflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .3 .2 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_redflag.tga - rgbGen identity - } - { - map textures/effects/blueflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_redflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_tower_bluefin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_bluefin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_bluefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/ctf_tower_redfin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_redfin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_redfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/killblockctf_b -{ - qer_editorimage textures/gothic_block/killblockgeomtrn.tga - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/killblockgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/killblockctf_r -{ - qer_editorimage textures/gothic_block/blocks15cgeomtrn.tga - - { - map textures/sfx/fire_ctfred.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks15cgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/metalbase09_bluekillblock_shiny -{ -qer_editorimage textures/ctf/metalbase09_bluekillblock.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/metalbase09_bluekillblock.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_cfin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_cfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_csansfacefin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_csansfacefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_d3fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_d3fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - - { - - clampmap textures/ctf/red_telep.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/red_telep2.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/tallblue_1L_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1L_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1L_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_1R_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1R_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1R_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2b_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2b_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4bsmall_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4bsmall_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4c_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_4c_fin.tga - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4c_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_5esmallb_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_5esmallb_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/test2_r_trans -{ - qer_editorimage textures/ctf/test2_r.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/ctf/test2_r.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/ctf/test2_trans -{ - qer_editorimage textures/ctf/test2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/ctf/test2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_project.proj.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_project.proj.svn-base deleted file mode 100644 index 42ccdb49..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_project.proj.svn-base +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_shaderlist.txt.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_shaderlist.txt.svn-base deleted file mode 100644 index 04ad5219..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/default_shaderlist.txt.svn-base +++ /dev/null @@ -1,47 +0,0 @@ -//**********************************************************************// -// 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 -base_button -base_door -base_floor -base_light -base_object -base_support -base_trim -base_wall -common -ctf -//eerie -//gfx -//hell -gothic_block -gothic_button -gothic_door -gothic_floor -gothic_light -gothic_trim -gothic_wall -liquids -//menu -//models -organics -sfx -skin -skies \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/entities.def.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/entities.def.svn-base deleted file mode 100644 index ed7260c6..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/entities.def.svn-base +++ /dev/null @@ -1,1747 +0,0 @@ -// Quake3 Arena entity definition file for Q3Radiant -// Based on draft by Suicide 20 7.30.99 and inolen 9-3-99 -// Upgraded by Eutectic: eutectic@ritualistic.com -// (visible models added by raYGunn - paths provided by Suicide 20) -// (terrain information added to func_group entity by Paul Jaquays) -// Q3Map2 entitys/keys added by ydnar -// Version: 1.6 -// Last updated: 2003-11-28 - -//============================================================================= - -// Q3Map2 entities - -//============================================================================= - -/*QUAKED _decal (0 1.0 0) ? --------- KEYS -------- -"target" : the name of the entity targetted at for projection --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a decal to be projected. Should contain 1 or more patch meshes (curves) and target an info_null entity. The distance between the center of the _decal entity and the target is the axis and distance of projection. -*/ - -/*QUAKED _skybox (0.77 0.88 1.0) (-4 -4 -4) (4 4 4) --------- 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. --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a the origin of a skybox (a wholly contained, seperate area of the map), similar to some games' portal skies. When compiled with Q3Map2, the skybox 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. -*/ - - -//============================================================================= - -AMMO_* ENTITIES - -//============================================================================= - -/*QUAKED ammo_bfg (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -BFG ammo. Gives the player 15 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 15). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/bfgam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_bullets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun ammo. Gives the player 50 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/machinegunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_cells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma Gun ammo. Gives the player 30 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/plasmaam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_grenades (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/grenadeam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_lightning (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun ammo. Gives the player 60 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 60). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/lightningam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_rockets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/rocketam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_shells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/shotgunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_slugs (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/railgunam.md3"*/ - -//============================================================================= - -FUNC_* ENTITIES - -//============================================================================= - -/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS -Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked. --------- KEYS -------- -speed : amount of time in seconds for one complete oscillation cycle (default 4). -height : sets the amount of travel of the oscillation movement (default 32). -phase : sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav - See Notes). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of sound and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will bob along the X axis. -Y_AXIS : entity will bob along the Y axis. --------- NOTES -------- -In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_button (0 .5 .8) ? -When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again. --------- KEYS -------- -angle : determines the direction in which the button will move (up = -1, down = -2). -target : all entities with a matching targetname will be triggered. -speed : speed of button's displacement (default 40). -wait : number of seconds button stays pressed (default 1, -1 = return immediately). -lip : lip remaining at end of move (default 4 units). -health : (default 0) if set to any non-zero value, the button must take damage (any amount) to activate. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER -Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it. --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately) -lip : lip remaining at end of move (default 8) -targetname : if set, a func_button or trigger is required to activate the door. -health : (default 0) if set to any non-zero value, the button must take damage (any amount) to activate. -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -team: assign the same team name to multiple doors that should operate together (see Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way. --------- NOTES -------- -Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_group (0 .5 .8) ? -This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this. --------- OLD TERRAIN KEYS (note: obsolete with Q3Map2) -------- -alphamap : this is the path/name for the art file used to guide the mapping of textures on the terrain surface. -layers : this integer value is the number unique root shaders that will be use on the terrain. -shader : this is the path to the metashader used to assign textures to the terrain entity. -terrain : this is an on/off flag. When set to 1, the entity becomes a terrain entity. Note: unecessary when compiling with Q3Map2. See Q3Map2 keys. --------- Q3MAP2 KEYS -------- -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.*/ - -//============================================================================= - -/*QUAKED func_pendulum (0 .5 .8) ? -Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum instantly kills a player. --------- KEYS -------- -angle : angle offset of axis of rotation from default X axis (default 0). -speed : angle of swing arc in either direction from initial position (default 30). -phase : sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_plat (0 .5 .8) ? -Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. There are no proper sounds for this entity, only beep noises. It will spawn in the game and work properly but it sounds silly (see Notes). --------- KEYS -------- -speed : determines how fast the plat moves (default 150). -lip : lip remaining at end of move (default 16). Has no effect if "height" is set. -height : if set, this will determine the total amount of vertical travel of the plat. -dmg : damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked. -targetname : if set, the trigger that points to this will raise the plat each time it fires. The plat raises and comes back down a second later if no player is on it. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS -Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable. --------- KEYS -------- -speed : determines how fast entity rotates (default 100). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will rotate along the X axis. -Y_AXIS : entity will rotate along the Y axis. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_static (0 .5 .8) ? -Static non-solid bspmodel. Can be used for conditional walls and models. --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -targetname : NOT SUPPORTED BY RENDERER - if set, a func_button or trigger can make entity disappear from the game (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: it will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static. - -Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON -Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off. --------- KEYS -------- -wait : delay in seconds between each triggering of its targets (default 1). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -target : this points to the entities to trigger. -targetname : a func_button or trigger that points to this will toggle the timer on/off when activated. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_ON : timer will start on in the game and continuously fire its targets. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED func_train (0 .5 .8) ? -Trains are moving solids that follow a string of path_corner entities. Trains in Q3A are very basic, they also require an origin brush (see Notes). --------- KEYS -------- -speed : speed of displacement of train (default 100 or overridden by speed value of path). -target : this points to the first path_corner of the path which is also the spawn location of the train's origin. -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -1. Trains always start on in the game. -2. Trains do not damage the played when blocked. -3. Trains cannot emit sound. -4. Trains are not triggerable or toggle-able. -5. Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it. - -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -HOLDABLE_* ENTITIES - -//============================================================================= - -/*QUAKED holdable_medkit (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Medkit that can be picked up and used later. Brings the player's health back to 100 when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/medkit.md3"*/ - -//============================================================================= - -/*QUAKED holdable_teleporter (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Teleporter item that can be picked up and used later. Teleports the player to a random player spawn point when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/teleporter.md3"*/ - -//============================================================================= - -INFO_* ENTITIES - -//============================================================================= - -/*QUAKED info_camp (0 .5 0) (-8 -8 -8) (8 8 8) -This atttracts bots which have a camping preference in their AI characteristics. It should be placed at least 32 units away from any brush surface. --------- KEYS -------- -range : number of units that the bot can move away from camp entity while camping on it. -weight : number that is compared against the weight assigned to all the other camp spots in the map to determine if a bot chooses to camp there. The value is normalized against all other weight values. --------- NOTES -------- -Examples of bots which have a high camping preference are: Razor, Tank Jr., Grunt, Patriot and Doom. Examples of bots which have a low camping preference are: Klesk, Mynx, Sarge, Keel and Xaero.*/ - -//============================================================================= - -/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_player_deathmatch (1 0 1) (-16 -16 -24) (16 16 32) INITIAL -Normal player spawning location for Q3A levels. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. Does not apply to bots. -target : this can point at a target_give entity for respawn freebies. -nobots : when set to 1, bots will never use this spawn point to respawn in the game. -nohumans : when set to 1, human players will never use this spawn point to respawn in the game. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -INITIAL : makes the spawnpoint the initial place for the player to spawn at the beginning of the game.*/ - -//============================================================================= - -/*QUAKED info_player_intermission (1 0 1) (-16 -16 -16) (16 16 16) -Camera for intermission screen between matches. This also automatically generates the podium for bot arena matches (see Notes). Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level. --------- KEYS -------- -angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0). -target : point this to an info_notnull or target_position entity to set the camera's pointing angles. --------- NOTES -------- -In genuine bot arena matches, the podium for the 1st, 2nd and 3rd place players at the end of the match is generated by this entity. The podium's origin will automatically be located 128 units in the direction of the camera's view and 84 units down from the y height of the view line at that point. It will also always be generated on a level plane regardless of the pointing angle of the camera so if that angle is too steep, part of the podium model might not be visible. Make sure you leave at least 106 units of free space in front of where the camera points to otherwise the podium model won't be visible at all.*/ - -//============================================================================= - -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Player spawn location. It works in Quake III Arena, but it is not used in the Id maps. Use info_player_deathmatch instead. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -//QUAKED info_spectator_start (1 0 0) (-16 -16 -24) (16 16 32) -//Spectator spawn location. Doesn't appear to work in game. Commented out. -//-------- KEYS -------- -//notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - -//============================================================================= - -ITEM_* ENTITIES - -//============================================================================= - -/*QUAKED item_armor_body (.6 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Red Armor - 100 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_red.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_combat (1 .75 .3) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow Armor - 50 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_yel.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_shard (0 .7 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green Armor Shard - 5 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/shard.md3"*/ - -//============================================================================= - -/*QUAKED item_botroam (1 0.5 0) (-8 -8 -8) (8 8 8) SUSPENDED -Game Function: An invisible entity which attracts a bot to it. Use to move bots to parts of a map that might otherwise not be used (NEW ENTITY). --------- KEYS -------- -weight: non-zero floating point value, most often in the range 0 to 400. (Higher values are allowed but keep in mind that the bot should also be attracted to normal items. Don't make the weight value too high. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The item_botroam entity can be used when a bot does not roam the whole level or prefers to go to only specific areas. This (invisible) item can be placed in a map just like regular items. Nobody can actually pick up the item it's only used to attract bots to certain places of the map. The value is the weight of the roam_item is relative to the weight assigned other items in the map (each bot has its own weights). The bot character specific item weights are stored with the bot characters AI files ("botname"_i.c for items and "botname"_w.c for weapons) in the botfiles/bots/ sub-folder in the .pk3 file.*/ - -//============================================================================= - -/*QUAKED item_enviro (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Battle Suit power-up - Gives protection against slime, lava and weapon splash damage. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/enviro.md3"*/ - -//============================================================================= - -/*QUAKED item_flight (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Flight power-up. Lasts 60 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 60). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/flight.md3"*/ - -//============================================================================= - -/*QUAKED item_haste (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Speed power-up. Makes player run at double speed for 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/haste.md3"*/ - -//============================================================================= - -/*QUAKED item_health (.8 .8 0) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow cross bubble - 25 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 25). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/medium_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_large (1 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Gold cross bubble - 50 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/large_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_mega (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Blue M bubble - 100 Health. Adds 100 health points to current health up to a maximum of 200. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/mega_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_small (0 1 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green cross bubble - 5 Health. Can be picked up over 100 health but slowly wears out to 100 afterwards. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/small_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_invis (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Invisibility power-up. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/invis.md3"*/ - -//============================================================================= - -/*QUAKED item_quad (.4 .6 1) (-16 -16 -16) (16 16 16) SUSPENDED -Quad Damage power-up. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -model="models/powerups/instant/quad.md3"*/ - -//============================================================================= - -/*QUAKED item_regen (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Health Regeneration power-up. This will boost your current health by 5 points every second for a period of up to 30 seconds or up to 200 points whichever comes first. Afterwards, any health points over 100 slowly wears out to 100. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/regen.md3"*/ - -//============================================================================= - -LIGHT ENTITY - -//============================================================================= - - -/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light: overrides the default 300 intensity. -_color : weighted RGB value of light color (default white - 1.0 1.0 1.0). -target : Lights pointed at a target will be spotlights. -radius: overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting).*/ - -/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light: overrides the default 300 intensity. -_color : weighted RGB value of light color (default white - 1.0 1.0 1.0). -target : Lights pointed at a target will be spotlights. -radius: overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -MISC_* ENTITIES - -//============================================================================= - -/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) -Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported. --------- KEYS -------- -angle: direction in which model will be oriented. -model : path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3). --------- Q3MAP2 KEYS -------- -angles : Individual control of PITCH, YAW, and ROLL (default 0 0 0). -modelscale : Floating-point value used to scale a model up or down (default 1.0). -modelscale_vec : Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0). -_remap : Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new". -target : Used to attach the misc_model to a brush entity, where its "targetname" key is the same value. -_lightmapscale : Floating point value scaling the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. -*/ - -//============================================================================= - -/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE -Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle. -target : point this to a target_position entity to set the camera's pointing direction. -targetname : a misc_portal_surface portal surface indicator must point to this. -roll: roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SLOWROTATE : makes the portal camera rotate slowly along the roll axis. -FASTROTATE : makes the portal camera rotate faster along the roll axis. --------- NOTES -------- -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.*/ - -//============================================================================= - -/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8) -Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera that this entity targets. Also used for mirrors (see Notes). --------- KEYS -------- -target : point this to a misc_portal_camera that "sees" the view you want to display on the portal. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.*/ - -//============================================================================= - -/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16) -Teleport destination location point for trigger_teleporter entities. --------- KEYS -------- -angle : direction in which player will look when teleported. -targetname : make the trigger_teleporter point to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -PATH_* ENTITIES - -//============================================================================= - -/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) -Path corner entity that func_trains can be made to follow. --------- KEYS -------- -target : point to next path_corner in the path. -targetname : the train following the path or the previous path_corner in the path points to this. -speed : speed of func_train while moving to the next path corner. This will override the speed value of the train. -wait : number of seconds func_train will pause on path corner before moving to next path corner (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -Setting the wait key to -1 will not make the train stop on the path corner, it will simply default to 0.*/ - -//============================================================================= - -SHOOTER_* ENTITIES - -//============================================================================= - -/*QUAKED shooter_grenade (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a grenade each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the grenades. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_plasma (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a plasma ball each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the plasma balls. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_rocket (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a rocket each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the rockets. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -TARGET_* ENTITIES - -//============================================================================= - -/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8) -Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -wait : delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1). -delay : same as wait? replaces it? WTF?...I'm confused now. -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_give (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to give ammo, weapons, health or items to the player who activates it. --------- KEYS -------- -target : this points to the item(s) to give when activated. -targetname : activating trigger or spawn entity points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -There are 2 ways to use this entity. -a) automatically give items to players when they spawn in the game: make a spawn location entity like info_player_deathmatch or CTF respawn points target this entity, then make it target the item(s) to give to the player upon respawn. -b) give items to players during the game: make a trigger_multiple target this entity, then make it target the item(s) to give to the player when the trigger is touched.*/ - -//============================================================================= - -/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8) -This will kill the player who activates the trigger that fires this target. --------- KEYS -------- -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -//QUAKED target_laser (0 .5 0) (-8 -8 -8) (8 8 8) START_ON -//Generates a red laser beam. I think this can somehow spawn in the game, I saw it once but it's too inconsistent to be usable. Commented out. -//-------- KEYS -------- -//angles: alternate "pitch, yaw, roll" angles method of aiming laser (default 0 0 0). -//target : point this to a target_position entity to set the laser's aiming direction. -//targetname : the activating trigger points to this. -//notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -//-------- SPAWNFLAGS -------- -//START_ON : when set, the laser will start on in the game. - -//============================================================================= - -/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8) -Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used. --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. - 0 : white (default) - 1 : red - 2 : green - 3 : yellow - 4 : blue - 5 : cyan - 6 : magenta - 7 : white -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) -Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular. --------- KEYS -------- -targetname : the entity that requires an aiming direction points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.*/ - -//============================================================================= - -/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) REDTEAM BLUETEAM PRIVATE -This will print a message on the center of the screen when triggered. By default, all the clients will see the message. --------- KEYS -------- -message : text string to print on screen. -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -REDTEAM : only the red team players will see the message. -BLUETEAM : only the blue team players will see the message. -PRIVATE : only the player that activates the target will see the message.*/ - -//============================================================================= - -/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) BOUNCEPAD -This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply. -speed : speed of push (default 1000). Has no effect if entity targets an aiming entity. -targetname : the activating trigger points to this. Push originates from the location of the trigger. -target : this points to the aiming entity to which the player will jump. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -BOUNCEPAD : if set, trigger will play bounce noise instead of beep noise when activated (recommended). --------- NOTES -------- -To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.*/ - -//============================================================================= - -/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM -This can only be activated by other triggers which will cause it in turn to activate its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -RED_ONLY : only red team players can activate trigger. -BLUE_ONLY : only red team players can activate trigger. -RANDOM : one one of the targeted entities will be triggered at random.*/ - -//============================================================================= - -/*QUAKED target_remove_powerups (0 .7 .7) (-8 -8 -8) (8 8 8) -This takes away any and all item_* type powerups from player except health and armor (holdable_* items are not taken away either). Must be activated by a button or trigger_multiple entity. The player that activates the trigger will lose any powerup(s) currently in his possession. --------- KEYS -------- -targetname : activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_score (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to automatically give frag points to the player who activates this. A spawn location entity like info_player_* or CTF respawn points can target this entity to give points to the player when he spawns in the game. Or a trigger can also be used to activate this. The activator of the trigger will get the points. --------- KEYS -------- -targetname : ativating entity points to this. -count: number of frag points to give to player (default 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8) -Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events. --------- KEYS -------- -targetname : activating trigger points to this. -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -TEAM_* ENTITIES - -//============================================================================= - -/*QUAKED team_CTF_blueflag (0 .2 1) (-16 -16 -16) (16 16 16) -Blue team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/b_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_blueplayer (0 .2 1) (-16 -16 -24) (16 16 32) -Initial Blue team spawning position for CTF games. This is where players spawn when they join the Blue team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_bluespawn (0 .2 1) (-16 -16 -24) (16 16 32) -Blue team respawning position for CTF games. This is where Blue team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redflag (1 .2 0) (-16 -16 -16) (16 16 16) -Red team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/r_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_redplayer (1 .2 0) (-16 -16 -24) (16 16 32) -Initial Red team spawning position for CTF games. This is where players spawn when they join the Red team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redspawn (0 .2 1) (-16 -16 -24) (16 16 32) -Red team respawning position for CTF games. This is where Red team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -TRIGGER_* ENTITIES - -//============================================================================= - -/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8) -Automatic trigger. It will fire the entities it targets as soon as it spawns in the game. --------- KEYS -------- -target : this points to the entity to activate. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF - SILENT NO_PROTECTION SLOW -Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt. --------- KEYS -------- -dmg : number of points of damage inflicted to player per server frame (default 5 - integer values only). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OFF needs to be triggered (toggle) for damage -SILENT : supresses the sizzling sound while player is being hurt. -NO_PROTECTION : player will be hurt regardless of protection (see Notes). -SLOW : changes the damage rate to once per second. --------- NOTES -------- -The invulnerability power-up (item_enviro) does not protect the player from damage caused by this entity regardless of whether the NO_PROTECTION spawnflag is set or not. Triggering a trigger_hurt will have no effect if the START_OFF spawnflag is not set. A trigger_hurt always starts on in the game.*/ - -//============================================================================= - -/*QUAKED trigger_multiple (.5 .5 .5) ? -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetname : activating trigger points to this. -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED trigger_push (.5 .5 .5) ? -This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted. --------- KEYS -------- -target : this points to the target_position to which the player will jump. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.*/ - -//============================================================================= - -/*QUAKED trigger_teleport (.5 .5 .5) ? -Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events. --------- KEYS -------- -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -WEAPON_* ENTITIES - -//============================================================================= - -/*QUAKED weapon_bfg (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Big Freaking Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 20). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/bfg/bfg.md3"*/ - -//============================================================================= - -/*QUAKED weapon_gauntlet (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Gauntlet. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/gauntlet/gauntlet.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grapplinghook (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grappling Hook. Spawns in the game and works but is unskinned. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grapple/grapple.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grenadelauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grenadel/grenadel.md3"*/ - -//============================================================================= - -/*QUAKED weapon_lightning (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\lightning\lightning.md3"*/ - -//============================================================================= - -/*QUAKED weapon_machinegun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\machinegun\machinegun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_plasmagun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/plasma/plasma.md3"*/ - -//============================================================================= - -/*QUAKED weapon_railgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/railgun/railgun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_rocketlauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/rocketl/rocketl.md3"*/ - -//============================================================================= - -/*QUAKED weapon_shotgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/shotgun/shotgun.md3"*/ - -//============================================================================= - -WORLDSPAWN ENTITY - -//============================================================================= - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -_ambient OR ambient : Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color (default is 0 0 0). -gravity : gravity of level (default is normal gravity: 800). -gridsize : granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps. -_blocksize : q3map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Default _blocksize value is 1024. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density. --------- Q3MAP2 KEYS -------- -_minlight : Minimum light value, levelwide. Uses the _color key to set color. Does not add unlike ambient. -_minvertexlight : Minimum vertex lighting, levelwide. -_mingridlight : Minimum lightgrid (dynamic entity lighting) levelwide. -_keeplights : Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase. -_noshadersun : Ignore q3map_sun/sun directives in sky shaders and ONLY use entity sun lights. -_farplanedist : Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps. -_foghull : Shader to use for "fog hull." Foghull shader should be a sky shader. Omit the "textures/" prefix. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in the world. Can be overridden in func_group (or other entities) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. Overridable in entities. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.*/ diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gfx.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gfx.shader.svn-base deleted file mode 100644 index e95ff57e..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gfx.shader.svn-base +++ /dev/null @@ -1,1474 +0,0 @@ -//**********************************************************************// -// gfx.shader updated // -// by Eutectic - 23 Jan 2000 // -// This file is irrelevant for Q3Radiant // -// It was updated for sake of completeness: // -// shaders that belong here were moved from other shader files // -// // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 0 // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 6 // -// powerups/blueflag // -// powerups/redflag // -// sprites/foe // -// sprites/friend // -// sprites/plasma1 // -// sprites/plasma2 // -//**********************************************************************// - -// GFX.SHADER -// -// this file contains shaders that are used by the programmers to -// generate special effects not attached to specific geometry. This -// also has 2D shaders such as fonts, etc. -// - -// the REGION shader is generated by the map editor on temporary -// brushes around a selected area for testing parts of maps - -textures/REGION -{ - surfaceparm nolightmap -} - -// the background for the netgraph -lagometer -{ - nopicmip - { - map gfx/2d/lag.tga - } -} - -// blinked on top of lagometer when connection is interrupted -disconnected -{ - nopicmip - { - map gfx/2d/net.tga - } -} - -white -{ - { - map *white - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -console -{ - nopicmip - nomipmaps - - { - map gfx/misc/console01.tga - blendFunc GL_ONE GL_ZERO - tcMod scroll .02 0 - tcmod scale 2 1 - } - { - map gfx/misc/console02.tga - //map textures/sfx/firegorre3.tga - blendFunc add - tcMod turb 0 .1 0 .1 - tcMod scale 2 1 - tcmod scroll 0.2 .1 - } - -} - -menuback -{ - nopicmip - nomipmaps - //{ - // map textures/sfx/logo512.tga - //} - - //{ - // map textures/sfx/specular.tga - // //blendfunc add - // tcMod turb 0 .8 0 .2 - // tcmod scroll -.1 -.2 - //} - { - map textures/sfx/logo512.tga - // blendFunc blend - rgbgen identity - } - //{ - // map textures/sfx/proto_zzzdrk.tga - // blendFunc add - // tcMod turb 0 .1 0 .9 - // tcmod scale .2 .2 - // tcMod scroll .02 0.7 - // rgbgen identity - //} - -} -menubacknologo -{ - nopicmip - nomipmaps - - { - map gfx/colors/black.tga - //map textures/sfx/proto_zzzdrk.tga - // tcMod turb 0 .1 0 .9 - // tcmod scale .2 .2 - // tcMod scroll .02 0.7 - } - -} - -menubackRagePro // blends turn to shit on rage pro, so skip it -{ - nopicmip - nomipmaps - { - map textures/sfx/logo512.tga - } - -} - - -levelShotDetail -// used to break up the blur on levelshots -{ - nopicmip - { - map textures/sfx/detail.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - rgbgen identity - } -} - -// -// special effects as seen on players -// - -powerups/battleSuit -{ - deformVertexes wave 100 sin 1 0 0 0 - { - map textures/effects/envmapgold2.tga - //map textures/sfx/specular.tga - tcGen environment - tcMod turb 0 0.15 0 0.3 - tcmod rotate 333 - tcmod scroll .3 .3 - blendfunc GL_ONE GL_ONE - } -} - -powerups/battleWeapon -{ - deformVertexes wave 100 sin 0.5 0 0 0 - { - map textures/effects/envmapgold2.tga - //map textures/sfx/specular.tga - tcGen environment - tcMod turb 0 0.15 0 0.3 - tcmod rotate 333 - tcmod scroll .3 .3 - blendfunc GL_ONE GL_ONE - } -} - -powerups/invisibility -{ - { - map textures/effects/invismap.tga - //map textures/sfx/specular.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.15 0 0.25 - tcGen environment - } -} - -powerups/quad -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/quadmap2.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - //tcMod turb 0 0.2 0 .2 - tcmod scroll 1 .1 - } -} - -powerups/quadWeapon -{ - deformVertexes wave 100 sin 0.5 0 0 0 - { - map textures/effects/quadmap2.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - //tcMod turb 0 0.2 0 .2 - tcmod scroll 1 .1 - } -} - -powerups/regen -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/regenmap2.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - //tcMod turb 0 0.2 0 .2 - tcmod scroll 1 .1 - } -} - -powerups/blueflag -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/blueflagmap.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcMod turb 0 0.2 0 1 - } -} - -powerups/redflag -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/redflagmap.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcMod turb 0 0.2 0 1 - } -} - - -//========================= - -// -// holdable item icons -// - -icons/medkit -{ - nopicmip - { - map icons/medkit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/teleporter -{ - nopicmip - { - map icons/teleporter.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// powerup icons -// - -icons/envirosuit -{ - nopicmip - { - map icons/envirosuit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/flight -{ - nopicmip - { - map icons/flight.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/haste -{ - nopicmip - { - map icons/haste.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/invis -{ - nopicmip - { - map icons/invis.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/quad -{ - nopicmip - { - map icons/quad.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/regen -{ - nopicmip - { - map icons/regen.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -// reward medals used in the game floating over client's heads - -medal_excellent -{ - nopicmip - { - clampmap menu/medals/medal_excellent.tga - blendFunc blend - } -} - -medal_gauntlet -{ - nopicmip - { - clampmap menu/medals/medal_gauntlet.tga - blendFunc blend - } -} - -medal_impressive -{ - nopicmip - { - clampmap menu/medals/medal_impressive.tga - blendFunc blend - } -} - -// -// weapon icons -// - -icons/iconw_gauntlet -{ - nopicmip - { - map icons/iconw_gauntlet.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_machinegun -{ - nopicmip - { - map icons/iconw_machinegun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_rocket -{ - nopicmip - { - map icons/iconw_rocket.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_shotgun -{ - nopicmip - { - map icons/iconw_shotgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen identitylighting - } -} - -icons/iconw_grenade -{ - nopicmip - { - map icons/iconw_grenade.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_lightning -{ - nopicmip - { - map icons/iconw_lightning.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_plasma -{ - nopicmip - { - map icons/iconw_plasma.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_railgun -{ - nopicmip - { - map icons/iconw_railgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_bfg -{ - nopicmip - { - map icons/iconw_bfg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_grapple -{ - nopicmip - { - map icons/iconw_grapple.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// ammo icons -// - -icons/icona_machinegun -{ - nopicmip - { - map icons/icona_machinegun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_rocket -{ - nopicmip - { - map icons/icona_rocket.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_shotgun -{ - nopicmip - { - map icons/icona_shotgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen identitylighting - } -} - -icons/icona_grenade -{ - nopicmip - { - map icons/icona_grenade.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_lightning -{ - nopicmip - { - map icons/icona_lightning.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_plasma -{ - nopicmip - { - map icons/icona_plasma.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_railgun -{ - nopicmip - { - map icons/icona_railgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_bfg -{ - nopicmip - { - map icons/icona_bfg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -// -// armor icons -// - -icons/iconr_shard -{ - nopicmip - { - map icons/iconr_shard.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconr_yellow -{ - nopicmip - { - map icons/iconr_yellow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconr_red -{ - nopicmip - { - map icons/iconr_red.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// health icons -// - -icons/iconh_green -{ - nopicmip - { - map icons/iconh_green.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconh_yellow -{ - nopicmip - { - map icons/iconh_yellow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconh_red -{ - nopicmip - { - map icons/iconh_red.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - //{ - // clampmap icons/iconh_red2.tga - // blendFunc blend - // tcMod stretch sin .04 1 0 1 - //} -} - -icons/iconh_mega -{ - nopicmip - { - map icons/iconh_mega.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// CTF icons -// - -icons/iconf_red -{ - nopicmip - { - map icons/iconf_red.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconf_blu -{ - nopicmip - { - map icons/iconf_blu.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -//=================================================== - -gfx/2d/menuinfo -{ - nopicmip - { - map gfx/2d/menuinfo.tga - } -} - -gfx/2d/menuinfo2 -{ - nopicmip - { - map gfx/2d/menuinfo2.tga - } -} - -gfx/2d/quit -{ - nopicmip - nomipmaps - { - map gfx/2d/quit.tga - } -} - -gfx/2d/cursor -{ - nopicmip - nomipmaps - { - map gfx/2d/cursor.tga - } -} - -//========================================================================== - -// chat icon floating over client's heads in the game - -sprites/balloon3 -{ - { - map sprites/balloon4.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// friend and foe icons floating over client's heads in teamplay games - -sprites/foe -{ - nomipmaps - nopicmip - { - map sprites/foe2.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -sprites/friend -{ - nomipmaps - nopicmip - { - map sprites/friend1.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -sprites/plasma1 -{ - cull disable - { - clampmap sprites/plasmaa.tga - blendfunc GL_ONE GL_ONE - tcMod rotate 931 - } -} - -sprites/plasma2 -{ - cull disable - { - map sprites/plasma2.tga - blendfunc GL_ONE GL_ONE - } -} - -// this is an example of a crossfaded animation cycle - -textures/animationTest -{ - qer_editorimage textures/liquids/bloodwater1.tga - { - animMap 0.5 textures/liquids/bloodwater1.tga textures/liquids/pool.tga textures/liquids/slime7.tga - } - { - animMap 0.5 textures/liquids/pool.tga textures/liquids/slime7.tga textures/liquids/bloodwater1.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen wave sawtooth 0 1 0 0.5 - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - } -} - -teleportEffect -{ - cull none - { - map gfx/misc/teleportEffect2.tga - blendFunc GL_ONE GL_ONE - rgbGen entity - tcMod scale 1 4 - tcMod scroll 0 2 - } -} - -// markShadow is the very cheap blurry blob underneat the player - -markShadow -{ - polygonOffset - { - map gfx/damage/shadow.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -// projectionShadow is used for cheap squashed model shadows - -projectionShadow -{ - polygonOffset - deformVertexes projectionShadow - { - map *white - blendFunc GL_ONE GL_ZERO - rgbGen wave square 0 0 0 0 // just solid black - } -} - - -// wake is the mark on water surfaces for paddling players - -wake -{ - { - clampmap sprites/splash.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcmod rotate 250 - tcMod stretch sin .9 0.1 0 0.7 - rgbGen wave sin .7 .3 .25 .5 - } - { - clampmap sprites/splash.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcmod rotate -230 - tcMod stretch sin .9 0.05 0 0.9 - rgbGen wave sin .7 .3 .25 .4 - } -} - - -// viewBloodBlend gives the blended directional cue when you get hit - -viewBloodBlend -{ - sort nearest - { - //map models/weaphits/blood201.tga - map gfx/damage/blood_screen.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identityLighting - alphaGen vertex - } -} - -waterBubble -{ - sort underwater - cull none - entityMergable // allow all the sprites to be merged together - { - map sprites/bubble.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - -smokePuff -{ - cull none - entityMergable // allow all the sprites to be merged together - { - map gfx/misc/smokepuff3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - -hasteSmokePuff // drops behind player's feet when speeded -{ - cull none - entityMergable // allow all the sprites to be merged together - { - map gfx/misc/smokepuff3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //blendfunc GL_ONE GL_ONE - rgbGen vertex - alphaGen vertex - } -} - -smokePuffRagePro -{ - cull none - entityMergable // allow all the sprites to be merged together - { - map gfx/misc/smokepuffragepro.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -shotgunSmokePuff -{ - cull none - { - map gfx/misc/smokepuff2b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen entity - rgbGen entity - } -} - -flareShader -{ - cull none - { - map gfx/misc/flare.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } -} - -sun -{ - cull none - { - map gfx/misc/sun.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } -} - -railDisc -{ - sort nearest - cull none - deformVertexes wave 100 sin 0 .5 0 2.4 - { - clampmap gfx/misc/raildisc_mono2.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcMod rotate -30 - } -} - -railCore -{ - sort nearest - cull none - { - map gfx/misc/railcorethin_mono.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcMod scroll -1 0 - } -} - -lightningBolt -{ - cull none - { - map gfx/misc/lightning3.tga - blendFunc GL_ONE GL_ONE -// rgbgen wave sin 1 5.1 0 7.1 - rgbgen wave sin 1 0.5 0 7.1 - tcmod scale 2 1 - tcMod scroll -5 0 - } - { - map gfx/misc/lightning3.tga - blendFunc GL_ONE GL_ONE -// rgbgen wave sin 1 8.3 0 8.1 - rgbgen wave sin 1 0.8 0 8.1 - tcmod scale -1.3 -1 - tcMod scroll -7.2 0 - } -} - -// shader used on the occasional machinegun bullet tracers - -gfx/misc/tracer -{ - cull none - { - map gfx/misc/tracer2.tga - blendFunc GL_ONE GL_ONE - } -} - -// -// wall marks -// use blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR so that -// their "contribution" can be damped down in fog volumes -// with distance - -bloodMark -{ - nopicmip // make sure a border remains - polygonOffset - { - clampmap gfx/damage/blood_stain.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identityLighting - alphaGen vertex - } -} - -bloodTrail -{ - - nopicmip // make sure a border remains - entityMergable // allow all the sprites to be merged together - { - //clampmap gfx/misc/blood.tga - clampmap gfx/damage/blood_spurt.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - -gfx/damage/bullet_mrk -{ - polygonOffset - { - map gfx/damage/bullet_mrk.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -gfx/damage/burn_med_mrk -{ - polygonOffset - { - map gfx/damage/burn_med_mrk.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -gfx/damage/hole_lg_mrk -{ - polygonOffset - { - map gfx/damage/hole_lg_mrk.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -gfx/damage/plasma_mrk -{ - polygonOffset - { - map gfx/damage/plasma_mrk.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - - -//=============================================================== - -// scoreboard header tabs - -scoreboardName -{ - nopicmip - nomipmaps - { - clampmap menu/tab/name.tga - blendfunc blend - } -} - -scoreboardScore -{ - nopicmip - nomipmaps - { - clampmap menu/tab/score.tga - blendfunc blend - } -} - -scoreboardTime -{ - nopicmip - nomipmaps - { - clampmap menu/tab/time.tga - blendfunc blend - } -} - -scoreboardPing -{ - nopicmip - nomipmaps - { - clampmap menu/tab/ping.tga - blendfunc blend - } -} - -//=============================================================== - -gfx/2d/crosshair -{ - nopicmip - { - map gfx/2d/crosshair.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairb -{ - nopicmip - { - map gfx/2d/crosshairb.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairc -{ - nopicmip - { - map gfx/2d/crosshairc.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshaird -{ - nopicmip - { - map gfx/2d/crosshaird.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshaire -{ - nopicmip - { - map gfx/2d/crosshaire.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairf -{ - nopicmip - { - map gfx/2d/crosshairf.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairg -{ - nopicmip - { - map gfx/2d/crosshairg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairh -{ - nopicmip - { - map gfx/2d/crosshairh.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairi -{ - nopicmip - { - map gfx/2d/crosshairi.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - -} - -gfx/2d/crosshairj -{ - nopicmip - { - map gfx/2d/crosshairj.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairk -{ - nopicmip - { - map gfx/2d/crosshairk.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/bigchars -{ - nopicmip - nomipmaps - { - map gfx/2d/bigchars.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/select -{ - nopicmip - { - map gfx/2d/select.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - rgbgen vertex - } -} - -gfx/2d/assault1d -{ - nopicmip - { - map gfx/2d/assault1d.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/armor1h -{ - nopicmip - { - map gfx/2d/armor1h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/health -{ - nopicmip - { - map gfx/2d/health.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/blank -{ - nopicmip - { - map gfx/2d/blank.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/numbers/zero_32b -{ - nopicmip - { - map gfx/2d/numbers/zero_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/one_32b -{ - nopicmip - { - map gfx/2d/numbers/one_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/two_32b -{ - nopicmip - { - map gfx/2d/numbers/two_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/three_32b -{ - nopicmip - { - map gfx/2d/numbers/three_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/four_32b -{ - nopicmip - { - map gfx/2d/numbers/four_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/five_32b -{ - nopicmip - { - map gfx/2d/numbers/five_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/six_32b -{ - nopicmip - { - map gfx/2d/numbers/six_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/seven_32b -{ - nopicmip - { - map gfx/2d/numbers/seven_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/eight_32b -{ - nopicmip - { - map gfx/2d/numbers/eight_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/nine_32b -{ - nopicmip - { - map gfx/2d/numbers/nine_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/minus_32b -{ - nopicmip - { - map gfx/2d/numbers/minus_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - - -// -// weapon hits -// All of these will be put on entities with a shaderTime offset, so they -// can be expected to start at time 0 for each separate explosion -// -// Many of these are use smoothly morphed animating textures by pairing -// sawtooth and iverse sawtooth rgbGens - -plasmaExplosion -{ - cull disable - { - clampmap models/weaphits/plasmaboom.tga - blendfunc add - tcMod stretch triangle .6 0.1 0 8 - tcmod rotate 999 - rgbGen wave inversesawtooth 0 1 0 1.5 - } -} - -railExplosion -{ - cull disable - { - animmap 5 models/weaphits/ring02_1.tga models/weaphits/ring02_2.tga models/weaphits/ring02_3.tga models/weaphits/ring02_4.tga gfx/colors/black.tga - alphaGen wave inversesawtooth 0 1 0 5 - blendfunc blend - } - { - animmap 5 models/weaphits/ring02_2.tga models/weaphits/ring02_3.tga models/weaphits/ring02_4.tga gfx/colors/black.tga gfx/colors/black.tga - alphaGen wave sawtooth 0 1 0 5 - blendfunc blend - } -} - -lightningExplosion -{ - cull disable - { - animmap 5 models/weaphits/ring02_1.tga models/weaphits/ring02_3.tga models/weaphits/ring02_3.tga gfx/colors/black.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/ring02_2.tga models/weaphits/ring02_3.tga gfx/colors/black.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -bulletExplosion -{ - cull disable - { - animmap 5 models/weaphits/bullet1.tga models/weaphits/bullet2.tga models/weaphits/bullet3.tga gfx/colors/black.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/bullet2.tga models/weaphits/bullet3.tga gfx/colors/black.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -rocketExplosion -{ - cull disable - { - animmap 8 models/weaphits/rlboom/rlboom_1.tga models/weaphits/rlboom/rlboom_2.tga models/weaphits/rlboom/rlboom_3.tga models/weaphits/rlboom/rlboom_4.tga models/weaphits/rlboom/rlboom_5.tga models/weaphits/rlboom/rlboom_6.tga models/weaphits/rlboom/rlboom_7.tga models/weaphits/rlboom/rlboom_8.tga - rgbGen wave inversesawtooth 0 1 0 8 - blendfunc add - } - { - animmap 8 models/weaphits/rlboom/rlboom_2.tga models/weaphits/rlboom/rlboom_3.tga models/weaphits/rlboom/rlboom_4.tga models/weaphits/rlboom/rlboom_5.tga models/weaphits/rlboom/rlboom_6.tga models/weaphits/rlboom/rlboom_7.tga models/weaphits/rlboom/rlboom_8.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 8 - blendfunc add - } -} - -grenadeExplosion -{ - cull disable - { - animmap 5 models/weaphits/glboom/glboom_1.tga models/weaphits/glboom/glboom_2.tga models/weaphits/glboom/glboom_3.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/glboom/glboom_2.tga models/weaphits/glboom/glboom_3.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -bfgExplosion -{ - cull disable - { - animmap 5 models/weaphits/bfgboom/bfgboom_1.tga models/weaphits/bfgboom/bfgboom_2.tga models/weaphits/bfgboom/bfgboom_3.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/bfgboom/bfgboom_2.tga models/weaphits/bfgboom/bfgboom_3.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -bloodExplosion // spurt of blood at point of impact -{ - cull disable - { - animmap 5 models/weaphits/blood201.tga models/weaphits/blood202.tga models/weaphits/blood203.tga models/weaphits/blood204.tga models/weaphits/blood205.tga - blendfunc blend - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_block.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_block.shader.svn-base deleted file mode 100644 index 5a0569bf..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_block.shader.svn-base +++ /dev/null @@ -1,514 +0,0 @@ - -textures/gothic_block/blocks15cgeomtrn -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks15cgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/blocks17_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_block/blocks17_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks17bloody -{ - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/gothic_block/blocks17bloody.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks17g_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_block/blocks17g_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks18b_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_block/blocks18b_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks18cgeomtrn2 -{ - cull disable - surfaceparm alphashadow - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - alphaFunc GE128 - tcmod rotate 40 - tcMod stretch sin .8 0.2 0 .3 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - alphaFunc GE128 - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - alphaFunc GE128 - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/gothic_block/blocks18cgeomtrnx -{ - - { - map textures/sfx/fireswirl2blue.tga - tcMod stretch sin .8 0.3 0 9.7 - tcmod rotate 333 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrnx.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/blocks18d_trans -{ - qer_editorimage textures/gothic_block/blocks18d.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_block/blocks18d.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/gothic_block/demon_block15fx -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/demon_block15fx.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/evil_e3bwindow -{ - qer_editorimage textures/gothic_block/windowevil2c_killblock.tga - //surfaceparm nomarks - q3map_lightimage textures/gothic_block/evil2ckillblockglow.tga - q3map_surfacelight 200 - // Glowing evil window for e3 demo map - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_killblock.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2ckillblockglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/evil_e3window -{ - qer_editorimage textures/gothic_block/windowevil2c_block18c.tga - //surfaceparm nomarks - q3map_lightimage textures/gothic_block/evil2cglow.tga - q3map_surfacelight 1000 - // Glowing evil window for e3 demo map - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_block18c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2cglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/evil_e3window_dark -{ - qer_editorimage textures/gothic_block/windowevil2c_block18c.tga - //surfaceparm nomarks - q3map_lightimage textures/gothic_block/evil2cglow.tga - q3map_surfacelight 100 - // Glowing evil window for temp in tim_dm7 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_block18c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2cglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/flicker_blocks10 -{ - qer_editorimage textures/gothic_block/blocks10.tga - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/blocks10.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen wave noise 0.75 0.25 0 10 - } -} - -textures/gothic_block/gkc17d -{ - // spine texture with specular highlights - { - rgbGen identity - map $lightmap - } - { - map textures/gothic_block/gkc17d.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_block/gkcspinemove -{ - qer_editorimage textures/gothic_block/gkc17d.tga - tessSize 128 -// deformVertexes wave 100 sin 3 2 0 0.3 - deformVertexes bulge 3 10 1 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/gkc17d.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -textures/gothic_block/killblock_i4b -{ - q3map_surfacelight 300 - q3map_lightimage textures/gothic_block/killblock_i4glow.tga - qer_editorimage textures/gothic_block/killblock_i4.tga - - - { - map textures/gothic_block/killblock_i4.tga - rgbgen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/gothic_block/killblock_i4glow.tga - blendFunc GL_ONE GL_ONE - rgbgen wave sin .9 .1 0 .1 - } - -} - -textures/gothic_block/killblockgeomtrn -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/killblockgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/killtrim_trans -{ - qer_editorimage textures/gothic_block/killtrim.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_block/killtrim.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_block/largerblock3blood -{ - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/gothic_block/largerblock3blood.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/mkc_evil_e3window -{ - qer_editorimage textures/gothic_block/windowevil2c_block18c.tga - q3map_lightimage textures/gothic_block/evil2cglow.tga - q3map_surfacelight 400 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_block18c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2cglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/wetwall -{ - { - map textures/gothic_block/wetwall.tga - rgbGen identity - } - { - map textures/gothic_block/wetwallfx.tga - tcmod scroll 0 -.1 - tcmod scale 2 .6 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/gothic_block/wetwall.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_button.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_button.shader.svn-base deleted file mode 100644 index e693b5c7..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_button.shader.svn-base +++ /dev/null @@ -1,25 +0,0 @@ - -textures/gothic_button/timbutton -{ - q3map_lightimage textures/gothic_button/timbutton2.tga - q3map_surfacelight 10 - //light 1 - - { - map textures/gothic_button/timbutton.tga - } - - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/gothic_button/timbutton2.tga - blendfunc gl_one gl_one - rgbgen wave sin .5 .5 0 1 - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_door.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_door.shader.svn-base deleted file mode 100644 index fb2cee68..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_door.shader.svn-base +++ /dev/null @@ -1,77 +0,0 @@ - -textures/gothic_door/door02_bred2_shiny -{ -qer_editorimage textures/gothic_door/door02_bred2.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/gothic_door/door02_bred2.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/gothic_door/door02_eblue2_shiny -{ -qer_editorimage textures/gothic_door/door02_eblue2.tga - - { - map $lightmap - rgbGen identity - } - - - { - map textures/gothic_door/door02_eblue2.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/gothic_door/door02_i_ornate5_fin -{ - qer_editorimage textures/gothic_door/door02_i_ornate5_fin.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_door/door02_i_ornate5_fin.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_door/skullarch_b -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_door/skullarch_b.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_floor.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_floor.shader.svn-base deleted file mode 100644 index 8ea54915..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_floor.shader.svn-base +++ /dev/null @@ -1,212 +0,0 @@ - -textures/gothic_floor/center2trn -{ - - { - map textures/sfx/fireswirl2.tga - tcmod rotate 333 - tcMod stretch sin .8 0.2 0 9.7 - rgbGen identity - } - { - map textures/gothic_floor/center2trn.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_floor/center2trn.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_floor/largerblock3b_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/largerblock3b_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_floor/metalbridge06brokeb -{ - { - map textures/sfx/kenelectric.tga - tcmod scale 2 2 - tcMod turb 0 .2 0 .3 - tcmod scroll 3 5 - rgbGen identity - } - { - map textures/gothic_floor/metalbridge06brokeb.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - -} - -textures/gothic_floor/pent_metalbridge02 -{ - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/pent_metalbridge02.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/gothic_floor/pent_metalbridge06 -{ - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/pent_metalbridge06.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/gothic_floor/pent_metalbridge06b -{ - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/pent_metalbridge06b.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/gothic_floor/q1metal7_99spot -{ - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/gothic_floor/q1metal7_99spot.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_floor/xq1metalbig_ow -{ - { - map textures/gothic_floor/xq1metalbig_ow.tga - rgbGen identity - } - { - map textures/sfx/specular.tga - //map textures/liquids/proto_gruel3.tga - tcGen environment - tcmod scale 3 3 - //tcmod rotate 30 - tcMod turb 0 .25 0 .05 - //tcmod scroll .1 .2 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/gothic_floor/xq1metalbig_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_floor/xstepborder3_shiney -{ - qer_editorimage textures/gothic_floor/xstepborder3_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_floor/xstepborder3_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_light.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_light.shader.svn-base deleted file mode 100644 index b3babce4..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_light.shader.svn-base +++ /dev/null @@ -1,1468 +0,0 @@ - -textures/gothic_light/border7_ceil39_6k -{ - qer_editorimage textures/gothic_light/border7_ceil39.tga - q3map_surfacelight 3700 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/border7_ceil39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/border_ceil39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/border7_ceil39b_10k -{ - qer_editorimage textures/gothic_light/border7_ceil39b.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/border7_ceil39b.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/border7_ceil39b.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/flicker_light15k -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 15000 - surfaceparm nomarks - { - map $lightmap - rgbGen wave noise 0.75 0.25 0 10 - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave noise 0.75 0.25 0 10 - } -} - -textures/gothic_light/goth_lt2_lrg2k -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_1k -{ - qer_editorimage textures/gothic_light/gothic_light2.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_2K -{ - qer_editorimage textures/gothic_light/gothic_light2.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_4K -{ - qer_editorimage textures/gothic_light/gothic_light2.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_1k -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_200 -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 200 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_2k -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_500 -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 500 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_10K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_15K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 15000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_1K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/gothic_light/gothic_light3_20K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_2K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/gothic_light/gothic_light3_3k -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/gothic_light/gothic_light3_4K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_5K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_6K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 6000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_7K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 7000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_8K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 8000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_1000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_10000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_120000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 120000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_2000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_20000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_2500 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 3500 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_3000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_30000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_4000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_40000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 40000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_5000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_500000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 500000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_1000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_10000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_2000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_20000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_2500 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 2500 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_3000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_30000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_4000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_40000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 40000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_5000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_10000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_2000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_20000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_3000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_30000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_4000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_5000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_10000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 10000 -// light 1 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_2000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_20000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_3000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_30000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_4000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_5000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/light1_4Kgothic -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - //q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - rgbGen wave sin 0.25 0.25 0 .2 - blendFunc GL_ONE GL_ONE - } -} - -textures/gothic_light/light1_6Kgothic -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - q3map_surfacelight 6000 - surfaceparm nomarks - //q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - rgbGen wave sin 0.25 0.25 0 .2 - blendFunc GL_ONE GL_ONE - } -} - -textures/gothic_light/light1_6Kgothicred -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - rgbGen wave sin 0.25 0.25 0 .2 - blendFunc GL_ONE GL_ONE - } -} - -textures/gothic_light/pentagram_light1_10K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} - -textures/gothic_light/pentagram_light1_15K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 15000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} - -textures/gothic_light/pentagram_light1_1K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} - -textures/gothic_light/pentagram_light1_2K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } -} - -textures/gothic_light/pentagram_light1_3K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } -} - -textures/gothic_light/pentagram_light1_4K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } -} - -textures/gothic_light/pentagram_light1_5K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_trim.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_trim.shader.svn-base deleted file mode 100644 index 100fa7c7..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_trim.shader.svn-base +++ /dev/null @@ -1,296 +0,0 @@ - -textures/gothic_trim/baseboard09_p_shiny -{ - - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_trim/baseboard09_p_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } -} - -textures/gothic_trim/border6_trans -{ - qer_editorimage textures/gothic_trim/border6.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/border6.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - } -} - -textures/gothic_trim/column2c_trans -{ - qer_editorimage textures/gothic_trim/column2c_test.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/column2c_test.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/gothgrate2 -{ - surfaceparm metalsteps - cull none - - { - map textures/gothic_trim/gothgrate2.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - alphaFunc GT0 - depthWrite - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - depthFunc equal - } -} - -textures/gothic_trim/km_arena1tower4_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/km_arena1tower4_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4b_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4b.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/metalsupport4b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/metalsupport4h_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4h_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4h_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4j_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4j.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/metalsupport4j.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/gothic_trim/metlsupport4i_shiney -{ - qer_editorimage textures/gothic_trim/xmetalsupport4i_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xmetalsupport4i_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/pitted_rust2_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/pitted_rust3_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust3.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust3.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/supportborderside_shiney -{ - qer_editorimage textures/gothic_trim/xsupportborderside_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xsupportborderside_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/tongue_bone -{ - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 0.2 - } -} - -textures/gothic_trim/x_noblight -{ - q3map_lightimage textures/gothic_trim/x_noblightfx.tga - q3map_surfacelight 100 - { - map textures/sfx/firegorre2.tga - tcmod scroll .1 1 - tcmod scale 1 1 - } - { - map textures/gothic_trim/x_noblight.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/gothic_trim/x_noblightfx.tga - blendFunc add - rgbGen wave sin .5 .5 0 .1 - } -} - -textures/gothic_trim/zinc_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_trim/zinc_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_wall.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_wall.shader.svn-base deleted file mode 100644 index 4203aec6..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/gothic_wall.shader.svn-base +++ /dev/null @@ -1,120 +0,0 @@ - -textures/gothic_wall/iron01_m -{ - qer_editorimage textures/gothic_wall/iron01_m.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_m.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/iron01_ndark -{ - qer_editorimage textures/gothic_wall/iron01_ndark.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_ndark.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/streetbricks10_shiny -{ - qer_editorimage textures/gothic_wall/streetbricks11.tga - q3map_globaltexture - sort opaque - - { - map $lightmap - tcmod scale 2 2 - rgbgen identity - } - - { - map textures/gothic_wall/streetbricks11.tga - rgbGen identity - blendfunc gl_one gl_src_color - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - -} - -textures/gothic_wall/window_evil6a - -{ - q3map_lightimage textures/gothic_wall/window_evil6a_glow.tga - q3map_surfacelight 50 - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a.tga - blendfunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a_glow.tga - blendfunc GL_ONE GL_ONE - rgbGen identity - } - -} - -textures/gothic_wall/xoct20c_shiney -{ - qer_editorimage textures/gothic_wall/xoct20c_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/xoct20c_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/xpipecolumn_gray_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_wall/xpipecolumn_gray_shiny.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/hell.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/hell.shader.svn-base deleted file mode 100644 index 23b64105..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/hell.shader.svn-base +++ /dev/null @@ -1,437 +0,0 @@ -//**********************************************************************// -// hell.shader updated // -// by Eutectic - 21 Jan 2000 // -// This file is irrelevant for Q3Radiant since none of these // -// shaders work (textures/hell folder does not exist) // -// It was updated for sake of completeness: // -// shaders that belong here were moved from other shader files // -// Phase 2 update: 13 May 2000 // -// sorted shaders in alphabetical order. // -// // -// TOTAL SHADERS: 19 // -// NO. OF BROKEN SHADERS: 19 // -// NO. OF WORKING SHADERS WITH DUPLICATE ENTRIES: N/A // -// NO. OF WORKING SHADERS THAT DIDN'T APPEAR IN EDITOR: N/A // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 0 // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 3 // -// textures/hell/hellsky2goo // -// textures/hell/lavasolid // -// textures/hell/newhell // -//**********************************************************************// - -textures/hell/bluepad -{ - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/bluepad.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/bluepad.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/hell/darkness -{ - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - cull back - fogonly - fogparms 0 0 0 400 256 -} - -//*********************************// -//Moved from sky.shader by Eutectic// -//*********************************// - -textures/hell/hellsky2goo -{ - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 300 - - sky env/hell2 - cloudparms 256 - - { - map env/redcloudsa.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0 - tcMod scale 2 2 - } - - { - map env/redclouds.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scroll 0.05 0.05 - tcMod scale 1 1 - } -} - -textures/hell/hellbutt01 -{ - { - map $lightmap - rgbGen identity - } - { - map textures/hell/hellbutt01.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/hellbutt01.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 0.2 - } -} - -textures/hell/hellredclouds -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 280 - - cloudparms 512 full - lightning - - { - map env/redclouds.tga - tcMod scroll 0.02 0 - tcMod scale 2 2 - } - - - { - map textures/dont_use/lightningsky8_kc.tga - blendfunc GL_ONE GL_ONE - tcMod scale 10 10 - tcMod scroll .2 .2 - } - - - { - map env/redcloudsa.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.02 0.01 - } - - -} - -textures/hell/ironcrosslt1 -{ - q3map_surfacelight 7000 - //light 1 - - { - map $lightmap - rgbGen identity - } - - { - map textures/hell/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -} - -textures/hell/ironcrosslt1_5000 -{ - qer_editorimage textures/hell/ironcrosslt1.tga - q3map_lightimage textures/hell/ironcrosslt1.blend.tga - q3map_surfacelight 5000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/hell/killblock_b -{ - q3map_surfacelight 50 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/killblock_b.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/killblock_b.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/hell/killblock_c -{ - q3map_surfacelight 50 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/killblock_c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/killblock_c.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.1 0 0.2 - } -} - -textures/hell/lava2z -{ - surfaceparm nonsolid - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 150 -} - -//*************************************// -//Moved from liquids.shader by Eutectic// -//*************************************// - -textures/hell/lavasolid -{ - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 450 - - tesssize 64 - deformVertexes wave 100 sin 2 2 0 0.1 - - { - map textures/hell/lava2d.tga - tcGen environment - tcMod turb 0 0.25 0 0.05 - } - - { - map textures/hell/lava2d.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.05 - } -} - -textures/hell/light1blue -{ - q3map_surfacelight 3250 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/light1blue.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.1 0 .2 - } -} - -textures/hell/light1dark -{ - q3map_surfacelight 6000 - //light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/light1dark.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/light1dark.tga - blendFunc GL_ONE GL_ONE -// rgbGen wave sin 0.5 0.1 0 .2 - } -} - -textures/hell/light1red -{ - q3map_surfacelight 5000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/light1red.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.1 0 .2 - } -} - -textures/hell/metal2_2 -{ - cull twosided - surfaceparm trans - { - map textures/hell/metal2_2.tga - rgbGen identity - alphaFunc GE128 - //blendFunc GL_ONE GL_ZERO - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/hell/newhell -{ - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_surfacelight 200 - - sky env/hell2 - cloudparms 512 full - lightning - - { - map env/redcloudsa.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0 - tcMod scale 2 2 - } - { - map env/redclouds.tga - blendFunc GL_DST_COLOR GL_ZERO - tcMod scroll 0.05 0.06 - tcMod scale 1 1 - } -} - -textures/hell/skin7_teeth2 -{ - deformVertexes wave 100 sin 2 3 0 0.4 - { - map $lightmapt - rgbGen identity - } - { - map textures/hell/skin7_teeth2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/hell/xfiretest1 -{ - qer_editorimage textures/hell/firetestb.tga - //surfaceparm trans - surfaceparm noimpact - //surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 1000 - tesssize 64 - - - { - map textures/hell/firetestb.tga - blendfunc gl_one gl_zero - tcMod turb .2 .2 .1 1 - tcMod scale .25 .25 - tcMod scroll .5 1.5 - } - - { - map textures/hell/firetest.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .2 .1 .1 1 - tcMod scale .1 .1 - tcMod scroll 0 1.0 - } - - { - map textures/hell/firetest2.tga - blendFunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 .5 .5 - tcMod scroll 1 5.0 - } - -} - -textures/hell/xfiretest2 -{ - qer_editorimage textures/hell/firetestb.tga - //surfaceparm trans - surfaceparm noimpact - //surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 1000 - tesssize 64 - { - map textures/hell/firetest2.tga - blendfunc gl_one gl_zero - tcMod turb .2 .2 .1 1 - tcMod scale .25 .25 - tcMod scroll .5 1.5 - } - - { - map textures/hell/firetest.tga - -// blendFunc GL_DST_COLOR GL_ONE - blendFunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .2 .1 .1 1 - tcMod scale .1 .1 - tcMod scroll 0 1.0 - } - - { - - map textures/hell/firetestb.tga - blendFunc GL_DST_COLOR GL_ONE -// blendFunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .1 .1 .5 .5 - tcMod scroll 1 5.0 - } - -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/liquids.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/liquids.shader.svn-base deleted file mode 100644 index cb2768f9..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/liquids.shader.svn-base +++ /dev/null @@ -1,759 +0,0 @@ - -textures/liquids/protolava -{ - - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/liquids/protolava.tga - blendfunc blend - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/watertest - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - tessSize 32 - deformVertexes normal .15 2 - deformVertexes bulge 128 5 2 - { - map $lightmap - blendfunc filter - } - - { - map textures/liquids/pool3d_4byell2.tga - blendfunc add - tcgen environment - } - - - } - - - - -textures/liquids/flatripplewater_1500 - { - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/pool2.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/xctf_painwater - { - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 450 - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - { - map textures/sfx/bolts.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - tcMod scroll .1 .1 - tcmod rotate 290 - - } - } -textures/liquids/clear_calm1 - { - qer_editorimage textures/liquids/pool3d_3e.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .25 .25 0 .5 - { - map textures/liquids/pool3d_5e.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod scroll .025 .01 - } - - { - map textures/liquids/pool3d_3e.tga - blendFunc GL_dst_color GL_one - tcmod scale -.5 -.5 - tcmod scroll .025 .025 - } - - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - - -} - -textures/liquids/clear_ripple3 - { - qer_editorimage textures/liquids/pool3d_3c.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -} - - -textures/liquids/clear_ripple2 - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -} - - -textures/liquids/clear_ripple1 - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - -} - -textures/liquids/clear_ripple1_q3dm1 - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } -} - -textures/liquids/lavahell -{ - q3map_globaltexture - surfaceparm noimpact - surfaceparm trans - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - - -} - -textures/liquids/lavahell_xdm1 -{ - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm nodlight - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/lavahell_1000 -{ - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahell_2000 - { - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} -textures/liquids/lavahell_750 - { - - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/flatlavahell_1500 - { - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1500 - cull disable - - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - - -textures/liquids/lavahell_2500 - { - - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahelldark - { - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 150 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - - -} - -textures/liquids/lavahellflat_400 -{ - - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 400 - cull disable - - tesssize 128 - cull disable - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/calm_pool - { - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - -} - -textures/liquids/calm_pool_bgtess - { - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 256 - deformVertexes wave 256 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - -} - -textures/liquids/ripplewater2_back -{ - qer_editorimage textures/liquids/ripplewater3.tga - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - { - map textures/liquids/ripplewater3.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod scale .05 .05 - tcGen environment - tcMod scroll .001 .001 - } - -} - -textures/liquids/slime1 - { - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 100 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - -} - -textures/liquids/slime1_2000 - { - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 2000 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - -} - -textures/hell/lavasolid -{ - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 450 - - tesssize 64 - deformVertexes wave 100 sin 2 2 0 0.1 - - { - map textures/hell/lava2d.tga - tcGen environment - tcMod turb 0 0.25 0 0.05 - } - - { - map textures/hell/lava2d.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.05 - } -} - -textures/liquids/lavahell_2500_subd -{ - qer_editorimage textures/liquids/lavahell.tga - q3map_lightsubdivide 32 - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/models.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/models.shader.svn-base deleted file mode 100644 index 169df479..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/models.shader.svn-base +++ /dev/null @@ -1,4824 +0,0 @@ -//**********************************************************************// -// models.shader sorted and updated // -// by Eutectic - 23 Jan 2000 // -// This file is irrelevant for Q3Radiant // -// It was updated for the sake of completeness: // -// shaders that belong here were moved from other shader files // -// // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 2 // -// sprites/plasma1 // -// sprites/plasma2 // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 1 // -// models/mapobjects/portal_2/portal_3 // -//**********************************************************************// - -// -// this file contains shaders attached models -// - -//**************************************************************// -// // -// MODELS/AMMO // -// // -//**************************************************************// - -models/ammo/grenade -{ - { - map models/ammo/grenade.tga - } - { - AnimMap 7 models/ammo/grenade_r.tga models/ammo/grenade_g.tga - blendfunc GL_ONE GL_ONE - } -} - -models/ammo/rocket/rockflar -{ - cull disable - { - map models/ammo/rocket/rockflar.tga - blendfunc GL_ONE GL_ONE - } -} - -models/ammo/rocket/rockfls1 -{ - cull disable - { - map models/ammo/rocket/rockfls1.tga - blendfunc GL_ONE GL_ONE - } -} - -models/ammo/rocket/rockfls2 -{ - cull disable - { - map models/ammo/rocket/rockfls2.tga - blendfunc GL_ONE GL_ONE - } -} - - -//**************************************************************// -// // -// MODELS/FLAGS // -// // -//**************************************************************// - -models/flags/b_flag -{ - cull disable - deformVertexes wave 100 sin 0 3 0 .7 - - { - map models/flags/b_flag.tga - - } - - -} - -models/flags/b_flag2 -{ - - deformVertexes wave 100 sin 4 3 0 0.3 - deformVertexes wave 30 sin 0 3 0 .8 - deformVertexes normal .3 .2 - cull none - - { - map models/flags/b_flag2.tga - rgbGen identity - } - { - map models/flags/blue_fx.tga - tcGen environment - //tcmod scale 9 3 - //tcmod scroll .1 .7 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map models/flags/b_flag2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -models/flags/flag_red -{ - cull none - deformVertexes wave 90 sin 1 5.6 1 .4 - deformVertexes wave 100 sin 1 2 1 .9 - deformVertexes wave 50 sin 1 .5 1 1 - { - map models/flags/flag_red.tga - //blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphaFunc GE128 - blendFunc GL_ONE GL_ONE - rgbGen lightingDiffuse - depthWrite - } - - -} - -models/flags/flagbits -{ - cull none - // deformVertexes wave 100 sin 0 5 0 .7 - { - map models/flags/flagbits.tga - //blendfunc gl_src_alpha gl_one_minus_src_alpha - alphaFunc GE128 - rgbGen lightingDiffuse - depthWrite - } - - -} - -models/flags/flagtest -{ - - deformVertexes wave 100 sin 4 3 0 0.3 - deformVertexes wave 30 sin 0 3 0 .8 - deformVertexes normal .2 .2 - cull none - - { - map models/flags/flagtest.tga - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -models/flags/pole -{ - - { - map models/flags/skull.tga - tcGen environment - rgbGen lightingDiffuse - - } - - -} - -models/flags/r_flag -{ - cull disable - deformVertexes wave 100 sin 0 3 0 .7 - - { - map models/flags/r_flag.tga - - } - - -} - -models/flags/r_flag2 -{ - - deformVertexes wave 100 sin 4 3 0 0.3 - deformVertexes wave 30 sin 0 3 0 .8 - deformVertexes normal .3 .2 - cull none - - { - map models/flags/r_flag2.tga - rgbGen identity - } - { - map models/flags/red_fx.tga - tcGen environment - //tcmod scale 9 3 - //tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map models/flags/r_flag2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -models/flags/skull -{ - - { - map models/flags/skull.tga - //tcGen environment - rgbGen lightingDiffuse - - } - - -} - - -//**************************************************************// -// // -// MODELS/MAPOBJECTS // -// // -//**************************************************************// - -//******************************************************// -// mapobjects root folder // -//******************************************************// - -models/mapobjects/arenalogo -{ - deformVertexes wave 100 sin 0.25 0 0 0 - { - map textures/effects/quadmap.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcMod turb 0 1 0 0.2 - } -} - -models/mapobjects/hand -{ - deformVertexes wave 100 sin 0 .3 0 .2 - - { - map models/mapobjects/hand.tga - rgbGen vertex - } - - -} - -models/mapobjects/kmlamp_white -{ - - surfaceparm trans - { - map textures/effects/tinfxb.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -models/mapobjects/lamplight_y -{ - q3map_surfacelight 10000 -// light 1 - cull disable - { - map textures/effects/envmapmach.tga - //map models/mapobjects/lamplight_y.tga - blendfunc GL_ONE GL_ONE - tcGen environment - rgbGen identity - } -} - -models/mapobjects/lamplight_ys -{ - { - map models/mapobjects/lamplight_ys.tga - blendfunc GL_ONE GL_ONE - - } -} - -models/mapobjects/meteor -{ - deformVertexes move 0 0 10 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - - - { - map models/mapobjects/meteor.tga - rgbGen vertex - tcMod scale 4.90 2.234 - } - - -} - -models/mapobjects/pitted_rust_ps -{ - cull disable - - { - map models/mapobjects/pitted_rust_ps.tga - rgbGen vertex - } - - -} - -models/mapobjects/pj_light -{ - cull none - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - { - map models/mapobjects/pj_light.tga - blendfunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/standlamp2 -{ - - { - map textures/effects/tinfx2.tga - tcGen environment - rgbGen identity - } - { - map models/mapobjects/standlamp2.tga - blendfunc blend - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/banner subfolder // -//******************************************************// - -models/mapobjects/banner/q3banner02 -{ - cull disable - nomipmaps - //deformVertexes wave 70 sin 0 .7 0 .4 - - { - map models/mapobjects/banner/q3banner02.tga - blendFunc add - tcmod scale 2 1 - tcmod scroll .33 0 - rgbGen wave sin .5 .5 0 .2 - } - { - map models/mapobjects/banner/q3banner02.tga - blendFunc add - tcmod scale 3 1 - tcmod scroll -.45 0 - rgbGen wave sin .5 .5 0 .2 - } - { - map models/mapobjects/banner/q3banner02x.tga - blendFunc add - tcmod scale 4 1 - tcmod scroll 1 0 - // rgbGen wave sin .5 .5 0 -.2 - } -} - -models/mapobjects/banner/q3banner04 -{ - cull disable - nomipmaps - - { - //map models/mapobjects/banner/q3banner04.tga - map textures/sfx/firegorre2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .05 .1 - tcMod turb 0 .25 0 .6 - tcmod scroll .4 .3 - //rgbGen wave sin .5 .5 0 .1 - } - { - - map textures/sfx/bolts.tga - tcmod scale .2 .2 - tcmod rotate 999 - tcmod scroll 9 9 - blendfunc add - rgbGen wave sin .5 .5 0 .2 - } - { - map textures/sfx/firegorre2.tga - //map models/mapobjects/banner/q3banner04.tga - blendFunc add - tcGen environment - tcmod scale 5 5 - tcmod scroll 0.09 0.04 - //rgbGen wave sin .5 .5 0 .1 - } - -} - -//******************************************************// -// mapobjects/baph subfolder // -//******************************************************// - -//models/mapobjects/baph/bapho_lamp -//{ -// -// { -// map textures/sfx/specular3b.tga -// tcGen environment -// tcmod scroll .1 0 -// rgbGen identity -// } -// { -// map models/mapobjects/baph/bapho_lamp.tga -// blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -// rgbGen vertex -// } -// -// -//} - -models/mapobjects/baph/bapholamp_fx -{ - deformVertexes autoSprite - surfaceparm trans - cull none - nomipmaps - { - clampmap models/mapobjects/baph/bapholamp_fx.tga - blendFunc GL_ONE GL_ONE - tcmod rotate 333 - tcMod stretch sin .9 0.1 0 7 - rgbGen identity - } - { - clampmap models/mapobjects/baph/bapholamp_fx2.tga - blendFunc GL_ONE GL_ONE - tcmod rotate -301 - tcMod stretch sin 1 .1 0 9 - rgbGen identity - } - -} - -models/mapobjects/baph/baphomet -{ - - { - map textures/sfx/firewalla.tga - tcmod scroll 0.1 1 - rgbGen identity - } - { - map models/mapobjects/baph/baphomet.tga - blendFunc blend - rgbGen vertex - } - -} - -models/mapobjects/baph/baphomet_gold -{ - - { - map textures/sfx/firewalla.tga - tcmod scroll 0.1 1 - rgbGen identity - } - { - map models/mapobjects/baph/baphomet_gold.tga - blendFunc blend - rgbGen vertex - } - -} - -models/mapobjects/baph/wrist -{ - cull none - nomipmaps - surfaceparm trans - - { - map models/mapobjects/baph/wrist.tga - blendFunc GL_ONE GL_ONE - tcmod scale 2 1 - tcmod scroll 3 0 - rgbGen identity - } - { - map models/mapobjects/baph/wrist.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 1 - tcmod scroll -5 0 - rgbGen identity - } -} - -//******************************************************// -// mapobjects/barrel subfolder // -//******************************************************// - -models/mapobjects/barrel/barrel2 -{ - - { - Map models/mapobjects/barrel/barrel2.tga - rgbgen vertex - - } - { - clampmap models/mapobjects/barrel/barrel2fx.tga - blendFunc GL_ONE GL_ONE - // rgbgen wave triangle 1 1.4 0 9.5 - tcMod rotate 403 - } - { - clampmap models/mapobjects/barrel/barrel2fx.tga - blendFunc GL_ONE GL_ONE - // rgbgen wave triangle 1 1 0 8.7 - tcMod rotate -100 - } - -} - -//******************************************************// -// mapobjects/bat subfolder // -//******************************************************// - -models/mapobjects/bat/bat -{ - deformVertexes wave 10 sin 0 3 0 3 - deformVertexes move 500 0 0 sawtooth 0 5 0 .1 - deformVertexes move 0 0 7 sin 0 5 0 .5 - cull disable - - { - map models/mapobjects/bat/bat.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/bitch subfolder // -//******************************************************// - -models/mapobjects/bitch/bitch02 -{ - cull none - - { - Map models/mapobjects/bitch/bitch02.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcMod scroll 0 0.3 - } - - - -} - -models/mapobjects/bitch/forearm -{ - { - map models/mapobjects/bitch/forearm.tga - rgbGen vertex - } - { - map models/mapobjects/bitch/forearm01.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 2.2 0 - - } - { - map models/mapobjects/bitch/forearm02.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -1.1 0 - - } -} - -models/mapobjects/bitch/hologirl -{ - cull none - //sort additive // alphaFunc with a later blend pass doesn't - // make its own sort properly - deformVertexes move 0 0 .7 sin 0 5 0 0.2 - - - { - map models/mapobjects/bitch/hologirl.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - - } - { - map models/mapobjects/bitch/hologirl2.tga - tcgen environment - tcMod scroll -6 -.2 - tcMod scale 1 1 - blendFunc GL_ONE GL_ONE - //rgbGen wave sin .5 .5 0 .1 - } - - -} - -models/mapobjects/bitch/orb -{ - deformVertexes autoSprite - - q3map_surfacelight 70 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - clampmap models/mapobjects/bitch/orb.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 30 - } - -} - -//******************************************************// -// mapobjects/chain subfolder // -//******************************************************// - -models/mapobjects/chain/chain -{ - cull disable - { - map models/mapobjects/chain/chain.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/chain/chain2 -{ - cull disable - deformVertexes autoSprite2 - { - map models/mapobjects/chain/chain2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/chain/chain2_end -{ - cull disable - deformVertexes autoSprite2 - { - map models/mapobjects/chain/chain2_end.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/chain/chain3 -{ - { - map $whiteimage - rgbGen identity - } - { - map models/mapobjects/chain/chain3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map models/mapobjects/chain/chain3.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/colua0 subfolder // -//******************************************************// - -models/mapobjects/colua0/colua0_flare -{ - deformVertexes autoSprite - - q3map_surfacelight 1000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map models/mapobjects/colua0/colua0_flare.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/mapobjects/colua0/colua0_lght -{ - surfaceparm trans - { - map textures/effects/tinfx2b.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -//******************************************************// -// mapobjects/console subfolder // -//******************************************************// - -models/mapobjects/console/centercon -{ - cull disable - { - map models/mapobjects/console/scrolltext.tga - blendFunc add - tcmod scroll 0 -.3 - //tcMod stretch sin .9 0.1 0 1.1 - rgbGen vertex - } - - { - clampmap models/mapobjects/console/centercon.tga - blendFunc add - tcMod stretch sin .9 0.1 0 .2 - tcmod rotate 40 - rgbGen vertex - } -} - -models/mapobjects/console/console -{ - cull disable - - { - map textures/effects/tinfx2c.tga - blendFunc GL_ONE GL_ZERO - tcGen environment - rgbGen vertex - } - { - map models/mapobjects/console/console.tga - blendFunc blend - rgbGen vertex - } - { - map models/mapobjects/console/console2.tga - blendFunc add - rgbGen vertex - rgbGen wave sin .5 .5 0 .2 - } -} - -models/mapobjects/console/jacobs -{ - cull disable - - { - map textures/effects/tinfxb.tga - blendFunc add - tcGen environment - rgbGen identity - } -} - -models/mapobjects/console/rotate -{ - cull disable - - { - clampmap models/mapobjects/console/rotate.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 40 - rgbGen vertex - } -} - -models/mapobjects/console/scrolltext -{ - cull disable - - { - map models/mapobjects/console/scrolltext.tga - blendFunc add - tcmod scroll 0 -.3 - //tcMod stretch sin .9 0.1 0 1.1 - rgbGen vertex - } -} - -models/mapobjects/console/sphere -{ - cull disable - - { - map models/mapobjects/console/spherex2.tga - blendFunc add - tcmod rotate 40 - tcGen environment - tcmod scroll 5 .4 - rgbGen wave sin .5 .5 0 .2 - } - - { - map models/mapobjects/console/spherex.tga - blendFunc add - tcmod rotate 40 - tcGen environment - tcmod scroll 5 .4 - rgbGen wave sin .5 .5 0 -.2 - } -} - -models/mapobjects/console/sphere2 -{ - cull disable - deformVertexes autoSprite - - //{ - // clampmap models/mapobjects/console/sphere2.tga - // alphaFunc GE128 - // depthWrite - // //tcMod stretch sin .9 0.1 0 .5 - // tcmod rotate 40 - // rgbGen identity - //} - { - map models/mapobjects/console/sphere3.tga - blendFunc add - // depthWrite - rgbGen wave sin .5 .5 0 .2 - } - { - map models/mapobjects/console/sphere4.tga - blendFunc add - // depthWrite - rgbGen wave sin .5 .5 0 -.2 - } - { - clampmap models/mapobjects/console/sphere2.tga - alphaFunc GE128 - //blendfunc blend - //depthWrite - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 40 - rgbGen identity - } -} - -models/mapobjects/console/under -{ - cull disable - surfaceparm alphashadow - //surfaceparm nodraw - { - clampmap models/mapobjects/console/under.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - - } -} - -//******************************************************// -// mapobjects/corpse subfolder // -//******************************************************// - -models/mapobjects/corpse/chain -{ - cull disable - - { - map models/mapobjects/corpse/chain.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/corpse -{ - deformVertexes wave 100 sin 0 .2 0 .2 - - { - map models/mapobjects/corpse/corpse.tga - rgbGen exactVertex - } - - -} - -models/mapobjects/corpse/intestine -{ - - cull disable - - { - map models/mapobjects/corpse/intestine.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/intestine2 -{ - cull disable - deformVertexes wave 100 sin 0 .6 0 .2 - // surfaceparm trans - { - map models/mapobjects/corpse/intestine2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/spine -{ - cull disable - - { - map models/mapobjects/corpse/spine.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/torso -{ - deformVertexes wave 100 sin 0 .2 0 .2 - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 4 4 - tcMod scroll 0 -.09 - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - //{ - // map textures/liquids/proto_grueldark.tga - // //tcGen environment - // blendFunc GL_ONE GL_ONE - // tcmod scale 2 2 - // tcMod scroll 0 -.09 - // tcMod turb 0 0.07 0 .08 - // //rgbGen identity - //} - { - map models/mapobjects/corpse/torso.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - } -} - -//******************************************************// -// mapobjects/cross subfolder // -//******************************************************// - -models/mapobjects/cross/cross_skull -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/cross/cross_skull.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -models/mapobjects/cross/cross -{ - q3map_lightimage models/mapobjects/cross/cross_light.tga - q3map_surfacelight 300 - - { - map textures/sfx/firewalla.tga - tcmod scale 4 4 - tcmod scroll 0.1 2 - rgbGen identity - } - { - map models/mapobjects/cross/cross.tga - blendFunc blend - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/flag subfolder // -//******************************************************// - -//models/mapobjects/flag/banner_eg1 -//{ -// cull disable -// surfaceparm nolightmap -// deformVertexes wave 100 sin 0 8 0 8 -// sort banner -// { -// map models/mapobjects/flag/banner_eg1.tga -// // blendfunc gl_src_alpha gl_one_minus_src_alpha -// alphaFunc GE128 -// rgbGen vertex -// } -// -// -//} - -models/mapobjects/flag/banner_strgg -{ - cull disable - surfaceparm nolightmap - surfaceparm alphashadow - - deformVertexes wave 100 sin 0 3 0 .7 - //deformVertexes normal 0.2 2 - sort banner - { - map models/mapobjects/flag/banner_strgg.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphaFunc GE128 - rgbGen vertex - - } -} - -models/mapobjects/flag/banner02 -{ - cull disable - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .7 - - { - map models/mapobjects/flag/banner02.tga - - } - - -} - -//******************************************************// -// mapobjects/flares subfolder // -//******************************************************// - -models/mapobjects/flares/electric -{ - - - q3map_surfacelight 200 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - clampmap models/mapobjects/flares/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 9 - tcMod rotate 360 - } - { - clampmap models/mapobjects/flares/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 9.5 - tcMod rotate -202 - } - -} - -//******************************************************// -// mapobjects/gratelamp subfolder // -//******************************************************// - -models/mapobjects/gratelamp/gratelamp_flare -{ - deformVertexes autoSprite - - q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map models/mapobjects/gratelamp/gratelamp_flare.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/mapobjects/gratelamp/gratelamp -{ - cull disable - - { - map models/mapobjects/gratelamp/gratelamp.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/gratelamp/gratetorch -{ - cull disable - - { - map models/mapobjects/gratelamp/gratetorch.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/gratelamp/gratetorch2b -{ - cull disable - - { - map models/mapobjects/gratelamp/gratetorch2b.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/grenadel subfolder // -//******************************************************// - -models/mapobjects/grenadel/grenadelx -{ - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - { - clampmap models/mapobjects/grenadel/grenadelx.tga - tcMod rotate 10 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } -} - -//******************************************************// -// mapobjects/horned subfolder // -//******************************************************// - -models/mapobjects/horned/horned -{ - - { - map textures/sfx/firewalla.tga - tcmod scroll 0.1 1 - } - { - map models/mapobjects/horned/horned.tga - blendFunc blend - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/jesus subfolder // -//******************************************************// - -models/mapobjects/jesus/jesuswall -{ - deformVertexes wave 100 sin 0 .2 0 .2 - cull none - { - map $lightmap - //rgbGen identity - } - { - map models/mapobjects/jesus/jesuswall.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen vertex - alphaGen lightingSpecular - } - - -} - -//******************************************************// -// mapobjects/jets subfolder // -//******************************************************// - -models/mapobjects/jets/jet_1 -{ - surfaceparm trans - nomipmaps - cull disable - { - map models/mapobjects/jets/jet_1.tga - blendFunc add - tcmod scale .5 1 - tcmod scroll 6 0 - rgbGen identity - } - { - map models/mapobjects/jets/jet_2.tga - blendFunc add - tcmod scroll 3 -.5 - rgbGen wave inversesawtooth -.3 1.3 0 .5 - } -} - -models/mapobjects/jets/jet_as -{ - deformVertexes autoSprite2 - deformVertexes wave 100 sin 0 1 0 9 - surfaceparm trans - nomipmaps - { - map models/mapobjects/jets/jet_as.tga - blendFunc add - rgbGen identity - } -} - -//******************************************************// -// mapobjects/lamps subfolder // -//******************************************************// - -models/mapobjects/lamps/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - cull none - //nopicmip - { - map models/mapobjects/lamps/beam.tga - tcMod Scroll .3 0 - blendFunc GL_ONE GL_ONE - } - { - map models/mapobjects/lamps/beam.tga - tcMod Scroll -.3 0 - blendFunc GL_ONE GL_ONE - } - -} - -models/mapobjects/lamps/bot_flare -{ - deformVertexes autoSprite - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - clampmap models/mapobjects/lamps/bot_flare.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 20 - - - } - - -} - -models/mapobjects/lamps/bot_flare2 -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - deformVertexes wave 100 sin 0 1 0 9 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - map models/mapobjects/lamps/bot_flare2.tga - blendFunc GL_ONE GL_ONE - - } - - -} - -models/mapobjects/lamps/bot_lamp -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - - { - map models/mapobjects/lamps/bot_lamp.tga - rgbGen vertex - - } - - -} -models/mapobjects/lamps/bot_lamp2 -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - - { - map models/mapobjects/lamps/bot_lamp2.tga - rgbGen vertex - - } - - -} - -models/mapobjects/lamps/bot_lamp2b -{ - cull disable - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - { - map models/mapobjects/lamps/bot_lamp2b.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/lamps/bot_light -{ - cull disable - q3map_surfacelight 200 - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - { - map models/mapobjects/lamps/bot_light.tga - rgbGen identity - } - - -} - -models/mapobjects/lamps/bot_wing -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - deformVertexes wave 100 sin 0 .5 0 .5 - cull disable - - { - map models/mapobjects/lamps/bot_wing.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/lamps/bot_wing2 -{ - //deformVertexes wave 100 sin 0 .5 0 .5 - //deformVertexes move 0 0 1 triangle 0 20 0 1 - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - deformVertexes wave 100 sin 0 .5 0 .5 - cull disable - - { - map models/mapobjects/lamps/bot_wing2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/lamps/flare03 -{ - deformVertexes autoSprite - - q3map_surfacelight 200 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map models/mapobjects/lamps/flare03.tga - blendFunc GL_ONE GL_ONE - } - -} - -//******************************************************// -// mapobjects/lightning subfolder // -//******************************************************// - -models/mapobjects/lightning/blu/blu01 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/blu/blu01.tga models/mapobjects/lightning/blu/blu02.tga models/mapobjects/lightning/blu/blu03.tga models/mapobjects/lightning/blu/blu04.tga models/mapobjects/lightning/blu/blu05.tga models/mapobjects/lightning/blu/blu06.tga models/mapobjects/lightning/blu/blu07.tga models/mapobjects/lightning/blu/blu08.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/lightning/red/red01 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/red/red01.tga models/mapobjects/lightning/red/red02.tga models/mapobjects/lightning/red/red03.tga models/mapobjects/lightning/red/red04.tga models/mapobjects/lightning/red/red05.tga models/mapobjects/lightning/red/red06.tga models/mapobjects/lightning/red/red07.tga models/mapobjects/lightning/red/red08.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/lightning/white/white1 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/white/white1.tga models/mapobjects/lightning/white/white2.tga models/mapobjects/lightning/white/white3.tga models/mapobjects/lightning/white/white4.tga models/mapobjects/lightning/white/white5.tga models/mapobjects/lightning/white/white6.tga models/mapobjects/lightning/white/white7.tga models/mapobjects/lightning/white/white8.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/lightning/yel/yel01 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/yel/yel01.tga models/mapobjects/lightning/yel/yel02.tga models/mapobjects/lightning/yel/yel03.tga models/mapobjects/lightning/yel/yel04.tga models/mapobjects/lightning/yel/yel05.tga models/mapobjects/lightning/yel/yel06.tga models/mapobjects/lightning/yel/yel07.tga models/mapobjects/lightning/yel/yel08.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/pipe subfolder // -//******************************************************// - -models/mapobjects/pipe/pipe02 -{ - - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen identity - } - { - map models/mapobjects/pipe/pipe02.tga - blendfunc blend - rgbGen lightingdiffuse - } - -} - -models/mapobjects/pipe/pipe02x -{ - q3map_lightimage textures/sfx/electricslime_old.tga - q3map_surfacelight 150 - cull disable - { - map textures/effects/tinfx2b.tga - tcGen environment - tcmod scale 1 2 - blendfunc add - rgbGen identity - } - { - map textures/sfx/electricslime_old.tga - //tcGen environment - //tcmod scale 2 2 - //tcmod rotate 240 - tcmod scroll 7.2 1 - blendfunc add - rgbGen identity - } - -} - -//******************************************************// -// mapobjects/podium subfolder // -//******************************************************// - -models/mapobjects/podium/podium -{ - { - map models/mapobjects/podium/podium.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scroll .2 0.01 - rgbGen identity - } - { - map models/mapobjects/podium/podium.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - { - map models/mapobjects/podium/podiumglo.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 1 1 0 .2 - } - - -} - -models/mapobjects/podium/podiumfx1 -{ - cull none - surfaceparm trans - { - map models/mapobjects/podium/podiumfx1.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 2 -.3 - rgbGen wave inversesawtooth 0 1 .35 .3 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1.7 -.3 - rgbGen wave inversesawtooth 0 1 .35 .3 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1.1 -.3 - rgbGen wave inversesawtooth 0 1 .35 .3 - } -} - -models/mapobjects/podium/podiumfx2 -{ - cull none - surfaceparm trans - { - map models/mapobjects/podium/podiumfx1.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .5 - tcmod scroll .8 -.3 - rgbGen wave inversesawtooth 0 1 .7 .6 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .5 - tcmod scroll -1.7 -.3 - rgbGen wave inversesawtooth 0 1 .7 .6 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .5 - tcmod scroll -1.1 -.3 - rgbGen wave inversesawtooth 0 1 .7 .6 - } -} - -models/mapobjects/podium/podiumfx3 -{ - cull none - surfaceparm trans - { - map models/mapobjects/podium/podiumfx1.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .1 - tcmod scroll 1 -.3 - rgbGen wave inversesawtooth 0 1 1.1 .9 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .1 - tcmod scroll -1.7 -.3 - rgbGen wave inversesawtooth 0 1 1.1 .9 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .1 - tcmod scroll -1.1 -.3 - rgbGen wave inversesawtooth 0 1 1.1 .9 - } -} - -models/mapobjects/podium/podskull -{ - { - map models/mapobjects/podium/podskull.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scroll .2 0.03 - rgbGen identity - } - { - map models/mapobjects/podium/podskull.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - { - map models/mapobjects/podium/podskullfx.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 1 1 0 .2 - } -} - -//******************************************************// -// mapobjects/portal_2 subfolder // -//******************************************************// - -models/mapobjects/portal_2/portal_3 -{ - // ************************************************* - // * Portal Sides * - // * April 30 1999 * - // * Please Comment Changes * - // ************************************************* - - - { - map models/mapobjects/portal_2/portal_3.tga - rgbGen vertex - } - - { - map models/mapobjects/portal_2/portal_3_glo.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 .2 .5 - } - -} - -models/mapobjects/portal_2/portal_3_edge -{ - { - map models/mapobjects/portal_2/portal_3_edge.tga - rgbGen vertex - } - - { - map models/mapobjects/portal_2/portal_3_edge_glo.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 9.7 .5 - } - -} - -//******************************************************// -// mapobjects/scoreboard subfolder // -//******************************************************// - -models/mapobjects/scoreboard/s_name -{ - sort additive - cull disable - deformVertexes text0 - { - map gfx/2d/bigchars.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -models/mapobjects/scoreboard/s_score -{ - sort additive - cull disable - deformVertexes text1 - { - map gfx/2d/bigchars.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -//******************************************************// -// mapobjects/signs subfolder // -//******************************************************// - -models/mapobjects/signs/bioh -{ - cull disable - - { - map models/mapobjects/signs/bioh.tga - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/skel subfolder // -//******************************************************// - -models/mapobjects/skel/skel -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/skel/skel.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -models/mapobjects/skel/xray -{ - deformVertexes move 0 0 .7 sin 0 5 0 0.2 - cull disable - q3map_surfacelight 300 - { - map models/mapobjects/skel/xray.tga - blendfunc add - rgbGen wave sin 1 .8 0 .3 - } - { - - map models/mapobjects/bitch/hologirl2.tga - tcMod scroll -6 -.2 - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/skull subfolder // -//******************************************************// - -models/mapobjects/skull/monkeyhead -{ - //deformVertexes wave 100 sin 0 .7 0 .2 - //deformVertexes wave 100 sin 0 .5 1 .1 - cull disable - nomipmaps - - { - map models/mapobjects/skull/monkeyhead.tga - rgbGen vertex - } - { - //animMap 0.5 models/mapobjects/skull/monkeyhead.tga //models/mapobjects/wallhead/femhead2.tga - map models/mapobjects/skull/monkeyheadb.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen wave sin 0 1 1 .1 - // alphaGen wave triangle 0 .7 0 .2 - rgbGen vertex - } - -} - -models/mapobjects/skull/monkeyhead2 -{ - cull disable - surfaceparm trans - nomipmaps - { - map models/mapobjects/skull/monkeyhead2.tga - blendfunc blend - depthWrite - rgbGen vertex - } -} - -models/mapobjects/skull/ribcage -{ - sort underwater - cull disable - { - map models/mapobjects/skull/ribcage.tga - // blendfunc gl_src_alpha gl_one_minus_src_alpha - alphaFunc GE128 - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/slamp subfolder // -//******************************************************// - -models/mapobjects/slamp/slamp2 -{ - cull disable - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map models/mapobjects/slamp/slamp2.tga - blendFunc GL_ONE GL_ONE - } - { - map textures/effects/envmapdimb.tga - tcGen environment - blendfunc GL_ONE GL_ONE - //rgbGen lightingDiffuse - } - - -} - -models/mapobjects/slamp/slamp3 -{ - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 100 - - { - map models/mapobjects/slamp/slamp3.tga - blendFunc GL_ONE GL_ONE - - } - - -} - -//******************************************************// -// mapobjects/spotlamp subfolder // -//******************************************************// - -models/mapobjects/spotlamp/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map models/mapobjects/spotlamp/beam.tga - tcMod Scroll .3 0 - blendFunc GL_ONE GL_ONE - } - //{ - // map models/mapobjects/spotlamp/beam.tga - // tcMod Scroll -.3 0 - // blendFunc GL_ONE GL_ONE - //} - -} - -models/mapobjects/spotlamp/spotlamp -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/spotlamp/spotlamp.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/spotlamp/spotlamp_l -{ - cull disable - q3map_surfacelight 200 - - { - map models/mapobjects/spotlamp/spotlamp_l.tga - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/teleporter subfolder // -//******************************************************// - -models/mapobjects/teleporter/energy -{ - cull disable - - - { - map models/mapobjects/teleporter/energy.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 2.2 1.3 - rgbGen wave inversesawtooth -.3 1.3 0 1.3 - - } - { - map models/mapobjects/teleporter/energy2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -1 .5 - rgbGen wave inversesawtooth -.2 1.2 0 .5 - - } - { - map models/mapobjects/teleporter/energy3.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 3 0 - rgbGen wave triangle 1 1 0 5.3 - - } - -} - -models/mapobjects/teleporter/teleporter_edge -{ - - - { - map models/mapobjects/teleporter/teleporter_edge.tga - rgbGen vertex - } - { - map models/mapobjects/teleporter/teleporter_edge2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave inversesawtooth 0 1 .2 1.5 - } - -} - -models/mapobjects/teleporter/transparency -{ - cull disable - - { - map models/mapobjects/teleporter/transparency.tga - blendfunc GL_ONE GL_ONE - - } - { - map models/mapobjects/teleporter/transparency2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll .1 .2 - } - -} - -models/mapobjects/teleporter/transparency2 -{ - cull disable - - { - map models/mapobjects/teleporter/transparency2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll .1 .2 - } - -} - -models/mapobjects/teleporter/widget -{ - cull disable - - { - map models/mapobjects/teleporter/widget.tga - blendfunc GL_ONE GL_ONE - - } - { - map models/mapobjects/teleporter/transparency2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -.1 -.2 - } - -} - -//******************************************************// -// mapobjects/timlamp subfolder // -//******************************************************// - -models/mapobjects/timlamp/timlamp -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/timlamp/timlamp.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/tree subfolder // -//******************************************************// - -models/mapobjects/tree/branch -{ - cull disable - deformVertexes wave 100 sin 0 .1 0 .2 - surfaceparm trans - { - map models/mapobjects/tree/branch.tga - alphaFunc GE128 - depthWrite - //rgbGen identity - //rgbGen lightingDiffuse - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/wallhead subfolder // -//******************************************************// - -//models/mapobjects/wallhead/femhead -//{ -// deformVertexes wave 100 sin 0 .7 0 .2 -// cull disable -// -// -// { -// map models/mapobjects/wallhead/femhead2.tga -// rgbGen vertex -// } -// { -// map models/mapobjects/wallhead/femhead.tga -// Blendfunc GL_ONE GL_ONE -// rgbGen vertex -// rgbGen wave triangle 0 1 0 .05 -// } -// -//} - -models/mapobjects/wallhead/femhead -{ - deformVertexes wave 100 sin 0 .7 0 .2 - //deformVertexes wave 100 sin 0 1 1 .1 - cull disable - - { - map models/mapobjects/wallhead/femhead3.tga - rgbGen vertex - } - { - //animMap 0.5 models/mapobjects/wallhead/femhead4.tga //models/mapobjects/wallhead/femhead2.tga - map models/mapobjects/wallhead/femhead4.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen wave sin 0 1 1 .1 - // alphaGen wave triangle 0 .7 0 .2 - rgbGen vertex - } - -} - -models/mapobjects/wallhead/lion_m -{ - { - map models/mapobjects/wallhead/lion_m.tga - blendFunc GL_ONE GL_ZERO - rgbGen vertex - } - { - map textures/sfx/firewalla.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0.1 1 - //rgbGen wave triangle .5 1 0 .4 - } - { - map models/mapobjects/wallhead/lion_m.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - } - -} - -//models/mapobjects/wallhead/tongue -//{ -// { -// //rgbGen lightingDiffuse -// map $whiteimage -// rgbGen vertex -// } -// { -// map models/mapobjects/wallhead/tongue.tga -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// rgbGen identity -// alphaGen lightingSpecular -// } -//} - -models/mapobjects/wallhead/wallhead -{ - - - { - map models/mapobjects/wallhead/wallhead.tga - rgbGen vertex - } - -} - -models/mapobjects/wallhead/wallhead_eye -{ - - - { - animMap 0.2 models/mapobjects/wallhead/wallhead_eye.tga models/mapobjects/wallhead/wallhead_eye2.tga - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/weeds subfolder // -//******************************************************// - -models/mapobjects/weeds/weed01 -{ - sort additive - cull disable - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .7 - { - map models/mapobjects/weeds/weed01.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - -} - -models/mapobjects/weeds/weed02 -{ - sort underwater - cull disable - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .7 - { - map models/mapobjects/weeds/weed02.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - -} - - -//**************************************************************// -// // -// MODELS/PLAYERS // -// // -//**************************************************************// - -//******************************************************// -// models/players/anarki subfolder // -//******************************************************// - -models/players/anarki/anarki_b -{ - { - map textures/effects/envmapbfg.tga - tcGen environment - tcmod rotate 350 - tcmod scroll 3 1 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/players/anarki/anarki_b.tga - blendfunc blend - rgbGen lightingDiffuse - } - -} - -models/players/anarki/anarki_g -{ - { - map models/players/anarki/anarki_g.tga - //rgbGen vertex - } - { - - map models/players/anarki/anarki_g_fx.tga - rgbGen lightingDiffuse - rgbGen wave triangle 0 1 0 .5 - blendfunc gl_ONE gl_ONE - } -} - -//******************************************************// -// models/players/biker subfolder // -//******************************************************// - -models/players/biker/cadaver -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/biker/cadaver.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/bones subfolder // -//******************************************************// - -models/players/bones/blue -{ - - cull disable - { - map models/players/bones/blue.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - } -} - -models/players/bones/red -{ - - cull disable - { - map models/players/bones/red.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - } -} - -models/players/bones/stiff -{ - - cull disable - { - map models/players/bones/stiff.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - } -} - -models/players/bones/xray -{ - - cull disable - { - map models/players/bones/xray.tga - blendfunc add - //rgbGen wave sin 1 .8 0 9 - } - { - - map models/mapobjects/bitch/hologirl2.tga - tcMod scroll -6 -.2 - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - -} - -//******************************************************// -// models/players/brandon subfolder // -//******************************************************// - -models/players/brandon/branhat -{ - { - map models/players/light/brandon/branhat.tga - } - { - map models/players/light/brandon/branhat.glow.tga - blendfunc GL_ONE GL_ONE - } -} - -models/brandon/braneye -{ - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/light/brandon/braneye.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } - { - map models/players/light/brandon/braneye.glow.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/players/crash subfolder // -//******************************************************// - -models/players/crash/crash -{ - { - map textures/effects/envmapblue.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/crash/crash.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/crash/crash_f -{ - - { - map textures/sfx/snow.tga - tcmod scale .5 .5 - tcmod scroll 9 0.3 - rgbGen identity - } - { - map textures/effects/tinfx2b.tga - tcGen environment - blendFunc add - rgbGen lightingdiffuse - } -} - -models/players/crash/crash_t -{ - { - map textures/effects/envmapblue.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/crash/crash_t.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -//******************************************************// -// models/players/doom subfolder // -//******************************************************// - -models/players/doom/doom_f -{ - { - map models/players/doom/doom_f.tga - rgbGen lightingDiffuse - } - { - - map models/players/doom/doom_fx.tga - tcGen environment - rgbGen lightingDiffuse - blendfunc gl_ONE gl_ONE - } - -} - -models/players/doom/f_doom -{ - { - map models/players/doom/f_doom.tga - } - { - - map models/players/doom/fx_doom.tga - tcGen environment - rgbGen lightingDiffuse - blendfunc gl_ONE gl_ONE - } -} - -models/players/doom/phobos -{ - { - map models/players/doom/phobos_fx.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 7 7 - tcMod scroll 5 -5 - tcmod rotate 360 - rgbGen identity - } - //{ - // map textures/effects/tinfx2.tga - // tcGen environment - // blendFunc GL_ONE GL_ONE - // rgbGen lightingDiffuse - //} - { - map models/players/doom/phobos.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } -} - -models/players/doom/phobos_f -{ - - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map models/players/doom/phobos_f.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } -} - -//******************************************************// -// models/players/grunt subfolder // -//******************************************************// - -models/players/grunt/stripe_h -{ - - { - //map textures/effects/tinfx.tga - map textures/sfx/electricgrade3.tga - //tcmod scale 6 6 - //tcmod rotate 350 - tcmod scroll 0 -.5 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/players/grunt/stripe_h.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/players/hunter subfolder // -//******************************************************// - -models/players/hunter/harpy -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/hunter/hunter2.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/hunter/harpy_f -{ - surfaceparm nodraw -} - -models/players/hunter/harpy_h -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/hunter/hunter_h.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/hunter/hunter_f -{ - deformVertexes wave 100 sin 0 .3 0 .2 - cull disable - { - map models/players/hunter/hunter_f.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/hunter/red_f -{ - deformVertexes wave 100 sin 0 .3 0 .2 - cull disable - { - map models/players/hunter/red_f.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/klesk subfolder // -//******************************************************// - -models/players/klesk/flisk -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/klesk/flisk.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -models/players/klesk/flisk_h -{ - { - map models/players/klesk/flisk_h.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/bolts.tga - blendFunc GL_ONE GL_ONE - tcmod scale 2 2 - tcmod scroll 2 2 - } - { - map models/players/klesk/flisk_h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/klesk/klesk_h -{ - { - map models/players/klesk/klesk_h.tga - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - - } - - { - map models/players/klesk/klesk_g.tga - blendfunc GL_ONE GL_ONE - rgbGen wave triangle .5 1 0 .5 - - } -} - -//******************************************************// -// models/players/lucy subfolder // -//******************************************************// - -models/players/lucy/angel -{ - cull none - - { - map models/players/lucy/angel.tga - alphaFunc GE128 - depthWrite - //rgbGen identity - rgbGen lightingDiffuse - - } - { - - //map textures/effects/envmapcirc3.tga - - map models/mapobjects/bitch/hologirl2.tga - tcgen environment - tcMod scroll -6 -.2 - tcMod scale 1 1 - blendFunc GL_ONE GL_ONE - //rgbGen identity - //rgbGen vertex - rgbGen lightingDiffuse - } - -} - -models/players/lucy/h_angel -{ - cull none - - { - map models/players/lucy/h_angel.tga - depthWrite - rgbGen lightingDiffuse - - } - { - - //map textures/effects/envmapcirc3.tga - - map models/mapobjects/bitch/hologirl2.tga - tcgen environment - tcMod scroll -6 -.2 - tcMod scale 1 1 - blendFunc GL_ONE GL_ONE - rgbGen identity - // rgbGen vertex - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/players/major subfolder // -//******************************************************// - -models/players/major/daemia -{ - { - map textures/sfx/electricslime.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 3 3 - tcMod turb 0 .5 0 .7 - tcMod scroll 1 -1 - rgbGen identity - } - { - map models/players/major/daemia.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/mynx subfolder // -//******************************************************// - -models/players/mynx/mynx_shiny -{ - - { - map textures/sfx/specular5.tga - blendFunc GL_ONE GL_ZERO - tcGen environment - } - { - map models/players/mynx/mynx_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/players/orbb subfolder // -//******************************************************// - -models/players/orbb/blue_h -{ - - { - map models/players/orbb/blue_h.tga - rgbGen lightingDiffuse - } - - { - clampmap textures/base_floor/techfloor2.tga - blendfunc blend - tcmod rotate 90 - tcMod stretch sin .8 0.2 0 .2 - rgbGen lightingDiffuse - } - -} - -models/players/orbb/orbb_h2 -{ - { - map models/players/orbb/orbb_h2.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/effects/tinfx.tga - blendFunc GL_ONE GL_ONE - tcGen environment - rgbGen lightingDiffuse - } - { - map models/players/orbb/orbb_h2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/orbb/orbb_light -{ - { - map models/players/orbb/orbb_light.tga - rgbGen wave sin 1 1 0 1 - - } -} - -models/players/orbb/orbb_light_blue -{ - { - map models/players/orbb/orbb_light_blue.tga - rgbGen wave sin 1 1 0 1 - - } -} - -models/players/orbb/red_h -{ - - { - map models/players/orbb/red_h.tga - rgbGen lightingDiffuse - } - - { - clampmap textures/base_floor/techfloor2.tga - blendfunc blend - tcmod rotate 90 - tcMod stretch sin .8 0.2 0 .2 - rgbGen lightingDiffuse - } - -} - -models/players/orbb/orbb_tail -{ - - { - map models/players/orbb/orbb_tail.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0 .5 - rgbGen wave sin .5 .25 0 .5 - } -} - -models/players/orbb/orbb_tail_blue -{ - - { - map models/players/orbb/orbb_tail_blue.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0 .5 - rgbGen wave sin .5 .25 0 .5 - } -} - -//******************************************************// -// models/players/parkr subfolder // -//******************************************************// - -models/players/parkr/parkr_chest -{ - { - map models/players/parkr/parkr_chest.tga - } - { - AnimMap 4 models/players/parkr/parkr_chest_red.tga models/players/parkr/parkr_chest_blu.tga - blendfunc GL_ONE GL_ONE - } -} - -models/players/parkr/parkr_head -{ - { - map textures/effects/envmap2.tga - tcGen environment - } -} - -//******************************************************// -// models/players/ranger subfolder // -//******************************************************// - -//models/players/ranger/wrack -//{ -// { -// map $whiteimage -// rgbGen lightingDiffuse -// } -// { -// map models/players/ranger/wrack.tga -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// rgbGen identity -// alphaGen lightingSpecular -// } -// -//} - -models/players/ranger/wrack -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/ranger/wrack.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/razor subfolder // -//******************************************************// - -models/players/razor/h_id -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/razor/h_id.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/razor/id -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/razor/id.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/razor/patriot -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/razor/patriot.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -models/players/razor/patriot_gogs -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - - -} - -models/players/razor/razor_gogs -{ - { - map models/players/razor/razor_gogs.tga - tcGen environment - - } - - - { - map models/players/razor/razor_gogs_fx.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 1.2 9.3 - - } -} - -//******************************************************// -// models/players/sarge subfolder // -//******************************************************// - -models/players/sarge/cigar -{ - { - map models/players/sarge/cigar.tga - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - - } - - { - map models/players/sarge/cigar.glow.tga - blendfunc GL_ONE GL_ONE - rgbGen wave triangle .5 1 0 .2 - - } -} - -models/players/sarge/krusade -{ - { - map textures/sfx/firegorre.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - rgbGen identity - } - { - map models/players/sarge/krusade.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/sarge/null -{ - { - map models/players/sarge/null.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/players/sarge/roderic -{ - { - map textures/sfx/firegorre.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - rgbGen identity - } - { - map models/players/sarge/roderic.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/slash subfolder // -//******************************************************// - -models/players/slash/grrl_h -{ - - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen identity - } - { - map models/players/slash/grrl_h.tga - blendfunc blend - rgbGen lightingdiffuse - } - -} - -models/players/slash/slashskate -{ - //deformVertexes wave 100 sin 0 1 1 5 - sort additive - cull disable - { - clampmap models/players/slash/slashskate.tga - blendFunc GL_ONE GL_ONE - //tcmod rotate 100 - tcMod stretch sin .9 0.1 0 1.1 - rgbgen identity - - } -} - -models/players/slash/yuriko -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/slash/yuriko.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/slash/yuriko_h -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/slash/yuriko_h.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/slash/yurikoskate -{ - cull disable - deformVertexes autoSprite - - - { - clampmap models/players/slash/yurikoskate.tga - blendFunc blend - //tcMod stretch sin .9 0.1 0 1.1 - tcmod rotate 999 - rgbGen lightingdiffuse - } - { - clampmap models/players/slash/yurikoskate.tga - blendFunc blend - //tcMod stretch sin .9 0.1 0 -1.1 - tcMod stretch sin .9 0 0 0 - tcmod rotate 20 - rgbGen lightingdiffuse - } -} - -//******************************************************// -// models/players/tankjr subfolder // -//******************************************************// - -models/players/tankjr/tankjr -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/tankjr/tankjr.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/uriel subfolder // -//******************************************************// - -models/players/uriel/blue_w -{ - deformVertexes wave 100 sin 0 .5 0 .2 - - { - map models/players/uriel/blue_w.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/null -{ - { - map models/players/uriel/null.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/players/uriel/red_w -{ - deformVertexes wave 100 sin 0 .5 0 .2 - - { - map models/players/uriel/red_w.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/uriel_h -{ - { - map models/players/uriel/uriel_h.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/proto_zzzt.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -0.2 1 - rgbGen identity - } - { - map models/players/uriel/uriel_h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/uriel_w -{ - deformVertexes wave 100 sin 0 .5 0 .2 - - { - map models/players/uriel/uriel_w.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/zael -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/uriel/zael.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/visor subfolder // -//******************************************************// - -models/players/visor/gorre -{ - - { - map textures/sfx/firegorre.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - rgbGen identity - } - //{ - // map textures/sfx/firewallb.tga - // blendFunc GL_ONE GL_ONE - // tcmod scale 3 3 - // tcMod turb 0 .2 0 .1 - // tcMod scroll 0 3 - // //tcmod rotate 360 - // rgbGen identity - //} - { - map models/players/visor/gorre.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } -} - -//models/players/visor/visortorso2 -//{ -// { -// map $whiteimage -// rgbGen lightingDiffuse -// } -// { -// map models/players/visor/visortorso2.tga -// rgbGen identity -// alphaGen lightingSpecular -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// } -//} - -//models/players/visorhead -//{ -// { -// map $whiteimage -// rgbGen lightingDiffuse -// } -// { -// map models/players/visor/visorhead.tga -// rgbGen identity -// alphaGen lightingSpecular -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// } -//} - -//******************************************************// -// models/players/xaero subfolder // -//******************************************************// - -models/players/xaero/xaero -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/xaero/xaero.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -models/players/xaero/xaero_a -{ - { - map textures/effects/envmapbfg.tga - tcmod rotate 350 - tcmod scroll 3 1 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/players/xaero/xaero_a.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/xaero/xaero_h -{ - { - map models/players/xaero/xaero_h.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/firewalla.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0.1 1 - //rgbGen wave triangle .5 1 0 .4 - } - { - map models/players/xaero/xaero_h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - -} - -models/players/xaero/xaero_q -{ - - cull disable - - { - map models/players/xaero/xaero_q.tga - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/xian subfolder // -//******************************************************// - -models/players/xian/xianfacf -{ - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/medium/xian/xianfacf.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } -} - - -//**************************************************************// -// // -// MODELS/POWERUPS // -// // -//**************************************************************// - -//******************************************************// -// models/powerups/ammo subfolder // -//******************************************************// - -//models/powerups/ammo/ammo_rail1 -//{ -// { -// map models/powerups/ammo/ammo_rail1.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/ammo_rail1.glow.tga -// blendfunc GL_ONE GL_ONE -// rgbGen wave sin 0.75 0.25 0 1 -// } -//} - -//models/powerups/ammo/ammo_rail2 -//{ -// { -// map models/powerups/ammo/ammo_rail2.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/ammo_rail2.glow.tga -// blendfunc GL_ONE GL_ONE -// } -//} - -models/powerups/ammo/bfgammo -{ - cull none - { - map textures/effects/envmapbfg.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendfunc GL_ONE GL_ONE - rgbGen identity - } - { - map models/powerups/ammo/bfgammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/bfgammo1 -{ - { - map textures/effects/envmapbfg.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/bfgammo2 -{ - { - map models/powerups/ammo/bfgammo2.tga - rgbGen identity - } - -} - -//models/powerups/ammo/bounammo1 -//{ -// { -// map models/powerups/ammo/bounammo1.tga -// rgbGen lightingDiffuse -// } -//} - -//models/powerups/ammo/bounammo2 -//{ -// { -// map models/powerups/ammo/bounammo2.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/bounammo2.glow.tga -// blendfunc GL_ONE GL_ONE -// rgbGen lightingDiffuse -// } -//} - -//models/powerups/ammo/flamammo1 -//{ -// { -// map models/powerups/ammo/flamammo1.tga -// rgbGen lightingDiffuse -// } -//} - -//models/powerups/ammo/flamammo2 -//{ -// { -// map models/powerups/ammo/flamammo2.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/flamammo2.glow.tga -// blendfunc GL_ONE GL_ONE -// } -//} - -models/powerups/ammo/grenammo -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/grenammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/grenammo1 -{ - { - map textures/effects/envmapgren.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/grenammo2 -{ - { - map models/powerups/ammo/grenammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/lighammo -{ - { - map textures/effects/envmapligh.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/lighammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/lighammo1 -{ - { - map textures/effects/envmapligh.tga - tcGen environment - //tcmod scale 2 2 - tcmod rotate 6 - tcmod scroll .09 .09 - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/lighammo2 -{ - { - map models/powerups/ammo/lighammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/machammo -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/machammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/machammo1 -{ - { - map textures/effects/envmapmach.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/machammo2 -{ - { - map models/powerups/ammo/machammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/plasammo -{ - { - map textures/effects/envmapplas.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/plasammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/plasammo1 -{ - { - map textures/effects/envmapplas.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/plasammo2 -{ - { - map models/powerups/ammo/plasammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/railammo -{ - { - map textures/effects/envmaprail.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/railammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/railammo1 -{ - { - map textures/effects/envmaprail.tga - tcGen environment - //tcmod scale 4 4 - //tcmod rotate 70 - //tcmod scroll .5 .5 - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/railammo2 -{ - { - map models/powerups/ammo/railammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/rockammo -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/rockammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/rockammo1 -{ - { - map textures/effects/envmaproc.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/rockammo2 -{ - { - map models/powerups/ammo/rockammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/shotammo -{ - { - map textures/effects/tinfx2c.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/shotammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/shotammo1 -{ - { - map textures/effects/envmapgold3.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/shotammo2 -{ - { - map models/powerups/ammo/shotammo2.tga - rgbGen identity - } - -} - -//******************************************************// -// models/powerups/armor subfolder // -//******************************************************// - -models/powerups/armor/energy_grn1 -{ - deformVertexes wave 100 sin 2 0 0 0 - { - map textures/effects/envmaprail.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - tcMod scroll 1 1 - rgbGen wave triangle -.3 1.3 0 .3 - } - -} - -models/powerups/armor/energy_red1 -{ - - { - map models/powerups/armor/energy_red1.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 7.4 1.3 - } - -} - -models/powerups/armor/energy_yel1 -{ - - { - map models/powerups/armor/energy_yel3.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 7.4 1.3 - } - -} - -models/powerups/armor/newred -{ - { - map textures/sfx/specular.tga - tcGen environment - rgbGen identity - } - { - map models/powerups/armor/newred.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - -} - -models/powerups/armor/newyellow -{ - { - map textures/sfx/specular.tga - tcGen environment - rgbGen identity - } - { - map models/powerups/armor/newyellow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - -} - -models/powerups/armor/shard2 -{ - { - map textures/effects/tinfx2c.tga - tcGen environment - rgbGen identity - } - { - map models/powerups/armor/shard2.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -//******************************************************// -// models/powerups/health subfolder // -//******************************************************// - -models/powerups/health/blue -{ - { - map textures/effects/envmapbfg.tga - tcGen environment - - } -} - -models/powerups/health/blue_sphere -{ - { - map textures/effects/tinfx2b.tga - tcGen environment - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/green -{ - - { - map textures/effects/envmaprail.tga - tcGen environment - - } -} - -models/powerups/health/green_sphere -{ - { - map textures/effects/tinfx2b.tga - tcGen environment - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/mega1 -{ - { - map textures/effects/envmapblue2.tga - tcGen environment - tcmod rotate 33 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/mega2 -{ - - { - map textures/effects/envmapblue.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - - } - { - map textures/sfx/kenelectric.tga - tcmod scale 2 2 - tcmod rotate 333 - tcmod scroll 9 9 - blendfunc GL_ONE GL_ONE - - } -} - -models/powerups/health/red -{ - - { - map textures/effects/envmapgold.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - - } - { - map textures/sfx/kenelectric.tga - tcmod scale 2 2 - tcmod rotate 333 - tcmod scroll 9 9 - blendfunc GL_ONE GL_ONE - - } -} - -models/powerups/health/red_sphere -{ - { - map textures/effects/envmapgold2.tga - tcGen environment - tcmod rotate 33 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/yellow -{ - - { - map textures/effects/envmapyel.tga - tcGen environment - //blendfunc GL_ONE GL_ONE - - } - -} - -models/powerups/health/yellow_sphere -{ - { - map textures/effects/tinfx2b.tga - tcGen environment - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/powerups/holdable subfolder // -//******************************************************// - -models/powerups/holdable/medkit_base -{ - { - map textures/effects/envmap.tga - tcgen environment - } - -} - -models/powerups/holdable/medkit_fluid -{ - sort additive - cull back - { - map models/powerups/holdable/medkit_fluid.tga - tcMod scroll 0 2 - blendfunc GL_ONE GL_ONE - } - -} - -models/powerups/holdable/medkit_sphere -{ - { - map textures/effects/envmapdim.tga - tcgen environment - blendfunc GL_ONE GL_ONE - } - -} - -models/powerups/holdable/teleport_base -{ - { - map textures/effects/envmap.tga - tcgen environment - } - -} - -models/powerups/holdable/teleport_fluid -{ - sort additive - cull back - { - map models/powerups/holdable/teleport_fluid.tga - tcMod scroll 0 2 - blendfunc GL_ONE GL_ONE - } - -} - -models/powerups/holdable/teleport_sphere -{ - { - map textures/effects/envmapdim.tga - tcgen environment - blendfunc GL_ONE GL_ONE - } - -} - -//******************************************************// -// models/powerups/instant subfolder // -//******************************************************// - -models/powerups/instant/enviro -{ - //{ - // map models/powerups/instant/enviro.tga - //} - { - map textures/effects/envmapgold.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/flight -{ - { - map textures/effects/envmappurp.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/haste -{ - { - map textures/effects/envmapyel.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/invis -{ - { - map textures/effects/tinfx2c.tga - //map textures/sfx/specular.tga - blendfunc GL_ONE GL_ONE - tcGen environment - } -} - -models/powerups/instant/quad -{ - //{ - // map gfx/colors/darkblue.tga - //} - { - map textures/effects/envmapblue.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/regen -{ - { - map textures/effects/envmapred.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } -} - -models/powerups/instant/scan -{ - { - map models/powerups/instant/scan.tga - } - { - map textures/effects/envmapdim.tga - blendfunc GL_ONE GL_ONE - tcGen environment - } -} - - -//**************************************************************// -// // -// MODELS/WEAPONS2 // -// // -//**************************************************************// - -//******************************************************// -// models/weapons2/bfg subfolder // -//******************************************************// - -models/weapons2/bfg/bfg -{ - { - map textures/effects/tinfx2d.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll .01 .01 - tcGen environment - rgbGen lightingDiffuse - } - { - map models/weapons2/bfg/bfg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/bfg/bfg_e -{ - { - //map models/weapons2/bfg/bfg_e2.tga - map textures/effects/envmapbfg.tga - blendfunc GL_ONE GL_ZERO - tcMod turb 0 .5 0 .1 - tcmod scale .4 .4 - tcMod scroll .2 -.2 - rgbGen identity - } - { - //map models/weapons2/bfg/bfg_e2.tga - //map models/players/doom/phobos_fx.tga - map textures/effects/envmapbfg.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 .5 0 .1 - tcmod scale .2 .2 - tcMod scroll .3 .6 - rgbGen identity - } - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -models/weapons2/bfg/bfg_k -{ - - { - map textures/effects/envmapbfg.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 30 - tcmod scroll 1 1 - tcGen environment - rgbGen identity - } - { - map models/weapons2/bfg/bfg_k.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/bfg/f_bfg -{ - sort additive - cull disable - { - clampmap models/weapons2/bfg/f_bfg.tga - blendfunc GL_ONE GL_ONE - tcmod rotate 360 - } - { - clampmap models/weapons2/bfg/f_bfg2.tga - blendfunc GL_ONE GL_ONE - tcmod rotate -129 - //tcMod stretch sin .8 0.10 0 .7 - } - -} - -//******************************************************// -// models/weapons2/chainsaw subfolder // -//******************************************************// - -//models/weapons2/chainsaw/f_chainsaw -//{ -// sort nearest -// cull back -// { -// map models/weapons2/chainsaw/f_chainsaw.tga -// blendfunc GL_ONE GL_ONE_MINUS_SRC_COLOR -// -// } -//} - -//******************************************************// -// models/weapons2/flamethrower subfolder // -//******************************************************// - -models/weapons2/flamethrower/f_flamethrower -{ - cull disable - sort additive - { - map models/weapons2/flamethrower/f_flamethrower.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/gauntlet subfolder // -//******************************************************// - -models/weapons2/gauntlet/gauntlet2 -{ - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ZERO - tcGen environment - //rgbGen lightingDiffuse - rgbGen identity - } - { - map models/weapons2/gauntlet/gauntlet2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/gauntlet/gauntlet3 -{ - - cull disable - sort additive - { - // map models/weapons2/gauntlet/gauntlet3.tga - AnimMap 10 models/weapons2/gauntlet/gauntlet3.tga models/weapons2/gauntlet/gauntlet4.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/grapple subfolder // -//******************************************************// - -models/weapons2/grapple/f_grapple -{ - cull disable - sort additive - { - map models/weapons2/grapple/f_grapple.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/grapple/grapple -{ - { - map models/weapons2/grapple/grapple.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcmod scroll .1 .1 - tcGen environment - rgbGen lightingDiffuse - } - { - map models/weapons2/grapple/grapple.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/grapple/grapple_h -{ - - cull disable - - { - map models/weapons2/grapple/grapple_h.tga - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/weapons2/grapple/grapple_j -{ - - cull disable - - { - map models/weapons2/grapple/grapple_j.tga - blendFunc GL_ONE GL_ZERO - tcMod turb 0 .5 0 .7 - tcMod scroll 1 -1 - tcmod scale .5 .5 - rgbGen identity - } - { - map textures/liquids/jello2.tga - blendFunc GL_ONE GL_ONE - tcmod scale .7 .7 - tcMod turb 0 .4 0 .3 - tcMod scroll .7 -.4 - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/weapons2/grenadel subfolder // -//******************************************************// - -models/weapons2/grenadel/f_grenadel -{ - sort additive - cull disable - { - map models/weapons2/grenadel/f_grenadel.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/grenadel/ring -{ - - { - map models/weapons2/grenadel/ring.tga - } - - { - map textures/effects/envmapdim.tga - tcGen environment - blendFunc GL_ONE GL_ONE - //rgbGen identity - } -} - -//******************************************************// -// models/weapons2/lightning subfolder // -//******************************************************// - -models/weapons2/lightning/ball -{ - deformVertexes autoSprite - { - map models/weapons2/lightning/ball.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - tcMod rotate 360 - } - { - map models/weapons2/lightning/ball.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - tcMod rotate -200 - } - -} - -models/weapons2/lightning/ball1 -{ - sort additive - cull disable - - { - animMap 15 models/weapons2/lightning/ball1.tga models/weapons2/lightning/ball2.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/weapons2/lightning/button -{ - { - map models/weapons2/lightning/button.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 1 1 0 1 - } - -} - -models/weapons2/lightning/crackle1 -{ - sort additive - cull disable - - { - animMap 15 models/weapons2/lightning/crackle1.tga models/weapons2/lightning/crackle2.tga models/weapons2/lightning/crackle3.tga models/weapons2/lightning/crackle4.tga models/weapons2/lightning/crackle5.tga models/weapons2/lightning/crackle6.tga models/weapons2/lightning/crackle7.tga models/weapons2/lightning/crackle8.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/weapons2/lightning/f_lightning -{ - sort additive - cull disable - { - map models/weapons2/lightning/f_lightning.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/lightning/glass -{ - { - map models/weapons2/lightning/glass.tga - } - { - map textures/effects/envmapdim.tga - tcGen environment - blendfunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -models/weapons2/lightning/trail -{ - { - map models/weapons2/lightning/trail.tga - tcMod scroll 3.1 1 - rgbgen wave triangle 1 2 0 7 - blendfunc GL_ONE GL_ONE - } - { - map models/weapons2/lightning/trail.tga - tcMod scroll -1.7 1 - rgbgen wave triangle 1 1.1 0 5.1 - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/lightning/trail1 -{ - sort additive - cull disable - - { - animMap 15 models/weapons2/lightning/trail1.tga models/weapons2/lightning/trail2.tga models/weapons2/lightning/trail3.tga models/weapons2/lightning/trail4.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/weapons2/lightning/trail2 -{ - { - map models/weapons2/lightning/trail2.tga - tcMod scroll 3.1 1 - rgbgen wave triangle 1 2 0 7 - blendfunc GL_ONE GL_ONE - } - { - map models/weapons2/lightning/trail2.tga - tcMod scroll -1.7 1 - rgbgen wave triangle 1 1.1 0 5.1 - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/machinegun subfolder // -//******************************************************// - -models/weapons2/machinegun/f_machinegun -{ - sort additive - cull disable - { - map models/weapons2/machinegun/f_machinegun.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/plasma subfolder // -//******************************************************// - -models/weapons2/plasma/f_plasma -{ - cull disable - sort additive - { - map models/weapons2/plasma/f_plasma.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/plasma/plasma_glass -{ - - { - map textures/effects/tinfxb.tga - tcGen environment - tcMod scroll .01 .02 - blendfunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -models/weapons2/plasma/plasma_glo -{ - - { - map models/weapons2/plasma/plasma_glo.tga - tcmod rotate 33 - tcMod scroll .7 1 - rgbGen identity - } - { - map textures/effects/tinfxb.tga - tcGen environment - tcMod scroll .01 .02 - blendfunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -//******************************************************// -// models/weapons2/railgun subfolder // -//******************************************************// - -models/weapons2/railgun/f_railgun2 -{ - sort additive - cull disable - { - map models/weapons2/railgun/f_railgun2.tga - blendfunc GL_ONE GL_ONE - rgbgen entity - } -} - -models/weapons2/railgun/railgun2 -{ - sort additive - cull disable - { - map models/weapons2/railgun/railgun2.glow.tga - blendfunc GL_ONE GL_ONE - rgbGen entity // identity - } -} - -models/weapons2/railgun/railgun3 -{ - { - map models/weapons2/railgun/railgun3.tga - rgbGen lightingDiffuse - } - - { - map models/weapons2/railgun/railgun3.glow.tga - blendfunc GL_ONE GL_ONE - rgbGen entity // identity - } -} - -models/weapons2/railgun/railgun4 -{ - { - map models/weapons2/railgun/railgun4.tga - tcMod scroll 0 1 - rgbGen entity // identity - } - -} - -//******************************************************// -// models/weapons2/rocketl subfolder // -//******************************************************// - -models/weapons2/rocketl/f_rocketl -{ - cull disable - sort additive - { - map models/weapons2/rocketl/f_rocketl.tga - blendfunc GL_ONE GL_ONE - } -} - -// this one can go away eventually -models/weapons2/rocketl/rocketl14 -{ - cull disable - sort additive - { - map models/weapons2/rocketl/f_rocketl.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/shotgun subfolder // -//******************************************************// - -models/weapons2/shotgun/f_shotgun -{ - sort additive - cull disable - { - map models/weapons2/shotgun/f_shotgun.tga - blendfunc add - } -} - -models/weapons2/shotgun/shotgun_laser -{ - - { - map models/weapons2/shotgun/shotgun_laser.tga - blendfunc add - } -} - - -//**************************************************************// -// // -// MODELS/WEAPHITS // -// // -//**************************************************************// - -models/weaphits/bfg01 -{ - deformVertexes autoSprite - cull none - - { - clampmap models/weaphits/bfg01.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 333 - rgbGen identity - } - { - clampmap models/weaphits/bfg01.tga - blendFunc GL_ONE GL_ONE - tcMod rotate -100 - rgbGen identity - } - -} - -models/weaphits/bfg02 -{ - cull none - nomipmaps - { - map models/weaphits/bfg03.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 2 0 - rgbGen identity - } - { - map models/weaphits/bfg02.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 3 0 - tcMod turb 0 .25 0 1.6 - rgbGen identity - } -} - -models/weaphits/electric -{ - cull none - - { - clampmap models/weaphits/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 9 - tcMod rotate 360 - } - { - clampmap models/weaphits/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 9.5 - tcMod rotate -202 - } - -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/museum.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/museum.shader.svn-base deleted file mode 100644 index 0d65b927..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/museum.shader.svn-base +++ /dev/null @@ -1,27 +0,0 @@ - -////////////////////////////// -// Rainy Concrete floor // -////////////////////////////// - -textures/base_floor/concfloor_rain -{ - tessSize 32 - deformVertexes normal 1 15 - { - map textures/base_floor/concfloor_rain.tga - rgbGen identity - } - { - map textures/liquids/pj_e3_reflection2b.tga - tcgen environment - rgbgen wave sin .3 0 0 0 - tcmod scale 2 2 - tcMod scroll .5 .5 - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/organics.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/organics.shader.svn-base deleted file mode 100644 index c4b23cf2..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/organics.shader.svn-base +++ /dev/null @@ -1,32 +0,0 @@ - -textures/organics/dirt_trans -{ - qer_editorimage textures/organics/dirt.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/organics/dirt.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/organics/wire02a_f -{ - q3map_surfacelight 200 - { - map $lightmap - rgbGen identity - } - { - map textures/organics/wire02a_f.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/sfx.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/sfx.shader.svn-base deleted file mode 100644 index 5edf9796..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/sfx.shader.svn-base +++ /dev/null @@ -1,3253 +0,0 @@ -textures/sfx/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - - { - map textures/sfx/beam.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_blue - { - qer_editorimage textures/sfx/beam_blue4.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .6 - cull none - { - map textures/sfx/beam_blue4.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_dusty2 -{ - qer_editorimage textures/sfx/beam_1.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - { - map textures/sfx/beam_1.tga - blendFunc add - } -} - -textures/sfx/beam_red -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - cull none - { - map textures/sfx/beam_red.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_waterlight2 -{ - qer_editorimage textures/sfx/beam_waterlight.tga - q3map_globaltexture - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 50 - qer_trans 0.6 - cull none - { - map textures/sfx/beam_waterlight.tga - tcMod turb 0 0.015 0.5 0.07 - tcMod Scroll .15 0 - blendFunc add - } - -} - -textures/sfx/blackness -{ - surfaceparm nolightmap - surfaceparm noimpact - surfaceparm nomarks - { - map textures/sfx/blackness.tga - } -} - -textures/sfx/blocks17final_pent -{ - qer_editorimage textures/sfx/blocks17final_pent.tga - { - map textures/sfx/blocks17final_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/blocks17g_jumpad -{ - surfaceparm nodamage - q3map_surfacelight 400 - - - { - map textures/sfx/blocks17g_jumpad.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/blocks18ccomputer -{ - - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/blocks18ccomputer.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/border11c -{ - q3map_surfacelight 300 - q3map_lightimage textures/base_trim/border11c_pulse1.tga - qer_editorimage textures/base_trim/border11c.tga - - { - map textures/base_trim/border11c.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/base_trim/border11c_light.tga - blendfunc gl_one gl_one - rgbgen wave sin 1 .1 0 5 - } - - - { - map textures/base_trim/border11c_pulse1b.tga - blendfunc gl_one gl_one - tcmod scale .035 1 - tcmod scroll -0.65 0 - - - } - - -} - -textures/sfx/bounce_concrete -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_concrete.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_dirt -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_dirt.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3 -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_metalbridge04 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_metalbridge04.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_xq1metalbig -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_xq1metalbig.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_block17 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 1000 - - - { - map textures/sfx/bouncepad01_block17.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_metalbridge06b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_metalbridge06b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_xarch -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_xarch.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01block18b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad1q1metal7_99 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad1q1metal7_99.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bugmirror -{ - qer_editorimage textures/sfx/mirrorkc.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirrorkc.tga - blendFunc add - depthfunc equal - } -} - -textures/sfx/bullseye -{ - cull disable - surfaceparm nomarks - surfaceparm nolightmap - deformVertexes autosprite - - { - clampmap textures/sfx/bullseye.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 200 - blendFunc add - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .3 - tcmod rotate 70 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 50 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .1 - tcmod rotate 30 - alphaFunc GE128 - rgbGen identity - } - -} - -textures/sfx/clangdark_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/clangdark_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/computer_blocks17 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computer_blocks17.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/computerblocks15 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerblocks15.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } -} - -textures/sfx/computerpurptileb -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerpurptileb.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/console01 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - qer_trans .5 - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console01.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -200 - blendFunc GL_ONE GL_ONE - } - -} - -textures/sfx/console03 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console03.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -400 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console03.tga - - tcMod rotate 40 - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/constfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( .8 .8 .8 ) 100 -} - -textures/sfx/demonltblackfinal -{ - q3map_lightimage textures/sfx/demonltblackfinal_glow2.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal_glow2.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/diamond2cjumppad -{ - qer_editorimage textures/sfx/bouncepad01_diamond2cTGA.tga - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 500 - - - { - map textures/sfx/bouncepad01_diamond2cTGA.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/dust_puppy2 -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/dust_puppy2.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan -{ - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - { - clampmap textures/sfx/fan.tga - tcMod rotate 256 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan3 -{ - cull disable - surfaceparm alphashadow - sort 6 - { - map textures/sfx/fan3.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/sfx/fan3bladeb -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - sort 5 - { - clampmap textures/sfx/fan3bladeb.tga - blendFunc blend - tcmod rotate 999 - rgbGen identity - } - -} - -textures/sfx/fan_grate -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm metalsteps - cull none - nopicmip - { - map textures/sfx/fan_grate.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fanfx -{ - qer_editorimage textures/sfx/fanfx.tga - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - - { - clampmap textures/sfx/fanfx.tga - tcMod rotate 256 - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - depthWrite - } -} - -textures/sfx/fishy -{ - tesssize 32 - deformVertexes wave 10 sin 0 3 0 .5 - cull disable - surfaceparm nolightmap - surfaceparm nomarks - - { - clampmap textures/sfx/fishy.tga - alphaFunc GE128 - tcMod stretch sin .8 0.10 0 .07 - depthWrite - - } - - -} - -textures/sfx/flame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 7500 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1_hell -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 600 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1dark -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 2000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1km -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 4000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1side -{ - qer_editorimage textures/sfx/flame1side.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame2.tga - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_nolight -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_pj -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_dimmer -{ - qer_editorimage textures/sfx/flame1.tga - q3map_lightimage textures/sfx/flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1500 - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_green_pj -{ - qer_editorimage textures/sfx/g_flame1.tga - q3map_lightimage textures/sfx/g_flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/g_flame1.tga textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga textures/sfx/g_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/g_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/flameanim_red -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_nolight -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_pj -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/fog_intel -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .75 .38 0 ) 800 -} - -textures/sfx/fog_mkcdm4 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .5 0 0 ) 96 -} - -textures/sfx/fog_pjdm1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .733 .737 .620 ) 300 - -} - -textures/sfx/fog_q3dm10 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( 0.75 0.38 0 ) 128 -} - -textures/sfx/fog_timctf1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .729 .729 .780 ) 464 - -} - -textures/sfx/fog_timdm1 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 616 -} - -textures/sfx/fog_timdm2 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 356 -} - -textures/sfx/fog_timdm8 -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .211 .231 .094 ) 250 -} - -textures/sfx/healthfloor -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - clampmap textures/sfx/healthfloor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/hellfog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 300 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 200 - fogparms ( .5 .12 .1 ) 300 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - } -} - -textures/sfx/hellfog_mini_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 16 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_pj_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 392 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_tim_dm14 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .55 .11 .1 ) 128 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - - -} - -textures/sfx/hellfogdense -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 128 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/jacobs_x -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/jacobs_x.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - //tcMod rotate 103 - } -} - -textures/sfx/kc_hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 300 - q3map_lightsubdivide 32 - fogparms ( .5 .12 .1 ) 225 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/kenelectric -{ - { - map textures/sfx/kenelectric.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 7 7 - tcMod scroll 5 -5 - tcmod rotate 360 - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/largerblock3b3_pent -{ - qer_editorimage textures/sfx/largerblock3b3_pent.tga - { - map textures/sfx/largerblock3b3_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/largerblock3b3x128_pent -{ - q3map_lightimage textures/sfx/pentagramfloor_blue3glowtest.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/largerblock3b3x128_pent.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/pentagramfloor_blue3glowtest.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/largerblock3b3x128_pentred -{ - qer_editorimage textures/sfx/largerblock3b3x128_pent.tga - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/largerblock3b3x128_pent.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/sfx/launchpad_blocks17 -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks17.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_blocks18d -{ - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks18d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_diamond -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_diamond.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_metalbridge04d -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_metalbridge04d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/lavabeam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map textures/sfx/lavabeam.tga - tcMod Scroll 999 0 - blendFunc add - } - -} - -textures/sfx/lightmap -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm nodrop - surfaceparm fog - fogparms ( .7 .1 .1 ) 64 - - - - { - map $lightmap - blendFunc GL_dst_color GL_one - tcmod scale 1 .01 - tcMod scroll 1 -2 - } - - -} - -textures/sfx/metalbridge06_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metalbridge06_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/metaltech12final_bounce -{ - - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metaltech12final_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/mkc_bigflame -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - qer_editorimage textures/sfx/flame1.tga - q3map_surfacelight 500 - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/mkc_fog_ctfblue -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.2 0.2 0.25 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfblue2 -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.1 0.1 0.3 ) 320 - - q3map_surfacelight 40 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfred -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_tdm3 -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/omm -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/omm.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/pentagramfloor_red3test -{ - { - map textures/sfx/pentagramfloor_red3test.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red3glowtest.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pentfloor_diamond2c -{ - qer_editorimage textures/sfx/pentfloor_diamond2c.tga - { - map textures/sfx/pentfloor_diamond2c.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pj_a1_fog1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 30 - fogparms ( .5 .5 .5 ) 512 -} - -textures/sfx/portal2_sfx -{ - qer_editorimage textures/sfx/portalfog.tga - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphagen portal 128 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx -{ - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphagen portal 256 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx_ring -{ - deformVertexes wave 100 sin 0 2 0 .5 - cull none - - { - map textures/sfx/portal_sfx_ring_blue1.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - - { - map textures/sfx/portal_sfx_ring_electric.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 .2 .5 - tcmod scroll 0 .5 - - } - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx_ring.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - -} - -textures/sfx/proto_hellfog -{ -qer_editorimage textures/sfx/fog_red.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap - -fogparms ( .275 .012 0 ) 500 -} - -textures/sfx/proto_zzztblu3 -{ - surfaceparm nolightmap - surfaceparm nonsolid - cull twosided - { - map textures/sfx/proto_zzztblu3.tga - tcGen environment - tcMod turb 0 0.25 0 0.5 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/sfx/pureblack -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map textures/skies/blacksky.tga - } -} - -textures/sfx/q3dm14fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3dm9fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3tourney3fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 384 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/rain -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - deformVertexes move 3 1 0 sin 0 5 0 0.2 - deformVertexes move .6 3.3 0 sin 0 5 0 0.4 - deformVertexes wave 30 sin 0 10 0 .2 - cull none - - { - map textures/sfx/rain.tga - tcMod Scroll .5 -8 - tcMod turb .1 .25 0 -.1 - blendFunc GL_ONE GL_ONE - } - { - map textures/sfx/rain.tga - tcMod Scroll .01 -6.3 - - blendFunc GL_ONE GL_ONE - } - - -} - -textures/sfx/smallerblock3b3dim_pent -{ - qer_editorimage textures/sfx/smallerblock3b3dim_pent.tga - { - map textures/sfx/smallerblock3b3dim_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/spawn_floor -{ - - { - map textures/sfx/firegorre2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/spawn_floord2c -{ - - { - map textures/sfx/proto_zzztblu.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floord2c.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/teslacoil -{ - cull none - q3map_lightimage textures/sfx/tesla1.tga - qer_editorimage textures/sfx/tesla1.tga - q3map_surfacelight 100 - - { - map $lightmap - tcgen environment - blendfunc filter - } - - { - map textures/sfx/tesla1.tga - blendfunc add - rgbgen wave sawtooth 0 1 0 5 - tcmod scale 1 .5 - tcmod turb 0 .1 0 1 - tcMod scroll -1 -1 - } - - - - { - map textures/sfx/electricslime.tga - blendfunc add - rgbgen wave sin 0 .5 0 1 - tcmod scale .5 .5 - tcmod turb 0 .1 0 1 - tcmod rotate 180 - tcmod scroll -1 -1 - } - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - -} - -textures/sfx/teslacoil3 -{ - cull none - q3map_lightimage textures/sfx/tesla1b.tga - q3map_surfacelight 100 - qer_editorimage textures/sfx/cabletest2.tga - surfaceparm nolightmap - - - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - - { - map textures/sfx/electricslime2.tga - blendfunc add - rgbGen wave square .25 .25 0 2.5 - tcmod scale 1 1 - tcMod scroll 1 1 - } - - - - { - map textures/sfx/tesla1b.tga - blendfunc add - rgbgen wave square 0 1 0 3 - tcmod scale 1 1 - tcMod scroll -2 1 - } - -} - -textures/sfx/testconstantfog -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( 0 1 0 ) 300 -} - -textures/sfx/x_conduit -{ - q3map_lightimage textures/sfx/x_conduit.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/x_conduit.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { animMap 10 textures/sfx/x_conduit2.tga textures/sfx/x_conduit3.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - map textures/sfx/x_conduit2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbGen wave sin .5 0.5 0 7 - } - { - map textures/sfx/x_conduit3.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbgen wave triangle .2 1 0 9 - } -} - -textures/sfx/xblackfog -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -fogparms ( 0 0 0 ) 128 - -} - -textures/sfx/xbluefog -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - q3map_lightimage textures/sfx/xbluelightimage.tga - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xbluefogx128 -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 128 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xdensegreyfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - - fogparms ( 0.7 0.7 0.7 ) 1700 -} - -textures/sfx/xfinalfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 3000 - -} - -textures/sfx/xfinalfoginvert -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0 0 0 ) 256 - -} - -textures/sfx/xflame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 7500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame1side -{ - surfaceparm trans - surfaceparm nomarks - qer_editorimage textures/sfx/flame1.tga - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_1800 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_2250 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2250 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflamebright -{ - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 3000 - qer_editorimage textures/sfx/flame1.tga - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/xian_dm3padwall - { - q3map_surfacelight 100 - q3map_lightimage textures/sfx/xian_dm3padwallglow.tga - qer_editorimage textures/sfx/xian_dm3padwall.tga - - { - map textures/sfx/xian_dm3padwall.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx/xian_dm3padwallglow.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx/xlightgreyfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 1400 - -} - -textures/sfx/xmetalfloor_wall_14b -{ - qer_editorimage textures/sfx/metalfloor_wall_14b.tga - q3map_lightimage textures/sfx/metalfloor_wall_14bglow2.tga - q3map_surfacelight 50 - { - map textures/sfx/metalfloor_wall_14b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_14bglow2.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xmetalfloor_wall_5b -{ - qer_editorimage textures/sfx/metalfloor_wall_5b.tga - - { - map textures/sfx/metalfloor_wall_7b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_5bglowblu.tga - blendfunc gl_one gl_one - rgbgen wave sin .5 .2 0 .1 - } -} - -textures/sfx/xmetalfloor_wall_9b -{ - qer_editorimage textures/sfx/metalfloor_wall_9b.tga - - { - map textures/sfx/metalfloor_wall_9b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_9bglow.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xq1metalbig_jumppad -{ - qer_editorimage textures/gothic_floor/q1metal7_98d_256x256.tga - surfaceparm nodamage - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/q1metal7_98d_256x256.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - clampmap textures/sfx/surface6jumppad.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.75 0.25 0 .2 - tcMod stretch sin 0.80 0.20 0 1 - } -} - -textures/sfx/xredfog -{ - q3map_lightimage textures/sfx/xredlightimage.tga - qer_editorimage textures/sfx/fog_red.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.9 0.3 0.3 ) 128 - -} - -textures/sfx/zap_scroll -{ - q3map_surfacelight 300 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} - -textures/sfx/zap_scroll1000 -{ - q3map_surfacelight 1000 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_lightimage textures/sfx/zap_scroll.tga - qer_editorimage textures/sfx/zap_scroll2.tga - cull none - - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skies.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skies.shader.svn-base deleted file mode 100644 index 27c27979..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skies.shader.svn-base +++ /dev/null @@ -1,1073 +0,0 @@ -textures/skies/blacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 25 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 90 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/hellsky -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 4 3 3 65 290 75 - q3map_surfacelight 50 - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.05 0 - tcMod scale 2 2 - depthWrite - } -} - -textures/skies/hellsky2 -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .9 .9 1 70 65 78 - q3map_surfacelight 60 - skyparms - 512 - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.02 0 - tcMod scale 1 1 - depthWrite - } - { - map textures/skies/dimclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.02 0.01 - tcMod scale 3 3 - } - -} - -textures/skies/hellsky2bright -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 1 1 100 220 50 - q3map_surfacelight 120 - - qer_editorimage textures/skies/inteldimredclouds.tga - - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/kc_dm10sky -{ - q3map_lightimage textures/skies/pjbasesky.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - - -} - -textures/skies/kcbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 500 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/killsky -{ - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 3 2 2 70 315 65 - q3map_surfacelight 75 - skyparms - 512 - - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/mkc_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 0.266383 0.274632 0.358662 150 60 80 - q3map_surfacelight 700 - - skyparms half 256 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/nightsky_xian_dm1 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 300 - q3map_sun 1 1 1 100 -41 58 - - qer_editorimage textures/skies/xnight2_up.tga - - - skyparms env/xnight2 - - -} - -textures/skies/nightsky_xian_dm15 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm nolightmap - surfaceparm noimpact - - q3map_surfacelight 900 - q3map_sun 1 1 1 100 -58 58 - skyparms env/xnight2 - - - - -} - -textures/skies/nightsky_xian_dm4 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 1 80 -41 58 - q3map_surfacelight 50 - skyparms env/xnight2 - - -} - -textures/skies/pj_arena2sky -{ - qer_editorimage textures/skies/pjbasesky.tga - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 55 - q3map_surfacelight 100 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_arena4_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 200 165 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf1sky -{ - qer_editorimage textures/skies/pjbasesky - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 75 - q3map_surfacelight 150 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf2_sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 250 90 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/bluedimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/topclouds.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_dm10sky -{ - q3map_lightimage textures/common/white.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - -} - -textures/skies/pj_dm9sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - - q3map_sun .5 .6 .8 140 165 60 - q3map_surfacelight 80 - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/pjbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 100 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/q3dm0 - -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 60 80 75 - q3map_surfacelight 80 - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/skybox -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/space1_bk.tga - q3map_sun 1 1 1 100 -58 58 - q3map_surfacelight 400 - - skyparms env/space1 - - - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/stars_arena7 -{ - qer_editorimage textures/skies/black_up.tga - - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 10 - q3map_sun .6 .6 .6 30 35 78 - - skyparms env/black - - -} - -textures/skies/tim_dm14 -{ - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun 3 2 2 90 314 60 - q3map_surfacelight 80 - skyparms - 512 - - - //cloudparms 512 full - //lightning - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm14red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun .5 .37 .19 70 314 60 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm3_red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 70 30 70 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_hell -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 1 .77 .77 80 315 70 - q3map_surfacelight 130 - skyparms - 384 - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_km2 -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 90 315 40 - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/toxicsky -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskydim -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 100 - q3map_sun 1 1 0.5 80 30 70 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_blue -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 70 60 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_ctf1 -//used in tim_ctf1 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 70 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm2 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 100 190 75 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm3 - -{ - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_dm4 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 120 75 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm5 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 .78 .48 90 225 55 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm7 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 260 50 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm8 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 85 220 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .980 .835 .3 100 25 65 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xblacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 300 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 45 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/xblacksky_dm7 -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map gfx/colors/black.tga - } -} - -textures/skies/xtoxicsky_ctf -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm14 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 800 - q3map_sun 1 1 0.85 100 90 90 - - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm3 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_q3ctf3 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xtoxicsky_tourney -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 495 - q3map_sun 1 1 0.5 150 75 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicskytim_q3dm5 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 400 - q3map_sun .5 .6 .8 150 30 60 - - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skin.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skin.shader.svn-base deleted file mode 100644 index f7e248d1..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/skin.shader.svn-base +++ /dev/null @@ -1,161 +0,0 @@ - -textures/skin/chapthroat2 -{ - qer_editorimage textures/skin/chapthroat2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/chapthroat2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/chapthroatooz -{ - - surfaceparm nonsolid - { - map textures/liquids/proto_gruel3.tga - tcMod scroll 0 .2 - tcMod scale 2 2 - rgbGen vertex - } - { - map textures/skin/chapthroatooz.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/skin/nibbles -{ - deformVertexes wave 10 sin 4 3 0 0.3 - { - rgbGen identity - map $lightmap - } - { - map textures/skin/nibbles.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/skin/skin1_trans -{ - qer_editorimage textures/skin/skin1.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/skin1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/skin5_trans -{ - qer_editorimage textures/skin/skin5.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/skin5.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/skin6_trans -{ - qer_editorimage textures/skin/skin6.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/skin6.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/skin6move -{ - tessSize 128 - deformVertexes wave 100 sin 4 3 0 0.3 - { - map $lightmap - rgbGen identity - } - { - map textures/skin/skin6move.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/skin/surface8_trans -{ - qer_editorimage textures/skin/surface8.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/surface8.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/tongue_trans -{ - qer_editorimage textures/skin/tongue.tga - surfaceparm nomarks - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/tongue.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/terrademoQ3.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/terrademoQ3.shader.svn-base deleted file mode 100644 index 0e185b00..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/terrademoQ3.shader.svn-base +++ /dev/null @@ -1,623 +0,0 @@ -// if you are using the tree models in any of your maps, make sure you redistribute those shaders - -models/mapobjects/tree/branch -{ - cull disable - deformVertexes wave 100 sin 0 .1 0 .2 - surfaceparm trans - { - map models/mapobjects/tree/branch.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -models/mapobjects/tree2/branch2 -{ - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - cull none - sort 10 - { - clampmap models/mapobjects/tree2/branch2.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } -} - -// following shaders are for terrain maps - -textures/common/terrain -{ - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/terrain2 -{ - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -// ************************************************* -// * -// * Vertex Lighting Replacement Shaders -// * -// ************************************************* - -textures/terrain/vxmpterra2 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock10b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -textures/terrain/vxmpterra1 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock12c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -// ********************************************************* - -// ************************************************* -// * -// * MPTerra2 terrain shaders (PaulJ) -// * -// ************************************************* - - -textures/terrain/mpterra2_0 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock9b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock12b_2.tga - rgbGen vertex - tcmod scale 0.1 0.1 - - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - -} - -textures/terrain/mpterra2_0to1 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - - { - map textures/stone/pjrock12b_2.tga - tcmod scale 0.1 0.1 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -textures/terrain/mpterra2_0to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.05 0.05 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock12b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.1 0.1 - } - - { - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -////////////////////////////////////////////// -// // -// x_mpterra // -// // -////////////////////////////////////////////// - -textures/terrain/vxmpterra3 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -textures/proto2/xproto_0to1 - -{ - surfaceparm nolightmap - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - - } - - { - map textures/proto2/px02.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_1to2 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - alphaGen vertex - } - - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_0to2 - -{ - surfaceparm nolightmap - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - - - -textures/proto2/xproto_0 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } -} - -textures/proto2/xproto_1 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } -} - -textures/proto2/xproto_2 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px03.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -// ************************************************* -// * -// * MPTerra1 terrain shaders (Tim) -// * -// ************************************************* - -textures/terrain/mpterra1_0 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to1 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock12c.tga - tcmod scale 0.125 0.125 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } -} - -// ********************************************************* -// MP Terra 3 Textures (Xian) -// ********************************************************* - -textures/proto2/x_sandy01 -{ - qer_editorimage textures/proto2/xsandy01.tga - surfaceparm nolightmap - { - map textures/proto2/xsandy01.tga - tcmod scale .8 .8 - rgbGen vertex - } -} - -textures/proto2/x_rocky01 -{ - qer_editorimage textures/proto2/xrocky01.tga - surfaceparm nolightmap - { - map textures/proto2/xrocky01.tga - tcmod scale .8 .8 - rgbGen vertex - } -} - - -textures/proto2/tproto_0to1 -{ - surfaceparm nolightmap - { - map textures/proto2/xsandy01.tga - tcmod scale .3 .3 - rgbGen vertex - alphaGen vertex - } - { - map textures/proto2/xrocky01.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -textures/proto2/tproto_0 -{ - surfaceparm nolightmap - { - map textures/proto2/xsandy01.tga - tcmod scale .2 .2 - rgbGen vertex - } -} - -textures/proto2/tproto_1 -{ - surfaceparm nolightmap - { - map textures/proto2/xrocky01.tga - tcmod scale .1 .1 - rgbGen vertex - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/test.shader.svn-base b/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/test.shader.svn-base deleted file mode 100644 index 8b40d0bc..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/.svn/text-base/test.shader.svn-base +++ /dev/null @@ -1,943 +0,0 @@ -//**********************************************************************// -// test.shader sorted and updated on Phase 2 // -// by Eutectic - 12 May 2000 // -// This file is irrelevant for Q3Radiant and the shaders // -// in this file must NOT be used to make new maps. // -// It was updated for the sake of completeness: // -// some shaders that belonged in other files were moved to those // -// shader files // -// // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 8 // -// textures/base/bluemet1 // -// textures/common/transwater // -// textures/gothic_trim/hellodolly // -// textures/sfx/kenelectric // -// textures/sfx/mkc_fog_dm1 // -// textures/sfx/mkc_fog_dm1a // -// textures/sfx/mkc_fog_dm4 // -// textures/skies/mkc_sky // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 0 // -//**********************************************************************// - -// ************************************************* -// * TEST SHADERS * -// * DO NOT USE IN PROJECT MAPS * -// ************************************************* - -textures/bwhtest/crackedearth -{ - { - map textures/bwhtest/crackedearth.tga - } -} - -// Rogues sorting trimmed glass// - -textures/bwhtest/lightning -{ - cull disable - { - map textures/bwhtest/lightning.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.1 0 1 - } -} - -textures/dont_use/flameshader -{ -// ************************************************* -// * test flames * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - cull none - fogparms .3 .1 .1 0 32 - tesssize 16 - deformVertexes wave 100 sin 2.5 5 10 .1 - -// END -} - -textures/dont_use/foggentest_shader -{ -// ************************************************* -// * Kevin's fogggen test * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms .2 .1 .3 0 0 - foggen sin .1 .1 .1 .1 - - cull backsided - - - -// END -} - -textures/dont_use/foglightshader -{ -// ************************************************* -// * Kevin's simplified fog * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - cull backsided - { - map textures/dont_use/fogkc.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 1 1 - tcMod scale .25 .25 - tcMod turb .1 .1 .1 .1 - } - - -// END -} - -textures/dont_use/metal2_2kc -{ - - surfaceparm nolightmap - cull none - { - map textures/dont_use/metal2_2kc.tga - alphaMap $fromBlack - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/dont_use/nightsky_kc -{ - -// ************************************************* -// * Kevin's strange test sky * -// ************************************************* - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 200 - - cloudparms 256 half - - - { - map textures/dont_use/strangesky3_kc.tga - tcMod scroll .03 .03 - } - - - { - map textures/dont_use/strangesky.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scroll .05 .05 - } - - - { - map textures/dont_use/strangesky2_kc.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - tcMod scroll 0.01 0.01 - tcMod scale .5 .5 - } - -//END -} - -textures/dont_use/nightsky_kcold -{ - -// ************************************************* -// * Kevin's four layer storm sky * -// ************************************************* - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 200 - - cloudparms 256 full - lightning - - { - map textures/dont_use/tileclouds3_kc.tga - tcMod scroll 0.01 0.01 - tcMod scale 2 2 - } - - - { - map textures/dont_use/tileclouds4_kc.tga - blendFunc GL_ONE GL_ONE - tcMod scroll .04 .05 - } - - - { - map textures/dont_use/lightningsky8_kc.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod scroll .1 .1 - tcMod scale 4 4 - } - - { - map textures/dont_use/tileclouds3b_kc.tga - blendFunc GL_DST_COLOR GL_ONE - tcMod scroll 0.01 .02 - } - -//END -} - -textures/dont_use/openwindow -{ - - surfaceparm nolightmap - cull none - - { - map textures/dont_use/openwindow.tga - alphaMap openwindow.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/dont_use/rustysupport -{ - - surfaceparm nolightmap - cull none - { - map textures/dont_use/rustysupport.tga - alphaMap $fromBlack - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/dont_use/shader2 -{ -// ************************************************* -// * test shader2 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - { - map textures/dont_use/shader2.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .01 0 .1 - tcMod scroll 0 0 - } -// END -} - -textures/dont_use/shader3 -{ -// ************************************************* -// * test shader3 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - - tesssize 64 - deformVertexes wave 100 sin 2 2 10 .01 - - { - map textures/dont_use/blood2.tga - tcMod turb .1 .1 0 0.02 - tcMod scroll .1 .1 - } - - -// END -} - -textures/dont_use/shader4 -{ -// ************************************************* -// * test shader4 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - q3map_surfacelight 100 - - { - map textures/dont_use/slimetest7c.tga - blendfunc GL_ONE_MINUS_DST_COLOR GL_ZERO - tcMod turb .01 .2 10 0.01 - tcMod scroll .2 .1 - } - { - map textures/dont_use/bubbleslimeelectricc.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .5 .5 10 0.01 - tcMod scroll .2 .2 - tcMod scale .1 .1 - } - - - - -// END -} - -textures/dont_use/shader5 -{ -// ************************************************* -// * test shader5 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - tesssize 64 - - { - map textures/dont_use/firetestb.tga - blendfunc gl_one gl_one - tcMod scroll 5 15 - tcMod scale .25 .25 - tcMod turb .2 .2 .1 1 - } - - { - map textures/dont_use/firetest.tga - blendFunc GL_dst_color gl_src_alpha - tcMod scroll 0 10 - tcMod scale .1 .1 - tcMod turb .2 .1 .1 1 - rgbGen wave SIN .5 .5 1 .1 - } - - { - map textures/dont_use/firetest2.tga - blendFunc GL_dst_color gl_one - tcMod scroll 10 50 - tcMod turb .1 .1 .5 .5 - rgbGen wave SIN .5 .5 1 .1 - } - - -// END -} - -textures/dont_use/shader5old -{ -// ************************************************* -// * test shader5 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - tesssize 64 - - - { - map textures/dont_use/firetestb.tga - blendfunc gl_one gl_one - tcMod scroll 5 15 - tcMod scale .25 .25 - tcMod turb .2 .2 .1 1 - } - - { - map textures/dont_use/firetest.tga - blendFunc GL_dst_color gl_src_alpha - tcMod scroll 0 10 - tcMod scale .1 .1 - tcMod turb .2 .1 .1 1 - } - - { - map textures/dont_use/firetest2.tga - blendFunc GL_dst_color gl_one - tcMod scroll 10 50 - tcMod turb .1 .1 .5 .5 - } - -// END -} - -textures/dont_use/sign_test_glow -{ - surfaceparm trans - surfaceparm nolightmap - q3map_surfacelight 100 - - { - map textures/dont_use/sign_test.tga - alphaMap $fromBlack - blendFunc GL_ONE GL_ONE - } - - { - map textures/dont_use/sign_test_glow.tga - alphaMap $fromBlack - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 1 .1 - } - -// END -} - -textures/dont_use/sky_test -{ - surfaceparm sky - surfaceparm noimpact - q3map_surfacelight 100 - surfaceparm nolightmap - sky textures/dont_use/sky_test -} - -textures/dont_use/train1kc_shader -{ -// ************************************************* -// * test shader wall * -// ************************************************* - - - { - map $lightmap - rgbGen identity - } - - { - map textures/common/pjrock5b.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - rgbGen identity - detail - tcmod scale 9.1 9.2 - } - - { - map textures/common/pjrock5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -// END -} - -textures/dont_use/web -{ - - surfaceparm nolightmap - cull twosided - { - map textures/dont_use/web.tga - alphaMap $fromBlack - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/test/blocks10pent -{ - - // ************************************************* - // * TEST BORDER WALL * - // * Feb 24 1999 * - // * Please Comment Changes * - // ************************************************* - - q3map_surfacelight 1000 - surfaceparm nodamage - qer_lightimage textures/test/jumpadsmall.tga - - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/test/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin .6 .4 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - - // END -} - -textures/test/electricity3 -{ - // ************************************************* - // * Ripply Water Feb 16 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - qer_trans .5 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 triangle 2 2 1 0.1 - - - - { - map textures/test/fub.tga - blendFunc GL_ZERO GL_ONE - alphafunc GT0 - tcMod scale .1 .01 - tcmod turb 0 .01 .3 .1 - alphaGen wave sin .5 .5 0 .01 - tcMod scroll .1 .1 - depthWrite - } - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - - - { - map textures/test/electricity9.tga - blendfunc GL_DST_COLOR GL_ONE - tcmod turb 0 .01 .3 10 - tcMod scale .5 .5 - tcMod rotate 1 - depthfunc equal - tcMod scroll -.01 -.05 - } - - { - map textures/test/electricity9.tga - blendfunc GL_DST_COLOR GL_ONE - tcmod turb 0 .01 .3 10 - tcMod scale .5 .5 - tcMod rotate 1 - depthfunc equal - tcMod scroll -.01 -.05 - } - - // END -} - -textures/test/densewaterfog -{ - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - backsided - fogparms 0.7 0.7 0.7 128 64 -} - -textures/test/fire2 -{ - - { - map textures/test/fire2.tga - } - { - map textures/test/fire3.tga - tcMod turb 0 .1 0 .7 - tcMod scroll 0 10 - rgbGen wave sin 1 2 0 1 - } - { - map textures/test/fire3.blend.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0 10 - } -} - -textures/test/fogtestshader -{ -// ************************************************* -// * Kevin's simplified fog * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - cull disable - fogparms .2 .225 .25 0 0 - tesssize 64 - - { - map textures/test/cloud2.tga - blendFunc GL_DST_COLOR GL_ONE - tcGen environment - tcMod turb .5 .5 .5 0.03 - tcMod scroll .25 .25 - tcMod scale .5 .5 - } - -// END -} - -textures/test/lavacrustshader -{ -// ************************************************* -// * Kevin's brown lava crust * -// ************************************************* - - surfaceparm trans - //surfaceparm nonsolid - //surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - -// light 1 - q3map_surfacelight 100 - - tesssize 64 - deformVertexes wave 100 sin 1 1 0 .03 - cull disable - - { - map textures/test/lavatest.tga - tcMod turb .25 0.1 1 0.02 - tcMod scroll .2 .2 - } - { - map textures/test/lavacrust.tga - blendfunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .5 .5 5 0.01 - tcMod scroll .1 .1 - tcMod scale .1 .1 - rgbGen wave triangle 1 1 2 1 - } - { - map textures/test/lavacrust.tga - blendfunc GL_ONE GL_SRC_ALPHA - tcMod turb .2 .01 5 .01 - tcMod scroll -.01 -.01 - } - - -// END -} - -textures/test/lavatest -{ -// ************************************************* -// * Kevin's simplified version of lava * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - -// light 1 - q3map_surfacelight 100 - - tesssize 128 - cull disable - deformVertexes wave 100 sin 5 5 .5 0.02 - - { - map textures/test/lavatest.tga - tcMod turb .25 0.2 1 0.02 - tcMod scroll .25 .25 - } - -// END -} - -textures/test/river -{ -// ************************************************* -// * Kevin's test river shader * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .05 - - { - map textures/test/watertest8c.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - tcMod turb .01 .01 0 0.1 - tcMod scroll -5 0 - tcMod scale .5 .5 - } - { - map textures/test/watertest10f.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod turb .01 .01 0 0.1 - rgbGen wave sin .8 .01 1 1 - tcMod scroll -6 0 - tcMod scale .5 .5 - } - { - map textures/test/watertest8e.tga - blendFunc GL_DST_COLOR GL_ONE - tcMod turb .01 .01 .1 .1 - tcMod scroll -10 0 - } - -// END -} - -textures/test/rnd_ledm1 -{ - surfaceparm nolightmap - surfaceparm trans - qer_trans 0.5 - qer_editorimage textures/test/rnd_ledm1.tga - - { - map textures/test/rnd_ledm1.tga - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/test/rnd_ledm2.tga - blendFunc GL_ZERO GL_SRC_COLOR - rgbGen identity - } -} - -textures/test/slimeshader -{ -// ************************************************* -// * Kevin's temp slime with electricity * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm slime - surfaceparm nolightmap - - tesssize 64 - cull disable - deformVertexes wave 100 sin .5 .5 1 .05 - - q3map_surfacelight 500 - - { - map textures/test/slimetest6.tga - tcMod turb .25 0.1 1 0.02 - tcMod scroll .2 .2 - } - { - map textures/test/slimecrust5d.tga - blendfunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .5 .5 1 .02 - tcMod scroll .1 .01 - tcMod scale .1 .1 - } - { - map textures/test/electricslime.tga - tcMod turb 1 1 1 .01 - tcMod scroll 1 5 - tcMod scale .5 .5 - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .1 - } - { - map textures/test/slimecrust5d.tga - blendfunc GL_ONE GL_SRC_ALPHA - tcMod turb .2 .1 5 .01 - tcMod scroll -.01 -.01 - } - -// FOG - surfaceparm fog - fogparms .2 1 .25 0 256 - -// END -} - -textures/test/waterfall -{ -// ************************************************* -// * Kevin's test waterfall shader * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 16 - deformVertexes wave 100 sin 0 2 1 .1 - - - { - map textures/test/watertest8e.tga - blendFunc GL_ONE GL_SRC_ALPHA - tcMod turb .01 .01 0 0.1 - tcMod scroll 15 0 - } - { - map textures/test/watertest10f.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod turb .01 .01 0 0.1 - rgbGen wave sin .8 .01 1 1 - tcMod scroll 20 0 - } - { - map textures/test/watertest10c.tga - blendFunc GL_ONE GL_SRC_ALPHA - //tcMod turb .05 .05 .1 0.1 - tcMod scroll 17 1 - tcMod scale .5 .5 - } - - -// END -} - -textures/test/watertile -{ -// ************************************************* -// * Kevin's test water tile with shader * -// ************************************************* - - cull disable - - { - map textures/paulbase/tilefloor2.tga - } - //{ - //map textures/test/watertest7f.tga - //blendFunc GL_ONE GL_SRC_COLOR - //tcMod turb .01 .02 0 0.05 - //tcMod scroll .01 .01 - //} - //{ - //map textures/test/watertest7h.tga - //blendFunc GL_ONE GL_SRC_COLOR - //tcMod turb .01 .03 0 0.05 - //tcMod scroll -.01 -.01 - //} - -// END -} - -textures/test/water_trans -{ -// ************************************************** -// * Kevin's simplified version of translucent water* -// * Should be used for small pools * -// ************************************************** - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - { - map textures/test/watertest8d.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/test/watertest12e.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod scale .2 .2 - tcMod stretch sin 1 .1 .02 .05 - rgbGen wave sin .8 .2 .02 .05 - tcMod scroll -.001 .001 - } - - { - map textures/test/watertest12e7.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - { - map textures/test/watertest12e6.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod scale .3 .3 - tcMod turb .1 .01 .01 .01 - tcMod stretch sin 1 .3 .015 .015 - rgbGen wave sin .7 .3 .02 .02 - tcMod scroll .001 -.001 - } - -// END -} - -textures/test/wispy -{ - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - - deformVertexes wave 100 sin 0 3 0 0.1 - tesssize 64 - - { - map env/alphaclouds.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcMod scroll 1 0.8 - tcMod scale 0.1 0.1 - tcMod turb 0 0.3 0 0.1 - } - -} - -textures/vector -// testing tcgen vector -{ - nomipmaps - { - map textures/gothic_block/blocks10.tga - tcGen vector ( 0.0001 0.0001 0.0001 ) ( 0 0 0 ) - tcMod scroll 0.01 0 - rgbGen identity - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_button.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_button.shader deleted file mode 100644 index f9de7549..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_button.shader +++ /dev/null @@ -1,21 +0,0 @@ - -textures/base_button/shootme2 -{ - qer_editorimage textures/base_button/metal3_3_shootme.tga - q3map_lightimage textures/base_button/shootme_glow.tga - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_support/metal3_3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_button/shootme_glow.tga - rgbGen wave sin 0.5 1.0 0 .3 - blendFunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_door.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_door.shader deleted file mode 100644 index e697701f..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_door.shader +++ /dev/null @@ -1,97 +0,0 @@ - -textures/base_door/shinymetaldoor -{ - - { - //map $lightmap - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - rgbGen identity - } - - - { - map textures/base_door/shinymetaldoor.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map textures/base_door/quake3sign.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} - -textures/base_door/shinymetaldoor_outside -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - rgbGen identity - } - - - { - map textures/base_door/shinymetaldoor_outside.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map textures/base_door/quake3sign_outside.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} - -textures/base_door/shinymetaldoor_outside3a2 -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - rgbGen identity - } - - - { - map textures/base_door/shinymetaldoor_outside3a2.tga - blendFunc blend - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc filter - } - - { - map textures/base_door/shinymetaldoor_outside3glow.tga - blendFunc add - rgbGen wave sin .9 .1 0 5 - } - -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_floor.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_floor.shader deleted file mode 100644 index b6c754aa..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_floor.shader +++ /dev/null @@ -1,900 +0,0 @@ -textures/base_floor/clang_floor3blava -{ - surfaceparm nolightmap - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clang_floor3blava.tga - blendfunc blend - - } - -} - -textures/base_floor/clangdark -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow3 -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clangdark_ow3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangdarkspot -{ - surfaceparm metalsteps - //{ - // map textures/base_floor/clangdarkspot.tga - // rgbGen identity - //} - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangdarkspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangfloor_noisy -{ - qer_editorimage textures/base_floor/clang_floor.tga - surfaceparm metalsteps - { - map $lightmap - rgbGen identity - } - - { - map textures/base_floor/clang_floor.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbgen identity - - } - -} - -textures/base_floor/clangspot2 -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangspot2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/concretefloor1 -{ - - { - map textures/base_wall/chrome_env.tga - tcgen environment - rgbgen wave sin .25 0 0 0 - } - - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ZERO GL_SRC_ALPHA - tcmod scale .1 .1 - rgbgen identity - } - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ONE GL_SRC_ALPHA - rgbgen identity - } - - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - - - -} - -textures/base_floor/cybergrate2 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/base_floor/cybergrate2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/cybergrate3 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/sfx/hologirl.tga - blendFunc add - tcmod scale 1.2 .5 - tcmod scroll 3.1 1.1 - - } - { - map textures/base_floor/cybergrate3.tga - alphaFunc GE128 - depthWrite - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/diamond2c_ow -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/diamond2c_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond2cspot -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/base_floor/diamond2cspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond_noisy -{ - qer_editorimage textures/base_floor/diamond2.tga - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/diamond2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/floor3_3dark_ow -{ - - { - map textures/effects/envmapblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/base_floor/floor3_3dark_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/base_floor/hfloor3 -{ - //deformVertexes wave 100 sin 3 2 .1 3 - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/hfloor3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_floor/hfloor3.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/metalbridge04dbroke -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/metalbridge04dbroke.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/nomarkstone_1 -{ - qer_editorimage textures/base_floor/smallstone.tga - q3map_lightimage textures/base_floor/smallstone.tga - q3map_globaltexture - surfaceparm nomarks - surfaceparm noimpact - - // A stone that isn't marked by weapons. Used below red fog in pj_dm10 - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/smallstone.tga - tcMod scale 2 2 - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/pjgrate1 -{ - surfaceparm metalsteps - cull none - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate1.tga - tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/pjgrate2 -{ - surfaceparm metalsteps - cull none - - // A RUSTED GRATE THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate2.tga - tcMod scale 2.0 2.0 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - rgbGen identity - } -} - -textures/base_floor/pool_floor2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_floor2.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_floor3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_side2.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/proto_grate -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate3 -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate3.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate4 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm nonsolid //Tim's fuckage - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate4.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate2 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate2.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/rusty_pentagrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - - cull none - nopicmip - // A RUSTY and Eeevil grate THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/rusty_pentagrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/skylight1 -{ - q3map_lightimage textures/base_floor/skylight1_lm.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/skylight1.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 2 0 7.7 - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 5 1 5.1 - } - -} - -textures/base_floor/skylight_spec -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/skylight_spec.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_floor/techfloor -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztpink.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - //clampmap textures/gothic_block/blocks18cgeomtrn2.tga - clampmap textures/base_floor/techfloor2.tga - blendFunc blend - tcmod rotate 170 - tcMod stretch sin .8 0.2 0 .4 - rgbGen identity - } - { - map textures/base_floor/techfloor.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/techfloor2 -{ - cull disable - //surfaceparm trans - surfaceparm nomarks - //nomipmaps - - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 70 - tcMod stretch sin .8 0.2 0 .3 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate -50 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/base_floor/tilefloor7_ow -{ - q3map_lightimage textures/base_floor/tilefloor7_owfx.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/tilefloor7_ow.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_light.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_light.shader deleted file mode 100644 index 07ade964..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_light.shader +++ /dev/null @@ -1,1683 +0,0 @@ -textures/base_light/baslt4_1_2k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 2000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/baslt4_1_4k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 4000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light -{ - q3map_surfacelight 500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light_300 -{ - qer_editorimage textures/base_light/border11light.tga - q3map_lightimage textures/base_light/border11light.blend.tga - - q3map_surfacelight 235 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border7_ceil50 -{ - qer_editorimage textures/base_light/border7_ceil50.tga - q3map_surfacelight 100 - // Square dirty white llight - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border7_ceil50.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border7_ceil50glow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_22a.tga - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_trans -{ - qer_editorimage textures/base_light/ceil1_22a.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square rich blue light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_30.tga - q3map_surfacelight 8000 -// light 1 - // Square rich blue light (8k light wattage - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_trans -{ - qer_editorimage textures/base_light/ceil1_30.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_10k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_1k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_2k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_5k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_37 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_37.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_37.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38 -{ - surfaceparm nomarks - q3map_surfacelight 2500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_10k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_20k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_30k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_40k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_50k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_70k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_90k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_39 -{ - surfaceparm nomarks - q3map_surfacelight 7500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_4 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_4.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_4.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil_white5k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/cornerlight -{ - q3map_lightimage textures/base_light/cornerlight.glow.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/cornerlight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/cornerlight.glow.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } -} - -textures/base_light/geolight -{ - q3map_lightimage textures/base_light/geolight_glow.tga - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/geolight.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_light/geolight_glow.tga - blendFunc add - rgbgen wave sin .575 .025 0 10 - } - -} - -textures/base_light/jaildr03_1 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/jaildr03_2 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_2.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/base_light/jaildr1_3 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr1_3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr1_3.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_1500 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_3000 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_5000 -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_1500 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_2000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_5000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_800 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 800 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1dark -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 6000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_2000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_5000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_10k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/xlight5.blend.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_15k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/light5.blend.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_3000 -{ - qer_editorimage textures/base_light/light5.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 3000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_5k -{ - qer_editorimage textures/base_light/light5.tga - //light 1 - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 5000 - { - map textures/base_light/light5.tga - rgbGen identity - } -} - -textures/base_light/lt2_2000 -{ - qer_editorimage textures/base_light/light2.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin 0.6 0.1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_4000 -{ - qer_editorimage textures/base_light/light2.tga - //light 1 - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_8000 -{ - qer_editorimage textures/base_light/light2.tga - surfaceparm nomarks - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite -{ - q3map_surfacelight 2500 - surfaceparm nomarks -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2 -{ - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2_1000 -{ - qer_editorimage textures/base_light/patch10_pj_lite2.tga - q3map_surfacelight 1000 - surfaceparm nomarks - //light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1K -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - // Square dirty white - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1p5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/proto_light -{ - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_light_2k -{ - qer_editorimage textures/base_light/proto_light.tga - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_lightred -{ - q3map_lightimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 300 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - } - -} - -textures/base_light/proto_lightred2 -{ - q3map_lightimage textures/base_light/proto_lightred.tga - qer_editorimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - rgbGen wave square .5 .5 0 1 - } - -} - -textures/base_light/runway -{ - q3map_lightimage textures/base_light/runway_glow.tga - surfaceparm nomarks - q3map_surfacelight 400 - { - map textures/base_light/runway_glow.tga - tcmod scale 1 .25 - rgbgen wave square -1 2 .5 8 - tcmod scroll 0 .5 - } - - { - map textures/base_light/runway.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/base_light/runwayb.tga - blendFunc add - rgbGen identity - } - - -} - -textures/base_light/s_proto_light -{ - q3map_lightimage textures/base_light/s_proto_lightmap.tga - qer_editorimage textures/base_light/proto_light.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/scrolllight -{ - q3map_lightimage textures/sfx/scrolllight2.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - Map textures/base_light/scrolllight.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1 0 - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -2 0 - } - - -} - -textures/base_light/trianglelight -{ - q3map_lightimage textures/base_light/trianglelight.blend.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/trianglelight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/trianglelight.blend.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } - - -} - -textures/base_light/wsupprt1_12 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - //light1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_1 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_10k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_110k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 110000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_15k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_20k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_2k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_30k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_500k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 500000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_50k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_70k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_90k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_a -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_b -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_object.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_object.shader deleted file mode 100644 index 964e3345..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_object.shader +++ /dev/null @@ -1,30 +0,0 @@ - -textures/base_object/boxQ3_3 -{ - // A red box side with a specular map on it - { - map $lightmap - rgbGen identity - } - { - map textures/base_object/boxQ3_3.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } -} - -textures/base_object/boxq3_4 -{ - // A golden yellow box with a specular map on it - { - map $lightmap - rgbGen identity - } - { - map textures/base_object/boxq3_4.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_support.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_support.shader deleted file mode 100644 index 03647ee1..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_support.shader +++ /dev/null @@ -1,211 +0,0 @@ - -textures/base_support/cable_trans -{ - - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_support/cable_trans.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_support/grate1_3 -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/base_support/grate1_3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - alphaGen lightingSpecular - rgbGen identity - } - -} - -textures/base_support/pj_metal14_1 -//Paul Jaquays uses this on the tops of metal frameworks -{ - qer_editorimage textures/base_support/metal14_1.tga - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_support/metal14_1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/base_support/support1rust -{ - //deformVertexes wave 100 sin 3 2 .1 3 - { - rgbGen identity - map $lightmap - } - { - map textures/base_support/support1rust.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_trim/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_support/support1rust.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_support/support1shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_support/support1shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - - -textures/base_support/support2rust -{ - qer_editorimage textures/base_support/support1rust.tga - { - rgbGen identity - map $lightmap - } - { - map textures/base_support/support1rust.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_support/x_support -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/x_support.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_support/x_support2 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm playerclip - surfaceparm nonsolid - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/x_support2.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_support/x_support3 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/x_support3.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_support/z_support -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_support/z_support.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_trim.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_trim.shader deleted file mode 100644 index c0582be3..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_trim.shader +++ /dev/null @@ -1,591 +0,0 @@ - -textures/base_trim/border11_250 -{ - qer_editorimage textures/base_trim/border11light.tga - q3map_surfacelight 250 - q3map_lightimage textures/base_trim/border11light.glow.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border11light.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border11light.glow.tga - blendfunc GL_ONE GL_ONE - rgbgen wave sin .9 .1 0 10 - } -} - -textures/base_trim/border11light -{ - q3map_surfacelight 500 - Q3map_lightimage textures/base_trim/border11light.glow.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border11light.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border11light.glow.tga - blendfunc GL_ONE GL_ONE - rgbgen wave sin .9 .1 0 10 - } -} - -textures/base_trim/border12b -{ - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border12b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border12bfx.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/border12b_pj -{ - qer_editorimage textures/base_trim/border12b.tga - q3map_surfacelight 150 - q3map_lightimage textures/base_trim/border12bfx.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border12b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border12bfx.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/dark_tin2 -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen vertex - } - { - map textures/base_trim/dark_tin2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_trim/dark_tin2_trans -{ - qer_editorimage textures/base_trim/dark_tin2.tga - surfaceparm nonsolid - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen vertex - } - { - map textures/base_trim/dark_tin2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_trim/deeprust_trans -{ - qer_editorimage textures/base_trim/deeprust.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_trim/deeprust.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_trim/electricwall -{ - qer_editorimage textures/organics/wire02a_f.tga - q3map_surfacelight 400 - - { - map $lightmap - rgbGen identity - } - { - map textures/organics/wire02a_f.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/organics/wire02a_f.tga - blendFunc GL_ONE GL_ONE - } - { - map textures/sfx/electric2.blend.tga - rgbGen wave sin 0.6 1 0 2 - tcMod scroll 0.53 0.43 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/panel_glo -{ - - { - map textures/sfx/firegorre2.tga - - tcMod turb 0 .6 0 0.06 - tcmod scale .53 .61 - tcmod scroll 0 4 - blendFunc GL_ONE GL_ZERO - rgbGen wave sin 1 1 0 .1 - } - { - map textures/base_trim/panel_glo.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/panel_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/panel_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/panelbrn010w -{ - q3map_lightimage textures/base_trim/panelbrn010wfx.tga - - { - map textures/base_trim/panelbrn010w.tga - } - - { - map textures/sfx/hologirl2.tga - tcmod scale .4 .4 - tcmod scroll 6 2 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/base_trim/panelbrn010w.tga - blendfunc blend - - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_trim/pewter_nonsolid -{ - qer_editorimage textures/base_trim/dirty_pewter.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_trim/dirty_pewter.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_trim/pewter_shiney -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/pewter_shiney.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/pewter_spec -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_trim/pewter_spec.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -textures/base_trim/proto_comp -{ - { - map textures/base_trim/proto_comp2.tga - tcmod scroll 0 -.2 - rgbGen wave sin .5 .5 0 3 - rgbGen identity - } - { - clampmap textures/sfx/console03.tga - tcmod rotate -33 - tcMod stretch sin .8 0 0 0 - blendfunc add - rgbGen wave sin .6 0 0 0 - } - { - clampmap textures/sfx/console02.tga - tcmod rotate -333 - tcMod stretch sin .8 0 0 0 - blendfunc add - rgbGen wave sin .3 0 0 0 - } - { - map textures/effects/tinfx2c.tga - tcGen environment - blendfunc add - rgbGen identity - } - { - map textures/base_trim/proto_comp.tga - blendfunc blend - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/base_trim/proto_fence -{ - surfaceparm trans - cull none - nopicmip - - { - map textures/base_trim/proto_fence.tga - tcMod scale 3 3 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_trim/spiderbit -{ - q3map_lightimage textures/base_trim/spiderbit_fx.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/spiderbit.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_trim/spiderbit_fx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .1 .5 0 7 - } - -} - -textures/base_trim/spiderbite -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .3 0 .2 - tcmod scroll 6 .7 - tcmod scale .4 1 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_trim/spiderbite.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcMod stretch sin .8 0.4 0 .2 - tcmod scroll .3 0 - rgbGen identity - } - { - map textures/base_trim/spiderbite.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcMod stretch sin .8 0.2 0 .1 - tcmod scroll -.5 0 - rgbGen identity - } - { - map textures/base_trim/spiderbite.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/spidertrim3 -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/spidertrim3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/spidertrim4 -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/base_trim/spidertrim4.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_trim/techborder -{ - q3map_surfacelight 300 - q3map_lightimage textures/base_trim/techborder_fx.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/techborder.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/techborder_fx.tga - //tcmod scale .1 1 - tcmod scroll .1 0 - - blendfunc GL_ONE GL_ONE - } - { - map textures/base_trim/techborder_fx.tga - tcmod scale .1 1 - tcmod scroll .1 0 - - blendfunc GL_ONE GL_ONE - } -} - -textures/base_trim/tin -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_trim/tin.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_trim/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_trim/tin.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_trim/wires01 -{ - cull disable - surfaceparm alphashadow - deformVertexes autoSprite2 - surfaceparm trans - { - map textures/base_trim/wires01.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_trim/wires01_ass -{ - cull disable - surfaceparm alphashadow - deformVertexes autoSprite2 - { - map textures/base_trim/wires01_ass.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_trim/wires02 -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - { - map textures/base_trim/wires02.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_trim/xborder12b -{ - qer_editorimage textures/base_trim/border12b.tga - q3map_surfacelight 100 - q3map_lightimage textures/base_trim/border12bfx.tga - { - map $lightmap - rgbGen identity - } - { - map textures/base_trim/border12b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/base_trim/border12bfx.tga - blendfunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/base_wall.shader b/install/installs/Q3Pack/install/baseq3/scripts/base_wall.shader deleted file mode 100644 index 82730f68..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/base_wall.shader +++ /dev/null @@ -1,1406 +0,0 @@ - -textures/base_wall/atech1_alpha -{ - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atech1_alpha.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/atechengine_ax -{ - q3map_lightimage textures/base_wall/atechengine_ax2.tga - q3map_surfacelight 300 - { - map textures/sfx/proto_zzztpink.tga - tcmod rotate 60 - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atechengine_ax.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/basewall01_ow -{ - q3map_lightimage textures/base_wall/basewall01_owfx.tga - - { - map $lightmap - rgbGen identity - } - { - map textures/base_wall/basewall01_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_wall/basewall01_owfx.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 0 .5 - } - -} - -textures/base_wall/basewall01bit -{ - q3map_lightimage textures/base_wall/basewall01bitfx.tga - q3map_surfacelight 300 - { - map textures/base_wall/basewall01bit.tga - rgbGen identity - } - - { - map textures/base_wall/basewall01bitfx.tga - blendfunc GL_ONE GL_ONE - tcmod scroll 3.3 1 - rgbGen wave sin .5 0.5 0 5 - } - { - map textures/effects/envmap2.tga - tcGen environment - tcmod scale 4 4 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/base_wall/basewall01bit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - -} - -textures/base_wall/bluemetal1b_chrome -{ - qer_editorimage textures/base_wall/bluemetal1b_shiny.tga - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetal1b_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/bluemetal2_noisy -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm metalsteps - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny_trans -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetalsupport2 -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/bluemetalsupport2c -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1vent -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1vent.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2clight -{ - surfaceparm nomarks - q3map_surfacelight 500 - - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2clight.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2clight.glow.tga - blendFunc add - rgbgen wave sawtooth .6 .1 0 4 - } -} - -textures/base_wall/bluemetalsupport2d_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2d_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e2 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e2.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2eye -{ - - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/bluemetalsupport2eyel.tga - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2eye.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - { - map textures/base_wall/bluemetalsupport2eyel.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } -} - -textures/base_wall/bluemetalsupport2f -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2f.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2fline -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2fline_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2fline.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2fline_glow.tga - blendFunc add - rgbGen wave sin .5 .5 0 1 - } - - -} - -textures/base_wall/bluemetalsupport2ftv -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2ftv_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2ftv.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2ftv_glow.tga - blendFunc add - rgbGen wave sawtooth .4 .05 0 10 - } - - -} - -textures/base_wall/blumtlspt2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/blumtlspt2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/blumtlspt2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/c_met5_2_trans -{ - qer_editorimage textures/base_wall/c_met5_2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_wall/c_met5_2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_wall/chrome_metal -{ - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - - } - - { - map textures/base_wall/chrome_metal.tga - blendFunc GL_ONE GL_ONE - detail - tcMod scale 0.0693 0.0712 - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - - } - - - -} - -textures/base_wall/comp3 -{ - q3map_lightimage textures/base_wall/comp3env.tga - qer_editorimage textures/base_wall/comp3_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3text.tga - rgbGen identity - tcmod scroll 3 1 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b_dark -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3c -{ - qer_editorimage textures/base_wall/comp3c_qer.tga - - { - map textures/base_wall/comp3env.tga - rgbGen identity - tcGen environment - } - - { - map $lightmap - tcGen environment - blendFunc GL_ONE GL_ONE - } - - { - map textures/base_wall/comp3c.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/concrete_ow -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/concrete_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/dooreye -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye2 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye3 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/girders1i_yellofin -{ - qer_editorimage textures/base_wall/girders1i_yellodark_fin.tga - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm playerclip - surfaceparm nonsolid - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_wall/girders1i_yellodark_fin.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_wall/glass01 -{ - qer_editorimage textures/base_wall/shiny3.tga - surfaceparm trans - cull none - qer_trans 0.5 - - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/glass_frame -{ - cull none - surfaceparm alphashadow - - { - map textures/effects/tinfx2.tga - blendFunc GL_ONE GL_ONE - tcgen environment - rgbGen identity - } - { - map textures/base_wall/glass_frame.tga - alphaFunc GE128 - depthWrite - //rgbGen vertex - //blendfunc blend - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/grill -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/grill.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/main_q3abanner -{ - q3map_lightimage textures/base_wall/main_q3abanner.tga - q3map_surfacelight 100 - - - { - map textures/base_wall/main_q3abanner.tga - rgbGen wave square 0 1 0 .5 - } - - { - map textures/base_wall/comp3text.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3textb.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map $lightmap - tcgen environment - tcmod scale .5 .5 - rgbGen wave sin .25 0 0 0 - blendfunc add - } -} - -textures/base_wall/medal_impressive -{ - qer_editorimage textures/base_wall/medal_impressive.tga - q3map_surfacelight 100 - - - { - animMap .25 textures/base_wall/medal_impressive.tga textures/base_wall/medal_gauntlet.tga textures/base_wall/medal_excellent.tga textures/base_wall/medal_accuracy.tga textures/base_wall/medal_victory.tga textures/base_wall/medal_frags.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - tcmod scroll 5 .25 - rgbGen wave inversesawtooth 0 1 0 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_wall/metalfloor_wall_14_specular -{ - qer_editorimage textures/base_wall/metalfloor_wall_14_specular.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/metalfloor_wall_14_specular.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/metalfloor_wall_15ow -{ - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ONE - rgbGen identity - - } - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - //blendfunc dst_color gl_zero - } - -} - -textures/base_wall/metaltechgeomtrn -{ - - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/patch10shiny -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/patch10shiny_trans -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/protobanner -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - deformVertexes wave 30 sin 0 3 0 .2 - deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_ow -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - deformVertexes wave 100 sin 0 1 0 .1 - deformVertexes wave 100 sin 0 1 0 .2 - - { - map textures/base_wall/protobanner_ow.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_still -{ - qer_editorimage textures/base_wall/protobanner.tga - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - //deformVertexes wave 30 sin 0 3 0 .2 - //deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/q3tourneyscreen -{ - qer_editorimage textures/base_wall/q3tourney1.tga - q3map_surfacelight 100 - - - - { - animMap .25 textures/base_wall/q3tourney1.tga textures/base_wall/q3tourney2.tga textures/base_wall/q3tourney3.tga textures/base_wall/q3tourney4.tga textures/base_wall/q3tourney5.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - rgbGen wave inversesawtooth 0 1 0 .25 - tcmod scroll 5 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - -} - -textures/base_wall/shinybluemetal1 -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/shinybluemetal1.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/shinygrate1_4 -{ - - { - map $lightmap - tcgen environment - tcmod scale .25 .25 - rgbgen identity - } - - - { - map textures/base_wall/shinygrate1_4.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - - -} - -textures/base_wall/steed1gf -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/steed1gf.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/symbol_bluelt1 -{ - q3map_lightimage textures/base_wall/symbol_bluelt1_mask.tga - q3map_surfacelight 100 -// light 1 - - { - map $lightmap - rgbGen identity - } - - - { - map textures/base_wall/symbol_bluelt1.tga - blendfunc filter - rgbgen identity - } - - { - map textures/base_wall/symbol_bluelt1_mask.tga - blendfunc add - rgbgen wave sawtooth .2 .05 0 7 - } -} - -textures/base_wall/train1 -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .1 - rgbGen identity - } - - - { - map textures/base_wall/train1.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/common.shader b/install/installs/Q3Pack/install/baseq3/scripts/common.shader deleted file mode 100644 index afd30966..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/common.shader +++ /dev/null @@ -1,462 +0,0 @@ -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip -} - -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm clusterportal -} - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm nodamage -} - -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm donotenter -} - -// never used -// -//textures/common/energypad -//{ -// qer_editorimage textures/sfx/bluegoal.tga -// surfaceparm nolightmap -// cull twosided -// { -// map textures//bluegoal.tga -// blendFunc GL_ONE GL_SRC_ALPHA -// tcGen environment -// tcMod turb 0 0.25 0 0.05 -// } -//} - -textures/common/full_clip // silly shader, use weapclip instead -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/hint // should NOT use surfaceparm hint... strange but true -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm hint // ydnar: yes it should. -} - -// Obsidian: Local hint works like normal hint but doesn't create portals beyond local structural brushes. Experimental, use with caution. -textures/common/hintlocal -{ - qer_nocarve - qer_trans 0.30 - qer_editorImage textures/common/hintlocal.tga - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact -} - -textures/common/invisible // solid, transparent polygons, casts shadows -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/mirror1.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip - surfaceparm trans -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nolightmap - surfaceparm nodraw -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm nodrop -} - -textures/common/noimpact -{ - qer_editorimage textures/common/nolightmap.tga - surfaceparm noimpact -} - -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm origin -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - tcMod turb 0 0.25 0 0.05 - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks -} - -textures/common/metalclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - - - - -//****************************************************************************** -// Obsidian 2007-08-24 (update 2010-12-03) -// Q3Map2 "common" shaders -//****************************************************************************** - - -// ydnar: antiportal works like hint, but supresses portals -// add this to your common.shader file -textures/common/antiportal -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm antiportal -} - - -// ydnar: skip works like quake 2 hint: it doesn't generate bsp splits -// use on sides of hint brushes where you don't want bsp splits or portals -// add this to your common.shader file -textures/common/skip -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm skip -} - -// Obsidian: same as skip but name changed to allow Radiant to filter both hint and skip -textures/common/hintskip -{ - qer_nocarve - qer_trans 0.30 - qer_editorImage textures/common/skip.tga - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm skip -} - - -// Obsidian: 2 usages for watercaulk depending on water brush complexity -// SIMPLE WATER BRUSHES - use watercaulk on faces between water brushes -// COMPLEX WATER BRUSHES - overlap complex water brushes with watercaulk. -// Water shader should be nodraw, nonsolid, trans, *sans-water* -textures/common/watercaulk -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm water -} - -textures/common/slimecaulk -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm slime -} - -textures/common/lavacaulk -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm lava -} - -// alpha fade shaders -// (c) 2004 randy reddig -// http://www.shaderlab.com -// distribution, in part or in whole, in any medium, permitted - -textures/common/alpha_100 -{ - qer_trans 0.5 - q3map_alphaMod volume - q3map_alphaMod scale 1.0 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans -} - -textures/common/alpha_75 -{ - qer_trans 0.5 - q3map_alphaMod volume - q3map_alphaMod scale 0.75 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans -} - -textures/common/alpha_50 -{ - qer_trans 0.5 - q3map_alphaMod volume - q3map_alphaMod scale 0.5 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans -} - -textures/common/alpha_25 -{ - qer_trans 0.5 - q3map_alphaMod volume - q3map_alphaMod scale 0.25 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans -} - -textures/common/alpha_0 -{ - qer_trans 0.5 - q3map_alphaMod volume - q3map_alphaMod scale 0 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/ctf.shader b/install/installs/Q3Pack/install/baseq3/scripts/ctf.shader deleted file mode 100644 index 6a280383..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/ctf.shader +++ /dev/null @@ -1,577 +0,0 @@ - -textures/ctf/blue_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - sort additive - - { - - clampmap textures/ctf/blue_telep.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/blue_telep2.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/ctf_arch_b_shiny -{ - qer_editorimage textures/ctf/ctf_arch_b.tga - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_arch_r_shiny -{ - qer_editorimage textures/ctf/ctf_arch_r.tga - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_blueflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .5 .1 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_blueflag.tga - rgbGen identity - } - { - map textures/effects/redflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_blueflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_redflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .3 .2 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_redflag.tga - rgbGen identity - } - { - map textures/effects/blueflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_redflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_tower_bluefin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_bluefin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_bluefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/ctf_tower_redfin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_redfin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_redfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/killblockctf_b -{ - qer_editorimage textures/gothic_block/killblockgeomtrn.tga - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/killblockgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/killblockctf_r -{ - qer_editorimage textures/gothic_block/blocks15cgeomtrn.tga - - { - map textures/sfx/fire_ctfred.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks15cgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/metalbase09_bluekillblock_shiny -{ -qer_editorimage textures/ctf/metalbase09_bluekillblock.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/metalbase09_bluekillblock.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_cfin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_cfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_csansfacefin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_csansfacefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_d3fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_d3fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - - { - - clampmap textures/ctf/red_telep.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/red_telep2.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/tallblue_1L_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1L_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1L_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_1R_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1R_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1R_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2b_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2b_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4bsmall_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4bsmall_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4c_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_4c_fin.tga - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4c_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_5esmallb_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_5esmallb_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/test2_r_trans -{ - qer_editorimage textures/ctf/test2_r.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/ctf/test2_r.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/ctf/test2_trans -{ - qer_editorimage textures/ctf/test2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/ctf/test2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/default_project.proj b/install/installs/Q3Pack/install/baseq3/scripts/default_project.proj deleted file mode 100644 index 42ccdb49..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/default_project.proj +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/default_shaderlist.txt b/install/installs/Q3Pack/install/baseq3/scripts/default_shaderlist.txt deleted file mode 100644 index 04ad5219..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/default_shaderlist.txt +++ /dev/null @@ -1,47 +0,0 @@ -//**********************************************************************// -// 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 -base_button -base_door -base_floor -base_light -base_object -base_support -base_trim -base_wall -common -ctf -//eerie -//gfx -//hell -gothic_block -gothic_button -gothic_door -gothic_floor -gothic_light -gothic_trim -gothic_wall -liquids -//menu -//models -organics -sfx -skin -skies \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/entities.def b/install/installs/Q3Pack/install/baseq3/scripts/entities.def deleted file mode 100644 index f2f4174d..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/entities.def +++ /dev/null @@ -1,2190 +0,0 @@ -// Quake3 Arena entity definition file for Q3Radiant -// Based on draft by Suicide 20 7.30.99 and inolen 9-3-99 -// Upgraded by Eutectic: eutectic@ritualistic.com -// (visible models added by raYGunn - paths provided by Suicide 20) -// (terrain information added to func_group entity by Paul Jaquays) -// Q3Map2 entities/keys added by ydnar -// Additional Q3Map2 and Q3A PR 1.32 entities/keys added by Obsidian -// Entities.def for GtkRadiant 1.4 and ZeroRadiant 1.6 -// Entities.ent for GtkRadiant 1.5 -// Version: 1.7.3 -// Updated: 2011-03-02 - - -//============================================================================= - -// Q3MAP2 ENTITIES - -//============================================================================= - -/*QUAKED _decal (0 1.0 0) ? --------- KEYS -------- -target : The name of the entity targeted for projection. --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a decal to be projected. Should contain 1 or more patch meshes (curves) and target an info_null entity. Patch mesh should be using a shader with "polygonoffset" (or other blending methods) or z-fighting will occur. The distance between the center of the _decal entity and the target is the axis and distance of projection.*/ - -//============================================================================= - -/*QUAKED _skybox (0.77 0.88 1.0) (-4 -4 -4) (4 4 4) --------- 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. --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies the origin of a skybox (a wholly contained, separate area of the map), similar to some games portal skies. When compiled with Q3Map2, the skybox 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.*/ - -//============================================================================= - -AMMO_* ENTITIES - -//============================================================================= - -/*QUAKED ammo_bfg (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -BFG ammo. Gives the player 15 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 15). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/bfgam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_bullets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun ammo. Gives the player 50 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 50). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/machinegunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_cells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma Gun ammo. Gives the player 30 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 30). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/plasmaam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_grenades (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 5). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/grenadeam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_lightning (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun ammo. Gives the player 60 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 60). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/lightningam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_rockets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 5). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/rocketam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_shells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 10). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/shotgunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_slugs (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when picked up (default 10). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/railgunam.md3"*/ - -//============================================================================= - -FUNC_* ENTITIES - -//============================================================================= - -/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS -Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked. --------- KEYS -------- -speed : Amount of time in seconds for one complete oscillation cycle (default 4). -height : Sets the amount of travel of the oscillation movement (default 32). -phase : Sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : Path/name of .wav file to play. Use looping sounds only (e.g. sound/world/drone6.wav - see notes). -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/jets/jets01.md3). -origin : Alternate method of setting XYZ origin of sound and .md3 model included with entity (see notes). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : Entity will bob along the X axis. -Y_AXIS : Entity will bob along the Y axis. --------- NOTES -------- -In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_button (0 .5 .8) ? -When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again. --------- KEYS -------- -angle : Determines the direction in which the button will move (up = -1, down = -2). -target : All entities with a matching targetname will be triggered. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -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 : If set to any non-zero value, the button must take damage (any amount) to activate (default 0). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/pipe/pipe02.md3). -origin : Alternate method of setting XYZ origin of .md3 model included with entity (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname"). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER -Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it. --------- KEYS -------- -angle : Determines the opening direction of door (up = -1, down = -2). -speed : Determines how fast the door moves (default is around 200). -wait : Number of seconds before door returns (default 2, -1 = return immediately). -lip : Lip remaining at end of move (default 8). -targetname : If set, a func_button or trigger is required to activate the door. -health : If set to any non-zero value, the button must take damage (any amount) to activate (default 0). -dmg : Damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -team : Assign the same team name to multiple doors that should operate together (see notes). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/pipe/pipe02.md3). -origin : Alternate method of setting XYZ origin of .md3 model included with entity (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OPEN : The door will spawn in the open state and operate in reverse. -CRUSHER : Door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way. --------- NOTES -------- -Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_group (0 .5 .8) ? -This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this. -//-------- OLD TERRAIN KEYS (Note: Obsolete with Q3Map2) -------- -//alphamap : This is the path/name for the art file used to guide the mapping of textures on the terrain surface. -//layers : This Integer value denotes number of unique root shaders that will be used on the terrain. -//shader : This is the path to the metashader used to assign textures to the terrain entity. -//terrain : This is an on/off flag. When set to 1, the entity becomes a terrain entity. Note: Unnecessary when compiling with Q3Map2. See Q3Map2 keys. --------- Q3MAP2 KEYS -------- -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.*/ - -//============================================================================= - -/*QUAKED func_pendulum (0 .5 .8) ? -Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum instantly kills a player. --------- KEYS -------- -angle : Angle offset of axis of rotation from default X axis (default 0). -speed : Angle of swing arc in either direction from initial position (default 30). -phase : Sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : Path/name of .wav file to play. Use looping sounds only (e.g. sound/world/drone6.wav). -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/jets/jets01.md3). -origin : Alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default 0 0 0 - see notes). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: Pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_plat (0 .5 .8) ? -Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. There are no proper sounds for this entity, only beep noises. It will spawn in the game and work properly but it sounds silly (see notes). --------- KEYS -------- -speed : Determines how fast the plat moves (default 150). -lip : Lip remaining at end of move (default 16). Has no effect if "height" is set. -height : If set, this will determine the total amount of vertical travel of the plat. -dmg : Damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked. -targetname : If set, the trigger that points to this will raise the plat each time it fires. The plat raises and comes back down a second later if no player is on it. -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/pipe/pipe02.md3). -origin : Alternate method of setting XYZ origin of .md3 model included with entity (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip.*/ - -//============================================================================= - -/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS -Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable. --------- KEYS -------- -speed : Determines how fast entity rotates (default 100). -noise : Path/name of .wav file to play. Use looping sounds only (e.g. sound/world/drone6.wav). -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/bitch/fembotbig.md3). -origin : Alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default 0 0 0 - see notes). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : Entity will rotate along the X axis. -Y_AXIS : Entity will rotate along the Y axis. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_static (0 .5 .8) ? -Static non-solid bspmodel. Can be used for conditional walls and models. --------- KEYS -------- -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/bitch/fembotbig.md3). -origin : Alternate method of setting XYZ origin of .md3 model included with entity (see notes). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -targetname : NOT SUPPORTED BY RENDERER - if set, a func_button or trigger can make entity disappear from the game (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: It will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static. - -Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON -Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off. --------- KEYS -------- -wait : Delay in seconds between each triggering of its targets (default 1). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -target : This points to the entities to trigger. -targetname : A func_button or trigger that points to this will toggle the timer on/off when activated. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -START_ON : Timer will start on in the game and continuously fire its targets. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED func_train (0 .5 .8) ? -Trains are moving solids that follow a string of path_corner entities. Trains in Q3A are very basic, they also require an origin brush (see notes). --------- KEYS -------- -speed : Speed of displacement of train (default 100 or overridden by speed value of path). -target : This points to the first path_corner of the path which is also the spawn location of the train's origin. -model2 : Path/name of model to include (.md3 files only, e.g. models/mapobjects/pipe/pipe02.md3). -origin : Alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (see notes). -light : ConstantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : ConstantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- Q3MAP2 KEYS -------- -targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -1. Trains always start on in the game. -2. Trains do not damage the played when blocked. -3. Trains cannot emit sound. -4. Trains are not triggerable or toggle-able. -5. Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it. - -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -HOLDABLE_* ENTITIES - -//============================================================================= - -/*QUAKED holdable_medkit (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Medkit that can be picked up and used later. Brings the player's health back to 100 when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/medkit.md3"*/ - -//============================================================================= - -/*QUAKED holdable_teleporter (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Teleporter item that can be picked up and used later. Teleports the player to a random player spawn point when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/teleporter.md3"*/ - -//============================================================================= - -INFO_* ENTITIES - -//============================================================================= - -/*QUAKED info_camp (0 .5 0) (-8 -8 -8) (8 8 8) -This atttracts bots which have a camping preference in their AI characteristics. It should be placed at least 32 units away from any brush surface. --------- KEYS -------- -range : Number of units that the bot can move away from camp entity while camping on it. -weight : Number that is compared against the weight assigned to all the other camp spots in the map to determine if a bot chooses to camp there. The value is normalized against all other weight values. --------- NOTES -------- -Examples of bots which have a high camping preference are: Razor, Tank Jr., Grunt, Patriot and Doom. Examples of bots which have a low camping preference are: Klesk, Mynx, Sarge, Keel and Xaero.*/ - -//============================================================================= - -/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : Must match the target key of entity that uses this for pointing. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : Must match the target key of entity that uses this for pointing. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -/*QUAKED info_player_deathmatch (1 0 1) (-16 -16 -24) (16 16 32) INITIAL -Normal player spawning location for Q3A levels. --------- KEYS -------- -angle : Direction in which player will look when spawning in the game. Does not apply to bots. -target : This can point at a target_give entity for respawn freebies. -nobots : When set to 1, bots will never use this spawn point to respawn in the game. -nohumans : When set to 1, human players will never use this spawn point to respawn in the game. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -INITIAL : Makes the spawnpoint the initial place for the player to spawn at the beginning of the game.*/ - -//============================================================================= - -/*QUAKED info_player_intermission (1 0 1) (-16 -16 -16) (16 16 16) -Camera for intermission screen between matches. This also automatically generates the podium for bot arena matches (see notes). Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level. --------- KEYS -------- -angles : Alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0). -target : Point this to an info_notnull or target_position entity to set the camera's pointing angles. --------- NOTES -------- -In genuine bot arena matches, the podium for the 1st, 2nd and 3rd place players at the end of the match is generated by this entity. The podium's origin will automatically be located 128 units in the direction of the camera's view and 84 units down from the y height of the view line at that point. It will also always be generated on a level plane regardless of the pointing angle of the camera so if that angle is too steep, part of the podium model might not be visible. Make sure you leave at least 106 units of free space in front of where the camera points to otherwise the podium model won't be visible at all.*/ - -//============================================================================= - -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Player spawn location. It works in Quake III Arena, but it is not used in the Id maps. Use info_player_deathmatch instead. --------- KEYS -------- -angle : Direction in which player will look when spawning in the game. -target : This can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -//QUAKED info_spectator_start (1 0 0) (-16 -16 -24) (16 16 32) -//Spectator spawn location. Doesn't appear to work in game. Commented out. -//-------- KEYS -------- -//notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). - -//============================================================================= - -ITEM_* ENTITIES - -//============================================================================= - -/*QUAKED item_armor_body (.6 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Red Armor - 100 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_red.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_combat (1 .75 .3) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow Armor - 50 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_yel.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_shard (0 .7 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green Armor Shard - 5 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/shard.md3"*/ - -//============================================================================= - -/*QUAKED item_botroam (1 0.5 0) (-8 -8 -8) (8 8 8) SUSPENDED -Game Function: An invisible entity which attracts a bot to it. Use to move bots to parts of a map that might otherwise not be used (NEW ENTITY). --------- KEYS -------- -weight : Non-zero floating point value, most often in the range 0 to 400. (Higher values are allowed but keep in mind that the bot should also be attracted to normal items. Don't make the weight value too high. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The item_botroam entity can be used when a bot does not roam the whole level or prefers to go to only specific areas. This (invisible) item can be placed in a map just like regular items. Nobody can actually pick up the item it's only used to attract bots to certain places of the map. The value is the weight of the roam_item is relative to the weight assigned other items in the map (each bot has its own weights). The bot character specific item weights are stored with the bot characters AI files ("botname"_i.c for items and "botname"_w.c for weapons) in the botfiles/bots/ sub-folder in the .pk3 file.*/ - -//============================================================================= - -/*QUAKED item_enviro (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Battle Suit power-up - Gives protection against slime, lava and weapon splash damage. Lasts 30 seconds. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Time in seconds power-up will last when picked up (default 30). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/enviro.md3"*/ - -//============================================================================= - -/*QUAKED item_flight (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Flight power-up. Lasts 60 seconds. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Time in seconds power-up will last when picked up (default 60). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/flight.md3"*/ - -//============================================================================= - -/*QUAKED item_haste (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Speed power-up. Makes player run at double speed for 30 seconds. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Time in seconds power-up will last when picked up (default 30). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/haste.md3"*/ - -//============================================================================= - -/*QUAKED item_health (.8 .8 0) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow cross bubble - 25 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of health points given to the player when item is picked up (default 25). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/medium_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_large (1 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Gold cross bubble - 50 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of health points given to the player when item is picked up (default 50). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/large_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_mega (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Blue M bubble - 100 Health. Adds 100 health points to current health up to a maximum of 200. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of health points given to the player when item is picked up (default 100). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/mega_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_small (0 1 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green cross bubble - 5 Health. Can be picked up over 100 health but slowly wears out to 100 afterwards. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of health points given to the player when item is picked up (default 5). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/small_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_invis (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Invisibility power-up. Lasts 30 seconds. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Time in seconds power-up will last when picked up (default 30). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/invis.md3"*/ - -//============================================================================= - -/*QUAKED item_quad (.4 .6 1) (-16 -16 -16) (16 16 16) SUSPENDED -Quad Damage power-up. Lasts 30 seconds. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Time in seconds power-up will last when picked up (default 30). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/quad.md3"*/ - -//============================================================================= - -/*QUAKED item_regen (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Health Regeneration power-up. This will boost your current health by 5 points every second for a period of up to 30 seconds or up to 200 points whichever comes first. Afterwards, any health points over 100 slowly wears out to 100. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Time in seconds power-up will last when picked up (default 30). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/regen.md3"*/ - -//============================================================================= - -LIGHT ENTITY - -//============================================================================= - -/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light : Overrides the default 300 intensity. Negative values may be used for negative lights. -_color : Weighted RGB value of light color (default 1.0 1.0 1.0 = white). -target : Lights pointed at a target will be spotlights. -radius : Overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attenuation, from SOF2/JK2. Scales the "light" value. -_deviance : Penumbra effect - distance measured in world units for point/spot lights, and degrees for suns (~0.5-3). -_samples : Penumbra effect - the number of random jitters distributed over the solid arc (~16). -_filter : Set this key to 1 to toggle on lightmap filtering. -_filterradius : Filters lightmaps within set radius. -_anglescale : Scales light attenuation. Smaller values lessens angle attenuation, larger values for sharper, more faceted lighting (default 1.0). -style : Light style index number associated with worldspawn light style. Values are between 1 and 31. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting).*/ - -//============================================================================= - -/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light : Overrides the default 300 intensity. -_color : Weighted RGB value of light color (default 1.0 1.0 1.0 = white). -target : Lights pointed at a target will be spotlights. -radius : Overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attenuation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -MISC_* ENTITIES - -//============================================================================= - -/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) UNUSED1 CLIPMODEL FORCEMETA -Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported. --------- KEYS -------- -angle : Direction in which model will be oriented. -model : Path/name of model to use (e.g. models/mapobjects/teleporter/teleporter.md3). --------- Q3MAP2 KEYS -------- -angles : Individual control of PITCH, YAW, and ROLL (default 0 0 0). -modelscale : Floating-point value used to scale a model up or down (default 1.0). -modelscale_vec : Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0). -_remap : Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new". To remap additional shaders, use _remap2, _remap3, etc. -target : Used to attach the misc_model to a brush entity, where its "targetname" key is the same value. -_lightmapscale : Floating point value scales the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -CLIPMODEL : Clips the model for player/weapon collisions. For use on large architectural or terrain models, not for small decorative models. -FORCEMETA : Toggles on q3map_forceMeta for lightmapped models.*/ - -//============================================================================= - -/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE NOWOBBLE -Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction. --------- KEYS -------- -angles: This sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle. -target : Point this to a target_position entity to set the camera's pointing direction. -targetname : A misc_portal_surface portal surface indicator must point to this. -roll : Roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -SLOWROTATE : Makes the portal camera rotate slowly along the roll axis. -FASTROTATE : Makes the portal camera rotate faster along the roll axis. -NOWOBBLE : Stops the camera portal from wobbling. Q3A point release 1.32 only. --------- NOTES -------- -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.*/ - -//============================================================================= - -/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8) -Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera that this entity targets. Also used for mirrors (see notes). --------- KEYS -------- -target : Point this to a misc_portal_camera that "sees" the view you want to display on the portal. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.*/ - -//============================================================================= - -/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16) -Teleport destination location point for trigger_teleporter entities. --------- KEYS -------- -angle : Direction in which player will look when teleported. -targetname : Make the trigger_teleporter point to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -PATH_* ENTITIES - -//============================================================================= - -/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) -Path corner entity that func_trains can be made to follow. --------- KEYS -------- -target : Point to next path_corner in the path. -targetname : The train following the path or the previous path_corner in the path points to this. -speed : Speed of func_train while moving to the next path corner. This will override the speed value of the train. -wait : Number of seconds func_train will pause on path corner before moving to next path corner (default 0 - see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -Setting the wait key to -1 will not make the train stop on the path corner, it will simply default to 0.*/ - -//============================================================================= - -SHOOTER_* ENTITIES - -//============================================================================= - -/*QUAKED shooter_grenade (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a grenade each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles : This sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -target : This points to a target_position entity for aiming the grenades. -targetname : Activating trigger points to this. -random : Random aiming variance in degrees from the straight line to the targeted entity (default 0 - see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_plasma (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a plasma ball each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles : This sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -target : This points to a target_position entity for aiming the plasma balls. -targetname : Activating trigger points to this. -random : Random aiming variance in degrees from the straight line to the targeted entity (default 0 - see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_rocket (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a rocket each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles : This sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -target : This points to a target_position entity for aiming the rockets. -targetname : Activating trigger points to this. -random : Random aiming variance in degrees from the straight line to the targeted entity (default 0 - see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -TARGET_* ENTITIES - -//============================================================================= - -/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8) -Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets. --------- KEYS -------- -target : This points to entities to activate when this entity is triggered. -targetname : Activating trigger points to this. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -wait : Delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1). -delay : Same as wait. For consistency, wait is preferred. -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED target_give (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to give ammo, weapons, health or items to the player who activates it. --------- KEYS -------- -target : This points to the item(s) to give when activated. -targetname : Activating trigger or spawn entity points to this. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -There are 2 ways to use this entity. -a) Automatically give items to players when they spawn in the game: Make a spawn location entity like info_player_deathmatch or CTF respawn points target this entity, then make it target the item(s) to give to the player upon respawn. -b) Give items to players during the game: Make a trigger_multiple target this entity, then make it target the item(s) to give to the player when the trigger is touched. - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8) -This will kill the player who activates the trigger that fires this target. --------- KEYS -------- -targetname : The activating trigger points to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -//QUAKED target_laser (0 .5 0) (-8 -8 -8) (8 8 8) START_ON -//Generates a red laser beam. I think this can somehow spawn in the game, I saw it once but it's too inconsistent to be usable. Commented out. -//-------- KEYS -------- -//angles : Alternate "pitch, yaw, roll" angles method of aiming laser (default 0 0 0). -//target : Point this to a target_position entity to set the laser's aiming direction. -//targetname : The activating trigger points to this. -//dmg (damage???) : number of points of damage inflicted to player per server frame (default 5 - integer values only). -//notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -//gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -//-------- SPAWNFLAGS -------- -//START_ON : When set, the laser will start on in the game. - -//============================================================================= - -/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8) -Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used. --------- KEYS -------- -message : Name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : Color of the location text displayed in parentheses during team chat. Set to 0-7 for color. - 0 : White (default) - 1 : Red - 2 : Green - 3 : Yellow - 4 : Blue - 5 : Cyan - 6 : Magenta - 7 : White -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) -Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular. --------- KEYS -------- -targetname : The entity that requires an aiming direction points to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.*/ - -//============================================================================= - -/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) REDTEAM BLUETEAM PRIVATE -This will print a message on the center of the screen when triggered. By default, all the clients will see the message. --------- KEYS -------- -message : Text string to print on screen. -targetname : The activating trigger points to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -REDTEAM : Only the red team players will see the message. -BLUETEAM : Only the blue team players will see the message. -PRIVATE : Only the player that activates the target will see the message.*/ - -//============================================================================= - -/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) BOUNCEPAD -This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger. --------- KEYS -------- -angles : This sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply. -speed : Speed of push (default 1000). Has no effect if entity targets an aiming entity. -target : This points to the aiming entity to which the player will jump. -targetname : The activating trigger points to this. Push originates from the location of the trigger. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -BOUNCEPAD : If set, trigger will play bounce noise instead of beep noise when activated (recommended). --------- NOTES -------- -To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.*/ - -//============================================================================= - -/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM -This can only be activated by other triggers which will cause it in turn to activate its own targets. --------- KEYS -------- -target : This points to entities to activate when this entity is triggered. -targetname : Activating trigger points to this. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -RED_ONLY : Only red team players can activate trigger. -BLUE_ONLY : Only red team players can activate trigger. -RANDOM : One one of the targeted entities will be triggered at random. --------- NOTES -------- -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED target_remove_powerups (0 .7 .7) (-8 -8 -8) (8 8 8) -This takes away any and all item_* type powerups from player except health and armor (holdable_* items are not taken away either). Must be activated by a button or trigger_multiple entity. The player that activates the trigger will lose any powerup(s) currently in his possession. --------- KEYS -------- -targetname : Activating trigger points to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -/*QUAKED target_score (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to automatically give frag points to the player who activates this. A spawn location entity like info_player_* or CTF respawn points can target this entity to give points to the player when he spawns in the game. Or a trigger can also be used to activate this. The activator of the trigger will get the points. --------- KEYS -------- -targetname : Activating entity points to this. -count : Number of frag points to give to player (default 1). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : Path/name of .wav file to play (e.g. sound/world/growl1.wav - see notes). -wait : Delay in seconds between each time the sound is played ("random" key must be set - see notes). -random : Random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see notes). -targetname : The activating button or trigger points to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -LOOPED_ON : Sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : Sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : Sound will play full volume throughout the level. -ACTIVATOR : Sound will play only for the player that activated the target. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8) -Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events. --------- KEYS -------- -target : This must point to a misc_teleporter_dest entity. -targetname : Activating trigger points to this. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -TEAM_* ENTITIES - -//============================================================================= - -/*QUAKED team_CTF_blueflag (0 .2 1) (-16 -16 -16) (16 16 16) -Blue team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/b_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_blueplayer (0 .2 1) (-16 -16 -24) (16 16 32) -Initial Blue team spawning position for CTF games. This is where players spawn when they join the Blue team. --------- KEYS -------- -target : This can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_bluespawn (0 .2 1) (-16 -16 -24) (16 16 32) -Blue team respawning position for CTF games. This is where Blue team players respawn after they get fragged. --------- KEYS -------- -target : This can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redflag (1 .2 0) (-16 -16 -16) (16 16 16) -Red team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/r_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_redplayer (1 .2 0) (-16 -16 -24) (16 16 32) -Initial Red team spawning position for CTF games. This is where players spawn when they join the Red team. --------- KEYS -------- -target : This can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redspawn (0 .2 1) (-16 -16 -24) (16 16 32) -Red team respawning position for CTF games. This is where Red team players respawn after they get fragged. --------- KEYS -------- -target : This can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -TRIGGER_* ENTITIES - -//============================================================================= - -/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8) -Automatic trigger. It will fire the entities it targets as soon as it spawns in the game. --------- KEYS -------- -target : This points to the entity to activate. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF TOGGLE SILENT NO_PROTECTION SLOW -Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt. --------- KEYS -------- -dmg : Number of points of damage inflicted to player per server frame (default 5 - integer values only). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- SPAWNFLAGS -------- -START_OFF : Needs to be triggered (toggle) for damage. -TOGGLE : Allows trigger_hurt to be toggled on/off. -SILENT : Suppresses the sizzling sound while player is being hurt. -NO_PROTECTION : Player will be hurt regardless of protection (see notes). -SLOW : Changes the damage rate to once per second. --------- NOTES -------- -The invulnerability power-up (item_enviro) does not protect the player from damage caused by this entity regardless of whether the NO_PROTECTION spawnflag is set or not. Triggering a trigger_hurt will have no effect if the START_OFF spawnflag is not set. A trigger_hurt always starts on in the game.*/ - -//============================================================================= - -/*QUAKED trigger_multiple (.5 .5 .5) ? -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : This points to the entity to activate. -targetname : Activating trigger points to this. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -wait : Time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off"*/ - -//============================================================================= - -/*QUAKED trigger_push (.5 .5 .5) ? -This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted. --------- KEYS -------- -target : This points to the target_position to which the player will jump. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. --------- NOTES -------- -To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.*/ - -//============================================================================= - -/*QUAKED trigger_teleport (.5 .5 .5) ? -Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events. --------- KEYS -------- -target : This must point to a misc_teleporter_dest entity. -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament.*/ - -//============================================================================= - -WEAPON_* ENTITIES - -//============================================================================= - -/*QUAKED weapon_bfg (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Big Freaking Gun. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 20). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/bfg/bfg.md3"*/ - -//============================================================================= - -/*QUAKED weapon_gauntlet (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Gauntlet. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/gauntlet/gauntlet.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grapplinghook (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grappling Hook. Spawns in the game and works but is unskinned. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grapple/grapple.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grenadelauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 10). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grenadel/grenadel.md3"*/ - -//============================================================================= - -/*QUAKED weapon_lightning (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 100). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\lightning\lightning.md3"*/ - -//============================================================================= - -/*QUAKED weapon_machinegun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 100). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\machinegun\machinegun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_plasmagun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma gun. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 50). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/plasma/plasma.md3"*/ - -//============================================================================= - -/*QUAKED weapon_railgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 10). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/railgun/railgun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_rocketlauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 10). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/rocketl/rocketl.md3"*/ - -//============================================================================= - -/*QUAKED weapon_shotgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun. --------- KEYS -------- -wait : Time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : Random time variance in seconds added or subtracted from "wait" delay (default 0 - see notes). -count : Sets the amount of ammo given to the player when weapon is picked up (default 10). -team : Set this to team items. Teamed items will respawn randomly after team master is picked up (see notes). -target : Picking up the item will trigger the entity this points to. -targetname : A target_give entity can point to this for respawn freebies. -targetShaderName : Points to the name of the original shader to swap out for triggerable shader entities (see notes). -targetShaderNewName : Points to the name of the new shader to swap in for triggerable shader entities (see notes). -notfree : When set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : When set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : When set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : Defines the gametypes that will spawn this item. Q3A point release 1.32 only. Q3A values: ffa tournament single team ctf. Q3TA values: oneflag obelisk harvester teamtournament. -notbot : Used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : Item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). - -When the entity activates its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value. For example, turning a light on: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_on" -And this would turn it back off: -"targetShaderName" "textures/proto2/redlight_off" -"targetShaderNewName" "textures/proto2/redlight_off" --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/shotgun/shotgun.md3"*/ - -//============================================================================= - -WORLDSPAWN ENTITY - -//============================================================================= - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. --------- KEYS -------- -message : Text to print at user logon. Used for name of level. -music : Path/name of looping .wav file used for level's music (e.g. music/sonic5.wav). -_ambient OR ambient : Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color (default 0 0 0). -gravity : Gravity of level (default 800 = normal gravity). -gridsize : Granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps. -_blocksize : Q3Map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density (default 1024 1024 0, 0 values = disable). --------- Q3MAP2 KEYS -------- -_minlight : Minimum light value, levelwide. Uses the _color key to set color. Does not add, unlike ambient. -_minvertexlight : Minimum vertex lighting, levelwide. -_mingridlight : Minimum lightgrid (dynamic entity lighting) levelwide. -_keeplights : Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase. -_noshadersun : Ignore q3map_sun/sun directives in sky shaders and ONLY use entity sun lights. -_farplanedist : Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps. -_foghull : Shader to use for "fog hull". Foghull shader should be a sky shader. Omit the "textures/" prefix. -_lightmapscale : Floating point value scales the resolution of lightmaps on brushes/patches in the world. Can be overridden in func_group (or other entities) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: Omit the "textures/" prefix. Overridable in entities. -_styleNalphaGen : *IMPORTANT* Replace "N" in the key "_styleNalphaGen" with an integer between 1 and 31 as your style index. Values takes standard shader waveform functions (e.g. wave sin 0.5 0.3 0.25 1.5) -_styleNrgbGen : *IMPORTANT* Replace "N" in the key "_styleNrgbGen" with an integer between 1 and 31 as your style index. Values take standard shader waveform functions (e.g. wave sin 0.5 0.3 0.25 1.5) --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value denotes number of unique root shaders that will be used on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.*/ diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gfx.shader b/install/installs/Q3Pack/install/baseq3/scripts/gfx.shader deleted file mode 100644 index e95ff57e..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gfx.shader +++ /dev/null @@ -1,1474 +0,0 @@ -//**********************************************************************// -// gfx.shader updated // -// by Eutectic - 23 Jan 2000 // -// This file is irrelevant for Q3Radiant // -// It was updated for sake of completeness: // -// shaders that belong here were moved from other shader files // -// // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 0 // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 6 // -// powerups/blueflag // -// powerups/redflag // -// sprites/foe // -// sprites/friend // -// sprites/plasma1 // -// sprites/plasma2 // -//**********************************************************************// - -// GFX.SHADER -// -// this file contains shaders that are used by the programmers to -// generate special effects not attached to specific geometry. This -// also has 2D shaders such as fonts, etc. -// - -// the REGION shader is generated by the map editor on temporary -// brushes around a selected area for testing parts of maps - -textures/REGION -{ - surfaceparm nolightmap -} - -// the background for the netgraph -lagometer -{ - nopicmip - { - map gfx/2d/lag.tga - } -} - -// blinked on top of lagometer when connection is interrupted -disconnected -{ - nopicmip - { - map gfx/2d/net.tga - } -} - -white -{ - { - map *white - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -console -{ - nopicmip - nomipmaps - - { - map gfx/misc/console01.tga - blendFunc GL_ONE GL_ZERO - tcMod scroll .02 0 - tcmod scale 2 1 - } - { - map gfx/misc/console02.tga - //map textures/sfx/firegorre3.tga - blendFunc add - tcMod turb 0 .1 0 .1 - tcMod scale 2 1 - tcmod scroll 0.2 .1 - } - -} - -menuback -{ - nopicmip - nomipmaps - //{ - // map textures/sfx/logo512.tga - //} - - //{ - // map textures/sfx/specular.tga - // //blendfunc add - // tcMod turb 0 .8 0 .2 - // tcmod scroll -.1 -.2 - //} - { - map textures/sfx/logo512.tga - // blendFunc blend - rgbgen identity - } - //{ - // map textures/sfx/proto_zzzdrk.tga - // blendFunc add - // tcMod turb 0 .1 0 .9 - // tcmod scale .2 .2 - // tcMod scroll .02 0.7 - // rgbgen identity - //} - -} -menubacknologo -{ - nopicmip - nomipmaps - - { - map gfx/colors/black.tga - //map textures/sfx/proto_zzzdrk.tga - // tcMod turb 0 .1 0 .9 - // tcmod scale .2 .2 - // tcMod scroll .02 0.7 - } - -} - -menubackRagePro // blends turn to shit on rage pro, so skip it -{ - nopicmip - nomipmaps - { - map textures/sfx/logo512.tga - } - -} - - -levelShotDetail -// used to break up the blur on levelshots -{ - nopicmip - { - map textures/sfx/detail.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - rgbgen identity - } -} - -// -// special effects as seen on players -// - -powerups/battleSuit -{ - deformVertexes wave 100 sin 1 0 0 0 - { - map textures/effects/envmapgold2.tga - //map textures/sfx/specular.tga - tcGen environment - tcMod turb 0 0.15 0 0.3 - tcmod rotate 333 - tcmod scroll .3 .3 - blendfunc GL_ONE GL_ONE - } -} - -powerups/battleWeapon -{ - deformVertexes wave 100 sin 0.5 0 0 0 - { - map textures/effects/envmapgold2.tga - //map textures/sfx/specular.tga - tcGen environment - tcMod turb 0 0.15 0 0.3 - tcmod rotate 333 - tcmod scroll .3 .3 - blendfunc GL_ONE GL_ONE - } -} - -powerups/invisibility -{ - { - map textures/effects/invismap.tga - //map textures/sfx/specular.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.15 0 0.25 - tcGen environment - } -} - -powerups/quad -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/quadmap2.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - //tcMod turb 0 0.2 0 .2 - tcmod scroll 1 .1 - } -} - -powerups/quadWeapon -{ - deformVertexes wave 100 sin 0.5 0 0 0 - { - map textures/effects/quadmap2.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - //tcMod turb 0 0.2 0 .2 - tcmod scroll 1 .1 - } -} - -powerups/regen -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/regenmap2.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - //tcMod turb 0 0.2 0 .2 - tcmod scroll 1 .1 - } -} - -powerups/blueflag -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/blueflagmap.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcMod turb 0 0.2 0 1 - } -} - -powerups/redflag -{ - deformVertexes wave 100 sin 3 0 0 0 - { - map textures/effects/redflagmap.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcMod turb 0 0.2 0 1 - } -} - - -//========================= - -// -// holdable item icons -// - -icons/medkit -{ - nopicmip - { - map icons/medkit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/teleporter -{ - nopicmip - { - map icons/teleporter.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// powerup icons -// - -icons/envirosuit -{ - nopicmip - { - map icons/envirosuit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/flight -{ - nopicmip - { - map icons/flight.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/haste -{ - nopicmip - { - map icons/haste.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/invis -{ - nopicmip - { - map icons/invis.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/quad -{ - nopicmip - { - map icons/quad.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/regen -{ - nopicmip - { - map icons/regen.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -// reward medals used in the game floating over client's heads - -medal_excellent -{ - nopicmip - { - clampmap menu/medals/medal_excellent.tga - blendFunc blend - } -} - -medal_gauntlet -{ - nopicmip - { - clampmap menu/medals/medal_gauntlet.tga - blendFunc blend - } -} - -medal_impressive -{ - nopicmip - { - clampmap menu/medals/medal_impressive.tga - blendFunc blend - } -} - -// -// weapon icons -// - -icons/iconw_gauntlet -{ - nopicmip - { - map icons/iconw_gauntlet.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_machinegun -{ - nopicmip - { - map icons/iconw_machinegun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_rocket -{ - nopicmip - { - map icons/iconw_rocket.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_shotgun -{ - nopicmip - { - map icons/iconw_shotgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen identitylighting - } -} - -icons/iconw_grenade -{ - nopicmip - { - map icons/iconw_grenade.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_lightning -{ - nopicmip - { - map icons/iconw_lightning.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_plasma -{ - nopicmip - { - map icons/iconw_plasma.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_railgun -{ - nopicmip - { - map icons/iconw_railgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_bfg -{ - nopicmip - { - map icons/iconw_bfg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconw_grapple -{ - nopicmip - { - map icons/iconw_grapple.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// ammo icons -// - -icons/icona_machinegun -{ - nopicmip - { - map icons/icona_machinegun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_rocket -{ - nopicmip - { - map icons/icona_rocket.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_shotgun -{ - nopicmip - { - map icons/icona_shotgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen identitylighting - } -} - -icons/icona_grenade -{ - nopicmip - { - map icons/icona_grenade.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_lightning -{ - nopicmip - { - map icons/icona_lightning.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_plasma -{ - nopicmip - { - map icons/icona_plasma.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_railgun -{ - nopicmip - { - map icons/icona_railgun.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/icona_bfg -{ - nopicmip - { - map icons/icona_bfg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -// -// armor icons -// - -icons/iconr_shard -{ - nopicmip - { - map icons/iconr_shard.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconr_yellow -{ - nopicmip - { - map icons/iconr_yellow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconr_red -{ - nopicmip - { - map icons/iconr_red.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// health icons -// - -icons/iconh_green -{ - nopicmip - { - map icons/iconh_green.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconh_yellow -{ - nopicmip - { - map icons/iconh_yellow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconh_red -{ - nopicmip - { - map icons/iconh_red.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - //{ - // clampmap icons/iconh_red2.tga - // blendFunc blend - // tcMod stretch sin .04 1 0 1 - //} -} - -icons/iconh_mega -{ - nopicmip - { - map icons/iconh_mega.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// -// CTF icons -// - -icons/iconf_red -{ - nopicmip - { - map icons/iconf_red.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -icons/iconf_blu -{ - nopicmip - { - map icons/iconf_blu.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -//=================================================== - -gfx/2d/menuinfo -{ - nopicmip - { - map gfx/2d/menuinfo.tga - } -} - -gfx/2d/menuinfo2 -{ - nopicmip - { - map gfx/2d/menuinfo2.tga - } -} - -gfx/2d/quit -{ - nopicmip - nomipmaps - { - map gfx/2d/quit.tga - } -} - -gfx/2d/cursor -{ - nopicmip - nomipmaps - { - map gfx/2d/cursor.tga - } -} - -//========================================================================== - -// chat icon floating over client's heads in the game - -sprites/balloon3 -{ - { - map sprites/balloon4.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -// friend and foe icons floating over client's heads in teamplay games - -sprites/foe -{ - nomipmaps - nopicmip - { - map sprites/foe2.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -sprites/friend -{ - nomipmaps - nopicmip - { - map sprites/friend1.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -sprites/plasma1 -{ - cull disable - { - clampmap sprites/plasmaa.tga - blendfunc GL_ONE GL_ONE - tcMod rotate 931 - } -} - -sprites/plasma2 -{ - cull disable - { - map sprites/plasma2.tga - blendfunc GL_ONE GL_ONE - } -} - -// this is an example of a crossfaded animation cycle - -textures/animationTest -{ - qer_editorimage textures/liquids/bloodwater1.tga - { - animMap 0.5 textures/liquids/bloodwater1.tga textures/liquids/pool.tga textures/liquids/slime7.tga - } - { - animMap 0.5 textures/liquids/pool.tga textures/liquids/slime7.tga textures/liquids/bloodwater1.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen wave sawtooth 0 1 0 0.5 - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - } -} - -teleportEffect -{ - cull none - { - map gfx/misc/teleportEffect2.tga - blendFunc GL_ONE GL_ONE - rgbGen entity - tcMod scale 1 4 - tcMod scroll 0 2 - } -} - -// markShadow is the very cheap blurry blob underneat the player - -markShadow -{ - polygonOffset - { - map gfx/damage/shadow.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -// projectionShadow is used for cheap squashed model shadows - -projectionShadow -{ - polygonOffset - deformVertexes projectionShadow - { - map *white - blendFunc GL_ONE GL_ZERO - rgbGen wave square 0 0 0 0 // just solid black - } -} - - -// wake is the mark on water surfaces for paddling players - -wake -{ - { - clampmap sprites/splash.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcmod rotate 250 - tcMod stretch sin .9 0.1 0 0.7 - rgbGen wave sin .7 .3 .25 .5 - } - { - clampmap sprites/splash.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcmod rotate -230 - tcMod stretch sin .9 0.05 0 0.9 - rgbGen wave sin .7 .3 .25 .4 - } -} - - -// viewBloodBlend gives the blended directional cue when you get hit - -viewBloodBlend -{ - sort nearest - { - //map models/weaphits/blood201.tga - map gfx/damage/blood_screen.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identityLighting - alphaGen vertex - } -} - -waterBubble -{ - sort underwater - cull none - entityMergable // allow all the sprites to be merged together - { - map sprites/bubble.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - -smokePuff -{ - cull none - entityMergable // allow all the sprites to be merged together - { - map gfx/misc/smokepuff3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - -hasteSmokePuff // drops behind player's feet when speeded -{ - cull none - entityMergable // allow all the sprites to be merged together - { - map gfx/misc/smokepuff3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //blendfunc GL_ONE GL_ONE - rgbGen vertex - alphaGen vertex - } -} - -smokePuffRagePro -{ - cull none - entityMergable // allow all the sprites to be merged together - { - map gfx/misc/smokepuffragepro.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -shotgunSmokePuff -{ - cull none - { - map gfx/misc/smokepuff2b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen entity - rgbGen entity - } -} - -flareShader -{ - cull none - { - map gfx/misc/flare.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } -} - -sun -{ - cull none - { - map gfx/misc/sun.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } -} - -railDisc -{ - sort nearest - cull none - deformVertexes wave 100 sin 0 .5 0 2.4 - { - clampmap gfx/misc/raildisc_mono2.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcMod rotate -30 - } -} - -railCore -{ - sort nearest - cull none - { - map gfx/misc/railcorethin_mono.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - tcMod scroll -1 0 - } -} - -lightningBolt -{ - cull none - { - map gfx/misc/lightning3.tga - blendFunc GL_ONE GL_ONE -// rgbgen wave sin 1 5.1 0 7.1 - rgbgen wave sin 1 0.5 0 7.1 - tcmod scale 2 1 - tcMod scroll -5 0 - } - { - map gfx/misc/lightning3.tga - blendFunc GL_ONE GL_ONE -// rgbgen wave sin 1 8.3 0 8.1 - rgbgen wave sin 1 0.8 0 8.1 - tcmod scale -1.3 -1 - tcMod scroll -7.2 0 - } -} - -// shader used on the occasional machinegun bullet tracers - -gfx/misc/tracer -{ - cull none - { - map gfx/misc/tracer2.tga - blendFunc GL_ONE GL_ONE - } -} - -// -// wall marks -// use blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR so that -// their "contribution" can be damped down in fog volumes -// with distance - -bloodMark -{ - nopicmip // make sure a border remains - polygonOffset - { - clampmap gfx/damage/blood_stain.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identityLighting - alphaGen vertex - } -} - -bloodTrail -{ - - nopicmip // make sure a border remains - entityMergable // allow all the sprites to be merged together - { - //clampmap gfx/misc/blood.tga - clampmap gfx/damage/blood_spurt.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - -gfx/damage/bullet_mrk -{ - polygonOffset - { - map gfx/damage/bullet_mrk.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -gfx/damage/burn_med_mrk -{ - polygonOffset - { - map gfx/damage/burn_med_mrk.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -gfx/damage/hole_lg_mrk -{ - polygonOffset - { - map gfx/damage/hole_lg_mrk.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - } -} - -gfx/damage/plasma_mrk -{ - polygonOffset - { - map gfx/damage/plasma_mrk.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - alphaGen vertex - } -} - - -//=============================================================== - -// scoreboard header tabs - -scoreboardName -{ - nopicmip - nomipmaps - { - clampmap menu/tab/name.tga - blendfunc blend - } -} - -scoreboardScore -{ - nopicmip - nomipmaps - { - clampmap menu/tab/score.tga - blendfunc blend - } -} - -scoreboardTime -{ - nopicmip - nomipmaps - { - clampmap menu/tab/time.tga - blendfunc blend - } -} - -scoreboardPing -{ - nopicmip - nomipmaps - { - clampmap menu/tab/ping.tga - blendfunc blend - } -} - -//=============================================================== - -gfx/2d/crosshair -{ - nopicmip - { - map gfx/2d/crosshair.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairb -{ - nopicmip - { - map gfx/2d/crosshairb.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairc -{ - nopicmip - { - map gfx/2d/crosshairc.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshaird -{ - nopicmip - { - map gfx/2d/crosshaird.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshaire -{ - nopicmip - { - map gfx/2d/crosshaire.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairf -{ - nopicmip - { - map gfx/2d/crosshairf.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairg -{ - nopicmip - { - map gfx/2d/crosshairg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairh -{ - nopicmip - { - map gfx/2d/crosshairh.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairi -{ - nopicmip - { - map gfx/2d/crosshairi.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - -} - -gfx/2d/crosshairj -{ - nopicmip - { - map gfx/2d/crosshairj.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/crosshairk -{ - nopicmip - { - map gfx/2d/crosshairk.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -gfx/2d/bigchars -{ - nopicmip - nomipmaps - { - map gfx/2d/bigchars.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/select -{ - nopicmip - { - map gfx/2d/select.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - rgbgen vertex - } -} - -gfx/2d/assault1d -{ - nopicmip - { - map gfx/2d/assault1d.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/armor1h -{ - nopicmip - { - map gfx/2d/armor1h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/health -{ - nopicmip - { - map gfx/2d/health.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/blank -{ - nopicmip - { - map gfx/2d/blank.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - -gfx/2d/numbers/zero_32b -{ - nopicmip - { - map gfx/2d/numbers/zero_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/one_32b -{ - nopicmip - { - map gfx/2d/numbers/one_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/two_32b -{ - nopicmip - { - map gfx/2d/numbers/two_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/three_32b -{ - nopicmip - { - map gfx/2d/numbers/three_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/four_32b -{ - nopicmip - { - map gfx/2d/numbers/four_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/five_32b -{ - nopicmip - { - map gfx/2d/numbers/five_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/six_32b -{ - nopicmip - { - map gfx/2d/numbers/six_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/seven_32b -{ - nopicmip - { - map gfx/2d/numbers/seven_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/eight_32b -{ - nopicmip - { - map gfx/2d/numbers/eight_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/nine_32b -{ - nopicmip - { - map gfx/2d/numbers/nine_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - -gfx/2d/numbers/minus_32b -{ - nopicmip - { - map gfx/2d/numbers/minus_32b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbgen vertex - } -} - - -// -// weapon hits -// All of these will be put on entities with a shaderTime offset, so they -// can be expected to start at time 0 for each separate explosion -// -// Many of these are use smoothly morphed animating textures by pairing -// sawtooth and iverse sawtooth rgbGens - -plasmaExplosion -{ - cull disable - { - clampmap models/weaphits/plasmaboom.tga - blendfunc add - tcMod stretch triangle .6 0.1 0 8 - tcmod rotate 999 - rgbGen wave inversesawtooth 0 1 0 1.5 - } -} - -railExplosion -{ - cull disable - { - animmap 5 models/weaphits/ring02_1.tga models/weaphits/ring02_2.tga models/weaphits/ring02_3.tga models/weaphits/ring02_4.tga gfx/colors/black.tga - alphaGen wave inversesawtooth 0 1 0 5 - blendfunc blend - } - { - animmap 5 models/weaphits/ring02_2.tga models/weaphits/ring02_3.tga models/weaphits/ring02_4.tga gfx/colors/black.tga gfx/colors/black.tga - alphaGen wave sawtooth 0 1 0 5 - blendfunc blend - } -} - -lightningExplosion -{ - cull disable - { - animmap 5 models/weaphits/ring02_1.tga models/weaphits/ring02_3.tga models/weaphits/ring02_3.tga gfx/colors/black.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/ring02_2.tga models/weaphits/ring02_3.tga gfx/colors/black.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -bulletExplosion -{ - cull disable - { - animmap 5 models/weaphits/bullet1.tga models/weaphits/bullet2.tga models/weaphits/bullet3.tga gfx/colors/black.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/bullet2.tga models/weaphits/bullet3.tga gfx/colors/black.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -rocketExplosion -{ - cull disable - { - animmap 8 models/weaphits/rlboom/rlboom_1.tga models/weaphits/rlboom/rlboom_2.tga models/weaphits/rlboom/rlboom_3.tga models/weaphits/rlboom/rlboom_4.tga models/weaphits/rlboom/rlboom_5.tga models/weaphits/rlboom/rlboom_6.tga models/weaphits/rlboom/rlboom_7.tga models/weaphits/rlboom/rlboom_8.tga - rgbGen wave inversesawtooth 0 1 0 8 - blendfunc add - } - { - animmap 8 models/weaphits/rlboom/rlboom_2.tga models/weaphits/rlboom/rlboom_3.tga models/weaphits/rlboom/rlboom_4.tga models/weaphits/rlboom/rlboom_5.tga models/weaphits/rlboom/rlboom_6.tga models/weaphits/rlboom/rlboom_7.tga models/weaphits/rlboom/rlboom_8.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 8 - blendfunc add - } -} - -grenadeExplosion -{ - cull disable - { - animmap 5 models/weaphits/glboom/glboom_1.tga models/weaphits/glboom/glboom_2.tga models/weaphits/glboom/glboom_3.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/glboom/glboom_2.tga models/weaphits/glboom/glboom_3.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -bfgExplosion -{ - cull disable - { - animmap 5 models/weaphits/bfgboom/bfgboom_1.tga models/weaphits/bfgboom/bfgboom_2.tga models/weaphits/bfgboom/bfgboom_3.tga - rgbGen wave inversesawtooth 0 1 0 5 - blendfunc add - } - { - animmap 5 models/weaphits/bfgboom/bfgboom_2.tga models/weaphits/bfgboom/bfgboom_3.tga gfx/colors/black.tga - rgbGen wave sawtooth 0 1 0 5 - blendfunc add - } -} - -bloodExplosion // spurt of blood at point of impact -{ - cull disable - { - animmap 5 models/weaphits/blood201.tga models/weaphits/blood202.tga models/weaphits/blood203.tga models/weaphits/blood204.tga models/weaphits/blood205.tga - blendfunc blend - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_block.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_block.shader deleted file mode 100644 index 5a0569bf..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_block.shader +++ /dev/null @@ -1,514 +0,0 @@ - -textures/gothic_block/blocks15cgeomtrn -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks15cgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/blocks17_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_block/blocks17_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks17bloody -{ - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/gothic_block/blocks17bloody.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks17g_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_block/blocks17g_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks18b_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_block/blocks18b_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/blocks18cgeomtrn2 -{ - cull disable - surfaceparm alphashadow - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - alphaFunc GE128 - tcmod rotate 40 - tcMod stretch sin .8 0.2 0 .3 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - alphaFunc GE128 - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - alphaFunc GE128 - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/gothic_block/blocks18cgeomtrnx -{ - - { - map textures/sfx/fireswirl2blue.tga - tcMod stretch sin .8 0.3 0 9.7 - tcmod rotate 333 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrnx.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/blocks18d_trans -{ - qer_editorimage textures/gothic_block/blocks18d.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_block/blocks18d.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/gothic_block/demon_block15fx -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/demon_block15fx.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/evil_e3bwindow -{ - qer_editorimage textures/gothic_block/windowevil2c_killblock.tga - //surfaceparm nomarks - q3map_lightimage textures/gothic_block/evil2ckillblockglow.tga - q3map_surfacelight 200 - // Glowing evil window for e3 demo map - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_killblock.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2ckillblockglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/evil_e3window -{ - qer_editorimage textures/gothic_block/windowevil2c_block18c.tga - //surfaceparm nomarks - q3map_lightimage textures/gothic_block/evil2cglow.tga - q3map_surfacelight 1000 - // Glowing evil window for e3 demo map - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_block18c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2cglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/evil_e3window_dark -{ - qer_editorimage textures/gothic_block/windowevil2c_block18c.tga - //surfaceparm nomarks - q3map_lightimage textures/gothic_block/evil2cglow.tga - q3map_surfacelight 100 - // Glowing evil window for temp in tim_dm7 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_block18c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2cglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/flicker_blocks10 -{ - qer_editorimage textures/gothic_block/blocks10.tga - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/blocks10.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen wave noise 0.75 0.25 0 10 - } -} - -textures/gothic_block/gkc17d -{ - // spine texture with specular highlights - { - rgbGen identity - map $lightmap - } - { - map textures/gothic_block/gkc17d.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_block/gkcspinemove -{ - qer_editorimage textures/gothic_block/gkc17d.tga - tessSize 128 -// deformVertexes wave 100 sin 3 2 0 0.3 - deformVertexes bulge 3 10 1 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/gkc17d.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -textures/gothic_block/killblock_i4b -{ - q3map_surfacelight 300 - q3map_lightimage textures/gothic_block/killblock_i4glow.tga - qer_editorimage textures/gothic_block/killblock_i4.tga - - - { - map textures/gothic_block/killblock_i4.tga - rgbgen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/gothic_block/killblock_i4glow.tga - blendFunc GL_ONE GL_ONE - rgbgen wave sin .9 .1 0 .1 - } - -} - -textures/gothic_block/killblockgeomtrn -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/killblockgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_block/killtrim_trans -{ - qer_editorimage textures/gothic_block/killtrim.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_block/killtrim.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_block/largerblock3blood -{ - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/gothic_block/largerblock3blood.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_block/mkc_evil_e3window -{ - qer_editorimage textures/gothic_block/windowevil2c_block18c.tga - q3map_lightimage textures/gothic_block/evil2cglow.tga - q3map_surfacelight 400 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_block/windowevil2c_block18c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/evil2cglow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_block/wetwall -{ - { - map textures/gothic_block/wetwall.tga - rgbGen identity - } - { - map textures/gothic_block/wetwallfx.tga - tcmod scroll 0 -.1 - tcmod scale 2 .6 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/gothic_block/wetwall.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_button.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_button.shader deleted file mode 100644 index e693b5c7..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_button.shader +++ /dev/null @@ -1,25 +0,0 @@ - -textures/gothic_button/timbutton -{ - q3map_lightimage textures/gothic_button/timbutton2.tga - q3map_surfacelight 10 - //light 1 - - { - map textures/gothic_button/timbutton.tga - } - - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/gothic_button/timbutton2.tga - blendfunc gl_one gl_one - rgbgen wave sin .5 .5 0 1 - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_door.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_door.shader deleted file mode 100644 index fb2cee68..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_door.shader +++ /dev/null @@ -1,77 +0,0 @@ - -textures/gothic_door/door02_bred2_shiny -{ -qer_editorimage textures/gothic_door/door02_bred2.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/gothic_door/door02_bred2.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/gothic_door/door02_eblue2_shiny -{ -qer_editorimage textures/gothic_door/door02_eblue2.tga - - { - map $lightmap - rgbGen identity - } - - - { - map textures/gothic_door/door02_eblue2.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/gothic_door/door02_i_ornate5_fin -{ - qer_editorimage textures/gothic_door/door02_i_ornate5_fin.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_door/door02_i_ornate5_fin.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_door/skullarch_b -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/gothic_door/skullarch_b.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_floor.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_floor.shader deleted file mode 100644 index 8ea54915..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_floor.shader +++ /dev/null @@ -1,212 +0,0 @@ - -textures/gothic_floor/center2trn -{ - - { - map textures/sfx/fireswirl2.tga - tcmod rotate 333 - tcMod stretch sin .8 0.2 0 9.7 - rgbGen identity - } - { - map textures/gothic_floor/center2trn.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_floor/center2trn.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_floor/largerblock3b_ow -{ - - { - map textures/sfx/firegorre.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/largerblock3b_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_floor/metalbridge06brokeb -{ - { - map textures/sfx/kenelectric.tga - tcmod scale 2 2 - tcMod turb 0 .2 0 .3 - tcmod scroll 3 5 - rgbGen identity - } - { - map textures/gothic_floor/metalbridge06brokeb.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - -} - -textures/gothic_floor/pent_metalbridge02 -{ - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/pent_metalbridge02.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/gothic_floor/pent_metalbridge06 -{ - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/pent_metalbridge06.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/gothic_floor/pent_metalbridge06b -{ - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/pent_metalbridge06b.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/gothic_floor/q1metal7_99spot -{ - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/gothic_floor/q1metal7_99spot.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/gothic_floor/xq1metalbig_ow -{ - { - map textures/gothic_floor/xq1metalbig_ow.tga - rgbGen identity - } - { - map textures/sfx/specular.tga - //map textures/liquids/proto_gruel3.tga - tcGen environment - tcmod scale 3 3 - //tcmod rotate 30 - tcMod turb 0 .25 0 .05 - //tcmod scroll .1 .2 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/gothic_floor/xq1metalbig_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/gothic_floor/xstepborder3_shiney -{ - qer_editorimage textures/gothic_floor/xstepborder3_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_floor/xstepborder3_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_light.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_light.shader deleted file mode 100644 index b3babce4..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_light.shader +++ /dev/null @@ -1,1468 +0,0 @@ - -textures/gothic_light/border7_ceil39_6k -{ - qer_editorimage textures/gothic_light/border7_ceil39.tga - q3map_surfacelight 3700 - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/border7_ceil39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/border_ceil39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/border7_ceil39b_10k -{ - qer_editorimage textures/gothic_light/border7_ceil39b.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/border7_ceil39b.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/border7_ceil39b.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/flicker_light15k -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 15000 - surfaceparm nomarks - { - map $lightmap - rgbGen wave noise 0.75 0.25 0 10 - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave noise 0.75 0.25 0 10 - } -} - -textures/gothic_light/goth_lt2_lrg2k -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_1k -{ - qer_editorimage textures/gothic_light/gothic_light2.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_2K -{ - qer_editorimage textures/gothic_light/gothic_light2.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_4K -{ - qer_editorimage textures/gothic_light/gothic_light2.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_1k -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_200 -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 200 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_2k -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light2_lrg_500 -{ - qer_editorimage textures/gothic_light/gothic_light2_lrg.tga - q3map_surfacelight 500 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_lrg.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - //tcMod scale 0.5 0.5 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_10K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_15K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 15000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_1K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/gothic_light/gothic_light3_20K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_2K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/gothic_light/gothic_light3_3k -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/gothic_light/gothic_light3_4K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_5K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_6K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 6000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_7K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 7000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/gothic_light3_8K -{ - qer_editorimage textures/gothic_light/gothic_light3.tga - q3map_lightimage textures/gothic_light/gothic_light2_blend.tga - q3map_surfacelight 8000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/gothic_light3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/gothic_light2_blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_1000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_10000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_120000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 120000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_2000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_20000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_2500 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 3500 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_3000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_30000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_4000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_40000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 40000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_5000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt1_500000 -{ - qer_editorimage textures/gothic_light/ironcrosslt1.tga - q3map_lightimage textures/gothic_light/ironcrosslt1.blend.tga - q3map_surfacelight 500000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_1000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_10000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_2000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_20000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_2500 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 2500 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_3000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_30000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_4000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_40000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 40000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrosslt2_5000 -{ - qer_editorimage textures/gothic_light/ironcrosslt2.tga - q3map_lightimage textures/gothic_light/ironcrosslt2.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrosslt2.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_10000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_2000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_20000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_3000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_30000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_4000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltblue_5000 -{ - qer_editorimage textures/gothic_light/ironcrossltblue.tga - q3map_lightimage textures/gothic_light/ironcrossltblue.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltblue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_10000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 10000 -// light 1 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_2000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_20000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 20000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_3000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_30000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 30000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_4000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/ironcrossltred_5000 -{ - qer_editorimage textures/gothic_light/ironcrossltred.tga - q3map_lightimage textures/gothic_light/ironcrossltred.blend.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_light/ironcrossltred.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/gothic_light/light1_4Kgothic -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - //q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - rgbGen wave sin 0.25 0.25 0 .2 - blendFunc GL_ONE GL_ONE - } -} - -textures/gothic_light/light1_6Kgothic -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - q3map_surfacelight 6000 - surfaceparm nomarks - //q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - rgbGen wave sin 0.25 0.25 0 .2 - blendFunc GL_ONE GL_ONE - } -} - -textures/gothic_light/light1_6Kgothicred -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - rgbGen wave sin 0.25 0.25 0 .2 - blendFunc GL_ONE GL_ONE - } -} - -textures/gothic_light/pentagram_light1_10K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 10000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} - -textures/gothic_light/pentagram_light1_15K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 15000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} - -textures/gothic_light/pentagram_light1_1K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 1000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} - -textures/gothic_light/pentagram_light1_2K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } -} - -textures/gothic_light/pentagram_light1_3K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 3000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } -} - -textures/gothic_light/pentagram_light1_4K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 4000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } -} - -textures/gothic_light/pentagram_light1_5K -{ - qer_editorimage textures/gothic_light/pentagram_light1.tga - q3map_surfacelight 5000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_light/pentagram_light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - - { - map textures/gothic_light/pentagram_light1_blend.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .8 .2 0 1 - } - - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_trim.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_trim.shader deleted file mode 100644 index 100fa7c7..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_trim.shader +++ /dev/null @@ -1,296 +0,0 @@ - -textures/gothic_trim/baseboard09_p_shiny -{ - - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_trim/baseboard09_p_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } -} - -textures/gothic_trim/border6_trans -{ - qer_editorimage textures/gothic_trim/border6.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/border6.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - } -} - -textures/gothic_trim/column2c_trans -{ - qer_editorimage textures/gothic_trim/column2c_test.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/column2c_test.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/gothgrate2 -{ - surfaceparm metalsteps - cull none - - { - map textures/gothic_trim/gothgrate2.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - alphaFunc GT0 - depthWrite - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - depthFunc equal - } -} - -textures/gothic_trim/km_arena1tower4_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/km_arena1tower4_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4b_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4b.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/metalsupport4b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/metalsupport4h_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4h_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4h_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4j_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4j.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/metalsupport4j.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/gothic_trim/metlsupport4i_shiney -{ - qer_editorimage textures/gothic_trim/xmetalsupport4i_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xmetalsupport4i_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/pitted_rust2_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/pitted_rust3_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust3.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust3.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/supportborderside_shiney -{ - qer_editorimage textures/gothic_trim/xsupportborderside_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xsupportborderside_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/tongue_bone -{ - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 0.2 - } -} - -textures/gothic_trim/x_noblight -{ - q3map_lightimage textures/gothic_trim/x_noblightfx.tga - q3map_surfacelight 100 - { - map textures/sfx/firegorre2.tga - tcmod scroll .1 1 - tcmod scale 1 1 - } - { - map textures/gothic_trim/x_noblight.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/gothic_trim/x_noblightfx.tga - blendFunc add - rgbGen wave sin .5 .5 0 .1 - } -} - -textures/gothic_trim/zinc_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_trim/zinc_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/gothic_wall.shader b/install/installs/Q3Pack/install/baseq3/scripts/gothic_wall.shader deleted file mode 100644 index 4203aec6..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/gothic_wall.shader +++ /dev/null @@ -1,120 +0,0 @@ - -textures/gothic_wall/iron01_m -{ - qer_editorimage textures/gothic_wall/iron01_m.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_m.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/iron01_ndark -{ - qer_editorimage textures/gothic_wall/iron01_ndark.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_ndark.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/streetbricks10_shiny -{ - qer_editorimage textures/gothic_wall/streetbricks11.tga - q3map_globaltexture - sort opaque - - { - map $lightmap - tcmod scale 2 2 - rgbgen identity - } - - { - map textures/gothic_wall/streetbricks11.tga - rgbGen identity - blendfunc gl_one gl_src_color - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - -} - -textures/gothic_wall/window_evil6a - -{ - q3map_lightimage textures/gothic_wall/window_evil6a_glow.tga - q3map_surfacelight 50 - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a.tga - blendfunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a_glow.tga - blendfunc GL_ONE GL_ONE - rgbGen identity - } - -} - -textures/gothic_wall/xoct20c_shiney -{ - qer_editorimage textures/gothic_wall/xoct20c_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/xoct20c_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/xpipecolumn_gray_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_wall/xpipecolumn_gray_shiny.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/hell.shader b/install/installs/Q3Pack/install/baseq3/scripts/hell.shader deleted file mode 100644 index 23b64105..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/hell.shader +++ /dev/null @@ -1,437 +0,0 @@ -//**********************************************************************// -// hell.shader updated // -// by Eutectic - 21 Jan 2000 // -// This file is irrelevant for Q3Radiant since none of these // -// shaders work (textures/hell folder does not exist) // -// It was updated for sake of completeness: // -// shaders that belong here were moved from other shader files // -// Phase 2 update: 13 May 2000 // -// sorted shaders in alphabetical order. // -// // -// TOTAL SHADERS: 19 // -// NO. OF BROKEN SHADERS: 19 // -// NO. OF WORKING SHADERS WITH DUPLICATE ENTRIES: N/A // -// NO. OF WORKING SHADERS THAT DIDN'T APPEAR IN EDITOR: N/A // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 0 // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 3 // -// textures/hell/hellsky2goo // -// textures/hell/lavasolid // -// textures/hell/newhell // -//**********************************************************************// - -textures/hell/bluepad -{ - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/bluepad.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/bluepad.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/hell/darkness -{ - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - cull back - fogonly - fogparms 0 0 0 400 256 -} - -//*********************************// -//Moved from sky.shader by Eutectic// -//*********************************// - -textures/hell/hellsky2goo -{ - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 300 - - sky env/hell2 - cloudparms 256 - - { - map env/redcloudsa.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0 - tcMod scale 2 2 - } - - { - map env/redclouds.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scroll 0.05 0.05 - tcMod scale 1 1 - } -} - -textures/hell/hellbutt01 -{ - { - map $lightmap - rgbGen identity - } - { - map textures/hell/hellbutt01.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/hellbutt01.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 0.2 - } -} - -textures/hell/hellredclouds -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 280 - - cloudparms 512 full - lightning - - { - map env/redclouds.tga - tcMod scroll 0.02 0 - tcMod scale 2 2 - } - - - { - map textures/dont_use/lightningsky8_kc.tga - blendfunc GL_ONE GL_ONE - tcMod scale 10 10 - tcMod scroll .2 .2 - } - - - { - map env/redcloudsa.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.02 0.01 - } - - -} - -textures/hell/ironcrosslt1 -{ - q3map_surfacelight 7000 - //light 1 - - { - map $lightmap - rgbGen identity - } - - { - map textures/hell/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -} - -textures/hell/ironcrosslt1_5000 -{ - qer_editorimage textures/hell/ironcrosslt1.tga - q3map_lightimage textures/hell/ironcrosslt1.blend.tga - q3map_surfacelight 5000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/ironcrosslt1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/ironcrosslt1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/hell/killblock_b -{ - q3map_surfacelight 50 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/killblock_b.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/killblock_b.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/hell/killblock_c -{ - q3map_surfacelight 50 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/killblock_c.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/killblock_c.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.1 0 0.2 - } -} - -textures/hell/lava2z -{ - surfaceparm nonsolid - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 150 -} - -//*************************************// -//Moved from liquids.shader by Eutectic// -//*************************************// - -textures/hell/lavasolid -{ - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 450 - - tesssize 64 - deformVertexes wave 100 sin 2 2 0 0.1 - - { - map textures/hell/lava2d.tga - tcGen environment - tcMod turb 0 0.25 0 0.05 - } - - { - map textures/hell/lava2d.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.05 - } -} - -textures/hell/light1blue -{ - q3map_surfacelight 3250 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/light1blue.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.1 0 .2 - } -} - -textures/hell/light1dark -{ - q3map_surfacelight 6000 - //light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/light1dark.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/light1dark.tga - blendFunc GL_ONE GL_ONE -// rgbGen wave sin 0.5 0.1 0 .2 - } -} - -textures/hell/light1red -{ - q3map_surfacelight 5000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/hell/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/hell/light1red.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.1 0 .2 - } -} - -textures/hell/metal2_2 -{ - cull twosided - surfaceparm trans - { - map textures/hell/metal2_2.tga - rgbGen identity - alphaFunc GE128 - //blendFunc GL_ONE GL_ZERO - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/hell/newhell -{ - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_surfacelight 200 - - sky env/hell2 - cloudparms 512 full - lightning - - { - map env/redcloudsa.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0 - tcMod scale 2 2 - } - { - map env/redclouds.tga - blendFunc GL_DST_COLOR GL_ZERO - tcMod scroll 0.05 0.06 - tcMod scale 1 1 - } -} - -textures/hell/skin7_teeth2 -{ - deformVertexes wave 100 sin 2 3 0 0.4 - { - map $lightmapt - rgbGen identity - } - { - map textures/hell/skin7_teeth2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/hell/xfiretest1 -{ - qer_editorimage textures/hell/firetestb.tga - //surfaceparm trans - surfaceparm noimpact - //surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 1000 - tesssize 64 - - - { - map textures/hell/firetestb.tga - blendfunc gl_one gl_zero - tcMod turb .2 .2 .1 1 - tcMod scale .25 .25 - tcMod scroll .5 1.5 - } - - { - map textures/hell/firetest.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .2 .1 .1 1 - tcMod scale .1 .1 - tcMod scroll 0 1.0 - } - - { - map textures/hell/firetest2.tga - blendFunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 .5 .5 - tcMod scroll 1 5.0 - } - -} - -textures/hell/xfiretest2 -{ - qer_editorimage textures/hell/firetestb.tga - //surfaceparm trans - surfaceparm noimpact - //surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 1000 - tesssize 64 - { - map textures/hell/firetest2.tga - blendfunc gl_one gl_zero - tcMod turb .2 .2 .1 1 - tcMod scale .25 .25 - tcMod scroll .5 1.5 - } - - { - map textures/hell/firetest.tga - -// blendFunc GL_DST_COLOR GL_ONE - blendFunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .2 .1 .1 1 - tcMod scale .1 .1 - tcMod scroll 0 1.0 - } - - { - - map textures/hell/firetestb.tga - blendFunc GL_DST_COLOR GL_ONE -// blendFunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .1 .1 .5 .5 - tcMod scroll 1 5.0 - } - -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/liquids.shader b/install/installs/Q3Pack/install/baseq3/scripts/liquids.shader deleted file mode 100644 index cb2768f9..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/liquids.shader +++ /dev/null @@ -1,759 +0,0 @@ - -textures/liquids/protolava -{ - - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/liquids/protolava.tga - blendfunc blend - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/watertest - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - tessSize 32 - deformVertexes normal .15 2 - deformVertexes bulge 128 5 2 - { - map $lightmap - blendfunc filter - } - - { - map textures/liquids/pool3d_4byell2.tga - blendfunc add - tcgen environment - } - - - } - - - - -textures/liquids/flatripplewater_1500 - { - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/pool2.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/xctf_painwater - { - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 450 - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - { - map textures/sfx/bolts.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - tcMod scroll .1 .1 - tcmod rotate 290 - - } - } -textures/liquids/clear_calm1 - { - qer_editorimage textures/liquids/pool3d_3e.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .25 .25 0 .5 - { - map textures/liquids/pool3d_5e.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod scroll .025 .01 - } - - { - map textures/liquids/pool3d_3e.tga - blendFunc GL_dst_color GL_one - tcmod scale -.5 -.5 - tcmod scroll .025 .025 - } - - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - - -} - -textures/liquids/clear_ripple3 - { - qer_editorimage textures/liquids/pool3d_3c.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -} - - -textures/liquids/clear_ripple2 - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -} - - -textures/liquids/clear_ripple1 - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - -} - -textures/liquids/clear_ripple1_q3dm1 - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } -} - -textures/liquids/lavahell -{ - q3map_globaltexture - surfaceparm noimpact - surfaceparm trans - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - - -} - -textures/liquids/lavahell_xdm1 -{ - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm nodlight - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/lavahell_1000 -{ - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahell_2000 - { - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} -textures/liquids/lavahell_750 - { - - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/flatlavahell_1500 - { - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1500 - cull disable - - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - - -textures/liquids/lavahell_2500 - { - - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahelldark - { - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 150 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - - -} - -textures/liquids/lavahellflat_400 -{ - - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 400 - cull disable - - tesssize 128 - cull disable - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/calm_pool - { - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - -} - -textures/liquids/calm_pool_bgtess - { - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 256 - deformVertexes wave 256 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - -} - -textures/liquids/ripplewater2_back -{ - qer_editorimage textures/liquids/ripplewater3.tga - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - { - map textures/liquids/ripplewater3.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod scale .05 .05 - tcGen environment - tcMod scroll .001 .001 - } - -} - -textures/liquids/slime1 - { - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 100 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - -} - -textures/liquids/slime1_2000 - { - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 2000 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - -} - -textures/hell/lavasolid -{ - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 450 - - tesssize 64 - deformVertexes wave 100 sin 2 2 0 0.1 - - { - map textures/hell/lava2d.tga - tcGen environment - tcMod turb 0 0.25 0 0.05 - } - - { - map textures/hell/lava2d.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.05 - } -} - -textures/liquids/lavahell_2500_subd -{ - qer_editorimage textures/liquids/lavahell.tga - q3map_lightsubdivide 32 - q3map_globaltexture - surfaceparm trans - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} diff --git a/install/installs/Q3Pack/install/baseq3/scripts/models.shader b/install/installs/Q3Pack/install/baseq3/scripts/models.shader deleted file mode 100644 index 169df479..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/models.shader +++ /dev/null @@ -1,4824 +0,0 @@ -//**********************************************************************// -// models.shader sorted and updated // -// by Eutectic - 23 Jan 2000 // -// This file is irrelevant for Q3Radiant // -// It was updated for the sake of completeness: // -// shaders that belong here were moved from other shader files // -// // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 2 // -// sprites/plasma1 // -// sprites/plasma2 // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 1 // -// models/mapobjects/portal_2/portal_3 // -//**********************************************************************// - -// -// this file contains shaders attached models -// - -//**************************************************************// -// // -// MODELS/AMMO // -// // -//**************************************************************// - -models/ammo/grenade -{ - { - map models/ammo/grenade.tga - } - { - AnimMap 7 models/ammo/grenade_r.tga models/ammo/grenade_g.tga - blendfunc GL_ONE GL_ONE - } -} - -models/ammo/rocket/rockflar -{ - cull disable - { - map models/ammo/rocket/rockflar.tga - blendfunc GL_ONE GL_ONE - } -} - -models/ammo/rocket/rockfls1 -{ - cull disable - { - map models/ammo/rocket/rockfls1.tga - blendfunc GL_ONE GL_ONE - } -} - -models/ammo/rocket/rockfls2 -{ - cull disable - { - map models/ammo/rocket/rockfls2.tga - blendfunc GL_ONE GL_ONE - } -} - - -//**************************************************************// -// // -// MODELS/FLAGS // -// // -//**************************************************************// - -models/flags/b_flag -{ - cull disable - deformVertexes wave 100 sin 0 3 0 .7 - - { - map models/flags/b_flag.tga - - } - - -} - -models/flags/b_flag2 -{ - - deformVertexes wave 100 sin 4 3 0 0.3 - deformVertexes wave 30 sin 0 3 0 .8 - deformVertexes normal .3 .2 - cull none - - { - map models/flags/b_flag2.tga - rgbGen identity - } - { - map models/flags/blue_fx.tga - tcGen environment - //tcmod scale 9 3 - //tcmod scroll .1 .7 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map models/flags/b_flag2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -models/flags/flag_red -{ - cull none - deformVertexes wave 90 sin 1 5.6 1 .4 - deformVertexes wave 100 sin 1 2 1 .9 - deformVertexes wave 50 sin 1 .5 1 1 - { - map models/flags/flag_red.tga - //blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphaFunc GE128 - blendFunc GL_ONE GL_ONE - rgbGen lightingDiffuse - depthWrite - } - - -} - -models/flags/flagbits -{ - cull none - // deformVertexes wave 100 sin 0 5 0 .7 - { - map models/flags/flagbits.tga - //blendfunc gl_src_alpha gl_one_minus_src_alpha - alphaFunc GE128 - rgbGen lightingDiffuse - depthWrite - } - - -} - -models/flags/flagtest -{ - - deformVertexes wave 100 sin 4 3 0 0.3 - deformVertexes wave 30 sin 0 3 0 .8 - deformVertexes normal .2 .2 - cull none - - { - map models/flags/flagtest.tga - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -models/flags/pole -{ - - { - map models/flags/skull.tga - tcGen environment - rgbGen lightingDiffuse - - } - - -} - -models/flags/r_flag -{ - cull disable - deformVertexes wave 100 sin 0 3 0 .7 - - { - map models/flags/r_flag.tga - - } - - -} - -models/flags/r_flag2 -{ - - deformVertexes wave 100 sin 4 3 0 0.3 - deformVertexes wave 30 sin 0 3 0 .8 - deformVertexes normal .3 .2 - cull none - - { - map models/flags/r_flag2.tga - rgbGen identity - } - { - map models/flags/red_fx.tga - tcGen environment - //tcmod scale 9 3 - //tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map models/flags/r_flag2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -models/flags/skull -{ - - { - map models/flags/skull.tga - //tcGen environment - rgbGen lightingDiffuse - - } - - -} - - -//**************************************************************// -// // -// MODELS/MAPOBJECTS // -// // -//**************************************************************// - -//******************************************************// -// mapobjects root folder // -//******************************************************// - -models/mapobjects/arenalogo -{ - deformVertexes wave 100 sin 0.25 0 0 0 - { - map textures/effects/quadmap.tga - blendfunc GL_ONE GL_ONE - tcGen environment - tcMod turb 0 1 0 0.2 - } -} - -models/mapobjects/hand -{ - deformVertexes wave 100 sin 0 .3 0 .2 - - { - map models/mapobjects/hand.tga - rgbGen vertex - } - - -} - -models/mapobjects/kmlamp_white -{ - - surfaceparm trans - { - map textures/effects/tinfxb.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -models/mapobjects/lamplight_y -{ - q3map_surfacelight 10000 -// light 1 - cull disable - { - map textures/effects/envmapmach.tga - //map models/mapobjects/lamplight_y.tga - blendfunc GL_ONE GL_ONE - tcGen environment - rgbGen identity - } -} - -models/mapobjects/lamplight_ys -{ - { - map models/mapobjects/lamplight_ys.tga - blendfunc GL_ONE GL_ONE - - } -} - -models/mapobjects/meteor -{ - deformVertexes move 0 0 10 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - - - { - map models/mapobjects/meteor.tga - rgbGen vertex - tcMod scale 4.90 2.234 - } - - -} - -models/mapobjects/pitted_rust_ps -{ - cull disable - - { - map models/mapobjects/pitted_rust_ps.tga - rgbGen vertex - } - - -} - -models/mapobjects/pj_light -{ - cull none - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - { - map models/mapobjects/pj_light.tga - blendfunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/standlamp2 -{ - - { - map textures/effects/tinfx2.tga - tcGen environment - rgbGen identity - } - { - map models/mapobjects/standlamp2.tga - blendfunc blend - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/banner subfolder // -//******************************************************// - -models/mapobjects/banner/q3banner02 -{ - cull disable - nomipmaps - //deformVertexes wave 70 sin 0 .7 0 .4 - - { - map models/mapobjects/banner/q3banner02.tga - blendFunc add - tcmod scale 2 1 - tcmod scroll .33 0 - rgbGen wave sin .5 .5 0 .2 - } - { - map models/mapobjects/banner/q3banner02.tga - blendFunc add - tcmod scale 3 1 - tcmod scroll -.45 0 - rgbGen wave sin .5 .5 0 .2 - } - { - map models/mapobjects/banner/q3banner02x.tga - blendFunc add - tcmod scale 4 1 - tcmod scroll 1 0 - // rgbGen wave sin .5 .5 0 -.2 - } -} - -models/mapobjects/banner/q3banner04 -{ - cull disable - nomipmaps - - { - //map models/mapobjects/banner/q3banner04.tga - map textures/sfx/firegorre2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .05 .1 - tcMod turb 0 .25 0 .6 - tcmod scroll .4 .3 - //rgbGen wave sin .5 .5 0 .1 - } - { - - map textures/sfx/bolts.tga - tcmod scale .2 .2 - tcmod rotate 999 - tcmod scroll 9 9 - blendfunc add - rgbGen wave sin .5 .5 0 .2 - } - { - map textures/sfx/firegorre2.tga - //map models/mapobjects/banner/q3banner04.tga - blendFunc add - tcGen environment - tcmod scale 5 5 - tcmod scroll 0.09 0.04 - //rgbGen wave sin .5 .5 0 .1 - } - -} - -//******************************************************// -// mapobjects/baph subfolder // -//******************************************************// - -//models/mapobjects/baph/bapho_lamp -//{ -// -// { -// map textures/sfx/specular3b.tga -// tcGen environment -// tcmod scroll .1 0 -// rgbGen identity -// } -// { -// map models/mapobjects/baph/bapho_lamp.tga -// blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -// rgbGen vertex -// } -// -// -//} - -models/mapobjects/baph/bapholamp_fx -{ - deformVertexes autoSprite - surfaceparm trans - cull none - nomipmaps - { - clampmap models/mapobjects/baph/bapholamp_fx.tga - blendFunc GL_ONE GL_ONE - tcmod rotate 333 - tcMod stretch sin .9 0.1 0 7 - rgbGen identity - } - { - clampmap models/mapobjects/baph/bapholamp_fx2.tga - blendFunc GL_ONE GL_ONE - tcmod rotate -301 - tcMod stretch sin 1 .1 0 9 - rgbGen identity - } - -} - -models/mapobjects/baph/baphomet -{ - - { - map textures/sfx/firewalla.tga - tcmod scroll 0.1 1 - rgbGen identity - } - { - map models/mapobjects/baph/baphomet.tga - blendFunc blend - rgbGen vertex - } - -} - -models/mapobjects/baph/baphomet_gold -{ - - { - map textures/sfx/firewalla.tga - tcmod scroll 0.1 1 - rgbGen identity - } - { - map models/mapobjects/baph/baphomet_gold.tga - blendFunc blend - rgbGen vertex - } - -} - -models/mapobjects/baph/wrist -{ - cull none - nomipmaps - surfaceparm trans - - { - map models/mapobjects/baph/wrist.tga - blendFunc GL_ONE GL_ONE - tcmod scale 2 1 - tcmod scroll 3 0 - rgbGen identity - } - { - map models/mapobjects/baph/wrist.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 1 - tcmod scroll -5 0 - rgbGen identity - } -} - -//******************************************************// -// mapobjects/barrel subfolder // -//******************************************************// - -models/mapobjects/barrel/barrel2 -{ - - { - Map models/mapobjects/barrel/barrel2.tga - rgbgen vertex - - } - { - clampmap models/mapobjects/barrel/barrel2fx.tga - blendFunc GL_ONE GL_ONE - // rgbgen wave triangle 1 1.4 0 9.5 - tcMod rotate 403 - } - { - clampmap models/mapobjects/barrel/barrel2fx.tga - blendFunc GL_ONE GL_ONE - // rgbgen wave triangle 1 1 0 8.7 - tcMod rotate -100 - } - -} - -//******************************************************// -// mapobjects/bat subfolder // -//******************************************************// - -models/mapobjects/bat/bat -{ - deformVertexes wave 10 sin 0 3 0 3 - deformVertexes move 500 0 0 sawtooth 0 5 0 .1 - deformVertexes move 0 0 7 sin 0 5 0 .5 - cull disable - - { - map models/mapobjects/bat/bat.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/bitch subfolder // -//******************************************************// - -models/mapobjects/bitch/bitch02 -{ - cull none - - { - Map models/mapobjects/bitch/bitch02.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcMod scroll 0 0.3 - } - - - -} - -models/mapobjects/bitch/forearm -{ - { - map models/mapobjects/bitch/forearm.tga - rgbGen vertex - } - { - map models/mapobjects/bitch/forearm01.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 2.2 0 - - } - { - map models/mapobjects/bitch/forearm02.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -1.1 0 - - } -} - -models/mapobjects/bitch/hologirl -{ - cull none - //sort additive // alphaFunc with a later blend pass doesn't - // make its own sort properly - deformVertexes move 0 0 .7 sin 0 5 0 0.2 - - - { - map models/mapobjects/bitch/hologirl.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - - } - { - map models/mapobjects/bitch/hologirl2.tga - tcgen environment - tcMod scroll -6 -.2 - tcMod scale 1 1 - blendFunc GL_ONE GL_ONE - //rgbGen wave sin .5 .5 0 .1 - } - - -} - -models/mapobjects/bitch/orb -{ - deformVertexes autoSprite - - q3map_surfacelight 70 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - clampmap models/mapobjects/bitch/orb.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 30 - } - -} - -//******************************************************// -// mapobjects/chain subfolder // -//******************************************************// - -models/mapobjects/chain/chain -{ - cull disable - { - map models/mapobjects/chain/chain.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/chain/chain2 -{ - cull disable - deformVertexes autoSprite2 - { - map models/mapobjects/chain/chain2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/chain/chain2_end -{ - cull disable - deformVertexes autoSprite2 - { - map models/mapobjects/chain/chain2_end.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/chain/chain3 -{ - { - map $whiteimage - rgbGen identity - } - { - map models/mapobjects/chain/chain3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map models/mapobjects/chain/chain3.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/colua0 subfolder // -//******************************************************// - -models/mapobjects/colua0/colua0_flare -{ - deformVertexes autoSprite - - q3map_surfacelight 1000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map models/mapobjects/colua0/colua0_flare.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/mapobjects/colua0/colua0_lght -{ - surfaceparm trans - { - map textures/effects/tinfx2b.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -//******************************************************// -// mapobjects/console subfolder // -//******************************************************// - -models/mapobjects/console/centercon -{ - cull disable - { - map models/mapobjects/console/scrolltext.tga - blendFunc add - tcmod scroll 0 -.3 - //tcMod stretch sin .9 0.1 0 1.1 - rgbGen vertex - } - - { - clampmap models/mapobjects/console/centercon.tga - blendFunc add - tcMod stretch sin .9 0.1 0 .2 - tcmod rotate 40 - rgbGen vertex - } -} - -models/mapobjects/console/console -{ - cull disable - - { - map textures/effects/tinfx2c.tga - blendFunc GL_ONE GL_ZERO - tcGen environment - rgbGen vertex - } - { - map models/mapobjects/console/console.tga - blendFunc blend - rgbGen vertex - } - { - map models/mapobjects/console/console2.tga - blendFunc add - rgbGen vertex - rgbGen wave sin .5 .5 0 .2 - } -} - -models/mapobjects/console/jacobs -{ - cull disable - - { - map textures/effects/tinfxb.tga - blendFunc add - tcGen environment - rgbGen identity - } -} - -models/mapobjects/console/rotate -{ - cull disable - - { - clampmap models/mapobjects/console/rotate.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 40 - rgbGen vertex - } -} - -models/mapobjects/console/scrolltext -{ - cull disable - - { - map models/mapobjects/console/scrolltext.tga - blendFunc add - tcmod scroll 0 -.3 - //tcMod stretch sin .9 0.1 0 1.1 - rgbGen vertex - } -} - -models/mapobjects/console/sphere -{ - cull disable - - { - map models/mapobjects/console/spherex2.tga - blendFunc add - tcmod rotate 40 - tcGen environment - tcmod scroll 5 .4 - rgbGen wave sin .5 .5 0 .2 - } - - { - map models/mapobjects/console/spherex.tga - blendFunc add - tcmod rotate 40 - tcGen environment - tcmod scroll 5 .4 - rgbGen wave sin .5 .5 0 -.2 - } -} - -models/mapobjects/console/sphere2 -{ - cull disable - deformVertexes autoSprite - - //{ - // clampmap models/mapobjects/console/sphere2.tga - // alphaFunc GE128 - // depthWrite - // //tcMod stretch sin .9 0.1 0 .5 - // tcmod rotate 40 - // rgbGen identity - //} - { - map models/mapobjects/console/sphere3.tga - blendFunc add - // depthWrite - rgbGen wave sin .5 .5 0 .2 - } - { - map models/mapobjects/console/sphere4.tga - blendFunc add - // depthWrite - rgbGen wave sin .5 .5 0 -.2 - } - { - clampmap models/mapobjects/console/sphere2.tga - alphaFunc GE128 - //blendfunc blend - //depthWrite - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 40 - rgbGen identity - } -} - -models/mapobjects/console/under -{ - cull disable - surfaceparm alphashadow - //surfaceparm nodraw - { - clampmap models/mapobjects/console/under.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - - } -} - -//******************************************************// -// mapobjects/corpse subfolder // -//******************************************************// - -models/mapobjects/corpse/chain -{ - cull disable - - { - map models/mapobjects/corpse/chain.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/corpse -{ - deformVertexes wave 100 sin 0 .2 0 .2 - - { - map models/mapobjects/corpse/corpse.tga - rgbGen exactVertex - } - - -} - -models/mapobjects/corpse/intestine -{ - - cull disable - - { - map models/mapobjects/corpse/intestine.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/intestine2 -{ - cull disable - deformVertexes wave 100 sin 0 .6 0 .2 - // surfaceparm trans - { - map models/mapobjects/corpse/intestine2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/spine -{ - cull disable - - { - map models/mapobjects/corpse/spine.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/corpse/torso -{ - deformVertexes wave 100 sin 0 .2 0 .2 - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 4 4 - tcMod scroll 0 -.09 - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - //{ - // map textures/liquids/proto_grueldark.tga - // //tcGen environment - // blendFunc GL_ONE GL_ONE - // tcmod scale 2 2 - // tcMod scroll 0 -.09 - // tcMod turb 0 0.07 0 .08 - // //rgbGen identity - //} - { - map models/mapobjects/corpse/torso.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - } -} - -//******************************************************// -// mapobjects/cross subfolder // -//******************************************************// - -models/mapobjects/cross/cross_skull -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/cross/cross_skull.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -models/mapobjects/cross/cross -{ - q3map_lightimage models/mapobjects/cross/cross_light.tga - q3map_surfacelight 300 - - { - map textures/sfx/firewalla.tga - tcmod scale 4 4 - tcmod scroll 0.1 2 - rgbGen identity - } - { - map models/mapobjects/cross/cross.tga - blendFunc blend - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/flag subfolder // -//******************************************************// - -//models/mapobjects/flag/banner_eg1 -//{ -// cull disable -// surfaceparm nolightmap -// deformVertexes wave 100 sin 0 8 0 8 -// sort banner -// { -// map models/mapobjects/flag/banner_eg1.tga -// // blendfunc gl_src_alpha gl_one_minus_src_alpha -// alphaFunc GE128 -// rgbGen vertex -// } -// -// -//} - -models/mapobjects/flag/banner_strgg -{ - cull disable - surfaceparm nolightmap - surfaceparm alphashadow - - deformVertexes wave 100 sin 0 3 0 .7 - //deformVertexes normal 0.2 2 - sort banner - { - map models/mapobjects/flag/banner_strgg.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphaFunc GE128 - rgbGen vertex - - } -} - -models/mapobjects/flag/banner02 -{ - cull disable - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .7 - - { - map models/mapobjects/flag/banner02.tga - - } - - -} - -//******************************************************// -// mapobjects/flares subfolder // -//******************************************************// - -models/mapobjects/flares/electric -{ - - - q3map_surfacelight 200 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - clampmap models/mapobjects/flares/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 9 - tcMod rotate 360 - } - { - clampmap models/mapobjects/flares/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 9.5 - tcMod rotate -202 - } - -} - -//******************************************************// -// mapobjects/gratelamp subfolder // -//******************************************************// - -models/mapobjects/gratelamp/gratelamp_flare -{ - deformVertexes autoSprite - - q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map models/mapobjects/gratelamp/gratelamp_flare.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/mapobjects/gratelamp/gratelamp -{ - cull disable - - { - map models/mapobjects/gratelamp/gratelamp.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/gratelamp/gratetorch -{ - cull disable - - { - map models/mapobjects/gratelamp/gratetorch.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/gratelamp/gratetorch2b -{ - cull disable - - { - map models/mapobjects/gratelamp/gratetorch2b.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/grenadel subfolder // -//******************************************************// - -models/mapobjects/grenadel/grenadelx -{ - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - { - clampmap models/mapobjects/grenadel/grenadelx.tga - tcMod rotate 10 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } -} - -//******************************************************// -// mapobjects/horned subfolder // -//******************************************************// - -models/mapobjects/horned/horned -{ - - { - map textures/sfx/firewalla.tga - tcmod scroll 0.1 1 - } - { - map models/mapobjects/horned/horned.tga - blendFunc blend - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/jesus subfolder // -//******************************************************// - -models/mapobjects/jesus/jesuswall -{ - deformVertexes wave 100 sin 0 .2 0 .2 - cull none - { - map $lightmap - //rgbGen identity - } - { - map models/mapobjects/jesus/jesuswall.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen vertex - alphaGen lightingSpecular - } - - -} - -//******************************************************// -// mapobjects/jets subfolder // -//******************************************************// - -models/mapobjects/jets/jet_1 -{ - surfaceparm trans - nomipmaps - cull disable - { - map models/mapobjects/jets/jet_1.tga - blendFunc add - tcmod scale .5 1 - tcmod scroll 6 0 - rgbGen identity - } - { - map models/mapobjects/jets/jet_2.tga - blendFunc add - tcmod scroll 3 -.5 - rgbGen wave inversesawtooth -.3 1.3 0 .5 - } -} - -models/mapobjects/jets/jet_as -{ - deformVertexes autoSprite2 - deformVertexes wave 100 sin 0 1 0 9 - surfaceparm trans - nomipmaps - { - map models/mapobjects/jets/jet_as.tga - blendFunc add - rgbGen identity - } -} - -//******************************************************// -// mapobjects/lamps subfolder // -//******************************************************// - -models/mapobjects/lamps/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - cull none - //nopicmip - { - map models/mapobjects/lamps/beam.tga - tcMod Scroll .3 0 - blendFunc GL_ONE GL_ONE - } - { - map models/mapobjects/lamps/beam.tga - tcMod Scroll -.3 0 - blendFunc GL_ONE GL_ONE - } - -} - -models/mapobjects/lamps/bot_flare -{ - deformVertexes autoSprite - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - clampmap models/mapobjects/lamps/bot_flare.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 20 - - - } - - -} - -models/mapobjects/lamps/bot_flare2 -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - deformVertexes wave 100 sin 0 1 0 9 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - map models/mapobjects/lamps/bot_flare2.tga - blendFunc GL_ONE GL_ONE - - } - - -} - -models/mapobjects/lamps/bot_lamp -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - - { - map models/mapobjects/lamps/bot_lamp.tga - rgbGen vertex - - } - - -} -models/mapobjects/lamps/bot_lamp2 -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - - { - map models/mapobjects/lamps/bot_lamp2.tga - rgbGen vertex - - } - - -} - -models/mapobjects/lamps/bot_lamp2b -{ - cull disable - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - { - map models/mapobjects/lamps/bot_lamp2b.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/lamps/bot_light -{ - cull disable - q3map_surfacelight 200 - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - { - map models/mapobjects/lamps/bot_light.tga - rgbGen identity - } - - -} - -models/mapobjects/lamps/bot_wing -{ - deformVertexes move 0 0 3 sin 0 5 0 0.1 - deformVertexes move 2 2 0 sin 0 9 0 0.05 - deformVertexes wave 100 sin 0 .5 0 .5 - cull disable - - { - map models/mapobjects/lamps/bot_wing.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/lamps/bot_wing2 -{ - //deformVertexes wave 100 sin 0 .5 0 .5 - //deformVertexes move 0 0 1 triangle 0 20 0 1 - deformVertexes move 0 0 2 sin 0 5 0 0.3 - deformVertexes move .6 .8 0 sin 0 9 0 0.1 - deformVertexes wave 100 sin 0 .5 0 .5 - cull disable - - { - map models/mapobjects/lamps/bot_wing2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/lamps/flare03 -{ - deformVertexes autoSprite - - q3map_surfacelight 200 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map models/mapobjects/lamps/flare03.tga - blendFunc GL_ONE GL_ONE - } - -} - -//******************************************************// -// mapobjects/lightning subfolder // -//******************************************************// - -models/mapobjects/lightning/blu/blu01 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/blu/blu01.tga models/mapobjects/lightning/blu/blu02.tga models/mapobjects/lightning/blu/blu03.tga models/mapobjects/lightning/blu/blu04.tga models/mapobjects/lightning/blu/blu05.tga models/mapobjects/lightning/blu/blu06.tga models/mapobjects/lightning/blu/blu07.tga models/mapobjects/lightning/blu/blu08.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/lightning/red/red01 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/red/red01.tga models/mapobjects/lightning/red/red02.tga models/mapobjects/lightning/red/red03.tga models/mapobjects/lightning/red/red04.tga models/mapobjects/lightning/red/red05.tga models/mapobjects/lightning/red/red06.tga models/mapobjects/lightning/red/red07.tga models/mapobjects/lightning/red/red08.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/lightning/white/white1 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/white/white1.tga models/mapobjects/lightning/white/white2.tga models/mapobjects/lightning/white/white3.tga models/mapobjects/lightning/white/white4.tga models/mapobjects/lightning/white/white5.tga models/mapobjects/lightning/white/white6.tga models/mapobjects/lightning/white/white7.tga models/mapobjects/lightning/white/white8.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/mapobjects/lightning/yel/yel01 -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 3000 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 15 models/mapobjects/lightning/yel/yel01.tga models/mapobjects/lightning/yel/yel02.tga models/mapobjects/lightning/yel/yel03.tga models/mapobjects/lightning/yel/yel04.tga models/mapobjects/lightning/yel/yel05.tga models/mapobjects/lightning/yel/yel06.tga models/mapobjects/lightning/yel/yel07.tga models/mapobjects/lightning/yel/yel08.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -//******************************************************// -// mapobjects/pipe subfolder // -//******************************************************// - -models/mapobjects/pipe/pipe02 -{ - - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen identity - } - { - map models/mapobjects/pipe/pipe02.tga - blendfunc blend - rgbGen lightingdiffuse - } - -} - -models/mapobjects/pipe/pipe02x -{ - q3map_lightimage textures/sfx/electricslime_old.tga - q3map_surfacelight 150 - cull disable - { - map textures/effects/tinfx2b.tga - tcGen environment - tcmod scale 1 2 - blendfunc add - rgbGen identity - } - { - map textures/sfx/electricslime_old.tga - //tcGen environment - //tcmod scale 2 2 - //tcmod rotate 240 - tcmod scroll 7.2 1 - blendfunc add - rgbGen identity - } - -} - -//******************************************************// -// mapobjects/podium subfolder // -//******************************************************// - -models/mapobjects/podium/podium -{ - { - map models/mapobjects/podium/podium.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scroll .2 0.01 - rgbGen identity - } - { - map models/mapobjects/podium/podium.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - { - map models/mapobjects/podium/podiumglo.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 1 1 0 .2 - } - - -} - -models/mapobjects/podium/podiumfx1 -{ - cull none - surfaceparm trans - { - map models/mapobjects/podium/podiumfx1.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 2 -.3 - rgbGen wave inversesawtooth 0 1 .35 .3 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1.7 -.3 - rgbGen wave inversesawtooth 0 1 .35 .3 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1.1 -.3 - rgbGen wave inversesawtooth 0 1 .35 .3 - } -} - -models/mapobjects/podium/podiumfx2 -{ - cull none - surfaceparm trans - { - map models/mapobjects/podium/podiumfx1.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .5 - tcmod scroll .8 -.3 - rgbGen wave inversesawtooth 0 1 .7 .6 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .5 - tcmod scroll -1.7 -.3 - rgbGen wave inversesawtooth 0 1 .7 .6 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .5 - tcmod scroll -1.1 -.3 - rgbGen wave inversesawtooth 0 1 .7 .6 - } -} - -models/mapobjects/podium/podiumfx3 -{ - cull none - surfaceparm trans - { - map models/mapobjects/podium/podiumfx1.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .1 - tcmod scroll 1 -.3 - rgbGen wave inversesawtooth 0 1 1.1 .9 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .1 - tcmod scroll -1.7 -.3 - rgbGen wave inversesawtooth 0 1 1.1 .9 - } - { - map models/mapobjects/podium/podiumfx1b.tga - blendFunc GL_ONE GL_ONE - tcmod scale 1 .1 - tcmod scroll -1.1 -.3 - rgbGen wave inversesawtooth 0 1 1.1 .9 - } -} - -models/mapobjects/podium/podskull -{ - { - map models/mapobjects/podium/podskull.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scroll .2 0.03 - rgbGen identity - } - { - map models/mapobjects/podium/podskull.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - { - map models/mapobjects/podium/podskullfx.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 1 1 0 .2 - } -} - -//******************************************************// -// mapobjects/portal_2 subfolder // -//******************************************************// - -models/mapobjects/portal_2/portal_3 -{ - // ************************************************* - // * Portal Sides * - // * April 30 1999 * - // * Please Comment Changes * - // ************************************************* - - - { - map models/mapobjects/portal_2/portal_3.tga - rgbGen vertex - } - - { - map models/mapobjects/portal_2/portal_3_glo.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 .2 .5 - } - -} - -models/mapobjects/portal_2/portal_3_edge -{ - { - map models/mapobjects/portal_2/portal_3_edge.tga - rgbGen vertex - } - - { - map models/mapobjects/portal_2/portal_3_edge_glo.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 9.7 .5 - } - -} - -//******************************************************// -// mapobjects/scoreboard subfolder // -//******************************************************// - -models/mapobjects/scoreboard/s_name -{ - sort additive - cull disable - deformVertexes text0 - { - map gfx/2d/bigchars.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -models/mapobjects/scoreboard/s_score -{ - sort additive - cull disable - deformVertexes text1 - { - map gfx/2d/bigchars.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } -} - -//******************************************************// -// mapobjects/signs subfolder // -//******************************************************// - -models/mapobjects/signs/bioh -{ - cull disable - - { - map models/mapobjects/signs/bioh.tga - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/skel subfolder // -//******************************************************// - -models/mapobjects/skel/skel -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/skel/skel.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -models/mapobjects/skel/xray -{ - deformVertexes move 0 0 .7 sin 0 5 0 0.2 - cull disable - q3map_surfacelight 300 - { - map models/mapobjects/skel/xray.tga - blendfunc add - rgbGen wave sin 1 .8 0 .3 - } - { - - map models/mapobjects/bitch/hologirl2.tga - tcMod scroll -6 -.2 - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/skull subfolder // -//******************************************************// - -models/mapobjects/skull/monkeyhead -{ - //deformVertexes wave 100 sin 0 .7 0 .2 - //deformVertexes wave 100 sin 0 .5 1 .1 - cull disable - nomipmaps - - { - map models/mapobjects/skull/monkeyhead.tga - rgbGen vertex - } - { - //animMap 0.5 models/mapobjects/skull/monkeyhead.tga //models/mapobjects/wallhead/femhead2.tga - map models/mapobjects/skull/monkeyheadb.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen wave sin 0 1 1 .1 - // alphaGen wave triangle 0 .7 0 .2 - rgbGen vertex - } - -} - -models/mapobjects/skull/monkeyhead2 -{ - cull disable - surfaceparm trans - nomipmaps - { - map models/mapobjects/skull/monkeyhead2.tga - blendfunc blend - depthWrite - rgbGen vertex - } -} - -models/mapobjects/skull/ribcage -{ - sort underwater - cull disable - { - map models/mapobjects/skull/ribcage.tga - // blendfunc gl_src_alpha gl_one_minus_src_alpha - alphaFunc GE128 - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/slamp subfolder // -//******************************************************// - -models/mapobjects/slamp/slamp2 -{ - cull disable - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map models/mapobjects/slamp/slamp2.tga - blendFunc GL_ONE GL_ONE - } - { - map textures/effects/envmapdimb.tga - tcGen environment - blendfunc GL_ONE GL_ONE - //rgbGen lightingDiffuse - } - - -} - -models/mapobjects/slamp/slamp3 -{ - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 100 - - { - map models/mapobjects/slamp/slamp3.tga - blendFunc GL_ONE GL_ONE - - } - - -} - -//******************************************************// -// mapobjects/spotlamp subfolder // -//******************************************************// - -models/mapobjects/spotlamp/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map models/mapobjects/spotlamp/beam.tga - tcMod Scroll .3 0 - blendFunc GL_ONE GL_ONE - } - //{ - // map models/mapobjects/spotlamp/beam.tga - // tcMod Scroll -.3 0 - // blendFunc GL_ONE GL_ONE - //} - -} - -models/mapobjects/spotlamp/spotlamp -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/spotlamp/spotlamp.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -models/mapobjects/spotlamp/spotlamp_l -{ - cull disable - q3map_surfacelight 200 - - { - map models/mapobjects/spotlamp/spotlamp_l.tga - rgbGen identity - } - - -} - -//******************************************************// -// mapobjects/teleporter subfolder // -//******************************************************// - -models/mapobjects/teleporter/energy -{ - cull disable - - - { - map models/mapobjects/teleporter/energy.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 2.2 1.3 - rgbGen wave inversesawtooth -.3 1.3 0 1.3 - - } - { - map models/mapobjects/teleporter/energy2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -1 .5 - rgbGen wave inversesawtooth -.2 1.2 0 .5 - - } - { - map models/mapobjects/teleporter/energy3.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 3 0 - rgbGen wave triangle 1 1 0 5.3 - - } - -} - -models/mapobjects/teleporter/teleporter_edge -{ - - - { - map models/mapobjects/teleporter/teleporter_edge.tga - rgbGen vertex - } - { - map models/mapobjects/teleporter/teleporter_edge2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave inversesawtooth 0 1 .2 1.5 - } - -} - -models/mapobjects/teleporter/transparency -{ - cull disable - - { - map models/mapobjects/teleporter/transparency.tga - blendfunc GL_ONE GL_ONE - - } - { - map models/mapobjects/teleporter/transparency2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll .1 .2 - } - -} - -models/mapobjects/teleporter/transparency2 -{ - cull disable - - { - map models/mapobjects/teleporter/transparency2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll .1 .2 - } - -} - -models/mapobjects/teleporter/widget -{ - cull disable - - { - map models/mapobjects/teleporter/widget.tga - blendfunc GL_ONE GL_ONE - - } - { - map models/mapobjects/teleporter/transparency2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -.1 -.2 - } - -} - -//******************************************************// -// mapobjects/timlamp subfolder // -//******************************************************// - -models/mapobjects/timlamp/timlamp -{ - cull disable - surfaceparm alphashadow - { - map models/mapobjects/timlamp/timlamp.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/tree subfolder // -//******************************************************// - -models/mapobjects/tree/branch -{ - cull disable - deformVertexes wave 100 sin 0 .1 0 .2 - surfaceparm trans - { - map models/mapobjects/tree/branch.tga - alphaFunc GE128 - depthWrite - //rgbGen identity - //rgbGen lightingDiffuse - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/wallhead subfolder // -//******************************************************// - -//models/mapobjects/wallhead/femhead -//{ -// deformVertexes wave 100 sin 0 .7 0 .2 -// cull disable -// -// -// { -// map models/mapobjects/wallhead/femhead2.tga -// rgbGen vertex -// } -// { -// map models/mapobjects/wallhead/femhead.tga -// Blendfunc GL_ONE GL_ONE -// rgbGen vertex -// rgbGen wave triangle 0 1 0 .05 -// } -// -//} - -models/mapobjects/wallhead/femhead -{ - deformVertexes wave 100 sin 0 .7 0 .2 - //deformVertexes wave 100 sin 0 1 1 .1 - cull disable - - { - map models/mapobjects/wallhead/femhead3.tga - rgbGen vertex - } - { - //animMap 0.5 models/mapobjects/wallhead/femhead4.tga //models/mapobjects/wallhead/femhead2.tga - map models/mapobjects/wallhead/femhead4.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - alphaGen wave sin 0 1 1 .1 - // alphaGen wave triangle 0 .7 0 .2 - rgbGen vertex - } - -} - -models/mapobjects/wallhead/lion_m -{ - { - map models/mapobjects/wallhead/lion_m.tga - blendFunc GL_ONE GL_ZERO - rgbGen vertex - } - { - map textures/sfx/firewalla.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0.1 1 - //rgbGen wave triangle .5 1 0 .4 - } - { - map models/mapobjects/wallhead/lion_m.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - } - -} - -//models/mapobjects/wallhead/tongue -//{ -// { -// //rgbGen lightingDiffuse -// map $whiteimage -// rgbGen vertex -// } -// { -// map models/mapobjects/wallhead/tongue.tga -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// rgbGen identity -// alphaGen lightingSpecular -// } -//} - -models/mapobjects/wallhead/wallhead -{ - - - { - map models/mapobjects/wallhead/wallhead.tga - rgbGen vertex - } - -} - -models/mapobjects/wallhead/wallhead_eye -{ - - - { - animMap 0.2 models/mapobjects/wallhead/wallhead_eye.tga models/mapobjects/wallhead/wallhead_eye2.tga - rgbGen vertex - } - - -} - -//******************************************************// -// mapobjects/weeds subfolder // -//******************************************************// - -models/mapobjects/weeds/weed01 -{ - sort additive - cull disable - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .7 - { - map models/mapobjects/weeds/weed01.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - -} - -models/mapobjects/weeds/weed02 -{ - sort underwater - cull disable - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .7 - { - map models/mapobjects/weeds/weed02.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - -} - - -//**************************************************************// -// // -// MODELS/PLAYERS // -// // -//**************************************************************// - -//******************************************************// -// models/players/anarki subfolder // -//******************************************************// - -models/players/anarki/anarki_b -{ - { - map textures/effects/envmapbfg.tga - tcGen environment - tcmod rotate 350 - tcmod scroll 3 1 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/players/anarki/anarki_b.tga - blendfunc blend - rgbGen lightingDiffuse - } - -} - -models/players/anarki/anarki_g -{ - { - map models/players/anarki/anarki_g.tga - //rgbGen vertex - } - { - - map models/players/anarki/anarki_g_fx.tga - rgbGen lightingDiffuse - rgbGen wave triangle 0 1 0 .5 - blendfunc gl_ONE gl_ONE - } -} - -//******************************************************// -// models/players/biker subfolder // -//******************************************************// - -models/players/biker/cadaver -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/biker/cadaver.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/bones subfolder // -//******************************************************// - -models/players/bones/blue -{ - - cull disable - { - map models/players/bones/blue.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - } -} - -models/players/bones/red -{ - - cull disable - { - map models/players/bones/red.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - } -} - -models/players/bones/stiff -{ - - cull disable - { - map models/players/bones/stiff.tga - alphaFunc GE128 - depthWrite - rgbGen lightingdiffuse - } -} - -models/players/bones/xray -{ - - cull disable - { - map models/players/bones/xray.tga - blendfunc add - //rgbGen wave sin 1 .8 0 9 - } - { - - map models/mapobjects/bitch/hologirl2.tga - tcMod scroll -6 -.2 - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - -} - -//******************************************************// -// models/players/brandon subfolder // -//******************************************************// - -models/players/brandon/branhat -{ - { - map models/players/light/brandon/branhat.tga - } - { - map models/players/light/brandon/branhat.glow.tga - blendfunc GL_ONE GL_ONE - } -} - -models/brandon/braneye -{ - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/light/brandon/braneye.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } - { - map models/players/light/brandon/braneye.glow.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/players/crash subfolder // -//******************************************************// - -models/players/crash/crash -{ - { - map textures/effects/envmapblue.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/crash/crash.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/crash/crash_f -{ - - { - map textures/sfx/snow.tga - tcmod scale .5 .5 - tcmod scroll 9 0.3 - rgbGen identity - } - { - map textures/effects/tinfx2b.tga - tcGen environment - blendFunc add - rgbGen lightingdiffuse - } -} - -models/players/crash/crash_t -{ - { - map textures/effects/envmapblue.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/crash/crash_t.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -//******************************************************// -// models/players/doom subfolder // -//******************************************************// - -models/players/doom/doom_f -{ - { - map models/players/doom/doom_f.tga - rgbGen lightingDiffuse - } - { - - map models/players/doom/doom_fx.tga - tcGen environment - rgbGen lightingDiffuse - blendfunc gl_ONE gl_ONE - } - -} - -models/players/doom/f_doom -{ - { - map models/players/doom/f_doom.tga - } - { - - map models/players/doom/fx_doom.tga - tcGen environment - rgbGen lightingDiffuse - blendfunc gl_ONE gl_ONE - } -} - -models/players/doom/phobos -{ - { - map models/players/doom/phobos_fx.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 7 7 - tcMod scroll 5 -5 - tcmod rotate 360 - rgbGen identity - } - //{ - // map textures/effects/tinfx2.tga - // tcGen environment - // blendFunc GL_ONE GL_ONE - // rgbGen lightingDiffuse - //} - { - map models/players/doom/phobos.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } -} - -models/players/doom/phobos_f -{ - - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map models/players/doom/phobos_f.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } -} - -//******************************************************// -// models/players/grunt subfolder // -//******************************************************// - -models/players/grunt/stripe_h -{ - - { - //map textures/effects/tinfx.tga - map textures/sfx/electricgrade3.tga - //tcmod scale 6 6 - //tcmod rotate 350 - tcmod scroll 0 -.5 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/players/grunt/stripe_h.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/players/hunter subfolder // -//******************************************************// - -models/players/hunter/harpy -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/hunter/hunter2.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/hunter/harpy_f -{ - surfaceparm nodraw -} - -models/players/hunter/harpy_h -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/hunter/hunter_h.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/hunter/hunter_f -{ - deformVertexes wave 100 sin 0 .3 0 .2 - cull disable - { - map models/players/hunter/hunter_f.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/hunter/red_f -{ - deformVertexes wave 100 sin 0 .3 0 .2 - cull disable - { - map models/players/hunter/red_f.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/klesk subfolder // -//******************************************************// - -models/players/klesk/flisk -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/klesk/flisk.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -models/players/klesk/flisk_h -{ - { - map models/players/klesk/flisk_h.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/bolts.tga - blendFunc GL_ONE GL_ONE - tcmod scale 2 2 - tcmod scroll 2 2 - } - { - map models/players/klesk/flisk_h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/klesk/klesk_h -{ - { - map models/players/klesk/klesk_h.tga - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - - } - - { - map models/players/klesk/klesk_g.tga - blendfunc GL_ONE GL_ONE - rgbGen wave triangle .5 1 0 .5 - - } -} - -//******************************************************// -// models/players/lucy subfolder // -//******************************************************// - -models/players/lucy/angel -{ - cull none - - { - map models/players/lucy/angel.tga - alphaFunc GE128 - depthWrite - //rgbGen identity - rgbGen lightingDiffuse - - } - { - - //map textures/effects/envmapcirc3.tga - - map models/mapobjects/bitch/hologirl2.tga - tcgen environment - tcMod scroll -6 -.2 - tcMod scale 1 1 - blendFunc GL_ONE GL_ONE - //rgbGen identity - //rgbGen vertex - rgbGen lightingDiffuse - } - -} - -models/players/lucy/h_angel -{ - cull none - - { - map models/players/lucy/h_angel.tga - depthWrite - rgbGen lightingDiffuse - - } - { - - //map textures/effects/envmapcirc3.tga - - map models/mapobjects/bitch/hologirl2.tga - tcgen environment - tcMod scroll -6 -.2 - tcMod scale 1 1 - blendFunc GL_ONE GL_ONE - rgbGen identity - // rgbGen vertex - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/players/major subfolder // -//******************************************************// - -models/players/major/daemia -{ - { - map textures/sfx/electricslime.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 3 3 - tcMod turb 0 .5 0 .7 - tcMod scroll 1 -1 - rgbGen identity - } - { - map models/players/major/daemia.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/mynx subfolder // -//******************************************************// - -models/players/mynx/mynx_shiny -{ - - { - map textures/sfx/specular5.tga - blendFunc GL_ONE GL_ZERO - tcGen environment - } - { - map models/players/mynx/mynx_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/players/orbb subfolder // -//******************************************************// - -models/players/orbb/blue_h -{ - - { - map models/players/orbb/blue_h.tga - rgbGen lightingDiffuse - } - - { - clampmap textures/base_floor/techfloor2.tga - blendfunc blend - tcmod rotate 90 - tcMod stretch sin .8 0.2 0 .2 - rgbGen lightingDiffuse - } - -} - -models/players/orbb/orbb_h2 -{ - { - map models/players/orbb/orbb_h2.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/effects/tinfx.tga - blendFunc GL_ONE GL_ONE - tcGen environment - rgbGen lightingDiffuse - } - { - map models/players/orbb/orbb_h2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/orbb/orbb_light -{ - { - map models/players/orbb/orbb_light.tga - rgbGen wave sin 1 1 0 1 - - } -} - -models/players/orbb/orbb_light_blue -{ - { - map models/players/orbb/orbb_light_blue.tga - rgbGen wave sin 1 1 0 1 - - } -} - -models/players/orbb/red_h -{ - - { - map models/players/orbb/red_h.tga - rgbGen lightingDiffuse - } - - { - clampmap textures/base_floor/techfloor2.tga - blendfunc blend - tcmod rotate 90 - tcMod stretch sin .8 0.2 0 .2 - rgbGen lightingDiffuse - } - -} - -models/players/orbb/orbb_tail -{ - - { - map models/players/orbb/orbb_tail.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0 .5 - rgbGen wave sin .5 .25 0 .5 - } -} - -models/players/orbb/orbb_tail_blue -{ - - { - map models/players/orbb/orbb_tail_blue.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0 .5 - rgbGen wave sin .5 .25 0 .5 - } -} - -//******************************************************// -// models/players/parkr subfolder // -//******************************************************// - -models/players/parkr/parkr_chest -{ - { - map models/players/parkr/parkr_chest.tga - } - { - AnimMap 4 models/players/parkr/parkr_chest_red.tga models/players/parkr/parkr_chest_blu.tga - blendfunc GL_ONE GL_ONE - } -} - -models/players/parkr/parkr_head -{ - { - map textures/effects/envmap2.tga - tcGen environment - } -} - -//******************************************************// -// models/players/ranger subfolder // -//******************************************************// - -//models/players/ranger/wrack -//{ -// { -// map $whiteimage -// rgbGen lightingDiffuse -// } -// { -// map models/players/ranger/wrack.tga -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// rgbGen identity -// alphaGen lightingSpecular -// } -// -//} - -models/players/ranger/wrack -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/ranger/wrack.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/razor subfolder // -//******************************************************// - -models/players/razor/h_id -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/razor/h_id.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/razor/id -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/razor/id.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/razor/patriot -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/razor/patriot.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -models/players/razor/patriot_gogs -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - - -} - -models/players/razor/razor_gogs -{ - { - map models/players/razor/razor_gogs.tga - tcGen environment - - } - - - { - map models/players/razor/razor_gogs_fx.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 1.2 9.3 - - } -} - -//******************************************************// -// models/players/sarge subfolder // -//******************************************************// - -models/players/sarge/cigar -{ - { - map models/players/sarge/cigar.tga - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - - } - - { - map models/players/sarge/cigar.glow.tga - blendfunc GL_ONE GL_ONE - rgbGen wave triangle .5 1 0 .2 - - } -} - -models/players/sarge/krusade -{ - { - map textures/sfx/firegorre.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - rgbGen identity - } - { - map models/players/sarge/krusade.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/sarge/null -{ - { - map models/players/sarge/null.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/players/sarge/roderic -{ - { - map textures/sfx/firegorre.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - rgbGen identity - } - { - map models/players/sarge/roderic.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/slash subfolder // -//******************************************************// - -models/players/slash/grrl_h -{ - - { - map textures/effects/tinfx2d.tga - tcGen environment - rgbGen identity - } - { - map models/players/slash/grrl_h.tga - blendfunc blend - rgbGen lightingdiffuse - } - -} - -models/players/slash/slashskate -{ - //deformVertexes wave 100 sin 0 1 1 5 - sort additive - cull disable - { - clampmap models/players/slash/slashskate.tga - blendFunc GL_ONE GL_ONE - //tcmod rotate 100 - tcMod stretch sin .9 0.1 0 1.1 - rgbgen identity - - } -} - -models/players/slash/yuriko -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/slash/yuriko.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/slash/yuriko_h -{ - { - map textures/effects/envmaproc.tga - tcGen environment - rgbGen lightingdiffuse - } - { - map models/players/slash/yuriko_h.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/slash/yurikoskate -{ - cull disable - deformVertexes autoSprite - - - { - clampmap models/players/slash/yurikoskate.tga - blendFunc blend - //tcMod stretch sin .9 0.1 0 1.1 - tcmod rotate 999 - rgbGen lightingdiffuse - } - { - clampmap models/players/slash/yurikoskate.tga - blendFunc blend - //tcMod stretch sin .9 0.1 0 -1.1 - tcMod stretch sin .9 0 0 0 - tcmod rotate 20 - rgbGen lightingdiffuse - } -} - -//******************************************************// -// models/players/tankjr subfolder // -//******************************************************// - -models/players/tankjr/tankjr -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/tankjr/tankjr.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/uriel subfolder // -//******************************************************// - -models/players/uriel/blue_w -{ - deformVertexes wave 100 sin 0 .5 0 .2 - - { - map models/players/uriel/blue_w.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/null -{ - { - map models/players/uriel/null.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/players/uriel/red_w -{ - deformVertexes wave 100 sin 0 .5 0 .2 - - { - map models/players/uriel/red_w.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/uriel_h -{ - { - map models/players/uriel/uriel_h.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/proto_zzzt.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -0.2 1 - rgbGen identity - } - { - map models/players/uriel/uriel_h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/uriel_w -{ - deformVertexes wave 100 sin 0 .5 0 .2 - - { - map models/players/uriel/uriel_w.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - //alphaFunc GT0 - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/players/uriel/zael -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/uriel/zael.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -//******************************************************// -// models/players/visor subfolder // -//******************************************************// - -models/players/visor/gorre -{ - - { - map textures/sfx/firegorre.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 4 4 - rgbGen identity - } - //{ - // map textures/sfx/firewallb.tga - // blendFunc GL_ONE GL_ONE - // tcmod scale 3 3 - // tcMod turb 0 .2 0 .1 - // tcMod scroll 0 3 - // //tcmod rotate 360 - // rgbGen identity - //} - { - map models/players/visor/gorre.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } -} - -//models/players/visor/visortorso2 -//{ -// { -// map $whiteimage -// rgbGen lightingDiffuse -// } -// { -// map models/players/visor/visortorso2.tga -// rgbGen identity -// alphaGen lightingSpecular -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// } -//} - -//models/players/visorhead -//{ -// { -// map $whiteimage -// rgbGen lightingDiffuse -// } -// { -// map models/players/visor/visorhead.tga -// rgbGen identity -// alphaGen lightingSpecular -// blendFunc GL_DST_COLOR GL_SRC_ALPHA -// } -//} - -//******************************************************// -// models/players/xaero subfolder // -//******************************************************// - -models/players/xaero/xaero -{ - - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/xaero/xaero.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - -} - -models/players/xaero/xaero_a -{ - { - map textures/effects/envmapbfg.tga - tcmod rotate 350 - tcmod scroll 3 1 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/players/xaero/xaero_a.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -models/players/xaero/xaero_h -{ - { - map models/players/xaero/xaero_h.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/firewalla.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 0.1 1 - //rgbGen wave triangle .5 1 0 .4 - } - { - map models/players/xaero/xaero_h.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - -} - -models/players/xaero/xaero_q -{ - - cull disable - - { - map models/players/xaero/xaero_q.tga - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -//******************************************************// -// models/players/xian subfolder // -//******************************************************// - -models/players/xian/xianfacf -{ - { - map $whiteimage - rgbGen lightingDiffuse - } - { - map models/players/medium/xian/xianfacf.tga - rgbGen identity - alphaGen lightingSpecular - blendFunc GL_DST_COLOR GL_SRC_ALPHA - } -} - - -//**************************************************************// -// // -// MODELS/POWERUPS // -// // -//**************************************************************// - -//******************************************************// -// models/powerups/ammo subfolder // -//******************************************************// - -//models/powerups/ammo/ammo_rail1 -//{ -// { -// map models/powerups/ammo/ammo_rail1.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/ammo_rail1.glow.tga -// blendfunc GL_ONE GL_ONE -// rgbGen wave sin 0.75 0.25 0 1 -// } -//} - -//models/powerups/ammo/ammo_rail2 -//{ -// { -// map models/powerups/ammo/ammo_rail2.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/ammo_rail2.glow.tga -// blendfunc GL_ONE GL_ONE -// } -//} - -models/powerups/ammo/bfgammo -{ - cull none - { - map textures/effects/envmapbfg.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendfunc GL_ONE GL_ONE - rgbGen identity - } - { - map models/powerups/ammo/bfgammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/bfgammo1 -{ - { - map textures/effects/envmapbfg.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/bfgammo2 -{ - { - map models/powerups/ammo/bfgammo2.tga - rgbGen identity - } - -} - -//models/powerups/ammo/bounammo1 -//{ -// { -// map models/powerups/ammo/bounammo1.tga -// rgbGen lightingDiffuse -// } -//} - -//models/powerups/ammo/bounammo2 -//{ -// { -// map models/powerups/ammo/bounammo2.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/bounammo2.glow.tga -// blendfunc GL_ONE GL_ONE -// rgbGen lightingDiffuse -// } -//} - -//models/powerups/ammo/flamammo1 -//{ -// { -// map models/powerups/ammo/flamammo1.tga -// rgbGen lightingDiffuse -// } -//} - -//models/powerups/ammo/flamammo2 -//{ -// { -// map models/powerups/ammo/flamammo2.tga -// rgbGen lightingDiffuse -// } -// { -// map models/powerups/ammo/flamammo2.glow.tga -// blendfunc GL_ONE GL_ONE -// } -//} - -models/powerups/ammo/grenammo -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/grenammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/grenammo1 -{ - { - map textures/effects/envmapgren.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/grenammo2 -{ - { - map models/powerups/ammo/grenammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/lighammo -{ - { - map textures/effects/envmapligh.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/lighammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/lighammo1 -{ - { - map textures/effects/envmapligh.tga - tcGen environment - //tcmod scale 2 2 - tcmod rotate 6 - tcmod scroll .09 .09 - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/lighammo2 -{ - { - map models/powerups/ammo/lighammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/machammo -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/machammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/machammo1 -{ - { - map textures/effects/envmapmach.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/machammo2 -{ - { - map models/powerups/ammo/machammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/plasammo -{ - { - map textures/effects/envmapplas.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/plasammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/plasammo1 -{ - { - map textures/effects/envmapplas.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/plasammo2 -{ - { - map models/powerups/ammo/plasammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/railammo -{ - { - map textures/effects/envmaprail.tga - //tcmod scale 3 3 - tcmod rotate 350 - tcmod scroll 3 1 - //tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/railammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/railammo1 -{ - { - map textures/effects/envmaprail.tga - tcGen environment - //tcmod scale 4 4 - //tcmod rotate 70 - //tcmod scroll .5 .5 - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/railammo2 -{ - { - map models/powerups/ammo/railammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/rockammo -{ - { - map textures/effects/tinfx2d.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/rockammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/rockammo1 -{ - { - map textures/effects/envmaproc.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/rockammo2 -{ - { - map models/powerups/ammo/rockammo2.tga - rgbGen identity - } - -} - -models/powerups/ammo/shotammo -{ - { - map textures/effects/tinfx2c.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } - { - map models/powerups/ammo/shotammo.tga - blendfunc blend - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/shotammo1 -{ - { - map textures/effects/envmapgold3.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } -} - -models/powerups/ammo/shotammo2 -{ - { - map models/powerups/ammo/shotammo2.tga - rgbGen identity - } - -} - -//******************************************************// -// models/powerups/armor subfolder // -//******************************************************// - -models/powerups/armor/energy_grn1 -{ - deformVertexes wave 100 sin 2 0 0 0 - { - map textures/effects/envmaprail.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod rotate 30 - tcMod scroll 1 1 - rgbGen wave triangle -.3 1.3 0 .3 - } - -} - -models/powerups/armor/energy_red1 -{ - - { - map models/powerups/armor/energy_red1.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 7.4 1.3 - } - -} - -models/powerups/armor/energy_yel1 -{ - - { - map models/powerups/armor/energy_yel3.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 7.4 1.3 - } - -} - -models/powerups/armor/newred -{ - { - map textures/sfx/specular.tga - tcGen environment - rgbGen identity - } - { - map models/powerups/armor/newred.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - -} - -models/powerups/armor/newyellow -{ - { - map textures/sfx/specular.tga - tcGen environment - rgbGen identity - } - { - map models/powerups/armor/newyellow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - -} - -models/powerups/armor/shard2 -{ - { - map textures/effects/tinfx2c.tga - tcGen environment - rgbGen identity - } - { - map models/powerups/armor/shard2.tga - blendFunc blend - rgbGen lightingdiffuse - } -} - -//******************************************************// -// models/powerups/health subfolder // -//******************************************************// - -models/powerups/health/blue -{ - { - map textures/effects/envmapbfg.tga - tcGen environment - - } -} - -models/powerups/health/blue_sphere -{ - { - map textures/effects/tinfx2b.tga - tcGen environment - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/green -{ - - { - map textures/effects/envmaprail.tga - tcGen environment - - } -} - -models/powerups/health/green_sphere -{ - { - map textures/effects/tinfx2b.tga - tcGen environment - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/mega1 -{ - { - map textures/effects/envmapblue2.tga - tcGen environment - tcmod rotate 33 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/mega2 -{ - - { - map textures/effects/envmapblue.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - - } - { - map textures/sfx/kenelectric.tga - tcmod scale 2 2 - tcmod rotate 333 - tcmod scroll 9 9 - blendfunc GL_ONE GL_ONE - - } -} - -models/powerups/health/red -{ - - { - map textures/effects/envmapgold.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - - } - { - map textures/sfx/kenelectric.tga - tcmod scale 2 2 - tcmod rotate 333 - tcmod scroll 9 9 - blendfunc GL_ONE GL_ONE - - } -} - -models/powerups/health/red_sphere -{ - { - map textures/effects/envmapgold2.tga - tcGen environment - tcmod rotate 33 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -models/powerups/health/yellow -{ - - { - map textures/effects/envmapyel.tga - tcGen environment - //blendfunc GL_ONE GL_ONE - - } - -} - -models/powerups/health/yellow_sphere -{ - { - map textures/effects/tinfx2b.tga - tcGen environment - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/powerups/holdable subfolder // -//******************************************************// - -models/powerups/holdable/medkit_base -{ - { - map textures/effects/envmap.tga - tcgen environment - } - -} - -models/powerups/holdable/medkit_fluid -{ - sort additive - cull back - { - map models/powerups/holdable/medkit_fluid.tga - tcMod scroll 0 2 - blendfunc GL_ONE GL_ONE - } - -} - -models/powerups/holdable/medkit_sphere -{ - { - map textures/effects/envmapdim.tga - tcgen environment - blendfunc GL_ONE GL_ONE - } - -} - -models/powerups/holdable/teleport_base -{ - { - map textures/effects/envmap.tga - tcgen environment - } - -} - -models/powerups/holdable/teleport_fluid -{ - sort additive - cull back - { - map models/powerups/holdable/teleport_fluid.tga - tcMod scroll 0 2 - blendfunc GL_ONE GL_ONE - } - -} - -models/powerups/holdable/teleport_sphere -{ - { - map textures/effects/envmapdim.tga - tcgen environment - blendfunc GL_ONE GL_ONE - } - -} - -//******************************************************// -// models/powerups/instant subfolder // -//******************************************************// - -models/powerups/instant/enviro -{ - //{ - // map models/powerups/instant/enviro.tga - //} - { - map textures/effects/envmapgold.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/flight -{ - { - map textures/effects/envmappurp.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/haste -{ - { - map textures/effects/envmapyel.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/invis -{ - { - map textures/effects/tinfx2c.tga - //map textures/sfx/specular.tga - blendfunc GL_ONE GL_ONE - tcGen environment - } -} - -models/powerups/instant/quad -{ - //{ - // map gfx/colors/darkblue.tga - //} - { - map textures/effects/envmapblue.tga - blendfunc GL_ONE GL_ZERO - tcGen environment - rgbGen identity - } -} - -models/powerups/instant/regen -{ - { - map textures/effects/envmapred.tga - tcGen environment - blendfunc GL_ONE GL_ZERO - rgbGen identity - } -} - -models/powerups/instant/scan -{ - { - map models/powerups/instant/scan.tga - } - { - map textures/effects/envmapdim.tga - blendfunc GL_ONE GL_ONE - tcGen environment - } -} - - -//**************************************************************// -// // -// MODELS/WEAPONS2 // -// // -//**************************************************************// - -//******************************************************// -// models/weapons2/bfg subfolder // -//******************************************************// - -models/weapons2/bfg/bfg -{ - { - map textures/effects/tinfx2d.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll .01 .01 - tcGen environment - rgbGen lightingDiffuse - } - { - map models/weapons2/bfg/bfg.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/bfg/bfg_e -{ - { - //map models/weapons2/bfg/bfg_e2.tga - map textures/effects/envmapbfg.tga - blendfunc GL_ONE GL_ZERO - tcMod turb 0 .5 0 .1 - tcmod scale .4 .4 - tcMod scroll .2 -.2 - rgbGen identity - } - { - //map models/weapons2/bfg/bfg_e2.tga - //map models/players/doom/phobos_fx.tga - map textures/effects/envmapbfg.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 .5 0 .1 - tcmod scale .2 .2 - tcMod scroll .3 .6 - rgbGen identity - } - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -models/weapons2/bfg/bfg_k -{ - - { - map textures/effects/envmapbfg.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 30 - tcmod scroll 1 1 - tcGen environment - rgbGen identity - } - { - map models/weapons2/bfg/bfg_k.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/bfg/f_bfg -{ - sort additive - cull disable - { - clampmap models/weapons2/bfg/f_bfg.tga - blendfunc GL_ONE GL_ONE - tcmod rotate 360 - } - { - clampmap models/weapons2/bfg/f_bfg2.tga - blendfunc GL_ONE GL_ONE - tcmod rotate -129 - //tcMod stretch sin .8 0.10 0 .7 - } - -} - -//******************************************************// -// models/weapons2/chainsaw subfolder // -//******************************************************// - -//models/weapons2/chainsaw/f_chainsaw -//{ -// sort nearest -// cull back -// { -// map models/weapons2/chainsaw/f_chainsaw.tga -// blendfunc GL_ONE GL_ONE_MINUS_SRC_COLOR -// -// } -//} - -//******************************************************// -// models/weapons2/flamethrower subfolder // -//******************************************************// - -models/weapons2/flamethrower/f_flamethrower -{ - cull disable - sort additive - { - map models/weapons2/flamethrower/f_flamethrower.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/gauntlet subfolder // -//******************************************************// - -models/weapons2/gauntlet/gauntlet2 -{ - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ZERO - tcGen environment - //rgbGen lightingDiffuse - rgbGen identity - } - { - map models/weapons2/gauntlet/gauntlet2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/gauntlet/gauntlet3 -{ - - cull disable - sort additive - { - // map models/weapons2/gauntlet/gauntlet3.tga - AnimMap 10 models/weapons2/gauntlet/gauntlet3.tga models/weapons2/gauntlet/gauntlet4.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/grapple subfolder // -//******************************************************// - -models/weapons2/grapple/f_grapple -{ - cull disable - sort additive - { - map models/weapons2/grapple/f_grapple.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/grapple/grapple -{ - { - map models/weapons2/grapple/grapple.tga - blendFunc GL_ONE GL_ZERO - rgbGen lightingDiffuse - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcmod scroll .1 .1 - tcGen environment - rgbGen lightingDiffuse - } - { - map models/weapons2/grapple/grapple.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen lightingDiffuse - } - - -} - -models/weapons2/grapple/grapple_h -{ - - cull disable - - { - map models/weapons2/grapple/grapple_h.tga - alphaFunc GE128 - depthWrite - rgbGen lightingDiffuse - } - - -} - -models/weapons2/grapple/grapple_j -{ - - cull disable - - { - map models/weapons2/grapple/grapple_j.tga - blendFunc GL_ONE GL_ZERO - tcMod turb 0 .5 0 .7 - tcMod scroll 1 -1 - tcmod scale .5 .5 - rgbGen identity - } - { - map textures/liquids/jello2.tga - blendFunc GL_ONE GL_ONE - tcmod scale .7 .7 - tcMod turb 0 .4 0 .3 - tcMod scroll .7 -.4 - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } - -} - -//******************************************************// -// models/weapons2/grenadel subfolder // -//******************************************************// - -models/weapons2/grenadel/f_grenadel -{ - sort additive - cull disable - { - map models/weapons2/grenadel/f_grenadel.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/grenadel/ring -{ - - { - map models/weapons2/grenadel/ring.tga - } - - { - map textures/effects/envmapdim.tga - tcGen environment - blendFunc GL_ONE GL_ONE - //rgbGen identity - } -} - -//******************************************************// -// models/weapons2/lightning subfolder // -//******************************************************// - -models/weapons2/lightning/ball -{ - deformVertexes autoSprite - { - map models/weapons2/lightning/ball.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - tcMod rotate 360 - } - { - map models/weapons2/lightning/ball.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - tcMod rotate -200 - } - -} - -models/weapons2/lightning/ball1 -{ - sort additive - cull disable - - { - animMap 15 models/weapons2/lightning/ball1.tga models/weapons2/lightning/ball2.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/weapons2/lightning/button -{ - { - map models/weapons2/lightning/button.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 1 1 0 1 - } - -} - -models/weapons2/lightning/crackle1 -{ - sort additive - cull disable - - { - animMap 15 models/weapons2/lightning/crackle1.tga models/weapons2/lightning/crackle2.tga models/weapons2/lightning/crackle3.tga models/weapons2/lightning/crackle4.tga models/weapons2/lightning/crackle5.tga models/weapons2/lightning/crackle6.tga models/weapons2/lightning/crackle7.tga models/weapons2/lightning/crackle8.tga - blendFunc GL_ONE GL_ONE - } - -} - -models/weapons2/lightning/f_lightning -{ - sort additive - cull disable - { - map models/weapons2/lightning/f_lightning.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/lightning/glass -{ - { - map models/weapons2/lightning/glass.tga - } - { - map textures/effects/envmapdim.tga - tcGen environment - blendfunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -models/weapons2/lightning/trail -{ - { - map models/weapons2/lightning/trail.tga - tcMod scroll 3.1 1 - rgbgen wave triangle 1 2 0 7 - blendfunc GL_ONE GL_ONE - } - { - map models/weapons2/lightning/trail.tga - tcMod scroll -1.7 1 - rgbgen wave triangle 1 1.1 0 5.1 - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/lightning/trail1 -{ - sort additive - cull disable - - { - animMap 15 models/weapons2/lightning/trail1.tga models/weapons2/lightning/trail2.tga models/weapons2/lightning/trail3.tga models/weapons2/lightning/trail4.tga - blendFunc GL_ONE GL_ONE - rgbGen vertex - } - -} - -models/weapons2/lightning/trail2 -{ - { - map models/weapons2/lightning/trail2.tga - tcMod scroll 3.1 1 - rgbgen wave triangle 1 2 0 7 - blendfunc GL_ONE GL_ONE - } - { - map models/weapons2/lightning/trail2.tga - tcMod scroll -1.7 1 - rgbgen wave triangle 1 1.1 0 5.1 - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/machinegun subfolder // -//******************************************************// - -models/weapons2/machinegun/f_machinegun -{ - sort additive - cull disable - { - map models/weapons2/machinegun/f_machinegun.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/plasma subfolder // -//******************************************************// - -models/weapons2/plasma/f_plasma -{ - cull disable - sort additive - { - map models/weapons2/plasma/f_plasma.tga - blendfunc GL_ONE GL_ONE - } -} - -models/weapons2/plasma/plasma_glass -{ - - { - map textures/effects/tinfxb.tga - tcGen environment - tcMod scroll .01 .02 - blendfunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -models/weapons2/plasma/plasma_glo -{ - - { - map models/weapons2/plasma/plasma_glo.tga - tcmod rotate 33 - tcMod scroll .7 1 - rgbGen identity - } - { - map textures/effects/tinfxb.tga - tcGen environment - tcMod scroll .01 .02 - blendfunc GL_ONE GL_ONE - rgbGen lightingDiffuse - } -} - -//******************************************************// -// models/weapons2/railgun subfolder // -//******************************************************// - -models/weapons2/railgun/f_railgun2 -{ - sort additive - cull disable - { - map models/weapons2/railgun/f_railgun2.tga - blendfunc GL_ONE GL_ONE - rgbgen entity - } -} - -models/weapons2/railgun/railgun2 -{ - sort additive - cull disable - { - map models/weapons2/railgun/railgun2.glow.tga - blendfunc GL_ONE GL_ONE - rgbGen entity // identity - } -} - -models/weapons2/railgun/railgun3 -{ - { - map models/weapons2/railgun/railgun3.tga - rgbGen lightingDiffuse - } - - { - map models/weapons2/railgun/railgun3.glow.tga - blendfunc GL_ONE GL_ONE - rgbGen entity // identity - } -} - -models/weapons2/railgun/railgun4 -{ - { - map models/weapons2/railgun/railgun4.tga - tcMod scroll 0 1 - rgbGen entity // identity - } - -} - -//******************************************************// -// models/weapons2/rocketl subfolder // -//******************************************************// - -models/weapons2/rocketl/f_rocketl -{ - cull disable - sort additive - { - map models/weapons2/rocketl/f_rocketl.tga - blendfunc GL_ONE GL_ONE - } -} - -// this one can go away eventually -models/weapons2/rocketl/rocketl14 -{ - cull disable - sort additive - { - map models/weapons2/rocketl/f_rocketl.tga - blendfunc GL_ONE GL_ONE - } -} - -//******************************************************// -// models/weapons2/shotgun subfolder // -//******************************************************// - -models/weapons2/shotgun/f_shotgun -{ - sort additive - cull disable - { - map models/weapons2/shotgun/f_shotgun.tga - blendfunc add - } -} - -models/weapons2/shotgun/shotgun_laser -{ - - { - map models/weapons2/shotgun/shotgun_laser.tga - blendfunc add - } -} - - -//**************************************************************// -// // -// MODELS/WEAPHITS // -// // -//**************************************************************// - -models/weaphits/bfg01 -{ - deformVertexes autoSprite - cull none - - { - clampmap models/weaphits/bfg01.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 333 - rgbGen identity - } - { - clampmap models/weaphits/bfg01.tga - blendFunc GL_ONE GL_ONE - tcMod rotate -100 - rgbGen identity - } - -} - -models/weaphits/bfg02 -{ - cull none - nomipmaps - { - map models/weaphits/bfg03.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 2 0 - rgbGen identity - } - { - map models/weaphits/bfg02.tga - blendFunc GL_ONE GL_ONE - tcmod scroll 3 0 - tcMod turb 0 .25 0 1.6 - rgbGen identity - } -} - -models/weaphits/electric -{ - cull none - - { - clampmap models/weaphits/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 9 - tcMod rotate 360 - } - { - clampmap models/weaphits/electric.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 9.5 - tcMod rotate -202 - } - -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/museum.shader b/install/installs/Q3Pack/install/baseq3/scripts/museum.shader deleted file mode 100644 index 0d65b927..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/museum.shader +++ /dev/null @@ -1,27 +0,0 @@ - -////////////////////////////// -// Rainy Concrete floor // -////////////////////////////// - -textures/base_floor/concfloor_rain -{ - tessSize 32 - deformVertexes normal 1 15 - { - map textures/base_floor/concfloor_rain.tga - rgbGen identity - } - { - map textures/liquids/pj_e3_reflection2b.tga - tcgen environment - rgbgen wave sin .3 0 0 0 - tcmod scale 2 2 - tcMod scroll .5 .5 - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/scripts/organics.shader b/install/installs/Q3Pack/install/baseq3/scripts/organics.shader deleted file mode 100644 index c4b23cf2..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/organics.shader +++ /dev/null @@ -1,32 +0,0 @@ - -textures/organics/dirt_trans -{ - qer_editorimage textures/organics/dirt.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/organics/dirt.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/organics/wire02a_f -{ - q3map_surfacelight 200 - { - map $lightmap - rgbGen identity - } - { - map textures/organics/wire02a_f.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/sfx.shader b/install/installs/Q3Pack/install/baseq3/scripts/sfx.shader deleted file mode 100644 index 5edf9796..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/sfx.shader +++ /dev/null @@ -1,3253 +0,0 @@ -textures/sfx/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - - { - map textures/sfx/beam.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_blue - { - qer_editorimage textures/sfx/beam_blue4.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .6 - cull none - { - map textures/sfx/beam_blue4.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_dusty2 -{ - qer_editorimage textures/sfx/beam_1.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - { - map textures/sfx/beam_1.tga - blendFunc add - } -} - -textures/sfx/beam_red -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - cull none - { - map textures/sfx/beam_red.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_waterlight2 -{ - qer_editorimage textures/sfx/beam_waterlight.tga - q3map_globaltexture - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 50 - qer_trans 0.6 - cull none - { - map textures/sfx/beam_waterlight.tga - tcMod turb 0 0.015 0.5 0.07 - tcMod Scroll .15 0 - blendFunc add - } - -} - -textures/sfx/blackness -{ - surfaceparm nolightmap - surfaceparm noimpact - surfaceparm nomarks - { - map textures/sfx/blackness.tga - } -} - -textures/sfx/blocks17final_pent -{ - qer_editorimage textures/sfx/blocks17final_pent.tga - { - map textures/sfx/blocks17final_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/blocks17g_jumpad -{ - surfaceparm nodamage - q3map_surfacelight 400 - - - { - map textures/sfx/blocks17g_jumpad.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/blocks18ccomputer -{ - - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/blocks18ccomputer.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/border11c -{ - q3map_surfacelight 300 - q3map_lightimage textures/base_trim/border11c_pulse1.tga - qer_editorimage textures/base_trim/border11c.tga - - { - map textures/base_trim/border11c.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/base_trim/border11c_light.tga - blendfunc gl_one gl_one - rgbgen wave sin 1 .1 0 5 - } - - - { - map textures/base_trim/border11c_pulse1b.tga - blendfunc gl_one gl_one - tcmod scale .035 1 - tcmod scroll -0.65 0 - - - } - - -} - -textures/sfx/bounce_concrete -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_concrete.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_dirt -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_dirt.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3 -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_metalbridge04 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_metalbridge04.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_xq1metalbig -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_xq1metalbig.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_block17 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 1000 - - - { - map textures/sfx/bouncepad01_block17.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_metalbridge06b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_metalbridge06b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_xarch -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_xarch.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01block18b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad1q1metal7_99 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad1q1metal7_99.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bugmirror -{ - qer_editorimage textures/sfx/mirrorkc.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirrorkc.tga - blendFunc add - depthfunc equal - } -} - -textures/sfx/bullseye -{ - cull disable - surfaceparm nomarks - surfaceparm nolightmap - deformVertexes autosprite - - { - clampmap textures/sfx/bullseye.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 200 - blendFunc add - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .3 - tcmod rotate 70 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 50 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .1 - tcmod rotate 30 - alphaFunc GE128 - rgbGen identity - } - -} - -textures/sfx/clangdark_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/clangdark_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/computer_blocks17 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computer_blocks17.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/computerblocks15 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerblocks15.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } -} - -textures/sfx/computerpurptileb -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerpurptileb.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/console01 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - qer_trans .5 - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console01.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -200 - blendFunc GL_ONE GL_ONE - } - -} - -textures/sfx/console03 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console03.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -400 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console03.tga - - tcMod rotate 40 - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/constfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( .8 .8 .8 ) 100 -} - -textures/sfx/demonltblackfinal -{ - q3map_lightimage textures/sfx/demonltblackfinal_glow2.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal_glow2.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/diamond2cjumppad -{ - qer_editorimage textures/sfx/bouncepad01_diamond2cTGA.tga - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 500 - - - { - map textures/sfx/bouncepad01_diamond2cTGA.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/dust_puppy2 -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/dust_puppy2.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan -{ - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - { - clampmap textures/sfx/fan.tga - tcMod rotate 256 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan3 -{ - cull disable - surfaceparm alphashadow - sort 6 - { - map textures/sfx/fan3.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/sfx/fan3bladeb -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - sort 5 - { - clampmap textures/sfx/fan3bladeb.tga - blendFunc blend - tcmod rotate 999 - rgbGen identity - } - -} - -textures/sfx/fan_grate -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm metalsteps - cull none - nopicmip - { - map textures/sfx/fan_grate.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fanfx -{ - qer_editorimage textures/sfx/fanfx.tga - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - - { - clampmap textures/sfx/fanfx.tga - tcMod rotate 256 - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - depthWrite - } -} - -textures/sfx/fishy -{ - tesssize 32 - deformVertexes wave 10 sin 0 3 0 .5 - cull disable - surfaceparm nolightmap - surfaceparm nomarks - - { - clampmap textures/sfx/fishy.tga - alphaFunc GE128 - tcMod stretch sin .8 0.10 0 .07 - depthWrite - - } - - -} - -textures/sfx/flame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 7500 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1_hell -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 600 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1dark -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 2000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1km -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 4000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1side -{ - qer_editorimage textures/sfx/flame1side.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame2.tga - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_nolight -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_pj -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_dimmer -{ - qer_editorimage textures/sfx/flame1.tga - q3map_lightimage textures/sfx/flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1500 - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_green_pj -{ - qer_editorimage textures/sfx/g_flame1.tga - q3map_lightimage textures/sfx/g_flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/g_flame1.tga textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga textures/sfx/g_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/g_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/flameanim_red -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_nolight -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_pj -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/fog_intel -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .75 .38 0 ) 800 -} - -textures/sfx/fog_mkcdm4 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .5 0 0 ) 96 -} - -textures/sfx/fog_pjdm1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .733 .737 .620 ) 300 - -} - -textures/sfx/fog_q3dm10 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( 0.75 0.38 0 ) 128 -} - -textures/sfx/fog_timctf1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .729 .729 .780 ) 464 - -} - -textures/sfx/fog_timdm1 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 616 -} - -textures/sfx/fog_timdm2 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 356 -} - -textures/sfx/fog_timdm8 -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .211 .231 .094 ) 250 -} - -textures/sfx/healthfloor -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - clampmap textures/sfx/healthfloor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/hellfog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 300 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 200 - fogparms ( .5 .12 .1 ) 300 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - } -} - -textures/sfx/hellfog_mini_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 16 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_pj_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 392 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_tim_dm14 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .55 .11 .1 ) 128 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - - -} - -textures/sfx/hellfogdense -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 128 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/jacobs_x -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/jacobs_x.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - //tcMod rotate 103 - } -} - -textures/sfx/kc_hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 300 - q3map_lightsubdivide 32 - fogparms ( .5 .12 .1 ) 225 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/kenelectric -{ - { - map textures/sfx/kenelectric.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 7 7 - tcMod scroll 5 -5 - tcmod rotate 360 - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/largerblock3b3_pent -{ - qer_editorimage textures/sfx/largerblock3b3_pent.tga - { - map textures/sfx/largerblock3b3_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/largerblock3b3x128_pent -{ - q3map_lightimage textures/sfx/pentagramfloor_blue3glowtest.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/largerblock3b3x128_pent.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/pentagramfloor_blue3glowtest.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/largerblock3b3x128_pentred -{ - qer_editorimage textures/sfx/largerblock3b3x128_pent.tga - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/largerblock3b3x128_pent.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/sfx/launchpad_blocks17 -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks17.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_blocks18d -{ - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks18d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_diamond -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_diamond.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_metalbridge04d -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_metalbridge04d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/lavabeam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map textures/sfx/lavabeam.tga - tcMod Scroll 999 0 - blendFunc add - } - -} - -textures/sfx/lightmap -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm nodrop - surfaceparm fog - fogparms ( .7 .1 .1 ) 64 - - - - { - map $lightmap - blendFunc GL_dst_color GL_one - tcmod scale 1 .01 - tcMod scroll 1 -2 - } - - -} - -textures/sfx/metalbridge06_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metalbridge06_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/metaltech12final_bounce -{ - - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metaltech12final_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/mkc_bigflame -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - qer_editorimage textures/sfx/flame1.tga - q3map_surfacelight 500 - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/mkc_fog_ctfblue -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.2 0.2 0.25 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfblue2 -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.1 0.1 0.3 ) 320 - - q3map_surfacelight 40 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfred -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_tdm3 -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/omm -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/omm.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/pentagramfloor_red3test -{ - { - map textures/sfx/pentagramfloor_red3test.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red3glowtest.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pentfloor_diamond2c -{ - qer_editorimage textures/sfx/pentfloor_diamond2c.tga - { - map textures/sfx/pentfloor_diamond2c.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pj_a1_fog1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 30 - fogparms ( .5 .5 .5 ) 512 -} - -textures/sfx/portal2_sfx -{ - qer_editorimage textures/sfx/portalfog.tga - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphagen portal 128 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx -{ - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphagen portal 256 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx_ring -{ - deformVertexes wave 100 sin 0 2 0 .5 - cull none - - { - map textures/sfx/portal_sfx_ring_blue1.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - - { - map textures/sfx/portal_sfx_ring_electric.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 .2 .5 - tcmod scroll 0 .5 - - } - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx_ring.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - -} - -textures/sfx/proto_hellfog -{ -qer_editorimage textures/sfx/fog_red.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap - -fogparms ( .275 .012 0 ) 500 -} - -textures/sfx/proto_zzztblu3 -{ - surfaceparm nolightmap - surfaceparm nonsolid - cull twosided - { - map textures/sfx/proto_zzztblu3.tga - tcGen environment - tcMod turb 0 0.25 0 0.5 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/sfx/pureblack -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map textures/skies/blacksky.tga - } -} - -textures/sfx/q3dm14fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3dm9fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3tourney3fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 384 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/rain -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - deformVertexes move 3 1 0 sin 0 5 0 0.2 - deformVertexes move .6 3.3 0 sin 0 5 0 0.4 - deformVertexes wave 30 sin 0 10 0 .2 - cull none - - { - map textures/sfx/rain.tga - tcMod Scroll .5 -8 - tcMod turb .1 .25 0 -.1 - blendFunc GL_ONE GL_ONE - } - { - map textures/sfx/rain.tga - tcMod Scroll .01 -6.3 - - blendFunc GL_ONE GL_ONE - } - - -} - -textures/sfx/smallerblock3b3dim_pent -{ - qer_editorimage textures/sfx/smallerblock3b3dim_pent.tga - { - map textures/sfx/smallerblock3b3dim_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/spawn_floor -{ - - { - map textures/sfx/firegorre2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/spawn_floord2c -{ - - { - map textures/sfx/proto_zzztblu.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floord2c.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/teslacoil -{ - cull none - q3map_lightimage textures/sfx/tesla1.tga - qer_editorimage textures/sfx/tesla1.tga - q3map_surfacelight 100 - - { - map $lightmap - tcgen environment - blendfunc filter - } - - { - map textures/sfx/tesla1.tga - blendfunc add - rgbgen wave sawtooth 0 1 0 5 - tcmod scale 1 .5 - tcmod turb 0 .1 0 1 - tcMod scroll -1 -1 - } - - - - { - map textures/sfx/electricslime.tga - blendfunc add - rgbgen wave sin 0 .5 0 1 - tcmod scale .5 .5 - tcmod turb 0 .1 0 1 - tcmod rotate 180 - tcmod scroll -1 -1 - } - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - -} - -textures/sfx/teslacoil3 -{ - cull none - q3map_lightimage textures/sfx/tesla1b.tga - q3map_surfacelight 100 - qer_editorimage textures/sfx/cabletest2.tga - surfaceparm nolightmap - - - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - - { - map textures/sfx/electricslime2.tga - blendfunc add - rgbGen wave square .25 .25 0 2.5 - tcmod scale 1 1 - tcMod scroll 1 1 - } - - - - { - map textures/sfx/tesla1b.tga - blendfunc add - rgbgen wave square 0 1 0 3 - tcmod scale 1 1 - tcMod scroll -2 1 - } - -} - -textures/sfx/testconstantfog -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( 0 1 0 ) 300 -} - -textures/sfx/x_conduit -{ - q3map_lightimage textures/sfx/x_conduit.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/x_conduit.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { animMap 10 textures/sfx/x_conduit2.tga textures/sfx/x_conduit3.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - map textures/sfx/x_conduit2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbGen wave sin .5 0.5 0 7 - } - { - map textures/sfx/x_conduit3.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbgen wave triangle .2 1 0 9 - } -} - -textures/sfx/xblackfog -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -fogparms ( 0 0 0 ) 128 - -} - -textures/sfx/xbluefog -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - q3map_lightimage textures/sfx/xbluelightimage.tga - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xbluefogx128 -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 128 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xdensegreyfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - - fogparms ( 0.7 0.7 0.7 ) 1700 -} - -textures/sfx/xfinalfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 3000 - -} - -textures/sfx/xfinalfoginvert -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0 0 0 ) 256 - -} - -textures/sfx/xflame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 7500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame1side -{ - surfaceparm trans - surfaceparm nomarks - qer_editorimage textures/sfx/flame1.tga - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_1800 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_2250 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2250 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflamebright -{ - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 3000 - qer_editorimage textures/sfx/flame1.tga - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/xian_dm3padwall - { - q3map_surfacelight 100 - q3map_lightimage textures/sfx/xian_dm3padwallglow.tga - qer_editorimage textures/sfx/xian_dm3padwall.tga - - { - map textures/sfx/xian_dm3padwall.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx/xian_dm3padwallglow.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx/xlightgreyfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 1400 - -} - -textures/sfx/xmetalfloor_wall_14b -{ - qer_editorimage textures/sfx/metalfloor_wall_14b.tga - q3map_lightimage textures/sfx/metalfloor_wall_14bglow2.tga - q3map_surfacelight 50 - { - map textures/sfx/metalfloor_wall_14b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_14bglow2.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xmetalfloor_wall_5b -{ - qer_editorimage textures/sfx/metalfloor_wall_5b.tga - - { - map textures/sfx/metalfloor_wall_7b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_5bglowblu.tga - blendfunc gl_one gl_one - rgbgen wave sin .5 .2 0 .1 - } -} - -textures/sfx/xmetalfloor_wall_9b -{ - qer_editorimage textures/sfx/metalfloor_wall_9b.tga - - { - map textures/sfx/metalfloor_wall_9b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_9bglow.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xq1metalbig_jumppad -{ - qer_editorimage textures/gothic_floor/q1metal7_98d_256x256.tga - surfaceparm nodamage - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/q1metal7_98d_256x256.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - clampmap textures/sfx/surface6jumppad.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.75 0.25 0 .2 - tcMod stretch sin 0.80 0.20 0 1 - } -} - -textures/sfx/xredfog -{ - q3map_lightimage textures/sfx/xredlightimage.tga - qer_editorimage textures/sfx/fog_red.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.9 0.3 0.3 ) 128 - -} - -textures/sfx/zap_scroll -{ - q3map_surfacelight 300 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} - -textures/sfx/zap_scroll1000 -{ - q3map_surfacelight 1000 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_lightimage textures/sfx/zap_scroll.tga - qer_editorimage textures/sfx/zap_scroll2.tga - cull none - - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/skies.shader b/install/installs/Q3Pack/install/baseq3/scripts/skies.shader deleted file mode 100644 index 27c27979..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/skies.shader +++ /dev/null @@ -1,1073 +0,0 @@ -textures/skies/blacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 25 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 90 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/hellsky -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 4 3 3 65 290 75 - q3map_surfacelight 50 - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.05 0 - tcMod scale 2 2 - depthWrite - } -} - -textures/skies/hellsky2 -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .9 .9 1 70 65 78 - q3map_surfacelight 60 - skyparms - 512 - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.02 0 - tcMod scale 1 1 - depthWrite - } - { - map textures/skies/dimclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.02 0.01 - tcMod scale 3 3 - } - -} - -textures/skies/hellsky2bright -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 1 1 100 220 50 - q3map_surfacelight 120 - - qer_editorimage textures/skies/inteldimredclouds.tga - - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/kc_dm10sky -{ - q3map_lightimage textures/skies/pjbasesky.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - - -} - -textures/skies/kcbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 500 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/killsky -{ - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 3 2 2 70 315 65 - q3map_surfacelight 75 - skyparms - 512 - - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/mkc_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 0.266383 0.274632 0.358662 150 60 80 - q3map_surfacelight 700 - - skyparms half 256 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/nightsky_xian_dm1 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 300 - q3map_sun 1 1 1 100 -41 58 - - qer_editorimage textures/skies/xnight2_up.tga - - - skyparms env/xnight2 - - -} - -textures/skies/nightsky_xian_dm15 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm nolightmap - surfaceparm noimpact - - q3map_surfacelight 900 - q3map_sun 1 1 1 100 -58 58 - skyparms env/xnight2 - - - - -} - -textures/skies/nightsky_xian_dm4 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 1 80 -41 58 - q3map_surfacelight 50 - skyparms env/xnight2 - - -} - -textures/skies/pj_arena2sky -{ - qer_editorimage textures/skies/pjbasesky.tga - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 55 - q3map_surfacelight 100 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_arena4_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 200 165 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf1sky -{ - qer_editorimage textures/skies/pjbasesky - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 75 - q3map_surfacelight 150 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf2_sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 250 90 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/bluedimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/topclouds.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_dm10sky -{ - q3map_lightimage textures/common/white.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - -} - -textures/skies/pj_dm9sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - - q3map_sun .5 .6 .8 140 165 60 - q3map_surfacelight 80 - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/pjbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 100 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/q3dm0 - -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 60 80 75 - q3map_surfacelight 80 - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/skybox -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/space1_bk.tga - q3map_sun 1 1 1 100 -58 58 - q3map_surfacelight 400 - - skyparms env/space1 - - - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/stars_arena7 -{ - qer_editorimage textures/skies/black_up.tga - - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 10 - q3map_sun .6 .6 .6 30 35 78 - - skyparms env/black - - -} - -textures/skies/tim_dm14 -{ - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun 3 2 2 90 314 60 - q3map_surfacelight 80 - skyparms - 512 - - - //cloudparms 512 full - //lightning - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm14red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun .5 .37 .19 70 314 60 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm3_red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 70 30 70 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_hell -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 1 .77 .77 80 315 70 - q3map_surfacelight 130 - skyparms - 384 - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_km2 -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 90 315 40 - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/toxicsky -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskydim -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 100 - q3map_sun 1 1 0.5 80 30 70 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_blue -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 70 60 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_ctf1 -//used in tim_ctf1 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 70 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm2 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 100 190 75 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm3 - -{ - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_dm4 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 120 75 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm5 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 .78 .48 90 225 55 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm7 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 260 50 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm8 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 85 220 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .980 .835 .3 100 25 65 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xblacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 300 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 45 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/xblacksky_dm7 -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map gfx/colors/black.tga - } -} - -textures/skies/xtoxicsky_ctf -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm14 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 800 - q3map_sun 1 1 0.85 100 90 90 - - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm3 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_q3ctf3 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xtoxicsky_tourney -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 495 - q3map_sun 1 1 0.5 150 75 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicskytim_q3dm5 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 400 - q3map_sun .5 .6 .8 150 30 60 - - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/skin.shader b/install/installs/Q3Pack/install/baseq3/scripts/skin.shader deleted file mode 100644 index f7e248d1..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/skin.shader +++ /dev/null @@ -1,161 +0,0 @@ - -textures/skin/chapthroat2 -{ - qer_editorimage textures/skin/chapthroat2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/chapthroat2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/chapthroatooz -{ - - surfaceparm nonsolid - { - map textures/liquids/proto_gruel3.tga - tcMod scroll 0 .2 - tcMod scale 2 2 - rgbGen vertex - } - { - map textures/skin/chapthroatooz.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/skin/nibbles -{ - deformVertexes wave 10 sin 4 3 0 0.3 - { - rgbGen identity - map $lightmap - } - { - map textures/skin/nibbles.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/skin/skin1_trans -{ - qer_editorimage textures/skin/skin1.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/skin1.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/skin5_trans -{ - qer_editorimage textures/skin/skin5.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/skin5.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/skin6_trans -{ - qer_editorimage textures/skin/skin6.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/skin6.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/skin6move -{ - tessSize 128 - deformVertexes wave 100 sin 4 3 0 0.3 - { - map $lightmap - rgbGen identity - } - { - map textures/skin/skin6move.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/skin/surface8_trans -{ - qer_editorimage textures/skin/surface8.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/surface8.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/skin/tongue_trans -{ - qer_editorimage textures/skin/tongue.tga - surfaceparm nomarks - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/skin/tongue.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/terrademoQ3.shader b/install/installs/Q3Pack/install/baseq3/scripts/terrademoQ3.shader deleted file mode 100644 index 0e185b00..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/terrademoQ3.shader +++ /dev/null @@ -1,623 +0,0 @@ -// if you are using the tree models in any of your maps, make sure you redistribute those shaders - -models/mapobjects/tree/branch -{ - cull disable - deformVertexes wave 100 sin 0 .1 0 .2 - surfaceparm trans - { - map models/mapobjects/tree/branch.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -models/mapobjects/tree2/branch2 -{ - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - cull none - sort 10 - { - clampmap models/mapobjects/tree2/branch2.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } -} - -// following shaders are for terrain maps - -textures/common/terrain -{ - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/terrain2 -{ - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -// ************************************************* -// * -// * Vertex Lighting Replacement Shaders -// * -// ************************************************* - -textures/terrain/vxmpterra2 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock10b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -textures/terrain/vxmpterra1 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock12c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -// ********************************************************* - -// ************************************************* -// * -// * MPTerra2 terrain shaders (PaulJ) -// * -// ************************************************* - - -textures/terrain/mpterra2_0 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock9b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock12b_2.tga - rgbGen vertex - tcmod scale 0.1 0.1 - - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - -} - -textures/terrain/mpterra2_0to1 - -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - - { - map textures/stone/pjrock12b_2.tga - tcmod scale 0.1 0.1 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -textures/terrain/mpterra2_0to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.05 0.05 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock12b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.1 0.1 - } - - { - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -////////////////////////////////////////////// -// // -// x_mpterra // -// // -////////////////////////////////////////////// - -textures/terrain/vxmpterra3 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -textures/proto2/xproto_0to1 - -{ - surfaceparm nolightmap - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - - } - - { - map textures/proto2/px02.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_1to2 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - alphaGen vertex - } - - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_0to2 - -{ - surfaceparm nolightmap - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - - - -textures/proto2/xproto_0 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } -} - -textures/proto2/xproto_1 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } -} - -textures/proto2/xproto_2 - -{ - surfaceparm nolightmap - surfaceparm dust - { - map textures/proto2/px03.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -// ************************************************* -// * -// * MPTerra1 terrain shaders (Tim) -// * -// ************************************************* - -textures/terrain/mpterra1_0 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to1 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock12c.tga - tcmod scale 0.125 0.125 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1to2 -{ - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } -} - -// ********************************************************* -// MP Terra 3 Textures (Xian) -// ********************************************************* - -textures/proto2/x_sandy01 -{ - qer_editorimage textures/proto2/xsandy01.tga - surfaceparm nolightmap - { - map textures/proto2/xsandy01.tga - tcmod scale .8 .8 - rgbGen vertex - } -} - -textures/proto2/x_rocky01 -{ - qer_editorimage textures/proto2/xrocky01.tga - surfaceparm nolightmap - { - map textures/proto2/xrocky01.tga - tcmod scale .8 .8 - rgbGen vertex - } -} - - -textures/proto2/tproto_0to1 -{ - surfaceparm nolightmap - { - map textures/proto2/xsandy01.tga - tcmod scale .3 .3 - rgbGen vertex - alphaGen vertex - } - { - map textures/proto2/xrocky01.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } -} - - -textures/proto2/tproto_0 -{ - surfaceparm nolightmap - { - map textures/proto2/xsandy01.tga - tcmod scale .2 .2 - rgbGen vertex - } -} - -textures/proto2/tproto_1 -{ - surfaceparm nolightmap - { - map textures/proto2/xrocky01.tga - tcmod scale .1 .1 - rgbGen vertex - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/baseq3/scripts/test.shader b/install/installs/Q3Pack/install/baseq3/scripts/test.shader deleted file mode 100644 index 8b40d0bc..00000000 --- a/install/installs/Q3Pack/install/baseq3/scripts/test.shader +++ /dev/null @@ -1,943 +0,0 @@ -//**********************************************************************// -// test.shader sorted and updated on Phase 2 // -// by Eutectic - 12 May 2000 // -// This file is irrelevant for Q3Radiant and the shaders // -// in this file must NOT be used to make new maps. // -// It was updated for the sake of completeness: // -// some shaders that belonged in other files were moved to those // -// shader files // -// // -// SHADERS THAT DIDN'T BELONG HERE AND MOVED TO PROPER FILE: 8 // -// textures/base/bluemet1 // -// textures/common/transwater // -// textures/gothic_trim/hellodolly // -// textures/sfx/kenelectric // -// textures/sfx/mkc_fog_dm1 // -// textures/sfx/mkc_fog_dm1a // -// textures/sfx/mkc_fog_dm4 // -// textures/skies/mkc_sky // -// SHADERS THAT BELONGED HERE BUT WERE IN ANOTHER FILE: 0 // -//**********************************************************************// - -// ************************************************* -// * TEST SHADERS * -// * DO NOT USE IN PROJECT MAPS * -// ************************************************* - -textures/bwhtest/crackedearth -{ - { - map textures/bwhtest/crackedearth.tga - } -} - -// Rogues sorting trimmed glass// - -textures/bwhtest/lightning -{ - cull disable - { - map textures/bwhtest/lightning.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.1 0 1 - } -} - -textures/dont_use/flameshader -{ -// ************************************************* -// * test flames * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - cull none - fogparms .3 .1 .1 0 32 - tesssize 16 - deformVertexes wave 100 sin 2.5 5 10 .1 - -// END -} - -textures/dont_use/foggentest_shader -{ -// ************************************************* -// * Kevin's fogggen test * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms .2 .1 .3 0 0 - foggen sin .1 .1 .1 .1 - - cull backsided - - - -// END -} - -textures/dont_use/foglightshader -{ -// ************************************************* -// * Kevin's simplified fog * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - cull backsided - { - map textures/dont_use/fogkc.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 1 1 - tcMod scale .25 .25 - tcMod turb .1 .1 .1 .1 - } - - -// END -} - -textures/dont_use/metal2_2kc -{ - - surfaceparm nolightmap - cull none - { - map textures/dont_use/metal2_2kc.tga - alphaMap $fromBlack - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/dont_use/nightsky_kc -{ - -// ************************************************* -// * Kevin's strange test sky * -// ************************************************* - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 200 - - cloudparms 256 half - - - { - map textures/dont_use/strangesky3_kc.tga - tcMod scroll .03 .03 - } - - - { - map textures/dont_use/strangesky.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scroll .05 .05 - } - - - { - map textures/dont_use/strangesky2_kc.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - tcMod scroll 0.01 0.01 - tcMod scale .5 .5 - } - -//END -} - -textures/dont_use/nightsky_kcold -{ - -// ************************************************* -// * Kevin's four layer storm sky * -// ************************************************* - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 200 - - cloudparms 256 full - lightning - - { - map textures/dont_use/tileclouds3_kc.tga - tcMod scroll 0.01 0.01 - tcMod scale 2 2 - } - - - { - map textures/dont_use/tileclouds4_kc.tga - blendFunc GL_ONE GL_ONE - tcMod scroll .04 .05 - } - - - { - map textures/dont_use/lightningsky8_kc.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod scroll .1 .1 - tcMod scale 4 4 - } - - { - map textures/dont_use/tileclouds3b_kc.tga - blendFunc GL_DST_COLOR GL_ONE - tcMod scroll 0.01 .02 - } - -//END -} - -textures/dont_use/openwindow -{ - - surfaceparm nolightmap - cull none - - { - map textures/dont_use/openwindow.tga - alphaMap openwindow.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/dont_use/rustysupport -{ - - surfaceparm nolightmap - cull none - { - map textures/dont_use/rustysupport.tga - alphaMap $fromBlack - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/dont_use/shader2 -{ -// ************************************************* -// * test shader2 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - { - map textures/dont_use/shader2.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .01 0 .1 - tcMod scroll 0 0 - } -// END -} - -textures/dont_use/shader3 -{ -// ************************************************* -// * test shader3 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - - tesssize 64 - deformVertexes wave 100 sin 2 2 10 .01 - - { - map textures/dont_use/blood2.tga - tcMod turb .1 .1 0 0.02 - tcMod scroll .1 .1 - } - - -// END -} - -textures/dont_use/shader4 -{ -// ************************************************* -// * test shader4 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - q3map_surfacelight 100 - - { - map textures/dont_use/slimetest7c.tga - blendfunc GL_ONE_MINUS_DST_COLOR GL_ZERO - tcMod turb .01 .2 10 0.01 - tcMod scroll .2 .1 - } - { - map textures/dont_use/bubbleslimeelectricc.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .5 .5 10 0.01 - tcMod scroll .2 .2 - tcMod scale .1 .1 - } - - - - -// END -} - -textures/dont_use/shader5 -{ -// ************************************************* -// * test shader5 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - tesssize 64 - - { - map textures/dont_use/firetestb.tga - blendfunc gl_one gl_one - tcMod scroll 5 15 - tcMod scale .25 .25 - tcMod turb .2 .2 .1 1 - } - - { - map textures/dont_use/firetest.tga - blendFunc GL_dst_color gl_src_alpha - tcMod scroll 0 10 - tcMod scale .1 .1 - tcMod turb .2 .1 .1 1 - rgbGen wave SIN .5 .5 1 .1 - } - - { - map textures/dont_use/firetest2.tga - blendFunc GL_dst_color gl_one - tcMod scroll 10 50 - tcMod turb .1 .1 .5 .5 - rgbGen wave SIN .5 .5 1 .1 - } - - -// END -} - -textures/dont_use/shader5old -{ -// ************************************************* -// * test shader5 for test use * -// ************************************************* - surfaceparm trans - surfaceparm nonsolid - surfaceparm nolightmap - tesssize 64 - - - { - map textures/dont_use/firetestb.tga - blendfunc gl_one gl_one - tcMod scroll 5 15 - tcMod scale .25 .25 - tcMod turb .2 .2 .1 1 - } - - { - map textures/dont_use/firetest.tga - blendFunc GL_dst_color gl_src_alpha - tcMod scroll 0 10 - tcMod scale .1 .1 - tcMod turb .2 .1 .1 1 - } - - { - map textures/dont_use/firetest2.tga - blendFunc GL_dst_color gl_one - tcMod scroll 10 50 - tcMod turb .1 .1 .5 .5 - } - -// END -} - -textures/dont_use/sign_test_glow -{ - surfaceparm trans - surfaceparm nolightmap - q3map_surfacelight 100 - - { - map textures/dont_use/sign_test.tga - alphaMap $fromBlack - blendFunc GL_ONE GL_ONE - } - - { - map textures/dont_use/sign_test_glow.tga - alphaMap $fromBlack - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 1 .1 - } - -// END -} - -textures/dont_use/sky_test -{ - surfaceparm sky - surfaceparm noimpact - q3map_surfacelight 100 - surfaceparm nolightmap - sky textures/dont_use/sky_test -} - -textures/dont_use/train1kc_shader -{ -// ************************************************* -// * test shader wall * -// ************************************************* - - - { - map $lightmap - rgbGen identity - } - - { - map textures/common/pjrock5b.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - rgbGen identity - detail - tcmod scale 9.1 9.2 - } - - { - map textures/common/pjrock5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -// END -} - -textures/dont_use/web -{ - - surfaceparm nolightmap - cull twosided - { - map textures/dont_use/web.tga - alphaMap $fromBlack - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - depthWrite - } -} - -textures/test/blocks10pent -{ - - // ************************************************* - // * TEST BORDER WALL * - // * Feb 24 1999 * - // * Please Comment Changes * - // ************************************************* - - q3map_surfacelight 1000 - surfaceparm nodamage - qer_lightimage textures/test/jumpadsmall.tga - - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/test/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin .6 .4 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - - // END -} - -textures/test/electricity3 -{ - // ************************************************* - // * Ripply Water Feb 16 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - qer_trans .5 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 triangle 2 2 1 0.1 - - - - { - map textures/test/fub.tga - blendFunc GL_ZERO GL_ONE - alphafunc GT0 - tcMod scale .1 .01 - tcmod turb 0 .01 .3 .1 - alphaGen wave sin .5 .5 0 .01 - tcMod scroll .1 .1 - depthWrite - } - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - - - { - map textures/test/electricity9.tga - blendfunc GL_DST_COLOR GL_ONE - tcmod turb 0 .01 .3 10 - tcMod scale .5 .5 - tcMod rotate 1 - depthfunc equal - tcMod scroll -.01 -.05 - } - - { - map textures/test/electricity9.tga - blendfunc GL_DST_COLOR GL_ONE - tcmod turb 0 .01 .3 10 - tcMod scale .5 .5 - tcMod rotate 1 - depthfunc equal - tcMod scroll -.01 -.05 - } - - // END -} - -textures/test/densewaterfog -{ - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - backsided - fogparms 0.7 0.7 0.7 128 64 -} - -textures/test/fire2 -{ - - { - map textures/test/fire2.tga - } - { - map textures/test/fire3.tga - tcMod turb 0 .1 0 .7 - tcMod scroll 0 10 - rgbGen wave sin 1 2 0 1 - } - { - map textures/test/fire3.blend.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0 10 - } -} - -textures/test/fogtestshader -{ -// ************************************************* -// * Kevin's simplified fog * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - cull disable - fogparms .2 .225 .25 0 0 - tesssize 64 - - { - map textures/test/cloud2.tga - blendFunc GL_DST_COLOR GL_ONE - tcGen environment - tcMod turb .5 .5 .5 0.03 - tcMod scroll .25 .25 - tcMod scale .5 .5 - } - -// END -} - -textures/test/lavacrustshader -{ -// ************************************************* -// * Kevin's brown lava crust * -// ************************************************* - - surfaceparm trans - //surfaceparm nonsolid - //surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - -// light 1 - q3map_surfacelight 100 - - tesssize 64 - deformVertexes wave 100 sin 1 1 0 .03 - cull disable - - { - map textures/test/lavatest.tga - tcMod turb .25 0.1 1 0.02 - tcMod scroll .2 .2 - } - { - map textures/test/lavacrust.tga - blendfunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .5 .5 5 0.01 - tcMod scroll .1 .1 - tcMod scale .1 .1 - rgbGen wave triangle 1 1 2 1 - } - { - map textures/test/lavacrust.tga - blendfunc GL_ONE GL_SRC_ALPHA - tcMod turb .2 .01 5 .01 - tcMod scroll -.01 -.01 - } - - -// END -} - -textures/test/lavatest -{ -// ************************************************* -// * Kevin's simplified version of lava * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - -// light 1 - q3map_surfacelight 100 - - tesssize 128 - cull disable - deformVertexes wave 100 sin 5 5 .5 0.02 - - { - map textures/test/lavatest.tga - tcMod turb .25 0.2 1 0.02 - tcMod scroll .25 .25 - } - -// END -} - -textures/test/river -{ -// ************************************************* -// * Kevin's test river shader * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .05 - - { - map textures/test/watertest8c.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR - tcMod turb .01 .01 0 0.1 - tcMod scroll -5 0 - tcMod scale .5 .5 - } - { - map textures/test/watertest10f.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod turb .01 .01 0 0.1 - rgbGen wave sin .8 .01 1 1 - tcMod scroll -6 0 - tcMod scale .5 .5 - } - { - map textures/test/watertest8e.tga - blendFunc GL_DST_COLOR GL_ONE - tcMod turb .01 .01 .1 .1 - tcMod scroll -10 0 - } - -// END -} - -textures/test/rnd_ledm1 -{ - surfaceparm nolightmap - surfaceparm trans - qer_trans 0.5 - qer_editorimage textures/test/rnd_ledm1.tga - - { - map textures/test/rnd_ledm1.tga - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/test/rnd_ledm2.tga - blendFunc GL_ZERO GL_SRC_COLOR - rgbGen identity - } -} - -textures/test/slimeshader -{ -// ************************************************* -// * Kevin's temp slime with electricity * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm slime - surfaceparm nolightmap - - tesssize 64 - cull disable - deformVertexes wave 100 sin .5 .5 1 .05 - - q3map_surfacelight 500 - - { - map textures/test/slimetest6.tga - tcMod turb .25 0.1 1 0.02 - tcMod scroll .2 .2 - } - { - map textures/test/slimecrust5d.tga - blendfunc GL_DST_COLOR GL_SRC_ALPHA - tcMod turb .5 .5 1 .02 - tcMod scroll .1 .01 - tcMod scale .1 .1 - } - { - map textures/test/electricslime.tga - tcMod turb 1 1 1 .01 - tcMod scroll 1 5 - tcMod scale .5 .5 - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .1 - } - { - map textures/test/slimecrust5d.tga - blendfunc GL_ONE GL_SRC_ALPHA - tcMod turb .2 .1 5 .01 - tcMod scroll -.01 -.01 - } - -// FOG - surfaceparm fog - fogparms .2 1 .25 0 256 - -// END -} - -textures/test/waterfall -{ -// ************************************************* -// * Kevin's test waterfall shader * -// ************************************************* - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 16 - deformVertexes wave 100 sin 0 2 1 .1 - - - { - map textures/test/watertest8e.tga - blendFunc GL_ONE GL_SRC_ALPHA - tcMod turb .01 .01 0 0.1 - tcMod scroll 15 0 - } - { - map textures/test/watertest10f.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod turb .01 .01 0 0.1 - rgbGen wave sin .8 .01 1 1 - tcMod scroll 20 0 - } - { - map textures/test/watertest10c.tga - blendFunc GL_ONE GL_SRC_ALPHA - //tcMod turb .05 .05 .1 0.1 - tcMod scroll 17 1 - tcMod scale .5 .5 - } - - -// END -} - -textures/test/watertile -{ -// ************************************************* -// * Kevin's test water tile with shader * -// ************************************************* - - cull disable - - { - map textures/paulbase/tilefloor2.tga - } - //{ - //map textures/test/watertest7f.tga - //blendFunc GL_ONE GL_SRC_COLOR - //tcMod turb .01 .02 0 0.05 - //tcMod scroll .01 .01 - //} - //{ - //map textures/test/watertest7h.tga - //blendFunc GL_ONE GL_SRC_COLOR - //tcMod turb .01 .03 0 0.05 - //tcMod scroll -.01 -.01 - //} - -// END -} - -textures/test/water_trans -{ -// ************************************************** -// * Kevin's simplified version of translucent water* -// * Should be used for small pools * -// ************************************************** - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - { - map textures/test/watertest8d.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/test/watertest12e.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod scale .2 .2 - tcMod stretch sin 1 .1 .02 .05 - rgbGen wave sin .8 .2 .02 .05 - tcMod scroll -.001 .001 - } - - { - map textures/test/watertest12e7.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - { - map textures/test/watertest12e6.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod scale .3 .3 - tcMod turb .1 .01 .01 .01 - tcMod stretch sin 1 .3 .015 .015 - rgbGen wave sin .7 .3 .02 .02 - tcMod scroll .001 -.001 - } - -// END -} - -textures/test/wispy -{ - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - - deformVertexes wave 100 sin 0 3 0 0.1 - tesssize 64 - - { - map env/alphaclouds.tga - blendfunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - tcMod scroll 1 0.8 - tcMod scale 0.1 0.1 - tcMod turb 0 0.3 0 0.1 - } - -} - -textures/vector -// testing tcgen vector -{ - nomipmaps - { - map textures/gothic_block/blocks10.tga - tcGen vector ( 0.0001 0.0001 0.0001 ) ( 0 0 0 ) - tcMod scroll 0.01 0 - rgbGen identity - } -} - diff --git a/install/installs/Q3Pack/install/baseq3/textures/.svn/entries b/install/installs/Q3Pack/install/baseq3/textures/.svn/entries deleted file mode 100644 index 5aa5ee3d..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/.svn/entries +++ /dev/null @@ -1,37 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/textures -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -skies2 -dir - -proto2 -dir - -stone -dir - diff --git a/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/entries b/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/entries deleted file mode 100644 index c1aa9d98..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/textures/proto2 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pj_terralpha01.pcx -file - - - - -2012-04-01T16:52:06.755836Z -be624795478ab29d2e5e1ec44a94a3a3 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2384 - diff --git a/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/prop-base/pj_terralpha01.pcx.svn-base b/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/prop-base/pj_terralpha01.pcx.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/prop-base/pj_terralpha01.pcx.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/text-base/pj_terralpha01.pcx.svn-base b/install/installs/Q3Pack/install/baseq3/textures/proto2/.svn/text-base/pj_terralpha01.pcx.svn-base deleted file mode 100644 index f1b4b928dfb77194053d9169ad6b646f7cc18f9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2384 zcmeH{TW-`q5JkIMLP98;fgSM2){t0L+iu%484>~nkwvhDa8C716h8A!G8v7#Uia3m zYQK9EZwr6#%g6GG&x`-!Lx~qBJxgfO>l6>Q#m0Avozqkg@w3KtU89v2bD86=#*E+C zn-bsaT=&?D{#fgVZ^GNk5_^e-$8wvt_(uLxV=BZHD^E4<^1<-%vk`)oq@~0u4;b`V zyx?nqQ~L049^U@s1uY9D_R8ZWO&V02p&sQx2DlUyU1kuLZ8iqhaEbl3_8?-#n|Ax- zeBx(;$1^*@rDp;3SV242nTA8z#5&X&&jbV_(2v#h@w4ID^C;PZa}6SA%u0$ZOYIyS zgudx41VxtWzc0k3<~s;ym}VaO!DiNoG6ERhLHRMsZ8hJg8B5V&NdG z2+l*j-Q|fg*QDZDWRMP{lTOs@jOcRD84;dipp>)YCt2?`M!x%xMGXp@I4(s(URqRQ z6l4Uzj>YJJj3srvemtqjhT0n=N{O5oG~BZe`jJLDU(H&*UfzH$GuXY19ad!ka_k@C z;__vYS}t+JB(pX(G^@nrZRD`WUEW}IUUp#>k0I&h_ds>WXKE)9fQ!o)mowf7!RFTR zGRyHEZB}TFEpD}Xfl~x;hFbtlWZ`5J=@W<|xj1Yb5g2ATtprj53GyQDWTG7r9Sv9F sZs6c+ip#avJ6sH|#h+2Zo%k((k5^aa@$;8Q{+_+!Umsr;_+J$G3sS`J?EnA( diff --git a/install/installs/Q3Pack/install/baseq3/textures/proto2/pj_terralpha01.pcx b/install/installs/Q3Pack/install/baseq3/textures/proto2/pj_terralpha01.pcx deleted file mode 100644 index f1b4b928dfb77194053d9169ad6b646f7cc18f9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2384 zcmeH{TW-`q5JkIMLP98;fgSM2){t0L+iu%484>~nkwvhDa8C716h8A!G8v7#Uia3m zYQK9EZwr6#%g6GG&x`-!Lx~qBJxgfO>l6>Q#m0Avozqkg@w3KtU89v2bD86=#*E+C zn-bsaT=&?D{#fgVZ^GNk5_^e-$8wvt_(uLxV=BZHD^E4<^1<-%vk`)oq@~0u4;b`V zyx?nqQ~L049^U@s1uY9D_R8ZWO&V02p&sQx2DlUyU1kuLZ8iqhaEbl3_8?-#n|Ax- zeBx(;$1^*@rDp;3SV242nTA8z#5&X&&jbV_(2v#h@w4ID^C;PZa}6SA%u0$ZOYIyS zgudx41VxtWzc0k3<~s;ym}VaO!DiNoG6ERhLHRMsZ8hJg8B5V&NdG z2+l*j-Q|fg*QDZDWRMP{lTOs@jOcRD84;dipp>)YCt2?`M!x%xMGXp@I4(s(URqRQ z6l4Uzj>YJJj3srvemtqjhT0n=N{O5oG~BZe`jJLDU(H&*UfzH$GuXY19ad!ka_k@C z;__vYS}t+JB(pX(G^@nrZRD`WUEW}IUUp#>k0I&h_ds>WXKE)9fQ!o)mowf7!RFTR zGRyHEZB}TFEpD}Xfl~x;hFbtlWZ`5J=@W<|xj1Yb5g2ATtprj53GyQDWTG7r9Sv9F sZs6c+ip#avJ6sH|#h+2Zo%k((k5^aa@$;8Q{+_+!Umsr;_+J$G3sS`J?EnA( diff --git a/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/entries b/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/entries deleted file mode 100644 index a5444e4a..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/textures/skies2 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -clouds.tga -file - - - - -2012-04-01T16:52:06.622829Z -e156d84cec80d8e4e342b92bc433738c -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1068 - diff --git a/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/prop-base/clouds.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/prop-base/clouds.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/prop-base/clouds.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/text-base/clouds.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/skies2/.svn/text-base/clouds.tga.svn-base deleted file mode 100644 index 7122e4feb9487dbdd857770238772738be053694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmXw(Sx;gI0EJ2VGCyPfK>IJIiAmEY-O`u7Oq0$yYRBmqMLbxPSu) zUUrd9%BELY9Jru>fCwlm1F~3O=DeTp;pEFfAihC-%}c~f#ETa$r`I2hCDLa{0hfN8 zhZ!Cvi@;bib9vY44jxO9Ks*iS3gtp7;?_%rbFcs5?ifLDBmoz%uItxf+tGRcJYQ{G zWrF~BiT3dgQ>)!pnGX}6Q%63}zR4NNT_jWGTJ^%s!{Qkzj6%&{-U?hc>lvq3y#qQO z$7g{X zDg0+A<&ihJq%CSIkG*a|$+5t-+g5s)F)=nhO99|^uh+@4Cuh;z zNbUY6u9Y9xJA+ov#eM(x6hW7~dxmz3;z{H*e#;s1?E=nBqtowRN5$BWXtu9#|JZHU zg3PgT6p=2F$W=x!eBXZ>w9*E~44NB&tGBhBfA!s;@204HmBk%|Ql-w|>8V$?P$p3f zFLWAp+pH^ZUyn}Hw9(5(v(@_Y<+l6O%WW;-NxZNVP})!YwBgYYv#k9}r`PLuYcXq~ zUo$PreO|qqK-o0!2}k}KpTP3NcfEeUTXwRs-kO8H4i&Od4RMJ`q7vSWkk;14ft%+6 zs!kCTA9T)R!9ul^vC!r?Ca-424p$(Z>8#N#d1TuHT1<%Idf-wir6w?4X%B6q&?va% zYig$*w1$IhW}Jta6Yd;@OoSP^Pl-cr2J~_v3x!@}n={n|thjJy=TqhgjQJUXQNvdR z!#pI8ihGOVYC~{TfH`=0Z02GXwE(Y6Tx8&@D;s8luuPa-+BP^0t8`tZKNxgxV7FY7 zzI(WTs7LuoEL%V%uE}LW?2_s1zSrqLmctT(tKM$6N_%7!nkC*K@PxGasWDM7RjAdP zm9Thb(R0nHXP1D(|0EOF3r zX*di;Act;?$B`+eU?}3=L{jxoK4&M6|BIf(vy`CA7gmcU2DeAYW^p;oIHW9=uax6T zI+=tcuF9VMwMs=mB%82u=f_7e6s|d0x~jl7=_-#e+6J`RU7buIKFp`B)S0P;=YkE& zm(HVRHDGeMT>A$un?c2VOb0=^%6^jc=~Q~qVgn5ZPr8_g;X=K2S54Yjq;-wa y9?hiuCIA4GfNs|ngNwytqtoqo>#47A@axaNz50FVm!Y42{PvIUhkkhV9pZnJv+0Qd diff --git a/install/installs/Q3Pack/install/baseq3/textures/skies2/clouds.tga b/install/installs/Q3Pack/install/baseq3/textures/skies2/clouds.tga deleted file mode 100644 index 7122e4feb9487dbdd857770238772738be053694..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1068 zcmXw(Sx;gI0EJ2VGCyPfK>IJIiAmEY-O`u7Oq0$yYRBmqMLbxPSu) zUUrd9%BELY9Jru>fCwlm1F~3O=DeTp;pEFfAihC-%}c~f#ETa$r`I2hCDLa{0hfN8 zhZ!Cvi@;bib9vY44jxO9Ks*iS3gtp7;?_%rbFcs5?ifLDBmoz%uItxf+tGRcJYQ{G zWrF~BiT3dgQ>)!pnGX}6Q%63}zR4NNT_jWGTJ^%s!{Qkzj6%&{-U?hc>lvq3y#qQO z$7g{X zDg0+A<&ihJq%CSIkG*a|$+5t-+g5s)F)=nhO99|^uh+@4Cuh;z zNbUY6u9Y9xJA+ov#eM(x6hW7~dxmz3;z{H*e#;s1?E=nBqtowRN5$BWXtu9#|JZHU zg3PgT6p=2F$W=x!eBXZ>w9*E~44NB&tGBhBfA!s;@204HmBk%|Ql-w|>8V$?P$p3f zFLWAp+pH^ZUyn}Hw9(5(v(@_Y<+l6O%WW;-NxZNVP})!YwBgYYv#k9}r`PLuYcXq~ zUo$PreO|qqK-o0!2}k}KpTP3NcfEeUTXwRs-kO8H4i&Od4RMJ`q7vSWkk;14ft%+6 zs!kCTA9T)R!9ul^vC!r?Ca-424p$(Z>8#N#d1TuHT1<%Idf-wir6w?4X%B6q&?va% zYig$*w1$IhW}Jta6Yd;@OoSP^Pl-cr2J~_v3x!@}n={n|thjJy=TqhgjQJUXQNvdR z!#pI8ihGOVYC~{TfH`=0Z02GXwE(Y6Tx8&@D;s8luuPa-+BP^0t8`tZKNxgxV7FY7 zzI(WTs7LuoEL%V%uE}LW?2_s1zSrqLmctT(tKM$6N_%7!nkC*K@PxGasWDM7RjAdP zm9Thb(R0nHXP1D(|0EOF3r zX*di;Act;?$B`+eU?}3=L{jxoK4&M6|BIf(vy`CA7gmcU2DeAYW^p;oIHW9=uax6T zI+=tcuF9VMwMs=mB%82u=f_7e6s|d0x~jl7=_-#e+6J`RU7buIKFp`B)S0P;=YkE& zm(HVRHDGeMT>A$un?c2VOb0=^%6^jc=~Q~qVgn5ZPr8_g;X=K2S54Yjq;-wa y9?hiuCIA4GfNs|ngNwytqtoqo>#47A@axaNz50FVm!Y42{PvIUhkkhV9pZnJv+0Qd diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/entries b/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/entries deleted file mode 100644 index e0903d19..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/baseq3/textures/stone -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pjrock10b_2.tga -file - - - - -2012-04-01T16:52:08.686947Z -00dfb18bc6a66c9b8f8d6af17da763a0 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -197347 - -pjrock12b_2.tga -file - - - - -2012-04-01T16:52:08.689947Z -9c918f4ae14d36d3d06cb18375f15399 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -197178 - -pjrock9b_2.tga -file - - - - -2012-04-01T16:52:08.703948Z -59bd17e110e0e0ec321686cfd190ecfe -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -196633 - diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock10b_2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock10b_2.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock10b_2.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock12b_2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock12b_2.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock12b_2.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock9b_2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock9b_2.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/prop-base/pjrock9b_2.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock10b_2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock10b_2.tga.svn-base deleted file mode 100644 index 3b41d52e546f34372cc15fcec9a5c5f3e65a5b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197347 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�ntrPsO@OVkl5tCAIC(B@2? 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 Wn*QpPS0}ysr*~g|^^KSQJmJ5v>=Fe4 diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock12b_2.tga.svn-base b/install/installs/Q3Pack/install/baseq3/textures/stone/.svn/text-base/pjrock12b_2.tga.svn-base deleted file mode 100644 index 67a4b3f097be9bd597121e981377d3920f8f6fcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197178 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 $A05v?nKSBg(nafGxD~K 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%0Dd$z_+Y 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%0Ap1$BETJvNeE>~!<2I$TK*E?Zg2DvSL@bPPR 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

-=sCtS|A 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�ntrPsO@OVkl5tCAIC(B@2? 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 Wn*QpPS0}ysr*~g|^^KSQJmJ5v>=Fe4 diff --git a/install/installs/Q3Pack/install/baseq3/textures/stone/pjrock12b_2.tga b/install/installs/Q3Pack/install/baseq3/textures/stone/pjrock12b_2.tga deleted file mode 100644 index 67a4b3f097be9bd597121e981377d3920f8f6fcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197178 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 $A05v?nKSBg(nafGxD~K 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%0Dd$z_+Y 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%0Ap1$BETJvNeE>~!<2I$TK*E?Zg2DvSL@bPPR z-)cQ{M46@jD*BNCn;-AIrGOe+TZofJC0a%{k%6r8mS47Iaps z@4@xzbq^dsg9ZlPm0y|D^s77}{{x(?Z)tTD!kv}UHnmu&o&pY#B7AH^d-pQ@47@4j zc0eVPAmXNy)XOO)Qp0pQI!=i_DIXEclM7-rGwnM&8XCkDoIpp?q{2`V0iS1K3m1BE zG1ic)OE)w=k^&WQuCCTZDn%!C$CNOI#F;b1D`HlJ6`&k}#^HQU8q@LlWt{5Hopdae z&GC|VQcj7d2Cw%I*R`Kze76bM4x8n8LDCCA}6wrg*|WI+HBp zeZyCAF(^#V$T-T_7t1IhBBV^Mi3m7D`q`Wz*Z{R@JQ4P|$^h*cMN@Wwo!t2gJcxkt zsa-GucOcurZSIZYJiU~KZZrA4!_y5zc=hCIPZz)-;N~~;H^o0+*}TC*rTldAMXz|2 z&#wj33?}jfkTO+MO^9*( zX$CEO>I_valEImzjN#XEITd3I!ff49%d>@6yoHGA(?F3x z5Ub@w_aa7pxuxdZEbSI-=nKmvT;Z%#6Nq#2?hbn-i4!s;8^+yXZ` z2xr4fWfz~53Q-axdzVFq{8A?Tn zU5SD0rHOZ3ji?$jEm;(W4V6-_Z@}=$&zl%5o+9K1ktv)S?CYTdX=^7JcB(WWBT8ZO z56LEC(TEHeid$i0+dlSpVS3W7KRWUtD9Vfh>FhWRNT5r$qaMRCUu-LF2UnYTJ~vV# z?q#8PI@andG~#vyF?ZOp(2zbG4taz#J3x{)NtC)PUe7Srm@y zxqPMhz#$Awh>7pg;+z>%Aw^JgQgO{sxT<%uQZ z9{O904}2v#mu}u>DgFxfobA16wjwSRwPa^XM0*IPbINck_7=*)atgRz;HAKccc zl3+TW1ruQe%*fYnuiFBupe>BdNuWO1^Dvx{qTBA)0JTjnFoLGmhS6p4hHkqDbTg zl@L>w1{29lNZunRVAa^Vms#NG<@kXE*Iz4KaY5O!?D<|XSt2m|-iIg7<#4Z0WBX`y z9Ue?f`ixFWj78#fS*w5&JOZEywk8)f8jun16d~N80satU6G3tG2C{_;%$bWk(R_VPIhlemFbSO1%Z64<<9Dn}`xAMt*E?;$24ov5nP8smQ z+)6Z3?I^p0hyWC`i!=<=?DV)ZRx4;L|khkA)mRfPT*d=!PgV9 zSr0-BGR5UZf3m&4amX=PSpV%e47VB>dRv5s^7R`c;E-bbiRoA0sSJc$L`NgHVPS*s zji}TycvioLTX;zTr2!9!c2ET@lAR(B*vM~ZG$o|l>uRHJ^3elvP4LJ1)$i(7giIj; z;>w&5G^&%9BMFR6{^qUuAAhF5-#tn|U-Ldaf6+!6vCnF$akIZA%wqPi`^QjYQ;iW4 zm8sp$qOIan6`RBKEnm3`mXLUxy8D*fn8g?7fAUlCihwH|lpw~t>ir!(O$I}S9a3tt zW=&g4BkEBOpt%wXT$+FJ~rBiylf zAC~t^EXV?b++qPjBjW>?jeLwolKj<&v%d@(m>PHeIryR`4Q@B#olES5Xczos1MW5i zAxM?;;2ja!zTQ52F!xIG1j~90hlh;1Z^gY~G?48PA)g6BGA8)DZvi!W5OrLw=TQ)^ zk6~PX5gdZW%|c_7q6bp}rHPk1vP^%tlrQyl3Fs#11%^?K5VeDnz7u~ik)hMfD=D4;WBqD(TF~lxt zuks5AjP+lFzPx1!kJ}r)M7yh;Lp$)qYA~CcfiMfYFuZk}RQSInsg=Yp4&pTqM)Q`f;P5~$?xdjT;##fA zQ2&6q0;Ujg z7d<&cbQFhG*2O_#kkE82e(>BfYofc3XS*CZ*Gf?i{WjPa z6TdV_P7k^QaM5P0jXA))d{!KT_pQ@g{LEh$LS_;CFFR-RZsSqk;^aIe)}N%S!lCFq z>@%zboa%BqNKZh=K8JhA zIa{l=5j-bd1;QgDhu4~*H1)35A?0nKR6*fF->LH#(yguL4v8>eoWb`$D*yzfqcs^p07KT>_cfL~FQ#+A;guBC#NU6*mY5aTgl) z?B;?t?uk*(G&Yq5*#S+AF}*KhDEnZi2!fk8*N7q+gz=I?r9U83XFmkp+m)O$140Q< zlxU5K5&>Tg@ft10hq5xw!T6Ld0!C~Y)nxGbP@s`y4IZO=oLwe&0WLMNl@N&J@d>~}%CK4S($1aa{do4A#EdpWZ;|z({dp?5zL-1f zggOi@X>4*$aFn9%X?^qk4?Wf=h4BTO(aZUH^0pmyHMRO4wrbXBsuvyKt#Xkj&~@*2 zw{nV$8FRf3d<%k^(4+JP7PRm>Gm7gT`*|+$KzDu(9HO#oT_Lfad4F?m&#bL z*mGj{!a!-?d2o+H7ZDvi-wPc@-X@u6>SJ6Obm92zdo}GVswu%6d2>gCh{^^`E0nIF zl${n)XjWT?Aba-#nQDNdYRNr_udLIoGCmx4);JQ#A$Rti3Ihz)ed1&&?ukg3dmU8? zE{@&4%RU_Mi6|!etok8=^W%i7}z;`YoXUL#? zKu{#WKu^PB5jrBURhzX*2;c&jN~qieDv89QL8HZq&jbLifOz5^i@@m>$!=M14;Q+U z4Woq_B|wWP*aJ}&!Lv~I#>T`juuOApor~H_mo7&u??hNdAv<1oS?}}G4QE1Mtibih zJ#YaB8$VJ+7QjiR$|k6tT7$lu+YTM3%}$={fil{gHbZVRrFS~pTt{;hrl4WqJuz!Y zPd)(1(JYN=FutS~?ct=UK|xe`JhiwSKEI>`xFuAUtKR*I2Mj4G&zI%jRJ}z}q4<(w z@_c97?nK)MUoVP&_T;bGptk?{v5(X<4$;B@uNYfLW0Q~rWz9QBP|A_KV+5IZo22zf zgLJhY$OLjQeU55m=2cXCEGtWi4E z)e3lwZqmJAdkWSGALkM0I-BOb`?v)@!xKW^+>ux1+`Qd-oYTz6D66BC!-R3rxtzyk za=n!4_5*_<6XoU&j3TDUDvG57g#Z#Jpg(CRXCPskBnQkUOrN`yccp>U2WmK1x*oVp z;CQ9&(4{P@nZS;psq-gX=$DSi0dob&9N7*3%mC9GmS4?96}jnb+l5vq&vlEHF~3$Q zziLLBNTkp#>D;KqO!8Gup?IZyH{xO>sOP4q-}^wr62mzA!Kk1OPJgmA=UGy1>du5O ztWv?Ef*jBSQIs<{-r124Mf9zhg65z(c>zzJBmIb*&;^cuP6_pj7w|rQ_e;kkK0?T% z;qkEaPRjuoi=6aX(A?`n&zIBBrs;4HWsv!%#^{ZfI@%97N>hB)dP!?gfn*xGLmY?L zbLkRp(G&|J3C%Jta{SiS-c;SRr`0RSJn>T#L>tkC4vUkjY7L(dBw2R&MUahnpfj+; ztJ!zxkmMTyKzt6pqCl<&dnD7&8C6(f#Fmh@r0Cp8Tw`Nk;=s*YMyvOAbq{_pI`Lz- zk^iN~E{w%+U&)L=mzgc!j}eVz8?{XGKzG@2m|N{JcrGcvisGoG-xadJbE-K?`WMpr z=(SQn45-A13Gg^St3bg6xWd$)C@{+|b%CCUV`>8a4S{;{Nchb}PuN8;L_|?Y2Y)&r zC4iWR3X}fTy(ykU6_QYr2!7@-Ue*~m_t{T^sxjsF8;^xOu?7uId3zmq(b*FIkPgiR zfBXaYL=^=x0w|1+x_SmJn?B~rfB_RBIbyymadROIJ?ojZ^*gm)Nk7(Y-UNy`ERk4+ z7h!fcZ7g}#GWDENlCT+u10OIV#V99A|Fj+0ABMVlx4laGvWv36Dxvsvwk{VgEiFQ! z;h6N}MQX5wBF)?KSQLR6{5FtAFr))}QzRo&&(HkL2cLaTmf$DaIK{1xYr_G2*e?AiBRqNIo@y&%157+u?syNjtwPi@Y zaW}bF(_)mXDl3tc>i1@$VOZAcgv9j^YuUw9l%##QgF^MIAsOP5n2~gOT}-bSnpTHD zr*wEVKUdO0x*O85WGOibHqH|kfP)N=o*s(gXjGserAyaVMq`fzjBJA58%HFXg^zF$ z(4a5{{wrSrXlI1zk^mWyZ%6!B5jsj%n4+!VrcD|p`DeHC|KbEvi| zk{bQdUyk0qH9GV*;Kt|>5Vb*144QijAD$L~W#GgxEs?-VXQ`TJ2hHo3%c3o4o6Xf4 z%C{KXo`& zSFC#JR99EuwQH#8W6oUr5$;3jQr|go3Md9*l>6f*%W*p>eFIL(Vn`i7THuGWQ`R1a zDr5lBq?BDD0D`!*hl#R$Tnq4uv00#jl9~W)E2)p0b=?A{WR@UVI#WoQ+v2=J{X$pU zwvjb(O`enfnIAO?_8!xYy%>HS5s?_*>hh=^>16KROvmPO*5GjY#+4{OkX4(RVV_{g_Y2RK~BrQZHeqMnoK4EqCcMmJMw@ItU=< zGpA@mY=BfFAAUUY`fW?XX2J|SZ>;67l2Fz_fe3!hjVNopg-IA!&-W)PMPdfHR)C2< z2nQZ`0zIbvLrEYyfKuI=Q(B&+Q2Ps zHnbtyhE+|b)-KFVQ9vLIS^_jYO5EijI2)G8$~asn2+_T;dZl3~zROBcQl6kxggv!T zZ?|-(V~4O8Lj%Ps_LTDui=PY(22aISND|HCU4lk}p@O6!d)tm3>ier|YVZj&(70!h z!cW}dA=o~t)T$(WHUb`K$x9+H8=VG+TF9S3_+p8Jc}KUWv?diud*#k# zbp=0N`Um<5r%TBy)gpZKKOza(axx)a^;|yS$V6R)HRu%jeBkP}iFe<>{q{RkgKv2i za{#I+&2s}f-G8?Wz93J?=6?(4dj(TPL; zsPUo$#B!97!f?27w? zK65jaO`?I;vjE0JFN}Y(`1wy|H5en};dNGf;d;Mrj!F?t_JSG&PF43D@9LTS=o5kk z)mSCh6t9;VPncc~a%y74Xb$**0m4FbAax{y$Q(+N02WZcl}Q`0^msqgEZSC$g4?Oi zM0T@Ublw+Z^AGQ{^(9(k`IcHWzU>SH6D&u7_^_l=+&WOOs!fr0L0qcbvnk*jb8Yoa z8UdNAHs}>2`@KeG$sL!!`8{`ow1(dQ6Re-;f1gm#;c?#U2kTcjm(>4+;*pKeme<$0 z7gwWN_=Bo6Hlnyblt#E;d;l)>dnXz^6eZ`%vR1uZx$aa?Pyd}k>M?Y3s!H|^pF?zk zhaW$rcn$Ty{NdH_+o$1B0~1|XBlndI1G0Lh8)8!)?oU=PM(a-plRNChnlKQvg0VtH zCzU^Zg|6N{&u6O0HGf9uG{t5Cf(6CfcNWG!lJ#?^mLVQ(+Skc6^II2EtU zF5`O=0-)eyF5>*?+XxLbs&Mxk&llG*yP1#RC@l|z(#_>wd5SK0{f)bmhE>ha%Fg9F z+b#P6zWxYN&z_oCuFpsUD4b=%(7sAYRKv0Lfatakc=(O zy#Jw#ReKBlE}X}>m3YBw$SJ-q<}$)bmO`aqPqy7G1s`yRV$P|W%E0DZ+;$g|>v2&0 z{baVnE?z`kzxkuyH(7L|Ta|6(P#se@}BZZL4+fCCf*$Aw2H`YQzB%U4YsKeOtOhbQ-8^uAzcb+TdjweZWrZ zs;bypxE02hUo68MO*Q(S-D_bg95;nzxS~%Xt-r?BxJ7T2L%OP$DFVk-?72Ya84=2T zwJ7JpW*Q5xdfhgpA{~8tce8#fVVG1^6}zwImD2UR$FdbOlQbx<(t9G0hjDF)QWy61 zS8srElfC+w+z{`c$A1FCy1ux z|AnYqQT-6%W`7EWRTX1WOFr};S$`2aE}U*dh6)4CeLTkBS057D>FDB`sl<7J3YJ^9 zX|v#^voP&ZX2;vvX2)TLlnZqmb#Pm%#O?uTD*=%O2>i9Ju1Z)@pnP>Q4OcvZxZn}7 z%pJRCr1aK~W~96u8r)SMfAn_4xYC~==QZP)^>Mi5p}_tI3%LV^;U6Ghv5 z<0gdVu@YbKhp+`_EY-Z{#@!)Kya!sSk2zPQWHne;))#?{&R?cezM^9FS~KHb*=P!C za>;`v6B~i|R<7f3t+N2t|2Y2G>8xBk8T2QTfItVKc^qV@hcW7o%bT!os%pJyL|~Y8 zNG5tKjK7u-DqJ=c>fp_l?q~~~q2M8ghZB&%A@kvj!7&ZuLlslQ; zqvNTs^SFe+0P?QpJqTA`wkT8yNrw1=zTvB?NBqEx0Lu9;pg$XBcK>kxJj*~eiG^(9 zv)2XYRrD-LWZVLh5^4)aK$?ZB`Qh`+jG|IH$`i)=9fuA{_t>|H9zDihTN=j$wI~7k z0jCD~OZU)kAWm83p1E+T{n!a#q5mb%BKD^$B>C5ZRhKM`eUNHxlO-nG&Pwo33yfF^ zLFJT6aiAF#f)XYh@GCLBTN${J%oLXn8w zXEq4K>$wxj-ncaiKcdM=na$i6Kf`HY29U+D`aV@FN?$78^-Bo_dn4TZFvG;+5cxs( z7fBZ_ZVE6p7Ukp#`ZXAvjxQ(kyhG*)aiLcz$}<7jFh8$I@@a#LJ5V4eq*uQ1$>h&* z+FxKMri>RR^BbVdG@$RlFBS9RYvpt*Rl`pD(A{~+rU@^Vgeq6oFLm^dFmj~gLOmOya1j07<=1Hf`9pfNYmU+EJN zFI8X9>k^0|rZ}I<7GSb1Mi!M(oemJ>F9}@@iJwglzw2$+-*|KM_8k;nvthl8K4m{r zXrzY(Xlcb9z6#F+IKE=c3r)`6dXL|@BbL6TYjtu_!_bP5iTPD~I}Rxk2BTO{>3FxV zGdBQ&_)0deR#+s0ymhRGz9mIx#jBFwxJ@(e*U?@XeY(Vg5Qs{7Cgbp6=CAM{zfr9` z_l)Fa4j!U0RXeM96UL31#QJXA4*+P+kJ2n$z3v_*$g*NXrO~B=_QZldCDT9$7irh- zX2Bi`29N0(yR^ zD40N*J4+mk)8y?vnD!Jsv=xiRU^oolQvNiT7$}~UlNIh-!`fAEks0CwkOeE{R;rYA zapCO95GCvNDqgWvFnLHs3}j6B;qYhQ-majHrzh7QUBYccC{D^`#lz*tD8Vzb(g=yK$dQ$Lb4 z_yD=ds9jR;!^OUEx!tGP)YN(AtdXCO7yj93EKJFoyNICN)MH8E9-9psgH)d)ZFhQi z`7R6`;~Eiqg@z)Pn)C%9)jz0Pq$k8cAI|6s^Rp3 z-1&)t8-16q2=^w_2wPeY9uUv78PAp5O`8i9cS*$cVg#Of7Ftm4>hs-Q-Lg|^JH&UT zzhDnq*AK*N#hO)sD)=Q$FT4#+^ENSX=Jc7}>;#U-;&T6%FI_JF1I-98t8{dMId&9O z@;(R1vSCmx>#RDC9HAn(R(J{v!XFaps+K^Mk`{nnTpf44uEKrK#u02Hwxe#6iaA7e)uQ?$h>dM>E!@&4EK zk8h~1>Fzq$w7Xd>Hkob|V>jV_A450o5u}3BN=j#<&H)%IIl`?%Mbrl2vU&fHxYBz> zK(I|}5HAtP_TA0Vs=s;j@iS+&wEzCe|1v`w)i$kND{se8mqUHT9T(v}@gTlIrhS)4 zi)~3{aU_mpVpz3k3yRNt@?!;33R*-j!~%#+U*?nwSz3op=A7ixZE+Fdsf-abyPHpT zbrDvfOmJI4n6N*%$01f6q+{e%Pp`y~^;)c`x65`%J|26r_;+RfA-<%=(79VUavP#c zk8-t0JX!BPaKHlL-9q*lLpUaz8g(jB9Glc{GQ7%y#2D!Y z%OD#LLDa6P#jwf8J(%smGWplw{8H!*6@O7N(EfyentwNa65Y_6@<=9+2QbANG8Z2~nVq`kd9 z)!b;rd*j4#KW(9OT5Aq#fR(6i%L2UrcZjm*>h*J%ub_YK_{nU~c`Sp37D62=q(Bf1 zY}Le;C+qhP!b&ZH(XZKI&{Z8~g}Q`##Si?ImWrWp-+vEI*cN3>`(Q311Y#8_p@w?a z|Ecbb#d*G=oHz!+;@F3CjpKL#kfoAJUM(cf#yBj>o=L^>v^5xxZ85djt4@dVakC!c z=4RHDdf@~su}cGPZG;-uDsF5LObu5kc;GdP^vE}Zv(jWx75ur}L`gt`gi);2i>IkxDxJR&qNYnR*RAC_Dlhht9Zk66$n*59w)=|U|OL5cPQNY~V>M)eCkaflvuAyqN2(&;8Lyh#i zrBbW}!!!Nc4LOT9XpNw@c+^0g>SXLjc0*16{&y4;t^pwQso?%hM+=3C@Nfu9yKX># zD!~x3@OsQxzQhJn!aEiR_TzGX7o8mK3Tt21bjjP*Q3Ncx*~U7u-RHRgAXbP$INDFm z)|{II8ouUkamM_T`oX!1k^n7s$!C06-h|XyYT`%44GW^Z+6T^xii96kGgo{-3^m`2R>o5(05LgCBU3o++SK`JVt;F&Bh& z7V=KcQHV|C&A>7G!K4?gNv~o366N=QIUfW?nnw@sanBs}Xfl;KrbP@1(kLpxQiM|A zDjfX7ufm5SJscUJlq=?3%4^obKv{OTNA0HCBo}|O3P`PNPaT1BDW?wH@C=+0sDu@` zKmMeu&T1@_$%$N&n9f&^!9H0nPJ_7?{?vK;4C5jCA-D-7VBb>yI5!OsAr#^l--;_- z=mU3Z+mnmEg*e4h z;LzYeBfb!~#MPT{aN)`|xdA?-sS*R-$2*T6YjF?DV82)}QNgUNriA%xcitSi^QK$2 zmFwbL*@?cwjpEe;MqkhWO{p`8x=IHpVnwM~9#!WFk^$n6@+!Iu{}da!Om&Ew;7j0K z{*0cA(wik-e+YX5N3g%8lN#2+L9&jX1QFN=u4!+m&tx+0f|uE-Ad> zU5ddn010GqR+@gGG%$ubqDHCU1ogz7jxYo-*zVN+U?oEX7=DQu;NngtSLjue8C3 z$!IM`)*LzOCj*cdk_aye<*2ctq#%>|Urc+B<~=_54AhWI|Ar-Vux;Sapz`@a^M|x(ix~s<uEsukPx!8`#qJV zN8EIc38bc!ty&x1FeH!p)ZwfeiuIxftkbsKZ)#h%!~QkxKS0szD97QFfe6pIIyAgQ z8$rK-F$gJf5QPOhb};qunCAeq*2(1+s^npTwAH(IDzFl>bc~j*gu@d^%~*fTIN{E! zZVC@a0D_pvYd(31w9q~P2?fini^&C0blm5FqMvJ`Gv;cF9P^&+5~DqXQK-mL}2oF;*xnP5zj9 zG|7TZ^Jo^94s?r-qCX=bU?=7{bK->FJCza4paN>*DlHfzl2j#s8{u|}DBV=AB8VRG zsHqP>E?v4Js+`}wcRwzGXQXsx&dd|)Fpyx=D`u%AvaX+XA)P+T+c23kjQN8l&$4Kw z4ZTvm)!0wf{!+*8yh2V;fcq!p&iI?Xp%R`k6)z%u8c-NnrTC;m%QeO7Gg`v*1z>t4 z7%3G917`FPa%`x7_^rSHopqC?kO%D<3NID?Y>&CFy3wE@8VDZ6EMO8lfvwCA&& z$yvh`^b92E7Gk%yO9^3U#@7V&-#vc7Q`fBU%yZA-0j8D&(x-EyAMQ(w#OA17>QA&o zF(C)iZ69u%6h5HPA$S%_a}hK*JMsop4C^vFyaF-<=onVlO;+2m5?Q|&dAdS|o z!Hpu|8$@yI{Y5H(*n~>??wfBO-ZSP-x&ikF0!_+x*+)Gr_^{cXM@i?QN>~i+5CkjJ zZF}Y0l(KpV-ur6lH;@12UujW`9J_T#v&qu0{(52jQ|B-3VvL^44XG92+L$9pZ5j9$ zwv?i4YHd^TWL&&E>_wpmuNF$V^P#H^gsNDl4N`Hi-LYZfMkO)E|API6Wdvg@sMC~c!`3f|G0EJRLbu*5GukJI1#?S(3VjdI9 zJ2lsTxa#CcX{I!U?Bf$Z z0h2^*xPem9Od(V1H}VBjg9XkcF;#<#M1{<$VqfOai4)@k*W|GLMxcD|XTK0A5l(cs z8$yF~OtK&hXSnS^d&|DPjJ;^8nGw0CfM&7H8i&C|&Zjt#x6Lu(frV9;WHpSnL zzyU)rWRXJ#*V#C&ZAvJE;Y2A(ii~*r->l*V{hm4*Go5U;t5V}SkkADAI<&!<_kfz;uFpPsS!D$$;}){NiW#fAd=@?uWBq!Xr!y!9$($GhzDq8*}pFF~OTllYL2U?cloyKWs90@(?qBM8;7rHb2& zeW@Gu*5)=Fn#MBQK7c?&?K3D%S>4i{5`8d^B@$!9A`k?C4!GkvMaLd4!t6IvH2$PB z11=0$76lqlrASeT|LB*P8_?#=qLT_;T!_hfu3QTz>i!Z*V_We??&N7zwMrtnd*HU? zh6VQ@J}k8j{t&BcYR1lk1WPXmy4-pH zqp>?fF7u|1Z+v}DWY{ynGO`zwko_pZ3sKzP0Ru%p(Y`*Bx(b4$#%Ap zRZ60Gt7wx>LdF9~u^yc3bte1qzTF<#)KD)Sy=q+re1fdtthI?|!bAe%x_8O~L7DNj znc(sh;MsEI$vO!(vSN9m8oXw54G|>}+%2lat2M3x-*!itTXx}%H?aa0Lx&6CQ*YY% zhPZmn57nfw$UAtMIxBsF)5RXsD*@_j%{6!ZQzRwh#;@FYoGDj*|ChgVa*Gom<5kyn ziiaZl~5qJQUo|jy8r>VQPp59)^NU;st358gj|jLE)9u^fKMuA z$XGVrsS)Av;(s^lR+F=1Fu!Q9FJ`QIuZ$x_h$tv7QAJ?Mlf(jUQ|mM{e9HwQ9?ra( zA`RvK19_UX&>JT2ZPlJ25n~Hp_*~s=d?t z129Cp*&7yPejFe%1QswjmWLv-C(8u%b?)0wL|Ap3$JZDKzfk7%6h8-U0&|n3Fv560u^@N~ zo??mk<;Vw%yWBB^psEV4LG);p`~G`M+1C}uqIrf}WCctT@;z_hk`KoQA#+=~gvca-8UHp^7gT|H# zbf|xH&2n4ZJf-$_Eq6cKNj7d6A1D|UK(;hws|o}%JWNejQ;Y6z6jlVjl|D(DIg_Vzox1EF=f7=aSr539nI`Co*<(JBwT zML28W3jjNrZDSzW_=pxkk&3awHw`D^x#%QxQMW+Z5z9V6b_hoV^*;chCeEcf=uK6H%5j^JnHe056|{pqKnI4$4@ws zO7XuOGPo2!>F979@%-3W|J@;-bFl8|o}TF+{a8U{B!OezX&Mn^gGm5H!?7g+4(WxJ zFFHTvsVs`@IbkjI4?t=}N~Dat-PzXIv~`Pk8Gn~Wk;fMl+sKY53!QSR47bAv-&wkX zNi4k=Sw?O-5wXNS@`@har(tlnr}Ih0vY}z~K`1EJmNRRLv2c3(;lr#J&&CW5de-a> zw= zU?dXZOsd$MQGzQ)VHo)D+<{GgjmBP!@jA|_kRN@4PL2=YLqbZPyQ`>Mpab7?i|E&b zoyXZeL3(G$Rtv`6Cy6GD;BywqOpzwt0K?OKaD-OL29@T5$r9kaqMhkqh^^ zwpMI|;=ueO78Hb-6jxd;k&F!^^Ft9VikJ4L6qVQv=TCVJ7$S5+*|I6PRz??>PvK{o>f7~d@(ZEN)a%Tl(ciNhCC9rB0pd@o+Jb30Gw35XoI4HHi(S21_M05 za-|=LZFhPf|3HlgRo;5&U}w7-fswTV3}j{z^M`KgFuj9liV--}v8eNN!=GWsck~H7 znEAz{WZV%y0;7s+hZ~$!hZOUMQ`Cqi0(6{Y7sl5OwWZ>)9HkI}U>t4BqfiE>G(&-> zIs7JxA|b;iAV^}c9D(DDh_~Zd`3jsL{2X&-7Kd-%LM5aH-tp}ww;5Kv;#y^&7c|0_ z+;B~o-XA*T$s;~BJw{}Z*Kdd^oX0SlwFEUg<=Rxe=aUX1Zjp!}=tUbySUY-7o3|)0 z5{3oySrlr`=j~WF49ur+yjr5vu@ki6e4nL~f&<5nktUB~`IPiYyT(L-_46%F z3wmntKk|M3@N%;@VyNh{sqyd;$BJlj40H*-rr|7GYDx2TR!EdIB7 zlQq>n8`g$7Og%D&P){BsWS#>vDP{!Z=)NkPIvoz(kyoMHT+exv*<_2!HeDZ)9tdZo zXgCLoGYo$3{BQLkZs7zdRfws51m3R5B36=F*u1UQzg!r9(mhVR zBhUhlC$-DGL9Y?9$R0Sv5?~@{f?rf^vbqij0y7|VXLIDkv72g*F#Oxh7)`m@mS$n4 zxrl76{GX{JzKdaH&WT^VMe+O}|6tLy46G?S*;G~eB0#aVTB(;(3|7K;?5ZRm94GPZ zH$;s_C*o`ZS#>ZTCDNJ%9k(_$w+KO5C*>7h<+tBZX9j8eO>>*EJavM$0^oMRJz~kc zSM-P-P;uq*inSXz&CgD&TvMVTMCYWzwiu}N1f-axV>r^3v|DsauMPML?!g2=v+A~R zm6ztqR}6b8^#&1b*>$o4Y4tgI&Vb0yAO4U=U{3hoyfaF7Dopl z0e^fJT1Ud=*qJVjz_haL7{SB`o{=Klm)0pLTK>c3&r$v|6EQ1$RI}wV

-=sCtS|A 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 [- ...]] - -Example 1: bspc -bsp2aas d:\quake3\baseq3\maps\mymap?.bsp -Example 2: bspc -bsp2aas d:\quake3\baseq3\pak0.pk3\maps/q3dm*.bsp - -Switches: - bsp2aas <[pakfilter/]filter.bsp> = convert BSP to AAS - reach = compute reachability & clusters - cluster = compute clusters - aasopt = optimize aas file - output = set output path - threads = set number of threads to X - cfg = use this cfg file - optimize = enable optimization - noverbose = disable verbose output - breadthfirst = breadth first bsp building - nobrushmerge = don't merge brushes - freetree = free the bsp tree - nocsg = disables brush chopping - forcesidesvisible = force all sides to be visible - grapplereach = calculate grapple reachabilities - - -Several metacharacter may be used in the filter and pakfilter. - -* match any string of zero or more characters -? match any single character -[abc...] match any of the enclosed characters; a hyphen can - be used to specify a range (e.g. a-z, A-Z, 0-9) - -.pk3 files are accessed as if they are normal folders. For instance -use "d:\quake3\baseq3\pak0.pk3\maps/q3dm1.bsp" to access the -map q3dm1.bsp from the pak0.pk3 file. - -Multiple files may be listed after the switches bsp2map, bsp2aas, reach, -cluster and aasopt. - -If a BSP file is being converted to an AAS file and no output path -is entered on the command-line then the AAS file will automatically -be stored in the same folder as the BSP file. However if the BSP file -was stored in a .pk3 file then the AAS file will be stored in a folder -with the name 'maps' outside the .pk3 file. - - -Updating entity lump --------------------- - -If an AAS file is already available for a BSP file and you ONLY change -the entities inside this BSP file then you only have to recalculate the -reachabilities. This way you can move items, platforms etc. around -without the need to recalculate the whole AAS file which can save quite -some compile time. You can recalculate the reachabilities as follows: - -bspc -reach mymap.bsp - -Where mymap.bsp is the BSP file. The mymap.aas file has to be in the -same folder as mymap.bsp or should be in the output folder specified -with the -output option. - -Keep in mind that as soon as ANY geometry in the map changes the whole -AAS file HAS to be recalculated in order to play with bots. - -NOTE: -reach does not work on optimized .AAS files! -NOTE: don't use -reach when moving the position of doors. - - -Leaks ------ - -Just like there can be vis leaks in a map there can also be clipping -leaks. Two things can be wrong when the BSPC tool outputs that a map -leaks. - -1. There are no entities in the map at all, or all entities that are -actually in the map are placed in solid. In this case the BSPC tool -outputs "WARNING: no entities inside". (At least a player start entity -is needed to load a map.) - -2. There is a spot in the map where players can go outside the map -into the void. This is bad, players should never be able to fall out -of a level. In this case the BSPC tool outputs "WARNING: entity -reached from outside". The BSPC tool also writes a mymap.lin file -that can be loaded in the Q3Radiant editor to show lines that go -through the actual leak. - -Make sure the .lin file is stored in the same folder as where q3radiant -stores the .bsp file. Load the map in q3radiant and use the -menu -> File -> Pointfile... to load the .lin file. A thick red line -will be shown in the map. Follow this line to find the leak. - - -Map bounds ----------- - -Currently a map should be within the bounds (-65536, -65536, -65536) - -(65536, 65536, 65536) for the bspc tool to compile. These are the same -limits the q3map tool has. - - -Physics -------- - -The player bounding box is a 30 units by 30 units square with a height -of 56 units. If we assume 1.75 meters being the average height of a human -and a player in Quake III Arena being 56 units high we get 32 units = 1 meter. - -Maximum step height of a player is 18 units (just keep steps 16 units or -lower). - -The maximum water jump height for bots has been set to 18 units. (height -difference between water surface and the floor jumping onto). If the -waterjump height is made higher human players will have a hard time getting -out of the water. - -With normal gravity and without the quad the maximum rocket jump height is -around 280 units (you can sometimes jump a few units higher but this is a -safe value for reference). - -The maximum height for barriers the bots will jump on is 32 units. - -Some math to calculate some other values of interest: - -gravity = 800; -jump velocity = 270; -max vertical rocketjump velocity = 670; -max run velocity = 320; -max step height = 18; - -max jump height = 0.5 * gravity * (jumpvelocity/gravity)*(jumpvelocity/gravity); -max jump height = 45 units; -NOTE: even though this is the mathematical maximum jump height always keep -the the 32 units maximum barrier height for bots in mind when building maps. - -maximum horizontal jump distance over a gap from one spot to another both -at the same height: - -t = sqrt((maxjumpheight + maxstep) / (0.5 * gravity)); -t = 0.3986 seconds; -dist = maxrunvelocity * (t + jumpvelocity / gravity); -dist = 235 units; -Because players use a bounding box we can jump a full bounding box width -furter in the ideal case. (15 units at the jump start and 15 at the -landing place). -235 + 15 + 15 = 265 units. -Again this is the mathematical maximum which players can only reach under -ideal circumstances. - - -Optimizing a map for bspc -------------------------- - -Hint brushes have no effect on the bspc tool. Only solid, clip, liquid, -cluster portal and do not enter brushes are used by the bspc tool. - -The bspc tool outputs how many areas are created for a map. Less areas -is better. Often the number of areas can be reduced by adding additional -clip brushes. By adding these additional clip brushes the complexity -of the geometry used for collision can be reduced. Do not add clip -brushes in front of the complex geometry but get the complex shaped -geometry contained within these clip brushes. Things that should be -contained within clip brushes are small or complex shaped (often detail) -brushes and complex and twisted curves, but also more regular curves -can be placed within a clip brush. When containing a curve within a -clip brush it's preferred to place the whole curve within the clip -brush (not just part of the curve). -Note: you can make brushes or curves non-solid when they are contained -within *full* clip or *weap* clip brushes to speed up bspc calculations. - -Always try to align your geometry to the grids. Always use the largest -grid possible for alignment of your geometry. Also try to align the -back sides of brushes which may not be visible. The more brush sides -are aligned the better. This will also speed up bspc calculations. - -Align adjacent brushes as much as possible. Make sure no tiny faces are -created due to badly aligned brushes. - -Quite often there are places in a map that are visible to players -but that players can never get to. Players would be able to walk around there -but since players can never reach such places they will never actually -move around there. If players are never able to get to such places -it's better to put a large clip brush which encloses that whole space. -This will also speed up bspc calculations and reduce the number of areas -created by the bspc tool. - -Note: the number of areas relative to the map size tells something about -the navigation complexity for players in general (also human players). -Reducing the collision complexity for bots also makes the map easier to -navigate for human players - - -func_plat and func_bobbing --------------------------- - -When func_plat or func_bobbing entities are placed in a map the bots will -use them if possible. The bots assume they can stand on top of the bounding -box of the model used for the func_plat or func_bobbing entity. As a result -creating complex shaped func_plat or func_bobbing models is mostly a bad -idea. You have to make sure the bots (and players) can actually stand -everywhere ontop of the bounding box of the model. - - -Cluster Portals ---------------- - -A map is divided into areas. Several of these areas can be grouped together -to create a cluster. The clusters are seperated by cluster portals which are -areas themselves. One of the things the bot uses these clusters for is a -multi-level routing algorithm. When a map is efficiently divided up into -clusters bot calculations will be faster. - -several things to take into account: - -- The BSPC tool tries to create cluster portals automatically but additional - cluster portals can be created by placing "clusterportal" brushes. -- Cluster portals are manually created by placing "clusterportal" brushes - inside the map. -- Cluster portal brushes are a tool to optimize a map for CPU usage by the - bots. They are not needed for the bots to operate correctly. -- The "clusterportal" brushes should not be used outside the world hull. -- The cluster portals do not have any effect on vis. -- If a door is already sealed with an areaportal brush, a clusterportal is - not necessary there. (area portals are also used as cluster portals). -- Just like the area portals, the cluster portals must seal a space off - entirely from other areas. -- The cluster portal areas should seal off a cluster in a way that the only - path towards another cluster is through a cluster portal area. -- Only create cluster portals where people can walk or swim through. -- Don't create cluster portals in gaps in the floor. (people would fall through) -- If you have two sealed off clusters and you add a teleporter between them - then the two clusters will be merged again because of the teleporter. -- Cluster portals must seperate no more and no less than two (2) clusters. -- Try to create clusters with all the same number of 'reachability' areas. - for instance if the map has 5400 areas try to create 10 clusters with 540 - areas each, or 12 clusters with 450 areas each, etc. The BSPC tool lists - the number of reachability areas in each cluster. - With Q3A version 1.25 and up you can use /set bot_testclusters 1 on the - console and the area number and cluster number you're in will be printed - on the screen. These cluster number correspond to the cluster numbers - the BSPC tool prints. -- Minimize the number of clusters with only a few (less than 10) areas. -- When adding "cluster portal" brushes try to place them in places with - minimal geometric complexity. For instance place them inside convex door - openings or small hallways (not infront of door openings). Ideally the shape - of the face through which a player walks or swims into the cluster portal - is the same as the shape of the face through which a player leaves the - cluster portal. Also ideally the open space inside the cluster portal - brush is convex. -- Make cluster portals about 16 or 32 units thick or align them with - adjacent geometry. Don't make them too thick though. -- Minimize the total number of cluster portal areas at all times. The more - cluster portal areas you have the more CPU the bots need. -- Items have no effect at all on the creation of areas or clusters. - The same goes for item_botroam. - - -Do Not Enter areas ------------------- - -When bot navigation problems show up or you want to make sure a bot never tries -to go to a certain place "do not enter" brushes can be used. - -several things to take into account: - -- The "do not enter" brushes should not be used outside the world hull. -- The "do not enter" brush is Not a clip brush for the bot. -- The "do not enter" brush is a tool of last resort. Do not use it unless - there are serious navigation problems. -- The number of "do not enter" brushes should be minimized because these - brushes create additional areas for the bots. -- The "do not enter" brush will create a New area that the bot will try to - avoid. However if the bot somehow ends up in a "do not enter" area or there - is a valid goal inside the "do not enter" area then the bot is allowed to - go into and out of that area. So if the bot somehow gets in a "do not enter" - area the bot will be able to get out. - - -Bot roaming ------------ - -The item_botroam entity can be used when a bot does not roam the whole level -or prefers to go to only specific areas. This (invisible) item can be placed -in a map just like regular items. Nobody can actually pick up the item it's -only used to attract bots to certain places of the map. The item_botroam has -a key "origin". The value is set by Q3Radiant automatically. The item_botroam -also has a key "weight". The value is the weight of the roam item and is -relative to the weight of other items in the map. The bot character specific -item weights are stored with the bot characters in the botfiles/bots/ sub-folder -in the .pk3 file. The value of the weight is a non-zero floating point value, -most often in the range 0 to 400. (Higher values are allowed but keep in mind -that the bot should also still go for normal items, so don't make the -item_botroam weight to high.) - -When a bot should never go for a specific item the key "notbot" with value "1" -can be used for that item. This key with value can be used for every available -item in Quake III Arena. - -The suspended flag can be used on all items (item_botroam included). -However keep in mind that when a suspended item is not anywhere near the -ground the bot will ONLY try to go for this suspended item using jump pads. - - -Team based entities -------------------- - -You can use the "bot_notteam" entity key with value "1" or "2" on teleporters -(trigger_teleport or trigger_multiple pointing at a target_teleporter), -elevators (func_plat), cyclic movers (func_bobbing), jumppads (trigger_push) -and areas that hurt the player (trigger_hurt). -When "notteam" is set to "1" only bots using the travel flag TFL_NOTTEAM1 will -use the entity or move through the area. When "bot_notteam" is set to "2" only -bots using the travel flag TFL_NOTTEAM2 will use the entity or move through the -area. These travel flags can be used in the game source code. Using this entity -key also only has effect if the mod the map is being made for supports team based -navigation for bots. - - -Testing AAS files ------------------ - -One of the easiest ways to test the AAS file is to load the map in -Quake3 in teamplay mode (type /set g_gametype 3 on the console before -loading the map). Enter a team and add a bot to your team. Use the -team order menu (by default bound to the key F3) to command the bot -to follow you. Walk around the map and see if the bot is able to -follow you everywhere. - -Map bugs can sometimes cause certain places in the map to show up -'solid' in the AAS file. The bots cannot travel through these 'solid' -areas. To test for these 'solid' places set the cvar bot_testsolid -to 1 on the console. (type /set bot_testsolid 1) The map has to be -started with devmap instead of map before the cvar bot_testsolid can -be set. When the cvar is set to 1 then either "empty area" or -"SOLID area" will be printed on the screen while traveling through a map. -Several map bugs can cause these 'solid' places in the AAS file. -- Sometimes microscopic brushes are left over after a brush CSG. Search - for such brushes in the problem area and delete them. -- Tiny brush faces (not curves) can also cause problems. Due to vertex - snapping in the q3map tool those tiny brush faces can be snapped out - of existence. Such faces will not show up in Quake3 and you'll see - tiny peek holes or slits where you can view through the geometry. - Allign vertexes of and edges of adjacent brushes to remove and avoid - such tiny faces. Placing a clip brush in front of the face that is - snapped out of existence will also remove the 'solid' area but ofcourse - it's much better to remove the peek holes and slits. -- Another cause could be a brush with a collapsed side. Check how many - sides a brush has and how many sides actually have a surface. Rebuild - brushes with collapsed sides. -- All faces contained within liquid brushes using a shader without - "surfaceparm trans" set will be removed. Those contained surfaces will - not be visible and can cause the liquid to appear "solid" in the AAS file. - -If you insist creating an AAS file for a map with bugs then the option --forcesidesvisible can be used. This should fix all the problems with areas -showing up solid in the AAS file. However creating an AAS file with this -option takes a lot longer (often more than twice the normal compile time). - -Clusters can be tested with the cvar bot_testclusters. -(type "/set bot_testclusters 1" on the console) - -Jumppads can also be tested. Type the following on the Quake3 console -before loading your map: - -/set bot_maxdebugpolys 1024 -/set bot_visualizejumppads 1 -/set bot_forcereachability 1 - -Now load the map. A counter will be shown and goes from 0% to 100%. -When the counter has reached 100% type /set bot_debug 1 and -/set r_debugSurface 2 on the console. For every jumppad the -default arch of travel (without using air control) will be visualized. -This only works if your .aas file is not optimized. - - -Error messages --------------- - -Level designers should not worry too much about the following messages and/or warnings. The things reported are non fatal and won't cause any major problems. Some of the messages are just debug left overs. - -"AAS_CheckArea: area %d face %d is flipped\n" -"AAS_CheckArea: area %d center is %f %f %f\n" -"AAS_CheckFaceWindingPlane: face %d winding plane unequal to face plane\r\n" -"AAS_CheckFaceWindingPlane: face %d winding reversed\r\n" -"area %d face %d flipped: front area %d, back area %d\n" -"area %d face %d is tiny\r\n" -"face %d and %d, same front and back area but flipped planes\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_SplitArea: back area without faces\n" -"gsubdiv: area %d has a tiny winding\r\n" -"AAS_TestSplitPlane: tried face plane as splitter\n" -"found %d epsilon faces trying to split area %d\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_GetFace: face %d had degenerate edge %d-%d\r\n" -"AAS_GetFace: face %d was tiny\r\n" -"WARNING: huge winding\n" -"bogus brush after clip" -"split removed brush" -"split not on both sides" -"two tiny brushes\r\n" -"possible portal: %d\r\n" -"portal %d: area %d\r\n" -"WARNING: CM_GridPlane unresolvable\n" -"WARNING: CM_AddFacetBevels... invalid bevel\n" -"WARNING: CM_SetBorderInward: mixed plane sides\n" -"WARNING: bevel plane already used\n" -"trigger_multiple model = \"%s\"\n" -"trigger_teleport model = \"%s\"\n" -"found a trigger_push with velocity %f %f %f\n" -"AAS_TraceBoundingBox: stack overflow\n" -"AAS_TraceAreas: stack overflow\n" -"AAS_LinkEntity: stack overflow\n" -"MergeWindings: degenerate edge on winding %f %f %f\n" -"Warning: MergeWindings: front to back found twice\n" -"FindPlaneSeperatingWindings: winding1 non-convex\r\n" -"FindPlaneSeperatingWindings: winding2 non-convex\r\n" - - -When one of the following messages, errors or warnings is found then there is often something to be fixed. - -"WARNING! HashVec: point %f %f %f outside valid range\n" -"This should never happen!\n" - While storing the AAS file some vertex was found outside the valid map bounds. When this happens some part of the map is likely to have badly aligned brushes or weird shaped curves. Clipping off or rebuilding complex shapes often helps. -"trigger_push start solid\n" - The trigger_push start point is in solid. Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_push without target entity %s\n" - Could not find the target entity of the trigger_push with the target field %s. -"trigger_push without time\n" - trigger_push entity found without "time" field. -"trigger_multiple not in any jump pad area\n" -"trigger_push not in any jump pad area\n" - A trigger_push entity was found not to be in any valid jumppad area. (the message states trigger_multiple but it should have been trigger_push) Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_multiple at %1.0f %1.0f %1.0f without target\n" - A trigger multiple was found at the given coordinates without a "target" field. -"target_teleporter without target\n" - A target_teleporter entity was found without target field. -"trigger_teleport at %1.0f %1.0f %1.0f without target\n" - A trigger_teleport entity was found at the given coordinates without "target" field. -"teleporter without misc_teleporter_dest (%s)\n" - The destination of a teleporter with target field %s could not be found. -"teleporter destination (%s) without origin\n" - A teleporter destination with the target name %s was found without origin field. -"teleporter destination (%s) in solid\n" - A teleporter destination with the targetname %s was found to be in solid. -"teleported into slime or lava at dest %s\n" - A player would be pushed into slime or lave at the teleporter destination with the targetname %s. -"trigger_multiple not in any area\n" - A teleporter trigger was found not to be in any valid area. Try moving the trigger around a bit. -"func_plat without model\n" - A func_plat entity was found without model field. -"func_plat with invalid model number\n" - A func_plat entity was found with the model field set to some invalid number. -"func_bobbing without model\n" - A func_bobbing entity was found without model field. -"func_bobbing with invalid model number\n" - A func_bobbing entity was found with the model field set to some invalid number. -"%s in solid at (%1.1f %1.1f %1.1f)\n" - An item with classname %s was found to be in solid at the given coordinates. -"empty aas link heap\n" - Some part of the map has some rather complex clipping. Reduce the geometric complexity or use clip brushes to reduce the clipping complexity. -"too many entities in BSP file\n" - There are too many entities in the bsp file. -"error opening %s\n" - Could not create a new AAS file. Hard disk might be full. -"error writing lump %s\n" - Could not write an AAS lump to file. Hard disk might be full. - - - -Version Changes ---------------- - -2.1h (2001-03-28) - -- fixed crash bug - -2.1g (2001-02-18) - -- added bot_notteam support on trigger_hurt entities - - -2.1f (2001-02-06) - -- added some AAS statistics -- don't flood through faces when creating clusters - - -2.1e (2001-01-10) - -- fix map size limitation - - -2.1d (2000-12-17) - -- renamed "notteam" to "bot_notteam" - - -2.1c (2000-11-02) - -- added fs_maxfallheight -- compiled with larger map size bounds - - -2.1b (2000-09-15) - -- fixed cfg file loading - - -2.1 (2000-06-28) - -- added model numbers for AREACONTENTS_MOVER -- added team based func_plat, func_bobbing, trigger_teleport and trigger_push reachabilities - - -2.0 (2000-06-21) - -- fixed swim reachabilities -- fixed some reachabilities through cluster portals -- fixed jump reachabilities -- changed some start travel times -- added travel time settings to cfg - - -1.9 (2000-03-27) - -- fixed func_bobbing entities with origin brush - - -1.8 (2000-01-14) - -- fixed trigger_teleport bug. -- increased max map bounds to (-8192, -8192, -8192)-(8192, 8192, 8192) -- increased max points on winding -- made "HashVec: point x y z outside valid range" non-fatal -- fixed rocket jump reachabilities -- added force sides visible option -- increased simulated stack size for area traces - - -1.7 (1999-12-22) - -- fixed ducked bounding box size -- fixed sv_maxsteepness being zero in aas configuration -- AAS files are now automatically stored in BSP file folder -- fixed crash bug caused by overflow of a simulated stack diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base b/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base deleted file mode 100644 index 47e43c80..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base +++ /dev/null @@ -1,78 +0,0 @@ -//=========================================================================== -// BSPC configuration file -// Quake3 -//=========================================================================== - -#define PRESENCE_NONE 1 -#define PRESENCE_NORMAL 2 -#define PRESENCE_CROUCH 4 - -// more bounding boxes can be added if required -// always minimize the number of bounding boxes listed here to reduce AAS file size -// for instance if players cannot crouch then it's good to remove the bbox definition for it - -//bounding box when running/walking -bbox //30x30x56 -{ - presencetype PRESENCE_NORMAL - flags 0x0000 - mins {-15, -15, -24} - maxs {15, 15, 32} -} - -// bounding box when crouched -bbox //30x30x40 -{ - presencetype PRESENCE_CROUCH - flags 0x0001 - mins {-15, -15, -24} - maxs {15, 15, 16} -} - -// do not forget settings as they might not be defaulted correctly when this cfg is used -settings -{ - // physics settings - phys_gravitydirection {0, 0, -1} // direction of gravity - phys_friction 6 // friction - phys_stopspeed 100 // stop speed - phys_gravity 800 // gravity - phys_waterfriction 1 // friction in water - phys_watergravity 400 // gravity in water - phys_maxvelocity 320 // maximum run speed - phys_maxwalkvelocity 320 // maximum walk speed (set for running) - phys_maxcrouchvelocity 100 // maximum crouch speed - phys_maxswimvelocity 150 // maximum swim speed - phys_walkaccelerate 100 // acceleration for walking - phys_airaccelerate 0 // acceleration flying through the air - phys_swimaccelerate 0 // acceleration for swimming - phys_maxstep 18 // maximum step height - phys_maxsteepness 0.7 // maximum floor steepness a player can walk on - phys_maxwaterjump 19 // maximum height for an out of water jump - phys_maxbarrier 33 // maximum barrier a player can jump onto - phys_jumpvel 270 // jump velocity - phys_falldelta5 40 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - phys_falldelta10 60 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - // reachability settings - // the following are all additional travel times added - // for certain reachabilities in 1/100th of a second - rs_waterjump 400 - rs_teleport 50 - rs_barrierjump 100 - rs_startcrouch 300 - rs_startgrapple 500 - rs_startwalkoffledge 70 - rs_startjump 300 - rs_rocketjump 500 - rs_bfgjump 500 - rs_jumppad 250 - rs_aircontrolledjumppad 300 - rs_funcbob 300 - rs_startelevator 50 - rs_falldamage5 300 // avoid getting 5 damage - rs_falldamage10 500 // avoid getting 10 damage - // if != 0 then this is the maximum fall height a reachability can be created for - rs_maxfallheight 0 - // maximum height a bot may fall down when jumping to some location - rs_maxjumpfallheight 450 -} diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base b/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base deleted file mode 100644 index bf45f9f5..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base +++ /dev/null @@ -1,75 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -headmodel = *callisto/lily - -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - -------------------------------------------------- -headmodel = callisto/lily - -models/players/callisto/lily/head_default.skin -models/players/callisto/head_lily.skin -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red - -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red - -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red -teamName = Stroggs - -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red -teamName = Stroggs - -models/players/callisto/lily/Stroggs/head_red.skin -models/players/callisto/Stroggs/head_red.skin -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base b/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base deleted file mode 100644 index 6b8d7197..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base +++ /dev/null @@ -1,65 +0,0 @@ - - - - - Compiling Manual - - - - - - - -

- - - diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base b/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base deleted file mode 100644 index b0f4a011..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base +++ /dev/null @@ -1,73 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -model = hunter/harpy - - -legs: - models/players/hunter/lower_harpy_default.skin - models/players/hunter/lower_harpy.skin - models/players/characters/james/lower_harpy_default.skin - models/players/characters/james/lower_harpy.skin -torso: - models/players/hunter/upper_harpy_default.skin - models/players/hunter/upper_harpy.skin - models/players/characters/hunter/upper_harpy_default.skin - models/players/characters/hunter/upper_harpy.skin - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_model = hunter/harpy -team = red - -legs: - models/players/hunter/lower_harpy_red.skin - models/players/hunter/lower_red.skin - models/players/characters/hunter/lower_harpy_red.skin - models/players/characters/hunter/lower_red.skin -torso: - models/players/hunter/upper_harpy_red.skin - models/players/hunter/upper_red.skin - models/players/characters/hunter/upper_harpy_red.skin - models/players/characters/hunter/upper_red.skin - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_model = james/badass -team = red -teamName = Stroggs - -legs: - models/players/james/Stroggs/lower_badass_red.skin - models/players/james/Stroggs/lower_red.skin - models/players/james/lower_badass_red.skin - models/players/james/lower_red.skin - models/players/characters/james/Stroggs/lower_badass_red.skin - models/players/characters/james/Stroggs/lower_red.skin - models/players/characters/james/lower_badass_red.skin - models/players/characters/james/lower_red.skin -torso: - models/players/james/Stroggs/upper_badass_red.skin - models/players/james/Stroggs/upper_red.skin - models/players/james/upper_badass_red.skin - models/players/james/upper_red.skin - models/players/characters/james/Stroggs/upper_badass_red.skin - models/players/characters/james/Stroggs/upper_red.skin - models/players/characters/james/upper_badass_red.skin - models/players/characters/james/upper_red.skin - - - diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base b/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base deleted file mode 100644 index 1b84545a..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base +++ /dev/null @@ -1,410 +0,0 @@ - - - - - Q3Map Manual - - - - - -

Q3map Manual

- -
- - - - -
-

q3map command line switches:

-
-q3map
------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--glview
-	Write a .gl file of the bsp tree for debugging.
--v
-	Output verbose information.
--draw
-	Enable realtime debug drawing output.
--nowater
-	Water, slime and lava brushes are not compiled and won't show up when running the map in Quake.
--noopt
-	unused.
--nofill
-	unused.
--nodetail
-	Detail brushes are not compiled and won't show up when running the map in Quake.
--fulldetail
-	Detail brushes will be treated as normal brushes.
--onlyents
-	Only change the entities in a .bsp using a .ent file.
--onlytextures
-	Only change the textures in a .bsp file.
--micro
-	unused.
--nofog
-	Visible surfaces that cross fog boundaries will not be split along the bound.
-	This can cause visually incorrect fog in the map.
--nosubdivide
-	Visible surfaces are not subdivided as required by shader tesselation.
-	The shader parameter "tesssize" sets the tesselation of a surface.
--leaktest
-	Only test the map for leaks. If a leak is found the compilation is stopped.
--verboseentities
-	Output verbose information about entity sub-models.
--nocurves
-	Curves are not compiled and won't show up when running the map in Quake.
--notjunc
-	T-junctions are not fixed. This can cause tiny slits where a surface meets halfway another surface.
--expand
-	Expands all the brush planes and saves a new map out to allow visual inspection of the clipping bevels
--tmpout
-	Output files to a folder called "tmp".
--fakemap
-	Write out a fakemap.map This map will contain a worldspawn entity with all the world brushes.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--custinfoparms
-	Will enable custom surface flags (see below)
-
-q3map -vis
-----------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--fast
-	Only calculate a very loose visiblity list. It doesn't take much time to
-	calculate but a lot more polygons will be drawn by the Q3 engine than necesary.
--merge
-	Merge bsp leaves before calculating the visibility list. This will speed up
-	the vis calculations but mostly more polygons will be drawn by the Q3 engine
-	than necesary.
--nopassage
-	Disable the passage visibility algorithm. The passage vis is faster and a bit more
-	tight than the old algorithm.
--level
-	unused.
--v
-	Output verbose information.
--nosort
-	Don't sort the portals on complexity. Sorting mostly speeds up visibility calculations
-	because more complex portals can use information from less complex portals.
--saveprt
-	Don't delete the .prt file after creating the visibility list.
--tmpin <path>
-	Input files will be read from a folder called "tmp".
--tmpout <path>
-	Output files will be written to a folder called "tmp".
-
-
-q3map -light
-------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--bounce <N> [NEW]
-	Enable radiosity calculation. Rediffuses the light emitted onto surfaces N
-	times. Will write out the BSP after every pass, so it can be cancelled.
-	Light reflected is the lightmap/vertex * texture color, subsampled to a certain
-	granularity across every lit surface. Use q3map_lightimage in a shader
-	to override the reflected color.
--bouncegrid [NEW]
-	Radiosity affects lightgrid (entity lighting).
--fast [NEW]
-	Enables light envelopes for area lights, speeding light up by 50x or more on
-	some maps. Has the side effect of dimmer maps with large numbers of dim surface
-	lights.
--fastgrid [NEW]
-	Same as fast, but only for lightgrid calculation.
--fastbounce [NEW]
-	Enables fast for radiosity passes only.
--cheap [NEW]
-	Stop calculating light at a sample when it exceeds (255, 255, 255). This may
-	produce odd artifacts on maps with lots of saturated colored lighting. Also,
-	do not use -cheap with radiosity if you wish to preserve all light emitted.
--cheapgrid [NEW]
-	Same as cheap, but only for lightgrid calculation.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--notrace
-	No light tracing is performed. As a result no shadows will be casted.
--patchshadows
-	Enable patches casting shadows.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--smooth [NEW]
-	Smart version of -extra. Only subsamples lightmap pixels that are shadowed.
-	Produces results comparable to -extra in roughly 1/3 the time. Can also be
-	used with -extra or -extrawide for 16- or 48-tap sampling respectively
-	(smoother shadows).
--extra
-	Take four samples per lightmap pixel and store the average light value of these
-	four samples for the actual lightmap pixel.
-	This super sampling is used for anti-aliasing.
--extrawide
-	Just like -extra four samples per lightmap pixel are calculated. However the
-	average of 12 samples is stored per lightmap pixel.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--border
-	Create a debugging border around the lightmap.
--v
-	Output verbose information.
--nosurf
-	Disables surface tracing (detail brushes and patches) for shadow calculation.
--dump
-	Dumps prefab files when used with radiosity for each bounce.
-
-
-q3map -vlight
--------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--nostitching
-	No polygon stitching before lighting.
--noalphashading
-	Don't use alpha shading at all.
--nocolorshading
-	Don't use colored alpha shading. The alpha channel will be used as if it were binary.
-	The light goes through or not and does not change color.
--tracelight
-	Use the "-light" light algorithm for all surface unless a surface
-	uses a shader with the shader option "q3map_vlight".
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--v
-	Output verbose information.
-
- - - -

The q3map options are a subset of the shader instructions that require -recompiling of the map.

- -

q3map_bounce <fraction>

-

      [NEW] -Specify a number between 0 and 1.0 (or higher) to scale the amount of light reflected in radiosity passes. -Default: 1.0

- -

q3map_nofast

-

      [NEW] -Surfaces that emit light with this shader parameter will disable -fast optimisation. Useful for -large areas of dim sky where you want all the dim light to reach all surfaces.

- -

q3map_tracelight

-

      [NEW] Surfaces using a shader with this option will always be lit with the -original "-light" light algorithm. Patches will not cast shadows on -this surface unless the shader option q3map_patchshadows is used.

-

q3map_patchshadows

-

      [NEW] When this option is used in conjunction with the original (-light) -lighting algorithm, surfaces with textures modified by this option will will -show shadows cast by curve patches (under normal circumstances, curve patches do -not cast shadows).

-

q3map_vertexshadows

-

      [NEW] By default, no shadows are cast on vertex-only lit surfaces (see -surfaceparm pointlight). Also when running Quake III Arena in vertex  lighting -mode, no shadows are cast upon any surfaces (shadows are part of the light map). -When using this shader option shadows *will* be cast on the surface when vertex -lit. However sharp shadow edges won't be seen on the surface because light -values are only calculated at the vertexes.

-

q3map_novertexshadows

-

      [NEW] Shaders used for misc_models and terrain can now use -q3map_novertexshadows to disable shadows to be cast at the vertex lit surfaces. -Shadows being cast at small misc_model objects often makes sense. However -shadows on large vertex lit terrain surfaces often look bad. By default no -shadows are cast at forced vertex list surfaces ( shaders with "pointlight" -).

-

q3map_forcesunlight

-

      [NEW] No sunlight is cast at vertex lit md3 models and terrain by default. -Using this option sunlight (overbright bits created by q3map_sun option) will be -cast on these surfaces.

-

q3map_vertexscale <scale>

-

      [NEW] The light value at the vertexes of a surface using a shader with this -option is multiplied by the scale value. This is a way to lighten or darken a -vertex light only surface in comparison to other, light-map lit surfaces around -it.

-

q3map_notjunc

-

      [NEW] Surfaces modified by a shader with this option are not used for -tjunction fixing.

-

q3map_vlight

-

      [NEW] Surfaces modified by a shader with this option will always be lit with -the "-vlight" algorithm when q3map is used with the options "-vlight --tracelight".

-

q3map_lightmapsamplesize <S>

-

      [NEW] Surfaces using a shader with this shader option will use lightmaps with -pixel size SxS. This option can be used to produce high resolution shadows on -certain surfaces or can be used to reduce the size of lightmap data where high -resolution shadows are not required.

-

q3map_lightimage <image>

-

      Image to use for the light color of a surface light instead of the image(s) -used by the shader. Color is averaged from the texture. Texture must be the same -size as the base image map.

-

q3map_surfacelight <value>

-

Sets the amount of light this surface emits.

-

q3map_lightsubdivide <value>

-

      A surface light is subdivided into a bunch of point lights for the actual -lighting of the world. This parameter controls the space between those point -lights. Default value is 120.

-

q3map_backsplash <percent> <distance>

-

      A surface light is also lit by itself using back splash point lights with a -lower intensity. The <percent> parameter specifies the intensity -percentage they use from the q3map_surfacelight <value> parameter. The -<distance> parameter controls the distance of these back splash lights -from the surface. You can set the <percent> to zero or a negative value to -disable the back splash lights.

-

      q3map_globaltexture

-

When this option is set the texture is not aligned to the world.

-

      q3map_backshader <shader>

-

<shader> is the path/name of the shader or texture to be used at the -back side of the surface.

-

      q3map_flare <shader>

-

Creates a flare using the specified <shader> at the center of the -surface using a shader with this option.

-

      light <value>

-

Old style flare specification always using the shader "flareshader". -The <value> parameter is unused.

-

      q3map_sun <red> <green> <blue> <intensity> -<degrees> <elevation>

-

Color will be normalized, so it doesn't matter what range you use. The -intensity falls off with angle but not distance. A value of 100 is a fairly -bright sun.

-

      degree of 0 = from the east, 90 = north, etc.

-

      elevation of 0 = sunrise/set, 90 = noon

-

      surfaceparm pointlight

-

Surfaces using a shader with this parameter will always be vertex lit

-

This option can be used to reduce the lightmap data. Often used on surfaces

-

that don't need any shadows.

- - -

Surfaceparm dust

-

If a player lands (jumps onto) on a surfaces using a shader with this -parameter, a put of dust will appear at the player’s feet. Note that the -worldspawn entity of that map must have an enableDust key set to a value of 1. -Note: This surfaceflag has been replaced by "surfaceparm woodsteps" in -Return to Castle Wolfenstien.

- - -

Custom surfaceparms

-
-

With the new q3map tool you can add custom surface parameters for mods -without the need to recompile the q3map tool. These custom surfaceparms are -stored in a file called ‘custinfoparms.txt’ in the folder scripts/. An -example of this file with the new surfaceparm treacle and surfaceparm grass is -shown below.

-

// Custom Infoparms File
-// Custom Contentsflags
-{
-treacle 0x4000
-}
-// Custom Surfaceflags
-{
-grass 0x80000
-}

-

 

- -

NOTE: For linux users, when using the -custinfoparms parameter q3map -first looks in your homedir, and only if it doesn't find a custinfoparms.txt -there, it uses the one stored in the

-

quake3 install dir (usually /usr/local/games).

-

 

-
-

Content Flags

-
-

Contents flags are flags similar to CONTENTS_FOG in the original Q3A. These -flags define the contents of volumes inside the game (for instance lava, fog, -water, etc.).

-

If you look in the source file game/surfaceflags.h, it has defines for all -contents flags. The define is split into a name and a hexadecimal value, for -instance CONTENTS_PLAYERCLIP 0x10000. These hexadecimal values are powers of 2 -and can be ored together (binary) to form a bit mask. Up to 32 contents flags -can be ored together this way.

- -

Example: creating a volume with treacle.

-

The following outlines how a custom contents flag can be added and used in a -mod. First open the ‘custinfoparms.txt’ file and add ‘treacle 0x4000’ -to the Custom Contentsflags section as shown in the example file above (0x4000 -is one of the unused values available for custom use). Next write a shader -script which uses ‘surfaceparm treacle’. Apply this new shader to all sides -of a brush in a test map. When you compile the map, add the -custinfoparms -parameter to the command line following q3map.

-

Next, add CONTENTS_TREACLE 0x4000 to the source file game/surfaceflags.h in -your mod. Now you can call the point contents function. If the point is inside -the brush with the shader using the ‘surfaceparm treacle’ then the point -contents call will return a bit mask with CONTENTS_TREACLE set. This can for -instance be used to slow down player movement when a player is inside such a -brush.

-

 

-
-

Surface Flags

-
-

The surface flags are texture properties that often affect entities in -contact with surfaces using such flags. The ‘surfaceparm metalsteps’ -parameter from Q3A is a good example.

-

If you look in the source file game/surfaceflags.h, it has defines for all -surface flags. The define is split into a name and a hexadecimal value, for -instance SURF_NODAMAGE 0x1. These hexadecimal values are powers of 2 and can be -ored together (binary) to form a bit mask. Up to 32 surface flags can be ored -together this way.

- -

Example: Making ‘footsteps on grass’ sounds

-

The following outlines how a custom surface flag can be added and used in a -mod. First open up the ‘custinfoparms.txt’ file and add 'grass 0x80000' to -the Custom Surfaceflags section as shown in the example file above (0x80000 is -the first available unused value in surfaceflags.h for surface flags). Next -write a shader script which uses a grass image and has 'surfaceparm grass’. -Create a test map with the grass shader covering the ground surface. When you -compile the map, add the -custinfoparms parameter to the command line following -q3map.

-

Next, add SURF_GRASS 0x80000 to the source file game/surfaceflags.h in your -mod. Now you'll be able to execute a trace and the trace information will be -returned in the trace_t structure. If the trace hits a surface with the grass -surfaceparm then the SURF_GRASS flag will be set in trace_t->surfaceFlags. -Such a trace can be used to trigger playing a sound of a person stepping on -grass. For a reference example, see the existing metal steps in the game code.

-

 

-
-

 

- -
- - - -

 

-
-
-

 

-

 

-

-27-

- - - - diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/bspc.txt b/install/installs/Q3Pack/install/docs/Compile_Manual/bspc.txt deleted file mode 100644 index 0547b97b..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/bspc.txt +++ /dev/null @@ -1,565 +0,0 @@ - - -Title: BSP Converter -Version: 2.1h -Date: 2001-03-28 -Author: Mr. Elusive - - -Description ------------ - -The BSPC tool is used to create AAS files from BSP files. -An AAS file is a file with areas used by the Quake III Arena bot in order -to navigate and understand a map. The Quake III Arena maps are stored in -BSP files. - - -Usage ------ - -bspc [- [- ...]] - -Example 1: bspc -bsp2aas d:\quake3\baseq3\maps\mymap?.bsp -Example 2: bspc -bsp2aas d:\quake3\baseq3\pak0.pk3\maps/q3dm*.bsp - -Switches: - bsp2aas <[pakfilter/]filter.bsp> = convert BSP to AAS - reach = compute reachability & clusters - cluster = compute clusters - aasopt = optimize aas file - output = set output path - threads = set number of threads to X - cfg = use this cfg file - optimize = enable optimization - noverbose = disable verbose output - breadthfirst = breadth first bsp building - nobrushmerge = don't merge brushes - freetree = free the bsp tree - nocsg = disables brush chopping - forcesidesvisible = force all sides to be visible - grapplereach = calculate grapple reachabilities - - -Several metacharacter may be used in the filter and pakfilter. - -* match any string of zero or more characters -? match any single character -[abc...] match any of the enclosed characters; a hyphen can - be used to specify a range (e.g. a-z, A-Z, 0-9) - -.pk3 files are accessed as if they are normal folders. For instance -use "d:\quake3\baseq3\pak0.pk3\maps/q3dm1.bsp" to access the -map q3dm1.bsp from the pak0.pk3 file. - -Multiple files may be listed after the switches bsp2map, bsp2aas, reach, -cluster and aasopt. - -If a BSP file is being converted to an AAS file and no output path -is entered on the command-line then the AAS file will automatically -be stored in the same folder as the BSP file. However if the BSP file -was stored in a .pk3 file then the AAS file will be stored in a folder -with the name 'maps' outside the .pk3 file. - - -Updating entity lump --------------------- - -If an AAS file is already available for a BSP file and you ONLY change -the entities inside this BSP file then you only have to recalculate the -reachabilities. This way you can move items, platforms etc. around -without the need to recalculate the whole AAS file which can save quite -some compile time. You can recalculate the reachabilities as follows: - -bspc -reach mymap.bsp - -Where mymap.bsp is the BSP file. The mymap.aas file has to be in the -same folder as mymap.bsp or should be in the output folder specified -with the -output option. - -Keep in mind that as soon as ANY geometry in the map changes the whole -AAS file HAS to be recalculated in order to play with bots. - -NOTE: -reach does not work on optimized .AAS files! -NOTE: don't use -reach when moving the position of doors. - - -Leaks ------ - -Just like there can be vis leaks in a map there can also be clipping -leaks. Two things can be wrong when the BSPC tool outputs that a map -leaks. - -1. There are no entities in the map at all, or all entities that are -actually in the map are placed in solid. In this case the BSPC tool -outputs "WARNING: no entities inside". (At least a player start entity -is needed to load a map.) - -2. There is a spot in the map where players can go outside the map -into the void. This is bad, players should never be able to fall out -of a level. In this case the BSPC tool outputs "WARNING: entity -reached from outside". The BSPC tool also writes a mymap.lin file -that can be loaded in the Q3Radiant editor to show lines that go -through the actual leak. - -Make sure the .lin file is stored in the same folder as where q3radiant -stores the .bsp file. Load the map in q3radiant and use the -menu -> File -> Pointfile... to load the .lin file. A thick red line -will be shown in the map. Follow this line to find the leak. - - -Map bounds ----------- - -Currently a map should be within the bounds (-65536, -65536, -65536) - -(65536, 65536, 65536) for the bspc tool to compile. These are the same -limits the q3map tool has. - - -Physics -------- - -The player bounding box is a 30 units by 30 units square with a height -of 56 units. If we assume 1.75 meters being the average height of a human -and a player in Quake III Arena being 56 units high we get 32 units = 1 meter. - -Maximum step height of a player is 18 units (just keep steps 16 units or -lower). - -The maximum water jump height for bots has been set to 18 units. (height -difference between water surface and the floor jumping onto). If the -waterjump height is made higher human players will have a hard time getting -out of the water. - -With normal gravity and without the quad the maximum rocket jump height is -around 280 units (you can sometimes jump a few units higher but this is a -safe value for reference). - -The maximum height for barriers the bots will jump on is 32 units. - -Some math to calculate some other values of interest: - -gravity = 800; -jump velocity = 270; -max vertical rocketjump velocity = 670; -max run velocity = 320; -max step height = 18; - -max jump height = 0.5 * gravity * (jumpvelocity/gravity)*(jumpvelocity/gravity); -max jump height = 45 units; -NOTE: even though this is the mathematical maximum jump height always keep -the the 32 units maximum barrier height for bots in mind when building maps. - -maximum horizontal jump distance over a gap from one spot to another both -at the same height: - -t = sqrt((maxjumpheight + maxstep) / (0.5 * gravity)); -t = 0.3986 seconds; -dist = maxrunvelocity * (t + jumpvelocity / gravity); -dist = 235 units; -Because players use a bounding box we can jump a full bounding box width -furter in the ideal case. (15 units at the jump start and 15 at the -landing place). -235 + 15 + 15 = 265 units. -Again this is the mathematical maximum which players can only reach under -ideal circumstances. - - -Optimizing a map for bspc -------------------------- - -Hint brushes have no effect on the bspc tool. Only solid, clip, liquid, -cluster portal and do not enter brushes are used by the bspc tool. - -The bspc tool outputs how many areas are created for a map. Less areas -is better. Often the number of areas can be reduced by adding additional -clip brushes. By adding these additional clip brushes the complexity -of the geometry used for collision can be reduced. Do not add clip -brushes in front of the complex geometry but get the complex shaped -geometry contained within these clip brushes. Things that should be -contained within clip brushes are small or complex shaped (often detail) -brushes and complex and twisted curves, but also more regular curves -can be placed within a clip brush. When containing a curve within a -clip brush it's preferred to place the whole curve within the clip -brush (not just part of the curve). -Note: you can make brushes or curves non-solid when they are contained -within *full* clip or *weap* clip brushes to speed up bspc calculations. - -Always try to align your geometry to the grids. Always use the largest -grid possible for alignment of your geometry. Also try to align the -back sides of brushes which may not be visible. The more brush sides -are aligned the better. This will also speed up bspc calculations. - -Align adjacent brushes as much as possible. Make sure no tiny faces are -created due to badly aligned brushes. - -Quite often there are places in a map that are visible to players -but that players can never get to. Players would be able to walk around there -but since players can never reach such places they will never actually -move around there. If players are never able to get to such places -it's better to put a large clip brush which encloses that whole space. -This will also speed up bspc calculations and reduce the number of areas -created by the bspc tool. - -Note: the number of areas relative to the map size tells something about -the navigation complexity for players in general (also human players). -Reducing the collision complexity for bots also makes the map easier to -navigate for human players - - -func_plat and func_bobbing --------------------------- - -When func_plat or func_bobbing entities are placed in a map the bots will -use them if possible. The bots assume they can stand on top of the bounding -box of the model used for the func_plat or func_bobbing entity. As a result -creating complex shaped func_plat or func_bobbing models is mostly a bad -idea. You have to make sure the bots (and players) can actually stand -everywhere ontop of the bounding box of the model. - - -Cluster Portals ---------------- - -A map is divided into areas. Several of these areas can be grouped together -to create a cluster. The clusters are seperated by cluster portals which are -areas themselves. One of the things the bot uses these clusters for is a -multi-level routing algorithm. When a map is efficiently divided up into -clusters bot calculations will be faster. - -several things to take into account: - -- The BSPC tool tries to create cluster portals automatically but additional - cluster portals can be created by placing "clusterportal" brushes. -- Cluster portals are manually created by placing "clusterportal" brushes - inside the map. -- Cluster portal brushes are a tool to optimize a map for CPU usage by the - bots. They are not needed for the bots to operate correctly. -- The "clusterportal" brushes should not be used outside the world hull. -- The cluster portals do not have any effect on vis. -- If a door is already sealed with an areaportal brush, a clusterportal is - not necessary there. (area portals are also used as cluster portals). -- Just like the area portals, the cluster portals must seal a space off - entirely from other areas. -- The cluster portal areas should seal off a cluster in a way that the only - path towards another cluster is through a cluster portal area. -- Only create cluster portals where people can walk or swim through. -- Don't create cluster portals in gaps in the floor. (people would fall through) -- If you have two sealed off clusters and you add a teleporter between them - then the two clusters will be merged again because of the teleporter. -- Cluster portals must seperate no more and no less than two (2) clusters. -- Try to create clusters with all the same number of 'reachability' areas. - for instance if the map has 5400 areas try to create 10 clusters with 540 - areas each, or 12 clusters with 450 areas each, etc. The BSPC tool lists - the number of reachability areas in each cluster. - With Q3A version 1.25 and up you can use /set bot_testclusters 1 on the - console and the area number and cluster number you're in will be printed - on the screen. These cluster number correspond to the cluster numbers - the BSPC tool prints. -- Minimize the number of clusters with only a few (less than 10) areas. -- When adding "cluster portal" brushes try to place them in places with - minimal geometric complexity. For instance place them inside convex door - openings or small hallways (not infront of door openings). Ideally the shape - of the face through which a player walks or swims into the cluster portal - is the same as the shape of the face through which a player leaves the - cluster portal. Also ideally the open space inside the cluster portal - brush is convex. -- Make cluster portals about 16 or 32 units thick or align them with - adjacent geometry. Don't make them too thick though. -- Minimize the total number of cluster portal areas at all times. The more - cluster portal areas you have the more CPU the bots need. -- Items have no effect at all on the creation of areas or clusters. - The same goes for item_botroam. - - -Do Not Enter areas ------------------- - -When bot navigation problems show up or you want to make sure a bot never tries -to go to a certain place "do not enter" brushes can be used. - -several things to take into account: - -- The "do not enter" brushes should not be used outside the world hull. -- The "do not enter" brush is Not a clip brush for the bot. -- The "do not enter" brush is a tool of last resort. Do not use it unless - there are serious navigation problems. -- The number of "do not enter" brushes should be minimized because these - brushes create additional areas for the bots. -- The "do not enter" brush will create a New area that the bot will try to - avoid. However if the bot somehow ends up in a "do not enter" area or there - is a valid goal inside the "do not enter" area then the bot is allowed to - go into and out of that area. So if the bot somehow gets in a "do not enter" - area the bot will be able to get out. - - -Bot roaming ------------ - -The item_botroam entity can be used when a bot does not roam the whole level -or prefers to go to only specific areas. This (invisible) item can be placed -in a map just like regular items. Nobody can actually pick up the item it's -only used to attract bots to certain places of the map. The item_botroam has -a key "origin". The value is set by Q3Radiant automatically. The item_botroam -also has a key "weight". The value is the weight of the roam item and is -relative to the weight of other items in the map. The bot character specific -item weights are stored with the bot characters in the botfiles/bots/ sub-folder -in the .pk3 file. The value of the weight is a non-zero floating point value, -most often in the range 0 to 400. (Higher values are allowed but keep in mind -that the bot should also still go for normal items, so don't make the -item_botroam weight to high.) - -When a bot should never go for a specific item the key "notbot" with value "1" -can be used for that item. This key with value can be used for every available -item in Quake III Arena. - -The suspended flag can be used on all items (item_botroam included). -However keep in mind that when a suspended item is not anywhere near the -ground the bot will ONLY try to go for this suspended item using jump pads. - - -Team based entities -------------------- - -You can use the "bot_notteam" entity key with value "1" or "2" on teleporters -(trigger_teleport or trigger_multiple pointing at a target_teleporter), -elevators (func_plat), cyclic movers (func_bobbing), jumppads (trigger_push) -and areas that hurt the player (trigger_hurt). -When "notteam" is set to "1" only bots using the travel flag TFL_NOTTEAM1 will -use the entity or move through the area. When "bot_notteam" is set to "2" only -bots using the travel flag TFL_NOTTEAM2 will use the entity or move through the -area. These travel flags can be used in the game source code. Using this entity -key also only has effect if the mod the map is being made for supports team based -navigation for bots. - - -Testing AAS files ------------------ - -One of the easiest ways to test the AAS file is to load the map in -Quake3 in teamplay mode (type /set g_gametype 3 on the console before -loading the map). Enter a team and add a bot to your team. Use the -team order menu (by default bound to the key F3) to command the bot -to follow you. Walk around the map and see if the bot is able to -follow you everywhere. - -Map bugs can sometimes cause certain places in the map to show up -'solid' in the AAS file. The bots cannot travel through these 'solid' -areas. To test for these 'solid' places set the cvar bot_testsolid -to 1 on the console. (type /set bot_testsolid 1) The map has to be -started with devmap instead of map before the cvar bot_testsolid can -be set. When the cvar is set to 1 then either "empty area" or -"SOLID area" will be printed on the screen while traveling through a map. -Several map bugs can cause these 'solid' places in the AAS file. -- Sometimes microscopic brushes are left over after a brush CSG. Search - for such brushes in the problem area and delete them. -- Tiny brush faces (not curves) can also cause problems. Due to vertex - snapping in the q3map tool those tiny brush faces can be snapped out - of existence. Such faces will not show up in Quake3 and you'll see - tiny peek holes or slits where you can view through the geometry. - Allign vertexes of and edges of adjacent brushes to remove and avoid - such tiny faces. Placing a clip brush in front of the face that is - snapped out of existence will also remove the 'solid' area but ofcourse - it's much better to remove the peek holes and slits. -- Another cause could be a brush with a collapsed side. Check how many - sides a brush has and how many sides actually have a surface. Rebuild - brushes with collapsed sides. -- All faces contained within liquid brushes using a shader without - "surfaceparm trans" set will be removed. Those contained surfaces will - not be visible and can cause the liquid to appear "solid" in the AAS file. - -If you insist creating an AAS file for a map with bugs then the option --forcesidesvisible can be used. This should fix all the problems with areas -showing up solid in the AAS file. However creating an AAS file with this -option takes a lot longer (often more than twice the normal compile time). - -Clusters can be tested with the cvar bot_testclusters. -(type "/set bot_testclusters 1" on the console) - -Jumppads can also be tested. Type the following on the Quake3 console -before loading your map: - -/set bot_maxdebugpolys 1024 -/set bot_visualizejumppads 1 -/set bot_forcereachability 1 - -Now load the map. A counter will be shown and goes from 0% to 100%. -When the counter has reached 100% type /set bot_debug 1 and -/set r_debugSurface 2 on the console. For every jumppad the -default arch of travel (without using air control) will be visualized. -This only works if your .aas file is not optimized. - - -Error messages --------------- - -Level designers should not worry too much about the following messages and/or warnings. The things reported are non fatal and won't cause any major problems. Some of the messages are just debug left overs. - -"AAS_CheckArea: area %d face %d is flipped\n" -"AAS_CheckArea: area %d center is %f %f %f\n" -"AAS_CheckFaceWindingPlane: face %d winding plane unequal to face plane\r\n" -"AAS_CheckFaceWindingPlane: face %d winding reversed\r\n" -"area %d face %d flipped: front area %d, back area %d\n" -"area %d face %d is tiny\r\n" -"face %d and %d, same front and back area but flipped planes\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_SplitArea: back area without faces\n" -"gsubdiv: area %d has a tiny winding\r\n" -"AAS_TestSplitPlane: tried face plane as splitter\n" -"found %d epsilon faces trying to split area %d\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_GetFace: face %d had degenerate edge %d-%d\r\n" -"AAS_GetFace: face %d was tiny\r\n" -"WARNING: huge winding\n" -"bogus brush after clip" -"split removed brush" -"split not on both sides" -"two tiny brushes\r\n" -"possible portal: %d\r\n" -"portal %d: area %d\r\n" -"WARNING: CM_GridPlane unresolvable\n" -"WARNING: CM_AddFacetBevels... invalid bevel\n" -"WARNING: CM_SetBorderInward: mixed plane sides\n" -"WARNING: bevel plane already used\n" -"trigger_multiple model = \"%s\"\n" -"trigger_teleport model = \"%s\"\n" -"found a trigger_push with velocity %f %f %f\n" -"AAS_TraceBoundingBox: stack overflow\n" -"AAS_TraceAreas: stack overflow\n" -"AAS_LinkEntity: stack overflow\n" -"MergeWindings: degenerate edge on winding %f %f %f\n" -"Warning: MergeWindings: front to back found twice\n" -"FindPlaneSeperatingWindings: winding1 non-convex\r\n" -"FindPlaneSeperatingWindings: winding2 non-convex\r\n" - - -When one of the following messages, errors or warnings is found then there is often something to be fixed. - -"WARNING! HashVec: point %f %f %f outside valid range\n" -"This should never happen!\n" - While storing the AAS file some vertex was found outside the valid map bounds. When this happens some part of the map is likely to have badly aligned brushes or weird shaped curves. Clipping off or rebuilding complex shapes often helps. -"trigger_push start solid\n" - The trigger_push start point is in solid. Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_push without target entity %s\n" - Could not find the target entity of the trigger_push with the target field %s. -"trigger_push without time\n" - trigger_push entity found without "time" field. -"trigger_multiple not in any jump pad area\n" -"trigger_push not in any jump pad area\n" - A trigger_push entity was found not to be in any valid jumppad area. (the message states trigger_multiple but it should have been trigger_push) Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_multiple at %1.0f %1.0f %1.0f without target\n" - A trigger multiple was found at the given coordinates without a "target" field. -"target_teleporter without target\n" - A target_teleporter entity was found without target field. -"trigger_teleport at %1.0f %1.0f %1.0f without target\n" - A trigger_teleport entity was found at the given coordinates without "target" field. -"teleporter without misc_teleporter_dest (%s)\n" - The destination of a teleporter with target field %s could not be found. -"teleporter destination (%s) without origin\n" - A teleporter destination with the target name %s was found without origin field. -"teleporter destination (%s) in solid\n" - A teleporter destination with the targetname %s was found to be in solid. -"teleported into slime or lava at dest %s\n" - A player would be pushed into slime or lave at the teleporter destination with the targetname %s. -"trigger_multiple not in any area\n" - A teleporter trigger was found not to be in any valid area. Try moving the trigger around a bit. -"func_plat without model\n" - A func_plat entity was found without model field. -"func_plat with invalid model number\n" - A func_plat entity was found with the model field set to some invalid number. -"func_bobbing without model\n" - A func_bobbing entity was found without model field. -"func_bobbing with invalid model number\n" - A func_bobbing entity was found with the model field set to some invalid number. -"%s in solid at (%1.1f %1.1f %1.1f)\n" - An item with classname %s was found to be in solid at the given coordinates. -"empty aas link heap\n" - Some part of the map has some rather complex clipping. Reduce the geometric complexity or use clip brushes to reduce the clipping complexity. -"too many entities in BSP file\n" - There are too many entities in the bsp file. -"error opening %s\n" - Could not create a new AAS file. Hard disk might be full. -"error writing lump %s\n" - Could not write an AAS lump to file. Hard disk might be full. - - - -Version Changes ---------------- - -2.1h (2001-03-28) - -- fixed crash bug - -2.1g (2001-02-18) - -- added bot_notteam support on trigger_hurt entities - - -2.1f (2001-02-06) - -- added some AAS statistics -- don't flood through faces when creating clusters - - -2.1e (2001-01-10) - -- fix map size limitation - - -2.1d (2000-12-17) - -- renamed "notteam" to "bot_notteam" - - -2.1c (2000-11-02) - -- added fs_maxfallheight -- compiled with larger map size bounds - - -2.1b (2000-09-15) - -- fixed cfg file loading - - -2.1 (2000-06-28) - -- added model numbers for AREACONTENTS_MOVER -- added team based func_plat, func_bobbing, trigger_teleport and trigger_push reachabilities - - -2.0 (2000-06-21) - -- fixed swim reachabilities -- fixed some reachabilities through cluster portals -- fixed jump reachabilities -- changed some start travel times -- added travel time settings to cfg - - -1.9 (2000-03-27) - -- fixed func_bobbing entities with origin brush - - -1.8 (2000-01-14) - -- fixed trigger_teleport bug. -- increased max map bounds to (-8192, -8192, -8192)-(8192, 8192, 8192) -- increased max points on winding -- made "HashVec: point x y z outside valid range" non-fatal -- fixed rocket jump reachabilities -- added force sides visible option -- increased simulated stack size for area traces - - -1.7 (1999-12-22) - -- fixed ducked bounding box size -- fixed sv_maxsteepness being zero in aas configuration -- AAS files are now automatically stored in BSP file folder -- fixed crash bug caused by overflow of a simulated stack diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/cfgq3.c b/install/installs/Q3Pack/install/docs/Compile_Manual/cfgq3.c deleted file mode 100644 index 47e43c80..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/cfgq3.c +++ /dev/null @@ -1,78 +0,0 @@ -//=========================================================================== -// BSPC configuration file -// Quake3 -//=========================================================================== - -#define PRESENCE_NONE 1 -#define PRESENCE_NORMAL 2 -#define PRESENCE_CROUCH 4 - -// more bounding boxes can be added if required -// always minimize the number of bounding boxes listed here to reduce AAS file size -// for instance if players cannot crouch then it's good to remove the bbox definition for it - -//bounding box when running/walking -bbox //30x30x56 -{ - presencetype PRESENCE_NORMAL - flags 0x0000 - mins {-15, -15, -24} - maxs {15, 15, 32} -} - -// bounding box when crouched -bbox //30x30x40 -{ - presencetype PRESENCE_CROUCH - flags 0x0001 - mins {-15, -15, -24} - maxs {15, 15, 16} -} - -// do not forget settings as they might not be defaulted correctly when this cfg is used -settings -{ - // physics settings - phys_gravitydirection {0, 0, -1} // direction of gravity - phys_friction 6 // friction - phys_stopspeed 100 // stop speed - phys_gravity 800 // gravity - phys_waterfriction 1 // friction in water - phys_watergravity 400 // gravity in water - phys_maxvelocity 320 // maximum run speed - phys_maxwalkvelocity 320 // maximum walk speed (set for running) - phys_maxcrouchvelocity 100 // maximum crouch speed - phys_maxswimvelocity 150 // maximum swim speed - phys_walkaccelerate 100 // acceleration for walking - phys_airaccelerate 0 // acceleration flying through the air - phys_swimaccelerate 0 // acceleration for swimming - phys_maxstep 18 // maximum step height - phys_maxsteepness 0.7 // maximum floor steepness a player can walk on - phys_maxwaterjump 19 // maximum height for an out of water jump - phys_maxbarrier 33 // maximum barrier a player can jump onto - phys_jumpvel 270 // jump velocity - phys_falldelta5 40 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - phys_falldelta10 60 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - // reachability settings - // the following are all additional travel times added - // for certain reachabilities in 1/100th of a second - rs_waterjump 400 - rs_teleport 50 - rs_barrierjump 100 - rs_startcrouch 300 - rs_startgrapple 500 - rs_startwalkoffledge 70 - rs_startjump 300 - rs_rocketjump 500 - rs_bfgjump 500 - rs_jumppad 250 - rs_aircontrolledjumppad 300 - rs_funcbob 300 - rs_startelevator 50 - rs_falldamage5 300 // avoid getting 5 damage - rs_falldamage10 500 // avoid getting 10 damage - // if != 0 then this is the maximum fall height a reachability can be created for - rs_maxfallheight 0 - // maximum height a bot may fall down when jumping to some location - rs_maxjumpfallheight 450 -} diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/headskins.txt b/install/installs/Q3Pack/install/docs/Compile_Manual/headskins.txt deleted file mode 100644 index bf45f9f5..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/headskins.txt +++ /dev/null @@ -1,75 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -headmodel = *callisto/lily - -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - -------------------------------------------------- -headmodel = callisto/lily - -models/players/callisto/lily/head_default.skin -models/players/callisto/head_lily.skin -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red - -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red - -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red -teamName = Stroggs - -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red -teamName = Stroggs - -models/players/callisto/lily/Stroggs/head_red.skin -models/players/callisto/Stroggs/head_red.skin -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/index.html b/install/installs/Q3Pack/install/docs/Compile_Manual/index.html deleted file mode 100644 index 6b8d7197..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/index.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - Compiling Manual - - - - - - - -
-
-
- - -
-

Compiling Manual, q3map & bspc help

-
-
- -

- Table of Contents -

    - · - Q3Map Documentation - -
    · - BSPC Documentation - -
    . - BSPC Configuration file - -
    . - modelskins: Q3 and TA search order for model skins - -
    . - headskins: Q3 and TA search order for head skins - -
-

- -
- - -
- Last updated: Jan 21, 2002   -
-
- -
-
- - - diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/modelskins.txt b/install/installs/Q3Pack/install/docs/Compile_Manual/modelskins.txt deleted file mode 100644 index b0f4a011..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/modelskins.txt +++ /dev/null @@ -1,73 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -model = hunter/harpy - - -legs: - models/players/hunter/lower_harpy_default.skin - models/players/hunter/lower_harpy.skin - models/players/characters/james/lower_harpy_default.skin - models/players/characters/james/lower_harpy.skin -torso: - models/players/hunter/upper_harpy_default.skin - models/players/hunter/upper_harpy.skin - models/players/characters/hunter/upper_harpy_default.skin - models/players/characters/hunter/upper_harpy.skin - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_model = hunter/harpy -team = red - -legs: - models/players/hunter/lower_harpy_red.skin - models/players/hunter/lower_red.skin - models/players/characters/hunter/lower_harpy_red.skin - models/players/characters/hunter/lower_red.skin -torso: - models/players/hunter/upper_harpy_red.skin - models/players/hunter/upper_red.skin - models/players/characters/hunter/upper_harpy_red.skin - models/players/characters/hunter/upper_red.skin - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_model = james/badass -team = red -teamName = Stroggs - -legs: - models/players/james/Stroggs/lower_badass_red.skin - models/players/james/Stroggs/lower_red.skin - models/players/james/lower_badass_red.skin - models/players/james/lower_red.skin - models/players/characters/james/Stroggs/lower_badass_red.skin - models/players/characters/james/Stroggs/lower_red.skin - models/players/characters/james/lower_badass_red.skin - models/players/characters/james/lower_red.skin -torso: - models/players/james/Stroggs/upper_badass_red.skin - models/players/james/Stroggs/upper_red.skin - models/players/james/upper_badass_red.skin - models/players/james/upper_red.skin - models/players/characters/james/Stroggs/upper_badass_red.skin - models/players/characters/james/Stroggs/upper_red.skin - models/players/characters/james/upper_badass_red.skin - models/players/characters/james/upper_red.skin - - - diff --git a/install/installs/Q3Pack/install/docs/Compile_Manual/q3map.html b/install/installs/Q3Pack/install/docs/Compile_Manual/q3map.html deleted file mode 100644 index 1b84545a..00000000 --- a/install/installs/Q3Pack/install/docs/Compile_Manual/q3map.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - Q3Map Manual - - - - - -

Q3map Manual

- -
- - - - -
-

q3map command line switches:

-
-q3map
------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--glview
-	Write a .gl file of the bsp tree for debugging.
--v
-	Output verbose information.
--draw
-	Enable realtime debug drawing output.
--nowater
-	Water, slime and lava brushes are not compiled and won't show up when running the map in Quake.
--noopt
-	unused.
--nofill
-	unused.
--nodetail
-	Detail brushes are not compiled and won't show up when running the map in Quake.
--fulldetail
-	Detail brushes will be treated as normal brushes.
--onlyents
-	Only change the entities in a .bsp using a .ent file.
--onlytextures
-	Only change the textures in a .bsp file.
--micro
-	unused.
--nofog
-	Visible surfaces that cross fog boundaries will not be split along the bound.
-	This can cause visually incorrect fog in the map.
--nosubdivide
-	Visible surfaces are not subdivided as required by shader tesselation.
-	The shader parameter "tesssize" sets the tesselation of a surface.
--leaktest
-	Only test the map for leaks. If a leak is found the compilation is stopped.
--verboseentities
-	Output verbose information about entity sub-models.
--nocurves
-	Curves are not compiled and won't show up when running the map in Quake.
--notjunc
-	T-junctions are not fixed. This can cause tiny slits where a surface meets halfway another surface.
--expand
-	Expands all the brush planes and saves a new map out to allow visual inspection of the clipping bevels
--tmpout
-	Output files to a folder called "tmp".
--fakemap
-	Write out a fakemap.map This map will contain a worldspawn entity with all the world brushes.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--custinfoparms
-	Will enable custom surface flags (see below)
-
-q3map -vis
-----------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--fast
-	Only calculate a very loose visiblity list. It doesn't take much time to
-	calculate but a lot more polygons will be drawn by the Q3 engine than necesary.
--merge
-	Merge bsp leaves before calculating the visibility list. This will speed up
-	the vis calculations but mostly more polygons will be drawn by the Q3 engine
-	than necesary.
--nopassage
-	Disable the passage visibility algorithm. The passage vis is faster and a bit more
-	tight than the old algorithm.
--level
-	unused.
--v
-	Output verbose information.
--nosort
-	Don't sort the portals on complexity. Sorting mostly speeds up visibility calculations
-	because more complex portals can use information from less complex portals.
--saveprt
-	Don't delete the .prt file after creating the visibility list.
--tmpin <path>
-	Input files will be read from a folder called "tmp".
--tmpout <path>
-	Output files will be written to a folder called "tmp".
-
-
-q3map -light
-------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--bounce <N> [NEW]
-	Enable radiosity calculation. Rediffuses the light emitted onto surfaces N
-	times. Will write out the BSP after every pass, so it can be cancelled.
-	Light reflected is the lightmap/vertex * texture color, subsampled to a certain
-	granularity across every lit surface. Use q3map_lightimage in a shader
-	to override the reflected color.
--bouncegrid [NEW]
-	Radiosity affects lightgrid (entity lighting).
--fast [NEW]
-	Enables light envelopes for area lights, speeding light up by 50x or more on
-	some maps. Has the side effect of dimmer maps with large numbers of dim surface
-	lights.
--fastgrid [NEW]
-	Same as fast, but only for lightgrid calculation.
--fastbounce [NEW]
-	Enables fast for radiosity passes only.
--cheap [NEW]
-	Stop calculating light at a sample when it exceeds (255, 255, 255). This may
-	produce odd artifacts on maps with lots of saturated colored lighting. Also,
-	do not use -cheap with radiosity if you wish to preserve all light emitted.
--cheapgrid [NEW]
-	Same as cheap, but only for lightgrid calculation.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--notrace
-	No light tracing is performed. As a result no shadows will be casted.
--patchshadows
-	Enable patches casting shadows.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--smooth [NEW]
-	Smart version of -extra. Only subsamples lightmap pixels that are shadowed.
-	Produces results comparable to -extra in roughly 1/3 the time. Can also be
-	used with -extra or -extrawide for 16- or 48-tap sampling respectively
-	(smoother shadows).
--extra
-	Take four samples per lightmap pixel and store the average light value of these
-	four samples for the actual lightmap pixel.
-	This super sampling is used for anti-aliasing.
--extrawide
-	Just like -extra four samples per lightmap pixel are calculated. However the
-	average of 12 samples is stored per lightmap pixel.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--border
-	Create a debugging border around the lightmap.
--v
-	Output verbose information.
--nosurf
-	Disables surface tracing (detail brushes and patches) for shadow calculation.
--dump
-	Dumps prefab files when used with radiosity for each bounce.
-
-
-q3map -vlight
--------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--nostitching
-	No polygon stitching before lighting.
--noalphashading
-	Don't use alpha shading at all.
--nocolorshading
-	Don't use colored alpha shading. The alpha channel will be used as if it were binary.
-	The light goes through or not and does not change color.
--tracelight
-	Use the "-light" light algorithm for all surface unless a surface
-	uses a shader with the shader option "q3map_vlight".
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--v
-	Output verbose information.
-
- - - -

The q3map options are a subset of the shader instructions that require -recompiling of the map.

- -

q3map_bounce <fraction>

-

      [NEW] -Specify a number between 0 and 1.0 (or higher) to scale the amount of light reflected in radiosity passes. -Default: 1.0

- -

q3map_nofast

-

      [NEW] -Surfaces that emit light with this shader parameter will disable -fast optimisation. Useful for -large areas of dim sky where you want all the dim light to reach all surfaces.

- -

q3map_tracelight

-

      [NEW] Surfaces using a shader with this option will always be lit with the -original "-light" light algorithm. Patches will not cast shadows on -this surface unless the shader option q3map_patchshadows is used.

-

q3map_patchshadows

-

      [NEW] When this option is used in conjunction with the original (-light) -lighting algorithm, surfaces with textures modified by this option will will -show shadows cast by curve patches (under normal circumstances, curve patches do -not cast shadows).

-

q3map_vertexshadows

-

      [NEW] By default, no shadows are cast on vertex-only lit surfaces (see -surfaceparm pointlight). Also when running Quake III Arena in vertex  lighting -mode, no shadows are cast upon any surfaces (shadows are part of the light map). -When using this shader option shadows *will* be cast on the surface when vertex -lit. However sharp shadow edges won't be seen on the surface because light -values are only calculated at the vertexes.

-

q3map_novertexshadows

-

      [NEW] Shaders used for misc_models and terrain can now use -q3map_novertexshadows to disable shadows to be cast at the vertex lit surfaces. -Shadows being cast at small misc_model objects often makes sense. However -shadows on large vertex lit terrain surfaces often look bad. By default no -shadows are cast at forced vertex list surfaces ( shaders with "pointlight" -).

-

q3map_forcesunlight

-

      [NEW] No sunlight is cast at vertex lit md3 models and terrain by default. -Using this option sunlight (overbright bits created by q3map_sun option) will be -cast on these surfaces.

-

q3map_vertexscale <scale>

-

      [NEW] The light value at the vertexes of a surface using a shader with this -option is multiplied by the scale value. This is a way to lighten or darken a -vertex light only surface in comparison to other, light-map lit surfaces around -it.

-

q3map_notjunc

-

      [NEW] Surfaces modified by a shader with this option are not used for -tjunction fixing.

-

q3map_vlight

-

      [NEW] Surfaces modified by a shader with this option will always be lit with -the "-vlight" algorithm when q3map is used with the options "-vlight --tracelight".

-

q3map_lightmapsamplesize <S>

-

      [NEW] Surfaces using a shader with this shader option will use lightmaps with -pixel size SxS. This option can be used to produce high resolution shadows on -certain surfaces or can be used to reduce the size of lightmap data where high -resolution shadows are not required.

-

q3map_lightimage <image>

-

      Image to use for the light color of a surface light instead of the image(s) -used by the shader. Color is averaged from the texture. Texture must be the same -size as the base image map.

-

q3map_surfacelight <value>

-

Sets the amount of light this surface emits.

-

q3map_lightsubdivide <value>

-

      A surface light is subdivided into a bunch of point lights for the actual -lighting of the world. This parameter controls the space between those point -lights. Default value is 120.

-

q3map_backsplash <percent> <distance>

-

      A surface light is also lit by itself using back splash point lights with a -lower intensity. The <percent> parameter specifies the intensity -percentage they use from the q3map_surfacelight <value> parameter. The -<distance> parameter controls the distance of these back splash lights -from the surface. You can set the <percent> to zero or a negative value to -disable the back splash lights.

-

      q3map_globaltexture

-

When this option is set the texture is not aligned to the world.

-

      q3map_backshader <shader>

-

<shader> is the path/name of the shader or texture to be used at the -back side of the surface.

-

      q3map_flare <shader>

-

Creates a flare using the specified <shader> at the center of the -surface using a shader with this option.

-

      light <value>

-

Old style flare specification always using the shader "flareshader". -The <value> parameter is unused.

-

      q3map_sun <red> <green> <blue> <intensity> -<degrees> <elevation>

-

Color will be normalized, so it doesn't matter what range you use. The -intensity falls off with angle but not distance. A value of 100 is a fairly -bright sun.

-

      degree of 0 = from the east, 90 = north, etc.

-

      elevation of 0 = sunrise/set, 90 = noon

-

      surfaceparm pointlight

-

Surfaces using a shader with this parameter will always be vertex lit

-

This option can be used to reduce the lightmap data. Often used on surfaces

-

that don't need any shadows.

- - -

Surfaceparm dust

-

If a player lands (jumps onto) on a surfaces using a shader with this -parameter, a put of dust will appear at the player’s feet. Note that the -worldspawn entity of that map must have an enableDust key set to a value of 1. -Note: This surfaceflag has been replaced by "surfaceparm woodsteps" in -Return to Castle Wolfenstien.

- - -

Custom surfaceparms

-
-

With the new q3map tool you can add custom surface parameters for mods -without the need to recompile the q3map tool. These custom surfaceparms are -stored in a file called ‘custinfoparms.txt’ in the folder scripts/. An -example of this file with the new surfaceparm treacle and surfaceparm grass is -shown below.

-

// Custom Infoparms File
-// Custom Contentsflags
-{
-treacle 0x4000
-}
-// Custom Surfaceflags
-{
-grass 0x80000
-}

-

 

- -

NOTE: For linux users, when using the -custinfoparms parameter q3map -first looks in your homedir, and only if it doesn't find a custinfoparms.txt -there, it uses the one stored in the

-

quake3 install dir (usually /usr/local/games).

-

 

-
-

Content Flags

-
-

Contents flags are flags similar to CONTENTS_FOG in the original Q3A. These -flags define the contents of volumes inside the game (for instance lava, fog, -water, etc.).

-

If you look in the source file game/surfaceflags.h, it has defines for all -contents flags. The define is split into a name and a hexadecimal value, for -instance CONTENTS_PLAYERCLIP 0x10000. These hexadecimal values are powers of 2 -and can be ored together (binary) to form a bit mask. Up to 32 contents flags -can be ored together this way.

- -

Example: creating a volume with treacle.

-

The following outlines how a custom contents flag can be added and used in a -mod. First open the ‘custinfoparms.txt’ file and add ‘treacle 0x4000’ -to the Custom Contentsflags section as shown in the example file above (0x4000 -is one of the unused values available for custom use). Next write a shader -script which uses ‘surfaceparm treacle’. Apply this new shader to all sides -of a brush in a test map. When you compile the map, add the -custinfoparms -parameter to the command line following q3map.

-

Next, add CONTENTS_TREACLE 0x4000 to the source file game/surfaceflags.h in -your mod. Now you can call the point contents function. If the point is inside -the brush with the shader using the ‘surfaceparm treacle’ then the point -contents call will return a bit mask with CONTENTS_TREACLE set. This can for -instance be used to slow down player movement when a player is inside such a -brush.

-

 

-
-

Surface Flags

-
-

The surface flags are texture properties that often affect entities in -contact with surfaces using such flags. The ‘surfaceparm metalsteps’ -parameter from Q3A is a good example.

-

If you look in the source file game/surfaceflags.h, it has defines for all -surface flags. The define is split into a name and a hexadecimal value, for -instance SURF_NODAMAGE 0x1. These hexadecimal values are powers of 2 and can be -ored together (binary) to form a bit mask. Up to 32 surface flags can be ored -together this way.

- -

Example: Making ‘footsteps on grass’ sounds

-

The following outlines how a custom surface flag can be added and used in a -mod. First open up the ‘custinfoparms.txt’ file and add 'grass 0x80000' to -the Custom Surfaceflags section as shown in the example file above (0x80000 is -the first available unused value in surfaceflags.h for surface flags). Next -write a shader script which uses a grass image and has 'surfaceparm grass’. -Create a test map with the grass shader covering the ground surface. When you -compile the map, add the -custinfoparms parameter to the command line following -q3map.

-

Next, add SURF_GRASS 0x80000 to the source file game/surfaceflags.h in your -mod. Now you'll be able to execute a trace and the trace information will be -returned in the trace_t structure. If the trace hits a surface with the grass -surfaceparm then the SURF_GRASS flag will be set in trace_t->surfaceFlags. -Such a trace can be used to trigger playing a sound of a person stepping on -grass. For a reference example, see the existing metal steps in the game code.

-

 

-
-

 

- -
- - - -

 

-
-
-

 

-

 

-

-27-

- - - - diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/.svn/entries b/install/installs/Q3Pack/install/docs/Model_Manual/.svn/entries deleted file mode 100644 index 6f03d978..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/.svn/entries +++ /dev/null @@ -1,65 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Model_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -styles -dir - -model_manual.htm -file - - - - -2012-04-01T16:51:54.369128Z -3c6cafe924ffd55fc17a3be3c66e6e63 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -18324 - diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/.svn/prop-base/model_manual.htm.svn-base b/install/installs/Q3Pack/install/docs/Model_Manual/.svn/prop-base/model_manual.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/.svn/prop-base/model_manual.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base b/install/installs/Q3Pack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base deleted file mode 100644 index 6735fa78..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base +++ /dev/null @@ -1,217 +0,0 @@ - - - -Q3A Player Characters: Putting them in the Game - - - -
-

Putting New Models in Quake III Arena

- -Based on original notes by Paul Steed - -

Edited by Paul Jaquays
-

Edited 12/22/99 by ps
-

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version
-

-
-The purpose of this document is to explain how to set up a model for Quake 3 Arena, create the necessary animation and conversion files, and then export it into the MD3 format required by the game. It is intended to be informative only and not a tutorial on building or animating models. - -

The player models for Quake III Arena were built using the commercial modeling software, 3D Studio Max R2.5 (3ds Max) by -Kinetix. These models were then animated using Physique and Biped, components of a plugin for 3dsMax called Character Studio -(also by Kinetix). The following instructions assume that you will model and animate with 3dsMax and Character Studio. - -

1. Setting up the Files

-Begin in your Quake3 directory. If you don't have one already, create a baseq3 directory. Inside the baseq3 directory, create a models directory. Inside the models directory, create a players directory. Inside the players directory, create a directory with the name of your model (we will use [character] in this document to represent information requiring the name of the model). It is generally a good idea to create a 'work' directory under [character] so that the [character] directory itself remains uncluttered. Place all versions of your model and temp textures here, saving the [character] directory purely for the finished model files. - -

2. Building and Naming the Mesh

-The mesh should be built keeping in mind the game engine needs three distinct body part grouping: the head, the upper body, and the lower body. These groupings can consist of different parts or sub-objects, but keep in mind too many sub-objects does impact performance and game play speed. A good rule of thumb is to consolidate your objects (i.e. attach them to each other) as long as they remain a part of a major group. For example, you decide to create a character that has its arms as separate objects for easier animation. Unless the arms or torso has different textures assigned to them go ahead and attach the arms to the torso. It may be more difficult to assign the vertices to the biped skeleton later on, but the efficiency of the model is much better. However, if you must keep the limbs detached for unique shader assignment then keep the following naming conventions in mind: - -

2.1 Head Geometry

-All head geometry needs to begin with lower case 'H_' (h_head, h_glasses, h_hat, etc...). Keep in mind that the head has no -animations itself other than to respond to player mouse-look input. - -

2.2 Upper Body Geometry

-All upper body geometry needs to begin with lower case 'U_' (u_torso, u_arms, u_abdomen, etc.) This is your model's torso and arms. The individual animations for the upper body are listed below. - -

2.3 Lower Body Geometry

-All lower body geometry begins with lower case 'L_' (l_hips, l_legs, l_lfoot, l_rfoot, etc...). This is your model's buttocks, legs and feet. The individual animations for the upper body are listed below. - -

2.4 Tags

-Tags are connection points for other model parts and represent the limited hierarchical system of the game. They include links between the three character body parts and the weapons. Keep in mind that these tags are representations of geometry so they can be animated to represent that geometry. For example, tag_head represents the head, tag_torso represents the torso and tag_weapon represents the weapon. This is important to understand since for example, any time the character is performing a locomotive animation, the upper body can and will animate independently of the lower body, using the relative position of the tag as a base or 'home' position. The tags for the body parts and weapons are named tag_weapon, tag_torso and tag_head. - -

3. Texturing

-Once you finish building your character go ahead and attach it to your biped and do some basic test animations to make certain the mesh doesn't deform in weird ways. Turn edges, ad faces, whatever you need to do to make sure that while animating, the character retains its mesh integrity. Handing the mesh over to another artist to assign UVW's or assigning and texturing yourself without testing the animation integrity of the mesh is very risky. Major modifications after UV assignment can cost you valuable time resulting in re-assigning not just the UV's, but re-attaching the mesh to your biped as well. Once your model is ready, go ahead and apply the texture to it. Typically the textures used in Q3A consist of one 256 x 256 texture for the body and one 128 x 128 texture for the head. Keep in mind that it's best to consolidate your texture on a single page rather than break it up into smaller pages. Also some video cards cannot process a texture size larger than 256, so making a high-rez 1024 x 512 texture just won't be seen since the card will knock it down to -256 x 128 to digest it. - -

4. Set Up for Animation

-Once the character is textured or skinned, bring the mesh back into 3dsMax (2.5) and attach it to an adjusted Biped using the Character Studio plug-in. As a rule of thumb, it's always better to just assign the mesh to the biped using the default -settings and then manually assign vertices to appropriate skeletal 'limbs'. - -

5. Animation

-When animating the character, keep all animations in one file. It's crucial that the animations adhere to a specific order that pertains to the separate body parts as this supports our current tag system. - -

Basically the order of animations goes: full body (animations that combine both upper and lower), upper body, and lower body. Each character file has the following animations in them and for now that's all the modeler is allowed. The division is basically death (all body parts), extraneous upper body, and dedicated locomotive animations. That way all the upper body animations can be performed at any time, separate from whatever it is that that lower body animations may be doing. There is a set number of animation types which are (in order): - -

  • death1 (approx. 30 frames) -
  • death2 (approx. 30 frames) -
  • death3 (approx. 30 frames) - -

  • taunt (approx. 45 frames) -
  • weapon attack (exactly 6 frames) -
  • melee attack (exactly 6 frames) -
  • change weapon (exactly 9 frames) -
  • weapon idle (exactly 1 frame) -
  • melee idle (exactly 1 frame) - -

  • crouched walk (approx. 10 frames) -
  • walk (approx. 15 frames) -
  • run (approx. 12 frames) -
  • backpedal (approx. 10 frames) -
  • swim (approx. 10 frames) -
  • jump forward (approx. 10 frames) -
  • jump forward-land (approx. 6 frames) -
  • jump backward (approx. 10 frames) -
  • jump backward-land (approx. 6 frames) -
  • standing idle (approx. 10 frames) -
  • crouched idle (approx. 10 frames) -
  • turn in place (approx. 8 frames)
- -

A good rule of thumb is to create an idle pose at the frame right after the final death frame. Keep this pose for the -entire lower body and center of mass of the biped up through melee idle frame since any animation by the lower body during these frames will not register during the grab process. Similarly, once the animations for the lower body start, copy the pose for the upper body at the weapon idle frame to the first frame of the crouched walk animation and don't animate the upper body at all after that frame. This allows you to more closely approximate what happens during the game where the upper body is basically just along for the ride as the lower body carries it along via the tag_torso. - -

Keep in mind that an animation.cfg has to be generated for each character that is a direct reflection of your animation file above. - -

6. Setting up Tags

-After the modeler is satisfied with the animations for the character, it's time to bring in the tags that up until now, have -kept in a separate file. This is milestone mark that lets the modeler know that the character is nearly complete. 'Merge' -the tags into your scene. Turn off 'inherit scale' for the tags under the hierarchy/link command panel in Max. Then, -assign a Physique modifier (Character Studio), linking them to specific areas in the biped: - -

tag_torso is linked to the Biped 'pelvis' -
tag_head is linked to the Biped 'head'. -
tag_weapon is linked to the right 'hand'. - -

6.1 Animate Body Tags

-Now, go in and actually animate the tag_torso so that it matches the default position (established previously at -approximately the standing idle frame- from the top view it looks like a perfect 90 degree triangle with the base half as wide as the length, pointing forward) when appropriate. "Appropriate" means that as the character goes through the lower body animations, if the triangle is pointing anywhere else but forward, the upper body will point that way as well since to the code the upper body IS the tag. This works out to the modeler's advantage, though because even if the upper body LOOKS crazy in the animation you simply rely on the tag representation to compensate for it. - -

6.2 Handling Weapon Tags

-Tag_weapon is a bit different. Basically there is no difference between view model weapons (the weapon as seen by the player when it is in use by his or another player) and the world model weapons (weapons as they are found rotating in the maps) in Quake III Arena. However, for visually clarity and identification, they are doubled in scale when they become seen as world models. They are the same object. This reduces the number of models needed the game and creates an overall more efficient system. Unfortunately a drawback to the system is that there can be only one firing animation for the character. Thusly all weapons need to fit within the grip of the character regardless of size or geometry. This also makes it impossible to see hands on your weapons or otherwise perform vertex animation on the weapons other than barrel rotations vis the tag system (tag_barrel). -

Since the placement is always the same for the character's hands on the weapons , create the animations to the point where it begins the weapon attack sequence. Then merge one of the weapon models into the character file as a guide. The weapons have a nested triangle of same dimensions as the tag_head and tag_torso triangles (each weapon in the game has this triangle saved with it. Move the weapon into a horizontal firing position (using the side view) to about where the character would be holding the weapon correctly. Then move the character's hands into the appropriate position and link the weapon to the character's right hand. - -

When you get to the point where you bring in the tags, make a snapshot of the weapon, hide the original and simply delete all the vertices and faces of the copy of the weapon object except for the nested triangle. Rename it tag_weapon, turn off the 'inherit scale' attributes (very important), and assign Physique to it (linking it to the 'right hand' of the biped) and voila. Ready to export. - -

Level of Detail

-Each of the Quake III Arena player characters have a base model and two lower polygon versions of the model (to help with speed issues). For use in the game, the three levels of detail are file formatted as follows: - -

- - - - - - - - - - - - -
[character].[file extension]This is the highest detail model for close up viewing
[character]_1.[file extension]This is a slightly lower polygon model for mid distance viewing
[character]_2.[file extension]This is the lowest polygon model for long distance viewing.
- -

Level of detail means you need to make three versions of your model to get the best performance during gameplay. Each -version needs to have the same textures assigned and same animations assigned to them in order to work in the game. The -numbers you need to shoot for are 800 faces for the highest level, 500 faces for next level and 300 for the lowest level. This works out roughly to be a 60% drop in each LOD, but your numbers will vary in order to maintain mesh integrity. Most LOD's created in Q3A were done with the plugin called MRM (multiple resolution mesh) by Intel. The stock Optimize modifier or manual optimization techniques can be applied. - -

8. Exporting

-Once the tags are in place (also with the Physique modifier attached to them) the model is ready to export to an ase(ascii) -file. To make the models available for use in Quake III Arena, the model was exported to a native 3dsMax ASCII format -file called an '.ase' file. This export option in Max has several check boxes to tweak and then just exports the character -with its animation data (via Character Studio) to a huge ase/ascii file. Under 'Output Options' make sure the 'Mesh Definition', 'Materials', 'Transform Animation Keys', and 'Animated Mesh' boxes are checked. Under 'Mesh Options' and 'Object Types' make sure 'Mapping Coordinates' and 'Geometric' are the only boxes checked, respectively and let it run. Your 'Time Configuration' must reflect a '0' starting point up through the last frame of your animation. The native Max exporter will rely on the time configuration as a guide on which frames to actually grab during the conversion process. Of course there will be better exporters available in the future…this is just how it was done for the characters in Q3A. - -

9. Animation Config File

-The character's animations are controlled by an 'animation.cfg' file where the model maker specifies reference frames and frame rates. The animation.cfg file is a text file (originally created with MS Excel) which contains the frame and animation sequence data. Place this in the model's directory. Note, when the modeler is testing the model in Quake III Arena, changes to the animation.cfg can be made without having to re-grab the model…just do a 'vid_restart' at the cvar command line -prompt. - -

Edit an animation.cfg file which matches the frame/animation sequences and place it in the character's directory. Each animation can have different frame rates that the modeler can tweak, save out in the animation.cfg, hit 'vid_restart' to see the change right away in the game (no need to re-grab the model). The file for visor is shown here below in it's entirety. You may clip this portion of the file out and use it as the basis for your own animation files. - -

-////////////////////////////////////////////////////////////////////////////////
-
-// animation config file
-
-sex		m
-
-headoffset	0 0 0
-footsteps	normal
-
-// first frame, num frames, looping frames, frames per second
-
-0	30	0	25	// BOTH_DEATH1
-29	1	0	25	// BOTH_DEAD1
-30	30	0	25	// BOTH_DEATH2
-59	1	0	25	// BOTH_DEAD2
-60	30	0	25	// BOTH_DEATH3
-89	1	0	25	// BOTH_DEAD3
-90	40	0	20	// TORSO_GESTURE
-130	6	0	15	// TORSO_ATTACK (MUST NOT CHANGE -- hand animation is synced to this)
-136	6	0	15	// TORSO_ATTACK2 (MUST NOT CHANGE -- hand animation is synced to this)
-142	5	0	20	// TORSO_DROP (MUST NOT CHANGE -- hand animation is synced to this)
-147	4	0	20	// TORSO_RAISE (MUST NOT CHANGE -- hand animation is synced to this)
-151	1	0	15	// TORSO_STAND
-152	1	0	15	// TORSO_STAND2
-153	8	8	20	// LEGS_WALKCR
-161	12	12	20	// LEGS_WALK
-173	9	9	18	// LEGS_RUN
-182	10	10	20	// LEGS_BACK
-192	10	10	15	// LEGS_SWIM
-202	8	0	15	// LEGS_JUMP
-210	1	0	15	// LEGS_LAND
-211	8	0	15	// LEGS_JUMPB
-219	1	0	15	// LEGS_LANDB
-220	10	10	15	// LEGS_IDLE
-230	10	10	15	// LEGS_IDLECR
-240	7	7	15	// LEGS_TURN
-
-//////////////////////////////////////////////////////////////////
- -

10. The Conversion Process

- -The models need to be run through id's custom md3 conversion/'grabber' program. The program uses the information in the Quake Data text file ([filename].qdt) to grab and convert the 3dsMax files. - -

10.1 The Conversion File

- -Create a "Quake Data" text file for the model with the extension ".qdt". The contents for our [character].qdt file would read something like: - -

$asecanimconvert models/players/[character]/[character].ase -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_1.ase -lod 1 -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_2.ase -lod 2 -playerparms 92 155 - -

-This is the grabber program executable. - -

- -This is the path to the model's .ase file. The program looks for files starting in your Quake3\baseq3 directory. - -

-This tells the converter that this is the first level of reduced detail for the model. The value "-lod 2" is for the second, -or lowest level of detail for the model. - -

-This tells the converter which frame the upper body anims only start (first value) and which frame the lower body only anims start (second value). The numbers here are only used as examples - -

10.2 Run the Conversion

-When the qdt file is set up correctly, run the grabber by opening MSDOS command prompt, going to the quake3 directory -containing the model files and typing in 'q3data [character].qdt' - -

11. Review the Model

-Load up Quake 3 Arena. Go to map Q3DM0 (or any map containing a mirror). Bring down the console and type "\model -[character name]". Hit your Show Score key (default is TAB). You should see your new model here. Tweak the frame rates in -your animation.cfg file and save them. Type in "\vid_restart" on the console and hit enter to see the changes. - - - - - diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/model_manual.htm b/install/installs/Q3Pack/install/docs/Model_Manual/model_manual.htm deleted file mode 100644 index 6735fa78..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/model_manual.htm +++ /dev/null @@ -1,217 +0,0 @@ - - - -Q3A Player Characters: Putting them in the Game - - - -
-

Putting New Models in Quake III Arena

- -Based on original notes by Paul Steed - -

Edited by Paul Jaquays
-

Edited 12/22/99 by ps
-

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version
-

-
-The purpose of this document is to explain how to set up a model for Quake 3 Arena, create the necessary animation and conversion files, and then export it into the MD3 format required by the game. It is intended to be informative only and not a tutorial on building or animating models. - -

The player models for Quake III Arena were built using the commercial modeling software, 3D Studio Max R2.5 (3ds Max) by -Kinetix. These models were then animated using Physique and Biped, components of a plugin for 3dsMax called Character Studio -(also by Kinetix). The following instructions assume that you will model and animate with 3dsMax and Character Studio. - -

1. Setting up the Files

-Begin in your Quake3 directory. If you don't have one already, create a baseq3 directory. Inside the baseq3 directory, create a models directory. Inside the models directory, create a players directory. Inside the players directory, create a directory with the name of your model (we will use [character] in this document to represent information requiring the name of the model). It is generally a good idea to create a 'work' directory under [character] so that the [character] directory itself remains uncluttered. Place all versions of your model and temp textures here, saving the [character] directory purely for the finished model files. - -

2. Building and Naming the Mesh

-The mesh should be built keeping in mind the game engine needs three distinct body part grouping: the head, the upper body, and the lower body. These groupings can consist of different parts or sub-objects, but keep in mind too many sub-objects does impact performance and game play speed. A good rule of thumb is to consolidate your objects (i.e. attach them to each other) as long as they remain a part of a major group. For example, you decide to create a character that has its arms as separate objects for easier animation. Unless the arms or torso has different textures assigned to them go ahead and attach the arms to the torso. It may be more difficult to assign the vertices to the biped skeleton later on, but the efficiency of the model is much better. However, if you must keep the limbs detached for unique shader assignment then keep the following naming conventions in mind: - -

2.1 Head Geometry

-All head geometry needs to begin with lower case 'H_' (h_head, h_glasses, h_hat, etc...). Keep in mind that the head has no -animations itself other than to respond to player mouse-look input. - -

2.2 Upper Body Geometry

-All upper body geometry needs to begin with lower case 'U_' (u_torso, u_arms, u_abdomen, etc.) This is your model's torso and arms. The individual animations for the upper body are listed below. - -

2.3 Lower Body Geometry

-All lower body geometry begins with lower case 'L_' (l_hips, l_legs, l_lfoot, l_rfoot, etc...). This is your model's buttocks, legs and feet. The individual animations for the upper body are listed below. - -

2.4 Tags

-Tags are connection points for other model parts and represent the limited hierarchical system of the game. They include links between the three character body parts and the weapons. Keep in mind that these tags are representations of geometry so they can be animated to represent that geometry. For example, tag_head represents the head, tag_torso represents the torso and tag_weapon represents the weapon. This is important to understand since for example, any time the character is performing a locomotive animation, the upper body can and will animate independently of the lower body, using the relative position of the tag as a base or 'home' position. The tags for the body parts and weapons are named tag_weapon, tag_torso and tag_head. - -

3. Texturing

-Once you finish building your character go ahead and attach it to your biped and do some basic test animations to make certain the mesh doesn't deform in weird ways. Turn edges, ad faces, whatever you need to do to make sure that while animating, the character retains its mesh integrity. Handing the mesh over to another artist to assign UVW's or assigning and texturing yourself without testing the animation integrity of the mesh is very risky. Major modifications after UV assignment can cost you valuable time resulting in re-assigning not just the UV's, but re-attaching the mesh to your biped as well. Once your model is ready, go ahead and apply the texture to it. Typically the textures used in Q3A consist of one 256 x 256 texture for the body and one 128 x 128 texture for the head. Keep in mind that it's best to consolidate your texture on a single page rather than break it up into smaller pages. Also some video cards cannot process a texture size larger than 256, so making a high-rez 1024 x 512 texture just won't be seen since the card will knock it down to -256 x 128 to digest it. - -

4. Set Up for Animation

-Once the character is textured or skinned, bring the mesh back into 3dsMax (2.5) and attach it to an adjusted Biped using the Character Studio plug-in. As a rule of thumb, it's always better to just assign the mesh to the biped using the default -settings and then manually assign vertices to appropriate skeletal 'limbs'. - -

5. Animation

-When animating the character, keep all animations in one file. It's crucial that the animations adhere to a specific order that pertains to the separate body parts as this supports our current tag system. - -

Basically the order of animations goes: full body (animations that combine both upper and lower), upper body, and lower body. Each character file has the following animations in them and for now that's all the modeler is allowed. The division is basically death (all body parts), extraneous upper body, and dedicated locomotive animations. That way all the upper body animations can be performed at any time, separate from whatever it is that that lower body animations may be doing. There is a set number of animation types which are (in order): - -

  • death1 (approx. 30 frames) -
  • death2 (approx. 30 frames) -
  • death3 (approx. 30 frames) - -

  • taunt (approx. 45 frames) -
  • weapon attack (exactly 6 frames) -
  • melee attack (exactly 6 frames) -
  • change weapon (exactly 9 frames) -
  • weapon idle (exactly 1 frame) -
  • melee idle (exactly 1 frame) - -

  • crouched walk (approx. 10 frames) -
  • walk (approx. 15 frames) -
  • run (approx. 12 frames) -
  • backpedal (approx. 10 frames) -
  • swim (approx. 10 frames) -
  • jump forward (approx. 10 frames) -
  • jump forward-land (approx. 6 frames) -
  • jump backward (approx. 10 frames) -
  • jump backward-land (approx. 6 frames) -
  • standing idle (approx. 10 frames) -
  • crouched idle (approx. 10 frames) -
  • turn in place (approx. 8 frames)
- -

A good rule of thumb is to create an idle pose at the frame right after the final death frame. Keep this pose for the -entire lower body and center of mass of the biped up through melee idle frame since any animation by the lower body during these frames will not register during the grab process. Similarly, once the animations for the lower body start, copy the pose for the upper body at the weapon idle frame to the first frame of the crouched walk animation and don't animate the upper body at all after that frame. This allows you to more closely approximate what happens during the game where the upper body is basically just along for the ride as the lower body carries it along via the tag_torso. - -

Keep in mind that an animation.cfg has to be generated for each character that is a direct reflection of your animation file above. - -

6. Setting up Tags

-After the modeler is satisfied with the animations for the character, it's time to bring in the tags that up until now, have -kept in a separate file. This is milestone mark that lets the modeler know that the character is nearly complete. 'Merge' -the tags into your scene. Turn off 'inherit scale' for the tags under the hierarchy/link command panel in Max. Then, -assign a Physique modifier (Character Studio), linking them to specific areas in the biped: - -

tag_torso is linked to the Biped 'pelvis' -
tag_head is linked to the Biped 'head'. -
tag_weapon is linked to the right 'hand'. - -

6.1 Animate Body Tags

-Now, go in and actually animate the tag_torso so that it matches the default position (established previously at -approximately the standing idle frame- from the top view it looks like a perfect 90 degree triangle with the base half as wide as the length, pointing forward) when appropriate. "Appropriate" means that as the character goes through the lower body animations, if the triangle is pointing anywhere else but forward, the upper body will point that way as well since to the code the upper body IS the tag. This works out to the modeler's advantage, though because even if the upper body LOOKS crazy in the animation you simply rely on the tag representation to compensate for it. - -

6.2 Handling Weapon Tags

-Tag_weapon is a bit different. Basically there is no difference between view model weapons (the weapon as seen by the player when it is in use by his or another player) and the world model weapons (weapons as they are found rotating in the maps) in Quake III Arena. However, for visually clarity and identification, they are doubled in scale when they become seen as world models. They are the same object. This reduces the number of models needed the game and creates an overall more efficient system. Unfortunately a drawback to the system is that there can be only one firing animation for the character. Thusly all weapons need to fit within the grip of the character regardless of size or geometry. This also makes it impossible to see hands on your weapons or otherwise perform vertex animation on the weapons other than barrel rotations vis the tag system (tag_barrel). -

Since the placement is always the same for the character's hands on the weapons , create the animations to the point where it begins the weapon attack sequence. Then merge one of the weapon models into the character file as a guide. The weapons have a nested triangle of same dimensions as the tag_head and tag_torso triangles (each weapon in the game has this triangle saved with it. Move the weapon into a horizontal firing position (using the side view) to about where the character would be holding the weapon correctly. Then move the character's hands into the appropriate position and link the weapon to the character's right hand. - -

When you get to the point where you bring in the tags, make a snapshot of the weapon, hide the original and simply delete all the vertices and faces of the copy of the weapon object except for the nested triangle. Rename it tag_weapon, turn off the 'inherit scale' attributes (very important), and assign Physique to it (linking it to the 'right hand' of the biped) and voila. Ready to export. - -

Level of Detail

-Each of the Quake III Arena player characters have a base model and two lower polygon versions of the model (to help with speed issues). For use in the game, the three levels of detail are file formatted as follows: - -

- - - - - - - - - - - - -
[character].[file extension]This is the highest detail model for close up viewing
[character]_1.[file extension]This is a slightly lower polygon model for mid distance viewing
[character]_2.[file extension]This is the lowest polygon model for long distance viewing.
- -

Level of detail means you need to make three versions of your model to get the best performance during gameplay. Each -version needs to have the same textures assigned and same animations assigned to them in order to work in the game. The -numbers you need to shoot for are 800 faces for the highest level, 500 faces for next level and 300 for the lowest level. This works out roughly to be a 60% drop in each LOD, but your numbers will vary in order to maintain mesh integrity. Most LOD's created in Q3A were done with the plugin called MRM (multiple resolution mesh) by Intel. The stock Optimize modifier or manual optimization techniques can be applied. - -

8. Exporting

-Once the tags are in place (also with the Physique modifier attached to them) the model is ready to export to an ase(ascii) -file. To make the models available for use in Quake III Arena, the model was exported to a native 3dsMax ASCII format -file called an '.ase' file. This export option in Max has several check boxes to tweak and then just exports the character -with its animation data (via Character Studio) to a huge ase/ascii file. Under 'Output Options' make sure the 'Mesh Definition', 'Materials', 'Transform Animation Keys', and 'Animated Mesh' boxes are checked. Under 'Mesh Options' and 'Object Types' make sure 'Mapping Coordinates' and 'Geometric' are the only boxes checked, respectively and let it run. Your 'Time Configuration' must reflect a '0' starting point up through the last frame of your animation. The native Max exporter will rely on the time configuration as a guide on which frames to actually grab during the conversion process. Of course there will be better exporters available in the future…this is just how it was done for the characters in Q3A. - -

9. Animation Config File

-The character's animations are controlled by an 'animation.cfg' file where the model maker specifies reference frames and frame rates. The animation.cfg file is a text file (originally created with MS Excel) which contains the frame and animation sequence data. Place this in the model's directory. Note, when the modeler is testing the model in Quake III Arena, changes to the animation.cfg can be made without having to re-grab the model…just do a 'vid_restart' at the cvar command line -prompt. - -

Edit an animation.cfg file which matches the frame/animation sequences and place it in the character's directory. Each animation can have different frame rates that the modeler can tweak, save out in the animation.cfg, hit 'vid_restart' to see the change right away in the game (no need to re-grab the model). The file for visor is shown here below in it's entirety. You may clip this portion of the file out and use it as the basis for your own animation files. - -

-////////////////////////////////////////////////////////////////////////////////
-
-// animation config file
-
-sex		m
-
-headoffset	0 0 0
-footsteps	normal
-
-// first frame, num frames, looping frames, frames per second
-
-0	30	0	25	// BOTH_DEATH1
-29	1	0	25	// BOTH_DEAD1
-30	30	0	25	// BOTH_DEATH2
-59	1	0	25	// BOTH_DEAD2
-60	30	0	25	// BOTH_DEATH3
-89	1	0	25	// BOTH_DEAD3
-90	40	0	20	// TORSO_GESTURE
-130	6	0	15	// TORSO_ATTACK (MUST NOT CHANGE -- hand animation is synced to this)
-136	6	0	15	// TORSO_ATTACK2 (MUST NOT CHANGE -- hand animation is synced to this)
-142	5	0	20	// TORSO_DROP (MUST NOT CHANGE -- hand animation is synced to this)
-147	4	0	20	// TORSO_RAISE (MUST NOT CHANGE -- hand animation is synced to this)
-151	1	0	15	// TORSO_STAND
-152	1	0	15	// TORSO_STAND2
-153	8	8	20	// LEGS_WALKCR
-161	12	12	20	// LEGS_WALK
-173	9	9	18	// LEGS_RUN
-182	10	10	20	// LEGS_BACK
-192	10	10	15	// LEGS_SWIM
-202	8	0	15	// LEGS_JUMP
-210	1	0	15	// LEGS_LAND
-211	8	0	15	// LEGS_JUMPB
-219	1	0	15	// LEGS_LANDB
-220	10	10	15	// LEGS_IDLE
-230	10	10	15	// LEGS_IDLECR
-240	7	7	15	// LEGS_TURN
-
-//////////////////////////////////////////////////////////////////
- -

10. The Conversion Process

- -The models need to be run through id's custom md3 conversion/'grabber' program. The program uses the information in the Quake Data text file ([filename].qdt) to grab and convert the 3dsMax files. - -

10.1 The Conversion File

- -Create a "Quake Data" text file for the model with the extension ".qdt". The contents for our [character].qdt file would read something like: - -

$asecanimconvert models/players/[character]/[character].ase -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_1.ase -lod 1 -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_2.ase -lod 2 -playerparms 92 155 - -

-This is the grabber program executable. - -

- -This is the path to the model's .ase file. The program looks for files starting in your Quake3\baseq3 directory. - -

-This tells the converter that this is the first level of reduced detail for the model. The value "-lod 2" is for the second, -or lowest level of detail for the model. - -

-This tells the converter which frame the upper body anims only start (first value) and which frame the lower body only anims start (second value). The numbers here are only used as examples - -

10.2 Run the Conversion

-When the qdt file is set up correctly, run the grabber by opening MSDOS command prompt, going to the quake3 directory -containing the model files and typing in 'q3data [character].qdt' - -

11. Review the Model

-Load up Quake 3 Arena. Go to map Q3DM0 (or any map containing a mirror). Bring down the console and type "\model -[character name]". Hit your Show Score key (default is TAB). You should see your new model here. Tweak the frame rates in -your animation.cfg file and save them. Type in "\vid_restart" on the console and hit enter to see the changes. - - - - - diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/entries b/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/entries deleted file mode 100644 index 676bc217..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Model_Manual/styles -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -q3rad.css -file - - - - -2012-04-01T16:51:54.254121Z -f65ac3e346f227bd9de19518dacd5ba1 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -782 - diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/prop-base/q3rad.css.svn-base b/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/prop-base/q3rad.css.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/prop-base/q3rad.css.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base b/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Model_Manual/styles/q3rad.css b/install/installs/Q3Pack/install/docs/Model_Manual/styles/q3rad.css deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/Q3Pack/install/docs/Model_Manual/styles/q3rad.css +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/entries b/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/entries deleted file mode 100644 index b6499f8f..00000000 --- a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/New_Teams_For_Q3TA -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -index.html -file - - - - -2012-04-01T16:51:46.398672Z -49943f3a09ea270d0199e591cdecf9ec -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -76283 - diff --git a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/prop-base/index.html.svn-base b/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/prop-base/index.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/prop-base/index.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/text-base/index.html.svn-base b/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/text-base/index.html.svn-base deleted file mode 100644 index 44920ab7..00000000 --- a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/.svn/text-base/index.html.svn-base +++ /dev/null @@ -1,1040 +0,0 @@ - - - -New Teams For Q3TA - - - -
- - - - - - - - - - - - - - - - -
 

New Teams for Team Arena (and other stories)
-By Paul Jaquays Script files by various id design team members Bot Search Material by Jan Paul "MrElusive" van Waveren

 
 

Table of Contents
- Introduction
- The Team Pak
- Scripts
- User Interface Assets
- In Game Team Logo Icons
- New Models for Team Skins
- Appendix A: The .Bot File
- Appendix B: The .Team File
- Appendix C: The Voice List
- Appendix D: Model Sound List
- Appendix E: .VC File Sample
- Appendix F: Sample Team Arena Animation.Cfg File and New Animation Commands
- Appendix G: Teamname.shader
- Appendix H: Search Order for Model and Head model Assets
- Appendix I: Expanded Team Skin Functionality for Q3A
- Appendix J: Contents of the tm_kreechurs.pk3
- Appendix K: A Minimal Team
- Appendix L: Contents of the TAhead_lily.pk3

-
 
 

Introduction
- The original intent for Teams in Quake III: Team Arena was to allow the use and creation of new Teams. However, it was not until community modelers attempted to build new teams that we discovered that the hooks that we put in place for team creation did not work as intended. This point release contains the fixes and additions necessary to make new teams work.

-

This document presupposes that the person wanting to create a new team already knows the basics of creating, animating, and skinning new character models for Quake III Arena. There are numerous good tutorials on-line covering both the basics and the more in-depth skills needed to make models that work inside the game.

-

Special Thanks
- The content used to test and debug the team creation code is based on a test model provided and made "Team Arena compatible" by Bill and Mike Jukes, a.k.a. "The Brothers Grimm" and a re-skinning of the original Team Arena Callisto head model provided by artist Camilla "milla" Bennett. Also thanks to milla for providing the .html version of this document. Names of some of the files used in examples have been changed. Furthermore, thanks go to Graeme Devine, Robert Duffy, and MrElusive for putting up with semi-constant harassment to get the team content working for the point release.

-

Notices: QUAKE III ARENA and QUAKE III: Team Arena are trademarks of id Software, Inc. This document is copyright 2000, 2001 by id Software, Inc. Id Software grants permission to redistribute and or redisplay this document in electronic form only. It may not be included as a part of any permanent media without first obtaining permission from id Software, inc. Permission is granted to use the contents of the scripts embedded in this document as a base for creating additional teams for Team Arena.
-

-

TOP

-

The Team Pak File
-It takes a surprisingly large amount of new content to create an entirely new team. Our test file contained 186 separate files (model included only one head). An additional head added another 16 files (we tested with only one extra head model). The content required covers every discipline of game creation . skin painting, scripting, modeling, and sound production. In fact, if the new team is to have new voice taunt sounds, it can easily exceed 10 megabytes in compressed form inside the pak file. Each of the files necessary to create a team is listed below in outline and will be discussed later in detail. The paths for these files begin in the missionpack directory. Appendix J contains the file list for the test team, Appendix K shows a team with the bare minimum of files needed to create a new team with a male and female uniform, and Appendix L contains the file list for the Callisto/Lily test head.

-

Naming Conventions
-When naming a pak file that contains the assets for a new team, preface the team name with the letters "tm_". This usage is for organizational purposes only. It is done to identify the pak as a team file. Example: tm_kreechurs.pk

-

Including What id Didn't Make
-You don't need to include any of the game content that id put in the original pak0.pk3 that shipped with Team Arena. The game should have no problem finding those assets if they are called for by the new team. Any new assets created for the team need to be in the pak file. Any assets created by other artists or authors for use with Team Arena need to be in the pak file. The team creator cannot assume that players will have those assets in their possession. When including assets created by others, including modified id game content, be sure to give notice of original authorship in the readme that accompanies the pakfile.

-

Teamname_readme.txt
-This text file tells all about the contents of your new team, including who made it, how they can reach the author, who else contributed to the project, what tools were used, how long it took, when it was released (copyright data goes here), where the ideas came from, and so on. Essentially, it should contain whatever the team creator wants to reveal about himself or herself and the process of making the team. Any resources that were created by others should be acknowledged here. If the team creator agrees to let others use the original contents of the pak file in other projects, it should be noted here also, along with any special terms or contact information.

-

NOTE: The scripts used to create the various aspects of the new team are included throughout this document. Team creators have permission to copy the scripts in this document and paste them into new scripts for use in original teams. Details such as team name, character names, and bot names should be changed to fit the new team.

-

TOP

-

Scripts
- Priority: Unless otherwise noted, all of the scripts listed below are required to be in the team pak file (see Appendix K: A Minimal Team, for a detailed list of the contents required for a basic team using existing models).

-

These are the various scripts used to define the team and model characteristics.

-

Teamname.team (in root directory) : A text file that defines the components of the team. This file corresponds to the original team.txt file in pak0.pk3. It is required for all new teams. See Appendix B for details.

-

Teamname.bot (scripts\) : This file defines the resources used by the five bots that are used by the team in single player (model, head_model, and bot a.i.). It is required for all new teams. See Appendix A for details.

-

Teamname.shader (scripts\) : Shader scripts for all shaders used to create the new_model and the five new_headmodels. This is required for the team icons to work properly in game. Other shader-modified textures may be included. See Appendix G for the sample version of this shader.

-

Animation.cfg (models\players\newmodel\) : The animation configuration file. Team Arena models have a few a few more animation sequences than their Q3A counterparts, but the basics are the same. The contents of a sample Q3:TA animation.cfg are included at the end of this document. It's a script, but not one that's resident in the scripts file. This is only required if a new model is included in the pak.

-

New_model.voice (scripts\) : This is the script that assigns individual voice wav files to specific message or status commands. See Appendix C for a sample script and discussion of its use. Voice files are optional and only required if an entirely new set of voice wav files is to be included in the pak. Sound files are large and can add significantly to the size of the pakfile. If creating a human-based team, consider using the 8 voices that came with Team Arena to save file space.

-

New_headmodel_1.vc (scripts\) : This file selects which .voice file is linked to a head file. Each head model in the pak needs one of these. A separate version of this file is required for each new headmodel included with the team. The name of the file is the same as the name of the bot that uses the headmodel. A sample .vc file is included in Appendix E.

-

TOP

-

User Interface Assets
-
Priority: The tga files are required. The roq file is optional. The User Interface menus use these files to show the team logo icons and movies of the characters in actions.

-

Teamname, of course, refers to the name of the new team.

-

Teamname_name_alt.tga (ui\assets\) : This is a 256 x 128 pixel, 32 bit .tga file (with alpha channel) depicting the name of the team as a black and white (grayscale) art file. Teamname is the name of the new team, the rest of the filename is part of its format. The alpha channel should be the same as the image (not reversed).

-

Teamname_name.tga (ui\assets\) : This is a 256 x 128 pixel, 32 bit .tga file (with alpha channel) depicting the name of the team with a glow around it. It is a black and white art file (grayscale). The alpha channel should be the same as the image (not reversed).

-

Teamname.tga (ui\assets\) : This is a 128 x 128 pixel, 32 bit .tga file (with alpha channel) that depicts a black and white version of the team logo or symbol. The alpha channel should be the same as the image (not reversed).

-

Teamname_metal.tga (ui\assets\) : This is a 128 x 128 pixel, 32 bit .tga file (with alpha channel). If the team creator wants to keep the same style as the original game, this version of the team's logo is rendered to look like brushed metal, perhaps with a bluish cast. But in reality, it can be anything, any color. The alpha channel should be the same as the alpha channel in the Teamlogo.tga art.

-

Teamname.roq (ui\assets\) : The .roq movie displays in the center area of the player set up screen when the player selects one of the teams. Movie file sizes can be large, so the team creator may wish to take the overall size of the team pakfile into consideration before including a movie. Uncompressed, the team movies in Team Arena were over a megabyte each . and being compressed format files already; they don't get much smaller in the pakfile. The good news is that if no movie file is present, the game displays the teamname_metal.tga in the center area instead. It must be noted that team movie files will not be offered for viewing in the Cinematics menu option unless the teamname.roq file is also present in the video\ directory.

-

TOP

-

In Game Team Logo Icons
- Priority: Required

-

The team style game maps for Team Arena are usually set up to display the icons of the competing teams. The game uses a separate set of art files located in the team_icon directory off the root missionpack directory for the team icons displayed in game. For Team Arena, these art files were a single color, red or blue. But that need not be the case. If a game clan wanted to use a full color version of their clan symbol, it would work in game - though the team creator may want to consider tinting the art either bluish or reddish to better suit the color used in play (most team maps are likely to use the blue/red color theme as was done in the original game).

-

Also, take into consideration that the art will be transparent, with background textures (floors, walls, colored banners) showing through behind it. Simple, graphic treatments of logos will probably work the best in all cases.

-

Art files can be larger or smaller than those shown here. However, while having smaller files will save memory, image quality will suffer. If using larger art files, image quality may improve substantially but the memory usage will be substantial also. Whether increasing or reducing file size, remember to keep the file dimension proportional to the original.

-

The Teamname.shader references this art. Make sure that the file names in the shader match those of the artwork.

-

Teamname.tga (team_icon\): This is a 128 x 128 pixel art file, the exact same file as used in ui\assets\teamname.tga. It is a black and white 32 bit version of the team logo with the same art in the alpha channel.

-

Teamname_blue.tga (team_icon\): For Team Arena, we created solid color logos, but that need not be the case. This 32 bit 128 x 128 pixel art file can be full color. The alpha channel should be the same as the teamname.tga file. If you choose to make it solid blue, consider using the same color value as the original TA logos. The RGB formula for that blue is: 0 148 255.

-

Teamname_red.tga (team_icon\): Even though id chose to make our logo's single, solid colors, this 32 bit 128 x 128 pixel art file can be whatever color the team creator wishes. The alpha channel should be the same as the teamname.tga file. If you choose to make it solid red, consider using the same color value as the original TA logos. The RGB formula for that red is: 255 0 0.

-

TOP

-

New Models and Skins for Teams
-The process by which body models are created is outside the scope of this document. While body model has a few more animations than the corresponding Quake III Arena model, the process of creation is quite similar . except for one very key element. The Team Arena model has no head. Head models for Team Arena teams are created and stored separately from the body. Where the pathname to a body model might be models\players\BoB, the path to the head models is different:

-

Example: models\players\heads\Kreecha.

-

New Team Arena Models based on Q3A models
-For the Team Arena test model, the Brothers Grimm converted a character model that they had previously made for Quake III Arena. In order to keep the game from confusing two models with the same file name, the search code for models and skins was changed to allow extended search paths for models. In this case, we placed the Team Arena model in a "characters" directory nested within the "players" directory. The path to the new model read: models\players\characters\BoB\. The model directory contains the torso and legs models only, which are Upper.md3 and Lower.md3 respectively. There are no head models in that directory. Furthermore, include any art and skin files used for the default version of the model along with the animation.cfg.

-

NOTE: When creating your models for export as .ASE files for use with the Q3data.exe, you must have a head on the model (e.g.; an h_head in the max file) for the converter to work. The converter looks for and expects to see an h_head for of the model. If the converter does not find the head during the conversion, the process will halt. After the conversion is complete just use the Upper and lower Md3 files for that character's directory. Place the head model in its own separate directory.

-

Icons for new models
-The Loading Screen for Team Arena uses the icons associated with a team member's body model, not the member's head model. Be certain to include an icon_default.tga file in new model's directory. This icon will be used on the map loading screen. It represents the Body model in use by a player . not the Head model.

-

New Team Skins
-When creating a team, make a red and a blue version of the skin. Name the skins as noted below. Do not use the team or character name in the skin. That information is taken from the name of the directory in which it resides.

-

The team skins (red and blue) for a Team Arena model reside in a directory within the model directory (which contains the model md3 pieces).

-

Example: models\players\characters\BoB\Kreechurs\.

-

The teamname directory (Kreechurs in this case) would contain the art files for the skin, and the .skin files that link art to model.

-

In simple form, the skin assets required to be in the teamname file are as follows:

-

TGA file names
-Blue.tga //the body skin for the blue team version
-Red.tga //the body skin for the red team version

-

Skin File Names
-Lower_blue.skin //blue version of legs skin file
-Upper_blue.skin //blue version of torso skin file
-Lower_red.skin //red version of legs skin file
-Upper_red.skin //red version of torso skin file
-Lower_default.skin //default legs skin file (used by U.I.). Usually, this is the red skin.
-Upper_default.skin //default torso skin file (used by U.I.). Usually, this is the red skin.

-

New Heads
-Each new player on a new team should either have a new head model or have a new skin for an existing Team Arena model. Each new head model and all its assets go into a directory named for it. In the case of new skins for pre-existing models, the new skin assets reside in a directory nested within the model's directory.

-

Example: models\players\heads\callisto\lily is a new skin for the Callisto head.

-

Note that other assets, such as the .vc file for this head will also need to be nested in directories a layer deeper in their normal files.

-

Example: scripts\callisto\lily.vc.

-

New head models need to have all the assets specific to the model (md3 files, skin files and art files) in the directory named for the model head.

-

No MD3 Models Required for New Skins on id Models
-New skins created for existing head models (id created or community created) do not require that the md3 models be in their directories. The assets specific to the new skin (skin art, skin file, icons) are placed in a directory. You do not need to redistribute md3 models for the heads that are a part of the original id game.

-

Using the Work of Others
-If you are reskinning or simply using a head model previously created and distributed by a member of the community, make sure that the original creator has authorized such use (and remember to give credit where credit is due). When using community-created models, the team creator must plan to include that model and all its assets in the pakfile.

-

TOP

-

Appendix A: The .Bot File
-Five Heads, Five Bots, Five Team Members

-Priority: Required for each new team

-

A Team Arena team consists of five players. In the original game, the five players were drawn from a mix of 11 new player heads sitting atop two body models. New teams should also have five players each. However, five players on the new team should each have a unique head/skin combination. These can either be new models or new skins using the original Q3:TA models.

-

The .bot file (whose file name is the same as the name of the new team, e.g.; Kreechurs.bot or Scumsukkers.bot) is a text script whose ".txt" file extension has been renamed to ".bot." This file corresponds to the bots.txt file used in the original Team Arena game. Appendix A shows a sample bot file.

-

Name = the name of the bot as it appears on the Start Server Menu.

-

Model = the body model used by this bot. A team can use more than one body model. However, adding multiple body models can and will add significantly to the size of the team pak file and to memory usage in game. Limiting the number of body models used by a team is a good design practice. No more than two models per team should be the limit.

-

Headmodel = *modelname. The headmodel is what makes the bot unique. It has links to the voice files and is used when creating name aliases for the bots to use in the single player game. The asterisk is a necessary part of the file name here.

-

The headmodel called Callisto/Lily is a new skin on the Callisto model mesh. The pathname is required for the model to work.

-

Aifile = the bot ai used by the team member. The computer-controlled opponents in Team Arena used three individual ai files that define their general role in the game: defense (tad_c.c), offense (tao_c.c) and all-arounder (taa_c.c). New bots can use these same a.i. files or, if desired the team creator can make new ai files based on the Team Arena ai files.

-

Filename: Teamname.bot

-
-//bot file begins here
-{
-name           Kreecha
-model          BoB
-headmodel      *Kreecha
-aifile  bots/taa_c.c
-}
-
-{
-name           Callisto/Lily
-model          BoB
-headmodel      *Callisto/Lily
-aifile  bots/tad_c.c
-}
-
-{
-name           Infinite
-model          BoB
-headmodel      *Infinite
-aifile  bots/tad_c.c
-}
-
-{
-name           Prime
-model          BoB
-headmodel      *Prime
-aifile  bots/tao_c.c
-}
-
-{
-name           Vlad
-model          BoB
-headmodel      *Vlad
-aifile  bots/tao_c.c
-}
-//bot file ends here
-		
-

TOP

-

Appendix B: The .TEAM File
- Priority: Required for each new team.

-

The team file is a text file that has had the file extension renamed from .txt to .team.

-

Kreechurs is a test Team Arena team created to test the team and head model code for point release v1.28. It uses the hypothetical "BoB" model to create a new team.

-

The team definition appears on a single line in the file:

-

"Team name" "asset path/name" "bot 1" "bot 2" "bot 3" "bot 4" "bot 5"

-

//Teams define the assets used by the team: team name, path to U.I. assets, player names
-// Character definitions act as a link between head models used by a team and models that have the proper team skin assets. The Player Set Up User Interface primarily uses the character definitions. The first entry is the head model as defined in the .bot file. The second entry is body model used by that character. For everything to work out for the best, each character should have a unique model/skin combination that defines it.

-

Filename: Teamname.team

-
-// .team file begins here
-teams {
-  { "Kreechurs" "ui/assets/kreechurs"  "BoB" "Lily" "Vlad" "Infinite" "Prime"}
-}
-
-characters {
-{ "Callisto/Lily" " BoB " }
-{ "Kreecha"  " BoB " }
-{ "Infinite"  " BoB " }
-{ "Prime"  " BoB " }
-{ "Vlad" " BoB " }
-}
-
-// Aliases are the link between character name, headmodel, and bot A.I.
-
-aliases {
-        { "Kreecha"           "BoB"              "a"  }
-        { "Lily"        "Callisto/Lily" "d"   }
-            { "Vlad"           "Vlad"              "o"       }
-            { "Infinite"       "Infinite"           "d"      }
-            { "Prime"          "Prime"             "o"       }              
-}
-
-//.team file ends here
-
-

TOP

-

Appendix C: The Voice List
- Priority: Optional.

-

The voice file is a text file that has had the file extension renamed from .txt to .voice. Each unique set of voice recordings requires its own voice file. This file contains the code script that defines the voice and corresponding text messages used by the player models in game. Like the text chat messages that appeared in original Q3A, these messages are triggered by game conditions and statuses.

-

The file directory name for the voice does not have to be the same as a head or body model, though giving it a unique name that identifies it with the team is always a good idea. The specific file names for each voice message ARE VERY IMPORTANT, as the voice script that corresponds to the file directory for the voice calls them. Example: If the new voice is called "monster", then the directory would be called "monster" and the voice file would be called monster.voice.

-

If you create a new set of recorded voices for your team or for a new model, be certain to include at least one voice message for each category (defined by a name like "getflag" and follow by opening and closing brackets) on this list. It is not necessary to provide as many different messages as shown below. Example: Your character may not need more than one way to say "yes" or have as many kill insults. You can also rewrite the scripts. Your team need not say the same thing as the id teams said or use the same style of speaking. Just remember that the text portion of the message will display on screen, so having it match the audio is always a good thing. And remember that in game, shorter speeches are better and cheaper.

-

The file path is as follows: sound\voices\newmodel\soundname.wav

-

You may include additional voices but these are the ones currently the phrases accessed by the game.

-

As with any script, these are lines of game code. Take care to maintain the proper syntax, otherwise, you are likely to either disable the file or even crash the game.

-

To create new voice recordings use a sound editing program that can produce a .wav format file that conforms to the following: Mono 22k 16bit

-

(This is taken from the male5 voice file. Substitute the name of your model for male5 in the file pathnames).

-

Filename: Voicename.voice

-
-//voice file starts here
-
-getflag
-{
-        sound/voices/male5/or_01.wav   "Get the flag"
-        sound/voices/male5/or_02.wav   "Secure the flag"
-}
-
-offense
-{
-        sound/voices/male5/or_03.wav   "You're on offense"
-}
-
-defend
-{
-        sound/voices/male5/or_04.wav   "Stay Home"
-        sound/voices/male5/or_05.wav   "Guard the base"
-        sound/voices/male5/or_07.wav   "You're on defense"
-}
-
-defendflag
-{
-        sound/voices/male5/or_06.wav   "Guard our flag"
-}
-
-patrol
-{
-        sound/voices/male5/or_08.wav   "Patrol"
-        sound/voices/male5/or_09.wav   "Take point"
-        sound/voices/male5/or_10.wav   "Go on patrol"
-}
-
-followme
-{
-        sound/voices/male5/or_11.wav   "Follow me"
-        sound/voices/male5/or_12.wav   "Cover me"
-        sound/voices/male5/or_13.wav   "Watch my back"
-}
-
-yes
-{
-        sound/voices/male5/re_01.wav   "Yessir"
-        sound/voices/male5/re_02.wav   "Yes ma'am"
-        sound/voices/male5/re_03.wav   "Aye, aye, sir"
-        sound/voices/male5/re_04.wav   "Aye, aye, ma'am"
-        sound/voices/male5/re_05.wav   "Affirmative"
-        sound/voices/male5/re_06.wav   "Copy"
-        sound/voices/male5/re_07.wav   "Roger"
-}
-
-no
-{
-        sound/voices/male5/re_08.wav   "No sir"
-        sound/voices/male5/re_09.wav   "No ma'am"
-        sound/voices/male5/re_10.wav   "Negative"
-        sound/voices/male5/re_11.wav   "I'm busy"
-}
-
-ihaveflag
-{
-        sound/voices/male5/gs_01.wav   "I'm coming in hot!"
-        sound/voices/male5/gs_02.wav   "I've secured the flag!"
-        sound/voices/male5/gs_03.wav   "I've got the flag!"
-        sound/voices/male5/gs_04.wav   "Bringing home the bacon!"
-}
-
-baseattack
-{
-        sound/voices/male5/gs_05.wav   "We're taking enemy fire!"
-        sound/voices/male5/gs_06.wav   "Security breach!"
-        sound/voices/male5/gs_07.wav   "Our base is under attack."
-}
-
-enemyhasflag
-{
-        sound/voices/male5/gs_08.wav   "Our flag is gone!"
-        sound/voices/male5/gs_09.wav   "They've got our flag!"
-        sound/voices/male5/gs_10.wav   "Enemy has secured our flag!"
-}
-
-ongetflag
-{
-        sound/voices/male5/ps_03.wav   "Getting the flag..."
-}
-
-onoffense
-{
-        sound/voices/male5/ps_01.wav   "I'm taking offense"
-        sound/voices/male5/ps_02.wav   "I'm going in..."
-}
-
-ondefense
-{
-        sound/voices/male5/ps_04.wav   "I'll stay home"
-        sound/voices/male5/ps_05.wav   "Securing base"
-        sound/voices/male5/ps_06.wav   "Guarding the base now"
-}
-
-onpatrol
-{
-        sound/voices/male5/ps_07.wav   "On patrol..."
-        sound/voices/male5/ps_08.wav   "Patroling..."
-        sound/voices/male5/ps_09.wav   "I'll take point"
-}
-
-startleader
-{
-        sound/voices/male5/ps_10.wav   "I'm the leader"
-        sound/voices/male5/ps_11.wav   "I'm in charge"
-}
-
-stopleader
-{
-        sound/voices/male5/ps_12.wav   "I don't want to lead"
-        sound/voices/male5/ps_13.wav   "Someone else lead"
-        sound/voices/male5/ps_14.wav   "I resign"
-}
-
-kill_insult
-{
-        sound/voices/male5/tt_06.wav   "Next time don't get up"
-        sound/voices/male5/tt_05.wav   "You're just a waste of space"
-        sound/voices/male2/tt_07.wav   "Are you blind?"
-        sound/voices/male5/tt_13.wav   "Duck next time"
-        sound/voices/male5/tt_19.wav   "Suh-weeet!"
-        sound/voices/male5/tt_20.wav   "Woo-Hoo!"
-        sound/voices/male5/tt_22.wav   "You just got schooled!"
-//      sound/voices/male5/tt_16.wav   "You talkin' ta ME?"
-}
-
-taunt {
-        sound/voices/male5/tt_18.wav   "How about some competition here?"
-        sound/voices/male5/tt_01.wav   "FRAGbait!"    
-        sound/voices/male5/tt_11.wav   "My momma shoots better!"
-        sound/voices/male5/tt_14.wav   "Try hitting that barn over there!"
-        sound/voices/male5/tt_17.wav   "Wanna BUY a shot?"
-//      sound/voices/male5/tt_03.wav   "Get a clue moron!"
-//      sound/voices/male5/tt_09.wav   "MORON!"
-//      sound/voices/male5/tt_02.wav   "You're such a Loser!"
-//      sound/voices/male5/tt_08.wav   "LOSER!"
-//      sound/voices/male5/tt_10.wav   "No-skill idiot!"
-//      sound/voices/male5/tt_12.wav   "Watched that all the way..."
-}
-
-death_insult {
-        sound/voices/male5/tt_15.wav   "Thank you sir.. may I have another!"
-        sound/voices/male5/tt_23.wav   "Bite me!"
-        sound/voices/male5/tt_25.wav   "Cheap shot!"
-        sound/voices/male5/tt_26.wav   "DOH"
-        sound/voices/male5/tt_28.wav   "Lucky shot!"
-        sound/voices/male5/tt_29.wav   "That's it!"
-        sound/voices/male5/tt_30.wav   "Ooh! That's it!"
-//      sound/voices/male5/tt_35.wav   "Hey, dumbass"
-//      sound/voices/male5/tt_04.wav   "What an ass!"
-//      sound/voices/male5/tt_24.wav   "Screw you!"
-}
-
-kill_gauntlet {
-        sound/voices/male5/tt_21.wav   "Eat gauntlet baby!"
-}
-
-praise {
-        sound/voices/male5/tt_27.wav   "Nice!"
-}
-
-camp                   // command someone to camp
-{
-        sound/voices/male5/voc_01.wav  "Camp this position."
-        sound/voices/male5/voc_02.wav  "Camp here."
-
-}
-
-returnflag                     // return our flag  (CTF only)
-{
-        sound/voices/male5/voc_03.wav  "Get our flag!"
-        sound/voices/male5/voc_04.wav  "Return our flag!"
-        sound/voices/male5/voc_05.wav  "Recover our flag!"
-}
-
-whoisleader                    // who is the team leader
-{
-        sound/voices/male5/voc_06.wav  "Who's our leader?"
-        sound/voices/male5/voc_07.wav  "Who's in charge?"
-        sound/voices/male5/voc_08.wav  "Who leads this team?"
-}
-
-followflagcarrier              // follow the flag/skull carrier (CTF, Oneflag, Harvester)
-{
-        sound/voices/male5/voc_09.wav  "Follow our carrier."
-        sound/voices/male5/voc_10.wav  "Stay with the carrier."
-        sound/voices/male5/voc_11.wav  "Protect the carrier."
-        sound/voices/male5/voc_12.wav  "Cover the carrier."
-}
-
-inposition                     // I'm in position
-{
-        sound/voices/male5/voc_13.wav  "I'm in place."
-        sound/voices/male5/voc_14.wav  "I'm at my post."
-        sound/voices/male5/voc_15.wav  "I am in position."
-        sound/voices/male5/voc_15a.wav "I am in position"
-}
-
-wantondefense          // I want to be on defense
-{
-        sound/voices/male5/voc_16.wav  "Let me defend."
-        sound/voices/male5/voc_17.wav  "I'd rather defend."
-}
-
-wantonoffense          // I want to be on offense
-{
-        sound/voices/male5/voc_18.wav  "Let me go on offense."
-        sound/voices/male5/voc_19.wav  "I'd rather go on offense."
-}
-
-wantonpatrol           // I want to go on patrol
-{
-        sound/voices/male5/voc_20.wav  "Let me patrol."
-        sound/voices/male5/voc_21.wav  "I'd rather patrol."
-}
-
-oncamp  //I'm Camping (status)
-{
-        sound/voices/male5/voc_22.wav  "I'm camping here."
-}
-
-onfollow
-{
-        sound/voices/male5/voc_23.wav  "I'm following."
-        sound/voices/male5/voc_24.wav  "Following!"
-}
-
-onfollowcarrier
-{
-        sound/voices/male5/voc_27.wav  "Guarding the carrier."
-}
-
-onreturnflag
-{
-        sound/voices/male5/voc_28.wav  "Getting our flag."
-}
-
-harvest //harvester game type only
-{
-        sound/voices/male5/voc_25.wav  "Go collect skulls."
-        sound/voices/male5/voc_26.wav  "Harvest some skulls."
-}
-// voice file ends here
-        
-

TOP
-
-Appendix D: Model Sound List
-Priority: Only required if a new body model is included in the team pak file.

-

The following game sounds are associated with the team model. Each of the sounds listed below is a separate file. They need to be located in a directory having the same name as the body model and be nested within the sounds directory.

-

Example: sounds/newmodel/Death1.wav.

-

If new sound files are to be created, make sure that they conform to the following wav file format: Mono 22k 16bit.

-

Death1.wav
-Death2.wav
-Death3.wav
-Drown.wav
-Fall1.wav
-Falling1.wav
-Gasp.wav
-Jump1.wav
-Pain100_1.wav
-Pain25_1.wav
-Pain50_1.wav
-Pain75_1.wav
-Taunt.wav

-

TOP

-

Appendix E: .VC File Sample
- Priority: Required for each head model

-

The vc file is a text file script that has had the file extension renamed from .txt to .vc. The script is linked to a bot name. Bot names are defined in the .bot file included in the pak file. Each bot needs to have a .vc file. It's best, if at all possible, to have the model name (or model/skin combination) and the bot name be the same. The very brief contents are simply a path to a voice file. The selected voice file can be either one of the original Team Arena voices or an original voice included with the team. When creating the voice file for a re-skinned head model, be sure to include the head name in the path to the voice script. That script must also be nested a layer deeper in the directory, such as: scripts/callisto/lily.vc.

-

The contents of a sample .vc file are shown below.

-
        //VC script begins here
-
scripts/newcharacter.voice
-
           //VC script ends here
-

TOP

-

Appendix F: Sample Team Arena Animation.Cfg File and New Animation Commands
- Priority: Required only if a new model is included.

-

The animation.cfg file is a text file that has had the file extension renamed from .txt to .cfg. This file goes in the directory with the body model components (model\players \new_model\ -- or -- model\players\characters\new_model\). The specifics of using or modifying the contents of this file are a part of the model making process and are mostly outside the focus of this document.

-

It is included in this document because the Team Arena animation configuration is different from the Quake 3 Arena Configuration. Furthermore it contains the "sex" key that determines the gender/sex of a character (as does the Q3A animation.cfg). This key/value pair determines which pronouns (masculine, feminine, or neuter) are used when the game generates messages about the player.

-

Additionally, two new animation commands (for both Q3A and Q3:TA) are shown here. These were done at the request of modelers doing non-traditional biped models. When put in the animation.cfg file, they literally stop the model from responding to the programmatic animations for those body parts. If you freeze the legs, the hips don't tilt during running animation. If the model's legs were too much outside of bipedal norms (as is the case for quadrupeds), the front or back legs would disappear into the ground as the leg models programmatically tilted around the model's pelvis. If you freeze the torso, you don't get waist twists or bends. Depending on what you are making, you may want to use one, but not the other.

-

Fixedlegs : put in the animation .cfg this command freezes programmatic rotation of the legs

-

Fixedtorso : when put in the animation .cfg this command freezes programmatic rotation of the torso

-

These commands are commented out in the sample below.

-
-		// animation.config file begins here
-        sex     m      // THIS VALUE  (m, f, n) DETERMINES GENDER OF MODEL
-        //fixedlegs  // PREVENTS PROGRAMMATIC ROTATION OF LEGS
-        //fixedtorso // PREVENTS PROGRAMMATIC ROTATION OF TORSO
-        headoffset -3 0 0
-        footsteps boot
-        
-        
-        
-        // first frame, num frames, looping frames, frames per second
-        0       30      0       20             // BOTH_DEATH1
-        29      1       0       20             // BOTH_DEAD1
-        30      30      0       20             // BOTH_DEATH2
-        59      1       0       20             // BOTH_DEAD2
-        60      30      0       20             // BOTH_DEATH3
-        89      1       0       20             // BOTH_DEAD3
-        
-        90      26      0       20             // TORSO_GESTURE
-        
-        116     6       0       15             // TORSO_ATTACK        (MUST NOT CHANGE -- hand animation is synced to this)
-        122     6       0       15             // TORSO_ATTACK2       (MUST NOT CHANGE -- hand animation is synced to this)
-        
-        128     5       0       20             // TORSO_DROP          (MUST NOT CHANGE -- hand animation is synced to this)
-        133     4       0       20             // TORSO_RAISE         (MUST NOT CHANGE -- hand animation is synced to this)
-        
-        137     1       0       15             // TORSO_STAND
-        138     1       0       15             // TORSO_STAND2
-        
-        199     8       8       20             // LEGS_WALKCR
-        207     12      12      20             // LEGS_WALK
-        219     10      10      20             // LEGS_RUN
-        229     10      10      20             // LEGS_BACK
-        239     10      10      15             // LEGS_SWIM
-        
-        249     7       0       15             // LEGS_JUMP
-        256     9       0       15             // LEGS_LAND
-        265     9       0       15             // LEGS_JUMPB
-        274     6       0       15             // LEGS_LANDB
-        280     15      15      15             // LEGS_IDLE
-        295     11      11      15             // LEGS_IDLECR
-        307     9       9       15             // LEGS_TURN
-        
-        139     10      0       15             // TORSO_GETFLAG    //TA Gesture
-        149     10      0       15             // TORSO_GUARDBASE   //TA Gesture
-        159     10      0       15             // TORSO_PATROL   //TA Gesture
-        169     10      0       15             // TORSO_FOLLOWME   //TA Gesture
-        179     10      0       15             // TORSO_AFFIRMATIVE   //TA Gesture
-        189     10      0       15             // TORSO_NEGATIVE   //TA Gesture
-        
-        // animation.config file ends here
-		
-

TOP

-

Appendix G: Teamname.shader
- Priority: Required for team icons to work in the game

-

This is a text file script with the file extension renamed from .txt to ..shader.

-
-//Teamname.shader begins here
-team_icon/Kreechurs_red
-{              
-        cull none
-        surfaceparm nolightmap
-        surfaceparm trans
-        surfaceparm nomarks
-        {
-               map team_icon/Kreechurs_red.tga
-               blendFunc Add
-               rgbgen wave triangle 0.2 0.5 0 0.2           
-        }
-}
-
-team_icon/Kreechurs_blue
-{              
-        cull none
-        surfaceparm nolightmap
-        surfaceparm trans
-        surfaceparm nomarks
-        {
-               map team_icon/Kreechurs_blue.tga
-               blendFunc Add
-               rgbgen wave triangle 0.2 0.5 0 0.2       
-        }
-}
-//Teamname.shader ends here
-		
-

TOP

-

Appendix H: Search Order for Model and Head model Assets

-

The means by which headmodels are used and selected was unified as much as possible between Q3A and Q3:TA code. The byproduct of this change allows players some more choices when selecting head models. The following documents the new procedures.

-

Searching for Head skins
-The game uses the following paths and order of search when looking for headmodel assets. The asterisk (*) is only used for head models. When the asterisk is used, the game will try to load the head model from the models/players/heads folder first. After that, it looks deeper into the directories.

-

More Variety of Head Skins
-If the team creator so chooses, different skins can be created for each team (note that id chose to use the same head skins for each team . but that doesn't have to be the case).

-
-===================================
-Q3A/TA NON-TEAMPLAY SEARCH ORDER
-===================================
-
--------------------------------------------------
-headmodel = *callisto/lily
-
-models/players/heads/callisto/lily/head_default.skin
-models/players/heads/callisto/head_lily.skin
-
--------------------------------------------------
-headmodel = callisto/lily
-
-models/players/callisto/lily/head_default.skin
-models/players/callisto/head_lily.skin
-models/players/heads/callisto/lily/head_default.skin
-models/players/heads/callisto/head_lily.skin
-
-============================
-Q3A TEAMPLAY SEARCH ORDER
-============================
--------------------------------------------------
-Example:
-team_headmodel = *callisto/lily
-team = red
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-
--------------------------------------------------
-Example:
-team_headmodel = callisto/lily
-team = red
-
-models/players/callisto/lily/head_red.skin
-models/players/callisto/head_red.skin
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-
-===========================
-TA TEAMPLAY SEARCH ORDER
-===========================
-Example:
-team_headmodel = *callisto/lily
-team = red
-teamName = Stroggs
-
-models/players/heads/callisto/lily/Stroggs/head_red.skin
-models/players/heads/callisto/Stroggs/head_red.skin
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-
-Example:
-team_headmodel = callisto/lily
-team = red
-teamName = Stroggs
-
-models/players/callisto/lily/Stroggs/head_red.skin
-models/players/callisto/Stroggs/head_red.skin
-models/players/callisto/lily/head_red.skin
-models/players/callisto/head_red.skin
-models/players/heads/callisto/lily/Stroggs/head_red.skin
-models/players/heads/callisto/Stroggs/head_red.skin
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-		
-

Searching for Model Skins
-The following list shows the order in which the game searches for model skins. When creating new skins for Team Arena or Quake 3 Arena (or related mods of either), use the following directory arrangement.

-
-===================================
-Q3A/TA NON-TEAMPLAY SEARCH ORDER
-===================================
--------------------------------------------------
-Example:
-model = hunter/harpy
-
-
-legs:
-        models/players/hunter/lower_harpy_default.skin
-        models/players/hunter/lower_harpy.skin
-        models/players/characters/james/lower_harpy_default.skin
-        models/players/characters/james/lower_harpy.skin
-torso:
-        models/players/hunter/upper_harpy_default.skin
-        models/players/hunter/upper_harpy.skin
-        models/players/characters/hunter/upper_harpy_default.skin
-        models/players/characters/hunter/upper_harpy.skin
-
-============================
-Q3A TEAMPLAY SEARCH ORDER
-============================
-
--------------------------------------------------
-Example:
-team_model = hunter/harpy
-team = red
-
-legs:
-        models/players/hunter/lower_harpy_red.skin
-        models/players/hunter/lower_red.skin
-        models/players/characters/hunter/lower_harpy_red.skin
-        models/players/characters/hunter/lower_red.skin
-torso:
-        models/players/hunter/upper_harpy_red.skin
-        models/players/hunter/upper_red.skin
-        models/players/characters/hunter/upper_harpy_red.skin
-        models/players/characters/hunter/upper_red.skin
-
-
-===========================
-TA TEAMPLAY SEARCH ORDER
-===========================
-
--------------------------------------------------
-Example:
-team_model = james/badass
-team = red
-teamName = Stroggs
-
-legs:
-        models/players/james/Stroggs/lower_badass_red.skin
-        models/players/james/Stroggs/lower_red.skin
-        models/players/james/lower_badass_red.skin
-        models/players/james/lower_red.skin
-        models/players/characters/james/Stroggs/lower_badass_red.skin
-        models/players/characters/james/Stroggs/lower_red.skin
-        models/players/characters/james/lower_badass_red.skin
-        models/players/characters/james/lower_red.skin
-torso:
-        models/players/james/Stroggs/upper_badass_red.skin
-        models/players/james/Stroggs/upper_red.skin
-        models/players/james/upper_badass_red.skin
-        models/players/james/upper_red.skin
-        models/players/characters/james/Stroggs/upper_badass_red.skin
-        models/players/characters/james/Stroggs/upper_red.skin
-        models/players/characters/james/upper_badass_red.skin
-        models/players/characters/james/upper_red.skin
-		
-

TOP

-

Appendix I: Expanded Team Skin Functionality for Q3A

-

Technically speaking, the following information has nothing to do with Team Arena teams, but this document is just as good a place for this information to reside as any.

-

At the request of several modelers who worked with the modeling and skin making forums and archives at Polycount, we changed the way that Quake III Arena (not just Team Arena) handles skin replacement in team games. Originally, if a skinner made a new skin for a Q3A model AND made team color versions of that skin, the game would not automatically use the team version. Instead, it would display the id default red or blue skin. To see a new team skin in the game, the skinner literally had to remove the default skins and replace them with the new versions.

-

With version 1.28 of the game code, we've been able to get that changed. The file format that we used is the one requested by the skinners themselves. However, because of the way searches for head skins now work, pre-existing Q3A files are not going to work correctly. They need to have one, renamed skin file added for the proper head skins to appear in the game.

-

When a properly set-up user-created skin for a model is accompanied by matching team color skins, the game will now use them instead of the default team skin for that model.

-

The example below shows the assets that must be in the pakfile for the Blue version of a skin named Hellion that uses the id-created Crash model.

-
- Hellion_blue.tga                          models\players\crash\
- Hellion_blue_f.tga                       models\players\crash\
- Hellion_blue_t.tga                       models\players\crash\
- Head_Hellion_blue.skin              models\players\crash\
- Icon_Hellion_blue.tga                 models\players\crash\
- Lower_Hellion_blue.skin            models\players\crash\
- Upper_Hellion_blue.skin            models\players\crash\
- Head_blue.skin                            models\players\crash\Hellion\
-        
-

The last file is the key to making it work . a skin file with the same contents as Head_Hellion_blue.skin, only renamed Head_blue.skin and placed one layer deeper in the Hellion directory. Note that BOTH head_hellion_blue.skin in the crash directory and head_blue.skin in the crash/Hellion directory are necessary for the model to work properly.

-

To see a working example of a properly set up Q3A skin, look for Hades Orphan, the revised version (h20.pk3), by Camilla "milla" Bennett for the Crash model.

-

TOP

-

Appendix J: Contents of the tm_kreechurs.pk3

-

The following list is taken directly from the contents of the pak file contain the BoB model and the Kreechurs team information. Use this as a reference when creating your own team pak files.

-
-tm_kreechurs.pk3
-Name    Modified       Size    Ratio   Packed  Path
-kreechurs.team  5/9/2001 12:01 PM      1,968   61%     770
-kreechurs_readme.txt   5/9/2001       3,162   59%     1,286   
-animation.cfg  5/161/2001 4:32 PM     1,173   59%     478         models\players\characters\BoB\
-default_flame1.jpg     513/2000 7:19 PM       5,972   10%     5,385        models\players\characters\BoB\
-default_flame2.jpg     51312000 7:19 PM       5,984   10%     5,359        models\players\characters\BoB\
-default_flame3.jpg     5/3/2000 7:20 PM       5,623   11%     5,014        models\players\characters\BoB\
-default_flame4.jpg     51312000 7:20 PM       5,284   12%     4,658        models\players\characters\BoB\
-default_flame5.jpg     513/2000 7:21 PM       5,231   10%     4,691         models\players\characters\BoB\
-default_flame6.jpg     5/3/2000 7:21 PM       5,318   11%     4,735         models\players\characters\BoB\
-qefault_flame7.jpg     5/3/2000 7:21 PM       5,807   11%     5,197         models\players\characters\BoB\
-default_flame8.jpg     5/3/2000 7:22 PM       6,114   10%     5,510         models\players\characters\BoB\
-default_flameball.jpg  5/3/2000 7:22 PM       3,010   26%     2,216         models\players\characters\BoB\
-defaultjets.tga        611412000 2:55 AM      49,196  37%     31,075         models\players\characters\BoB\
-icon_blue.tga  6/13/2000 8:15 PM      16,402  58%     6,845         models\players\characters\BoB\
-icon_red.tga   6/13/2000 8:15 PM      16,402  61%     6,327         models\players\characters\BoB\
-lower.md3      3/3/2001 12:11 PM      593,972        33%     398,956         models\players\characters\BoB\
-lower_1.md3    3/3/2001 12:11 PM      593,972 33%     398,956         models\players\characters\BoB\
-lower_2.md3    3/3/2001 12.11 PM      593,972        33%     398,956         models\players\characters\BoB\
-upper.md3      3/3/2001 12:11 PM      721,388        33%     483,599         models\players\characters\BoB\
-upper_1.md3    3/3/2001 12:11 PM      721,388        33%     483,599         models\players\characters\BoB\
-upper_2.md3    3/3/2001 12:11 PM      721,388        33%     483,599         models\players\characters\BoB\
-icon_default.tga       6/13/2000 8:15 PM      16,402  61%     6,328         models\players\ characters\BoB\
-blue.tga       10/23/2000 7: 17 PM    196,626        41%     115,756         models\players\characters\BoB\kreechurs\
-lower_blue.skin        4/6/2001 11 :20 AM     203     52%     98         models\players\characters\BoB\kreechurs\
-lower_default.skin     4/6/200 111:25AM       204     50%     102         models\players\characters\BoB\kreechurs\
-lower_red.skin  4/6/2001 11:20AM       204     50%     102         models\players\characters\BoB\kreechurs\
-red.tga        10/23/2000 7:17 PM     196,626        43%     111,607         models\players\characters\BoB\kreechurs\
-upper_blue.skin        41612001 11:20AM       281     58%     118         models\players\characters\BoB\kreechurs\
-upper_default.skin     416/2001 11:25AM       282     58%     119         models\players\characters\BoB\kreechurs\
-upper_red.skin  4/6/2001 11 :20 AM     282     58%     119         models\players\characters\BoB\kreechurs\
-blue_h.tga     6/14/2000 10:26 AM     196,652        56%     86,873         models\players\heads\Kreecha\
-default_fc.tga  5/29/2000 10:07 AM     3,090   90%     323         models\players\heads\Kreecha\
-default_visor.tga      10/23/2000 7:57 PM     196,626        96%     7,656         models\players\heads\Kreecha\
-Kreecha.md3    3/3/2001 12:12 PM      5,868   46%     3,171         models\players\heads\Kreecha\
-Kreecha_1.md3  3/3/2001 12:12 PM      5,868   46%     3,171         models\players\heads\Kreecha\
-Kreecha_2.md3  3/3/2001 12:12 PM      5,868   46%     3,171         models\players\heads\Kreecha\
-head_blue.skin  3/12/2001 4:58 PM      56      7%      52         models\players\heads\Kreecha\
-head_default.skin      3/1212001 4:57 PM      53      8%      49         models\players\heads\Kreecha\
-head_red.skin  3/12/2001 4:58 PM      55      7%      51         models\players\heads\Kreecha\
-icon_blue.tga  6/13/2000 8:15 PM      16,402  58%     6,846        models\players\heads\Kreecha\
-icon_default.tga       6/13/2000 8:15 PM      16,402  61%     6,328         models\players\heads\Kreecha\
-icon_red.tga   6/1312000 8.15 PM      16,402  61%     6,328         models\players\heads\Kreecha\
-red_h.tga      3112/2001 6:06 PM      196,626        66%     66,666         models\players\heads\Kreecha\
-BoB.shader     3/12/2001 5:49 PM      2,912   89%     308     scripts\
-kreechurs.bot  5/9/2001 11 :43 AM     405     70%     123     scripts\
-kreechurs.shader       4/6/2001 3:05 PM       500     67%     163     scripts\
-Kreecha.vc     5/2/2001 5:53 PM       21      0%      21      scripts\
-Infinite.vc    4/9/2001 11: 18 AM     24      0%      24      scripts\
-Prime.vc       4/9/2001 11: 18 AM     24      0%      24      scripts\
-Vader.vc       4/9/2001 11: 18 AM     24      0%      24      scripts\
-death1.wav     2/23/2000 9:20 AM      16,720  47%     8,900   sound\player\BoB\
-death2.wav     5/7/2000 5:46 PM       18,496  17%     15,356  sound\player\BoB\
-death3.wav     5/7/2000 5:46 PM       18,496  17%     15,356  sound\player\BoB\
-fall1.wav      5/9/2000 6:40 AM       13,944  62%     5,327   sound\player\BoB\
-falling1.wav   5/7/2000 5:22 PM       40,722  26%     30,585  sound\player\BoB\
-gasp.wav       5/7/2000 5:15 PM       55,230  4%      53,293  sound\player\BoB\
-jump1.wav      5/7/20009:26 PM 47,778   8%     44,070  sound\player\BoB\
-pain100_1.wav  5/7/20005:33PM 6,894    29%    4,880   sound\player\BoB\
-pain25_1.wav   5/7/20005:34 PM 9,832    26%    7,248   sound\player\BoB\
-pain50_1.wav   5/7/20005:33 PM 6,444    22%    5,007   sound\player\BoB\
-pain75_1.wav   5/7/20005:33 PM 9,512    26%    6,997   sound\player\BoB\
-taunt.wav      3/3/2001 12:17 PM      163,874  11%    146,434 sound\player\BoB\
-gs_01.wav      10/20/20005:05 PM      51,304   10%    46,296  sound\voices\BoB\
-gs_02.wav      10/20/20005:05 PM      69,704   10%    62,811  sound\voices\BoB\
-gs_03.wav      10/20/20005:05 PM      53,394   8%     49,195  sound\voices\BoB\
-gs_04.wav      10/20/20005:05 PM      48,802   3%     47,157  sound\voices\BoB\
-gs_05.wav      10/20/20005:05 PM      62,170   4%     59,614  sound\voices\BoB\
-gs_06.wav      10/20/2000 5:05 PM     53,622   5%     51,075  sound\voices\BoB\
-gs_07 .wav     10/20/2000 5:05 PM     67,756   10%    60,889  sound\voices\BoB\
-gs_08.wav      10/20/2000 5:05 PM     61,458   4%     59,265  sound\voices\BoB\
-gs_09.wav      10/20/2000 5:05 PM     60,042   6%     56,640  sound\voices\BoB\
-gs_10.wav      10/20/2000 5:05 PM     82,526   4%     79,337  sound\voices\BoB\
-or_01.wav      10/20/2000 5.05 PM     46,892   8%     42,990  sound\voices\BoB\
-or_02.wav      10/20/2000 5:05 PM     63,152   10%    56,946  sound\voices\BoB\
-or_03.wav      10/20/2000 5:05 PM     54,714   6%     51,246  sound\voices\BoB\
-or_04.wav      10/20/2000 5:05 PM     43,640   4%     41,815  sound\voices\BoB\
-or_05.wav      10/20/2000 5:05 PM     56,694   6%     53,172  sound\voices\BoB\
-or_06.wav      10/20/2000 5:05 PM     44,248   6%     41,468  sound\voices\BoB\
-or_07.wav      10/20/2000 5:05 PM     57,616   4%     55,043  sound\voices\BoB\
-or_08.wav      10/20/2000 5:05 PM     22,626   5%     21,538  sound\voices\BoB\
-or_09.wav      10/20/2000 5:05 PM     36,260   30%    25,528  sound\voices\BoB\
-or_10.wav      10/20/2000 5:05 PM     43,396   7%     40,432  sound\voices\BoB\
-or_11.wav      10/20/2000 5:05 PM     37,070   4%     35,592  sound\voices\BoB\
-or_12.wav      10/20/2000 5:05 PM     25,714   4%     24,796  sound\voices\BoB\
-ps_01.wav      10/20/2000 5:05 PM     58,040   4%     55,538  sound\voices\BoB\
-ps_02.wav      10/20/2000 5:05 PM     40,686   4%     39,161  sound\voices\BoB\
-ps_03.wav      10/20/2000 5:05 PM     44,870   5%     42,695  sound\voices\BoB\
-ps_04.wav      10/20/2000 5:05 PM     50,550   4%     48,465  sound\voices\BoB\
-ps_05.wav      10/20/2000 5:05 PM     64,256   9%     58,718  sound\voices\BoB\
-ps_06.wav      10/20/2000 5:05 PM     60,770   4%     58,385  sound\voices\BoB\
-ps_07.wav      10/20/2000 5:05 PM     41,604   3%     40,372  sound\voices\BoB\
-ps_08.wav      10/20/2000 5:05 PM     33,102   4%     31,860  sound\voices\BoB\
-ps_09.wav      10/20/2000 5:05 PM     43,578   14%    37,279  sound\voices\BoB\
-ps_1 0.wav     10/20/2000 5:05 PM     48,126   3%     46,467  sound\voices\BoB\
-ps_11.wav      10/20/2000 5:05 PM     52,114   7%     48,442  sound\voices\BoB\
-ps_12.wav      10/20/2000 5:05 PM     46,054   3%     44,632  sound\voices\BoB\
-ps_13.wav      10/20/2000 5:05 PM     52,026   4%     49,921  sound\voices\BoB\
-ps_14.wav      10/20/2000 5:05 PM     38,428   3%     37,165  sound\voices\BoB\
-re_01.wav      10/20/2000 5:05 PM     42,970   5%     40,707  sound\voices\BoB\
-re_02.wav      10/20/2000 5:05 PM     42,010   16%    35,118  sound\voices\BoB\
-re_03.wav      10/20/2000 5:05 PM     44,994   4%     43,387  sound\voices\BoB\
-re_04.wav      10/20/2000 5:05 PM     26,620   3%     25,824  sound\voices\BoB\
-re_05.wav      10/20/2000 5:05 PM     31,732   4%     30,549  sound\voices\BoB\
-re_06.wav      10/20/2000 5:05 PM     20,342   5%     19,287  sound\voices\BoB\
-re_07.wav      10/20/2000 5:05 PM     23,544   4%     22,526  sound\voices\BoB\
-re_08.wav      10/20/2000 5:05 PM     38,070   3%     36,822  sound\voices\BoB\
-re_09.wav      10/20/2000 5:05 PM     33,436   4%     32,041  sound\voices\BoB\
-re_10.wav      10/20/2000 5:05 PM     29,016   7%     26,898  sound\voices\BoB\
-re_11.wav      10/20/2000 5:05 PM     31,998   3%     30,885  sound\voices\BoB\
-tt_01.wav      10/20/2000 5:05 PM     56,240   7%     52,038  sound\voices\BoB\
-tt_02.wav      10/20/2000 5:05 PM     57,144   5%     54,206  sound\voices\BoB\
-tt_03.wav      10/20/2000 5:05 PM     68,484   9%     62,426  sound\voices\BoB\
-tt_04.wav      10/20/2000 5:05 PM     55,838   5%     52,785  sound\voices\BoB\
-tt_05.wav      10/20/2000 5:05 PM     75,106   6%     70,367  sound\voices\BoB\
-tt_06.wav      10/20/2000 5:05 PM     81,630   10%    73,342  sound\voices\BoB\
-tt_07.wav      10/20/2000 5:05 PM     60,354   5%     57,333  sound\voices\BoB\
-tt_08.wav      10/20/2000 5:05 PM     56,642   5%     53,981  sound\voices\BoB\
-tt_09.wav      10/20/2000 5:05 PM     49,216   3%     47,675  sound\voices\BoB\
-tt_10.wav      10/20/2000 5:05 PM     60,656   5%     57,563  sound\voices\BoB\
-tt_11.wav      10/20/2000 5:05 PM     75,106   5%     71,690  sound\voices\BoB\
-tt_12.wav      10/20/2000 5:05 PM     90,760   6%     84,879  sound\voices\BoB\
-tt_13.wav      10/20/2000 5:05 PM     52,628   8%     48,347  sound\voices\BoB\
-tt_14.wav      10/20/2000 5:05 PM     72,848   4%     70,004  sound\voices\BoB\
-tt_15.wav      10/20/2000 5:05 PM     109 184  12%    96,020  sound\voices\BoB\
-tt_16.wav      10/20/2000 5:05 PM     48,812   3%     47,245  sound\voices\BoB\
-tt_17.wav      10/20/2000 5:05 PM     64,506   10%    57,951  sound\voices\BoB\
-tt_18.wav      10/20/2000 5:05 PM     85,018   6%     79,532  sound\voices\BoB\
-tt_19.wav      10/20/2000 5:05 PM     72,978   17%    60,260  sound\voices\BoB\
-tt_20.wav      10/20/2000 5:05 PM     73,328   6%     68,967  sound\voices\BoB\
-tt_21.wav      10/20/2000 5:05 PM     79,434   7%     74, 101 sound\voices\BoB\
-tt_22.wav      10/20/2000 5:05 PM     74,636   4%     71,397  sound\voices\BoB\
-tt_23.wav      10/20/2000 5:05 PM     37,034   18%    30,448  sound\voices\BoB\
-tt_24.wav      10/20/2000 5:05 PM     43,316   5%     41,087  sound\voices\BoB\
-tt_25.wav      10/20/2000 5:05 PM     48,376   13%    42,005  sound\voices\BoB\
-tt_26.wav      10/20/2000 5:05 PM     35,464   8%     32,716  sound\voices\BoB\
-tt_27.wav      10/20/2000 5:05 PM     38,430   6%     35,995  sound\voices\BoB\
-tt_28.wav      10/20/2000 5:05 PM     40,698   13%    35,580  sound\voices\BoB\
-tt_29.wav      10/20/2000 5:05 PM     36,074   17%    29,767  sound\voices\BoB\
-tt_30.wav      10/20/2000 5:05 PM     83,012   5%     79,167  sound\voices\BoB\
-tt_31.wav      10/20/2000 5:05PM      55,530   14%    47,706  sound\voices\BoB\
-tt_32.wav      10/20/2000 5:05 PM     52,040   15%    44,369  sound\vojces\BoB\
-tt_33.wav      10/20/2000 5:05 PM     96,360   10%    86,316  sound\voices\BoB\
-tt_34.wav      10/20/2000 5:05 PM     100,896  5%     96,263  sound\voices\BoB\
-tt_35.wav      10/20/2000 5:05 PM     104,038  10%    93,172  sound\voices\BoB\
-tt_36.wav      10/20/2000 5:05 PM     34,940   4%     33,701  sound\voices\BoB\
-tt_37.wav      10/20/2000 5:05 PM     81,704   12%    71,904  sound\voices\BoB\
-tt_38.wav      10/20/2000 5:05 PM     58,670   19%    47,593  sound\voices\BoB\
-tt_39.wav      10/20/2000 5:05 PM     57,012   4%     54,683  sound\voices\BoB\
-tt_40.wav      10/20/2000 5:05 PM     94,790   5%     90,171  sound\voices\BoB\
-tt_41.wav      10/20/2000 5:05 PM     89,030   7%     82,981  sound\voices\BoB\
-tt_42.wav      10/20/2000 5:05 PM     76,556   14%    65,952  sound\voices\BoB\
-tt_43.wav      10/20/2000 5:05 PM     67,744   10%    60,694  sound\voices\BoB\
-tt_44.wav      10/20/2000 5:05 PM     44,188   20%    35,183  sound\voices\BoB\
-voc_01.wav     10/20/2000 5:05 PM     51,640   12%    45,423  sound\voices\BoB\
-voc_02.wav     10/20/2000 5:05 PM     37,916   12%    33,258  sound\voices\BoB\
-voc_03.wav     10/20/2000 5:05 PM     40,364   9%     36,548  sound\voices\BoB\
-voc_04.wav     10/20/2000 5:05 PM     60,412   4%     57,815  sound\voices\BoB\
-voc_05.wav     10/20/2000 5:05 PM     56,172   6%     52,986  sound\voices\BoB\
-voc_06.wav     10/20/2000 5:05 PM     41,284   3%     39,918  sound\voices\BoB\
-voc_07.wav     10/20/2000 5:05 PM     49,442   9%     45,003  sound\voices\BoB\
-voc_08.wav     10/20/2000 5:05 PM     61,656   5%     58,449  sound\voices\BoB\
-voc_09.wav     10/20/2000 5:05 PM     44,306   7%     41,295  sound\voices\BoB\
-voc_10.wav     10/20/2000 5:05 PM     58,298   9%     52,997  sound\voices\BoB\
-voc_11.wav     10/20/2000 5:05 PM     55,050   18%    45,254  sound\voices\BoB\
-voc_12.wav     10/20/2000 5:05 PM     40,614   9%     37,135  sound\voices\BoB\
-voc_13.wav     10/20/2000 5:05 PM     43,068   4%     41,307  sound\voices\BoB\
-voc_14.wav     10/20/2000 5:05 PM     45,512   9%     41,619  sound\voices\BoB\
-voc_15.wav     10/20/2000 5:05 PM     47,532   3%     45,886  sound\voices\BoB\
-voc_16.wav     10/20/2000 5:05 PM     40,756   3%     39,412  sound\voices\BoB\
-yoc_17.wav     10/20/2000 5:05 PM     52,070   7%     48,546  sound\voices\BoB\
-voc_18.wav     10/20/2000 5:05 PM     55,394   6%     51,854  sound\voices\BoB\
-voc_19.wav     10/20/2000 5:05 PM     74,718   8%     68,688  sound\voices\BoB\
-voc_20.wav     10/20/2000 5:05 PM     47,504   10%    42,821  sound\voices\BoB\
-voc_21.wav     10/20/2000 5:05 PM     52,034   7%     48,188  sound\voices\BoB\
-voc_22.wav     10/20/2000 5:05 PM     36,558   10%    32,925  sound\voices\BoB\
-voc_23.wav     10/20/2000 5:05 PM     35,880   4%     34,606  sound\voices\BoB\
-voc_24.wav     10/20/2000 5:05 PM     28,234   4%     27,227  sound\voices\BoB\
-voc_25.wav     10/20/2000 5:05 PM     50,004   14%    42,898  sound\voices\BoB\
-voc_26.wav     10/20/2000 5:05 PM     62,516   10%    56,117  sound\voices\BoB\
-voc_27.wav     10/23/2000 3:01 PM     49,444   5%     46,934  sound\voices\BoB\
-voc_28.wav     10/23/2000 3:05 PM     54,600   6%     51,556  sound\voices\BoB\
-Kreechurs.tga  4/6/2001 1 :08 PM      65,580   99%    873     team_icon\
-Kreechurs_blue.tga     4/6/2001 1 :09 PM      65,580   98%    1,030   team_icon\
-Kreechurs_red.tga      4/6/2001 1 :09 PM      65,580   98%    1,016   team_icon\
-Kreechurs.roq  5/09/2001 5:45 PM      1,078,120      9%      976,146 ui\assets\
-Kreechurs.tga  3/2/2001 11 :57 AM     65,580   99%    873     ui\assets\
-Kreechurs_metal.tga    3/2/2001 10:58 AM      65,580   74%    16,883  ui\assets\
-Kreechurs_name.tga     3/2/200111:16AM 131,116  91%    11,640  ui\assets\
-Kreechurs_name_alt.tga         3/2/200111:05AM 131,116  97%    3,870   ui\assets\
-
-188 file(s)            12,590,550      25%    9,496,872
-
-

TOP

-

Appendix K: A Minimal Team

-

The following list is the minimum number of files needed to make a new team and assumes that the team creator is using both the Janet and James models (the models shipped with Quake III: Team Arena) and the pre-existing heads that work with those models. Note that no sound or voice files are necessary. No head files are necessary. When adding new heads, refer to the Kreecha head in Appendix J. When reskinning previously created heads, refer to the Callisto/Lily head in Appendix J. Use this list as a reference when creating your own team pak files.

-
-tm_kreechurs.pk3
-Name    Modified       Size    Ratio   Packed  Path
-kreechurs.team  5/9/2001 12:01 PM      1,968   61%     770
-kreechurs_readme.txt   5/9/2001       3,162   59%     1,286   
-blue.tga       10/23/2000 7: 17 PM    196,626        41%     115,756         models\players\James\kreechurs\
-lower_blue.skin        4/6/2001 11 :20 AM     203     52%     98         models\players\James\kreechurs\
-lower_default.skin     4/6/200 111:25AM       204     50%     102         models\players\James\kreechurs\
-lower_red.skin  4/6/2001 11:20AM       204     50%     102         models\players\James\kreechurs\
-red.tga        10/23/2000 7:17 PM     196,626        43%     111,607         models\players\James\kreechurs\
-upper_blue.skin        41612001 11:20AM       281     58%     118         models\players\James\kreechurs\
-upper_default.skin     416/2001 11:25AM       282     58%     119         models\players\James\kreechurs\
-upper_red.skin  4/6/2001 11 :20 AM     282     58%     119         models\players\James\kreechurs\
-blue.tga       10/23/2000 7: 17 PM    196,626        41%     115,756         models\players\Janet\kreechurs\
-lower_blue.skin        4/6/2001 11 :20 AM     203     52%     98         models\players\Janet\kreechurs\
-lower_default.skin     4/6/200 111:25AM       204     50%     102         models\players\Janet\kreechurs\
-lower_red.skin  4/6/2001 11:20AM       204     50%     102         models\players\Janet\kreechurs\
-red.tga        10/23/2000 7:17 PM     196,626        43%     111,607         models\players\Janet\kreechurs\
-upper_blue.skin        41612001 11:20AM       281     58%     118         models\players\Janet\kreechurs\
-upper_default.skin     416/2001 11:25AM       282     58%     119         models\players\Janet\kreechurs\
-upper_red.skin  4/6/2001 11 :20 AM     282     58%     119         models\players\Janet\kreechurs\
-kreechurs.bot  5/9/2001 11 :43 AM     405     70%     123     scripts\
-kreechurs.shader       4/6/2001 3:05 PM       500     67%     163     scripts\
-kreechurs.tga  4/6/2001 1 :08 PM      65,580   99%    873     team_icon\
-kreechurs_blue.tga     4/6/2001 1 :09 PM      65,580   98%    1,030   team_icon\
-kreechurs_red.tga      4/6/2001 1 :09 PM      65,580   98%    1,016   team_icon\
-kreechurs.tga  3/2/2001 11 :57 AM     65,580   99%    873     ui\assets\
-kreechurs_metal.tga    3/2/2001 10:58 AM      65,580   74%    16,883  ui\assets\
-kreechurs_name.tga     3/2/200111:16AM 131,116  91%    11,640  ui\assets\
-kreechurs_name_alt.tga         3/2/200111:05AM 131,116  97%    3,870   ui\assets\
-
-27 file(s)             1,354,162              271,112 
-
-

TOP

-

Appendix L: Contents of the TAhead_lily.pk3

-

The following list is taken directly from the contents of the pak file that contains the Lily head model that is a part of the Kreechurs team. Lily is based on the Callisto head model from the original TA game (blinking female head with red or blue hair cut in a pageboy style). Use this as a reference when creating your own pak files for new character heads.

-
-TAhead_lily.pk3
-
-Name    Modified       Size    Ratio   Packed  Path
-Lily.vc        5/112001 6:56 PM       23      0%      23      scripts\Callisto\
-red_Iily.shader        4/9/20011:18 PM        557     79%     117     scripts\
-lily .shader   4/9/2001 1: 19 PM      528     78%     114      scripts\
-blue_lily.shader       5/1/20015:50 PM        566     79%     119     scripts\
-Lily_redface2.tga      4/3/200111:41 PM       16,428  32%     11,092         models\players\heads\Callisto\Lily\
-Lily_redface.tga       4/3/2001 11 :40 PM     16,428  33%     11,062         models\players\heads\Callisto\Lily\
-Lily_red.tga   4/2/2001 2:14 PM       65,580  79%     13,873         models\players\heads\Callisto\Lily\
-Lily_blueface2.tga     4/3/2001 11 :42 PM     16,428  32%     11, 182         models\players\heads\Callisto\Lily\
-Lily_blueface.tga      4/3/200111:41 PM       16,428  32%     11,174         models\players\heads\Callisto\Lily\
-LJily_blu.tga  4/10/2001 12:55 AM     65,580  33%     43,929         models\players\heads\Callisto\Lily\
-icon_red.tga   3/27/20016:15 AM       12,306  30%     8,581         models\players\heads\Callisto\Lily\
-icon_default.tga       3/27/20016:15 AM       12,306  30%     8,595         models\players\heads\Callisto\Lily\
-icon_blue.tga  3/29/2001 10:20 PM     16,428  41%     9,707         models\players\heads\Callisto\Lily\
-head_red.skin  4/17/20014:35 PM       125     44%     70         models\players\heads\Callisto\Lily\
-head_default.skin      4/17/20014:35 PM       126     41%     74         models\players\heads\Callisto\Lily\
-head_blue.skin  4/17/20014:33 PM       126     44%     71         models\players\heads\Callisto\Lily\
-
-16 file(s)             239,963        46%     129,783
-        
- -

TOP

 
-
- - diff --git a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/index.html b/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/index.html deleted file mode 100644 index 44920ab7..00000000 --- a/install/installs/Q3Pack/install/docs/New_Teams_For_Q3TA/index.html +++ /dev/null @@ -1,1040 +0,0 @@ - - - -New Teams For Q3TA - - - -
- - - - - - - - - - - - - - - - -
 

New Teams for Team Arena (and other stories)
-By Paul Jaquays Script files by various id design team members Bot Search Material by Jan Paul "MrElusive" van Waveren

 
 

Table of Contents
- Introduction
- The Team Pak
- Scripts
- User Interface Assets
- In Game Team Logo Icons
- New Models for Team Skins
- Appendix A: The .Bot File
- Appendix B: The .Team File
- Appendix C: The Voice List
- Appendix D: Model Sound List
- Appendix E: .VC File Sample
- Appendix F: Sample Team Arena Animation.Cfg File and New Animation Commands
- Appendix G: Teamname.shader
- Appendix H: Search Order for Model and Head model Assets
- Appendix I: Expanded Team Skin Functionality for Q3A
- Appendix J: Contents of the tm_kreechurs.pk3
- Appendix K: A Minimal Team
- Appendix L: Contents of the TAhead_lily.pk3

-
 
 

Introduction
- The original intent for Teams in Quake III: Team Arena was to allow the use and creation of new Teams. However, it was not until community modelers attempted to build new teams that we discovered that the hooks that we put in place for team creation did not work as intended. This point release contains the fixes and additions necessary to make new teams work.

-

This document presupposes that the person wanting to create a new team already knows the basics of creating, animating, and skinning new character models for Quake III Arena. There are numerous good tutorials on-line covering both the basics and the more in-depth skills needed to make models that work inside the game.

-

Special Thanks
- The content used to test and debug the team creation code is based on a test model provided and made "Team Arena compatible" by Bill and Mike Jukes, a.k.a. "The Brothers Grimm" and a re-skinning of the original Team Arena Callisto head model provided by artist Camilla "milla" Bennett. Also thanks to milla for providing the .html version of this document. Names of some of the files used in examples have been changed. Furthermore, thanks go to Graeme Devine, Robert Duffy, and MrElusive for putting up with semi-constant harassment to get the team content working for the point release.

-

Notices: QUAKE III ARENA and QUAKE III: Team Arena are trademarks of id Software, Inc. This document is copyright 2000, 2001 by id Software, Inc. Id Software grants permission to redistribute and or redisplay this document in electronic form only. It may not be included as a part of any permanent media without first obtaining permission from id Software, inc. Permission is granted to use the contents of the scripts embedded in this document as a base for creating additional teams for Team Arena.
-

-

TOP

-

The Team Pak File
-It takes a surprisingly large amount of new content to create an entirely new team. Our test file contained 186 separate files (model included only one head). An additional head added another 16 files (we tested with only one extra head model). The content required covers every discipline of game creation . skin painting, scripting, modeling, and sound production. In fact, if the new team is to have new voice taunt sounds, it can easily exceed 10 megabytes in compressed form inside the pak file. Each of the files necessary to create a team is listed below in outline and will be discussed later in detail. The paths for these files begin in the missionpack directory. Appendix J contains the file list for the test team, Appendix K shows a team with the bare minimum of files needed to create a new team with a male and female uniform, and Appendix L contains the file list for the Callisto/Lily test head.

-

Naming Conventions
-When naming a pak file that contains the assets for a new team, preface the team name with the letters "tm_". This usage is for organizational purposes only. It is done to identify the pak as a team file. Example: tm_kreechurs.pk

-

Including What id Didn't Make
-You don't need to include any of the game content that id put in the original pak0.pk3 that shipped with Team Arena. The game should have no problem finding those assets if they are called for by the new team. Any new assets created for the team need to be in the pak file. Any assets created by other artists or authors for use with Team Arena need to be in the pak file. The team creator cannot assume that players will have those assets in their possession. When including assets created by others, including modified id game content, be sure to give notice of original authorship in the readme that accompanies the pakfile.

-

Teamname_readme.txt
-This text file tells all about the contents of your new team, including who made it, how they can reach the author, who else contributed to the project, what tools were used, how long it took, when it was released (copyright data goes here), where the ideas came from, and so on. Essentially, it should contain whatever the team creator wants to reveal about himself or herself and the process of making the team. Any resources that were created by others should be acknowledged here. If the team creator agrees to let others use the original contents of the pak file in other projects, it should be noted here also, along with any special terms or contact information.

-

NOTE: The scripts used to create the various aspects of the new team are included throughout this document. Team creators have permission to copy the scripts in this document and paste them into new scripts for use in original teams. Details such as team name, character names, and bot names should be changed to fit the new team.

-

TOP

-

Scripts
- Priority: Unless otherwise noted, all of the scripts listed below are required to be in the team pak file (see Appendix K: A Minimal Team, for a detailed list of the contents required for a basic team using existing models).

-

These are the various scripts used to define the team and model characteristics.

-

Teamname.team (in root directory) : A text file that defines the components of the team. This file corresponds to the original team.txt file in pak0.pk3. It is required for all new teams. See Appendix B for details.

-

Teamname.bot (scripts\) : This file defines the resources used by the five bots that are used by the team in single player (model, head_model, and bot a.i.). It is required for all new teams. See Appendix A for details.

-

Teamname.shader (scripts\) : Shader scripts for all shaders used to create the new_model and the five new_headmodels. This is required for the team icons to work properly in game. Other shader-modified textures may be included. See Appendix G for the sample version of this shader.

-

Animation.cfg (models\players\newmodel\) : The animation configuration file. Team Arena models have a few a few more animation sequences than their Q3A counterparts, but the basics are the same. The contents of a sample Q3:TA animation.cfg are included at the end of this document. It's a script, but not one that's resident in the scripts file. This is only required if a new model is included in the pak.

-

New_model.voice (scripts\) : This is the script that assigns individual voice wav files to specific message or status commands. See Appendix C for a sample script and discussion of its use. Voice files are optional and only required if an entirely new set of voice wav files is to be included in the pak. Sound files are large and can add significantly to the size of the pakfile. If creating a human-based team, consider using the 8 voices that came with Team Arena to save file space.

-

New_headmodel_1.vc (scripts\) : This file selects which .voice file is linked to a head file. Each head model in the pak needs one of these. A separate version of this file is required for each new headmodel included with the team. The name of the file is the same as the name of the bot that uses the headmodel. A sample .vc file is included in Appendix E.

-

TOP

-

User Interface Assets
-
Priority: The tga files are required. The roq file is optional. The User Interface menus use these files to show the team logo icons and movies of the characters in actions.

-

Teamname, of course, refers to the name of the new team.

-

Teamname_name_alt.tga (ui\assets\) : This is a 256 x 128 pixel, 32 bit .tga file (with alpha channel) depicting the name of the team as a black and white (grayscale) art file. Teamname is the name of the new team, the rest of the filename is part of its format. The alpha channel should be the same as the image (not reversed).

-

Teamname_name.tga (ui\assets\) : This is a 256 x 128 pixel, 32 bit .tga file (with alpha channel) depicting the name of the team with a glow around it. It is a black and white art file (grayscale). The alpha channel should be the same as the image (not reversed).

-

Teamname.tga (ui\assets\) : This is a 128 x 128 pixel, 32 bit .tga file (with alpha channel) that depicts a black and white version of the team logo or symbol. The alpha channel should be the same as the image (not reversed).

-

Teamname_metal.tga (ui\assets\) : This is a 128 x 128 pixel, 32 bit .tga file (with alpha channel). If the team creator wants to keep the same style as the original game, this version of the team's logo is rendered to look like brushed metal, perhaps with a bluish cast. But in reality, it can be anything, any color. The alpha channel should be the same as the alpha channel in the Teamlogo.tga art.

-

Teamname.roq (ui\assets\) : The .roq movie displays in the center area of the player set up screen when the player selects one of the teams. Movie file sizes can be large, so the team creator may wish to take the overall size of the team pakfile into consideration before including a movie. Uncompressed, the team movies in Team Arena were over a megabyte each . and being compressed format files already; they don't get much smaller in the pakfile. The good news is that if no movie file is present, the game displays the teamname_metal.tga in the center area instead. It must be noted that team movie files will not be offered for viewing in the Cinematics menu option unless the teamname.roq file is also present in the video\ directory.

-

TOP

-

In Game Team Logo Icons
- Priority: Required

-

The team style game maps for Team Arena are usually set up to display the icons of the competing teams. The game uses a separate set of art files located in the team_icon directory off the root missionpack directory for the team icons displayed in game. For Team Arena, these art files were a single color, red or blue. But that need not be the case. If a game clan wanted to use a full color version of their clan symbol, it would work in game - though the team creator may want to consider tinting the art either bluish or reddish to better suit the color used in play (most team maps are likely to use the blue/red color theme as was done in the original game).

-

Also, take into consideration that the art will be transparent, with background textures (floors, walls, colored banners) showing through behind it. Simple, graphic treatments of logos will probably work the best in all cases.

-

Art files can be larger or smaller than those shown here. However, while having smaller files will save memory, image quality will suffer. If using larger art files, image quality may improve substantially but the memory usage will be substantial also. Whether increasing or reducing file size, remember to keep the file dimension proportional to the original.

-

The Teamname.shader references this art. Make sure that the file names in the shader match those of the artwork.

-

Teamname.tga (team_icon\): This is a 128 x 128 pixel art file, the exact same file as used in ui\assets\teamname.tga. It is a black and white 32 bit version of the team logo with the same art in the alpha channel.

-

Teamname_blue.tga (team_icon\): For Team Arena, we created solid color logos, but that need not be the case. This 32 bit 128 x 128 pixel art file can be full color. The alpha channel should be the same as the teamname.tga file. If you choose to make it solid blue, consider using the same color value as the original TA logos. The RGB formula for that blue is: 0 148 255.

-

Teamname_red.tga (team_icon\): Even though id chose to make our logo's single, solid colors, this 32 bit 128 x 128 pixel art file can be whatever color the team creator wishes. The alpha channel should be the same as the teamname.tga file. If you choose to make it solid red, consider using the same color value as the original TA logos. The RGB formula for that red is: 255 0 0.

-

TOP

-

New Models and Skins for Teams
-The process by which body models are created is outside the scope of this document. While body model has a few more animations than the corresponding Quake III Arena model, the process of creation is quite similar . except for one very key element. The Team Arena model has no head. Head models for Team Arena teams are created and stored separately from the body. Where the pathname to a body model might be models\players\BoB, the path to the head models is different:

-

Example: models\players\heads\Kreecha.

-

New Team Arena Models based on Q3A models
-For the Team Arena test model, the Brothers Grimm converted a character model that they had previously made for Quake III Arena. In order to keep the game from confusing two models with the same file name, the search code for models and skins was changed to allow extended search paths for models. In this case, we placed the Team Arena model in a "characters" directory nested within the "players" directory. The path to the new model read: models\players\characters\BoB\. The model directory contains the torso and legs models only, which are Upper.md3 and Lower.md3 respectively. There are no head models in that directory. Furthermore, include any art and skin files used for the default version of the model along with the animation.cfg.

-

NOTE: When creating your models for export as .ASE files for use with the Q3data.exe, you must have a head on the model (e.g.; an h_head in the max file) for the converter to work. The converter looks for and expects to see an h_head for of the model. If the converter does not find the head during the conversion, the process will halt. After the conversion is complete just use the Upper and lower Md3 files for that character's directory. Place the head model in its own separate directory.

-

Icons for new models
-The Loading Screen for Team Arena uses the icons associated with a team member's body model, not the member's head model. Be certain to include an icon_default.tga file in new model's directory. This icon will be used on the map loading screen. It represents the Body model in use by a player . not the Head model.

-

New Team Skins
-When creating a team, make a red and a blue version of the skin. Name the skins as noted below. Do not use the team or character name in the skin. That information is taken from the name of the directory in which it resides.

-

The team skins (red and blue) for a Team Arena model reside in a directory within the model directory (which contains the model md3 pieces).

-

Example: models\players\characters\BoB\Kreechurs\.

-

The teamname directory (Kreechurs in this case) would contain the art files for the skin, and the .skin files that link art to model.

-

In simple form, the skin assets required to be in the teamname file are as follows:

-

TGA file names
-Blue.tga //the body skin for the blue team version
-Red.tga //the body skin for the red team version

-

Skin File Names
-Lower_blue.skin //blue version of legs skin file
-Upper_blue.skin //blue version of torso skin file
-Lower_red.skin //red version of legs skin file
-Upper_red.skin //red version of torso skin file
-Lower_default.skin //default legs skin file (used by U.I.). Usually, this is the red skin.
-Upper_default.skin //default torso skin file (used by U.I.). Usually, this is the red skin.

-

New Heads
-Each new player on a new team should either have a new head model or have a new skin for an existing Team Arena model. Each new head model and all its assets go into a directory named for it. In the case of new skins for pre-existing models, the new skin assets reside in a directory nested within the model's directory.

-

Example: models\players\heads\callisto\lily is a new skin for the Callisto head.

-

Note that other assets, such as the .vc file for this head will also need to be nested in directories a layer deeper in their normal files.

-

Example: scripts\callisto\lily.vc.

-

New head models need to have all the assets specific to the model (md3 files, skin files and art files) in the directory named for the model head.

-

No MD3 Models Required for New Skins on id Models
-New skins created for existing head models (id created or community created) do not require that the md3 models be in their directories. The assets specific to the new skin (skin art, skin file, icons) are placed in a directory. You do not need to redistribute md3 models for the heads that are a part of the original id game.

-

Using the Work of Others
-If you are reskinning or simply using a head model previously created and distributed by a member of the community, make sure that the original creator has authorized such use (and remember to give credit where credit is due). When using community-created models, the team creator must plan to include that model and all its assets in the pakfile.

-

TOP

-

Appendix A: The .Bot File
-Five Heads, Five Bots, Five Team Members

-Priority: Required for each new team

-

A Team Arena team consists of five players. In the original game, the five players were drawn from a mix of 11 new player heads sitting atop two body models. New teams should also have five players each. However, five players on the new team should each have a unique head/skin combination. These can either be new models or new skins using the original Q3:TA models.

-

The .bot file (whose file name is the same as the name of the new team, e.g.; Kreechurs.bot or Scumsukkers.bot) is a text script whose ".txt" file extension has been renamed to ".bot." This file corresponds to the bots.txt file used in the original Team Arena game. Appendix A shows a sample bot file.

-

Name = the name of the bot as it appears on the Start Server Menu.

-

Model = the body model used by this bot. A team can use more than one body model. However, adding multiple body models can and will add significantly to the size of the team pak file and to memory usage in game. Limiting the number of body models used by a team is a good design practice. No more than two models per team should be the limit.

-

Headmodel = *modelname. The headmodel is what makes the bot unique. It has links to the voice files and is used when creating name aliases for the bots to use in the single player game. The asterisk is a necessary part of the file name here.

-

The headmodel called Callisto/Lily is a new skin on the Callisto model mesh. The pathname is required for the model to work.

-

Aifile = the bot ai used by the team member. The computer-controlled opponents in Team Arena used three individual ai files that define their general role in the game: defense (tad_c.c), offense (tao_c.c) and all-arounder (taa_c.c). New bots can use these same a.i. files or, if desired the team creator can make new ai files based on the Team Arena ai files.

-

Filename: Teamname.bot

-
-//bot file begins here
-{
-name           Kreecha
-model          BoB
-headmodel      *Kreecha
-aifile  bots/taa_c.c
-}
-
-{
-name           Callisto/Lily
-model          BoB
-headmodel      *Callisto/Lily
-aifile  bots/tad_c.c
-}
-
-{
-name           Infinite
-model          BoB
-headmodel      *Infinite
-aifile  bots/tad_c.c
-}
-
-{
-name           Prime
-model          BoB
-headmodel      *Prime
-aifile  bots/tao_c.c
-}
-
-{
-name           Vlad
-model          BoB
-headmodel      *Vlad
-aifile  bots/tao_c.c
-}
-//bot file ends here
-		
-

TOP

-

Appendix B: The .TEAM File
- Priority: Required for each new team.

-

The team file is a text file that has had the file extension renamed from .txt to .team.

-

Kreechurs is a test Team Arena team created to test the team and head model code for point release v1.28. It uses the hypothetical "BoB" model to create a new team.

-

The team definition appears on a single line in the file:

-

"Team name" "asset path/name" "bot 1" "bot 2" "bot 3" "bot 4" "bot 5"

-

//Teams define the assets used by the team: team name, path to U.I. assets, player names
-// Character definitions act as a link between head models used by a team and models that have the proper team skin assets. The Player Set Up User Interface primarily uses the character definitions. The first entry is the head model as defined in the .bot file. The second entry is body model used by that character. For everything to work out for the best, each character should have a unique model/skin combination that defines it.

-

Filename: Teamname.team

-
-// .team file begins here
-teams {
-  { "Kreechurs" "ui/assets/kreechurs"  "BoB" "Lily" "Vlad" "Infinite" "Prime"}
-}
-
-characters {
-{ "Callisto/Lily" " BoB " }
-{ "Kreecha"  " BoB " }
-{ "Infinite"  " BoB " }
-{ "Prime"  " BoB " }
-{ "Vlad" " BoB " }
-}
-
-// Aliases are the link between character name, headmodel, and bot A.I.
-
-aliases {
-        { "Kreecha"           "BoB"              "a"  }
-        { "Lily"        "Callisto/Lily" "d"   }
-            { "Vlad"           "Vlad"              "o"       }
-            { "Infinite"       "Infinite"           "d"      }
-            { "Prime"          "Prime"             "o"       }              
-}
-
-//.team file ends here
-
-

TOP

-

Appendix C: The Voice List
- Priority: Optional.

-

The voice file is a text file that has had the file extension renamed from .txt to .voice. Each unique set of voice recordings requires its own voice file. This file contains the code script that defines the voice and corresponding text messages used by the player models in game. Like the text chat messages that appeared in original Q3A, these messages are triggered by game conditions and statuses.

-

The file directory name for the voice does not have to be the same as a head or body model, though giving it a unique name that identifies it with the team is always a good idea. The specific file names for each voice message ARE VERY IMPORTANT, as the voice script that corresponds to the file directory for the voice calls them. Example: If the new voice is called "monster", then the directory would be called "monster" and the voice file would be called monster.voice.

-

If you create a new set of recorded voices for your team or for a new model, be certain to include at least one voice message for each category (defined by a name like "getflag" and follow by opening and closing brackets) on this list. It is not necessary to provide as many different messages as shown below. Example: Your character may not need more than one way to say "yes" or have as many kill insults. You can also rewrite the scripts. Your team need not say the same thing as the id teams said or use the same style of speaking. Just remember that the text portion of the message will display on screen, so having it match the audio is always a good thing. And remember that in game, shorter speeches are better and cheaper.

-

The file path is as follows: sound\voices\newmodel\soundname.wav

-

You may include additional voices but these are the ones currently the phrases accessed by the game.

-

As with any script, these are lines of game code. Take care to maintain the proper syntax, otherwise, you are likely to either disable the file or even crash the game.

-

To create new voice recordings use a sound editing program that can produce a .wav format file that conforms to the following: Mono 22k 16bit

-

(This is taken from the male5 voice file. Substitute the name of your model for male5 in the file pathnames).

-

Filename: Voicename.voice

-
-//voice file starts here
-
-getflag
-{
-        sound/voices/male5/or_01.wav   "Get the flag"
-        sound/voices/male5/or_02.wav   "Secure the flag"
-}
-
-offense
-{
-        sound/voices/male5/or_03.wav   "You're on offense"
-}
-
-defend
-{
-        sound/voices/male5/or_04.wav   "Stay Home"
-        sound/voices/male5/or_05.wav   "Guard the base"
-        sound/voices/male5/or_07.wav   "You're on defense"
-}
-
-defendflag
-{
-        sound/voices/male5/or_06.wav   "Guard our flag"
-}
-
-patrol
-{
-        sound/voices/male5/or_08.wav   "Patrol"
-        sound/voices/male5/or_09.wav   "Take point"
-        sound/voices/male5/or_10.wav   "Go on patrol"
-}
-
-followme
-{
-        sound/voices/male5/or_11.wav   "Follow me"
-        sound/voices/male5/or_12.wav   "Cover me"
-        sound/voices/male5/or_13.wav   "Watch my back"
-}
-
-yes
-{
-        sound/voices/male5/re_01.wav   "Yessir"
-        sound/voices/male5/re_02.wav   "Yes ma'am"
-        sound/voices/male5/re_03.wav   "Aye, aye, sir"
-        sound/voices/male5/re_04.wav   "Aye, aye, ma'am"
-        sound/voices/male5/re_05.wav   "Affirmative"
-        sound/voices/male5/re_06.wav   "Copy"
-        sound/voices/male5/re_07.wav   "Roger"
-}
-
-no
-{
-        sound/voices/male5/re_08.wav   "No sir"
-        sound/voices/male5/re_09.wav   "No ma'am"
-        sound/voices/male5/re_10.wav   "Negative"
-        sound/voices/male5/re_11.wav   "I'm busy"
-}
-
-ihaveflag
-{
-        sound/voices/male5/gs_01.wav   "I'm coming in hot!"
-        sound/voices/male5/gs_02.wav   "I've secured the flag!"
-        sound/voices/male5/gs_03.wav   "I've got the flag!"
-        sound/voices/male5/gs_04.wav   "Bringing home the bacon!"
-}
-
-baseattack
-{
-        sound/voices/male5/gs_05.wav   "We're taking enemy fire!"
-        sound/voices/male5/gs_06.wav   "Security breach!"
-        sound/voices/male5/gs_07.wav   "Our base is under attack."
-}
-
-enemyhasflag
-{
-        sound/voices/male5/gs_08.wav   "Our flag is gone!"
-        sound/voices/male5/gs_09.wav   "They've got our flag!"
-        sound/voices/male5/gs_10.wav   "Enemy has secured our flag!"
-}
-
-ongetflag
-{
-        sound/voices/male5/ps_03.wav   "Getting the flag..."
-}
-
-onoffense
-{
-        sound/voices/male5/ps_01.wav   "I'm taking offense"
-        sound/voices/male5/ps_02.wav   "I'm going in..."
-}
-
-ondefense
-{
-        sound/voices/male5/ps_04.wav   "I'll stay home"
-        sound/voices/male5/ps_05.wav   "Securing base"
-        sound/voices/male5/ps_06.wav   "Guarding the base now"
-}
-
-onpatrol
-{
-        sound/voices/male5/ps_07.wav   "On patrol..."
-        sound/voices/male5/ps_08.wav   "Patroling..."
-        sound/voices/male5/ps_09.wav   "I'll take point"
-}
-
-startleader
-{
-        sound/voices/male5/ps_10.wav   "I'm the leader"
-        sound/voices/male5/ps_11.wav   "I'm in charge"
-}
-
-stopleader
-{
-        sound/voices/male5/ps_12.wav   "I don't want to lead"
-        sound/voices/male5/ps_13.wav   "Someone else lead"
-        sound/voices/male5/ps_14.wav   "I resign"
-}
-
-kill_insult
-{
-        sound/voices/male5/tt_06.wav   "Next time don't get up"
-        sound/voices/male5/tt_05.wav   "You're just a waste of space"
-        sound/voices/male2/tt_07.wav   "Are you blind?"
-        sound/voices/male5/tt_13.wav   "Duck next time"
-        sound/voices/male5/tt_19.wav   "Suh-weeet!"
-        sound/voices/male5/tt_20.wav   "Woo-Hoo!"
-        sound/voices/male5/tt_22.wav   "You just got schooled!"
-//      sound/voices/male5/tt_16.wav   "You talkin' ta ME?"
-}
-
-taunt {
-        sound/voices/male5/tt_18.wav   "How about some competition here?"
-        sound/voices/male5/tt_01.wav   "FRAGbait!"    
-        sound/voices/male5/tt_11.wav   "My momma shoots better!"
-        sound/voices/male5/tt_14.wav   "Try hitting that barn over there!"
-        sound/voices/male5/tt_17.wav   "Wanna BUY a shot?"
-//      sound/voices/male5/tt_03.wav   "Get a clue moron!"
-//      sound/voices/male5/tt_09.wav   "MORON!"
-//      sound/voices/male5/tt_02.wav   "You're such a Loser!"
-//      sound/voices/male5/tt_08.wav   "LOSER!"
-//      sound/voices/male5/tt_10.wav   "No-skill idiot!"
-//      sound/voices/male5/tt_12.wav   "Watched that all the way..."
-}
-
-death_insult {
-        sound/voices/male5/tt_15.wav   "Thank you sir.. may I have another!"
-        sound/voices/male5/tt_23.wav   "Bite me!"
-        sound/voices/male5/tt_25.wav   "Cheap shot!"
-        sound/voices/male5/tt_26.wav   "DOH"
-        sound/voices/male5/tt_28.wav   "Lucky shot!"
-        sound/voices/male5/tt_29.wav   "That's it!"
-        sound/voices/male5/tt_30.wav   "Ooh! That's it!"
-//      sound/voices/male5/tt_35.wav   "Hey, dumbass"
-//      sound/voices/male5/tt_04.wav   "What an ass!"
-//      sound/voices/male5/tt_24.wav   "Screw you!"
-}
-
-kill_gauntlet {
-        sound/voices/male5/tt_21.wav   "Eat gauntlet baby!"
-}
-
-praise {
-        sound/voices/male5/tt_27.wav   "Nice!"
-}
-
-camp                   // command someone to camp
-{
-        sound/voices/male5/voc_01.wav  "Camp this position."
-        sound/voices/male5/voc_02.wav  "Camp here."
-
-}
-
-returnflag                     // return our flag  (CTF only)
-{
-        sound/voices/male5/voc_03.wav  "Get our flag!"
-        sound/voices/male5/voc_04.wav  "Return our flag!"
-        sound/voices/male5/voc_05.wav  "Recover our flag!"
-}
-
-whoisleader                    // who is the team leader
-{
-        sound/voices/male5/voc_06.wav  "Who's our leader?"
-        sound/voices/male5/voc_07.wav  "Who's in charge?"
-        sound/voices/male5/voc_08.wav  "Who leads this team?"
-}
-
-followflagcarrier              // follow the flag/skull carrier (CTF, Oneflag, Harvester)
-{
-        sound/voices/male5/voc_09.wav  "Follow our carrier."
-        sound/voices/male5/voc_10.wav  "Stay with the carrier."
-        sound/voices/male5/voc_11.wav  "Protect the carrier."
-        sound/voices/male5/voc_12.wav  "Cover the carrier."
-}
-
-inposition                     // I'm in position
-{
-        sound/voices/male5/voc_13.wav  "I'm in place."
-        sound/voices/male5/voc_14.wav  "I'm at my post."
-        sound/voices/male5/voc_15.wav  "I am in position."
-        sound/voices/male5/voc_15a.wav "I am in position"
-}
-
-wantondefense          // I want to be on defense
-{
-        sound/voices/male5/voc_16.wav  "Let me defend."
-        sound/voices/male5/voc_17.wav  "I'd rather defend."
-}
-
-wantonoffense          // I want to be on offense
-{
-        sound/voices/male5/voc_18.wav  "Let me go on offense."
-        sound/voices/male5/voc_19.wav  "I'd rather go on offense."
-}
-
-wantonpatrol           // I want to go on patrol
-{
-        sound/voices/male5/voc_20.wav  "Let me patrol."
-        sound/voices/male5/voc_21.wav  "I'd rather patrol."
-}
-
-oncamp  //I'm Camping (status)
-{
-        sound/voices/male5/voc_22.wav  "I'm camping here."
-}
-
-onfollow
-{
-        sound/voices/male5/voc_23.wav  "I'm following."
-        sound/voices/male5/voc_24.wav  "Following!"
-}
-
-onfollowcarrier
-{
-        sound/voices/male5/voc_27.wav  "Guarding the carrier."
-}
-
-onreturnflag
-{
-        sound/voices/male5/voc_28.wav  "Getting our flag."
-}
-
-harvest //harvester game type only
-{
-        sound/voices/male5/voc_25.wav  "Go collect skulls."
-        sound/voices/male5/voc_26.wav  "Harvest some skulls."
-}
-// voice file ends here
-        
-

TOP
-
-Appendix D: Model Sound List
-Priority: Only required if a new body model is included in the team pak file.

-

The following game sounds are associated with the team model. Each of the sounds listed below is a separate file. They need to be located in a directory having the same name as the body model and be nested within the sounds directory.

-

Example: sounds/newmodel/Death1.wav.

-

If new sound files are to be created, make sure that they conform to the following wav file format: Mono 22k 16bit.

-

Death1.wav
-Death2.wav
-Death3.wav
-Drown.wav
-Fall1.wav
-Falling1.wav
-Gasp.wav
-Jump1.wav
-Pain100_1.wav
-Pain25_1.wav
-Pain50_1.wav
-Pain75_1.wav
-Taunt.wav

-

TOP

-

Appendix E: .VC File Sample
- Priority: Required for each head model

-

The vc file is a text file script that has had the file extension renamed from .txt to .vc. The script is linked to a bot name. Bot names are defined in the .bot file included in the pak file. Each bot needs to have a .vc file. It's best, if at all possible, to have the model name (or model/skin combination) and the bot name be the same. The very brief contents are simply a path to a voice file. The selected voice file can be either one of the original Team Arena voices or an original voice included with the team. When creating the voice file for a re-skinned head model, be sure to include the head name in the path to the voice script. That script must also be nested a layer deeper in the directory, such as: scripts/callisto/lily.vc.

-

The contents of a sample .vc file are shown below.

-
        //VC script begins here
-
scripts/newcharacter.voice
-
           //VC script ends here
-

TOP

-

Appendix F: Sample Team Arena Animation.Cfg File and New Animation Commands
- Priority: Required only if a new model is included.

-

The animation.cfg file is a text file that has had the file extension renamed from .txt to .cfg. This file goes in the directory with the body model components (model\players \new_model\ -- or -- model\players\characters\new_model\). The specifics of using or modifying the contents of this file are a part of the model making process and are mostly outside the focus of this document.

-

It is included in this document because the Team Arena animation configuration is different from the Quake 3 Arena Configuration. Furthermore it contains the "sex" key that determines the gender/sex of a character (as does the Q3A animation.cfg). This key/value pair determines which pronouns (masculine, feminine, or neuter) are used when the game generates messages about the player.

-

Additionally, two new animation commands (for both Q3A and Q3:TA) are shown here. These were done at the request of modelers doing non-traditional biped models. When put in the animation.cfg file, they literally stop the model from responding to the programmatic animations for those body parts. If you freeze the legs, the hips don't tilt during running animation. If the model's legs were too much outside of bipedal norms (as is the case for quadrupeds), the front or back legs would disappear into the ground as the leg models programmatically tilted around the model's pelvis. If you freeze the torso, you don't get waist twists or bends. Depending on what you are making, you may want to use one, but not the other.

-

Fixedlegs : put in the animation .cfg this command freezes programmatic rotation of the legs

-

Fixedtorso : when put in the animation .cfg this command freezes programmatic rotation of the torso

-

These commands are commented out in the sample below.

-
-		// animation.config file begins here
-        sex     m      // THIS VALUE  (m, f, n) DETERMINES GENDER OF MODEL
-        //fixedlegs  // PREVENTS PROGRAMMATIC ROTATION OF LEGS
-        //fixedtorso // PREVENTS PROGRAMMATIC ROTATION OF TORSO
-        headoffset -3 0 0
-        footsteps boot
-        
-        
-        
-        // first frame, num frames, looping frames, frames per second
-        0       30      0       20             // BOTH_DEATH1
-        29      1       0       20             // BOTH_DEAD1
-        30      30      0       20             // BOTH_DEATH2
-        59      1       0       20             // BOTH_DEAD2
-        60      30      0       20             // BOTH_DEATH3
-        89      1       0       20             // BOTH_DEAD3
-        
-        90      26      0       20             // TORSO_GESTURE
-        
-        116     6       0       15             // TORSO_ATTACK        (MUST NOT CHANGE -- hand animation is synced to this)
-        122     6       0       15             // TORSO_ATTACK2       (MUST NOT CHANGE -- hand animation is synced to this)
-        
-        128     5       0       20             // TORSO_DROP          (MUST NOT CHANGE -- hand animation is synced to this)
-        133     4       0       20             // TORSO_RAISE         (MUST NOT CHANGE -- hand animation is synced to this)
-        
-        137     1       0       15             // TORSO_STAND
-        138     1       0       15             // TORSO_STAND2
-        
-        199     8       8       20             // LEGS_WALKCR
-        207     12      12      20             // LEGS_WALK
-        219     10      10      20             // LEGS_RUN
-        229     10      10      20             // LEGS_BACK
-        239     10      10      15             // LEGS_SWIM
-        
-        249     7       0       15             // LEGS_JUMP
-        256     9       0       15             // LEGS_LAND
-        265     9       0       15             // LEGS_JUMPB
-        274     6       0       15             // LEGS_LANDB
-        280     15      15      15             // LEGS_IDLE
-        295     11      11      15             // LEGS_IDLECR
-        307     9       9       15             // LEGS_TURN
-        
-        139     10      0       15             // TORSO_GETFLAG    //TA Gesture
-        149     10      0       15             // TORSO_GUARDBASE   //TA Gesture
-        159     10      0       15             // TORSO_PATROL   //TA Gesture
-        169     10      0       15             // TORSO_FOLLOWME   //TA Gesture
-        179     10      0       15             // TORSO_AFFIRMATIVE   //TA Gesture
-        189     10      0       15             // TORSO_NEGATIVE   //TA Gesture
-        
-        // animation.config file ends here
-		
-

TOP

-

Appendix G: Teamname.shader
- Priority: Required for team icons to work in the game

-

This is a text file script with the file extension renamed from .txt to ..shader.

-
-//Teamname.shader begins here
-team_icon/Kreechurs_red
-{              
-        cull none
-        surfaceparm nolightmap
-        surfaceparm trans
-        surfaceparm nomarks
-        {
-               map team_icon/Kreechurs_red.tga
-               blendFunc Add
-               rgbgen wave triangle 0.2 0.5 0 0.2           
-        }
-}
-
-team_icon/Kreechurs_blue
-{              
-        cull none
-        surfaceparm nolightmap
-        surfaceparm trans
-        surfaceparm nomarks
-        {
-               map team_icon/Kreechurs_blue.tga
-               blendFunc Add
-               rgbgen wave triangle 0.2 0.5 0 0.2       
-        }
-}
-//Teamname.shader ends here
-		
-

TOP

-

Appendix H: Search Order for Model and Head model Assets

-

The means by which headmodels are used and selected was unified as much as possible between Q3A and Q3:TA code. The byproduct of this change allows players some more choices when selecting head models. The following documents the new procedures.

-

Searching for Head skins
-The game uses the following paths and order of search when looking for headmodel assets. The asterisk (*) is only used for head models. When the asterisk is used, the game will try to load the head model from the models/players/heads folder first. After that, it looks deeper into the directories.

-

More Variety of Head Skins
-If the team creator so chooses, different skins can be created for each team (note that id chose to use the same head skins for each team . but that doesn't have to be the case).

-
-===================================
-Q3A/TA NON-TEAMPLAY SEARCH ORDER
-===================================
-
--------------------------------------------------
-headmodel = *callisto/lily
-
-models/players/heads/callisto/lily/head_default.skin
-models/players/heads/callisto/head_lily.skin
-
--------------------------------------------------
-headmodel = callisto/lily
-
-models/players/callisto/lily/head_default.skin
-models/players/callisto/head_lily.skin
-models/players/heads/callisto/lily/head_default.skin
-models/players/heads/callisto/head_lily.skin
-
-============================
-Q3A TEAMPLAY SEARCH ORDER
-============================
--------------------------------------------------
-Example:
-team_headmodel = *callisto/lily
-team = red
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-
--------------------------------------------------
-Example:
-team_headmodel = callisto/lily
-team = red
-
-models/players/callisto/lily/head_red.skin
-models/players/callisto/head_red.skin
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-
-===========================
-TA TEAMPLAY SEARCH ORDER
-===========================
-Example:
-team_headmodel = *callisto/lily
-team = red
-teamName = Stroggs
-
-models/players/heads/callisto/lily/Stroggs/head_red.skin
-models/players/heads/callisto/Stroggs/head_red.skin
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-
-Example:
-team_headmodel = callisto/lily
-team = red
-teamName = Stroggs
-
-models/players/callisto/lily/Stroggs/head_red.skin
-models/players/callisto/Stroggs/head_red.skin
-models/players/callisto/lily/head_red.skin
-models/players/callisto/head_red.skin
-models/players/heads/callisto/lily/Stroggs/head_red.skin
-models/players/heads/callisto/Stroggs/head_red.skin
-models/players/heads/callisto/lily/head_red.skin
-models/players/heads/callisto/head_red.skin
-		
-

Searching for Model Skins
-The following list shows the order in which the game searches for model skins. When creating new skins for Team Arena or Quake 3 Arena (or related mods of either), use the following directory arrangement.

-
-===================================
-Q3A/TA NON-TEAMPLAY SEARCH ORDER
-===================================
--------------------------------------------------
-Example:
-model = hunter/harpy
-
-
-legs:
-        models/players/hunter/lower_harpy_default.skin
-        models/players/hunter/lower_harpy.skin
-        models/players/characters/james/lower_harpy_default.skin
-        models/players/characters/james/lower_harpy.skin
-torso:
-        models/players/hunter/upper_harpy_default.skin
-        models/players/hunter/upper_harpy.skin
-        models/players/characters/hunter/upper_harpy_default.skin
-        models/players/characters/hunter/upper_harpy.skin
-
-============================
-Q3A TEAMPLAY SEARCH ORDER
-============================
-
--------------------------------------------------
-Example:
-team_model = hunter/harpy
-team = red
-
-legs:
-        models/players/hunter/lower_harpy_red.skin
-        models/players/hunter/lower_red.skin
-        models/players/characters/hunter/lower_harpy_red.skin
-        models/players/characters/hunter/lower_red.skin
-torso:
-        models/players/hunter/upper_harpy_red.skin
-        models/players/hunter/upper_red.skin
-        models/players/characters/hunter/upper_harpy_red.skin
-        models/players/characters/hunter/upper_red.skin
-
-
-===========================
-TA TEAMPLAY SEARCH ORDER
-===========================
-
--------------------------------------------------
-Example:
-team_model = james/badass
-team = red
-teamName = Stroggs
-
-legs:
-        models/players/james/Stroggs/lower_badass_red.skin
-        models/players/james/Stroggs/lower_red.skin
-        models/players/james/lower_badass_red.skin
-        models/players/james/lower_red.skin
-        models/players/characters/james/Stroggs/lower_badass_red.skin
-        models/players/characters/james/Stroggs/lower_red.skin
-        models/players/characters/james/lower_badass_red.skin
-        models/players/characters/james/lower_red.skin
-torso:
-        models/players/james/Stroggs/upper_badass_red.skin
-        models/players/james/Stroggs/upper_red.skin
-        models/players/james/upper_badass_red.skin
-        models/players/james/upper_red.skin
-        models/players/characters/james/Stroggs/upper_badass_red.skin
-        models/players/characters/james/Stroggs/upper_red.skin
-        models/players/characters/james/upper_badass_red.skin
-        models/players/characters/james/upper_red.skin
-		
-

TOP

-

Appendix I: Expanded Team Skin Functionality for Q3A

-

Technically speaking, the following information has nothing to do with Team Arena teams, but this document is just as good a place for this information to reside as any.

-

At the request of several modelers who worked with the modeling and skin making forums and archives at Polycount, we changed the way that Quake III Arena (not just Team Arena) handles skin replacement in team games. Originally, if a skinner made a new skin for a Q3A model AND made team color versions of that skin, the game would not automatically use the team version. Instead, it would display the id default red or blue skin. To see a new team skin in the game, the skinner literally had to remove the default skins and replace them with the new versions.

-

With version 1.28 of the game code, we've been able to get that changed. The file format that we used is the one requested by the skinners themselves. However, because of the way searches for head skins now work, pre-existing Q3A files are not going to work correctly. They need to have one, renamed skin file added for the proper head skins to appear in the game.

-

When a properly set-up user-created skin for a model is accompanied by matching team color skins, the game will now use them instead of the default team skin for that model.

-

The example below shows the assets that must be in the pakfile for the Blue version of a skin named Hellion that uses the id-created Crash model.

-
- Hellion_blue.tga                          models\players\crash\
- Hellion_blue_f.tga                       models\players\crash\
- Hellion_blue_t.tga                       models\players\crash\
- Head_Hellion_blue.skin              models\players\crash\
- Icon_Hellion_blue.tga                 models\players\crash\
- Lower_Hellion_blue.skin            models\players\crash\
- Upper_Hellion_blue.skin            models\players\crash\
- Head_blue.skin                            models\players\crash\Hellion\
-        
-

The last file is the key to making it work . a skin file with the same contents as Head_Hellion_blue.skin, only renamed Head_blue.skin and placed one layer deeper in the Hellion directory. Note that BOTH head_hellion_blue.skin in the crash directory and head_blue.skin in the crash/Hellion directory are necessary for the model to work properly.

-

To see a working example of a properly set up Q3A skin, look for Hades Orphan, the revised version (h20.pk3), by Camilla "milla" Bennett for the Crash model.

-

TOP

-

Appendix J: Contents of the tm_kreechurs.pk3

-

The following list is taken directly from the contents of the pak file contain the BoB model and the Kreechurs team information. Use this as a reference when creating your own team pak files.

-
-tm_kreechurs.pk3
-Name    Modified       Size    Ratio   Packed  Path
-kreechurs.team  5/9/2001 12:01 PM      1,968   61%     770
-kreechurs_readme.txt   5/9/2001       3,162   59%     1,286   
-animation.cfg  5/161/2001 4:32 PM     1,173   59%     478         models\players\characters\BoB\
-default_flame1.jpg     513/2000 7:19 PM       5,972   10%     5,385        models\players\characters\BoB\
-default_flame2.jpg     51312000 7:19 PM       5,984   10%     5,359        models\players\characters\BoB\
-default_flame3.jpg     5/3/2000 7:20 PM       5,623   11%     5,014        models\players\characters\BoB\
-default_flame4.jpg     51312000 7:20 PM       5,284   12%     4,658        models\players\characters\BoB\
-default_flame5.jpg     513/2000 7:21 PM       5,231   10%     4,691         models\players\characters\BoB\
-default_flame6.jpg     5/3/2000 7:21 PM       5,318   11%     4,735         models\players\characters\BoB\
-qefault_flame7.jpg     5/3/2000 7:21 PM       5,807   11%     5,197         models\players\characters\BoB\
-default_flame8.jpg     5/3/2000 7:22 PM       6,114   10%     5,510         models\players\characters\BoB\
-default_flameball.jpg  5/3/2000 7:22 PM       3,010   26%     2,216         models\players\characters\BoB\
-defaultjets.tga        611412000 2:55 AM      49,196  37%     31,075         models\players\characters\BoB\
-icon_blue.tga  6/13/2000 8:15 PM      16,402  58%     6,845         models\players\characters\BoB\
-icon_red.tga   6/13/2000 8:15 PM      16,402  61%     6,327         models\players\characters\BoB\
-lower.md3      3/3/2001 12:11 PM      593,972        33%     398,956         models\players\characters\BoB\
-lower_1.md3    3/3/2001 12:11 PM      593,972 33%     398,956         models\players\characters\BoB\
-lower_2.md3    3/3/2001 12.11 PM      593,972        33%     398,956         models\players\characters\BoB\
-upper.md3      3/3/2001 12:11 PM      721,388        33%     483,599         models\players\characters\BoB\
-upper_1.md3    3/3/2001 12:11 PM      721,388        33%     483,599         models\players\characters\BoB\
-upper_2.md3    3/3/2001 12:11 PM      721,388        33%     483,599         models\players\characters\BoB\
-icon_default.tga       6/13/2000 8:15 PM      16,402  61%     6,328         models\players\ characters\BoB\
-blue.tga       10/23/2000 7: 17 PM    196,626        41%     115,756         models\players\characters\BoB\kreechurs\
-lower_blue.skin        4/6/2001 11 :20 AM     203     52%     98         models\players\characters\BoB\kreechurs\
-lower_default.skin     4/6/200 111:25AM       204     50%     102         models\players\characters\BoB\kreechurs\
-lower_red.skin  4/6/2001 11:20AM       204     50%     102         models\players\characters\BoB\kreechurs\
-red.tga        10/23/2000 7:17 PM     196,626        43%     111,607         models\players\characters\BoB\kreechurs\
-upper_blue.skin        41612001 11:20AM       281     58%     118         models\players\characters\BoB\kreechurs\
-upper_default.skin     416/2001 11:25AM       282     58%     119         models\players\characters\BoB\kreechurs\
-upper_red.skin  4/6/2001 11 :20 AM     282     58%     119         models\players\characters\BoB\kreechurs\
-blue_h.tga     6/14/2000 10:26 AM     196,652        56%     86,873         models\players\heads\Kreecha\
-default_fc.tga  5/29/2000 10:07 AM     3,090   90%     323         models\players\heads\Kreecha\
-default_visor.tga      10/23/2000 7:57 PM     196,626        96%     7,656         models\players\heads\Kreecha\
-Kreecha.md3    3/3/2001 12:12 PM      5,868   46%     3,171         models\players\heads\Kreecha\
-Kreecha_1.md3  3/3/2001 12:12 PM      5,868   46%     3,171         models\players\heads\Kreecha\
-Kreecha_2.md3  3/3/2001 12:12 PM      5,868   46%     3,171         models\players\heads\Kreecha\
-head_blue.skin  3/12/2001 4:58 PM      56      7%      52         models\players\heads\Kreecha\
-head_default.skin      3/1212001 4:57 PM      53      8%      49         models\players\heads\Kreecha\
-head_red.skin  3/12/2001 4:58 PM      55      7%      51         models\players\heads\Kreecha\
-icon_blue.tga  6/13/2000 8:15 PM      16,402  58%     6,846        models\players\heads\Kreecha\
-icon_default.tga       6/13/2000 8:15 PM      16,402  61%     6,328         models\players\heads\Kreecha\
-icon_red.tga   6/1312000 8.15 PM      16,402  61%     6,328         models\players\heads\Kreecha\
-red_h.tga      3112/2001 6:06 PM      196,626        66%     66,666         models\players\heads\Kreecha\
-BoB.shader     3/12/2001 5:49 PM      2,912   89%     308     scripts\
-kreechurs.bot  5/9/2001 11 :43 AM     405     70%     123     scripts\
-kreechurs.shader       4/6/2001 3:05 PM       500     67%     163     scripts\
-Kreecha.vc     5/2/2001 5:53 PM       21      0%      21      scripts\
-Infinite.vc    4/9/2001 11: 18 AM     24      0%      24      scripts\
-Prime.vc       4/9/2001 11: 18 AM     24      0%      24      scripts\
-Vader.vc       4/9/2001 11: 18 AM     24      0%      24      scripts\
-death1.wav     2/23/2000 9:20 AM      16,720  47%     8,900   sound\player\BoB\
-death2.wav     5/7/2000 5:46 PM       18,496  17%     15,356  sound\player\BoB\
-death3.wav     5/7/2000 5:46 PM       18,496  17%     15,356  sound\player\BoB\
-fall1.wav      5/9/2000 6:40 AM       13,944  62%     5,327   sound\player\BoB\
-falling1.wav   5/7/2000 5:22 PM       40,722  26%     30,585  sound\player\BoB\
-gasp.wav       5/7/2000 5:15 PM       55,230  4%      53,293  sound\player\BoB\
-jump1.wav      5/7/20009:26 PM 47,778   8%     44,070  sound\player\BoB\
-pain100_1.wav  5/7/20005:33PM 6,894    29%    4,880   sound\player\BoB\
-pain25_1.wav   5/7/20005:34 PM 9,832    26%    7,248   sound\player\BoB\
-pain50_1.wav   5/7/20005:33 PM 6,444    22%    5,007   sound\player\BoB\
-pain75_1.wav   5/7/20005:33 PM 9,512    26%    6,997   sound\player\BoB\
-taunt.wav      3/3/2001 12:17 PM      163,874  11%    146,434 sound\player\BoB\
-gs_01.wav      10/20/20005:05 PM      51,304   10%    46,296  sound\voices\BoB\
-gs_02.wav      10/20/20005:05 PM      69,704   10%    62,811  sound\voices\BoB\
-gs_03.wav      10/20/20005:05 PM      53,394   8%     49,195  sound\voices\BoB\
-gs_04.wav      10/20/20005:05 PM      48,802   3%     47,157  sound\voices\BoB\
-gs_05.wav      10/20/20005:05 PM      62,170   4%     59,614  sound\voices\BoB\
-gs_06.wav      10/20/2000 5:05 PM     53,622   5%     51,075  sound\voices\BoB\
-gs_07 .wav     10/20/2000 5:05 PM     67,756   10%    60,889  sound\voices\BoB\
-gs_08.wav      10/20/2000 5:05 PM     61,458   4%     59,265  sound\voices\BoB\
-gs_09.wav      10/20/2000 5:05 PM     60,042   6%     56,640  sound\voices\BoB\
-gs_10.wav      10/20/2000 5:05 PM     82,526   4%     79,337  sound\voices\BoB\
-or_01.wav      10/20/2000 5.05 PM     46,892   8%     42,990  sound\voices\BoB\
-or_02.wav      10/20/2000 5:05 PM     63,152   10%    56,946  sound\voices\BoB\
-or_03.wav      10/20/2000 5:05 PM     54,714   6%     51,246  sound\voices\BoB\
-or_04.wav      10/20/2000 5:05 PM     43,640   4%     41,815  sound\voices\BoB\
-or_05.wav      10/20/2000 5:05 PM     56,694   6%     53,172  sound\voices\BoB\
-or_06.wav      10/20/2000 5:05 PM     44,248   6%     41,468  sound\voices\BoB\
-or_07.wav      10/20/2000 5:05 PM     57,616   4%     55,043  sound\voices\BoB\
-or_08.wav      10/20/2000 5:05 PM     22,626   5%     21,538  sound\voices\BoB\
-or_09.wav      10/20/2000 5:05 PM     36,260   30%    25,528  sound\voices\BoB\
-or_10.wav      10/20/2000 5:05 PM     43,396   7%     40,432  sound\voices\BoB\
-or_11.wav      10/20/2000 5:05 PM     37,070   4%     35,592  sound\voices\BoB\
-or_12.wav      10/20/2000 5:05 PM     25,714   4%     24,796  sound\voices\BoB\
-ps_01.wav      10/20/2000 5:05 PM     58,040   4%     55,538  sound\voices\BoB\
-ps_02.wav      10/20/2000 5:05 PM     40,686   4%     39,161  sound\voices\BoB\
-ps_03.wav      10/20/2000 5:05 PM     44,870   5%     42,695  sound\voices\BoB\
-ps_04.wav      10/20/2000 5:05 PM     50,550   4%     48,465  sound\voices\BoB\
-ps_05.wav      10/20/2000 5:05 PM     64,256   9%     58,718  sound\voices\BoB\
-ps_06.wav      10/20/2000 5:05 PM     60,770   4%     58,385  sound\voices\BoB\
-ps_07.wav      10/20/2000 5:05 PM     41,604   3%     40,372  sound\voices\BoB\
-ps_08.wav      10/20/2000 5:05 PM     33,102   4%     31,860  sound\voices\BoB\
-ps_09.wav      10/20/2000 5:05 PM     43,578   14%    37,279  sound\voices\BoB\
-ps_1 0.wav     10/20/2000 5:05 PM     48,126   3%     46,467  sound\voices\BoB\
-ps_11.wav      10/20/2000 5:05 PM     52,114   7%     48,442  sound\voices\BoB\
-ps_12.wav      10/20/2000 5:05 PM     46,054   3%     44,632  sound\voices\BoB\
-ps_13.wav      10/20/2000 5:05 PM     52,026   4%     49,921  sound\voices\BoB\
-ps_14.wav      10/20/2000 5:05 PM     38,428   3%     37,165  sound\voices\BoB\
-re_01.wav      10/20/2000 5:05 PM     42,970   5%     40,707  sound\voices\BoB\
-re_02.wav      10/20/2000 5:05 PM     42,010   16%    35,118  sound\voices\BoB\
-re_03.wav      10/20/2000 5:05 PM     44,994   4%     43,387  sound\voices\BoB\
-re_04.wav      10/20/2000 5:05 PM     26,620   3%     25,824  sound\voices\BoB\
-re_05.wav      10/20/2000 5:05 PM     31,732   4%     30,549  sound\voices\BoB\
-re_06.wav      10/20/2000 5:05 PM     20,342   5%     19,287  sound\voices\BoB\
-re_07.wav      10/20/2000 5:05 PM     23,544   4%     22,526  sound\voices\BoB\
-re_08.wav      10/20/2000 5:05 PM     38,070   3%     36,822  sound\voices\BoB\
-re_09.wav      10/20/2000 5:05 PM     33,436   4%     32,041  sound\voices\BoB\
-re_10.wav      10/20/2000 5:05 PM     29,016   7%     26,898  sound\voices\BoB\
-re_11.wav      10/20/2000 5:05 PM     31,998   3%     30,885  sound\voices\BoB\
-tt_01.wav      10/20/2000 5:05 PM     56,240   7%     52,038  sound\voices\BoB\
-tt_02.wav      10/20/2000 5:05 PM     57,144   5%     54,206  sound\voices\BoB\
-tt_03.wav      10/20/2000 5:05 PM     68,484   9%     62,426  sound\voices\BoB\
-tt_04.wav      10/20/2000 5:05 PM     55,838   5%     52,785  sound\voices\BoB\
-tt_05.wav      10/20/2000 5:05 PM     75,106   6%     70,367  sound\voices\BoB\
-tt_06.wav      10/20/2000 5:05 PM     81,630   10%    73,342  sound\voices\BoB\
-tt_07.wav      10/20/2000 5:05 PM     60,354   5%     57,333  sound\voices\BoB\
-tt_08.wav      10/20/2000 5:05 PM     56,642   5%     53,981  sound\voices\BoB\
-tt_09.wav      10/20/2000 5:05 PM     49,216   3%     47,675  sound\voices\BoB\
-tt_10.wav      10/20/2000 5:05 PM     60,656   5%     57,563  sound\voices\BoB\
-tt_11.wav      10/20/2000 5:05 PM     75,106   5%     71,690  sound\voices\BoB\
-tt_12.wav      10/20/2000 5:05 PM     90,760   6%     84,879  sound\voices\BoB\
-tt_13.wav      10/20/2000 5:05 PM     52,628   8%     48,347  sound\voices\BoB\
-tt_14.wav      10/20/2000 5:05 PM     72,848   4%     70,004  sound\voices\BoB\
-tt_15.wav      10/20/2000 5:05 PM     109 184  12%    96,020  sound\voices\BoB\
-tt_16.wav      10/20/2000 5:05 PM     48,812   3%     47,245  sound\voices\BoB\
-tt_17.wav      10/20/2000 5:05 PM     64,506   10%    57,951  sound\voices\BoB\
-tt_18.wav      10/20/2000 5:05 PM     85,018   6%     79,532  sound\voices\BoB\
-tt_19.wav      10/20/2000 5:05 PM     72,978   17%    60,260  sound\voices\BoB\
-tt_20.wav      10/20/2000 5:05 PM     73,328   6%     68,967  sound\voices\BoB\
-tt_21.wav      10/20/2000 5:05 PM     79,434   7%     74, 101 sound\voices\BoB\
-tt_22.wav      10/20/2000 5:05 PM     74,636   4%     71,397  sound\voices\BoB\
-tt_23.wav      10/20/2000 5:05 PM     37,034   18%    30,448  sound\voices\BoB\
-tt_24.wav      10/20/2000 5:05 PM     43,316   5%     41,087  sound\voices\BoB\
-tt_25.wav      10/20/2000 5:05 PM     48,376   13%    42,005  sound\voices\BoB\
-tt_26.wav      10/20/2000 5:05 PM     35,464   8%     32,716  sound\voices\BoB\
-tt_27.wav      10/20/2000 5:05 PM     38,430   6%     35,995  sound\voices\BoB\
-tt_28.wav      10/20/2000 5:05 PM     40,698   13%    35,580  sound\voices\BoB\
-tt_29.wav      10/20/2000 5:05 PM     36,074   17%    29,767  sound\voices\BoB\
-tt_30.wav      10/20/2000 5:05 PM     83,012   5%     79,167  sound\voices\BoB\
-tt_31.wav      10/20/2000 5:05PM      55,530   14%    47,706  sound\voices\BoB\
-tt_32.wav      10/20/2000 5:05 PM     52,040   15%    44,369  sound\vojces\BoB\
-tt_33.wav      10/20/2000 5:05 PM     96,360   10%    86,316  sound\voices\BoB\
-tt_34.wav      10/20/2000 5:05 PM     100,896  5%     96,263  sound\voices\BoB\
-tt_35.wav      10/20/2000 5:05 PM     104,038  10%    93,172  sound\voices\BoB\
-tt_36.wav      10/20/2000 5:05 PM     34,940   4%     33,701  sound\voices\BoB\
-tt_37.wav      10/20/2000 5:05 PM     81,704   12%    71,904  sound\voices\BoB\
-tt_38.wav      10/20/2000 5:05 PM     58,670   19%    47,593  sound\voices\BoB\
-tt_39.wav      10/20/2000 5:05 PM     57,012   4%     54,683  sound\voices\BoB\
-tt_40.wav      10/20/2000 5:05 PM     94,790   5%     90,171  sound\voices\BoB\
-tt_41.wav      10/20/2000 5:05 PM     89,030   7%     82,981  sound\voices\BoB\
-tt_42.wav      10/20/2000 5:05 PM     76,556   14%    65,952  sound\voices\BoB\
-tt_43.wav      10/20/2000 5:05 PM     67,744   10%    60,694  sound\voices\BoB\
-tt_44.wav      10/20/2000 5:05 PM     44,188   20%    35,183  sound\voices\BoB\
-voc_01.wav     10/20/2000 5:05 PM     51,640   12%    45,423  sound\voices\BoB\
-voc_02.wav     10/20/2000 5:05 PM     37,916   12%    33,258  sound\voices\BoB\
-voc_03.wav     10/20/2000 5:05 PM     40,364   9%     36,548  sound\voices\BoB\
-voc_04.wav     10/20/2000 5:05 PM     60,412   4%     57,815  sound\voices\BoB\
-voc_05.wav     10/20/2000 5:05 PM     56,172   6%     52,986  sound\voices\BoB\
-voc_06.wav     10/20/2000 5:05 PM     41,284   3%     39,918  sound\voices\BoB\
-voc_07.wav     10/20/2000 5:05 PM     49,442   9%     45,003  sound\voices\BoB\
-voc_08.wav     10/20/2000 5:05 PM     61,656   5%     58,449  sound\voices\BoB\
-voc_09.wav     10/20/2000 5:05 PM     44,306   7%     41,295  sound\voices\BoB\
-voc_10.wav     10/20/2000 5:05 PM     58,298   9%     52,997  sound\voices\BoB\
-voc_11.wav     10/20/2000 5:05 PM     55,050   18%    45,254  sound\voices\BoB\
-voc_12.wav     10/20/2000 5:05 PM     40,614   9%     37,135  sound\voices\BoB\
-voc_13.wav     10/20/2000 5:05 PM     43,068   4%     41,307  sound\voices\BoB\
-voc_14.wav     10/20/2000 5:05 PM     45,512   9%     41,619  sound\voices\BoB\
-voc_15.wav     10/20/2000 5:05 PM     47,532   3%     45,886  sound\voices\BoB\
-voc_16.wav     10/20/2000 5:05 PM     40,756   3%     39,412  sound\voices\BoB\
-yoc_17.wav     10/20/2000 5:05 PM     52,070   7%     48,546  sound\voices\BoB\
-voc_18.wav     10/20/2000 5:05 PM     55,394   6%     51,854  sound\voices\BoB\
-voc_19.wav     10/20/2000 5:05 PM     74,718   8%     68,688  sound\voices\BoB\
-voc_20.wav     10/20/2000 5:05 PM     47,504   10%    42,821  sound\voices\BoB\
-voc_21.wav     10/20/2000 5:05 PM     52,034   7%     48,188  sound\voices\BoB\
-voc_22.wav     10/20/2000 5:05 PM     36,558   10%    32,925  sound\voices\BoB\
-voc_23.wav     10/20/2000 5:05 PM     35,880   4%     34,606  sound\voices\BoB\
-voc_24.wav     10/20/2000 5:05 PM     28,234   4%     27,227  sound\voices\BoB\
-voc_25.wav     10/20/2000 5:05 PM     50,004   14%    42,898  sound\voices\BoB\
-voc_26.wav     10/20/2000 5:05 PM     62,516   10%    56,117  sound\voices\BoB\
-voc_27.wav     10/23/2000 3:01 PM     49,444   5%     46,934  sound\voices\BoB\
-voc_28.wav     10/23/2000 3:05 PM     54,600   6%     51,556  sound\voices\BoB\
-Kreechurs.tga  4/6/2001 1 :08 PM      65,580   99%    873     team_icon\
-Kreechurs_blue.tga     4/6/2001 1 :09 PM      65,580   98%    1,030   team_icon\
-Kreechurs_red.tga      4/6/2001 1 :09 PM      65,580   98%    1,016   team_icon\
-Kreechurs.roq  5/09/2001 5:45 PM      1,078,120      9%      976,146 ui\assets\
-Kreechurs.tga  3/2/2001 11 :57 AM     65,580   99%    873     ui\assets\
-Kreechurs_metal.tga    3/2/2001 10:58 AM      65,580   74%    16,883  ui\assets\
-Kreechurs_name.tga     3/2/200111:16AM 131,116  91%    11,640  ui\assets\
-Kreechurs_name_alt.tga         3/2/200111:05AM 131,116  97%    3,870   ui\assets\
-
-188 file(s)            12,590,550      25%    9,496,872
-
-

TOP

-

Appendix K: A Minimal Team

-

The following list is the minimum number of files needed to make a new team and assumes that the team creator is using both the Janet and James models (the models shipped with Quake III: Team Arena) and the pre-existing heads that work with those models. Note that no sound or voice files are necessary. No head files are necessary. When adding new heads, refer to the Kreecha head in Appendix J. When reskinning previously created heads, refer to the Callisto/Lily head in Appendix J. Use this list as a reference when creating your own team pak files.

-
-tm_kreechurs.pk3
-Name    Modified       Size    Ratio   Packed  Path
-kreechurs.team  5/9/2001 12:01 PM      1,968   61%     770
-kreechurs_readme.txt   5/9/2001       3,162   59%     1,286   
-blue.tga       10/23/2000 7: 17 PM    196,626        41%     115,756         models\players\James\kreechurs\
-lower_blue.skin        4/6/2001 11 :20 AM     203     52%     98         models\players\James\kreechurs\
-lower_default.skin     4/6/200 111:25AM       204     50%     102         models\players\James\kreechurs\
-lower_red.skin  4/6/2001 11:20AM       204     50%     102         models\players\James\kreechurs\
-red.tga        10/23/2000 7:17 PM     196,626        43%     111,607         models\players\James\kreechurs\
-upper_blue.skin        41612001 11:20AM       281     58%     118         models\players\James\kreechurs\
-upper_default.skin     416/2001 11:25AM       282     58%     119         models\players\James\kreechurs\
-upper_red.skin  4/6/2001 11 :20 AM     282     58%     119         models\players\James\kreechurs\
-blue.tga       10/23/2000 7: 17 PM    196,626        41%     115,756         models\players\Janet\kreechurs\
-lower_blue.skin        4/6/2001 11 :20 AM     203     52%     98         models\players\Janet\kreechurs\
-lower_default.skin     4/6/200 111:25AM       204     50%     102         models\players\Janet\kreechurs\
-lower_red.skin  4/6/2001 11:20AM       204     50%     102         models\players\Janet\kreechurs\
-red.tga        10/23/2000 7:17 PM     196,626        43%     111,607         models\players\Janet\kreechurs\
-upper_blue.skin        41612001 11:20AM       281     58%     118         models\players\Janet\kreechurs\
-upper_default.skin     416/2001 11:25AM       282     58%     119         models\players\Janet\kreechurs\
-upper_red.skin  4/6/2001 11 :20 AM     282     58%     119         models\players\Janet\kreechurs\
-kreechurs.bot  5/9/2001 11 :43 AM     405     70%     123     scripts\
-kreechurs.shader       4/6/2001 3:05 PM       500     67%     163     scripts\
-kreechurs.tga  4/6/2001 1 :08 PM      65,580   99%    873     team_icon\
-kreechurs_blue.tga     4/6/2001 1 :09 PM      65,580   98%    1,030   team_icon\
-kreechurs_red.tga      4/6/2001 1 :09 PM      65,580   98%    1,016   team_icon\
-kreechurs.tga  3/2/2001 11 :57 AM     65,580   99%    873     ui\assets\
-kreechurs_metal.tga    3/2/2001 10:58 AM      65,580   74%    16,883  ui\assets\
-kreechurs_name.tga     3/2/200111:16AM 131,116  91%    11,640  ui\assets\
-kreechurs_name_alt.tga         3/2/200111:05AM 131,116  97%    3,870   ui\assets\
-
-27 file(s)             1,354,162              271,112 
-
-

TOP

-

Appendix L: Contents of the TAhead_lily.pk3

-

The following list is taken directly from the contents of the pak file that contains the Lily head model that is a part of the Kreechurs team. Lily is based on the Callisto head model from the original TA game (blinking female head with red or blue hair cut in a pageboy style). Use this as a reference when creating your own pak files for new character heads.

-
-TAhead_lily.pk3
-
-Name    Modified       Size    Ratio   Packed  Path
-Lily.vc        5/112001 6:56 PM       23      0%      23      scripts\Callisto\
-red_Iily.shader        4/9/20011:18 PM        557     79%     117     scripts\
-lily .shader   4/9/2001 1: 19 PM      528     78%     114      scripts\
-blue_lily.shader       5/1/20015:50 PM        566     79%     119     scripts\
-Lily_redface2.tga      4/3/200111:41 PM       16,428  32%     11,092         models\players\heads\Callisto\Lily\
-Lily_redface.tga       4/3/2001 11 :40 PM     16,428  33%     11,062         models\players\heads\Callisto\Lily\
-Lily_red.tga   4/2/2001 2:14 PM       65,580  79%     13,873         models\players\heads\Callisto\Lily\
-Lily_blueface2.tga     4/3/2001 11 :42 PM     16,428  32%     11, 182         models\players\heads\Callisto\Lily\
-Lily_blueface.tga      4/3/200111:41 PM       16,428  32%     11,174         models\players\heads\Callisto\Lily\
-LJily_blu.tga  4/10/2001 12:55 AM     65,580  33%     43,929         models\players\heads\Callisto\Lily\
-icon_red.tga   3/27/20016:15 AM       12,306  30%     8,581         models\players\heads\Callisto\Lily\
-icon_default.tga       3/27/20016:15 AM       12,306  30%     8,595         models\players\heads\Callisto\Lily\
-icon_blue.tga  3/29/2001 10:20 PM     16,428  41%     9,707         models\players\heads\Callisto\Lily\
-head_red.skin  4/17/20014:35 PM       125     44%     70         models\players\heads\Callisto\Lily\
-head_default.skin      4/17/20014:35 PM       126     41%     74         models\players\heads\Callisto\Lily\
-head_blue.skin  4/17/20014:33 PM       126     44%     71         models\players\heads\Callisto\Lily\
-
-16 file(s)             239,963        46%     129,783
-        
- -

TOP

 
-
- - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/entries deleted file mode 100644 index 7403f56c..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/entries +++ /dev/null @@ -1,89 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -ch05 -dir - -ch06 -dir - -styles -dir - -appendix -dir - -q3ashader_manual_files -dir - -ch01 -dir - -ch02 -dir - -ch03 -dir - -ch04 -dir - -index.htm -file - - - - -2012-04-01T16:51:54.043109Z -b1ede4bbd7fa3c9f9529937729cf1815 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4505 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/prop-base/index.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/prop-base/index.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/prop-base/index.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base deleted file mode 100644 index a7220ef4..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base +++ /dev/null @@ -1,76 +0,0 @@ - - -Quake III Arena Shader Manual: Table of Contents - - - -
-

Q3Radiant Shader Manual

- -

Revision #12

- -

By Paul Jaquays and Brian Hook - -

(with additional material by John Carmack, Christian Antkow, Kevin Cloud, & Adrian Carmack) -

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version

-
-

Table of Contents

-1 Preface: Making Your Own Shaders -
2 Introduction - - -3 General Shader Keywords - - -4 Q3MAP Specific Shader Keywords - - -5 Editor specific shader instructions - - -6 Stage Specific Keywords - - -7 Notes on Alpha Channels -
8 Troubleshooting Shaders -
9 Creating New Textures - -
Appendix A: targetShaderName and targetNewShaderName - - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/entries deleted file mode 100644 index 60b248fc..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/appendix -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -appA.html -file - - - - -2012-04-01T16:51:52.745035Z -71f8804da845b07160a6dfdf70b67936 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1749 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/prop-base/appA.html.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/prop-base/appA.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/prop-base/appA.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base deleted file mode 100644 index a20c61a3..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base +++ /dev/null @@ -1,60 +0,0 @@ - - -Quake III Arena Shader Manual: Appendix A - - - -

Q3Radiant Shader Manual

- -TTimo
-2001.31.08
-
-
-

Appendix A: usage of targetShaderName and targetShaderNewName

- -

-The targetShaderName and targetShaderNewName keys can be used with any entity -that supports the target key (the entity instance does not actually have to use -the target key for these new keys to work). If both are defined, then when the -entity decides to activate its targets, all shaders/textures in the map that -were originally the same name as the targetShaderName value, will be changed to -the targetShaderNewName value. -

- -

-For example this would make it look like the red light shader is "turning on": -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_on" -

- -

-And this would turn it back off: -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_off" -

- -

-Note that the ORIGINAL shader name is used in both instances, not whatever it -happens to be currently. Also, of course, this will happen globally. If the -mapper wanted to affect only a certain set of red lights, he/she would need to -make a unique shader name to be used with that set. -

- -

-The code that supports these keys is in G_UseTargets in g_utils.c. -

- -

-For more information, see this thread:
- -http://www.quake3world.com/ubb/Forum6/HTML/014812.html#9 - -

- - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/appA.html b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/appA.html deleted file mode 100644 index a20c61a3..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/appendix/appA.html +++ /dev/null @@ -1,60 +0,0 @@ - - -Quake III Arena Shader Manual: Appendix A - - - -

Q3Radiant Shader Manual

- -TTimo
-2001.31.08
-
-
-

Appendix A: usage of targetShaderName and targetShaderNewName

- -

-The targetShaderName and targetShaderNewName keys can be used with any entity -that supports the target key (the entity instance does not actually have to use -the target key for these new keys to work). If both are defined, then when the -entity decides to activate its targets, all shaders/textures in the map that -were originally the same name as the targetShaderName value, will be changed to -the targetShaderNewName value. -

- -

-For example this would make it look like the red light shader is "turning on": -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_on" -

- -

-And this would turn it back off: -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_off" -

- -

-Note that the ORIGINAL shader name is used in both instances, not whatever it -happens to be currently. Also, of course, this will happen globally. If the -mapper wanted to affect only a certain set of red lights, he/she would need to -make a unique shader name to be used with that set. -

- -

-The code that supports these keys is in G_UseTargets in g_utils.c. -

- -

-For more information, see this thread:
- -http://www.quake3world.com/ubb/Forum6/HTML/014812.html#9 - -

- - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/entries deleted file mode 100644 index cb7882ec..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/ch01 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg1_1.htm -file - - - - -2012-04-01T16:51:53.436074Z -e605a774d4b228fb70925c0a8af4646b -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -13658 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/prop-base/pg1_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/prop-base/pg1_1.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/prop-base/pg1_1.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base deleted file mode 100644 index 9f0fd794..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base +++ /dev/null @@ -1,126 +0,0 @@ - - -Quake III Arena Shader Manual: Introduction - - - -

Q3Radiant Shader Manual

-
-

1 Preface: Making Your Own Shaders

- -The Manual for the Q3Radiant editor program contains a section called Creating New Assets that has the necessary information for setting up the files to create your own custom Quake III Arena shaders. It is recommended that you study the scripts in this document and in the individual shader scripts. Pay careful attention to syntax and punctuation. This is where you are most likely to make mistakes. - -

2 Introduction

- -The graphic engine for QuakeIII Arena has taken a step forward by putting much more direct control over the surface -qualities of textures into the hands of designers and artists. In writing this manual, we have tried to define the -concepts and tools that are used to modify textures in a way that, it is hoped, will be graspable by users who already have basic knowledge ofcomputer graphics but are not necessarily computer programmers. It is not a tutorial, nor was it intended to be one. - -

2.1 What is a Shader?

- -Shaders are short text scripts that define the properties of a surface as it appears and functions in a game world (or compatible editing tool). By convention, the documents that contain these scripts usually has the same name as the texture set which contains the textures being modified (e.g; base, hell, castle, etc,). Several specific script documents have also been created to handle special cases, like liquids, sky and special effects. - -

For Quake III Arena,Shader scripts are located in quake3/baseq3/scripts. - -

A Quake III Arena shader file consists of a series of surface attribute and rendering instructions formatted -within braces ("{" and "}"). Below you can see a simple example of syntaxand format for a single process, including the -Q3MAP keywords or "SurfaceParameters", which follow the first bracket and a single bracketed "stage": - -

textures/liquids/lava
-	{
-	deformVertexes wave sin 0 3 0 0.1
-	tessSize 64
-	{
-	map textures/common/lava.tga
-	}
-}
-
- -

2.2 Shader Name & File Conventions

-The first line is the shader name. Shader names can be up to 63 characters long. The names are often a mirror of -a pathname to a .tga file without the extension or base dir (/quake3/baseq3 in ourcase), but they do not need to be. - -

Shaders that are only going to be referenced by the gamecode, not modeling tools, often are just a single world, -like"projectionShadow" or "viewBlood". - -

Shaders that are used on characters or other polygon models need to mirror a .tga file, which allows the modelers to build with normal textures, then have the special effects show up when the model is loaded into the game. - -

Shaders that are placed on surfaces in the map editor commonly mirror a .tga file, but the "qer_editorimage" shader parameter canforce the editor to use an arbitrary image for display. - -

Shader pathnames have a case sensitivity issue - on windows, they aren't case sensitive, but on unix they are. Try to always use lowercase for filenames, and always use forward slashes "/" for directory separators. - -

2.3 Shader Types

-The keywords that affect shaders are divided into two classes. The first class of keywords are global parameters. Some global parameters ("surfaceparms." And all "q3map_" keywords) are processed by Q3MAP, and change physical attributes of the surface that uses the shader. These attributes can affect the player. To see changes in these -parameters one must re-bsp the map. - -

The remaining global keywords, and all Stage Specific Keywords are processed by the renderer. They are appearance changes -only and have no effect on game play or game mechanics. Changes to any of these attributes will take effect as soon as the game goes to another level or vid_restarts (type command vid_restart in the game console). - -

Shader keywords are notcase sensitive. - -

IMPORTANT NOTE: some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined in this section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

2.4 Key Concepts

- -Ideally, a designer or artist who is manipulating textures with shader files has a basic understanding of wave forms and knows about mixing colored light (high school physics sort of stuff). If not, there are some concepts you need to have a -grasp on to make shaders work for you. - -

2.4.1 Surface Effects vs. Content Effects vs. Deformation Effects
-Shaders not only modify the visible aspect of textures on a geometry brush, curve, patch or mesh model, but they can also have an effect on both the content, "shape," and apparent movement of those things. A surface effect does nothing to modify -the shape or content of the brush. Surface effects include glows, transparencies and rgb (red, green, blue) value -changes. Content shaders affect the way the brush operates in the game world. Examples include water, fog, nonsolid, and -structural. Deformation effects change the actual shape of the affected brush or curve, and may make it appear to move. - -

2.4.2 Power Has a Price
-The shader script gives the designer, artist and programmer a great deal of easily accessible power over the appearance of -and potential special effects that may be applied to surfaces in the gameworld. But it is power that comes with a price tag -attached, and the cost is measured in performance speed. Each shader phase that affects the appearance of a texture causes the Q3:Aengine to make another processing pass and redraw the world. Think of it as if you were adding all -the shader-affected triangles to the total r_speed count for each stage in the shader script. A shader-manipulated texture that is seen through another shader-manipulated texture (e.g. a light in fog) has the effect of adding the total number of passes together for the affected triangles. A light that required two passes seen through a fog that requires one pass will be treated as having to redraw that part of the world three times. - -

2.4.3 RGB Color
- -RGB means "Red, Green, Blue."Mixing red, green and blue light in differing intensities creates the colors in computers and television monitors. This is called additive color (as opposed to the mixing of pigments in paint or colored ink in the printing process, which is subtractive color). In Quake III Arena and most higher-end computer art programs (and the color selector in Windows), the intensities ofthe individual Red, Green and Blue components are expressed as number values. When mixed together on a screen, number values of equal intensity in each component color create a completely neutral (gray) color. The lower the number value (towards 0), the darker the shade. The higher the value, the lighter the shade or the more saturated the color until it reaches a maximum value of 255 (in the art programs). All colors possible on the computer can be expressed as a formula of three numbers. The value for complete black is 0 0 0. The value for complete white is 255 255 255. However, the QuakeIII Arena graphics engine requires that the color range be "normalized" into a range between 0.0 and 1.0. - -

2.4.4 Normalization: a Scale of 0 to 1
-The mathematics in Quake III Arena use a scale of 0.0 to 1.0 instead of 0 to 255. Most computer art programs that can express RGB values as numbers use the 0 to 255 scale. To convert numbers, divide each of the artprogram's values for the component colors by 255. The resulting three values are your Quake III Arena formula for that color component. The same holds true for texture coordinates. - -

2.4.5 Texture Sizes
-TGA texture files are measured in pixels (picture elements). Textures are measured in powers of 2, with 16 x16 pixels being the smallest (typically) texture in use. Most will be larger. Textures need not be square, so long as both dimensions are powers of 2. Examples include: 32x256, 16x32, 128x16. - -

2.4.6 Color Math
- -In Quake III Arena , colors are changed by mathematical equations worked on the textures by way ofthe scripts or -"programlets" in the shader file. An equation that adds to or multiplies the number values in atexture causes it to become -darker. Equations that subtract from or modulate number values in a texture cause it to become lighter. Either equation can change the hue and saturation of a color. - -

2.4.7 Measurements
- -The measurements used in the shaders are in either game units, color units, or texture units. - -

· Game unit: A game unit is used by deformations to specify sizes relative to the world. Game units are the same scale we have had since way back in the Wolfensteindays - 8 units equals one foot. The default texture scale used by the Q3Radiant map editor results in two texels for each game unit, but that can be freely changed. - -

· Color units: Colors scale the values generated by the texture units to produce lighting effects. A value of 0.0 will be completely black, and a value of 1.0 will leave the texture unchanged. Colors are sometimes specified with a single value to be used across all red, green,and blue channels, or sometimes as separate values for each channel. - -

· Texture units: This is the normalized (see above) dimensions of the original texture image (or a previously modified texture at a given stage in the shader pipeline). A full texture, regardless of its original size in texels, has a normalized measurement of 1.0 x 1.0. For normal repeating textures, it is possible to have value greater than 1.0 or less than 0.0, resulting in repeating of the texture. The coordinates are usually assigned by the level editor or -modeling tools, but you still need to be aware of this for scrolling or turbulent movement of the texture at runtime. - -

2.4.8 Waveform Functions
-Many of the shader functions use waveforms to modulate measurements over time. Where appropriate, additional information is provided with wave modulated keyword functions to describe the effect of a particular waveform on that process. Currently there are five waveforms in use in Q3A shaders: - -

Sin: Sin standsfor sine wave, a regular smoothly flowing wave ranging from -1 to 1. -
Triangle: Triangle is a wave with a sharp ascent and a sharp decay, ranging from 0 to 1.It will make a choppy looking wave forms. -
Square: A squarewave simply switches from -1 to 1 with no in-between. -
Sawtooth: In the sawtooth wave, the ascent is like a triangle wave from 0 to 1, but the decay cuts off sharply back to 0. -
Inversesawtooth: This is the reverse of the sawtooth… instant ascent to the peak value (1), then a triangle wave descent to the valley value (0). The phase on this goes from 1.0 to 0.0 instead of 0.0 to 1.0. This wave is particularly usefulfor additive cross-fades. - -

Waveforms all have thefollowing properties: -
<base> Where the wave form begins. Amplitude is measured from this base value. -
<amplitude> This is the height of the wave created, measured from the base. You will probably need to test and tweak this value to get it correct for each new shader stage. The greater the amplitude, the higher the wave peaks and the deeper the valleys. -
<phase> This is a normalized value between 0.0 and 1.0. Changing phase to a non-zero value affects the point on the wave at which the wave form initially begins to be plotted. Example: In Sin or Triangle wave, a phase of 0.25 means it begins one fourth (25%) of the way along the curve, or more simply put, it begins at the peak of the wave. A phaseof 0.5 would begin at the point the wave re-crosses the base line. A phase of 0.75 would be at the lowest point of the valley. If only one wave form is being used in a shader, a phase shift will probably not be noticed and phase should have a value of zero (0). However, including two or more stages of the same process in a single shader, but with the phases shifted can be used to create interesting visual effects. Example: using rgbGen in two stages with different colors and a 0.5 difference in phase would cause the manipulated texture to modulate between two distinct colors. Phase changes can also be used when you have two uses of the same effect near each other, and you don't want them to be synchronized. You would write a separate shader for each, changing only the phase value. -
<freq>Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of 1 -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm deleted file mode 100644 index 9f0fd794..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm +++ /dev/null @@ -1,126 +0,0 @@ - - -Quake III Arena Shader Manual: Introduction - - - -

Q3Radiant Shader Manual

-
-

1 Preface: Making Your Own Shaders

- -The Manual for the Q3Radiant editor program contains a section called Creating New Assets that has the necessary information for setting up the files to create your own custom Quake III Arena shaders. It is recommended that you study the scripts in this document and in the individual shader scripts. Pay careful attention to syntax and punctuation. This is where you are most likely to make mistakes. - -

2 Introduction

- -The graphic engine for QuakeIII Arena has taken a step forward by putting much more direct control over the surface -qualities of textures into the hands of designers and artists. In writing this manual, we have tried to define the -concepts and tools that are used to modify textures in a way that, it is hoped, will be graspable by users who already have basic knowledge ofcomputer graphics but are not necessarily computer programmers. It is not a tutorial, nor was it intended to be one. - -

2.1 What is a Shader?

- -Shaders are short text scripts that define the properties of a surface as it appears and functions in a game world (or compatible editing tool). By convention, the documents that contain these scripts usually has the same name as the texture set which contains the textures being modified (e.g; base, hell, castle, etc,). Several specific script documents have also been created to handle special cases, like liquids, sky and special effects. - -

For Quake III Arena,Shader scripts are located in quake3/baseq3/scripts. - -

A Quake III Arena shader file consists of a series of surface attribute and rendering instructions formatted -within braces ("{" and "}"). Below you can see a simple example of syntaxand format for a single process, including the -Q3MAP keywords or "SurfaceParameters", which follow the first bracket and a single bracketed "stage": - -

textures/liquids/lava
-	{
-	deformVertexes wave sin 0 3 0 0.1
-	tessSize 64
-	{
-	map textures/common/lava.tga
-	}
-}
-
- -

2.2 Shader Name & File Conventions

-The first line is the shader name. Shader names can be up to 63 characters long. The names are often a mirror of -a pathname to a .tga file without the extension or base dir (/quake3/baseq3 in ourcase), but they do not need to be. - -

Shaders that are only going to be referenced by the gamecode, not modeling tools, often are just a single world, -like"projectionShadow" or "viewBlood". - -

Shaders that are used on characters or other polygon models need to mirror a .tga file, which allows the modelers to build with normal textures, then have the special effects show up when the model is loaded into the game. - -

Shaders that are placed on surfaces in the map editor commonly mirror a .tga file, but the "qer_editorimage" shader parameter canforce the editor to use an arbitrary image for display. - -

Shader pathnames have a case sensitivity issue - on windows, they aren't case sensitive, but on unix they are. Try to always use lowercase for filenames, and always use forward slashes "/" for directory separators. - -

2.3 Shader Types

-The keywords that affect shaders are divided into two classes. The first class of keywords are global parameters. Some global parameters ("surfaceparms." And all "q3map_" keywords) are processed by Q3MAP, and change physical attributes of the surface that uses the shader. These attributes can affect the player. To see changes in these -parameters one must re-bsp the map. - -

The remaining global keywords, and all Stage Specific Keywords are processed by the renderer. They are appearance changes -only and have no effect on game play or game mechanics. Changes to any of these attributes will take effect as soon as the game goes to another level or vid_restarts (type command vid_restart in the game console). - -

Shader keywords are notcase sensitive. - -

IMPORTANT NOTE: some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined in this section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

2.4 Key Concepts

- -Ideally, a designer or artist who is manipulating textures with shader files has a basic understanding of wave forms and knows about mixing colored light (high school physics sort of stuff). If not, there are some concepts you need to have a -grasp on to make shaders work for you. - -

2.4.1 Surface Effects vs. Content Effects vs. Deformation Effects
-Shaders not only modify the visible aspect of textures on a geometry brush, curve, patch or mesh model, but they can also have an effect on both the content, "shape," and apparent movement of those things. A surface effect does nothing to modify -the shape or content of the brush. Surface effects include glows, transparencies and rgb (red, green, blue) value -changes. Content shaders affect the way the brush operates in the game world. Examples include water, fog, nonsolid, and -structural. Deformation effects change the actual shape of the affected brush or curve, and may make it appear to move. - -

2.4.2 Power Has a Price
-The shader script gives the designer, artist and programmer a great deal of easily accessible power over the appearance of -and potential special effects that may be applied to surfaces in the gameworld. But it is power that comes with a price tag -attached, and the cost is measured in performance speed. Each shader phase that affects the appearance of a texture causes the Q3:Aengine to make another processing pass and redraw the world. Think of it as if you were adding all -the shader-affected triangles to the total r_speed count for each stage in the shader script. A shader-manipulated texture that is seen through another shader-manipulated texture (e.g. a light in fog) has the effect of adding the total number of passes together for the affected triangles. A light that required two passes seen through a fog that requires one pass will be treated as having to redraw that part of the world three times. - -

2.4.3 RGB Color
- -RGB means "Red, Green, Blue."Mixing red, green and blue light in differing intensities creates the colors in computers and television monitors. This is called additive color (as opposed to the mixing of pigments in paint or colored ink in the printing process, which is subtractive color). In Quake III Arena and most higher-end computer art programs (and the color selector in Windows), the intensities ofthe individual Red, Green and Blue components are expressed as number values. When mixed together on a screen, number values of equal intensity in each component color create a completely neutral (gray) color. The lower the number value (towards 0), the darker the shade. The higher the value, the lighter the shade or the more saturated the color until it reaches a maximum value of 255 (in the art programs). All colors possible on the computer can be expressed as a formula of three numbers. The value for complete black is 0 0 0. The value for complete white is 255 255 255. However, the QuakeIII Arena graphics engine requires that the color range be "normalized" into a range between 0.0 and 1.0. - -

2.4.4 Normalization: a Scale of 0 to 1
-The mathematics in Quake III Arena use a scale of 0.0 to 1.0 instead of 0 to 255. Most computer art programs that can express RGB values as numbers use the 0 to 255 scale. To convert numbers, divide each of the artprogram's values for the component colors by 255. The resulting three values are your Quake III Arena formula for that color component. The same holds true for texture coordinates. - -

2.4.5 Texture Sizes
-TGA texture files are measured in pixels (picture elements). Textures are measured in powers of 2, with 16 x16 pixels being the smallest (typically) texture in use. Most will be larger. Textures need not be square, so long as both dimensions are powers of 2. Examples include: 32x256, 16x32, 128x16. - -

2.4.6 Color Math
- -In Quake III Arena , colors are changed by mathematical equations worked on the textures by way ofthe scripts or -"programlets" in the shader file. An equation that adds to or multiplies the number values in atexture causes it to become -darker. Equations that subtract from or modulate number values in a texture cause it to become lighter. Either equation can change the hue and saturation of a color. - -

2.4.7 Measurements
- -The measurements used in the shaders are in either game units, color units, or texture units. - -

· Game unit: A game unit is used by deformations to specify sizes relative to the world. Game units are the same scale we have had since way back in the Wolfensteindays - 8 units equals one foot. The default texture scale used by the Q3Radiant map editor results in two texels for each game unit, but that can be freely changed. - -

· Color units: Colors scale the values generated by the texture units to produce lighting effects. A value of 0.0 will be completely black, and a value of 1.0 will leave the texture unchanged. Colors are sometimes specified with a single value to be used across all red, green,and blue channels, or sometimes as separate values for each channel. - -

· Texture units: This is the normalized (see above) dimensions of the original texture image (or a previously modified texture at a given stage in the shader pipeline). A full texture, regardless of its original size in texels, has a normalized measurement of 1.0 x 1.0. For normal repeating textures, it is possible to have value greater than 1.0 or less than 0.0, resulting in repeating of the texture. The coordinates are usually assigned by the level editor or -modeling tools, but you still need to be aware of this for scrolling or turbulent movement of the texture at runtime. - -

2.4.8 Waveform Functions
-Many of the shader functions use waveforms to modulate measurements over time. Where appropriate, additional information is provided with wave modulated keyword functions to describe the effect of a particular waveform on that process. Currently there are five waveforms in use in Q3A shaders: - -

Sin: Sin standsfor sine wave, a regular smoothly flowing wave ranging from -1 to 1. -
Triangle: Triangle is a wave with a sharp ascent and a sharp decay, ranging from 0 to 1.It will make a choppy looking wave forms. -
Square: A squarewave simply switches from -1 to 1 with no in-between. -
Sawtooth: In the sawtooth wave, the ascent is like a triangle wave from 0 to 1, but the decay cuts off sharply back to 0. -
Inversesawtooth: This is the reverse of the sawtooth… instant ascent to the peak value (1), then a triangle wave descent to the valley value (0). The phase on this goes from 1.0 to 0.0 instead of 0.0 to 1.0. This wave is particularly usefulfor additive cross-fades. - -

Waveforms all have thefollowing properties: -
<base> Where the wave form begins. Amplitude is measured from this base value. -
<amplitude> This is the height of the wave created, measured from the base. You will probably need to test and tweak this value to get it correct for each new shader stage. The greater the amplitude, the higher the wave peaks and the deeper the valleys. -
<phase> This is a normalized value between 0.0 and 1.0. Changing phase to a non-zero value affects the point on the wave at which the wave form initially begins to be plotted. Example: In Sin or Triangle wave, a phase of 0.25 means it begins one fourth (25%) of the way along the curve, or more simply put, it begins at the peak of the wave. A phaseof 0.5 would begin at the point the wave re-crosses the base line. A phase of 0.75 would be at the lowest point of the valley. If only one wave form is being used in a shader, a phase shift will probably not be noticed and phase should have a value of zero (0). However, including two or more stages of the same process in a single shader, but with the phases shifted can be used to create interesting visual effects. Example: using rgbGen in two stages with different colors and a 0.5 difference in phase would cause the manipulated texture to modulate between two distinct colors. Phase changes can also be used when you have two uses of the same effect near each other, and you don't want them to be synchronized. You would write a separate shader for each, changing only the phase value. -
<freq>Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of 1 -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/entries deleted file mode 100644 index ef49c811..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/ch02 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg2_1.htm -file - - - - -2012-04-01T16:51:53.638086Z -000690185532902146a8ac7d9c474305 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -16556 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/prop-base/pg2_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/prop-base/pg2_1.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/prop-base/pg2_1.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base deleted file mode 100644 index 369f1457..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base +++ /dev/null @@ -1,222 +0,0 @@ - - -Quake III Arena Shader Manual: General Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

3 General Shader Keywords

-IMPORTANT NOTE: Once again, be aware that some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined inthis section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

These Keywords are global to a shader and affect all stages. They are also ignored by Q3MAP. - -

3.1 skyParms <farbox> <cloudheight> <nearbox>

- -Specifies how to use the surface as a sky, including an optional far box (stars, moon, etc), optional cloud layers with any shader attributes, and an optional near box (mountains in front of the clouds, etc). - -

<farbox> Specifies a set of files to use as an environment box behind all cloudlayers. Specify "-" for no -farbox, or a file base name. A base name of "env/test" would look for files "env/test_rt.tga", "env/test_lf.tga", -"env/test_ft.tga", "env/test_bk.tga", "env/test_up.tga", "env/test_dn.tga" to use as the right / left / front / back / up / -down sides. - -
<cloudheight> controls apparent curvature of the cloud layers - lower numbers mean more curvature (and thus more distortion at the horizons). Higher height values create "flatter" skies with less horizon distortion. Think of height -as the radius of a sphere on which the clouds are mapped. Good ranges are 64 to 256. The default value is 128. - -
<nearbox> Specified as farbox, to be alpha blended ontop of the clouds. This has not be tested in a long time, so it probably doesn't actually work. Set to "-" to ignore. - -

Design Notes: - -
  • If you are making a map where the sky is seen by looking up most of the time, use a lower cloudheight value. Under those circumstances the tighter curve looks more dynamic. If you are making a map where the sky is seen by looking out windows most of the time or has a map area that is open to the sky on one or more sides, use a higher height to make the clouds seem more natural. - -
  • It is possible to create a sky with up to 8 cloudlayers, but that also means 8 processing passes and a potentially large processing hit. - -
  • Be aware that the skybox does not wrap around the entire world. The "floor" or bottom face of the skybox is not drawn by the game. If a player in the game can see that face, they will see the "hall of mirrors" effect.
- -

Example: Sky script - -

textures/skies/xtoxicsky_dm9
-{
-	qer_editorimage textures/skies/toxicsky.tga
-	surfaceparm noimpact
-	surfaceparm nolightmap
-q3map_globaltexture
-q3map_lightsubdivide 256
-	q3map_surfacelight 400
-	surfaceparm sky
-	q3map_sun 1 1 0.5 150 30 60
-	skyparms full 512 -
-	{
-		map textures/skies/inteldimclouds.tga
-		tcMod scroll 0.1 0.1
-		tcMod scale 3 2
-	}
-	{
-		map textures/skies/intelredclouds.tga
-		blendFunc add
-		tcMod scroll 0.05 0.05
-		tcMod scale 3 3
-	}
-}
-
- -

3.2 cull <side>

-Every surface of a polygon has two sides, a front and a back. Typically, we only see the front or "out" side. For -example, a solid block you only show the front side. In many applications we see both. For example, in water, you can see both front and a back. The same is true for things like grates and screens. - -

To "cull" means to remove. The value parameter determines the type of face culling to apply. The default value is cull front if this keyword is not specified. However for items that should be inverted then the value back should be used. To disable culling, the value disable ornone should be used. Only one cull instruction can be set -for the shader. - -

3.2.1 cull front
- -The front or "outside" of the polygon is not drawn in the world. This is the default value. It is used if the keyword "cull " appears in the content instructions without a <side>value or if the keyword cull does not appear at all in the shader. - -

3.2.2 cull back
- -Cull back removes the back or "inside" of a polygon from being drawn in the world. - -

3.2.3 cull disable, cull none
-Neither side of the polygon is removed. Both sides are drawn in the game. Very useful for making panels or barriers that -have no depth, such as grates, screens, metal wire fences and so on and for liquid volumes that the player can see from within. Also used for energy fields, sprites, and weapon effects (e.g. plasma). - -

Design Notes: For things like grates and screens, put the texture with the cull none property on one face only. On the other faces, use a non-drawing texture.
- -

3.3 deformVertexes

- -This function performs a general deformation on the surface's vertexes, changing the actual shape of the surface before drawing the shader passes. You can stack multiple deformVertexes commands to modify positions in more complex ways, making an object move in two dimensions, for instance. - -

3.3.1 -deformVertexes wave <div> <func> -<base><amplitude> <phase> <freq>
- -Designed for water surfaces, modifying the values differently at each point. It accepts the standard wave functions of the type sin,triangle, square, sawtooth orinversesawtooth . The "div" parameter is used to -control the wave "spread" - a value equal to the tessSizeof the surface is a good default value (tessSize is subdivision size, in game units, used for the shader when seen in the game world). - -

3.3.2 -deformVertexes normal <div> <func> -<base><amplitude ~0.1-~0.5> <frequency -~1.0-~4.0>
- -This deformation affects the normals of a vertex without actually moving it, which will effect later shader options like -lighting and especially environment mapping. If the shader stages don't use normals in any of their calculations, there will -be novisible effect. - -

Design Notes: Putting values of 0.1 to 0.5 in Amplitude and 1.0 to 4.0 in the Frequency can produce some satisfying results. Some things that have been done with it: A small fluttering bat, falling leaves, rain, flags.
- -

3.3.3 -deformVertexes bulge <bulgeWidth> -<bulgeHeight><bulgeSpeed>
- -This forces a bulge to move along the given s and t directions. Designed for use on curved pipes. - -

Specific parameter definitions for deform keywords: - -
<div> This is roughly defined as the size of the waves that occur. It is measured in game units. Smaller -values create agreater density of smaller wave forms occurring in a given area. Larger values create a lesser density of waves, or otherwise put, the appearance of larger waves. To look correct this value should closely correspond to the value (in pixels) set for tessSize (tessellation size) of the texture. A value of 100.0 is a good default value (which means your tessSize should be close to that for things tolook "wavelike"). - -
<func> This is the type of wave form being created. Sin stands for sine wave, a regular smoothly flowing -wave. Triangle is a wave with a sharp ascent and a sharp decay. It will make a choppy looking wave forms. A square -wave is simply on or off for the period of the frequency with no in between. The sawtooth wave has the ascent of a triangle wave, but has the decay cut off sharply like a square wave. An inversesawtooth wave reverses this. - -
<base> This is the distance, in game units that the apparent surface of the texture is displaced from the -actual surface of the brush as placed in the editor. Apositive value appears above the brush surface. A negative value appears below the brush surface. An example of thisis the Quad effect, which essentially is a shell with a positive base value to stand it away from the model surface and a 0 (zero) value for amplitude. - -
<amplitude> The distance that the deformation moves away from the base value. See Wave Forms in the introduction for a description of amplitude. - -
<phase> SeeWave Forms in the introduction for a description of phase) -
<frequency> See Wave Forms in the introduction for a description of frequency) - -

Design Note: The div and amplitude parameters, when used in conjunction with liquid volumes like water should take into consideration how much the water will be moving. A large ocean area would have have massive swells (big div values) that rose and fell dramatically (big amplitude values). While a small, quiet pool may move very little.
- -

3.3.4 -deformVertexes move<x> <y> <z> <func> -<base> <amplitude> <phase> <freq>
- -This keyword is used to make a brush, curve patch or md3model appear to move together as a unit. The <x> <y> -and <z> values are the distance and direction in game units the object appears to move relative to it's point of origin in the map. - -

The <func> <base> <amplitude><phase> and <freq> values are the same as found in other wave -form manipulations. - -

The product of the function modifies the values x, y, and z.Therefore, if you have an amplitude of 5 and an x value of 2, the object will travel 10 units from its point of origin along the x axis. This results in a total of 20 units of motion along the x axis, since the amplitude is the variation both above and below the base. - -

It must be noted that an object made with this shader does not actually change position, it only appears to. - -

Design Note: If an object is made up of surfaces with different shaders, all must have matching deformVertexes move values or the object will appear to tear itself apart.
- -

3.3.5 -DeformVertexes autosprite
- -This function can be used to make any given triangle quad (pair of triangles that form a square rectangle) automatically behave like a sprite without having to make it a separate entity. This means that the "sprite" on which the texture is placed will rotate to always appear at right angles to the player's view as a sprite would. Any four-sided brush side, flat patch, or pair of triangles in an .md3 model can have the autosprite effect on it. The brush face containing a texture with this shader keyword must besquare. - -

Design Note :This is best used on objects that would appear the same regardless of viewing angle. An example might be a glowing light flare.
- -

3.3.6 -DeformVertexes autosprite2
- -Is a slightly modified "sprite" that only rotates around the middle of its longest axis. This allows you to make a -pillar of fire that you can walk around, or an energy beam stretched across the room. - -

3.4 fogparms <red -value> <green value> <bluevalue> <distance to -Opaque>

- -

Note: you must also specify "surfaceparm fog" to cause q3map to identify the surfaces inside the volume. Fogparms only -describes how to render the fog on the surfaces. - -

<red value> <green value> <blue value> These are normalized values. A good computer art program should give you the RGB values for a color. To obtain the values that define fog color for Quake III Arena, divide the desired color's Red, Green and Blue values by 255 to obtain three normalized numbers within the 0.0 to 1.0 range. - -
<distance toopaque> This is the distance, in game units, until the fog becomes totally opaque, as measured from the point of view of the observer. By making the height of the fog brush shorter than the distance to opaque, the apparent density of the fog can be reduced (because it never reaches the depth at which full opacity occurs). - -

  • The fog volume can only have one surface visible (from outside the fog). -
  • Fog must be made of one brush. It cannot be made of adjacent brushes. -
  • Fog brushes must be axial. This means that only square or rectangular brushes may contain fog, and those must have their edges drawn along the axes of the map grid (all 90 degree angles). -
- -

Design Notes: - -
  • If a water texture contains a fog parameter, it must be treated as if it were a fog texture when in use. -
  • If a room is to be filled completely with a fog volume,it can only be entered through one surface (and still have the fog function correctly). -
  • Additional shader passes may be placed on a fog brush, as with other brushes.
- -

3.5 nopicmip

-This causes the texture to ignore user-set values for the r_picmip cvar command. The image will always be high -resolution. Example: Used to keep images and text in the heads up display from blurring when user optimizes the game graphics. - -

3.6 nomipmaps

-This implies nopicmip, but also prevents the generation of any lower resolution mipmaps for use by the 3d card. This will -cause the texture to alias when it gets smaller, but there are some cases where you would rather have this than a blurry image. Sometimes thin slivers of triangles force things to very low mipmap levels, which leave a few constant pixels on otherwise scrolling special effects. - -

3.7 polygonOffset

-Surfaces rendered with the polygonOffset keyword are rendered slightly off the polygon's surface. This is typically -used for wall markings and "decals." The distance between the offset and the polygon is fixed. It is not a variable in QuakeIII Arena. - -

3.8 portal

-Specifies that this texture is the surface for a portal or mirror. In the game map, a portal entity must be placed directly in front of the texture (within 64 game units). All this does is set "sortportal", so it isn't needed if you specify -that explicitly. - -

3.9 sort <value>

-Use this keyword to fine-tune the depth sorting of shaders as they are compared against other shaders in the game world. The -basic concept is that if there is a question or a problem with shaders drawing in the wrong order against each other, this allows the designer to create a hierarchy ofwhich shader draws in what order. - -

The default behavior is to put all blended shaders in sort "additive" and all other shaders in sort "opaque", so you only -need to specify this when you are trying to work around a sorting problem with multiple transparent surfaces in a scene. - -

The value here can be either a numerical value or one of the keywords in the following list (listed in order of ascending priority): - -

    portal (1): This surface is a portal, it draws over every other shader seen inside the portal, but before anything in the main view. - -
    Sky (2): Typically, the sky is the farthest surface in the game world. Drawing this after other opaque surfaces can be an optimization on some cards. This currently has the wrong value for this purpose, so it doesn't do much of anything. - -
    Opaque (3):This surface is opaque (rarely needed since this is the default with noblendfunc) - -
    Banner (6) :Transparent, but very close to walls. - -
    Underwater (8): Draw behind normal transparent surfaces. - -
    Additive (9): normal transparent surface (default for shaders with blendfuncs) -
    nearest (16):this shader should always sort closest to the viewer, e.g. muzzle flashes and blend blobs
-

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm deleted file mode 100644 index 369f1457..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm +++ /dev/null @@ -1,222 +0,0 @@ - - -Quake III Arena Shader Manual: General Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

3 General Shader Keywords

-IMPORTANT NOTE: Once again, be aware that some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined inthis section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

These Keywords are global to a shader and affect all stages. They are also ignored by Q3MAP. - -

3.1 skyParms <farbox> <cloudheight> <nearbox>

- -Specifies how to use the surface as a sky, including an optional far box (stars, moon, etc), optional cloud layers with any shader attributes, and an optional near box (mountains in front of the clouds, etc). - -

<farbox> Specifies a set of files to use as an environment box behind all cloudlayers. Specify "-" for no -farbox, or a file base name. A base name of "env/test" would look for files "env/test_rt.tga", "env/test_lf.tga", -"env/test_ft.tga", "env/test_bk.tga", "env/test_up.tga", "env/test_dn.tga" to use as the right / left / front / back / up / -down sides. - -
<cloudheight> controls apparent curvature of the cloud layers - lower numbers mean more curvature (and thus more distortion at the horizons). Higher height values create "flatter" skies with less horizon distortion. Think of height -as the radius of a sphere on which the clouds are mapped. Good ranges are 64 to 256. The default value is 128. - -
<nearbox> Specified as farbox, to be alpha blended ontop of the clouds. This has not be tested in a long time, so it probably doesn't actually work. Set to "-" to ignore. - -

Design Notes: - -
  • If you are making a map where the sky is seen by looking up most of the time, use a lower cloudheight value. Under those circumstances the tighter curve looks more dynamic. If you are making a map where the sky is seen by looking out windows most of the time or has a map area that is open to the sky on one or more sides, use a higher height to make the clouds seem more natural. - -
  • It is possible to create a sky with up to 8 cloudlayers, but that also means 8 processing passes and a potentially large processing hit. - -
  • Be aware that the skybox does not wrap around the entire world. The "floor" or bottom face of the skybox is not drawn by the game. If a player in the game can see that face, they will see the "hall of mirrors" effect.
- -

Example: Sky script - -

textures/skies/xtoxicsky_dm9
-{
-	qer_editorimage textures/skies/toxicsky.tga
-	surfaceparm noimpact
-	surfaceparm nolightmap
-q3map_globaltexture
-q3map_lightsubdivide 256
-	q3map_surfacelight 400
-	surfaceparm sky
-	q3map_sun 1 1 0.5 150 30 60
-	skyparms full 512 -
-	{
-		map textures/skies/inteldimclouds.tga
-		tcMod scroll 0.1 0.1
-		tcMod scale 3 2
-	}
-	{
-		map textures/skies/intelredclouds.tga
-		blendFunc add
-		tcMod scroll 0.05 0.05
-		tcMod scale 3 3
-	}
-}
-
- -

3.2 cull <side>

-Every surface of a polygon has two sides, a front and a back. Typically, we only see the front or "out" side. For -example, a solid block you only show the front side. In many applications we see both. For example, in water, you can see both front and a back. The same is true for things like grates and screens. - -

To "cull" means to remove. The value parameter determines the type of face culling to apply. The default value is cull front if this keyword is not specified. However for items that should be inverted then the value back should be used. To disable culling, the value disable ornone should be used. Only one cull instruction can be set -for the shader. - -

3.2.1 cull front
- -The front or "outside" of the polygon is not drawn in the world. This is the default value. It is used if the keyword "cull " appears in the content instructions without a <side>value or if the keyword cull does not appear at all in the shader. - -

3.2.2 cull back
- -Cull back removes the back or "inside" of a polygon from being drawn in the world. - -

3.2.3 cull disable, cull none
-Neither side of the polygon is removed. Both sides are drawn in the game. Very useful for making panels or barriers that -have no depth, such as grates, screens, metal wire fences and so on and for liquid volumes that the player can see from within. Also used for energy fields, sprites, and weapon effects (e.g. plasma). - -

Design Notes: For things like grates and screens, put the texture with the cull none property on one face only. On the other faces, use a non-drawing texture.
- -

3.3 deformVertexes

- -This function performs a general deformation on the surface's vertexes, changing the actual shape of the surface before drawing the shader passes. You can stack multiple deformVertexes commands to modify positions in more complex ways, making an object move in two dimensions, for instance. - -

3.3.1 -deformVertexes wave <div> <func> -<base><amplitude> <phase> <freq>
- -Designed for water surfaces, modifying the values differently at each point. It accepts the standard wave functions of the type sin,triangle, square, sawtooth orinversesawtooth . The "div" parameter is used to -control the wave "spread" - a value equal to the tessSizeof the surface is a good default value (tessSize is subdivision size, in game units, used for the shader when seen in the game world). - -

3.3.2 -deformVertexes normal <div> <func> -<base><amplitude ~0.1-~0.5> <frequency -~1.0-~4.0>
- -This deformation affects the normals of a vertex without actually moving it, which will effect later shader options like -lighting and especially environment mapping. If the shader stages don't use normals in any of their calculations, there will -be novisible effect. - -

Design Notes: Putting values of 0.1 to 0.5 in Amplitude and 1.0 to 4.0 in the Frequency can produce some satisfying results. Some things that have been done with it: A small fluttering bat, falling leaves, rain, flags.
- -

3.3.3 -deformVertexes bulge <bulgeWidth> -<bulgeHeight><bulgeSpeed>
- -This forces a bulge to move along the given s and t directions. Designed for use on curved pipes. - -

Specific parameter definitions for deform keywords: - -
<div> This is roughly defined as the size of the waves that occur. It is measured in game units. Smaller -values create agreater density of smaller wave forms occurring in a given area. Larger values create a lesser density of waves, or otherwise put, the appearance of larger waves. To look correct this value should closely correspond to the value (in pixels) set for tessSize (tessellation size) of the texture. A value of 100.0 is a good default value (which means your tessSize should be close to that for things tolook "wavelike"). - -
<func> This is the type of wave form being created. Sin stands for sine wave, a regular smoothly flowing -wave. Triangle is a wave with a sharp ascent and a sharp decay. It will make a choppy looking wave forms. A square -wave is simply on or off for the period of the frequency with no in between. The sawtooth wave has the ascent of a triangle wave, but has the decay cut off sharply like a square wave. An inversesawtooth wave reverses this. - -
<base> This is the distance, in game units that the apparent surface of the texture is displaced from the -actual surface of the brush as placed in the editor. Apositive value appears above the brush surface. A negative value appears below the brush surface. An example of thisis the Quad effect, which essentially is a shell with a positive base value to stand it away from the model surface and a 0 (zero) value for amplitude. - -
<amplitude> The distance that the deformation moves away from the base value. See Wave Forms in the introduction for a description of amplitude. - -
<phase> SeeWave Forms in the introduction for a description of phase) -
<frequency> See Wave Forms in the introduction for a description of frequency) - -

Design Note: The div and amplitude parameters, when used in conjunction with liquid volumes like water should take into consideration how much the water will be moving. A large ocean area would have have massive swells (big div values) that rose and fell dramatically (big amplitude values). While a small, quiet pool may move very little.
- -

3.3.4 -deformVertexes move<x> <y> <z> <func> -<base> <amplitude> <phase> <freq>
- -This keyword is used to make a brush, curve patch or md3model appear to move together as a unit. The <x> <y> -and <z> values are the distance and direction in game units the object appears to move relative to it's point of origin in the map. - -

The <func> <base> <amplitude><phase> and <freq> values are the same as found in other wave -form manipulations. - -

The product of the function modifies the values x, y, and z.Therefore, if you have an amplitude of 5 and an x value of 2, the object will travel 10 units from its point of origin along the x axis. This results in a total of 20 units of motion along the x axis, since the amplitude is the variation both above and below the base. - -

It must be noted that an object made with this shader does not actually change position, it only appears to. - -

Design Note: If an object is made up of surfaces with different shaders, all must have matching deformVertexes move values or the object will appear to tear itself apart.
- -

3.3.5 -DeformVertexes autosprite
- -This function can be used to make any given triangle quad (pair of triangles that form a square rectangle) automatically behave like a sprite without having to make it a separate entity. This means that the "sprite" on which the texture is placed will rotate to always appear at right angles to the player's view as a sprite would. Any four-sided brush side, flat patch, or pair of triangles in an .md3 model can have the autosprite effect on it. The brush face containing a texture with this shader keyword must besquare. - -

Design Note :This is best used on objects that would appear the same regardless of viewing angle. An example might be a glowing light flare.
- -

3.3.6 -DeformVertexes autosprite2
- -Is a slightly modified "sprite" that only rotates around the middle of its longest axis. This allows you to make a -pillar of fire that you can walk around, or an energy beam stretched across the room. - -

3.4 fogparms <red -value> <green value> <bluevalue> <distance to -Opaque>

- -

Note: you must also specify "surfaceparm fog" to cause q3map to identify the surfaces inside the volume. Fogparms only -describes how to render the fog on the surfaces. - -

<red value> <green value> <blue value> These are normalized values. A good computer art program should give you the RGB values for a color. To obtain the values that define fog color for Quake III Arena, divide the desired color's Red, Green and Blue values by 255 to obtain three normalized numbers within the 0.0 to 1.0 range. - -
<distance toopaque> This is the distance, in game units, until the fog becomes totally opaque, as measured from the point of view of the observer. By making the height of the fog brush shorter than the distance to opaque, the apparent density of the fog can be reduced (because it never reaches the depth at which full opacity occurs). - -

  • The fog volume can only have one surface visible (from outside the fog). -
  • Fog must be made of one brush. It cannot be made of adjacent brushes. -
  • Fog brushes must be axial. This means that only square or rectangular brushes may contain fog, and those must have their edges drawn along the axes of the map grid (all 90 degree angles). -
- -

Design Notes: - -
  • If a water texture contains a fog parameter, it must be treated as if it were a fog texture when in use. -
  • If a room is to be filled completely with a fog volume,it can only be entered through one surface (and still have the fog function correctly). -
  • Additional shader passes may be placed on a fog brush, as with other brushes.
- -

3.5 nopicmip

-This causes the texture to ignore user-set values for the r_picmip cvar command. The image will always be high -resolution. Example: Used to keep images and text in the heads up display from blurring when user optimizes the game graphics. - -

3.6 nomipmaps

-This implies nopicmip, but also prevents the generation of any lower resolution mipmaps for use by the 3d card. This will -cause the texture to alias when it gets smaller, but there are some cases where you would rather have this than a blurry image. Sometimes thin slivers of triangles force things to very low mipmap levels, which leave a few constant pixels on otherwise scrolling special effects. - -

3.7 polygonOffset

-Surfaces rendered with the polygonOffset keyword are rendered slightly off the polygon's surface. This is typically -used for wall markings and "decals." The distance between the offset and the polygon is fixed. It is not a variable in QuakeIII Arena. - -

3.8 portal

-Specifies that this texture is the surface for a portal or mirror. In the game map, a portal entity must be placed directly in front of the texture (within 64 game units). All this does is set "sortportal", so it isn't needed if you specify -that explicitly. - -

3.9 sort <value>

-Use this keyword to fine-tune the depth sorting of shaders as they are compared against other shaders in the game world. The -basic concept is that if there is a question or a problem with shaders drawing in the wrong order against each other, this allows the designer to create a hierarchy ofwhich shader draws in what order. - -

The default behavior is to put all blended shaders in sort "additive" and all other shaders in sort "opaque", so you only -need to specify this when you are trying to work around a sorting problem with multiple transparent surfaces in a scene. - -

The value here can be either a numerical value or one of the keywords in the following list (listed in order of ascending priority): - -

    portal (1): This surface is a portal, it draws over every other shader seen inside the portal, but before anything in the main view. - -
    Sky (2): Typically, the sky is the farthest surface in the game world. Drawing this after other opaque surfaces can be an optimization on some cards. This currently has the wrong value for this purpose, so it doesn't do much of anything. - -
    Opaque (3):This surface is opaque (rarely needed since this is the default with noblendfunc) - -
    Banner (6) :Transparent, but very close to walls. - -
    Underwater (8): Draw behind normal transparent surfaces. - -
    Additive (9): normal transparent surface (default for shaders with blendfuncs) -
    nearest (16):this shader should always sort closest to the viewer, e.g. muzzle flashes and blend blobs
-

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/entries deleted file mode 100644 index c8af6c88..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/ch03 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg3_1.htm -file - - - - -2012-04-01T16:51:53.779094Z -577330f6718c5e9d2a8edc967ca8b3d3 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -14028 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/prop-base/pg3_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/prop-base/pg3_1.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/prop-base/pg3_1.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base deleted file mode 100644 index 57a8ea90..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base +++ /dev/null @@ -1,197 +0,0 @@ - - -Quake III Arena Shader Manual: Specific Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

4 Q3MAP Specific Shader Keywords

-These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader. - -

4.1 tessSize <amount>

-For consistency's sake, this really should have been called q3map_tessSize. But it wasn't. The tessSize shader controls -the tessellation size (how finely a surface is chopped up in to triangles), in game units, of the surface. This is only -applicable to solid brushes, not curves, and is generally only used on surfaces that are flagged with the deformVertexes keyword. Abuse of this can create a huge number of triangles. This happens during q3map processing, so maps must be reprocessed for changes to take effect. - -

Design Note: It can also be used on tesselating surfaces to make sure that tesselations arelarge, and thus, less costly in terms of triangles created.
- -

4.2 q3map_backshader <shadername>

-This allows a brush to use a different shader when you are inside it looking out. By way of example, this would allow a water brush (or other) surfaces to have a different sort order (see sort above) or appearance when seen from the inside. - -

4.3 q3map_globaltexture

-Use this shader in the global keyword commands whenever the tcMod scale function is used in one of the later render stages. Many problems with getting shader effects to work across multiple adjacent brushes are a result of the way q3map optimizes texture precision. This option resolves that, but at the expense of some precision of the textures when they are far away from the origin of the map. - -

4.4 q3map_sun <red> <green> <blue> <intensity> <degrees> <elevation>

-This keyword in a sky shader will create the illusion of light cast into a map by a single, infinitely distance light source (sun, moon, hellish fire, etc.). This is only processed during the lighting phase of q3map. - -

<red><green> <blue> Color is described by three normalized rgbvalues. Color will be normalized to a 0.0 to 1.0 range, so it doesn't matter what range you use. - -
<intensity> is the brightness of the generated light. A value of 100 is a fairly bright sun. The -intensity of the light falls off with angle but not distance. - -
<degrees> is the angle relative to the directions on the map file. A setting of 0 degrees equals east. 90 -isnorth, 180 is west and 270 is south. - -
<elevation> is the distance, measured in degrees from the horizon (z value of zero in the map file). An -elevation of 0 is sunrise/sunset. An elevation of 90 is noon. - -

DESIGN NOTE: Sky shaders should probably still have aq3map_surfacelight value. The "sun" gives a strong directional light, but doesn't necessarily give the fill light needed to soften and illuminate shadows. Skies with clouds should probably have a weaker q3map_sunvalue and a higher q3map_surfacelight value. Heavy clouds diffuse light and weaken shadows. The opposite is true of a cloudless or nearly cloudless sky. Insuch cases, the "sun" or "moon" will cast stronger, shadows that have a greater degree of contrast. - -

Design Trick: Not certain what color formula you want to use for the sun's light? Try this. Create a light entity. Use the Q3Radiant editor's color selection tools to pick a color. The light's _color key's value will be the normalized RGB formula. Copy it from the value line in the editor (CTRL+c) and paste it into your shader.

- -

4.5 q3map_surfaceLight <light value>

- -The texture gives off light equal to the <light value> set for it. The relative surface area of the texture in the world affects the actual amount of light that appears to be radiated. To give off what appears to be the same amount -of light, a smaller texture must be significantly brighter than a larger texture. Unless the qer_lightimage keyword is used to select a different source for the texture's light color information, the color of the light will be the averaged color of the texture. - -

4.6 q3map_lightimage <texturepath/texturename>

-The keyword q3map_lightimage generates lighting from the average color of the TGA image specified by the -q3map_lightimage. - -

The keyword sequence for generating light on a q3map_surfacelight should be ordered as follows: - -

  1. q3map_lightimage ; (the texture providing the light and the color of the light) -
  2. qer_editorimage ; (the editor-only image used to select the source map for the texture) -
  3. the average color of the light emitted from the shader is calculated from the lightimage.)
- -

The reason q3map_lightimageis specified for the light in the example below, is because the blend map is predominantly yellow, and the designer wanted more yellow light to be emitted from the light. - -

Example: Taking light from another source texture - -

-textures/eerie/ironcrosslt2_10000
-{
-q3map_lightimagetextures/gothic_light/ironcrosslt2.blend.tga
-// this TGA is the source for the color of the blended light
-
-qer_editorimagetextures/gothic_light/ironcrosslt2.tga
-//base TGA (used because the shader is used with several
-// different light values
-
-q3map_surfacelight 10000
-//emitted light value of10,000
-
-{
-map $lightmap
-//source texture is affected by the lightmap
-rgbGen identity
-// this command handles the overbright bits created by "sunlight"
-// in the game
-}
-{
-maptextures/gothic_light/ironcrosslt2.tga
-blendFunc filter
-rgbGen identity
-}
-{
-maptextures/gothic_light/ironcrosslt2.blend.tga
-blendFunc add
-}
-}
-
- -

4.7 q3map_lightsubdivide <value>

-This allows the user to define how large, or small to make the subdivisions (triangles) in a textured surface, particularly aimed at light-emitting textures like skies. It defaults to 120 game units, but can be made larger (256 or 512) for sky boxes or smaller for light surfaces at the bottoms of cracks. This can be a dominant factor in processing time for q3map lighting. - -

4.8 surfaceparm <parm>

- -

All surfaceparm keywords are preceded by the word surfaceparm as follows: surfaceparm fogor surfaceparm noimpact. - -

4.8.1 alphashadow
-This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the q3map process to use the texture's alpha channel as a mask for casting static shadows in the game world. - -

Design Note: Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows.
- -

4.8.2 areaportal
-A brush marked with this keyword functions as an area portal, a break in the Q3MAP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing -surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the -areaportal. - -

4.8.3 clusterportal
-A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It -is typically placed in locations that are natural breaks in a map, such a sentrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the areaportal. - -

4.8.4 donotenter
-Read as "do not enter." Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect -non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features. - -

4.8.5 flesh
-This will cue different sounds (in a similar manner to metalsteps) and cause blood to appear instead of bullet impact flashes. - -

4.8.6 fog
-Fog defines the brush as being a "fog" brush. This is a Q3MAP function that chops and identifies all geometry inside the -brush. The General shader keyword fogparms must also be specified to tell how to draw the fog. - -

4.8.7 lava
- -

Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush. - -

4.8.8 metalsteps
-The player sounds as if he is walking on clanging metal steps or gratings. Other than specifiying flesh, metalsteps, nosteps, or default (i.e. specify nothing) it is currently not possible for a designer to create or assign a specific sound routine to a texture. Note: If no sound is set for a texture, then the default footsteps sound routines are heard. - -

4.8.9 nodamage
-The player takes no damage if he falls onto a texture with this surfaceparm - -

4.8.10 nodlight
-Read as "No DeeLight". A texture containing this parameter will not be affected or lit by dynamic lights, such as -weapon effects. And example in Quake III Arena would be solid lava. - -

4.8.11 nodraw
-A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin -brushes, and so on. - -

4.8.12 nodrop
-When a player dies inside a volume (brush) marked nodrop, no weapon is dropped. The intend use isfor "Pits of Death." Have a kill trigger inside a nodrop volume, and when the players die here, they won't drop their weapons. The intent is to prevent unnecessary polygon pileups on the floors of pits. - -

4.8.13 noimpact
-World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks -will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave -marks. - -

4.8.14 nomarks
-Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. -This is useful to keep lights from being temporarily obscured by battle damage. - -

Design Note: Use this on any surface with a deformVertexes keyword. Otherwise, the marks will appear on the unmodified surface location of the texture with the surface wriggles and squirms through the marks.
- -

4.8.15 nolightmap
-This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not -require the addition of an rgbGen identity keyword in that stage. - -

4.8.16 nosteps
-The player makes no sound when walking on this texture. - -

4.8.17 nonsolid
-This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to -triggers, hint brushes and similar brushes. This affects the content of a brush. - -

4.8.18 origin
-Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be -rectangular (or square). The origin point is the exact center of the origin brush. - -

4.8.19 playerclip
-Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked -playerclip. The intended use for this is to block the player but not block projectiles like rockets. - -

4.8.20 slick
-This surfaceparm included in a texture should give it significantly reduced friction. - -

4.8.21 slime
-Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush. - -

4.8.22 structural
-This surface attribute causes a brush to be seen by the Q3MAP process as a possible break-point in a BSP tree. It is used -as a part of the shader for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by -default, structural, so you shouldn't need to specify this. - -

4.8.23 trans
-Tells q3map that pre-computed visibility should not be blocked by this surface. Generally, any shaders that have blendfuncs -should be marked as surfaceparm trans. - -

4.8.24 water
-Assigns to the texture the game properties for water. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm deleted file mode 100644 index 57a8ea90..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm +++ /dev/null @@ -1,197 +0,0 @@ - - -Quake III Arena Shader Manual: Specific Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

4 Q3MAP Specific Shader Keywords

-These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader. - -

4.1 tessSize <amount>

-For consistency's sake, this really should have been called q3map_tessSize. But it wasn't. The tessSize shader controls -the tessellation size (how finely a surface is chopped up in to triangles), in game units, of the surface. This is only -applicable to solid brushes, not curves, and is generally only used on surfaces that are flagged with the deformVertexes keyword. Abuse of this can create a huge number of triangles. This happens during q3map processing, so maps must be reprocessed for changes to take effect. - -

Design Note: It can also be used on tesselating surfaces to make sure that tesselations arelarge, and thus, less costly in terms of triangles created.
- -

4.2 q3map_backshader <shadername>

-This allows a brush to use a different shader when you are inside it looking out. By way of example, this would allow a water brush (or other) surfaces to have a different sort order (see sort above) or appearance when seen from the inside. - -

4.3 q3map_globaltexture

-Use this shader in the global keyword commands whenever the tcMod scale function is used in one of the later render stages. Many problems with getting shader effects to work across multiple adjacent brushes are a result of the way q3map optimizes texture precision. This option resolves that, but at the expense of some precision of the textures when they are far away from the origin of the map. - -

4.4 q3map_sun <red> <green> <blue> <intensity> <degrees> <elevation>

-This keyword in a sky shader will create the illusion of light cast into a map by a single, infinitely distance light source (sun, moon, hellish fire, etc.). This is only processed during the lighting phase of q3map. - -

<red><green> <blue> Color is described by three normalized rgbvalues. Color will be normalized to a 0.0 to 1.0 range, so it doesn't matter what range you use. - -
<intensity> is the brightness of the generated light. A value of 100 is a fairly bright sun. The -intensity of the light falls off with angle but not distance. - -
<degrees> is the angle relative to the directions on the map file. A setting of 0 degrees equals east. 90 -isnorth, 180 is west and 270 is south. - -
<elevation> is the distance, measured in degrees from the horizon (z value of zero in the map file). An -elevation of 0 is sunrise/sunset. An elevation of 90 is noon. - -

DESIGN NOTE: Sky shaders should probably still have aq3map_surfacelight value. The "sun" gives a strong directional light, but doesn't necessarily give the fill light needed to soften and illuminate shadows. Skies with clouds should probably have a weaker q3map_sunvalue and a higher q3map_surfacelight value. Heavy clouds diffuse light and weaken shadows. The opposite is true of a cloudless or nearly cloudless sky. Insuch cases, the "sun" or "moon" will cast stronger, shadows that have a greater degree of contrast. - -

Design Trick: Not certain what color formula you want to use for the sun's light? Try this. Create a light entity. Use the Q3Radiant editor's color selection tools to pick a color. The light's _color key's value will be the normalized RGB formula. Copy it from the value line in the editor (CTRL+c) and paste it into your shader.

- -

4.5 q3map_surfaceLight <light value>

- -The texture gives off light equal to the <light value> set for it. The relative surface area of the texture in the world affects the actual amount of light that appears to be radiated. To give off what appears to be the same amount -of light, a smaller texture must be significantly brighter than a larger texture. Unless the qer_lightimage keyword is used to select a different source for the texture's light color information, the color of the light will be the averaged color of the texture. - -

4.6 q3map_lightimage <texturepath/texturename>

-The keyword q3map_lightimage generates lighting from the average color of the TGA image specified by the -q3map_lightimage. - -

The keyword sequence for generating light on a q3map_surfacelight should be ordered as follows: - -

  1. q3map_lightimage ; (the texture providing the light and the color of the light) -
  2. qer_editorimage ; (the editor-only image used to select the source map for the texture) -
  3. the average color of the light emitted from the shader is calculated from the lightimage.)
- -

The reason q3map_lightimageis specified for the light in the example below, is because the blend map is predominantly yellow, and the designer wanted more yellow light to be emitted from the light. - -

Example: Taking light from another source texture - -

-textures/eerie/ironcrosslt2_10000
-{
-q3map_lightimagetextures/gothic_light/ironcrosslt2.blend.tga
-// this TGA is the source for the color of the blended light
-
-qer_editorimagetextures/gothic_light/ironcrosslt2.tga
-//base TGA (used because the shader is used with several
-// different light values
-
-q3map_surfacelight 10000
-//emitted light value of10,000
-
-{
-map $lightmap
-//source texture is affected by the lightmap
-rgbGen identity
-// this command handles the overbright bits created by "sunlight"
-// in the game
-}
-{
-maptextures/gothic_light/ironcrosslt2.tga
-blendFunc filter
-rgbGen identity
-}
-{
-maptextures/gothic_light/ironcrosslt2.blend.tga
-blendFunc add
-}
-}
-
- -

4.7 q3map_lightsubdivide <value>

-This allows the user to define how large, or small to make the subdivisions (triangles) in a textured surface, particularly aimed at light-emitting textures like skies. It defaults to 120 game units, but can be made larger (256 or 512) for sky boxes or smaller for light surfaces at the bottoms of cracks. This can be a dominant factor in processing time for q3map lighting. - -

4.8 surfaceparm <parm>

- -

All surfaceparm keywords are preceded by the word surfaceparm as follows: surfaceparm fogor surfaceparm noimpact. - -

4.8.1 alphashadow
-This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the q3map process to use the texture's alpha channel as a mask for casting static shadows in the game world. - -

Design Note: Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows.
- -

4.8.2 areaportal
-A brush marked with this keyword functions as an area portal, a break in the Q3MAP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing -surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the -areaportal. - -

4.8.3 clusterportal
-A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It -is typically placed in locations that are natural breaks in a map, such a sentrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the areaportal. - -

4.8.4 donotenter
-Read as "do not enter." Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect -non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features. - -

4.8.5 flesh
-This will cue different sounds (in a similar manner to metalsteps) and cause blood to appear instead of bullet impact flashes. - -

4.8.6 fog
-Fog defines the brush as being a "fog" brush. This is a Q3MAP function that chops and identifies all geometry inside the -brush. The General shader keyword fogparms must also be specified to tell how to draw the fog. - -

4.8.7 lava
- -

Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush. - -

4.8.8 metalsteps
-The player sounds as if he is walking on clanging metal steps or gratings. Other than specifiying flesh, metalsteps, nosteps, or default (i.e. specify nothing) it is currently not possible for a designer to create or assign a specific sound routine to a texture. Note: If no sound is set for a texture, then the default footsteps sound routines are heard. - -

4.8.9 nodamage
-The player takes no damage if he falls onto a texture with this surfaceparm - -

4.8.10 nodlight
-Read as "No DeeLight". A texture containing this parameter will not be affected or lit by dynamic lights, such as -weapon effects. And example in Quake III Arena would be solid lava. - -

4.8.11 nodraw
-A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin -brushes, and so on. - -

4.8.12 nodrop
-When a player dies inside a volume (brush) marked nodrop, no weapon is dropped. The intend use isfor "Pits of Death." Have a kill trigger inside a nodrop volume, and when the players die here, they won't drop their weapons. The intent is to prevent unnecessary polygon pileups on the floors of pits. - -

4.8.13 noimpact
-World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks -will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave -marks. - -

4.8.14 nomarks
-Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. -This is useful to keep lights from being temporarily obscured by battle damage. - -

Design Note: Use this on any surface with a deformVertexes keyword. Otherwise, the marks will appear on the unmodified surface location of the texture with the surface wriggles and squirms through the marks.
- -

4.8.15 nolightmap
-This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not -require the addition of an rgbGen identity keyword in that stage. - -

4.8.16 nosteps
-The player makes no sound when walking on this texture. - -

4.8.17 nonsolid
-This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to -triggers, hint brushes and similar brushes. This affects the content of a brush. - -

4.8.18 origin
-Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be -rectangular (or square). The origin point is the exact center of the origin brush. - -

4.8.19 playerclip
-Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked -playerclip. The intended use for this is to block the player but not block projectiles like rockets. - -

4.8.20 slick
-This surfaceparm included in a texture should give it significantly reduced friction. - -

4.8.21 slime
-Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush. - -

4.8.22 structural
-This surface attribute causes a brush to be seen by the Q3MAP process as a possible break-point in a BSP tree. It is used -as a part of the shader for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by -default, structural, so you shouldn't need to specify this. - -

4.8.23 trans
-Tells q3map that pre-computed visibility should not be blocked by this surface. Generally, any shaders that have blendfuncs -should be marked as surfaceparm trans. - -

4.8.24 water
-Assigns to the texture the game properties for water. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/entries deleted file mode 100644 index 87902e37..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/ch04 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg4_1.htm -file - - - - -2012-04-01T16:51:53.992106Z -41ea0bf8d0b205ba8fdfecb0e3df4e16 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3229 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/prop-base/pg4_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/prop-base/pg4_1.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/prop-base/pg4_1.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base deleted file mode 100644 index 52ce0ef5..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base +++ /dev/null @@ -1,64 +0,0 @@ - - -Quake III Arena Shader Manual: Editor Specific Shader Instructions - - - -

Q3Radiant Shader Manual

-
-

5 Editor specific shader instructions

-These instructions only affect the texture when it is seen in the Q3Radiant editor. They should be grouped with the surface -parameters but ahead of them in sequence. - -

5.1 qer_editorimage <texture path/texturename>

-This keyword creates a shader name in memory, but in the editor, it displays the TGA art image specified in qer_editorimage (in the example below this is textures/eerie/lavahell.tga). - -

The editor maps a texture using the size attributes of the TGA file used for the editor image. When that editor image represents a shader, any texture used in any of the shader stages will be scaled up or down to the dimensions of the editor image. If a 128x128 pixel image is used to represent the shader in the editor, then a 256x256 image used in a later stage will be shrunk to fit. A 64x64 image would be stretched to fit. Be sure to check this on bouncy, acceleration, and power-uppads placed on surfaces other than 256 x 256. Use tcMod scale to change the size of the stretched -texture. Rememberthat tcMod scale 0.5 0.5 will double your image, while tcMod scale 2 2will halve it. - -

Design Notes: The base_light and gothic_light shaders contain numerous uses of this. It can be very useful for making different light styles (mostly to change the light brightnesses) without having to create a new piece of TGA art for each new shader.
- - -

textures/liquids/lavahell2//path and name of new texture
-{
-qer_editorimagetextures/eerie/lavahell.tga
-//based on this
-qer_nocarve
-//cannot be cut by CSG subtract
-surfaceparm noimpact
-//projectiles do not hitit
-surfaceparm lava
-//has the game properties of lava
-surfaceparm nolightmap
-//environment lighting does not affect
-q3map_surfacelight 3000
-//light is emitted
-tessSize 256
-//relatively large triangles
-cull disable
-//no sides are removed
-deformVertexes wave 100sin 5 5 .5 0.02
-fogparms 0.85191420.309723 0.0 128 128
-{
-maptextures/eerie/lavahell.tga
-//base texture artwork
-tcMod turb .25 0.2 1 0.02
-//texture is subjected to turbulence
-tcMod scroll 0.1 0.1
-//the turbulence is scrolled
-}
-}
-
- -

5.2 qer_nocarve

-A brush marked with this instruction will not be affected by CSG subtract functions. It is especially useful for water and fog textures. - -

5.3 qer_trans <value>

-This parameter defines the percentage of transparency that a brush will have when seen in the editor (no effect on game -rendering a tall). It can have a positive value between 0 and 1. The higher the value, the less transparent the texture. -Example: qer_trans 0.2 means the brush is 20% opaque and nearly invisible. - -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm deleted file mode 100644 index 52ce0ef5..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm +++ /dev/null @@ -1,64 +0,0 @@ - - -Quake III Arena Shader Manual: Editor Specific Shader Instructions - - - -

Q3Radiant Shader Manual

-
-

5 Editor specific shader instructions

-These instructions only affect the texture when it is seen in the Q3Radiant editor. They should be grouped with the surface -parameters but ahead of them in sequence. - -

5.1 qer_editorimage <texture path/texturename>

-This keyword creates a shader name in memory, but in the editor, it displays the TGA art image specified in qer_editorimage (in the example below this is textures/eerie/lavahell.tga). - -

The editor maps a texture using the size attributes of the TGA file used for the editor image. When that editor image represents a shader, any texture used in any of the shader stages will be scaled up or down to the dimensions of the editor image. If a 128x128 pixel image is used to represent the shader in the editor, then a 256x256 image used in a later stage will be shrunk to fit. A 64x64 image would be stretched to fit. Be sure to check this on bouncy, acceleration, and power-uppads placed on surfaces other than 256 x 256. Use tcMod scale to change the size of the stretched -texture. Rememberthat tcMod scale 0.5 0.5 will double your image, while tcMod scale 2 2will halve it. - -

Design Notes: The base_light and gothic_light shaders contain numerous uses of this. It can be very useful for making different light styles (mostly to change the light brightnesses) without having to create a new piece of TGA art for each new shader.
- - -

textures/liquids/lavahell2//path and name of new texture
-{
-qer_editorimagetextures/eerie/lavahell.tga
-//based on this
-qer_nocarve
-//cannot be cut by CSG subtract
-surfaceparm noimpact
-//projectiles do not hitit
-surfaceparm lava
-//has the game properties of lava
-surfaceparm nolightmap
-//environment lighting does not affect
-q3map_surfacelight 3000
-//light is emitted
-tessSize 256
-//relatively large triangles
-cull disable
-//no sides are removed
-deformVertexes wave 100sin 5 5 .5 0.02
-fogparms 0.85191420.309723 0.0 128 128
-{
-maptextures/eerie/lavahell.tga
-//base texture artwork
-tcMod turb .25 0.2 1 0.02
-//texture is subjected to turbulence
-tcMod scroll 0.1 0.1
-//the turbulence is scrolled
-}
-}
-
- -

5.2 qer_nocarve

-A brush marked with this instruction will not be affected by CSG subtract functions. It is especially useful for water and fog textures. - -

5.3 qer_trans <value>

-This parameter defines the percentage of transparency that a brush will have when seen in the editor (no effect on game -rendering a tall). It can have a positive value between 0 and 1. The higher the value, the less transparent the texture. -Example: qer_trans 0.2 means the brush is 20% opaque and nearly invisible. - -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/entries deleted file mode 100644 index d4bf06af..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/ch05 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg5_1.htm -file - - - - -2012-04-01T16:51:52.350012Z -abfc75962bf328819b335840b1f36feb -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -32924 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/prop-base/pg5_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/prop-base/pg5_1.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/prop-base/pg5_1.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base deleted file mode 100644 index c6748c1d..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base +++ /dev/null @@ -1,483 +0,0 @@ - - -Quake III Arena Shader Manual: Stage Specific Keywords - - - -

Q3Radiant Shader Manual

-
-

6 Stage Specific Keywords

-Stage specifications only affect rendering. Changing any keywords or values within a stage will usually take effect as soon -as a vid_restart is executed. Q3MAP ignores stage specific keywords entirely. - -

A stage can specify a texture map, a color function, an alpha function, a texture coordinate function, a blend function, and a few other rasterization options. - -

6.1 Texture map specification

-
6.1.1 map <texturepath/texturename>
-Specifies the source texture map (a 24 or 32-bit TGA file) used for this stage. The texture may or may not contain alpha -channel information. The special keywords $lightmap and $whiteimage may be substituted in lieu of an actual -texture map name. In those cases, the texture named in the first line of the shader becomes the texture that supplies the light mapping data for the process. - -

$lightmap
-This is the overall lightmap for the game world. It is calculated during the Q3MAP process. It is the initial color -data found in the framebuffer. Note: due to the use of overbright bits in light calculation, the keyword rgbGen -identity must accompany all $lightmap instructions. - -

$whiteimage
-This is used for specular lighting on MD3 models. This is a white image generated internally by the game. This image can -be used in lieu of $lightmap or an actual texture map if, for example, you wish for the vertex colors to come -through unaltered. - -

6.1.2 Clampmap <texturepath>
-Dictates that this stage should clamp texture coordinates instead of wrapping them. During a stretch function, the area, -which the texture must cover during a wave cycle, enlarges and decreases. Instead of repeating a texture multiple times -during enlargement (or seeing only a portion of the texture during shrinking) the texture dimensions increase or contract accordingly. This is only relevant when using something like deformTexCoordParms to stretch/compress texture coordinates for a specific special effect. Remember that the Quake III Arena engine normalizes all texture coordinates (regardless of actual texture size) into a scale of 0.0 to1.0. - -

Proper Alignment: When using clampTexCoords make sure the texture is properly aligned on the brush. The -clampTexCoords function keeps the image from tiling. However, the editor doesn't represent this properly and shows a tiled image. Therefore, what appears to be the correct position may be offset. This is very apparent onanything with a tcMod rotate and clampTexCoords function. - -

AvoidingDistortion: When seen at a given distance (which can vary, depending onhardware and the size of the texture), the compression phase of a stretchfunction will cause a "cross"-like visual artifact to form on the modified texture due to the way that textures are reduced. This occurs because the texture undergoing modification lacks sufficient "empty space" around the displayed (non-black) part of the texture (see figure 2a). To compensate for this, make the non-zero portion of the texture substantially smaller (50% of maximum stretched size -- see figure 2b)than the dimensions of the texture. Then, write a scaling function (tcScale) into the appropriate shader phase, to enlarge the image to the desired proportion. - -

The shaders for the bouncy pads (in the sfx.shader file) show the stretch function in use, including the scaling of the -stretched texture: - -

Example: UsingclampTexCoords to control a stretching texture - -

-textures/sfx/metalbridge06_bounce
-{
-	//q3map_surfacelight 2000
-	surfaceparm nodamage
-	q3map_lightimage textures/sfx/jumppadsmall.tga
-	q3map_surfacelight 400
-	{
-		map textures/sfx/metalbridge06_bounce.tga
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendfunc gl_dst_color gl_zero
-	}
-	{
-		map textures/sfx/bouncepad01b_layer1.tga
-		blendfunc gl_one gl_one
-		rgbGen wave sin .5 .5 0 1.5
-	}
-	{
-		clampmap textures/sfx/jumppadsmall.tga
-		blendfunc gl_one gl_one
-		tcMod stretch sin 1.2 .8 0 1.5
-		rgbGen wave square .5 .5 .25 1.5
-	}
-	// END
-}
-
- -

- -

6.1.3 AnimMap <frequency> <texture1> … <texture8>
-The surfaces in the game can be animated by displaying asequence of 1 to 8 frames (separate texture maps). These animations -are affected by other keyword effects in the same and later shader stages. - -

<Frequency>: the number of times that the animation cycle will repeat within a one second time period. The -larger the value, the more repeats within a second. Animations that should last for more than a second need to be expressed as decimal values. - -
<texture1> …<texture8>: the texture path/texture name for each animation frame must be -explicitly listed. Up to eight frames (eight separate .tga files) can be used to make an animated sequence. Each frame is -displayed for an equal subdivision of the frequency value. - -

Example: AnimMap 0.25 animMap 10textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tgatextures/sfx/b_flame4.tga would be a 4 frame animated sequence, calling each frame in sequence over a cycle length of 4 seconds. Each frame would be displayed for 1 second before the next one is displayed. The cycle repeats after the last frame in sequence is shown. - -

Design Notes: To make a texture image appear for an unequal (longer) amount of time (compared to other frames), repeat that frame more than once in the sequence.
- -

textures/sfx/flameanim_blue
-{
-
-	//	*************************************************
-	//	*	Blue Flame				*
-	//	*	July 20, 1999 Surface Light 1800 	*
-	//	*	Please Comment Changes			*
-	//	*************************************************
-	qer_editorimage textures/sfx/b_flame7.tga
-	q3map_lightimage textures/sfx/b_flame7.tga
-	surfaceparm trans
-	surfaceparm nomarks
-	surfaceparm nolightmap
-	cull none
-	q3map_surfacelight 1800
-	// texture changed to blue flame.... PAJ
-	{
-		animMap 10 textures/sfx/b_flame1.tgatextures/sfx/b_flame2.tga
-textures/sfx/b_flame3.tga textures/sfx/b_flame4.tgatextures/sfx/b_flame5.tga
-textures/sfx/b_flame6.tga textures/sfx/b_flame7.tgatextures/sfx/b_flame8.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave inverseSawtooth 0 1 0 10
-
-	}
-	{
-		animMap 10 textures/sfx/b_flame2.tgatextures/sfx/b_flame3.tga
-textures/sfx/b_flame4.tga textures/sfx/b_flame5.tgatextures/sfx/b_flame6.tga
-textures/sfx/b_flame7.tga textures/sfx/b_flame8.tgatextures/sfx/b_flame1.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sawtooth 0 1 0 10
-	}
-	{
-		map textures/sfx/b_flameball.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sin .6 .2 0 .6
-	}
-}
-
- -

6.2 Blend Functions

-Blend functions are the keyword commands that tell the Quake III Arena graphic engine's renderer how graphic layers are to be mixed together. - -

6.2.1 Simplified blend functions:
-The most common blend functions are set up here as simple commands, and should be used unless you really know what you are -doing. - -

6.2.1.1 blendfunc add -
This is a shorthand command for blendfunc gl_one gl_one. Effects like fire and energy are additive. - -

6.2.1.2 blendfunc filter -
This is a shorthand command that can be substituted for either blendfunc gl_dst_color gl_zero or blendfunc gl_zero gl_src_color. A filter will always result in darker pixels than what is behind it, but it can also remove color selectively. Lightmaps are filters. - -

6.2.1.3 blendfunc blend -
Shorthand for blendfunc gl_src_alphagl_one_minus_src_alpha. This is conventional transparency, where part of the background is mixed with part of the texture. - -

6.2.2 Explicit blend functions:
-Getting a handle on this concept is absolutely key to understanding all shader manipulation of graphics. - -

BlendFunc or "Blend Function" is the equation at the core of processing shader graphics. The formula reads as follows: - -

[Source *<srcBlend>] + [Destination * -<dstBlend>] - -

Source is usually the RGB color data in a texture TGA file (remember it's all numbers) modified by any rgbgen and alphagen. In the shader, the source is generally identified by command MAP, followed by the name of the image. - -

Destination is the color data currently existing in the frame buffer. - -

Rather than think of the entire texture as a whole, it maybe easier to think of the number values that correspond to a single pixel, because that is essentially what the computer is processing … one pixel of the bit map at a time. - -

The process for calculating the final look of a texture in place in the game world begins with the precalculated lightmap for the area where the texture will be located. This data is in the frame buffer. That is to say, it is the initial data in the Destination. In an unmanipulated texture (i.e. one without a special shader script), color information from the texture is combined with the lightmap. In a shader-modified texture, the $lightmap stage must be present for the lightmap to be included in the calculation of the final texture appearance. - -

Each pass or "stage" of blending is combined (in a cumulative manner) with the color data passed onto it by the -previous stage. How that data combines together depends on the values chosen for the Source Blends and Destination Blends at each stage. Remember it's numbers that are being mathematically combined together that are ultimately interpreted as colors. - -

A general rule is that any Source Blend other than GL_ONE (or GL_SRC_ALPHA where the alpha channel is entirely white) will cause the Source to become darker. - -

6.2.3 Source Blend <srcBlend>
-The following values are valid for the Source Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Source, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Source, all RGB data in the Source becomes Zero (essentially black). - -
GL_DST_COLOR This is the value of color data currently in the Destination (frame buffer). The value of that information depends on the information supplied by previous stages. - -
GL_ONE_MINUS_DST_COLOR This is nearly the same as GL_DST_COLOR except that the value for each component color -is inverted by subtracting it from one. (,i.e. R = 1.0 - DST.R, G = 1.0 - DST.G, B = 1.0 - DST.B, etc.) - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (for a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one.(i.e. A=1.0 - SRC.A) - -

6.2.4 Destination Blend <dstBlend>
-The following values are valid for the Destination Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Destination, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Destination,all RGB data in the Destinationbecomes Zero (essentially black). - -
GL_SRC_COLOR This is the value of color data currently in the Source (which is the texture being manipulated here). - -
GL_ONE_MINUS_SRC_COLOR This is the value of color data currently in Source, but subtracted from one(i.e. -inverted). - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (four a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A). - -

Doing the Math: The Final Result - -
The product of the Source side of the equation is added to the product of the Destination side of the equation. The sum is then placed into the frame buffer to become the Destination information for the next stage. Ultimately, the equation creates a modified color value that is used by other functions to define what happens in the texture when it is displayed in the game world. - -

6.2.5 Default Blend Function
-If no blendFunc is specified then no blending will take place. A warning is generated if any stage after the first stage does not have a blendFunc specified. - -

6.2.6 Technical Information/Limitations Regarding Blend Modes:
-The Riva 128 graphics card supports ONLY the following blendmodes: - -

GL_ONE, GL_ONE -
GL_DST_COLOR, GL_ZERO - -
GL_ZERO, GL_SRC_COLOR - -
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA - -
GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA - -

Cards running in 16 bit color cannot use any GL_DST_ALPHA blends. - -

6.3 rgbGen <func>

-There are two color sources for any given shader, the texture file and the vertex colors. Output at any given time will be equal to TEXTURE multiplied by VERTEXCOLOR. Most of the time VERTEXCOLORwill default to white (which is a normalized value of 1.0), so output will be TEXTURE (this usually lands in the Sourceside of the shader equation). Sometimes you do the opposite and use TEXTURE = WHITE, but this is only commonly used when doing specular lighting on entities (i.e. shaders that level designers will probably never create - -

The most common reason to use rgbGen is to pulsate something. This means that the VERTEXCOLOR will oscillate between two -values, and that value will be multiplied (darkening) the texture. - -

If no rgbGen is specified, either "identityLighting" or"identity" will be selected, depending on which blend modes are -used. - -

Valid <func> parameters are wave, identity, identityLighting, entity, oneMinusEntity, fromVertex, and -lightingDiffuse. - -

6.3.1 RgbGen identityLighting
-Colors will be (1.0,1.0,1.0) if running without overbright bits (NT, linux, windowed modes), or (0.5, 0.5, 0.5) if running -with overbright. Overbright allows a greater color range at the expense of a loss of precision. Additive and blended stages -will get this by default. - -

6.3.2 rgbGen identity
-Colors are assumed to be all white (1.0,1.0,1.0). All filters stages (lightmaps, etc) will get this by default. - -

6.3.3 rgbGen wave <func> <base> <amp><phase> <freq>
-Colors are generated using the specified waveform. An affected texture with become darker and lighter, but will not change -hue. Hue stays constant. Note that the rgb values for color will not go below 0 (black) orabove 1 (white). Valid waveforms are sin, triangle, square, sawtooth and inversesawtooth. - -

<func> Waveforms and their effects: - -
Sin: color flows smoothly through changes. - -
Triangle: color changes at a constant rate and spends noappreciable time at peaks and valleys. - -
Square: color alternates instantly between its peak and valley values. - -
Sawtooth: With a positive frequency value, the color changes at aconstant rate to the peak then instantly drops to its valley value. - -
Inversesawtooth: An inverse sawtooth wave will reverse this, making the ascent immediate (like a square wave) and the decay fall off like a triangle wave. - -
<base> Baseline value. The initial RGB formula of a color (normalilzed). - -
<amp> Amplitude. This is the degree of change from the baseline value. In some cases you will want -values outside the 0.0 to 1.0 range, but it will induce clamping (holding at the maximum or minimum value for a time period) -instead of continuous change. - -
<phase> See the explanation for phase under the waveforms heading of Key Concepts. - -
<freq> Frequency. This is a value (NOT normalized) that indicates peaks per second. - -

6.3.4 RgbGen entity
-Colors are grabbed from the entity's modulate field. This isused for things like explosions. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.5 rgbGen oneMinusEntity
-Colors are grabbed from 1.0 minus the entity's modulate field. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.6 rgbGen Vertex
-Colors are filled in directly by the data from the map or model files. - -

Design Note: rgbGen vertex should be used when you want the RGB values to be computed for a static model (i.e. mapobject) in the world using precomputed static lighting from Q3BSP. This would be used on things like -the gargoyles, the portal frame, skulls, and other decorative MD3s put into the Quake III Arena world.
- -

6.3.7 rgbGen oneMinusVertex
-As rgbGen vertex, but inverted. - -

Design Note: This keyword would probably not be used by a level designer
- -

6.3.8 rgbGen lightingDiffuse
-Colors are computed using a standard diffuse lighting equation. It uses the vertex normals to illuminate the object correctly. - -

Design Note: -rgbGen lightingDiffuse is used when you want the RGB values to be computed for a dynamic model (i.e. non-map object) in the world using regular in-game lighting. For example, you would specify on shaders for items, characters, weapons, etc.
- -

6.4 AlphaGen <func>

-The alpha channel can be specified like the rgbchannels. If not specified, it defaults to 1.0. - -

6.4.1 AlphaGen portal
-This rendering stage keyword is used in conjunction with the surface parameter keyword portal. The function -accomplishes the "fade" that causes the scene in the portal to fade from view. Specifically, it means "Generate alpha values -based on the distance from the viewer to the portal." Use alphaGen portal on the last rendering pass. - -

6.5 tcGen <coordinate source>

-Specifies how texture coordinates are generated and where they come from. Valid functions are base,lightmap and environment. - -

<base> = base texture coordinates from the original art. -
<lightmap> = lightmap texture coordinates -
<environment> = Make this object environment mapped. - -

6.5.1 tcGen vector (<sx> <sy> <sz>) -(<tx><ty> <tz>)
-New texcoord generation by world projection. This allows you to project a texture onto a surface in a fixed way, regardless of its orientation. - -

S coordinates correspond to the "x" coordinates on the texture itself. - -
T coordinates correspond to the "y" coordinates on the texture itself. - -

The measurements are in game units. - -

- -

Example: tcGen vector (0.01 0 0) (0 0.01 0) -
This would project a texture with a repeat every 100 units across the X/Y plane. - -

6.6 tcMod <func> <…>

-Specifies how texture coordinates are modified after they are generated. The valid functions for tcMod are rotate, -scale,scroll, stretch and transform. Transform is a function generally reserved for use by programmers who suggest that designers leave it alone. When using multiple tcMod functions during a stage, place the scroll command last in order, because it performs a mod operation to save precision, and that can disturb other operations. Texture coordinates are modified in the order in which tcMods are specified. In otherwords, if you see: - -

tcMod scale 0.5 0.5 -
tcMod scroll 1 1 - -

Then the texture coordinates will be scaled then scrolled. - -

6.6.1 tcMod rotate <degrees per per second>
-This keyword causes the texture coordinates to rotate. The value is expressed in degrees rotated each second. A positive value means clockwise rotation. A negative value means counterclockwise rotation. For example "tcMod rotate 5" would -rotate texture coordinates 5 degrees each second in a clockwise direction. The texture rotates around the center -point of the texture map, so you are rotating a texture with a single repetition, be careful to center it on the brush (unless off-center rotation is desired). - -

6.6.2 tcMod scale <sScale> <tScale>
-Resizes (enlarges or shrinks) the texture coordinates bymultiplying them against the given factors of <sScale> -and <tScale). The values "s" and "t"conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The values for sScale and tScale are NOT normalized. This means that a value greater than 1.0 will increase the size of thetexture. A positive value less than one will reduce the texture to a fraction of its size and cause it to repeat within the same area as the original texture (Note: see clampTexCoords for ways to control this).; - -

Example: tcMod scale 0.5 2 would cause the texture to repeat twice along its width, but expand to twice its height (in which case half of the texture would be seen in the same area as the original) - -

6.6.3 tcMod scroll <sSpeed> <tSpeed>
-Scrolls the texture coordinates with the given speeds. The values "s" and "t" conform to the "x" and "y" values -(respectively) as they are found in the original textureTGA. The scroll speed is measured in "textures" per second. A "texture" is the dimension of the texture being modified and includes any previous shader modifications to the original TGA). A negative s value would scroll the texture to the left. A negative t value would scroll the texture down. - -

Example: tcMod scroll 0.5 -0.5 moves the texture down and right (relative to the TGA files original coordinates) at the rate of a half texture each second of travel. - -

This should be the LAST tcMod in a stage. Otherwise there maybe popping or snapping visual effects in some shaders. - -

6.6.4 tcMod stretch <func> <base> -<amplitude><phase> <frequency>
- -Stretches the texture coordinates with the given function. Stretching is defined as stretching the texture coordinate away from the center of the polygon and then compressing it towards the center of the polygon. - -

<base>: A base value of one is the original dimension of the texture when it reaches the stretch stage. -Inserting other values positive or negative in this variable will produce unknown effects. - -
<amplitude>: This is the measurement of distance the texture will stretch from the base size. It is -measured, like scroll, in textures. A value of 1 here will double the size of the texture at its peak. - -
<phase>: See the explanation for phase under the deform vertexes keyword. - -
<frequency>: this is wave peaks per second. - -
Wave Functions <func> - -
Sin wave: the texture expands smoothly to its peak dimension and then shrinks smoothly to its valley dimension in a flowing manner. - -
Triangle wave: The textures stretch at a constant rate and spend no appreciable time at the peak or valley points. - -
Square wave: The texture is shown at its peak for the duration of the frequency and then at its valley for the -duration of the frequency. - -
Sawtooth: the texture stretches like a triangle wave until it reaches a peak, then instantly drops to the valley, as in a square wave. - -
Inversesawtooth: this is the reverse of the sawtooth wave. - -

6.6.5 tcMod <transform> <m00> <m01> <m10><m11> <t0> <t1>
-Transforms each texture coordinate as follows: - -

S' = s * m00 + t * m10 + t0 - -
T' = s * m01 + t * m11 + t1 - -

This is for use by programmers. - -

6.6.6 tcMod turb <base> <amplitude> -<phase><freq>
- -

Applies turbulence to the texture coordinate. Turbulence is a back and forth churning and swirling effect on the texture. - -

The parameters for this shader are defined as follows: - - -

<base> Currently undefined. - -
<amplitude> This is essentially the intensity of the disturbance or twisting and squiggling of the texture. - -
<phase> See the explanation for phase under the deformvertexes keyword. - -
<freq> Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of one -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. - -

6.7 depthFunc <func>

-This controls the depth comparison function used while rendering. The default is "lequal" (Less than or equal to) -where any surface that is at the same depth or closer of an existing surface is drawn. This is used for textures with -transparency or translucency. Under some circumstances you may wish to use "equal", e.g. for light-mapped grates that are alpha tested (it is also used for mirrors). - -

6.8 depthWrite

-By default, writes to the depth buffer when depthFunc passes will happen for opaque surfaces and not for translucent surfaces. Blended surfaces can have the depth writes forced with this function. - -

6.9 Detail

-This feature was not used in Quake III Arena maps, but should still function. -Designates this stage as a detail texture stage, which means that if the c_var, r_detailtextures, is set to 0 then this stage will be ignored (detail will not be displayed). This keyword, by itself, does not affect rendering at all. If you do put in a detail texture, it has to conform to very specific rules. Specifically, the blendFunc: - -

blendFuncGL_DST_COLOR GL_SRC_COLOR - -

This is also the simple blend function: blendfuncfilter - -

And the average intensity of the detail texture itself must be around 127. - -

Detail is used to blend fine pixel detail back into a base texture whose scale has been increased significantly. When detail iswritten into a set of stage instructions, it allows the stage to be disabled by the c_var console command setting "r_detailtextures 0". - -

A texture whose scale has been increased beyond a 1:1 ratio tends not to have very high frequency content. In other words, one texel can cover a lot of real estate. Frequency is also known as "detail." Lack of detail can appear acceptable if the player never has the opportunity to see the texture at close range. But seen close up, such textures look glaringly wrong within the sharp detail of the Quake III Arena environment. A detail texture solves this problem by taking a noisy "detail" pattern (a tiling texture that appears to have a great deal of surface roughness) and applying it to the base texture at a very densely packed scale (that is, reduced from its normal size). This is done programmatically in the -shader, and does not require modification of the base texture. Note that if the detail texture is the same size and scale as the base texture that you may as well just add the detail directly to the base texture. The theory is that the detail texture's scale will be so high compared to the base texture (e.g.; 9 detail texels fitting into 1 base texel) that it is literally impossible to fit that detail into the base texture directly. - -

For this to work, the rules are as follows: - -

    - -
  1. the lightmap must be rendered first. This is because the subsequent detail texture will be modifying the lightmap in the framebuffer directly; -
  2. the detail texture must be rendered next since it modifies the lightmap in the framebuffer; -
  3. the base texture must be rendered last; -
  4. the detail texture MUST have a mean intensity around 127-129. If it does not then it will modify the displayed texture's perceived brightness in the world; -
  5. the detail shader stage MUSThave the "detail" keyword or it will not be disabled if the user uses the "r_detailtextures 0" setting; -
  6. the detail stage MUST use "blendFunc GL_DST_COLOR GL_SRC_COLOR". Any other BlendFunc will cause mismatches in brightness between detail and non-detail views.; -
  7. the detail stage should scale its textures by some amount (usually between 3 and 12) using "tcMod" to control density. This roughly corresponds to coarseness. A very large number, such as 12, will give very fine detail, however that detail will disappear VERY quickly as the viewer moves away fromthe wall since it will be MIP mapped away. A very small number, e.g. 3, gives diminishing returns since not enough is brought in when the user gets very close. I'm currently using values between 6 and 9.5. You should use non-integral numbers as much as possible to avoid seeing repeating patterns. -
  8. detail textures add one pass of overdraw, so there is a definite performance hit . -
  9. detail textures can be shared, so designers may wish to define only a very small handful of detail textures for common surfaces such as rocks, etc.
- -

An example (non-existent) detailshader is as follows: -

Example: Texture with Detail - -

-textures/bwhtest/foo
-{
-// draw the lightmap first
-{
-map $lightmap
-rgbGen identity
-}
-// modify the lightmap in the framebuffer by
-// a highly compressed detail texture
-{
-map textures/details/detail01.tga
-blendFunc GL_DST_COLOR GL_SRC_COLOR
-// YOU MUST USE THIS!!
-detail
-// for the detail to be disabled, this must be present
-tcMod scale 9.1 9.2
-}
-// now slap on the base texture
-{
-map textures/castle/blocks11b.tga
-blendFunc filter
-}
-}
-
- -

6.10 alphaFunc <func>

-Determines the alpha test function used when rendering this map. Valid values are GT0, LT128, and GE128. These -correspond to "GREATER THAN 0", "LESS THAN 128", and "GREATER THAN OR EQUAL TO 128". This function is used when determining if a pixel should be written to the framebuffer. For example, if GT0 is specified, the only the portions of the texture map with corresponding alpha values greater than zero will be written to the framebuffer. By default alpha testing is disabled. - -

Both alpha testing and normal alpha blending can be used to get textures that have see-through parts. The difference is that alphaFunc is an all-or-nothing test, while blending smoothly blends between opaque and translucent at pixel edges. Alpha test can also be used with depthwrite, allowing other effects to be conditionally layered on top of just the opaque pixels by setting depthFunc to equal. - -

Back | Home | Next - - - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm deleted file mode 100644 index c6748c1d..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm +++ /dev/null @@ -1,483 +0,0 @@ - - -Quake III Arena Shader Manual: Stage Specific Keywords - - - -

Q3Radiant Shader Manual

-
-

6 Stage Specific Keywords

-Stage specifications only affect rendering. Changing any keywords or values within a stage will usually take effect as soon -as a vid_restart is executed. Q3MAP ignores stage specific keywords entirely. - -

A stage can specify a texture map, a color function, an alpha function, a texture coordinate function, a blend function, and a few other rasterization options. - -

6.1 Texture map specification

-
6.1.1 map <texturepath/texturename>
-Specifies the source texture map (a 24 or 32-bit TGA file) used for this stage. The texture may or may not contain alpha -channel information. The special keywords $lightmap and $whiteimage may be substituted in lieu of an actual -texture map name. In those cases, the texture named in the first line of the shader becomes the texture that supplies the light mapping data for the process. - -

$lightmap
-This is the overall lightmap for the game world. It is calculated during the Q3MAP process. It is the initial color -data found in the framebuffer. Note: due to the use of overbright bits in light calculation, the keyword rgbGen -identity must accompany all $lightmap instructions. - -

$whiteimage
-This is used for specular lighting on MD3 models. This is a white image generated internally by the game. This image can -be used in lieu of $lightmap or an actual texture map if, for example, you wish for the vertex colors to come -through unaltered. - -

6.1.2 Clampmap <texturepath>
-Dictates that this stage should clamp texture coordinates instead of wrapping them. During a stretch function, the area, -which the texture must cover during a wave cycle, enlarges and decreases. Instead of repeating a texture multiple times -during enlargement (or seeing only a portion of the texture during shrinking) the texture dimensions increase or contract accordingly. This is only relevant when using something like deformTexCoordParms to stretch/compress texture coordinates for a specific special effect. Remember that the Quake III Arena engine normalizes all texture coordinates (regardless of actual texture size) into a scale of 0.0 to1.0. - -

Proper Alignment: When using clampTexCoords make sure the texture is properly aligned on the brush. The -clampTexCoords function keeps the image from tiling. However, the editor doesn't represent this properly and shows a tiled image. Therefore, what appears to be the correct position may be offset. This is very apparent onanything with a tcMod rotate and clampTexCoords function. - -

AvoidingDistortion: When seen at a given distance (which can vary, depending onhardware and the size of the texture), the compression phase of a stretchfunction will cause a "cross"-like visual artifact to form on the modified texture due to the way that textures are reduced. This occurs because the texture undergoing modification lacks sufficient "empty space" around the displayed (non-black) part of the texture (see figure 2a). To compensate for this, make the non-zero portion of the texture substantially smaller (50% of maximum stretched size -- see figure 2b)than the dimensions of the texture. Then, write a scaling function (tcScale) into the appropriate shader phase, to enlarge the image to the desired proportion. - -

The shaders for the bouncy pads (in the sfx.shader file) show the stretch function in use, including the scaling of the -stretched texture: - -

Example: UsingclampTexCoords to control a stretching texture - -

-textures/sfx/metalbridge06_bounce
-{
-	//q3map_surfacelight 2000
-	surfaceparm nodamage
-	q3map_lightimage textures/sfx/jumppadsmall.tga
-	q3map_surfacelight 400
-	{
-		map textures/sfx/metalbridge06_bounce.tga
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendfunc gl_dst_color gl_zero
-	}
-	{
-		map textures/sfx/bouncepad01b_layer1.tga
-		blendfunc gl_one gl_one
-		rgbGen wave sin .5 .5 0 1.5
-	}
-	{
-		clampmap textures/sfx/jumppadsmall.tga
-		blendfunc gl_one gl_one
-		tcMod stretch sin 1.2 .8 0 1.5
-		rgbGen wave square .5 .5 .25 1.5
-	}
-	// END
-}
-
- -

- -

6.1.3 AnimMap <frequency> <texture1> … <texture8>
-The surfaces in the game can be animated by displaying asequence of 1 to 8 frames (separate texture maps). These animations -are affected by other keyword effects in the same and later shader stages. - -

<Frequency>: the number of times that the animation cycle will repeat within a one second time period. The -larger the value, the more repeats within a second. Animations that should last for more than a second need to be expressed as decimal values. - -
<texture1> …<texture8>: the texture path/texture name for each animation frame must be -explicitly listed. Up to eight frames (eight separate .tga files) can be used to make an animated sequence. Each frame is -displayed for an equal subdivision of the frequency value. - -

Example: AnimMap 0.25 animMap 10textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tgatextures/sfx/b_flame4.tga would be a 4 frame animated sequence, calling each frame in sequence over a cycle length of 4 seconds. Each frame would be displayed for 1 second before the next one is displayed. The cycle repeats after the last frame in sequence is shown. - -

Design Notes: To make a texture image appear for an unequal (longer) amount of time (compared to other frames), repeat that frame more than once in the sequence.
- -

textures/sfx/flameanim_blue
-{
-
-	//	*************************************************
-	//	*	Blue Flame				*
-	//	*	July 20, 1999 Surface Light 1800 	*
-	//	*	Please Comment Changes			*
-	//	*************************************************
-	qer_editorimage textures/sfx/b_flame7.tga
-	q3map_lightimage textures/sfx/b_flame7.tga
-	surfaceparm trans
-	surfaceparm nomarks
-	surfaceparm nolightmap
-	cull none
-	q3map_surfacelight 1800
-	// texture changed to blue flame.... PAJ
-	{
-		animMap 10 textures/sfx/b_flame1.tgatextures/sfx/b_flame2.tga
-textures/sfx/b_flame3.tga textures/sfx/b_flame4.tgatextures/sfx/b_flame5.tga
-textures/sfx/b_flame6.tga textures/sfx/b_flame7.tgatextures/sfx/b_flame8.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave inverseSawtooth 0 1 0 10
-
-	}
-	{
-		animMap 10 textures/sfx/b_flame2.tgatextures/sfx/b_flame3.tga
-textures/sfx/b_flame4.tga textures/sfx/b_flame5.tgatextures/sfx/b_flame6.tga
-textures/sfx/b_flame7.tga textures/sfx/b_flame8.tgatextures/sfx/b_flame1.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sawtooth 0 1 0 10
-	}
-	{
-		map textures/sfx/b_flameball.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sin .6 .2 0 .6
-	}
-}
-
- -

6.2 Blend Functions

-Blend functions are the keyword commands that tell the Quake III Arena graphic engine's renderer how graphic layers are to be mixed together. - -

6.2.1 Simplified blend functions:
-The most common blend functions are set up here as simple commands, and should be used unless you really know what you are -doing. - -

6.2.1.1 blendfunc add -
This is a shorthand command for blendfunc gl_one gl_one. Effects like fire and energy are additive. - -

6.2.1.2 blendfunc filter -
This is a shorthand command that can be substituted for either blendfunc gl_dst_color gl_zero or blendfunc gl_zero gl_src_color. A filter will always result in darker pixels than what is behind it, but it can also remove color selectively. Lightmaps are filters. - -

6.2.1.3 blendfunc blend -
Shorthand for blendfunc gl_src_alphagl_one_minus_src_alpha. This is conventional transparency, where part of the background is mixed with part of the texture. - -

6.2.2 Explicit blend functions:
-Getting a handle on this concept is absolutely key to understanding all shader manipulation of graphics. - -

BlendFunc or "Blend Function" is the equation at the core of processing shader graphics. The formula reads as follows: - -

[Source *<srcBlend>] + [Destination * -<dstBlend>] - -

Source is usually the RGB color data in a texture TGA file (remember it's all numbers) modified by any rgbgen and alphagen. In the shader, the source is generally identified by command MAP, followed by the name of the image. - -

Destination is the color data currently existing in the frame buffer. - -

Rather than think of the entire texture as a whole, it maybe easier to think of the number values that correspond to a single pixel, because that is essentially what the computer is processing … one pixel of the bit map at a time. - -

The process for calculating the final look of a texture in place in the game world begins with the precalculated lightmap for the area where the texture will be located. This data is in the frame buffer. That is to say, it is the initial data in the Destination. In an unmanipulated texture (i.e. one without a special shader script), color information from the texture is combined with the lightmap. In a shader-modified texture, the $lightmap stage must be present for the lightmap to be included in the calculation of the final texture appearance. - -

Each pass or "stage" of blending is combined (in a cumulative manner) with the color data passed onto it by the -previous stage. How that data combines together depends on the values chosen for the Source Blends and Destination Blends at each stage. Remember it's numbers that are being mathematically combined together that are ultimately interpreted as colors. - -

A general rule is that any Source Blend other than GL_ONE (or GL_SRC_ALPHA where the alpha channel is entirely white) will cause the Source to become darker. - -

6.2.3 Source Blend <srcBlend>
-The following values are valid for the Source Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Source, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Source, all RGB data in the Source becomes Zero (essentially black). - -
GL_DST_COLOR This is the value of color data currently in the Destination (frame buffer). The value of that information depends on the information supplied by previous stages. - -
GL_ONE_MINUS_DST_COLOR This is nearly the same as GL_DST_COLOR except that the value for each component color -is inverted by subtracting it from one. (,i.e. R = 1.0 - DST.R, G = 1.0 - DST.G, B = 1.0 - DST.B, etc.) - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (for a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one.(i.e. A=1.0 - SRC.A) - -

6.2.4 Destination Blend <dstBlend>
-The following values are valid for the Destination Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Destination, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Destination,all RGB data in the Destinationbecomes Zero (essentially black). - -
GL_SRC_COLOR This is the value of color data currently in the Source (which is the texture being manipulated here). - -
GL_ONE_MINUS_SRC_COLOR This is the value of color data currently in Source, but subtracted from one(i.e. -inverted). - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (four a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A). - -

Doing the Math: The Final Result - -
The product of the Source side of the equation is added to the product of the Destination side of the equation. The sum is then placed into the frame buffer to become the Destination information for the next stage. Ultimately, the equation creates a modified color value that is used by other functions to define what happens in the texture when it is displayed in the game world. - -

6.2.5 Default Blend Function
-If no blendFunc is specified then no blending will take place. A warning is generated if any stage after the first stage does not have a blendFunc specified. - -

6.2.6 Technical Information/Limitations Regarding Blend Modes:
-The Riva 128 graphics card supports ONLY the following blendmodes: - -

GL_ONE, GL_ONE -
GL_DST_COLOR, GL_ZERO - -
GL_ZERO, GL_SRC_COLOR - -
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA - -
GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA - -

Cards running in 16 bit color cannot use any GL_DST_ALPHA blends. - -

6.3 rgbGen <func>

-There are two color sources for any given shader, the texture file and the vertex colors. Output at any given time will be equal to TEXTURE multiplied by VERTEXCOLOR. Most of the time VERTEXCOLORwill default to white (which is a normalized value of 1.0), so output will be TEXTURE (this usually lands in the Sourceside of the shader equation). Sometimes you do the opposite and use TEXTURE = WHITE, but this is only commonly used when doing specular lighting on entities (i.e. shaders that level designers will probably never create - -

The most common reason to use rgbGen is to pulsate something. This means that the VERTEXCOLOR will oscillate between two -values, and that value will be multiplied (darkening) the texture. - -

If no rgbGen is specified, either "identityLighting" or"identity" will be selected, depending on which blend modes are -used. - -

Valid <func> parameters are wave, identity, identityLighting, entity, oneMinusEntity, fromVertex, and -lightingDiffuse. - -

6.3.1 RgbGen identityLighting
-Colors will be (1.0,1.0,1.0) if running without overbright bits (NT, linux, windowed modes), or (0.5, 0.5, 0.5) if running -with overbright. Overbright allows a greater color range at the expense of a loss of precision. Additive and blended stages -will get this by default. - -

6.3.2 rgbGen identity
-Colors are assumed to be all white (1.0,1.0,1.0). All filters stages (lightmaps, etc) will get this by default. - -

6.3.3 rgbGen wave <func> <base> <amp><phase> <freq>
-Colors are generated using the specified waveform. An affected texture with become darker and lighter, but will not change -hue. Hue stays constant. Note that the rgb values for color will not go below 0 (black) orabove 1 (white). Valid waveforms are sin, triangle, square, sawtooth and inversesawtooth. - -

<func> Waveforms and their effects: - -
Sin: color flows smoothly through changes. - -
Triangle: color changes at a constant rate and spends noappreciable time at peaks and valleys. - -
Square: color alternates instantly between its peak and valley values. - -
Sawtooth: With a positive frequency value, the color changes at aconstant rate to the peak then instantly drops to its valley value. - -
Inversesawtooth: An inverse sawtooth wave will reverse this, making the ascent immediate (like a square wave) and the decay fall off like a triangle wave. - -
<base> Baseline value. The initial RGB formula of a color (normalilzed). - -
<amp> Amplitude. This is the degree of change from the baseline value. In some cases you will want -values outside the 0.0 to 1.0 range, but it will induce clamping (holding at the maximum or minimum value for a time period) -instead of continuous change. - -
<phase> See the explanation for phase under the waveforms heading of Key Concepts. - -
<freq> Frequency. This is a value (NOT normalized) that indicates peaks per second. - -

6.3.4 RgbGen entity
-Colors are grabbed from the entity's modulate field. This isused for things like explosions. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.5 rgbGen oneMinusEntity
-Colors are grabbed from 1.0 minus the entity's modulate field. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.6 rgbGen Vertex
-Colors are filled in directly by the data from the map or model files. - -

Design Note: rgbGen vertex should be used when you want the RGB values to be computed for a static model (i.e. mapobject) in the world using precomputed static lighting from Q3BSP. This would be used on things like -the gargoyles, the portal frame, skulls, and other decorative MD3s put into the Quake III Arena world.
- -

6.3.7 rgbGen oneMinusVertex
-As rgbGen vertex, but inverted. - -

Design Note: This keyword would probably not be used by a level designer
- -

6.3.8 rgbGen lightingDiffuse
-Colors are computed using a standard diffuse lighting equation. It uses the vertex normals to illuminate the object correctly. - -

Design Note: -rgbGen lightingDiffuse is used when you want the RGB values to be computed for a dynamic model (i.e. non-map object) in the world using regular in-game lighting. For example, you would specify on shaders for items, characters, weapons, etc.
- -

6.4 AlphaGen <func>

-The alpha channel can be specified like the rgbchannels. If not specified, it defaults to 1.0. - -

6.4.1 AlphaGen portal
-This rendering stage keyword is used in conjunction with the surface parameter keyword portal. The function -accomplishes the "fade" that causes the scene in the portal to fade from view. Specifically, it means "Generate alpha values -based on the distance from the viewer to the portal." Use alphaGen portal on the last rendering pass. - -

6.5 tcGen <coordinate source>

-Specifies how texture coordinates are generated and where they come from. Valid functions are base,lightmap and environment. - -

<base> = base texture coordinates from the original art. -
<lightmap> = lightmap texture coordinates -
<environment> = Make this object environment mapped. - -

6.5.1 tcGen vector (<sx> <sy> <sz>) -(<tx><ty> <tz>)
-New texcoord generation by world projection. This allows you to project a texture onto a surface in a fixed way, regardless of its orientation. - -

S coordinates correspond to the "x" coordinates on the texture itself. - -
T coordinates correspond to the "y" coordinates on the texture itself. - -

The measurements are in game units. - -

- -

Example: tcGen vector (0.01 0 0) (0 0.01 0) -
This would project a texture with a repeat every 100 units across the X/Y plane. - -

6.6 tcMod <func> <…>

-Specifies how texture coordinates are modified after they are generated. The valid functions for tcMod are rotate, -scale,scroll, stretch and transform. Transform is a function generally reserved for use by programmers who suggest that designers leave it alone. When using multiple tcMod functions during a stage, place the scroll command last in order, because it performs a mod operation to save precision, and that can disturb other operations. Texture coordinates are modified in the order in which tcMods are specified. In otherwords, if you see: - -

tcMod scale 0.5 0.5 -
tcMod scroll 1 1 - -

Then the texture coordinates will be scaled then scrolled. - -

6.6.1 tcMod rotate <degrees per per second>
-This keyword causes the texture coordinates to rotate. The value is expressed in degrees rotated each second. A positive value means clockwise rotation. A negative value means counterclockwise rotation. For example "tcMod rotate 5" would -rotate texture coordinates 5 degrees each second in a clockwise direction. The texture rotates around the center -point of the texture map, so you are rotating a texture with a single repetition, be careful to center it on the brush (unless off-center rotation is desired). - -

6.6.2 tcMod scale <sScale> <tScale>
-Resizes (enlarges or shrinks) the texture coordinates bymultiplying them against the given factors of <sScale> -and <tScale). The values "s" and "t"conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The values for sScale and tScale are NOT normalized. This means that a value greater than 1.0 will increase the size of thetexture. A positive value less than one will reduce the texture to a fraction of its size and cause it to repeat within the same area as the original texture (Note: see clampTexCoords for ways to control this).; - -

Example: tcMod scale 0.5 2 would cause the texture to repeat twice along its width, but expand to twice its height (in which case half of the texture would be seen in the same area as the original) - -

6.6.3 tcMod scroll <sSpeed> <tSpeed>
-Scrolls the texture coordinates with the given speeds. The values "s" and "t" conform to the "x" and "y" values -(respectively) as they are found in the original textureTGA. The scroll speed is measured in "textures" per second. A "texture" is the dimension of the texture being modified and includes any previous shader modifications to the original TGA). A negative s value would scroll the texture to the left. A negative t value would scroll the texture down. - -

Example: tcMod scroll 0.5 -0.5 moves the texture down and right (relative to the TGA files original coordinates) at the rate of a half texture each second of travel. - -

This should be the LAST tcMod in a stage. Otherwise there maybe popping or snapping visual effects in some shaders. - -

6.6.4 tcMod stretch <func> <base> -<amplitude><phase> <frequency>
- -Stretches the texture coordinates with the given function. Stretching is defined as stretching the texture coordinate away from the center of the polygon and then compressing it towards the center of the polygon. - -

<base>: A base value of one is the original dimension of the texture when it reaches the stretch stage. -Inserting other values positive or negative in this variable will produce unknown effects. - -
<amplitude>: This is the measurement of distance the texture will stretch from the base size. It is -measured, like scroll, in textures. A value of 1 here will double the size of the texture at its peak. - -
<phase>: See the explanation for phase under the deform vertexes keyword. - -
<frequency>: this is wave peaks per second. - -
Wave Functions <func> - -
Sin wave: the texture expands smoothly to its peak dimension and then shrinks smoothly to its valley dimension in a flowing manner. - -
Triangle wave: The textures stretch at a constant rate and spend no appreciable time at the peak or valley points. - -
Square wave: The texture is shown at its peak for the duration of the frequency and then at its valley for the -duration of the frequency. - -
Sawtooth: the texture stretches like a triangle wave until it reaches a peak, then instantly drops to the valley, as in a square wave. - -
Inversesawtooth: this is the reverse of the sawtooth wave. - -

6.6.5 tcMod <transform> <m00> <m01> <m10><m11> <t0> <t1>
-Transforms each texture coordinate as follows: - -

S' = s * m00 + t * m10 + t0 - -
T' = s * m01 + t * m11 + t1 - -

This is for use by programmers. - -

6.6.6 tcMod turb <base> <amplitude> -<phase><freq>
- -

Applies turbulence to the texture coordinate. Turbulence is a back and forth churning and swirling effect on the texture. - -

The parameters for this shader are defined as follows: - - -

<base> Currently undefined. - -
<amplitude> This is essentially the intensity of the disturbance or twisting and squiggling of the texture. - -
<phase> See the explanation for phase under the deformvertexes keyword. - -
<freq> Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of one -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. - -

6.7 depthFunc <func>

-This controls the depth comparison function used while rendering. The default is "lequal" (Less than or equal to) -where any surface that is at the same depth or closer of an existing surface is drawn. This is used for textures with -transparency or translucency. Under some circumstances you may wish to use "equal", e.g. for light-mapped grates that are alpha tested (it is also used for mirrors). - -

6.8 depthWrite

-By default, writes to the depth buffer when depthFunc passes will happen for opaque surfaces and not for translucent surfaces. Blended surfaces can have the depth writes forced with this function. - -

6.9 Detail

-This feature was not used in Quake III Arena maps, but should still function. -Designates this stage as a detail texture stage, which means that if the c_var, r_detailtextures, is set to 0 then this stage will be ignored (detail will not be displayed). This keyword, by itself, does not affect rendering at all. If you do put in a detail texture, it has to conform to very specific rules. Specifically, the blendFunc: - -

blendFuncGL_DST_COLOR GL_SRC_COLOR - -

This is also the simple blend function: blendfuncfilter - -

And the average intensity of the detail texture itself must be around 127. - -

Detail is used to blend fine pixel detail back into a base texture whose scale has been increased significantly. When detail iswritten into a set of stage instructions, it allows the stage to be disabled by the c_var console command setting "r_detailtextures 0". - -

A texture whose scale has been increased beyond a 1:1 ratio tends not to have very high frequency content. In other words, one texel can cover a lot of real estate. Frequency is also known as "detail." Lack of detail can appear acceptable if the player never has the opportunity to see the texture at close range. But seen close up, such textures look glaringly wrong within the sharp detail of the Quake III Arena environment. A detail texture solves this problem by taking a noisy "detail" pattern (a tiling texture that appears to have a great deal of surface roughness) and applying it to the base texture at a very densely packed scale (that is, reduced from its normal size). This is done programmatically in the -shader, and does not require modification of the base texture. Note that if the detail texture is the same size and scale as the base texture that you may as well just add the detail directly to the base texture. The theory is that the detail texture's scale will be so high compared to the base texture (e.g.; 9 detail texels fitting into 1 base texel) that it is literally impossible to fit that detail into the base texture directly. - -

For this to work, the rules are as follows: - -

    - -
  1. the lightmap must be rendered first. This is because the subsequent detail texture will be modifying the lightmap in the framebuffer directly; -
  2. the detail texture must be rendered next since it modifies the lightmap in the framebuffer; -
  3. the base texture must be rendered last; -
  4. the detail texture MUST have a mean intensity around 127-129. If it does not then it will modify the displayed texture's perceived brightness in the world; -
  5. the detail shader stage MUSThave the "detail" keyword or it will not be disabled if the user uses the "r_detailtextures 0" setting; -
  6. the detail stage MUST use "blendFunc GL_DST_COLOR GL_SRC_COLOR". Any other BlendFunc will cause mismatches in brightness between detail and non-detail views.; -
  7. the detail stage should scale its textures by some amount (usually between 3 and 12) using "tcMod" to control density. This roughly corresponds to coarseness. A very large number, such as 12, will give very fine detail, however that detail will disappear VERY quickly as the viewer moves away fromthe wall since it will be MIP mapped away. A very small number, e.g. 3, gives diminishing returns since not enough is brought in when the user gets very close. I'm currently using values between 6 and 9.5. You should use non-integral numbers as much as possible to avoid seeing repeating patterns. -
  8. detail textures add one pass of overdraw, so there is a definite performance hit . -
  9. detail textures can be shared, so designers may wish to define only a very small handful of detail textures for common surfaces such as rocks, etc.
- -

An example (non-existent) detailshader is as follows: -

Example: Texture with Detail - -

-textures/bwhtest/foo
-{
-// draw the lightmap first
-{
-map $lightmap
-rgbGen identity
-}
-// modify the lightmap in the framebuffer by
-// a highly compressed detail texture
-{
-map textures/details/detail01.tga
-blendFunc GL_DST_COLOR GL_SRC_COLOR
-// YOU MUST USE THIS!!
-detail
-// for the detail to be disabled, this must be present
-tcMod scale 9.1 9.2
-}
-// now slap on the base texture
-{
-map textures/castle/blocks11b.tga
-blendFunc filter
-}
-}
-
- -

6.10 alphaFunc <func>

-Determines the alpha test function used when rendering this map. Valid values are GT0, LT128, and GE128. These -correspond to "GREATER THAN 0", "LESS THAN 128", and "GREATER THAN OR EQUAL TO 128". This function is used when determining if a pixel should be written to the framebuffer. For example, if GT0 is specified, the only the portions of the texture map with corresponding alpha values greater than zero will be written to the framebuffer. By default alpha testing is disabled. - -

Both alpha testing and normal alpha blending can be used to get textures that have see-through parts. The difference is that alphaFunc is an all-or-nothing test, while blending smoothly blends between opaque and translucent at pixel edges. Alpha test can also be used with depthwrite, allowing other effects to be conditionally layered on top of just the opaque pixels by setting depthFunc to equal. - -

Back | Home | Next - - - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/entries deleted file mode 100644 index 24ce29fa..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/ch06 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg6_1.htm -file - - - - -2012-04-01T16:51:52.487020Z -6206143dabc34a8fe4ff278dcc4de0d0 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -10508 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/prop-base/pg6_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/prop-base/pg6_1.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/prop-base/pg6_1.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base deleted file mode 100644 index f6b94f0c..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base +++ /dev/null @@ -1,145 +0,0 @@ - - -Quake III Arena Shader Manual: Notes on Alpha Channels - - - -

Q3Radiant Shader Manual

-
-

7 Notes on Alpha Channels

-To use some blend modes of alphaFunc, you must add an alpha channel to your texture files. Photoshop can do this. -Paintshop Pro has the ability to make an alpha channel but cannot work directly in to it. In Photoshop you want to set the type to Mask. Black has a value of 255. White has a value of 0. The darkness of a pixel's alpha value determines the -transparency of the corresponding RGB value in the game world. Darker = more transparent. - -

Care must be taken when reworking textures with alpha channels. Textures without alpha channels are saved as 24 bit images while textures with alpha channels are saved as 32 bit. If you save them out as 24 bit, the alpha channel is erased. Note: Adobe Photoshop will prompt you to save as 32, 24 or 16 bit. Choose wisely. If you save a texture as 32 bit and you don't actually have anything in the alpha channel, Quake III Arena may still be forced to use a lower quality texture format (when in 16 bit rendering) than if you had saved it as 24 bit. - -

To create a texture that has "open" areas, make those areas black in the alpha channel and make white the areas that are to be opaque. Using gray shades can create varying degrees of opacity/transparency. - -

Example: An opaque texture with see-through holes knocked in it. - -

-textures/base_floor/pjgrate1
-{
-	surfaceparm metalsteps
-	cull none
-
-	// A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES
-	{
-		map textures/base_floor/pjgrate1.tga
-		blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
-		alphaFunc GT0
-		depthWrite
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendFunc GL_DST_COLOR GL_ZERO
-		depthFunc equal
-	}
-	}
-
- -

The alpha channel can also be used to merge a texture (including one that contains black) into another image so that the merged art appears to be and opaque decal on a solid surface (unaffected by the surface it appears to sit on), without actually using an alpha function. The following is a very simple example: - -

- -
Figure 1 - -

Start with a TGA file image. In this case, a pentagram on a plain white field (figure 1A). The color of the field surrrounding the image to be merged is not relevant to this process (although having a hard-edged break between the image to be isolated and the field makes the mask making process easier). Make an alpha channel. The area of the image to be merged with another image is masked off in white. The area to be masked out (notused) is pure black (figure 1B). The image to be merged into is greenfloor.tga (figure 1C). - -

Make a qer_editorimage of greenfloor.tga. This is placed inthe frame buffer as the map image for the texture. By -using GL_SRC_ALPHA as the source part of the blend equation, the shader adds in only the non-black parts of the pentagram. -Using GL_MINUS_ONE_SRC_ALPHA, the shader inverts the pentagram's alpha channel and adds in only the non-black parts of the green floor. - -

In a like manner, the alpha channel can be used to blend the textures more evenly. A simple experiment involves using a -linear gradiant in the alpha channel (white to black) and merging two textures so they appear to cross fade into each other. - -

A more complicated experiment would be to take the pentagram in the first example and give it an aliased edge so that the pentagram appeared to fade or blend into the floor. - -

8 Troubleshooting Shaders

-If a shader is not working, look first for syntax errors. -
  • Are the brackets correctly set? -
  • Do you have too many parameter values on a line? -
  • Are you using a word in a parameter that wants a numerical value? -
  • Are you using a numerical value in a parameter that wants a word? -
  • Are the path names to your textures correct? -
  • Are your texture names correct? There is a chance that the texture name is too long or too complex. Try renaming a -texture with a shorter, simpler name.
- -

9 Creating New Textures

-If you are familiar with the required tools, creating new assets for use in Quake III Arena is not particularly difficult. As a general rule, you should create new directories for each map with names different from the names used by id. If you are making a map that will be called "H4x0r_D00M", every directory containing new assets for that map should be titled H4x0r_D00M. This is to try and avoid asset directories overwriting each other as the editor and the gameload in assets. - -

9.1 Tools Needed

-Any combination of graphic programs and plug-ins that canout put a 24 bit MS windows compatible Targa (.tga) or JPEG (.jpg) graphic file.If you plan to make textures that will have an alpha channel component (a 4th 8-bit greyscale channel that is used by the shaders to further manipulate the art), you must have a program that can create 32-bit art with that fourth channel. - -

Adobe Photoshop has the ability to easily create alpha channels. PaintShop Pro from JASC (v5.0+) can also make an -alpha channel by creating a mask and naming it "alpha". - -

Generally speaking, regardless of the program used, we found it best to do most of the art manipulation of the alpha channel in a separate layer or file and then paste it into the alpha channel before saving. - -

9.2 Setting up Files

-The editor and the game program look for assets to be located along the paths set up in your project file. Start by creating -a directory for you new textures by creating file folders to make a directory path as follows: - -

quake3\baseq3\textures\[mymapname]
- -

The installation of Q3Radiant will create a text document called "shaderlist.txt" in the following path: - -

quake3\baseq3\scripts\shaderlist.txt
- -

Q3Radiant will use the contents of this script to grab your new textures for inclusion in the game. The contents of shaderlist.txt document will contain a listing of all the shader documents that were used by id Software to create Quake III Arena. - -

Since you will obviously want to create your own shaders, you need to put them in separate folders and create a new shader script for them. - -

If you plan to work on several maps at once and want to distinguish between textures used in each map, simply add additional map names here. For map and mod makers, we STRONGLY recommend that any new shader scripts created use the name of the map or mod in the shader file name. We know we can't avoid every incident of files overwriting each other, but we certainly can advise you how to try. - -

Now, in the scripts directory that you just created, create another text file and call it: - -

[mymapname].shader
- -

This file will contain the shader scripts you write to modify a particular texture. - -

9.3 Rules and Guidelines

-
9.3.1 Rules
-Follow these rules when creating textures for the Quake III Arena engine: - -
  • Save your textures into your new [map name] directories. -
  • Don't use the same names that id used for textures. It will cause problems. -
  • For best quality, save textures without an alpha channel as 24 bit TARGA files. Using JPEG files can save memory space, but at the risk of losing detail and depth in the texture. JPEG files cannot be used for textures requiring an alpha channel. -
  • Textures containing an alpha channel must be saved as32 bit TARGA files. -
  • If a new texture requires no further manipulation, it does not need a shader script. -
  • Size textures in powers of 2. Example: 8x8, 16x16,32x32, 64x64 pixels and so on. -
  • Textures don't need to be square. A 32x256 pixel texture is perfectly acceptable.
- -

9.3.2 Guidelines
-The following are some things the id designers learned about textures. - -
  • Create textures in "suites" built around one or two large textures with a number of much smaller supporting detail or accent textures. -
  • Very large textures are possible, but some video cards compress textures larger than 256x256 pixels. -
  • Textures are grouped alphabetically by name in the texture display window, so you may want to give suites of textures -similar names. -
  • Use the shader function qe3_editorimage to conserve memory when making multiple versions of a single texture (as in the case of a glowing texture with several light values). -
  • Unless you are creating special effects or textures designed to draw the player's eye to a specific spot, muted, middle value colors work best with the game engine. -
  • Extremely busy (a lot of fussy detail) textures can break up or form visually unpleasant patterns when seen at distances.
- -

9.4 Making the .pk3 File>

-When you go to distribute your creation to the gaming world, you need to put your newly created map, textures, bot area files, and shader documents into an archive format called a "pk3" file. You do not need to include the shaderlist.txt file, since that is only used by the editor. You will need to keep the paths to the various assets the same. So your paths should be something like this: - -

Textures: baseq3/textures/[mymapnamefolder] -
Bsp & aas: baseq3/maps/mymapname.bsp, mymapname.aas -
Shader scripts: baseq3/scripts/mymapname.shader - -

You need to use an archiving program call Winzip to make the pk3 file. Get Winzip from http://www.winzip.com/winzip/winzip.htm - -
Make a zip archive called mymapname.zip - -
Zip all the required assets into a zip archive file (Quake III Arena DOES support compressed pk3 files). - -
Rename the zip archive to mymapname.pk3 - -
Put it where the Quake III Arena community can find it. -

Back | Home | Next - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm deleted file mode 100644 index f6b94f0c..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm +++ /dev/null @@ -1,145 +0,0 @@ - - -Quake III Arena Shader Manual: Notes on Alpha Channels - - - -

Q3Radiant Shader Manual

-
-

7 Notes on Alpha Channels

-To use some blend modes of alphaFunc, you must add an alpha channel to your texture files. Photoshop can do this. -Paintshop Pro has the ability to make an alpha channel but cannot work directly in to it. In Photoshop you want to set the type to Mask. Black has a value of 255. White has a value of 0. The darkness of a pixel's alpha value determines the -transparency of the corresponding RGB value in the game world. Darker = more transparent. - -

Care must be taken when reworking textures with alpha channels. Textures without alpha channels are saved as 24 bit images while textures with alpha channels are saved as 32 bit. If you save them out as 24 bit, the alpha channel is erased. Note: Adobe Photoshop will prompt you to save as 32, 24 or 16 bit. Choose wisely. If you save a texture as 32 bit and you don't actually have anything in the alpha channel, Quake III Arena may still be forced to use a lower quality texture format (when in 16 bit rendering) than if you had saved it as 24 bit. - -

To create a texture that has "open" areas, make those areas black in the alpha channel and make white the areas that are to be opaque. Using gray shades can create varying degrees of opacity/transparency. - -

Example: An opaque texture with see-through holes knocked in it. - -

-textures/base_floor/pjgrate1
-{
-	surfaceparm metalsteps
-	cull none
-
-	// A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES
-	{
-		map textures/base_floor/pjgrate1.tga
-		blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
-		alphaFunc GT0
-		depthWrite
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendFunc GL_DST_COLOR GL_ZERO
-		depthFunc equal
-	}
-	}
-
- -

The alpha channel can also be used to merge a texture (including one that contains black) into another image so that the merged art appears to be and opaque decal on a solid surface (unaffected by the surface it appears to sit on), without actually using an alpha function. The following is a very simple example: - -

- -
Figure 1 - -

Start with a TGA file image. In this case, a pentagram on a plain white field (figure 1A). The color of the field surrrounding the image to be merged is not relevant to this process (although having a hard-edged break between the image to be isolated and the field makes the mask making process easier). Make an alpha channel. The area of the image to be merged with another image is masked off in white. The area to be masked out (notused) is pure black (figure 1B). The image to be merged into is greenfloor.tga (figure 1C). - -

Make a qer_editorimage of greenfloor.tga. This is placed inthe frame buffer as the map image for the texture. By -using GL_SRC_ALPHA as the source part of the blend equation, the shader adds in only the non-black parts of the pentagram. -Using GL_MINUS_ONE_SRC_ALPHA, the shader inverts the pentagram's alpha channel and adds in only the non-black parts of the green floor. - -

In a like manner, the alpha channel can be used to blend the textures more evenly. A simple experiment involves using a -linear gradiant in the alpha channel (white to black) and merging two textures so they appear to cross fade into each other. - -

A more complicated experiment would be to take the pentagram in the first example and give it an aliased edge so that the pentagram appeared to fade or blend into the floor. - -

8 Troubleshooting Shaders

-If a shader is not working, look first for syntax errors. -
  • Are the brackets correctly set? -
  • Do you have too many parameter values on a line? -
  • Are you using a word in a parameter that wants a numerical value? -
  • Are you using a numerical value in a parameter that wants a word? -
  • Are the path names to your textures correct? -
  • Are your texture names correct? There is a chance that the texture name is too long or too complex. Try renaming a -texture with a shorter, simpler name.
- -

9 Creating New Textures

-If you are familiar with the required tools, creating new assets for use in Quake III Arena is not particularly difficult. As a general rule, you should create new directories for each map with names different from the names used by id. If you are making a map that will be called "H4x0r_D00M", every directory containing new assets for that map should be titled H4x0r_D00M. This is to try and avoid asset directories overwriting each other as the editor and the gameload in assets. - -

9.1 Tools Needed

-Any combination of graphic programs and plug-ins that canout put a 24 bit MS windows compatible Targa (.tga) or JPEG (.jpg) graphic file.If you plan to make textures that will have an alpha channel component (a 4th 8-bit greyscale channel that is used by the shaders to further manipulate the art), you must have a program that can create 32-bit art with that fourth channel. - -

Adobe Photoshop has the ability to easily create alpha channels. PaintShop Pro from JASC (v5.0+) can also make an -alpha channel by creating a mask and naming it "alpha". - -

Generally speaking, regardless of the program used, we found it best to do most of the art manipulation of the alpha channel in a separate layer or file and then paste it into the alpha channel before saving. - -

9.2 Setting up Files

-The editor and the game program look for assets to be located along the paths set up in your project file. Start by creating -a directory for you new textures by creating file folders to make a directory path as follows: - -

quake3\baseq3\textures\[mymapname]
- -

The installation of Q3Radiant will create a text document called "shaderlist.txt" in the following path: - -

quake3\baseq3\scripts\shaderlist.txt
- -

Q3Radiant will use the contents of this script to grab your new textures for inclusion in the game. The contents of shaderlist.txt document will contain a listing of all the shader documents that were used by id Software to create Quake III Arena. - -

Since you will obviously want to create your own shaders, you need to put them in separate folders and create a new shader script for them. - -

If you plan to work on several maps at once and want to distinguish between textures used in each map, simply add additional map names here. For map and mod makers, we STRONGLY recommend that any new shader scripts created use the name of the map or mod in the shader file name. We know we can't avoid every incident of files overwriting each other, but we certainly can advise you how to try. - -

Now, in the scripts directory that you just created, create another text file and call it: - -

[mymapname].shader
- -

This file will contain the shader scripts you write to modify a particular texture. - -

9.3 Rules and Guidelines

-
9.3.1 Rules
-Follow these rules when creating textures for the Quake III Arena engine: - -
  • Save your textures into your new [map name] directories. -
  • Don't use the same names that id used for textures. It will cause problems. -
  • For best quality, save textures without an alpha channel as 24 bit TARGA files. Using JPEG files can save memory space, but at the risk of losing detail and depth in the texture. JPEG files cannot be used for textures requiring an alpha channel. -
  • Textures containing an alpha channel must be saved as32 bit TARGA files. -
  • If a new texture requires no further manipulation, it does not need a shader script. -
  • Size textures in powers of 2. Example: 8x8, 16x16,32x32, 64x64 pixels and so on. -
  • Textures don't need to be square. A 32x256 pixel texture is perfectly acceptable.
- -

9.3.2 Guidelines
-The following are some things the id designers learned about textures. - -
  • Create textures in "suites" built around one or two large textures with a number of much smaller supporting detail or accent textures. -
  • Very large textures are possible, but some video cards compress textures larger than 256x256 pixels. -
  • Textures are grouped alphabetically by name in the texture display window, so you may want to give suites of textures -similar names. -
  • Use the shader function qe3_editorimage to conserve memory when making multiple versions of a single texture (as in the case of a glowing texture with several light values). -
  • Unless you are creating special effects or textures designed to draw the player's eye to a specific spot, muted, middle value colors work best with the game engine. -
  • Extremely busy (a lot of fussy detail) textures can break up or form visually unpleasant patterns when seen at distances.
- -

9.4 Making the .pk3 File>

-When you go to distribute your creation to the gaming world, you need to put your newly created map, textures, bot area files, and shader documents into an archive format called a "pk3" file. You do not need to include the shaderlist.txt file, since that is only used by the editor. You will need to keep the paths to the various assets the same. So your paths should be something like this: - -

Textures: baseq3/textures/[mymapnamefolder] -
Bsp & aas: baseq3/maps/mymapname.bsp, mymapname.aas -
Shader scripts: baseq3/scripts/mymapname.shader - -

You need to use an archiving program call Winzip to make the pk3 file. Get Winzip from http://www.winzip.com/winzip/winzip.htm - -
Make a zip archive called mymapname.zip - -
Zip all the required assets into a zip archive file (Quake III Arena DOES support compressed pk3 files). - -
Rename the zip archive to mymapname.pk3 - -
Put it where the Quake III Arena community can find it. -

Back | Home | Next - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/index.htm b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/index.htm deleted file mode 100644 index a7220ef4..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/index.htm +++ /dev/null @@ -1,76 +0,0 @@ - - -Quake III Arena Shader Manual: Table of Contents - - - -

-

Q3Radiant Shader Manual

- -

Revision #12

- -

By Paul Jaquays and Brian Hook - -

(with additional material by John Carmack, Christian Antkow, Kevin Cloud, & Adrian Carmack) -

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version

-
-

Table of Contents

-1 Preface: Making Your Own Shaders -
2 Introduction - - -3 General Shader Keywords - - -4 Q3MAP Specific Shader Keywords - - -5 Editor specific shader instructions - - -6 Stage Specific Keywords - - -7 Notes on Alpha Channels -
8 Troubleshooting Shaders -
9 Creating New Textures - -
Appendix A: targetShaderName and targetNewShaderName - - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries deleted file mode 100644 index c3faef58..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/q3ashader_manual_files -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -image002.jpg -file - - - - -2012-04-01T16:51:53.050052Z -d1016d1f0aa8bc3388f0f8df18498597 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -26981 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/text-base/image002.jpg.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/text-base/image002.jpg.svn-base deleted file mode 100644 index 9cc0ffc7d070348330ed1362946a82c50790b7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26981 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ŷU&HG*){$*OXRNjzCMwRo2T?6Fi-Kpv8Q3FOSN_O;%`-IaeuET z^hP+=oGv!JVBD>eM5*=j|iS-wveut&W&1^+(o*#@@#LchY1F*i@IfD15Yf;=(?LThe>&ImC*Vc0? zE>=G7%KW41(-i3+zj`R_xNvl0IAvu;KQTDQQ)!FX+LkbR91{zE#l7xh%kb(_3$+85 zCOnQp_kgHmiX)WA{+O+w175DwoRVVk{L+2GU6FV}bHo<#D#q!q)VJ8bEivzUmDH&>no_GA1lZ7%#)kcn`Ty-T@&$o))kNio;mE{#O(rt-wR3Wq4rJk!qy4g7wp zRwr%|xk_j~cF&cKH)Io6W8Gn4Pyo3!t$W9GHmoy>Sm%Q%TSo6h8fz5K*<=G5w4Lt6 z_SGBw*Iw2?sk&qFKhc2QiCSZzqloadAojzUu}4Xx{tC}y*e$_QeNmGj-1Q2bO*UN& zi;MqVBHxeq8(BQslCoz0-9x$+i2SNQLU@fku5j2#VVY{F4WD=uRu--e9;Djff}uDg zZXTw(NPV3%9Pa}cK}isOV4R1en)?ze*5uJ7|0A|#b8ZltJ$K<-yFbvjmWGZxo2d-! zsb7vSBWUO-u^8Lm1K2C+w9Nn8P$KJA-n1PiHP!z^@}D+o*{94v}H@FBI-BgIEm$y}Um^9KH+IXMkWG9{4>={tF06nJSfts}-s6 zZ&O#flUQyN_m%(L1U}n$`NzjsEOWxB&{dJ;qX9gsi(GT8?V^?aP8RSjI%&-x|!0FAG93 zP4;M{`2l_WejF8}ku$HE3 z&71F|%{e_D&p-o%bU}nb)Nl16Ih+wpQBJ( zO_m&>O|ijg=u>hs$hBs$1%__9qy-ro|(2LU-d_vFz z6(*7(UXaHQFrY2<_YIr;{VJk=h-}#Iu6fJbqr4uO`V~?Cz_vfB0TtGwB88?*Hdlvk ze~TE^grd=Yr>nsCJHqbvk9Dbw@tV&`c5_n5^ZAbwHcxhSK=fbA6fu+}w zzSAY^qFJqZD<{vSep+kNn?&AY{+3R3p{MZySmKU~08NAOcMmEA+Fe)A!deOQ-0WCM zjr|J64TozX)OOvxT*Q$q)T(ldboZ#7d5)Biw&)mnY;q8)OKCtF)EFql2zTLp;-m^r z+oT~Fh)04jQB~4C_c{A#{>h?Z#=C{L}S&G91E3V z9=xn+j%KQdFY1>}vy+thu0aV}hO+YDbS9B#V17RcOuIpyRfIthI_YrCEZi{mVgbwT zbm>igHEry+Ou`twi=Gq(GN;n6c$r41?yQ2#vOY+s=fQ?)=X{f{tWAIU@IOp>f$k*GG;-$LHDKA(s(9s_nF=hC{+6Na_2#ilxFrhUy ziw7)%*txv?z;bP^$hgbO`xmz=$t8R*x(PnlL7sn=kw_x$2H_+SPGfvIbV4 z4%TjLxA8Qc%xgO{_q$>qq4?oBf6>iCxQ59HR&eOzm&R?OL66O)CZIitl4jLIMDbI0SkUtKOUH6nlX zhyJQ#pV(>o`u)z80H+qJ&D!*O8;6i0jVRut`s(#SfGk|`Atz1$-c$XZ{-Q{RjJn@ z6mVh09E2sXcy$GDahIxrw7>kd2XDfbpo0&K*A{aOD~r4T*3a53LOhq~4Et>4HQLJjNOCaO>2ONFr;p7D*L>sBaU{G}M~TmCJ7Lr7JPF zVo9-jw&9v(#}kVsGi>eooz`%8f%oZk?z>srI)oU8zUTd=(xltVFpSSUBxdsojWnz= zV{dRo2UMq5?xiN&{HR{rfpr=q*JZPp*%YHQ)nZrEIkIt>oF?hTv}I+1@!NB#Z1D9T z^gM|>8RUya@3Teg53-kdiphu14J-P|B<9VkeX1@%#|cSBj3HuzlpnF(fUD!*bPTf+ ztA8p45`jg21MyGp&-MgAG#MOj+TA}bTBwI6xjB|Oa3sk8KKp26B`x6+Y+bNBqHBe0 z801>3G5mCJII~}lPW_xK@t0bEYqddDj|oD;B{l$US3}Kl$5Lpm5=S=Q*l_=)?-kW- z;M++Fj;5Z8cMF=*cr7DL8+YGNogqL|rMR0RGuM*({XhJV@P z$wrYV-rhON*e6Jcpe*tzkT5>gd5M+luttGzMIfbrRcEH2T>ZuVe-b!!#KI#U$9_UA zYznQZ4y>w-Q~)YfR9#Q-yRs1C5vq=o*WaxS;9=ONE1NwDH?fA7(e`Fjx!$l7qOaNt z)6CVBF3T!n?8*4dG6Dh!Mu94|$-MhJt%{funV(kG#+?<_zq2q8x>#Zhrd5bd)>_W}ZzKLo@ zG$`QG(|YgJK%FA(u6hoDmXW6U)+(maiw06Xulx(rgF@I{g!#k?y)%lv)+^Bo(1G>i zcAE_yK}$xUM2fT#MafEH^DCvpUw%v-Bd4K|cQ= zb;dg<-RY8pUB|2?BG2Fi*Stsetm}RV5cXp`7kl! zgs(6!iQ`4SQ8J&?`191p2=7EH+p6rfnIM%OqAFrZ9-VuNc@qld=naHBIR}e^c@!jH zhNhYow4HqU*39K`x-j;le8S)x?d#mD=9B5dSrQmS@)!3p z`nHWveB9=VTjk06+rPh@P+N%L<6jjGmhN4ll)yV`j?Q)1eK0a~E^sul=7+7Ux8xMr zAEjjMZ=^d{H-tv_p^p?DCv4dzDnEvUhG9 zA}K5(>-;|om#U7=sHoXRZ7u1pD0bkr_h95>t#HmVZH;~u9@f;AtaX}dK$WV0`&;wC z-QYi3JCXOsc58Rzc0yT63D&dfd^sH5eZ^Q0W)+aC{BG+z7He+a_fZc( z0~+crzcf{x+I}fbM2oJO5O73I?AQBT&rjvq&b`x`qI+3m$w*tkw4&ZiRkF{;Mj3^r)F`g3o+Ir~NJ^^7RvoI9Q6vV>T znip$jDMMa-O&JJvz0t{&jib5irTFI2odB=gHzJy>tgNVfk+CW{6~hwB0{9jvx-qc? z7SM%5V0L)#TgeKc0?&sGpC{QT`ApovcgqXX0JC@4+hw{cUYq^S=wuI z$>Mau>gGTu^^?s@lb;Gl0Ksbuq~A(ZZ)mH#_Ol*5?%!!uBRJa8!iNmhsYdPL6HR4| zVWdX${MS($$wy?is)G1&4HVJxRogGL1^}n6-WmI?;5BhOst@`tJ_n^tVW5qMhIqCC zj0x66lTdu;0ixmeVz_AYw!kh2`P7V(I!f6NvOC8pd%ePmRyw~Fxhy$a^QuqL z!p#jN3FCxLeX2V|e6OvKota?`qyEPEJo+g^(2xB13ew%p&Q=f zk$9S4e=}vf-8OmrPP*N%r4$r?Bs{C7GS|uOz(n*~i?@zI@3PO1=eUR4t=OO&X@K+V zkAXrgwnH{HfaE14|IVrI(1OQxm_oa!;z6$b{u zD#3DH@3sHhE}Vu*zr-@E56GJQ;-;GH?fAfJYW|l&;7mFMAPDf}SAJAndRA|LFxPgq z4+LSTOS)#RKT(r+XA+;dY{H>ImdGEdK!*+h=%&ie@C@ELL=>vTv}096iCgU^vxoOL zFrxVrR!UHyD;1RhC_;kZd#{az+)LIJyJ&l3t7Jo3M>p{=9~zHV%_ISIYBp<%bpz`v zj0UZt+^N6of_8E88lo>W)#@{=p3XM}1_l~Rk{f{1dslqL#xLZWT4vaCHZ+<)Syh@! zsda^Pt7*rVZ6!8tp1yas`S=^AHNKBmvM-YQtQRi7CC`26xJBh?kKt587uz^uuOQ>`p~~55tj$n8%G|6ntqpYaVX+S&>s^w@Op8@ nW!q`LkR#1X31UxSZ?hVgHbjjoO9%abd2-DE{X`q0zw`eA#a9h! diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/image002.jpg b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/q3ashader_manual_files/image002.jpg deleted file mode 100644 index 9cc0ffc7d070348330ed1362946a82c50790b7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26981 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ŷ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 diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/entries b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/entries deleted file mode 100644 index c291e03d..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Q3AShader_Manual/styles -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -q3rad.css -file - - - - -2012-04-01T16:51:52.612027Z -f65ac3e346f227bd9de19518dacd5ba1 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -782 - diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/prop-base/q3rad.css.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/prop-base/q3rad.css.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/prop-base/q3rad.css.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/q3rad.css b/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/q3rad.css deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/Q3Pack/install/docs/Q3AShader_Manual/styles/q3rad.css +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/entries b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/entries deleted file mode 100644 index 0a29c864..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/entries +++ /dev/null @@ -1,68 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Team_Arena_Mapping_Help -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pages -dir - -start.html -file - - - - -2012-04-01T16:51:46.279665Z -3c7ab9bffbea9f8e405853b9dd6e1a64 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1438 - -pics -dir - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/prop-base/start.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/prop-base/start.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/prop-base/start.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/text-base/start.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/text-base/start.html.svn-base deleted file mode 100644 index 398230e5..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/.svn/text-base/start.html.svn-base +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - -MAPPING HELP - - - - -

 

-

-

MAPPING -HELP

-

by -Paul Jaquays
-
Copyright © 2000 id software, inc.

-

      -    -    -    -

-

 

-

START

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/entries b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/entries deleted file mode 100644 index ab38338b..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/entries +++ /dev/null @@ -1,368 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Team_Arena_Mapping_Help/pages -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -table_of_contents.htm -file - - - - -2012-04-01T16:51:44.929588Z -b6f99266d52b233223f4e8cb407f56c7 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2515 - -team_arena_prefabs.html -file - - - - -2012-04-01T16:51:44.932588Z -a6fab351bd32c433d82d589ee5c9fd30 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4799 - -map_converters_checklist.html -file - - - - -2012-04-01T16:51:45.094597Z -235de179fc6a357b6316e34bd96faecb -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5133 - -related_links.html -file - - - - -2012-04-01T16:51:45.208604Z -b037fed341ab928ad857e51d13b4644f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1665 - -ta_game_types.html -file - - - - -2012-04-01T16:51:45.212604Z -09a29a91aa474df868499e743e3e6fc7 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11029 - -team_arena_entity_definitions.html -file - - - - -2012-04-01T16:51:45.215604Z -1e59c074e512c1e3028e74d941486242 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2777 - -team_powerup_bases.html -file - - - - -2012-04-01T16:51:45.279608Z -6b9d25390cdf4fac8e51893dfb6c4293 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2569 - -preface.html -file - - - - -2012-04-01T16:51:45.285608Z -a3319ab96d5cd16b0bef66cb1f9adb2b -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2025 - -design_tips.html -file - - - - -2012-04-01T16:51:45.289608Z -8bd285a6e573e6371b11be9a47d76e60 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -6198 - -using_new_game_entities.html -file - - - - -2012-04-01T16:51:45.293609Z -56189004b17d60e5f5be829fccc5b8e1 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4285 - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/design_tips.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/design_tips.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/design_tips.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/map_converters_checklist.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/map_converters_checklist.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/map_converters_checklist.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/preface.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/preface.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/preface.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/related_links.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/related_links.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/related_links.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/ta_game_types.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/ta_game_types.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/ta_game_types.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/table_of_contents.htm.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/table_of_contents.htm.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/table_of_contents.htm.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_entity_definitions.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_entity_definitions.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_entity_definitions.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_prefabs.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_prefabs.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_arena_prefabs.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_powerup_bases.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_powerup_bases.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/team_powerup_bases.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/using_new_game_entities.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/using_new_game_entities.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/prop-base/using_new_game_entities.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/design_tips.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/design_tips.html.svn-base deleted file mode 100644 index 605c1692..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/design_tips.html.svn-base +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -Design Tips and Suggestions - - - - - -

Design Tips and Suggestions

-
-
- - - - -
  -
-
-

· The skull - generator in Harvester tosses skulls about it to a maximum distance - of 96 units. The id map designers usually allowed for a drop radius - of 104 to 128 units as a minimum. As a rule, the generator should - drop skulls only in a places accessible to the players. Skulls - should not drop out into death fog or the void.

-

· Where you place - the persistent team power-ups is really more a matter of personal - style than a fixed requirement. Generally speaking, we found having - all or most of them in easy view of the initial start positions was - a good thing. In some cases, we found that placing the scout in a - contested area made for interesting game challenges.

-

· It is not - necessary to put every team power-up on every map. If a team - power-up would be overpowering on a map, leave it out. If you study - the id team maps, you’ll note that not every map has every power - up. In a small map, the scout can be unreasonable. In a map where - the base is easily attacked and overwhelmed, the guard can unbalance - things. In a map where the base is easily defended by snipers, the - doubler is powerful.

-

· For One Flag CTF, - the flag should be placed in an area that is roughly equidistant - from both bases and can be easily reached by players from either - team.

-

· The same (as - above) is true for Harvester.

-

· You don’t have - to place the white flag and the Harvester skull generator in the - same place in the map.

-

· Don’t feel - obligated to put the CTF flag bases, the skull receptacles, and the - Overload skull obelisk in the exact same location in the bases. Just - remember to mark gametypes correctly.

-

· Don’t include a - kamikaze in a map where players are unlikely to ever see the full - effect of the explosion.

-

· The personal - teleporter entity takes the player to a deathmatch spawn. That’s - how we restricted where the player teleported to in some maps.

-

· When converting - Q3A CTF maps with small base areas around their flags will probably - need to have their bases enlarged to accommodate the Overload skull - obelisk.

-

· OVERLOAD: When - designing the base for the placement of the skull obelisk, don’t - make it easy for attackers to shoot the obelisk from protected - locations.

-

· FLOOR ARROWS: The - graphic arrows were added to map floors to help the players find - their ways through potentially confusing arenas and to give the - player a sense of how close to the flag room he or she might be. The - rule of thumb was that the greater the distance to the flag, the - more stripes or bars would follow the arrow. Exact style of arrow - use varied from mapper to mapper. Study the individual maps to - determine which works best for your own map. The floor arrows act - like decals (if you ever built plastic model kits, these are the - little graphic things that you soaked in water and then stuck on the - surfaces of the model). The images will appear to be a part of the - surface upon which they rest. For the arrows, you will want to build - them as nodraw brushes of the proper dimension with a surface raised - about 2 units above the floor or wall. For the arrow, use - missionpack/proto2/bluea_dcl for the blue arrows and missionpack/proto2/reda_dcl - for the red. You may have to scale and rotate the texture to get - what you want. For more than three trailing bars, add additional - decals and arrange to suit.

-
-
-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - Map Converter's Checklist
-
- -9-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/map_converters_checklist.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/map_converters_checklist.html.svn-base deleted file mode 100644 index d6faf3d4..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/map_converters_checklist.html.svn-base +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -Design Tips and Suggestions - - - - - -

Map Converter’s Checklist

-
-
- - - - -
  -

The following is a list of things to look for, do, or - be aware of when converting a pre-existing CTF map to Q3:TA game types.

-
-
-

· New file name. Don’t - overwrite your old CTF map.

-

· If you want to - convert an existing Q3A CTF map to the team arena game types, it - would be good to make a clean break from Q3A. Give it a new file - name and even a new map name. We did the same for our original CTF - maps.

-

· If you don’t - already have one, build a central “neutral” area in keeping with - the style of the rest of the map. This is an important play area, - perhaps even more so than the bases. Make the opportunities for - gameplay here just as exciting as the flag bases.

-

· Fix-up Time. This is - your opportunity to fix all those things that players have been - telling you are wrong with your map (sticky spots, bad hallway - connections, misaligned textures, poor item placement). The id guys - did it, so can you. It’s also a good time to read or re-read the - Q3Radiant section on optimizing maps for bots (you may want to look - for the recent updates that accompany the bspc tool). Pay particular - attention to placement of clip brushes and cluster portals. If - players can’t reach an area of the map (such as sky above ceiling - grills, or beyond window bars, fill the unreachable space with clip - brush - just walling it off is often worse than doing nothing.

-

· Add Team Power-ups - in or near bases.

-

· Place .md3 powerup - pad bases beneath Power-ups

-

· Remove “ow” - marks from floors that were used as weapon locators. Replace them - with the base floor for that texture. You may also be able to - simplify the geometry.

-

· Place Weapon pad - markers (use the pfbs) beneath weapon spawns.

-

· Consider adding new - weapon types or replacing existing ones with the new weapons. Don’t - just do it because they are new, though. Make sure the weapon is - appropriate to the map. If you don’t like a weapon or it’s - effect on play, don’t add it to your map.

-

· Replace old Q3A CTF - banners with new Q3: TA banners. Use the banner prefabs (pfbs) for - ease of placement.

-

· Consider adding team - logos as decals (see FLOOR ARROWS above) to other parts of the map, - like walls and floors.

-

· Make sure that the - team logos on banners and floors; walls, etc. have the proper - facing. You should be able to properly read the word “red” or - “blue” on the placeholder logo.

-

· Add in the flag - bases and obelisks. Follow directions noted above (page 9) to mark them for - gameplay types.

-
-
-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - Related Links
-
- -10-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/preface.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/preface.html.svn-base deleted file mode 100644 index e5de09b3..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/preface.html.svn-base +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -If you are already familiar with the tools and processes for making your -own - - - - -

 

-

 

-

If you are already familiar with the tools -and processes for making your own

-

Quake III Arena game maps, then this -document and the other files in this directory

-

are what you need to create Quake III: Team -Arena maps. If you have previously

-

created team play style maps (for Capture -the Flag or other game “mods”),

-

it will not be difficult to add the new game -entities and models.

-

If you think you might be interested in -making game maps, consider

-

stopping by the Level Editing forum at Quake3World

-

registering as a forum user and asking what -you need to do to

-

get started. From the Quake3World home page, -click

-

on the “Community” button, and then

-

select the “Level Editing” button.

-

 

-

Back - Table of Contents

-

-2-

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/related_links.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/related_links.html.svn-base deleted file mode 100644 index fabfcf9d..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/related_links.html.svn-base +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -Related Links - - - - - -

Related Links

-
- -
-
- - - - -
-

Back
-
- - Table of Contents
-
- -11-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/ta_game_types.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/ta_game_types.html.svn-base deleted file mode 100644 index 7735ebc2..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/ta_game_types.html.svn-base +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - -Design for all Team Arena Game Types - - - - - -

Design for All Team Arena Game Types

-
-
- - - - -
      We - encourage designers to make their maps compatible with all “team” - style games. Team DM and Tournament are the exceptions here. Experience - shows that balanced CTF style maps do not make great (or even good) Team - DM maps. To do this, you will need to mark some of the team game - entities for multiple game types. An example is the obelisk used in - Overload. The entity is also used to mark the location of the - skull-receiving base in Harvester. If your Overload obelisk and your - Harvester base are to be in the same location give the entity a - key/value of “gametype/obelisk, harvester”. If you choose to place - the entities in different locations in each game type, you will need to - place separate entities and mark them appropriately. -

 

-
-

Placing Common Entities for all Game types

-
-

     Typically, the player - start, respawn, power-ups, ammo and weapon placement are the same for - each game type. It helps players if they don’t have to remember a lot - of placement locations from game to game. But this doesn’t have to be - the case. Use the gametype key to control placement if you want them - different between game types.

-

      Place - team_CTF_blueplayer entities in the locations where you want blue team - members to join the game and team_CTF_redplayer entities in the - locations where you want red team members to join the game. You should - place enough of these to accommodate the maximum number of players that - will be on a side (though usually no more than 8 to a side in a “normal” - map and as many as 32 in an extremely large terrain map). If you place - too few, teammates are likely to telefrag each other as they join the - game.

-

      Place - team_CTF_bluespawn entities in the locations where you want blue team - members to respawn when they die in the game. Place team_CTF_redspawn - entities in the locations where you want red team members to respawn - when they die in the game. You should place enough of these to - accommodate the maximum number of players that will be on a side (though - usually no more than 8 to a side).

-

      Place the four - persistent power-ups (guard, doubler, scout, and ammo_regen) in or near - the bases of each team. On the blue side, check the BLUETEAM spawn flag - box for each entity. On the red side, check the REDTEAM spawn flag box - for each entity. Place (and center) the appropriate spawn spot model - beneath each power-up (spawn.md3 on the blue side, spawn_red.md3 on the - red side).

- -

 

-
-

Placing Game-type Specific Entities

-
-

      Each of the four - team-style game types has a set of associated entities that go with it, - whether it’s the flags and bases in Capture the Flag, or the obelisk - in Overload.

- -

Capture the Flag (required entities)

-
-

      This corresponds - to the cvar: “/g_gametype 4” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/ctf”

-

      Place a - team_CTF_blueflag in the blue base.

-

      Place a - team_CTF_redflag in the red base.

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. This forms the flag base. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. This - forms the flag base. Do not mark any gametype.

- -

 

- -

One Flag CTF (required entities)

-
-

      This corresponds - to the cvar: “/g_gametype 5” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/oneflag”

-

      Place a - team_CTF_blueflag in the blue base.

-

      Place a - team_CTF_redflag in the red base.

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. This forms the flag base. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. This - forms the flag base. Do not mark any gametype.

-

      Place a - team_neutralflag some place in the neutral area of the map, preferably - equidistant from both bases.

- -

 

- -

Overload (required entities)

-
-

     This corresponds to - the cvar: “/g_gametype 6” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/obelisk”

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. Do not - mark any gametype.

- -

 

- -

Harvester (required entities)

-
-

      This corresponds - to the cvar: “/g_gametype 7” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/harvester”

-

      Place a - team_blueobelisk in the blue base. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base. Do not mark any gametype.

-

      Place a - team_neutralobelisk some place in the neutral area of the map, - preferably equidistant from both bases.

- -

 

- -

Using Entities for All Gametypes

-
-

      This assumes - that the designer will use the same entities, in the same locations for - all gametypes. Mark the gametypes on each entity as noted:

-

      Place a - team_CTF_blueflag in the blue base.

-

      Gametype: ctf, oneflag

-

      Place a - team_CTF_redflag in the red base.

-

      Gametype: ctf, oneflag

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. This forms the flag base.

-

      Gametype: Do not mark - any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. This - forms the flag base.

-

      Gametype: Do not mark - any gametype.

-

      Place a - team_neutralobelisk some place in the neutral area of the map, - preferably equidistant from both bases.

-

      Gametype: harvester

-

      Place a - team_neutralflag some place in the neutral area of the map, preferably - equidistant from both bases.

-

      Gametype: oneflag

-

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - Design Tips
-
- -8-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/table_of_contents.htm.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/table_of_contents.htm.svn-base deleted file mode 100644 index 7bc4d36d..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/table_of_contents.htm.svn-base +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - -Table of Contents - - - - -

Table of Contents
-
(HTML Conversion by AstroCreep)

-
- - - - - -
-

Title..........................1
-
- -Preface..........................2
-
- -Table of Contents..........................3
-
- -Team Arena Entity Definitions..........................4
-
- -Team Arena Prefabs..........................5
-
- -Team Power-Up Bases..........................6
-
- -Using the New Game Entities..........................7
-
- -Design for All Team Arena Game Types...........................8
-
- -Design Tips and Suggestions...........................9
-
- -Map Converter’s Checklist.........................10
-
-Related Links.........................11
-

-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - T A Entity Definitions
-
- -3-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_entity_definitions.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_entity_definitions.html.svn-base deleted file mode 100644 index 6cc9e20d..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_entity_definitions.html.svn-base +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Team Arena Entity -Definitions

-
- - - - -
The enclosed tadef_ptch.def - file a bare bones list of entity descriptions for use in the Q3Radiant - editor. You can paste it onto the end of your current def file (or better - yet, into a copy of that file). -

This is the Quake III: Team Arena entities definition - file patch (note that it is not the entire definition file). The Q3Radiant - editing tool uses this data to place game entities (ammo, weapons, - power-ups, etc.) in the game map and the game. It contains the definitions - for all the power-ups, game-specific items (like the Obelisks from - Harvester and Overload). To use these definitions, open the text file and - copy it. Now open the definitions file that you are currently using - (probably in Baseq3/Scripts) and paste the contents of your clipboard at - the end of the file. Now save this modified document as “teamarena.def” - in a folder in your Quake III Arena folder called Missionpack/scripts. - Open the Q3Radiant editor. Click on the File menu, and then select the “Project - Settings” entry. This brings up the Project Settings pop-up window. - Change the entitypath field so the pathname leads to the new definitions - file.

-

Example: If the field currently reads c:/quake3 or - g:/quake3/missionpack/scripts/*.def, change it to - c:/quake3/baseq3/scripts/teamarena.def

- -

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- -  Team Arena Prefabs
-
- -4-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_prefabs.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_prefabs.html.svn-base deleted file mode 100644 index 15557ed2..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_arena_prefabs.html.svn-base +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Team Arena Prefabs

-
- - - - -
There are eight prefabricated brush groups - in this folder. They are pre-built game components (using brushes and/or - curve patches) for some of the objects frequently used in Quake III: - Team Arena. The shader scripts and textures for these prefabs are - already a part of the Team Arena Mission Pack pak file and need not be - added separately. -

      The pads act like - decals (if you ever built plastic model kits, these are the little - graphic things that you soaked in water and then stuck on the surfaces - of the model). The images will appear to be a part of the surface upon - which they rest. For the pads, you will want to place them in such a way - that they are centered under the entity boxes above them. The surface of - the pad should be one to two units above the surface beneath them.

-

When positioning the banners, the banner brush should - not touch the surface behind it.

- -

     armorpad_blue.pfb - Place this prefab beneath yellow and/or red armor on the blue team’s - side.

- -

     armorpad_red.pfb Place - this prefab beneath yellow and/or red armor on the red team’s side

- -

     armorpad_neutral.pfb - Place this prefab beneath yellow and/or red armor in neutral areas.

- -

     weaponpad_blue.pfb - Place this prefab beneath weapons and (non persistent) power-ups on the - blue team’s side.

- -

     weaponpad_red.pfb - Place this prefab beneath weapons and (non-persistent) power-ups on the - red team’s side.

- -

     weaponpad_neutral.pfb - Place this prefab beneath weapons and (non-persistent) power-ups in the - map’s neutral areas (in between bases).

- -

TA_banner_blue.pfb This - prefab is a smallish blue team flag with the placeholder blue team logo - placed over the flag surface as a decal. During game play, this logo - will change to show the logo selected by the blue team. Designers may - wish to scale the size or proportions of this banner to suit their - needs. Always make sure that the word “blue” on the logo reads - correctly. Otherwise, non-symmetrical team logos will appear backwards - on the banner.

- -

TA_banner_red.pfb This - prefab is a red team flag with the placeholder red team logo placed over - the flag surface as a decal. During game play, this logo will change to - show the logo selected by the red team. Designers may wish to scale the - size or proportions of this banner to suit their needs. Always make sure - that the word “red” on the logo reads correctly. Otherwise, - non-symmetrical team logos will appear backwards on the banner.

-

 

-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
-  Team Power-up Bases -

-5-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_powerup_bases.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_powerup_bases.html.svn-base deleted file mode 100644 index b082e317..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/team_powerup_bases.html.svn-base +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Team Power-up Bases

-
-
- - - - -
In Quake III: Team Arena, a base model - marks the location of each of the four persistent Team Power-Ups (Ammo - Regen, Guard, Doubler, and Scout). These models are not generated - programmatically (as is the case with the obelisks and flag bases) and - must be placed in the game maps by the mapmaker. Position the model such - that the center of its origin sits on top of the floor and so that it is - centered beneath the Team Power-Up. There are separate models for the - blue and red team sides. If you choose to place a powerup in neutral - territory (as in MPTERRA3), place a weaponpad_neutral.pfb under the - powerup. -

Copy the spawn folder into the models/mapobjects - directory in your missionpack directory (if necessary, create all three - directories now). Do not create a new directory for them. Shader scripts - and textures for these models are already a part of the Mission Pack pak - file and need not be added separately.

-

spawn.md3  This model is the location marker for the - blue side.

-

spawn_red.md3  This model is the location marker for - the red side.

- -

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
-  New Game Entities -

-6-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/using_new_game_entities.html.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/using_new_game_entities.html.svn-base deleted file mode 100644 index 19ddc0d0..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/.svn/text-base/using_new_game_entities.html.svn-base +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Using New Game Entities

-
-
- - - - - -
The best way to get a feeling for how the - new game entities should be used is to play Team Arena for a while. Here - are the id team’s rules and suggestions for using the new entities. -

 

-
-

Game Types

-
-

There are eight game types (including those from - original Quake III Arena). Unless marked with a gametype key, entities - will appear in every game type. The game types are:

- -

Gametype Type of play corresponds to cvar …

-
-

FFA (multiplayer Free for All deathmatch) corresponds - to g_gametype 0

-

Tournament (1 on 1 deathmatch) corresponds to - g_gametype 1

-

Single (Single Player Free for All) corresponds to - g_gametype 2

-

Team (Team deathmatch) corresponds to g_gametype 3

-

CTF (Capture the Flag … traditional rules) - corresponds to g_gametype 4

-

Oneflag (single flag CTF) corresponds to g_gametype 5

-

Overload (destroy the opponent’s obelisk) - corresponds to g_gametype 6

-

Harvester (collect skulls, take to opponent’s base) - corresponds to g_gametype 7

- -

 

-
-

The “notfree”, “notteam”, and “notsingle” - Keys

-
-

These are still checked by the game engine. They are - checked AFTER the gametype keys are checked. Because they complicate the - design (simple is usually best), we recommend not using them in Quake 3 - Team Arena maps.

- -

 

-
-

Enable/Disabled entities for TA / Vanilla Q3

-
-

- Entities can now have one of the following epairs: -

- -

- "notta" "1" -

- -

- for when the entity is not supposed to show up in Team Arena, and: -

- -

- "notq3a" "1" -

- -

- for when the entity is not supposed to show up in Quake III Arena. -

- -

- An entity may have both epairs, meaning it will only show up in mods. -

- -

- The epairs only work on "gameplay" type entities such as weapons, - powerups, items, ammo, etc. They will not affect entities that are - compiled into maps, such as models. -

- -

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- T.A. Game Types -

-7-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/design_tips.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/design_tips.html deleted file mode 100644 index 605c1692..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/design_tips.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - -Design Tips and Suggestions - - - - - -

Design Tips and Suggestions

-
-
- - - - -
  -
-
-

· The skull - generator in Harvester tosses skulls about it to a maximum distance - of 96 units. The id map designers usually allowed for a drop radius - of 104 to 128 units as a minimum. As a rule, the generator should - drop skulls only in a places accessible to the players. Skulls - should not drop out into death fog or the void.

-

· Where you place - the persistent team power-ups is really more a matter of personal - style than a fixed requirement. Generally speaking, we found having - all or most of them in easy view of the initial start positions was - a good thing. In some cases, we found that placing the scout in a - contested area made for interesting game challenges.

-

· It is not - necessary to put every team power-up on every map. If a team - power-up would be overpowering on a map, leave it out. If you study - the id team maps, you’ll note that not every map has every power - up. In a small map, the scout can be unreasonable. In a map where - the base is easily attacked and overwhelmed, the guard can unbalance - things. In a map where the base is easily defended by snipers, the - doubler is powerful.

-

· For One Flag CTF, - the flag should be placed in an area that is roughly equidistant - from both bases and can be easily reached by players from either - team.

-

· The same (as - above) is true for Harvester.

-

· You don’t have - to place the white flag and the Harvester skull generator in the - same place in the map.

-

· Don’t feel - obligated to put the CTF flag bases, the skull receptacles, and the - Overload skull obelisk in the exact same location in the bases. Just - remember to mark gametypes correctly.

-

· Don’t include a - kamikaze in a map where players are unlikely to ever see the full - effect of the explosion.

-

· The personal - teleporter entity takes the player to a deathmatch spawn. That’s - how we restricted where the player teleported to in some maps.

-

· When converting - Q3A CTF maps with small base areas around their flags will probably - need to have their bases enlarged to accommodate the Overload skull - obelisk.

-

· OVERLOAD: When - designing the base for the placement of the skull obelisk, don’t - make it easy for attackers to shoot the obelisk from protected - locations.

-

· FLOOR ARROWS: The - graphic arrows were added to map floors to help the players find - their ways through potentially confusing arenas and to give the - player a sense of how close to the flag room he or she might be. The - rule of thumb was that the greater the distance to the flag, the - more stripes or bars would follow the arrow. Exact style of arrow - use varied from mapper to mapper. Study the individual maps to - determine which works best for your own map. The floor arrows act - like decals (if you ever built plastic model kits, these are the - little graphic things that you soaked in water and then stuck on the - surfaces of the model). The images will appear to be a part of the - surface upon which they rest. For the arrows, you will want to build - them as nodraw brushes of the proper dimension with a surface raised - about 2 units above the floor or wall. For the arrow, use - missionpack/proto2/bluea_dcl for the blue arrows and missionpack/proto2/reda_dcl - for the red. You may have to scale and rotate the texture to get - what you want. For more than three trailing bars, add additional - decals and arrange to suit.

-
-
-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - Map Converter's Checklist
-
- -9-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/map_converters_checklist.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/map_converters_checklist.html deleted file mode 100644 index d6faf3d4..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/map_converters_checklist.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - -Design Tips and Suggestions - - - - - -

Map Converter’s Checklist

-
-
- - - - -
  -

The following is a list of things to look for, do, or - be aware of when converting a pre-existing CTF map to Q3:TA game types.

-
-
-

· New file name. Don’t - overwrite your old CTF map.

-

· If you want to - convert an existing Q3A CTF map to the team arena game types, it - would be good to make a clean break from Q3A. Give it a new file - name and even a new map name. We did the same for our original CTF - maps.

-

· If you don’t - already have one, build a central “neutral” area in keeping with - the style of the rest of the map. This is an important play area, - perhaps even more so than the bases. Make the opportunities for - gameplay here just as exciting as the flag bases.

-

· Fix-up Time. This is - your opportunity to fix all those things that players have been - telling you are wrong with your map (sticky spots, bad hallway - connections, misaligned textures, poor item placement). The id guys - did it, so can you. It’s also a good time to read or re-read the - Q3Radiant section on optimizing maps for bots (you may want to look - for the recent updates that accompany the bspc tool). Pay particular - attention to placement of clip brushes and cluster portals. If - players can’t reach an area of the map (such as sky above ceiling - grills, or beyond window bars, fill the unreachable space with clip - brush - just walling it off is often worse than doing nothing.

-

· Add Team Power-ups - in or near bases.

-

· Place .md3 powerup - pad bases beneath Power-ups

-

· Remove “ow” - marks from floors that were used as weapon locators. Replace them - with the base floor for that texture. You may also be able to - simplify the geometry.

-

· Place Weapon pad - markers (use the pfbs) beneath weapon spawns.

-

· Consider adding new - weapon types or replacing existing ones with the new weapons. Don’t - just do it because they are new, though. Make sure the weapon is - appropriate to the map. If you don’t like a weapon or it’s - effect on play, don’t add it to your map.

-

· Replace old Q3A CTF - banners with new Q3: TA banners. Use the banner prefabs (pfbs) for - ease of placement.

-

· Consider adding team - logos as decals (see FLOOR ARROWS above) to other parts of the map, - like walls and floors.

-

· Make sure that the - team logos on banners and floors; walls, etc. have the proper - facing. You should be able to properly read the word “red” or - “blue” on the placeholder logo.

-

· Add in the flag - bases and obelisks. Follow directions noted above (page 9) to mark them for - gameplay types.

-
-
-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - Related Links
-
- -10-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/preface.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/preface.html deleted file mode 100644 index e5de09b3..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/preface.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - -If you are already familiar with the tools and processes for making your -own - - - - -

 

-

 

-

If you are already familiar with the tools -and processes for making your own

-

Quake III Arena game maps, then this -document and the other files in this directory

-

are what you need to create Quake III: Team -Arena maps. If you have previously

-

created team play style maps (for Capture -the Flag or other game “mods”),

-

it will not be difficult to add the new game -entities and models.

-

If you think you might be interested in -making game maps, consider

-

stopping by the Level Editing forum at Quake3World

-

registering as a forum user and asking what -you need to do to

-

get started. From the Quake3World home page, -click

-

on the “Community” button, and then

-

select the “Level Editing” button.

-

 

-

Back - Table of Contents

-

-2-

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/related_links.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/related_links.html deleted file mode 100644 index fabfcf9d..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/related_links.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - -Related Links - - - - - -

Related Links

-
- -
-
- - - - -
-

Back
-
- - Table of Contents
-
- -11-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/ta_game_types.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/ta_game_types.html deleted file mode 100644 index 7735ebc2..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/ta_game_types.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - -Design for all Team Arena Game Types - - - - - -

Design for All Team Arena Game Types

-
-
- - - - -
      We - encourage designers to make their maps compatible with all “team” - style games. Team DM and Tournament are the exceptions here. Experience - shows that balanced CTF style maps do not make great (or even good) Team - DM maps. To do this, you will need to mark some of the team game - entities for multiple game types. An example is the obelisk used in - Overload. The entity is also used to mark the location of the - skull-receiving base in Harvester. If your Overload obelisk and your - Harvester base are to be in the same location give the entity a - key/value of “gametype/obelisk, harvester”. If you choose to place - the entities in different locations in each game type, you will need to - place separate entities and mark them appropriately. -

 

-
-

Placing Common Entities for all Game types

-
-

     Typically, the player - start, respawn, power-ups, ammo and weapon placement are the same for - each game type. It helps players if they don’t have to remember a lot - of placement locations from game to game. But this doesn’t have to be - the case. Use the gametype key to control placement if you want them - different between game types.

-

      Place - team_CTF_blueplayer entities in the locations where you want blue team - members to join the game and team_CTF_redplayer entities in the - locations where you want red team members to join the game. You should - place enough of these to accommodate the maximum number of players that - will be on a side (though usually no more than 8 to a side in a “normal” - map and as many as 32 in an extremely large terrain map). If you place - too few, teammates are likely to telefrag each other as they join the - game.

-

      Place - team_CTF_bluespawn entities in the locations where you want blue team - members to respawn when they die in the game. Place team_CTF_redspawn - entities in the locations where you want red team members to respawn - when they die in the game. You should place enough of these to - accommodate the maximum number of players that will be on a side (though - usually no more than 8 to a side).

-

      Place the four - persistent power-ups (guard, doubler, scout, and ammo_regen) in or near - the bases of each team. On the blue side, check the BLUETEAM spawn flag - box for each entity. On the red side, check the REDTEAM spawn flag box - for each entity. Place (and center) the appropriate spawn spot model - beneath each power-up (spawn.md3 on the blue side, spawn_red.md3 on the - red side).

- -

 

-
-

Placing Game-type Specific Entities

-
-

      Each of the four - team-style game types has a set of associated entities that go with it, - whether it’s the flags and bases in Capture the Flag, or the obelisk - in Overload.

- -

Capture the Flag (required entities)

-
-

      This corresponds - to the cvar: “/g_gametype 4” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/ctf”

-

      Place a - team_CTF_blueflag in the blue base.

-

      Place a - team_CTF_redflag in the red base.

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. This forms the flag base. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. This - forms the flag base. Do not mark any gametype.

- -

 

- -

One Flag CTF (required entities)

-
-

      This corresponds - to the cvar: “/g_gametype 5” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/oneflag”

-

      Place a - team_CTF_blueflag in the blue base.

-

      Place a - team_CTF_redflag in the red base.

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. This forms the flag base. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. This - forms the flag base. Do not mark any gametype.

-

      Place a - team_neutralflag some place in the neutral area of the map, preferably - equidistant from both bases.

- -

 

- -

Overload (required entities)

-
-

     This corresponds to - the cvar: “/g_gametype 6” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/obelisk”

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. Do not - mark any gametype.

- -

 

- -

Harvester (required entities)

-
-

      This corresponds - to the cvar: “/g_gametype 7” when entered in the console.

-

      Entities in this game - must have a value/key setting of “gametype/harvester”

-

      Place a - team_blueobelisk in the blue base. Do not mark any gametype.

-

      Place a team_redobelisk - in the red base. Do not mark any gametype.

-

      Place a - team_neutralobelisk some place in the neutral area of the map, - preferably equidistant from both bases.

- -

 

- -

Using Entities for All Gametypes

-
-

      This assumes - that the designer will use the same entities, in the same locations for - all gametypes. Mark the gametypes on each entity as noted:

-

      Place a - team_CTF_blueflag in the blue base.

-

      Gametype: ctf, oneflag

-

      Place a - team_CTF_redflag in the red base.

-

      Gametype: ctf, oneflag

-

      Place a - team_blueobelisk in the blue base where the goal should be. Give it a - facing angle. This forms the flag base.

-

      Gametype: Do not mark - any gametype.

-

      Place a team_redobelisk - in the red base where the goal should be. Give it a facing angle. This - forms the flag base.

-

      Gametype: Do not mark - any gametype.

-

      Place a - team_neutralobelisk some place in the neutral area of the map, - preferably equidistant from both bases.

-

      Gametype: harvester

-

      Place a - team_neutralflag some place in the neutral area of the map, preferably - equidistant from both bases.

-

      Gametype: oneflag

-

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - Design Tips
-
- -8-

-
-
- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/table_of_contents.htm b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/table_of_contents.htm deleted file mode 100644 index 7bc4d36d..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/table_of_contents.htm +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - -Table of Contents - - - - -

Table of Contents
-
(HTML Conversion by AstroCreep)

-
- - - - - -
-

Title..........................1
-
- -Preface..........................2
-
- -Table of Contents..........................3
-
- -Team Arena Entity Definitions..........................4
-
- -Team Arena Prefabs..........................5
-
- -Team Power-Up Bases..........................6
-
- -Using the New Game Entities..........................7
-
- -Design for All Team Arena Game Types...........................8
-
- -Design Tips and Suggestions...........................9
-
- -Map Converter’s Checklist.........................10
-
-Related Links.........................11
-

-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- - T A Entity Definitions
-
- -3-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_entity_definitions.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_entity_definitions.html deleted file mode 100644 index 6cc9e20d..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_entity_definitions.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Team Arena Entity -Definitions

-
- - - - -
The enclosed tadef_ptch.def - file a bare bones list of entity descriptions for use in the Q3Radiant - editor. You can paste it onto the end of your current def file (or better - yet, into a copy of that file). -

This is the Quake III: Team Arena entities definition - file patch (note that it is not the entire definition file). The Q3Radiant - editing tool uses this data to place game entities (ammo, weapons, - power-ups, etc.) in the game map and the game. It contains the definitions - for all the power-ups, game-specific items (like the Obelisks from - Harvester and Overload). To use these definitions, open the text file and - copy it. Now open the definitions file that you are currently using - (probably in Baseq3/Scripts) and paste the contents of your clipboard at - the end of the file. Now save this modified document as “teamarena.def” - in a folder in your Quake III Arena folder called Missionpack/scripts. - Open the Q3Radiant editor. Click on the File menu, and then select the “Project - Settings” entry. This brings up the Project Settings pop-up window. - Change the entitypath field so the pathname leads to the new definitions - file.

-

Example: If the field currently reads c:/quake3 or - g:/quake3/missionpack/scripts/*.def, change it to - c:/quake3/baseq3/scripts/teamarena.def

- -

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- -  Team Arena Prefabs
-
- -4-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_prefabs.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_prefabs.html deleted file mode 100644 index 15557ed2..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_arena_prefabs.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Team Arena Prefabs

-
- - - - -
There are eight prefabricated brush groups - in this folder. They are pre-built game components (using brushes and/or - curve patches) for some of the objects frequently used in Quake III: - Team Arena. The shader scripts and textures for these prefabs are - already a part of the Team Arena Mission Pack pak file and need not be - added separately. -

      The pads act like - decals (if you ever built plastic model kits, these are the little - graphic things that you soaked in water and then stuck on the surfaces - of the model). The images will appear to be a part of the surface upon - which they rest. For the pads, you will want to place them in such a way - that they are centered under the entity boxes above them. The surface of - the pad should be one to two units above the surface beneath them.

-

When positioning the banners, the banner brush should - not touch the surface behind it.

- -

     armorpad_blue.pfb - Place this prefab beneath yellow and/or red armor on the blue team’s - side.

- -

     armorpad_red.pfb Place - this prefab beneath yellow and/or red armor on the red team’s side

- -

     armorpad_neutral.pfb - Place this prefab beneath yellow and/or red armor in neutral areas.

- -

     weaponpad_blue.pfb - Place this prefab beneath weapons and (non persistent) power-ups on the - blue team’s side.

- -

     weaponpad_red.pfb - Place this prefab beneath weapons and (non-persistent) power-ups on the - red team’s side.

- -

     weaponpad_neutral.pfb - Place this prefab beneath weapons and (non-persistent) power-ups in the - map’s neutral areas (in between bases).

- -

TA_banner_blue.pfb This - prefab is a smallish blue team flag with the placeholder blue team logo - placed over the flag surface as a decal. During game play, this logo - will change to show the logo selected by the blue team. Designers may - wish to scale the size or proportions of this banner to suit their - needs. Always make sure that the word “blue” on the logo reads - correctly. Otherwise, non-symmetrical team logos will appear backwards - on the banner.

- -

TA_banner_red.pfb This - prefab is a red team flag with the placeholder red team logo placed over - the flag surface as a decal. During game play, this logo will change to - show the logo selected by the red team. Designers may wish to scale the - size or proportions of this banner to suit their needs. Always make sure - that the word “red” on the logo reads correctly. Otherwise, - non-symmetrical team logos will appear backwards on the banner.

-

 

-
-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
-  Team Power-up Bases -

-5-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_powerup_bases.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_powerup_bases.html deleted file mode 100644 index b082e317..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/team_powerup_bases.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Team Power-up Bases

-
-
- - - - -
In Quake III: Team Arena, a base model - marks the location of each of the four persistent Team Power-Ups (Ammo - Regen, Guard, Doubler, and Scout). These models are not generated - programmatically (as is the case with the obelisks and flag bases) and - must be placed in the game maps by the mapmaker. Position the model such - that the center of its origin sits on top of the floor and so that it is - centered beneath the Team Power-Up. There are separate models for the - blue and red team sides. If you choose to place a powerup in neutral - territory (as in MPTERRA3), place a weaponpad_neutral.pfb under the - powerup. -

Copy the spawn folder into the models/mapobjects - directory in your missionpack directory (if necessary, create all three - directories now). Do not create a new directory for them. Shader scripts - and textures for these models are already a part of the Mission Pack pak - file and need not be added separately.

-

spawn.md3  This model is the location marker for the - blue side.

-

spawn_red.md3  This model is the location marker for - the red side.

- -

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
-  New Game Entities -

-6-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/using_new_game_entities.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/using_new_game_entities.html deleted file mode 100644 index 19ddc0d0..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pages/using_new_game_entities.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - -Team Arena Entity Definitions - - - - - -

Using New Game Entities

-
-
- - - - - -
The best way to get a feeling for how the - new game entities should be used is to play Team Arena for a while. Here - are the id team’s rules and suggestions for using the new entities. -

 

-
-

Game Types

-
-

There are eight game types (including those from - original Quake III Arena). Unless marked with a gametype key, entities - will appear in every game type. The game types are:

- -

Gametype Type of play corresponds to cvar …

-
-

FFA (multiplayer Free for All deathmatch) corresponds - to g_gametype 0

-

Tournament (1 on 1 deathmatch) corresponds to - g_gametype 1

-

Single (Single Player Free for All) corresponds to - g_gametype 2

-

Team (Team deathmatch) corresponds to g_gametype 3

-

CTF (Capture the Flag … traditional rules) - corresponds to g_gametype 4

-

Oneflag (single flag CTF) corresponds to g_gametype 5

-

Overload (destroy the opponent’s obelisk) - corresponds to g_gametype 6

-

Harvester (collect skulls, take to opponent’s base) - corresponds to g_gametype 7

- -

 

-
-

The “notfree”, “notteam”, and “notsingle” - Keys

-
-

These are still checked by the game engine. They are - checked AFTER the gametype keys are checked. Because they complicate the - design (simple is usually best), we recommend not using them in Quake 3 - Team Arena maps.

- -

 

-
-

Enable/Disabled entities for TA / Vanilla Q3

-
-

- Entities can now have one of the following epairs: -

- -

- "notta" "1" -

- -

- for when the entity is not supposed to show up in Team Arena, and: -

- -

- "notq3a" "1" -

- -

- for when the entity is not supposed to show up in Quake III Arena. -

- -

- An entity may have both epairs, meaning it will only show up in mods. -

- -

- The epairs only work on "gameplay" type entities such as weapons, - powerups, items, ammo, etc. They will not affect entities that are - compiled into maps, such as models. -

- -

 

-
-
-
- - - - -
-

Back
-
- - Table of Contents
-
- T.A. Game Types -

-7-

-
-
-

 

- - - - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/entries b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/entries deleted file mode 100644 index b142b4f2..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/entries +++ /dev/null @@ -1,300 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Team_Arena_Mapping_Help/pics -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -MENUBACKgif.gif -file - - - - -2012-04-01T16:51:46.189660Z -839e9cc96548eebf89596f615e14373c -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -21338 - -INTRUDER.gif -file - - - - -2012-04-01T16:51:46.194660Z -9b3060210f0318806d2b3c60d4422213 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4732 - -logo.gif -file - - - - -2012-04-01T16:51:46.198660Z -4792b845f9d48bb291c833378b3a80b5 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -42182 - -THEFALLEN.gif -file - - - - -2012-04-01T16:51:46.232662Z -75310c6dfbe5dbc56d69cc6e964cbd55 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5367 - -MAINPOP.gif -file - - - - -2012-04-01T16:51:46.236663Z -e44b490395ae52234df64e1be49c2bd9 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -25903 - -CRUSADER.gif -file - - - - -2012-04-01T16:51:46.240663Z -a1f1727c6011a11e37b3c010af2b84ad -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4292 - -STROGGS.gif -file - - - - -2012-04-01T16:51:46.247663Z -4127cd99239e7ef7cd02e0ea5308e4a5 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4884 - -PAGANs.gif -file - - - - -2012-04-01T16:51:46.268664Z -8bf0f4500d1672bc0a0b2872ff56174f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3861 - diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/CRUSADER.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/CRUSADER.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/CRUSADER.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/INTRUDER.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/INTRUDER.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/INTRUDER.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MAINPOP.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MAINPOP.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MAINPOP.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MENUBACKgif.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MENUBACKgif.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/MENUBACKgif.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/PAGANs.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/PAGANs.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/PAGANs.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/STROGGS.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/STROGGS.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/STROGGS.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/THEFALLEN.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/THEFALLEN.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/THEFALLEN.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/logo.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/logo.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/prop-base/logo.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/CRUSADER.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/CRUSADER.gif.svn-base deleted file mode 100644 index 002d850c6e91b0aba7a4cb88f1b0614ec96efc02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4292 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 Wfn+}Lm4|}tW#4OG-bSz?2>UN<@72Ws diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/INTRUDER.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/INTRUDER.gif.svn-base deleted file mode 100644 index 34a52f0eccc420f91de6ced9b2f26ea41213b332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4732 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 RI<>(8HLpa?Wn;koe*u;cen|iT diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/MAINPOP.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/MAINPOP.gif.svn-base deleted file mode 100644 index cdd9c0296603914b6b5cf5f814890db744c3e443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25903 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 J20>uS{{fyDIxqkL diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/MENUBACKgif.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/MENUBACKgif.gif.svn-base deleted file mode 100644 index ec299c782f9f804287115c1e43dbdc09daef8f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21338 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

TF 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

oXU_ysEV8LEVxn|h z>6|ofhjg4{(RwipBQ|h_78((eqUUDJY#nwDUkTD^dW-iEUTWz}Rw7H}mUAdIZZX?@ z@jWkN$Uk1i?g3DHQ#RbP0@O;Y9xdxZN)#LsUM-+zDUn~~R7X1tz7{1m5mK~tDg36% z#M^l?Mo~+x(67-)$Zdq&idd?rD$>f~ajR;)3Z_Ovh`kV+{lN8oEa%}IkpW2FDvs2| zY&f~)Rz1tUmXy0!j%kCBnec7!LaWsK+fM$U>D zDXCh8H#$a66skBf{qV!dOcvc1?uz0_xD#u9k%)jP_@E`olj{d#Qpl9&&Cy=^S#KU{clp|5jtZnZiXH9 zi4v{@@H9ET$w&!-Dcj%=8%xnErQD*{A=lba=K8!+Gzsa%89dOHhXncp0;pJAc6;BgmMcW{&;BgJTDzqsI&}L zTKYnaxad>y<^P_VM09y+d3ohX`DsqY z+2{(N3*{BRj8t6aR9=a${9k$H^^wY3oT}T=Rd>p(?u}Ia&Z!=Xu6|rz{dA=I1*hg^ Pbj|DXntOf_04(`Grl5?Z diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/PAGANs.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/PAGANs.gif.svn-base deleted file mode 100644 index 9eb6c4e57fd2c503120abffef83f1b25b13b048b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3861 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 DCCwN5 diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/logo.gif.svn-base b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/.svn/text-base/logo.gif.svn-base deleted file mode 100644 index 3dfbdca55a7d08a672af5052a5fd1bc277a27dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42182 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 F{s%}u*9QOq diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/CRUSADER.gif b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/CRUSADER.gif deleted file mode 100644 index 002d850c6e91b0aba7a4cb88f1b0614ec96efc02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4292 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 Wfn+}Lm4|}tW#4OG-bSz?2>UN<@72Ws diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/INTRUDER.gif b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/INTRUDER.gif deleted file mode 100644 index 34a52f0eccc420f91de6ced9b2f26ea41213b332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4732 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 RI<>(8HLpa?Wn;koe*u;cen|iT diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/MAINPOP.gif b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/MAINPOP.gif deleted file mode 100644 index cdd9c0296603914b6b5cf5f814890db744c3e443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25903 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 J20>uS{{fyDIxqkL diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/MENUBACKgif.gif b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/MENUBACKgif.gif deleted file mode 100644 index ec299c782f9f804287115c1e43dbdc09daef8f77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21338 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

TF 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

oXU_ysEV8LEVxn|h z>6|ofhjg4{(RwipBQ|h_78((eqUUDJY#nwDUkTD^dW-iEUTWz}Rw7H}mUAdIZZX?@ z@jWkN$Uk1i?g3DHQ#RbP0@O;Y9xdxZN)#LsUM-+zDUn~~R7X1tz7{1m5mK~tDg36% z#M^l?Mo~+x(67-)$Zdq&idd?rD$>f~ajR;)3Z_Ovh`kV+{lN8oEa%}IkpW2FDvs2| zY&f~)Rz1tUmXy0!j%kCBnec7!LaWsK+fM$U>D zDXCh8H#$a66skBf{qV!dOcvc1?uz0_xD#u9k%)jP_@E`olj{d#Qpl9&&Cy=^S#KU{clp|5jtZnZiXH9 zi4v{@@H9ET$w&!-Dcj%=8%xnErQD*{A=lba=K8!+Gzsa%89dOHhXncp0;pJAc6;BgmMcW{&;BgJTDzqsI&}L zTKYnaxad>y<^P_VM09y+d3ohX`DsqY z+2{(N3*{BRj8t6aR9=a${9k$H^^wY3oT}T=Rd>p(?u}Ia&Z!=Xu6|rz{dA=I1*hg^ Pbj|DXntOf_04(`Grl5?Z diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/PAGANs.gif b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/PAGANs.gif deleted file mode 100644 index 9eb6c4e57fd2c503120abffef83f1b25b13b048b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3861 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 DCCwN5 diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/logo.gif b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/pics/logo.gif deleted file mode 100644 index 3dfbdca55a7d08a672af5052a5fd1bc277a27dfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42182 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 F{s%}u*9QOq diff --git a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/start.html b/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/start.html deleted file mode 100644 index 398230e5..00000000 --- a/install/installs/Q3Pack/install/docs/Team_Arena_Mapping_Help/start.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - -MAPPING HELP - - - - -

 

-

-

MAPPING -HELP

-

by -Paul Jaquays
-
Copyright © 2000 id software, inc.

-

      -    -    -    -

-

 

-

START

- - - - diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/entries b/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/entries deleted file mode 100644 index d832938b..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/entries +++ /dev/null @@ -1,68 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Terrain_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pages -dir - -start.html -file - - - - -2012-04-01T16:51:51.567968Z -0025952bdb22187b5bff2b055cf56a63 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1330 - -pics -dir - diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/prop-base/start.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/prop-base/start.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/prop-base/start.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/text-base/start.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/text-base/start.html.svn-base deleted file mode 100644 index c63f6d2e..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/.svn/text-base/start.html.svn-base +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - -Terrain Construction for Quake 3 Engine Games - - - - - -

-

  - -Special Thanks to Jim Dosé and Jan Paul van Waveren -for their assistance and review (and making this all work in the first place) -and the same gratitude to Astrocreep for his review and suggestions for making -it into something people could understand.

-

The material here is for use in conjunction with the Q3Radiant manual for the -Quake 3 Engine and presumes familiarity with that tool and game engine. Although -compiling switches and shader commands are included here, this is not intended -to be a general update or revision to the Q3Radiant manual

-

Table of Contents

- -

-1-

- - - - diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/entries b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/entries deleted file mode 100644 index 71a270a2..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/entries +++ /dev/null @@ -1,1082 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/docs/Terrain_Manual/pages -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -the_meta_shader.html -file - - - - -2012-04-01T16:51:49.554852Z -7863e0c0b456e8f2fe355b56b52e5b7e -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4965 - -adding_bots.html -file - - - - -2012-04-01T16:51:49.615856Z -48bc8be5f9a212e61611298cf7a48f76 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1379 - -key_changes.html -file - - - - -2012-04-01T16:51:49.628857Z -255007af41994b3cd67c2fe744cc075e -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2706 - -related_links.html -file - - - - -2012-04-01T16:51:49.636857Z -a4afc479add39134b0fbdd4b8f44750b -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1297 - -boxing_in_the_world.html -file - - - - -2012-04-01T16:51:49.677859Z -ca930f9095817286f24b2036db553cd9 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2144 - -terrain_texture.html -file - - - - -2012-04-01T16:51:49.680860Z -4a0223e571794d1bbbaf5c47bd7ca71c -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2468 - -other_possible_height_map_tools.html -file - - - - -2012-04-01T16:51:49.728862Z -cbdab2216a768fe3083b3e92242fd1b7 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2650 - -height_maps.html -file - - - - -2012-04-01T16:51:49.734863Z -1cecddb7ac0e81b58b8ea0e9f9a65501 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -10197 - -terrain_mesh_into_terrain_entity.html -file - - - - -2012-04-01T16:51:49.808867Z -cfa6cd13302231c99c79f55259e73c04 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1844 - -clipping_the_terrain.html -file - - - - -2012-04-01T16:51:49.782865Z -0be10388e3e35a4e766bcfc522e94703 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2341 - -mapping_the_textures.html -file - - - - -2012-04-01T16:51:49.825868Z -098c6db7a8ea96220ec26cb5b214a6c9 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3792 - -terrain_entity.html -file - - - - -2012-04-01T16:51:49.841869Z -2371018f123ce9e4e0ababcd7377fd3f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2279 - -glossary.html -file - - - - -2012-04-01T16:51:49.849869Z -85d820c636168e29bc790eaeb489103e -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1875 - -entity_keys_and_values.html -file - - - - -2012-04-01T16:51:49.970876Z -0d8ca41138b9bfc83e9db550a05b5d32 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5347 - -adding_buildings_to_terrain.html -file - - - - -2012-04-01T16:51:49.447846Z -583573b09c72f60241f54cca0cbd40c4 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3954 - -new_or_revised_q3map_shader_comm.html -file - - - - -2012-04-01T16:51:49.450846Z -cc8433e61531ba1090bcae266539a21e -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -17401 - -creating_the_terrain.html -file - - - - -2012-04-01T16:51:49.621856Z -910908608d77bdc45788a59cbc1bb93b -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3181 - -introduction.html -file - - - - -2012-04-01T16:51:49.671859Z -41c0673454d8294e0449b861ada651ce -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2297 - -terrain_related_worldspawn_features.html -file - - - - -2012-04-01T16:51:49.674859Z -896886b3b1cdf315ce0ac922cff854c8 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -8068 - -manipulating_the_terrain_mesh.html -file - - - - -2012-04-01T16:51:49.738863Z -ccb406bbfebb5a04e110ee7f3c1293ce -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1622 - -table_of_contents.html -file - - - - -2012-04-01T16:51:49.766865Z -86341bc04f2759693bd2840e635bbc9c -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -3598 - -lighting_the_terrain.html -file - - - - -2012-04-01T16:51:49.799866Z -0934408ea820ce50fa39910042323cd6 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -7400 - -height_map_into_terrain_mesh.html -file - - - - -2012-04-01T16:51:49.816867Z -b2fd58df66284ebf1f937005e08383bf -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1771 - -creating_the_alphamap.html -file - - - - -2012-04-01T16:51:49.833868Z -31be3ad6e6452f60bbb79517b7c9ef48 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11027 - -suggested_gensurf_settings.html -file - - - - -2012-04-01T16:51:49.857870Z -fe12cc8db710f012314ad76c52ded5e0 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5521 - -Image3.gif -file - - - - -2012-04-01T16:51:49.887871Z -21a55417e69dda275c48fbc0492d0841 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -46899 - -art_tools.html -file - - - - -2012-04-01T16:51:49.884871Z -193099af318a7d5dc749ba6e9f63e4aa -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1442 - -Image4.gif -file - - - - -2012-04-01T16:51:49.890872Z -69603e176b566bf9917974a48ffca285 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -24307 - -Image5.gif -file - - - - -2012-04-01T16:51:50.046881Z -7afc45a08c0fbd1ad561c265482c14a5 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -27694 - -Image6.gif -file - - - - -2012-04-01T16:51:50.177888Z -21a55417e69dda275c48fbc0492d0841 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -46899 - -blocking_vis.html -file - - - - -2012-04-01T16:51:50.049881Z -7cde96b9c64141d26a31f3b062ffb4ab -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5406 - diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_bots.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_bots.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_bots.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_buildings_to_terrain.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_buildings_to_terrain.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/adding_buildings_to_terrain.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/art_tools.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/art_tools.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/art_tools.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/blocking_vis.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/blocking_vis.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/blocking_vis.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/boxing_in_the_world.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/boxing_in_the_world.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/boxing_in_the_world.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/clipping_the_terrain.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/clipping_the_terrain.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/clipping_the_terrain.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_alphamap.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_alphamap.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_alphamap.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_terrain.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_terrain.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/creating_the_terrain.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/entity_keys_and_values.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/entity_keys_and_values.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/entity_keys_and_values.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/glossary.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/glossary.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/glossary.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_map_into_terrain_mesh.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_map_into_terrain_mesh.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_map_into_terrain_mesh.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_maps.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_maps.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/height_maps.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/introduction.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/introduction.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/introduction.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/key_changes.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/key_changes.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/key_changes.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/lighting_the_terrain.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/lighting_the_terrain.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/lighting_the_terrain.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/manipulating_the_terrain_mesh.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/manipulating_the_terrain_mesh.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/manipulating_the_terrain_mesh.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/mapping_the_textures.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/mapping_the_textures.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/mapping_the_textures.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/new_or_revised_q3map_shader_comm.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/new_or_revised_q3map_shader_comm.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/new_or_revised_q3map_shader_comm.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/other_possible_height_map_tools.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/other_possible_height_map_tools.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/other_possible_height_map_tools.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/related_links.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/related_links.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/related_links.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/suggested_gensurf_settings.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/suggested_gensurf_settings.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/suggested_gensurf_settings.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/table_of_contents.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/table_of_contents.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/table_of_contents.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_entity.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_entity.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_entity.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_mesh_into_terrain_entity.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_mesh_into_terrain_entity.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_mesh_into_terrain_entity.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_related_worldspawn_features.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_related_worldspawn_features.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_related_worldspawn_features.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_texture.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_texture.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/terrain_texture.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/the_meta_shader.html.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/the_meta_shader.html.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/prop-base/the_meta_shader.html.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/Image3.gif.svn-base b/install/installs/Q3Pack/install/docs/Terrain_Manual/pages/.svn/text-base/Image3.gif.svn-base deleted file mode 100644 index fdb98d272da61e4e970315c6ad6fc3bdc5606a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46899 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%0Am&CJsv20<}L@m^0@9#EmHTq}}!?TI6r4?hU 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�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
^(w?@e zDp7#<=x1jvSNgPiJP3&>Ts~rAdFKjtn*^`cjXK?fDN-ku` zG@%|3|3)pm-D)}>CTeyZ5E}ii!>K&517Wizn5b4GjZAeF*D=e$t5p#!GnG2b@vg;m zl0;03>uw7}Jr~p`p3l*C3$H2en2MB-=e#rP1h`$&0mC;1AB6!*MqlvHmu%nqJh13`K&B<+*I zPsseQ9&bmZLwLfFmDE&Ym|rdF$*cE@{{~02aiFxhrT`=V*`)Mkip4d>fd}v9KPM;o zIC%?Y^yIN_NjqWi%F)d;&bz0uS4^ThHIvsHr6`A|IX=zgVX%<~kTGy{!zR~IEr~P% zI==H?JAaSB$ecbrT>RnE>1u7OZOzW6k~B>eGIiSm?-K0!B z(=d)oTB|X8eY4XQ&16{zd$Tz3RNDu(H5=S+2x`vSGi#ey!Dc>V7+HD|W47rV=x61Y z``x-O7U#z}6G_-|5TnE!tzz95jzscvsp414?WV9okLQ@+@}MBNzywoHnD?aqL< z$E=uCU01|Kn@YJAL{{xuVg#%fnI$Wu8LJ~e!8_$BG1=4wPU$7N%4kT|U`u~+#oGg| zYAljgLIhIA)0`kN$TA!#gDyy?CL?*w^~zmgPRK zb}|7!9E+c@B$?2; zrAJz>d*(k3(%LvX#wr&RkfxH=B3_f;VE^>*juIeUS*>oQ=O9i2E6jWxt_ zOm(C-5Z2fof~WCI=p!fQ#_S8A+{jK_A+*xlZya+qepTxiHRTbHSo%&%ffi>AM?WGT z2i=Fesk~T`{OWs7GJbDUf?JwCXOWGS;k6`OZ8_hUwUttxQl_FO%h%@;fHl`kXLjH9 zQ=&Yr(kypc2m{o>R&#aJvd*79t<&}$|p&Mh{pyNqq$>di(b7TL&O|M`F7|Nqh{`0MA- zziU=k*Ey875Bw0G>?M~GOD*RZM{M59O$l z>F(hxh6HUoD4pQ>R4asRQpB-lD5iRROixR^)Z@vAlt=50exSkYG9ZX#WUr$|a?8x$ zqVWzrLqQg6$tGA|NYp_h1-Ws2zdJ!M*|+LXc>Be&oIox}RAHir{lii~<*fJQh@lJx zUuu?kgI6K&9`tiex9BCM;^2yynWNlrF){)_>zl(Q#I17v|Lb#qxLT(Q*b88sijy!_ zl@zZ#6xk1#09mRxYeC}2bkdiRFz$h*Ual^E0bn`Ml8)8(c2>&*?XBCHyEOM^^9IiH`8Y2*%8iIC z&j_Q%05E>iBpQ4?)3G+2+^>k^`GBiAl@(Cf*y!@MK_4LZP%t3hx?%d}IfYj~Y1(sj z2{EMh__gY+)lT*$fmwNA?EeUe{>=?(#xkLWsGI@luXta=@RvE)8MD9R0EH?AveJ&L zp`lN!=u_6U^#(5IKegqAYnI#3y+Q-2ZEX9N!O4xjeaP?CmHZ+o`$Z2uQ}%6bcKrMb(aYZ!(SPU+REyIgV+RqIWBP4&J9 z(=Co%i(`m5>ca97gM<_E6znNmBVMnJ^uotpy}5X*{jDB{@s?^o&5`AO{swB{wMOqd zKcm;Of6JWev-n`g>#b^C5jf{0Yyg%r@N!Ba=wthmCUJI>e{)d9M70Q*Gw@uEk<)zM zml}VCF(qm}%DtxM<+V`W!nrm)y&yj`_A>iWk91FbyBOhzA41$8i%Y|Ep*zn4Q&Y!t znx3qih6S^qB%*4?j{mFohsQq9fWtG8Z=^F^_=Xb$twRnGw=`4snmOGhJZPX}Np9f) z$n3L5Zs6kggahFUdCL$NnJWkW9cqc*lncmo=$N!+B7jDTc2IhXjl~KY4oa|*ZD`(e z_l>9w)$QS8M_`ee`L_9dQPIo}Z46_Qfy|{(+f@i??A8u?JkS=U9Ic#Nu6R>fI((y2 z51o(6Y(9e(lioEXGB4p{r=l{N_{!ZdpGvSTk98W$F=}aPd)vIGs=t6loxHj?>_0Le z@_)>-%_c?W634T4Zg~Ndyqv#}p^1eq?(}uW|GO9OF*G-KdT+5YLG`psvf$rcVJA7+hJ8G`9bv^gF1hyp~)?o+FBI-tst` zBJPITi8B=`kS31J`!z>&LcxiFwcRsB;HaVunV7*zoO6kWP{FIo&vBzJwL~@S5X;v~ z&Ywj^U$hgLKZpGfrORi4T5oO0#Xz?Ingkbn#JfdydavFa2yL}epuZeJ7?Hb-DR64t zS6|hs=7?L@zXw&orEUUT6i0JayJK>zJc#P+Z%P})UZ{lWj80%bgicrA**L2@E2W>D zhh*Em>%L?b@KHnRC*;S0TE2(6khA|wjlQzc<5ml6thZw=7Z-Y-=S>j6yIo$hOI{(M z%e_CDydhfU4s}Nf>{^>vzMQ!$bUVX!IGRer*q<=lRbzh7c4qgCU%jQyj50M5Oc{s9{>c4^DQN z%VcF;AQj6xZSbAqdD+IUSCo@Sd>0++8Fm3xuwhST#Ha`DjWx9R1N;8~RY0o0`!A;) zFSzuBZn2r^L9^q?%ACm6Foifs5@9d}EAG{5Sup6P8p@bW5hMhhYEw3{9<q+ytOs^@7ZX})<$koPyHw|tL7NeagW|L%bA1_I{M()?Sip4;Mo&2 z58uup6-S`6qZ^C#>$~(76r8aAFEyS?BP!h;g_au>mx)tA&|hZ8z)@pJoB^C1zSE^v z?smE7t}*T*zn2;ywZIxg-JlTTkl25ZNv!VJYRa{EQ!@J!nJ0^zzad@joFdCS9fP z{uCQzwgY5y>-Cyla_AHDgr7`05Nn!O%d=CX;SXUl@s)g0%MbC>i>YQb*@>5(JDXNBGqaP-q)V2aHYRv@3?tTbhgl|NDE7r-p2tSEA6*2C*Obw3m{4U#=;SnQr&W5S6JvQ zokN#4UQkGsEVMlDKga_RU)Mqd)-V6`4wUfT6WU+-GF#r2f|QHIaTTZQW>%^*oFOgW zZyEm&^5ar8M?t|iND);pxDhtwP9;3;%ejP_?J%LoI5D1*N3qPTEuj0>mcvv#sYhW$ zUM@~(JX7zo6tEyZ7!pZ#r}{mk=J)acO1A{JYPZ@eW8H1(#R>4q5Sd|!oZo)nO9D>3 zmv5_`3=!yUM#ge3%8(X@Mjn+DYNumcJ#;&tN=w$1usm~=+_$kPF;Mcd8vT-)qE(cq zL#8_b09wk)$R{ l$Lb_fmKj{)bbh}$EASjj(w7iqK4W&<*YkTyP6Lz?yFT(hpiaWdR&TdT4*uR^Y&H4OV`Uwf3L4w*vaMfgA_T_KWDk@ZaaNE*x znYo0Rf7xnN(3a-H(n(r(u}}I)EcJKA|F%-wqcUk0!3|Qz)?v zQoMqzwP(Hlk1OfAQ{_KDvf}vhcQON=>QEvLUDmwzO9-f@!nq$`u4=vQx$O07+03P+ z?FOwcd_5QQ7MwQWk)auKTWAy=9#1pry6@T8E@zIx%#_k~G(>JGw$hNIi*R7tBUra3 zbTHPGMB9F?RgK?y%~(Iuyf!A&k^G48Tvg#vail3med}XO+b$Vy*3TFCzvQ|W*oHzs zkkU2aL)Hqu$f8o^Hfx`4KI_u3k&qBz`%e^T&t(nz{Yur& zC*^Ey0@@v^Y+HlI>0^a}!5h4?kZY9vzt$Gcmi(uqfr2odjsVnLTRRbX!ZL_fir% z+Iz0F&Ma<7l8JwLmy@SLXiGJ*a=9=0Wo-U-%O3aL%e&EUBz`4#0;xT(W}_&MU#qcw zziVFoApn>R4dFQ^Osaz)ape7dfuJ7OW9R?M+i$*UXSqQzx<(!u%Qf0FY-UZ!u-!rM zzJta$^D-Wc4*JXDktSYB)~W)8jVjJzT)5>n$$3g<1@^ysdG7vgqwYLqXU$FLGh;Zy z9Ku#_{q>eOt@$uRu`(JHVzpR2{lD7Hf7Kw{3pBh#rdyY!lh{I}kJn})^aD3TBO2Fq zWwkMEH`l-CxR?4%Kf?awf6+5%c+k!~%pPn<;Mm3I<#I{QqD<^9`Peka;9;7vpGb$P zP;bt)DZWW}m-cU^ve&+lA|v*#vo)7*rdupI*-a>4oY#+XSX6OV7pGLznWiX3Y(EDWmq}JP&USe}A7o-ltq9 z^5o__k=y!Y`YD&YG#78rF|s|SVy#Q##USknP78@E_dtaWyVHHL4Wt(uYVe0*c3b#!ev&t0-{E&=VS_+K@P)L7D@G*>vL@W_BVtpQKn@ zmt5hrIIADrnlYTxc?MYy+0se7H@hi4Q|H=ARJ{GLu`tV*!~WF^kbkB*f+`fcl(42( zmi(dsGk2KBl5fDgP){OUI*e*&1|-HnatbGI4&4MP*M2U0tK)czWBs;13A z<}=tp<@E(i!f`O*-`kaSqP?9b@4$5;lq1zZyKNTlXG_*dKBDJ17oy9b8;ddrc8cZ4 zDIlzSJC(WL&)MS7Gg`j)8ybUsfMA6og{r|H3u*ro%a_0lC%p9~BBEz+?lSs~dm!fz zk*pFX_VE9Tt(s8wH((oa1X#HX;R?FA?aeDKJhJUBkIu{Ep38}>8!%D;GC*x&VOtpN zn?(ll3F7moDRuitn6Y#@D-|SaJ9#@*Dde;YZ6dW_6{o1(h8*?v&CkY=S46E+;n-1( zbdzFZ<{trb7Ux=r%0;Ar}H2mX_`R|UAaaO%Ze69qyxLI0#FGvry^ zXowQvB%kcPYW&nAZWSf3LQ{3G?=}&N&yQ4d{)t>Q0+mO~A&R_hNLbT|D zwQcI*XJu{G)-8A7ru{pAOFd*F@;6X|Lh{Xoii>-54JFJ_>IWG1n6rmGn)C3*qo%

yGb^u^zP*FKP6M<3Fyz|-{0Fmf4mbp$KS>z_-V;iW!&0_hzs`<($T9kw**~j!1>&n9|+Z|cs`8jc|Ij0>70!B3uV-y(BiSv zx8A9~H4i0l^!~6Wuy67*!_+F8T;afiOo!Z-i>ogUjoxrX4`ml0(tBKpo;5x{^B<4# zHVu7$U`7~OjnVZ4&za^}YHe{=!Cek|_sI`D@k^?C;Zr~^SM3boT#``sO zJd%EPJ}1>JhuSXi5LCQ89jqZ9ghw)!?t=Z3eH|E1S3Ho__HU+oPT}E#+`}CzZ#M+g zXW5%CizC%nI8a{K?*5BT@sfKg4Qi!C)#@*11L9jNnS~b!T*j<$1WWWDC!u2Ye*F-|^7bT$Y_#(05M4Ql-k0 zL*qe0#U}X%$|H=uc8vF$DnAzW91k&C$Ss80i^?Dto@h*A+ORj3| za8sIdagOaQD9+|oDt5gB!BwlG`y_EC$+J?FznH0PvWQU5W0==X#^T8@)JNW3NRM*+ zwk2vQ9!uYyYYm@D4COy3na$`S9r8x^M)Bl1p`a?V&Ghe5WQ>vNqzzs1q{dy@8l(G= z11~VFFvzw>cjf%k{;QMK!rmc)IVcA?2rO?iXBU;XHkEGDxn}MT&DFO3UkKs%*J7Z9 zC^Ncu4|urNh9HOF^8e@&Ir?*9vtdam6{B?kQZM53SW_Nf{MaG{Xn*BX|M_@qx7#Kq zRd0qx1Tym_?YCM|uhp5u%x3L2kML-r9&0wjMeNMt0QN~r^OoXodIY#ohl6Iz9SzN% zAc?AgA*J(DWODWb^vxZ*s*aN(HZVJE>PT1gv#w+|**9$?ai>z*xch)^yn3%hLXP}G zs;X>?OVh{4F1Gj%W4gvn7Iqd=Vr=Q-MNu8I{gkd5OnUcsKS5^w^0#>a#s znMZd(pyWS&Pg||1U&vr)L9GXe6P`x)9<~&}i&bd+a9hI#ucV8x4IKs2{*PP;?&}02 zx?H^vZ|2W?>iG4?SkO@U|JOO1GOySzngQ*HNiik)wV?T3dN0yNf8JM%z+8WQUO%2v zk9@yNK$!L4-sv1aXqf1^SU5#T0LZt`p@z1mkdm1Icso|P>gu@vGD4;uQ$ae_Ws9|y zK5!_d*;dBicydJi{B;GcG>qo%?L0#F)tH#kX}cQZFbgAlGpbzryNHI-`-2OS(-2F- zQw&29Ru=D3vck-4e>-j_ETJ3FK|OVTq7`p{iwGALE3S;}6qk6A++^Mb!gH?UZzUsQ zu9sULex~0;jA2htRfoW!RYQ>@CL*Lvv3dBG zeQ;7;#qSAZtf_cMV}e`@5N}qF#7Am_W#`3 z24XdPmCWJ)|NPQgpX+TbnMd_%Nf;>JISYWg1VkPdSgwyij@BN<*L-NQ5%20aC}Oq= zKER@Zl4?7V=>1^aSVsnJAHQX+u1lY(Xgg@hI~D@}XJDrTrvNTQ4k_1=^-}Upt;QkS z)z*TWy)i|ucYVhHANC)~f4s~BeVtrr9PWthw66s^erxn`RH5TD=h94=i?MK|vX|5m zdi`$yS9jYp9&M;uW>%1Yksw%1)JDok+At`9F7h{j!pyke8k*86%f>GOPVeg&W*BN4S)9h2?X-dmCRFZ%R z#Wk5Q)j?l6ocOWb!JQn>JjVIGhK1j~(OwJ6-<9oue&Xl12=v!0bYH0lqX~a3wDnrU zDLb|%Eodco&Qo}^d`FZ0YZ#VZ`I5^VJ7BuCmYnhtvj+*O8voMeWc|q}`mC92b^)hO zY>R<)#u&$}fKoiU^MrVl`{ghGW?V|Ud#%;OD&>;LzcGMg#>J9gh!SZN06JfP@3G~p zB@wbuVd(%XI92^yg8=cdQP640$EGj(jS}g}V^&{yT~SJwneq9&2^rQQew5gLlYqQP z2=V)IXqIwP&mEU?wDt%Arb8z}*rB4c=I|^f065rtszYez!c%+493@AE-Bvbo?7Af#1dgGdTrQG1)MWbeMb&E7Cj-XAT@#>xwK* zK};lI7aWL_WF3|;`=hb)w5ZX0sT&y)l6*=^srVG!Zjs(>Hywf8l;MR|%Rhg#QYt>y zD)Y2k?4ML&)bx4-)2VZZnugtoieT03Sj93QoGU%ArI!9U_c%rMR6VccPJ6#O#fAcyXJ@*zeCthV}m_Z&(5a8zBF_wb&^qkpu&@i@y<>gp9+y8|lAUgEG zHX@;vdoH(~=LV}b5&Gw=AsX`k%Ii4z4Kox+n?4yzLkTPD)|e3==&;8-J=EeSRELsJSWTe)p!ohvS8kqU9fT2ln`A#Vr_X z>?zBMvmqrQ4DgzN3k8KP{5T|pHH|shM}(S>eJFhbn|yKdtr*;T?o&GQe82Wz-Dg0; z#ig#E&dCEuXD~y?t|vBe%nqO~pn3_ppW_6H&#dS+e?FJzJ)M6wgR(94<#?O7LB)k5 zueT3qjm|?!;FQxnCvWk1IqF}t4$hgx)`oYhM^iRePw#2Kv}vv5N~c(xMr{XU&qrt z7AMautxu-uzwOX0$gxV`2ga{s4)Y;CC$U!w^rZOR9$v3znFzhK&HRsK;r~Q}WYOS9 z_ULQ1z%o6_ZT zx1}#F{XzP};W@wFxX!O0D>Gu`KNJh?Gc5mMM9X=gUHXyv^jmeQmfA2l+Mk#o`)!r# zmK2w+MdT#$`S^H|ly@_KDUUUk?Y#BXqrs~i)NPK3c=SwX_z8)|H+7#+eX1_&)YHP2 z<$EW%GI>%U<4fP|pSp(o&#kZujg23TdPy)*|MvDUo<}e&yv`(Y3jK#(A&4C z#7GI9&X+oF>}JVd4ZK+PnVlndcZ9tSTzjJ;`HvSYm#1M*fkhwNfB!9g;Lr70l7@u! zK3U=k3-_K(?~BOSe+{nYNndJ6jWa$LLNcN{vgN#zn4JEI{fBL9+JaFvfi}YbM-Qr- zUa0C|=;8)ion}*`O{++)31+7805rrca?zpZ{`=Eg`FtyOb4r)&()P!Iz%vvdw9)__6bfbMe@o6q1^9QlR!-i5p3$;-@gP6y&E$O z!x)mnlsi(JBAEe&cSJfO7} zHKHCwV;%n)D*A}PW6D|d^=C94V3w%s4;zmt|xkY4Cebj0G_{Bu7+_9qJIay8NK zwaT_?$(+R5aN!#V{IEznWtH(?@yrAmQ*<$g40 zP2Qw48SNh|gYez{sdmR&8;1?_UPkHUC&3NSQ4(wt7#{t;qbgQ#nY&l`LkJR{i74NT z1&-kfX$@E|gT2F>CBePKSrwuMEk)+kU~=56{!`3>HSGVFAw$eVD$icWGqrV zFb@jDSPVeXh8v14b2+ETNnebwqeI;loo4U`^CL4Evu%_mFuBk{gu_uxNwdke4#Qvc zH9U5am8OqC+6G97{|cE{Uv*{HI8fqAqKF;!8jtTZo27LWc0uPlw`)#FPn=J$C@)<~ z&K-xA)0A@uNN)cxy6otoX#@d|AlQCeB17zhhwnj^uOeESw~?GDPSrch{en}ld}Unz z!My(TW_{6JhQ}kRv=CTxU@E0b zn_7*U_MbyKtjYUIhPk%v4or!WGQ}`Y9y(s!Qc-%Eu4>&OdIKsn+;PSa3=G%Tvd*zoS-1lk`m;mP9|4F&*Qt9?_D&QSm|OId z4I`mgQ?{@&L)|4FQt83!nv^`mH#yZu1&?@1dRV?B?{cM@Q^C0_hF)^dSaZ|b{yUGK z96(T)jKP93SOla?0LTqkrnVerHuX1iooY{yWdxv{j%?}mg~lQr=7~8oEy>c={7ccOYhS0kD1Tz8sA^4TwV2i~z^s zQd+gn-p#f$t?p*57)moRkv8l=XsJnUl;t3|#Erd!Pr5GCVq!OHMcR2^BM%ov=f2zl zz69UpcZO|$`rER%=XInu0!{fE*}uzHmmF-y{cCUCt%MCDXquleS;tSRx!Zz> zv8RE`onk_>;}OjE#S#htxw8K_;5RM9HHJABbkncFp{~mEXF-$oL*KjZ8oZw zoagFH<5VT$0iOoWaCfYR{5GaU2G!M!cJ5coy5K}h7i4BJX%HJ;QvE6Yr^#}V!B{{q zaj>Eu3;~i zToMWbV2)Ok_Aiy@iOOQhLH_vumv}MC(dB&Q*I*7p4OcCz9iSqcs{k!|HT_JRtZ#Q& zY+P_A>S}*TCL*%g-yiGm&(+w@i1UxCEl)bS2RDTP@!!mXh;P=JdTtoG0;uodZtC)F zXGC}MK~v_Vn@mF?<4aEzC~U1c0A~bb#u914n@uQRr8@LL1?|3}W#Vc}ivdFP|r>6TF{lNb>$4p|ML^Xfq?Dv(4>sGXUO+!1>#(!oW zWs(U~B+AMJZcJWZE*SH1J!D`Jkw^-`mh)~ssS$wyU*t!u?ALmyBmd-cS3qLbTyQu$ zPeiiz_fks$4_s^ZI1fRb{2@%SI&n##mj7>ZPzxvKGOD3yb$&hyc=-_DCSK|~J++ei z_phtXUi{4PX7A$ah>&CIj>rlB{NCaSe6V%Vs$38zomYq=eihGrunM}yx<9@0Oymd6 zKSp&txfq;xi4%skEJsa*V>E6?S=9MP_1ls<3w^4yYL$WlXJfk!?5&q*8xOJ7dHwn^l1bj5i( zXA8yX;{6s*C_B|?*ia%`&J8-$)ppcRKk=mXUJAYeZP+%HJtA5 z-l`PkuGg>6>wo`IuL|7eL+k7}EwB7EMd8;T=Y=(?Q0TATT*-u~U5W%}%xb7vFj#F@ zYn=()8!>+CvuX1towPc}jqn8!Jku`<`|M zr{ga5Dmgp0wn>D4)H=L57bSF4iYH{===MQ!I|U#BnmM0;iqyTD!|eT`wHqQSF7k~7 zMc)BdlOfDwJ~$G1Lcllx(>co(bDo`a?N-B#>dN(y98UE2se(I;G&V)!sYEDS!`vnG zZwmuwOgN=r$VT{AeE5*G+Xf@QX4X2h@Dx$0V&S?3U<}y@oJWcMdk{H_(H73KC9Q%W`GWr1u8yh!rc`M?%GcoyQz$@ohY!t)OW)hSJpM;(+1& z=c4)9V!J6dRY-(1y_h@!&m7stv>ahw68&&c?zpRD8YJW(GofJy}|Rql52|o%X-x zt^sw3jLeV764LQu8KtQ^>c;;5eN_nfwJQ-aG81P1-#=PjADMjk|Nr^t_RB=&&u5}} zdu~1Jm?%X2N+V#l6LC8~*N=}G05JO?SHnJ@eDNFUDSNLDA0EF-U;)eDOQe)y7KM$u zzGtd`!cT@jsY=;GVaC3&=iW6D;F!U4DfsR5^k?`^?eYz8nX=V;9;Z{%ZvScuG&_~l7e<-txMMEItUbP2 zpPW)_tX>%H{wW8PhK$mj*A(Ep1`A58+r)36j0(J(jP0cKqy&rb(@9!)Q9*aXB z->LdnX`~@>yyBWY!NGyvhK*XgWp#OWZOgFs4;sFUO&8Bkb8{SXYq=+hvL0l}E{$J8 z0a_s!w^u_YrafwsPg@Njk-Xjok){DRStMuC87p=#eqG5PmQ#1 zMt-82Sl>-)#={F6cZbyMh}<3yR-=fyjaa@{RT_<%wI_>(eS`7;i?;&BtG9j*l@~4G zv4-Wb@Y5-UHDC_{AlM;atT_FK^r(SBRdAcTqW2_INj71bi75%l1NzatX2JLFQLk;y zE;m_a@3BuhW7F>&p zpp-to9#w#(8y-^Ch~NA?`p6$!R1nA3JOGn$Ahr`_0#w%VQa8cSkOcr)12>=q1z5d( zA@gz+O$$F<_0dRCKQrg0QviFA9&uM=-6^tXsN5uzlfRNF^q^m25fVR+n>RfjYa^E0 z*?|w)*m!%TkRLg)F5f!mISoEG$x8z|C(6B-EaY?a>3At@eaVD&u5>)VERv)i1gtY> z4kINq+a%d|@@g$a+FN}!O#A8!AF&Vc6G#Ui>$G+{+BEMLIq|d$g|-@n%+xgbOU?#z z2g5kyf#k%MQ(vc64~4*h$57TW7unvHKf34`p%(ZLF~-;(#&6j9Qpf57I?9!=PEl?i zD3ivlomIRMW4T_Ly>>Sv#@E`KdbOMmX-_41!!s|#$04Ib?;Y{|QwvPx3WW1pt|vZ; zJpa?^{ih+FUmn-`^Lrx)d!*KJLk&ge_m9ZTn^)fJ2}%Irh7^E!N~`oza`^F&zGpQ# zWZ)Yj$dXrVY%*QPD5=IC?uwR#w%&IWS&-#WGMyHVw|b;h&c8Vp?s%1e@Q^o43QS{h z3t4M2u~0i9CVBzRU0Dj#q|^*$b+!9 z$TQ=R`V#I3nM`Qe0kIiPB}z=-nt&lK1He)k!q!6h*)u;<6o|wOEhpQRQU~?vn4(V- zY!Ug;AwbKWHKfxsdf+o2f3y@}YA*x4RzIV30-S=eX1IoumhyW^YBX=hJ4XhB&ZCC5 zod37g`GTk9-{WaA&H`=y^8ZGX4OU$3)ouT#?E2|zQ~8&b!X!$gzE;U}Qfy;KBOmzMbCH!q`P902hs z^5-6ogj1l_alwKQ2I`009LHJE?G=!?c)#b8K)nNQ+RqL$uSxt%lS4YZ@!iZ}->8m$ zu}jqRP-Ag(`HEFC?}A708xPZ!F-1WKV<|NuSn!abk=(JX?>kB1!fs*5@ku!v^LN zO;mwtlIL~f;K)cByYRT~oLaT$0=e!Uyxl2sr@>?UGRsK;f>}kB)r}6NfcES}h(NGt zfrWZxx8w;A?lX>s1LPfui)R*wEC||jU(B~YdmKV{lb^Zt|10z`MZ0B{!C>R_o`bYY z(w5?wvl6H$q76oYwo=trneSsY))KwGFQKrn858BMo@KVvu4&n8$$_pZX=~0;S6UFq zDaa9qrZTGx^j7NVC_qwbn4!D{3R6?byjq8B5YsBsxicBhBRM`hI^*U;M%HARM*#wI z{^b@>vU);nyUYK_p+KwQ(?@_B1iYF&N(}`>4io%b%!^Cam(|Ifa(dHhW{bm|oImKj1H`dS2_FLYBZ@?JOP$0gPtV_e zZQqt@xd%5uZ@@1Jd1&8`&J@x>Gs>>YW%63g8GFdHztGAJG0aMcC+DWhLc~Ev$x7 zyswY-_H9T9^+KP-Z0k&3$sGrZUkGY(zs^UefV6W+deUX4FZq?4X2)$Mb@XiMZ241K+uSta52 z6+~`+soHf@EJ`7|10PR?gLrxMBnk$-l{{7dDiM0lRMw=&?w)j%`JYz4qDZ9nr%0Tw zA?B)FgQdy_@o!565pnRITG}hJv`&F#Fn24DEeV)wdBo-X#$Hz>xO=ZYjO3?pvmexY zA)sz%n=~q3=xNYi$&GTMK+iDR z6kdoxkb<9mR>yUmy@3T6y*YeelSY_?Se2qS{$p1iH8o}RC58T8(1N2$3T#e+;B*KZ zbHb@^`*(!ay~S;G7jlU-6&~QTw!@@STydoB;bokT8YzcDU^HuKb}-_o-@)KFpZyOi_{U~fy+xv%xbnwjTsBZTCXW8E?473Yc$q6 zdq_lGkEtjkZtIJ=@$|ubu=myvNQj@<*DH&mWm@)lqXx`H%ZZPDkN9vl3Qwn>OgAi+ z=;^&(2m|PlXglW&(HTiGHw9=cUUG5Rd8*CzK-PKIfD@Zsxla24srH+-WL>tH)9&Kk z+KfDoi(k!lWI+7yji)1lu8>{-*4`^pwhQ-*G(oarpf5m4C(IKWZo_WAbT z%8_1}&bxU8^6R#TAkgP!R)!cW{}hKzbM;*2e06^c;qLQGya*P_i%E&Vj}`;q?cPppwWda4%=;i|9?o-2H;|8Pk%0`uO znN!WrC4W;4K&44n=Z6UbE9aD#h{W%DgVJC~R-P@K-X`j)C&l7PY5L~MsMHK7$}$Km zCxZiA93o%SA+&F58X9mzMx$wRA#&$akoGU}DCucvKIoEJP;!P_wwZtBS`PZAO?rB0 z$PgeQh1SDG_#r#mQ<{1Dim#qRybSA;CF$@^S)<#obI4(Jc8a zO|v?c@|n-OBk9# zvSQmDv(GPV%W}Gv?FQ6z`(lF}I+pU-n|7%@Z|LeH?lBnKnc31J7{~B_eDd28Rg8K) z+#2u>))AU$4uU-;Xm-7VXqkAELmZdEq}=$s=)F81i`wP*8Lf^Y|2MPiHdR|kPyE-% z{_j7x|M~a+@v+GVUhze9$_1EkHL%WUXc;Q;ZTZ^yJ9^XB(3kOFPCtLj;NxGd9`M3` z6N@J(3yN59e*4K}P+JS9W@cdVX%MPS9IXeDZO|p(LM|!T&1nS9xI#zA-7R_RuBM1X zO#v9W*P=jyx8hFdB@(Hpq+!|v#Z(ok3%hMfQ{%Ty$S!_52+B^AleCx|7($^=RFjrd<1N7ymyV%0C(|*x$qc_r=nP5eODCs5k}QVyV1$ z8rt3%BM<@h-=t8s?f_7K+(t`zCoqVB2C7Pyg-=zPytg(0&=L}oEt_BMSKMzCQJgIN zc!kZiqu66$;bwXB>=#2B$~^E&VJoe5d96KfEKCElJCZxZD2+zRG#Rm@x(rxk9*8?) zlyZb-6!oVm5B^Y$<#_@dw3JpPKiB2`9=1C~^VP<*P6TV!CrVYW1W=bIf=_O-3v46-*3HS*IX zDAc9ync874d4i0tm`kjQ06l9ZEj8KUk>|#GXv5HydQ!aJ00yH*czcyUdGme;&=SL^ zKO^}ckW0$NosH=ziPudfbl=sYANxtU_njq5*QCy}_;^VbsU)9MY8~|2>*n^v>hWP0 z(W;oBI=JYFoX4E%74Z381=R2*`5rIxrXW#EDBDe$n-v|$A&Uz#lg&%nJZ-9A8fky{ zd{6ep5fIw>e5AxjUiO%BI(A&~+-DCJ61fig!MUlK^ad%m;|LhhS{Ncm7c0Ns(E>4;uH@X9kCOYMIpP!nA+1=*IrLp!5VgFejm?cZDRT+X=f_9jy+Mozt zCqdS8f0TsAu9eB?M1;qa3c97yAGs#r-KRj(xHt5O=GhBV-1H&3oyh82Z;>7?c|ihW zI27%7a{ixT=R|~4?azAo`8Oy~R>$8`O;Yit)V;=H5Vg!z@jba*J4v&T2YNUu6mKlz zOg@%fn5{b&Pj4Fu13DGve4=^lRvP;s1%5u%f{gp@0MwD;%yZ6;x%U+Rs)r~m6>*FH zX|6~ROm`jitUb-~@mM7<^OTI+Z!;3n**2}Z$0L^}E^2++!H>ATH3l8HyZZh~kT_jJPt9@f7XHlwV z^%<3~4z(NQa;!u=mL}8@;DupBNAEo>&*SjT2S&5ns?*@goLdO7JK~e7b4MiOetRM> ztNx)y@luooO>l(ES{_p98skKKSd~tp0h%l2 zo73shJ3b`wbXU}17JIWo5ipT+o1FFB5mMoMN6sU_=hyXr z{*m#E(*Jq=^K1W~e{cWyzxO|;cOqT;td9sXKauEphbyJES@En@gto6I7npHiX*w_U zmLqQon|ytJkv5BvnTvN5i$=SO=QGROhmX>@jd#R6vt`Vp>ZL@DdTRo^v3ou;JsK{^ z<_tLo1tOZxKS}_$nR9RB^B>wA`m^*j7!N^GjJ3#mvNvW|Q$FqjI@(xF9+YD#>EP@4 z;x||3HP%bKB-A6M$kU+Ggw*$A|9)PI0?^>W0eFSodazD}9MOdA;^J9f_hWz}qDkDP z?cGYM9=8cYP1doRs>T@a=2j`te_q4>JzFh%mhsx?2n}2K#JEE|2SNdh}qxKRjm_b7J z0p(RvAO;Fh%>_VngGmo}F=IBKg*OIDn&w$q;%2!C)KN@tYrs6O+jMu?8%N+lHSOBL zWPk})z)~}4L!W%h#cNxU;P9}vC==6=_P@cwgR1KE2Dfjtc0A6`noI6l_eM45urOFx ztPd9juG|f)Uc9dEFn%n5Ea9fTrfZ#7BymW`LB|RTlvn**S+k-N{AG*ZIM2YVk<6zCZB>g}>jx_&GS&U^k;oaA>;Ds43{X*uyY zXz^`f_WPl#7eBR|48M8%32$dL?627RK)N|n9c!51CtRgPx<=GCaHok~l!hlwKm`%O zv+b1Apy__MA|mc4frqPPM~r(40|@70A*Q*e^YqDblel`{KSE|K&f4{TX~Ep z8210+*Snb&%7Pv)zKlT9b0>E6C4Sx*{26mvoNO?YKu#IlF!}!%KK?*S{>R_iZypC^ zAf`Z{D;-6{fb?rbv|c^RJ>?t$;9H6<16(Yn9KO_EMf>)IfQC$Tdv^+C|L_%;YzF0= ze#F*Vh_E1*XnkN3dyFLI^uzu?p8Lng?c-hU0&P_WOI2Ji908ZHbG6qW?j&BNO?`7# zLy`|JjTzH>bv@gxMHBV8Yu6&@1L@P=%FaR!d(tw{l>lErpugYMHB*M>s^Lh~x7vA{ zEy6t!w)kXp@I6vi5Q(m~^qN+|z@1L(YEt6OYg3*jq`=6M|1NS&^xr{Ek6xJi^-t?X zynDgKpWpKQk?KVL6FEP*5QAN2URlk|K=Jcw8S^MqRd%hL`zeoIgU^{W^d&@J3M6`K z>~~mOOZ3QiQ1ObxBEE!qyo+TM;w^;D|NebNCeg!^tDQ;O|1p0-{_kxsr%c*Cc{&%= zR(=~DJV9#V{N?R!`9uW1;@Zl`1pZHxJ0pO>6QxnOH)>t%M0=;xP%Q)M3JPo1V&GqxwH6rGdM!9pF zePstnQxOWC#=&d~X;Zr>D_uKds`HeLQ+oiY9SsT0EvLYYRU5^1<}Qw$#D&T8QNXpE5hhIjDN3r zJ@Hk{TK7F~+{PV1;o`?ldyxJA`F;HzH?!o&KPA+OUaO(D6nmL0Q8isHS9mjZZ8xW} z?_s(&uD-MTxh!8xW@naC8DM8L)kL5?0<)MWdZv-~sQVBB=+|y?-EvDo3G)BkiQpje z#yVHT-}(-4ey{Fo$hQn#|o*zx*Ocxo5gC0rsougz%ijH{E zqr02JNy?FlTl#DNcfPwVgKl6-#qVQN8OV_jR-7b38t}Wu=MxM zm*`v)(TYT2CIUf4f=tEDr~yTGxJNA9FUqE>^7N_!T>nfFrqGF>VP zvB>tPWf@%od7Z0UoS@tQ-8LI{g$fVZYRPi7^OB=DS8}+n^uHv%6_)?YAt{N7n(E5@ z$6^lQ&tGN3HOUL$A9rcXsfUKpJTZ$WK8bE74nOiAHb=mM!{<9BCDqDY&^MnZ)>vm^ zIhDA_SX%2nrFT5m{sPnkt6`o}!@Tii7I`e3ACMwLJp(u%E|-(5A)pU0M0j73i?m(! z6efu=dSQW71r!{Y&yuOMWS>YT75GxR&_HDe$<_w5*nR}~9PbEvypXOrXWUHAvBpKF z)8tF38(auvQktJ0W4zTQFaK%igZadsQHa)AtFYx9U6<|MEdDdk-EnV89y*tAy-~P1 znPaJn>8?ju`{G81`-2*uQYRN6*KEBmtFW1xt~Nf{8++pn6rjXL0+ zizLjvjhk=rjdm*;wE5c+=sRX=sJ_Es(rv;yM+ zf#nsURBDGMxw*URxps}#QcOk=GDL8-Tj%g)AutCK3G-*v!t0Qc~d^B-Aw+%{v?so$V z{jf{H41_8DS8X3c080VPx!|6*)=BAKZ*1XBeq& zR^x{j$96+U%quNUdI)R6|97R~aQ27?C#WxFn9b^iV!D=g+0cKL8)5%Z@T%smBY<`g z+>+j-@rVC!a>=Y~3bV6vu%ebzAWl0b)9;c+Zn2LTeWG!HKIcGI-@dI2O(I-b7KVo= zA&=(a28xcxaKz0$c(l>YM$iTG0*BW~(=ED_d`pFuas# z?bW?Jr_F9#7m1g=Vz-7QlO|cZdhw9d575%NrJMrUIC0bVpHeeqgM-`CBCoo2OI<&I zsiZPQpS9IAWpfSB&squ(-pX~0islg^EAwk$VXuK@a?3F>y)&}^cw=Acpzf_z(~rSt zn!I;3oh%6O$oe{)l0>vU)ozp5F{fHu68yj+t2najQ2v8T|Jm?D3f<`b(6I9q$-AQ% zbkGNa5)ThYyWicL)+@VJXHW@DQ<@$)B1d7rchA9@rS^8IRdMkO`+qV1^Hvg({Lbdv zPNn9HaGooD=hEMpYxK|A$T5g|VYm`;A!e`OW2XXVaw^`O6M$>ut{r+kWl z!tk|yPO5o30kdGW(?ugZvuEc$f*p5EJjPsequGbqaW*Cg82iYS|t+pFt4-S83*L`8(?mL!>CO*074_o+fd);fCBbW;A%{x9|p z@b%bI(2X^oY+#cjS4TjtD{Y9&ok90h0h�Tby3@`&MivTYm2j@|uE{tr1jL3bpg- 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

ks)rbxa-FR=-r97JKY5 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

Ve~z9z==Jd$|M^({`B=*- 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 diff --git a/install/installs/Q3Pack/install/missionpack/.svn/text-base/terrademo-README.txt.svn-base b/install/installs/Q3Pack/install/missionpack/.svn/text-base/terrademo-README.txt.svn-base deleted file mode 100644 index ba17b47c..00000000 --- a/install/installs/Q3Pack/install/missionpack/.svn/text-base/terrademo-README.txt.svn-base +++ /dev/null @@ -1,40 +0,0 @@ -Terrain Map Demo for Quake III Arena (ver >= 1.27g) -All included media (c) Id Software -Archive built by qeradiant.com, - thanks for the help to Fubar - Fubar_@btinternet.com -version 2 - 1/9/2001 -===================================================== - -version 2 update: new q3map (patchlevel 2) included in this archive, solves the -shader blending bug on terrain maps. - -This archive contains a complete set of shaders, textures, models needed to -build a small terrain map that will run with a Quake III Arena installation -(version >= 1.27g) - -So far terrain maps have only been seen in Quake III: Team Arena, but the -terrain capabilities are indeed in the Quake III engine and will soon be used in -mods and maps. The aim of this archive is to provide a starting point to do -terrain maps if you don't have Quake III: Team Arena. If you have Quake III: -Team Arena installed and GtkRadiant configured for it, you can use -missionpack/maps/terrademo.map - -If you are going to write your own terrain maps, you will need to redistribute -some of the shaders in your pk3. Keep in mind that a default Quake III Arena -installation will not have common/terrain for example. - -We also include an update to the tree mapobjects, the shaders were missing. If -you use the trees in your maps you need to redistribute those shaders too. - -There is an update to q3map included, if q3map fails to load the alphamap for a -terrain entity, it will exit cleanly instead of crashing. - -Basic setup: - -1) Unzip the archive to your baseq3/ directory, move the new q3map where belongs - -2) In order to compile the sample map correctly you need to add a line with the -new .shader file name in your shaderlist.txt: add "terrademoQ3" at the end the -file. If you don't do that, q3map will simply not see those new shaders. - -3) You can now open terrademoQ3.map and compile it \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/mapmedia-TA.pk3 b/install/installs/Q3Pack/install/missionpack/mapmedia-TA.pk3 deleted file mode 100644 index 0584089f57fa4a10074456c86e4500f83c64f108..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353896 zcmZs>Q*b6s*sUEqd16hHCpIRwZQHgnv2Al=+qRudY}>Z>`|bLx{#~_qA9Q!!YxRB5 zXMOcjkOqf<1Noov-kwPHzc>Hig!JF)V(RYV>SXH7VC-VX#Gvq>7yZ8~42WbvB9)RG z>S`Yr2*`R42ngQ)HPe$bCWqcxX5lB#xRa5DpipLI8FTL%ITeP-cq{*L=Y7 z%(!S-d9bR+)v~}Ov$62?by3s!qWkA+l+)|R%YG>L?GOFQW#hBf&rhx2S8a347-_wO z^zDxKTkpsZaDQIcGD*rywIcg!er}6uE2+a|KA9k6o?X(j^l5_SdwVRKx%6fHu~9Dm zPc@(B4DZcV!}FKc+}A{-NoSyJ}|ZO=Cy3I)x6vL zE{8w0_Hu_XZqu*Y`zrs};hDI7s<6C|R*#QClK0Io?IW`Ft~d&tqkGb{fR~!&DEm&G zXS+_B=T)}XFLnFG6W|Zp8&vPtGMmTI$Dc8Iy&h@b_XDq^G`}B6kE>i@^2*N>O8L(T znv&lEPWeihm8-A4n8P|MXQQu!)9u-!5DMJoJ}kEw(!p!xOv|o=z5&;&TruttN+fY&DQlE?UDdmRD(8$uGaMj;-I%Pv^X6wh7}P@ zgCWvNnUQeJQG62hXuwv7Efl;DiSpjC>cg~5g{AZl2sXQ@6-ji$&1EtWV<~4it~%l3 zFDTETDGH{NAplO}Ym%Q%!#i|J%K@vqoA;94T7GVp3K!s`=DYjo#rS-`bDie*>!yc{ zDD^kyvMyqPhni*2lhPXRwvY5spO}8Vg4{P=_ZH6cM{?^}x#{YS=zejfN%w|*^bl~1 zq!;^tPLj*5-kh}Ig-Nn*e@O|UU!I(u#fs%(VOak|kE5OZN-8e-+9r7ZxWs7i?D|Lz z@9*;3aBP^r`lDH6kuX+(^X$c+#bbO|t5T$>31zg?4~jp-M*oq_TnBpMpnmWm8k{)N*(v$@zEUh#M~gSXJAuhwmNcBJ!tYtz2pn?t>Q%kb;Y zL-Tdczw?*z@|-&6Y{~)SF26&nx4XIV)Py?5I)?QQ5s=V@aXV-%$nVMHt<)6W#G{OP zNwUfUgzNS=eDdZN;hU7+8OlTs=Q^i9(<;$vogl`~xAb#58$qf$aYE>5A#Kd9hXe+5 zBuJRJjL%MeLYLgDpxXAZp((v*>3k?>bjlPVJ(dlgwJB08g%oke81J|CBaJFZ7Vl%7 zfAHtIBIBcmo|qpalm?Z3k3kMB z6n^msDiEcrYswE0m=fJ*a9SBQ74GJ4QSKbsRSM#DD{xN;adx9H*w=I}Z&|5N# zK;pdcZu_+CLOJJ7Ucs3okfqp7!(-Krb+Wrm!poDvD_W|*^-R2tke^_0W^b$?ndYI* zfnLr~Ftt04dnfuLP-;3?l5Ah9(c(0cjc;%|elDILE&gmA+NV<`~3VLCEb@l0~M-4L!8krw@3U*h?cpa%R*BVyiI3@jw`oUj=7% zjflLxsCPs=MLZ~8N%Z8^MvI?pn$G5E0*Y{@85rc|@i|kFbfbUdE%|eao9%NM+fjgR>SV*hnCj*j*0|y3C zrJVXySZ{8*D#%(c;enZMdhk*GUM2?kD&Y@usTJ{|r@HR)hnIX0`z5L>kFn?tB5i`y zju;AE^nP%xSCc`Lrq?U$lSA!ZyMX1HVoqG_@?%?Jo&14zy&K*`fQlF3?8bxonT&sM zj~kXmx=Lm~5w_ajV9O4 zvIXb=o~de0`pxYUZVM5W)FG6bL)RA!pHngd@W&5pMGc_y-G5?-}v)#1@sx+wBF$u8n0$?Y8I1Exs@% z#;3N$`2T_(e)WrDq_ugS%vK=0i-CQdMtu2QZ_O0%d>tVUVkp>Q5PTQan)YcV=$sbQ zDUAX*R@+7$PE+~g@vj$&U(RjWz|+-|$n9`@x>|2eHW+T!tVaQ}2)$aiiXV%@UhGv@ z+b$N`B44l9$Maw3LCq_`uf;=qUlZ3AC~h`)v!COVY#lC(BzZUQq7yxnEX})xk0bu3 z3Nx-H!Fl3UA)mjcrzfE!ioI+5vewgS)&AcOTBxSjUtg@niRD!KGhDaugWT?g+jw}q<{iqk z^*2(k*b#R4LOKbAzRrK~WoK;v%0R8ytJvY)=FHWd9-RmIW$Ncr(wg77(%XoJ?Tq8aSVQ)xa5=bIM%WA8&zTQ&2ID=jV@!7sCE)Xx zWp*izyv6w0d5ZabRj&FRSW9}lU9dkmEzNLI)C&5ll!m6++3vLIJvcKTNrRd_SzrRb z=JoKi`DMT#DO+egPAy;-9g?fV?F>M+1Z>5;v&I!T#F?j?D#61XgPDIBJbOfTj`kio zyOQ?QiGB-dK|FHUikRmn$TNA8oc0wn#5wcu@jNNAaLY@Y-Q8$BpjQ*q1y0L~frprt zygvg)R+aZ?rHy(oCJ9>{yxcKy! zHY=Jy=D@QH?tTr9Gw6}TwaY(*49@RPPe`siFh+E?bSP_q{Aw)37g}4UXUa^iYx`iC z;jw(O6hKS0WcT&n)Lkot8+Le}Fx>eKFjvoBtsfaCy>78O0~?)9DvmL++|7vJKXf+5 zi|P1~h_(ziPTF+fp`vM-QB4!y_{c!1{Ch=nh2cH3jP=)=dR+2SIr7?QBPw5wv(*zr|mO{!&{ z*K4q@dC37oA-P{#zzvL{=3$c!X8mK)0Z-YnXn`8)K)@QxvS`{$)wGO2;oPJjL0FQV zf*l87j|wo$*$`u%QsMdMDI-3)Yf*$MTTi1r?HEo%WBRyE0<-l&O`93Q68L>wzYNXx zwJ$6L<=86?J|G|3{5*uqr@HJ!AFf?eV4SHdLM4OC7(+ItFZqX_yTo%J!pt^pBNYDq z5r^-X$wy1IuP#9eesHy{biFQc3vI(i1pXdd1~XA2BQ%{bU5SIk*p!KNR87`Ry=~=N z?IzoBD_RW%oGr5>0+Rq+IvaP|VyC&#`C(NMGf${7JgtEBD598Tb6ECnbNt?V5}$Oy zw>3kWTX_dRA~hCa^<#6f*~q|bUseJwFL5=ND|(qoskZpwH?33Lu`=dUVk%Q}Y8pv`&s?#F1{E=An{1QL>;)AZ=K8h|^v<02x zSD{k`m#0){)~sFPqEajzXJQ3x&z~;pBpFg+j9l}XmXuF6dzW0`!8RJmq3ygJTY3Oz z|FeitFhU8K_T=9{$P3R=DM7!&J|Y*fMny#QG5kx}ks{;>1N-f?2yHJ!-L<`itg}HxGGG znfkP*2x*6E>922L5IcI_F?9}@U9|*C9=gQ=55F3TZYjBSw_+-OV*e${OC_@~R<9g= zPaWSrW~{T``S&JxXig6S7U=OJkj+}b96I;Wq>(^u@N&pzMS~)s-X9g6BS}!?fOY0{ z5vB6gjhL4&(vV9mRCd~ZU6HLC6a5VY1Iv}T8B80%EYeobo{U`LyK;`q6#?<^(_NEsu!n;di z$cud%%{EUqUvYSgCd`SRQsml7*akmKGDJ20os@GRp%WZys45i!WEoXicyzh=L#|aI zqc_PV7QokCGm<&@7b8L<_f(wmg(-n3dat`$eJAd8y&5T(apHYLPj5n(q-ri$MxP zJIx&#O_8#-Ks$|?NRQvHu(?G)PNbx06X_wO?Nc7`g`-8p+tW=?%>T#ku)0#vq2jAQxlD&tnk65o*!nmaX;cv60~cmG9(El7py*h>0YgDwM~nI{8h;&!y}dr5xQWv zmcLP&rNuEF!)2L~JAU>7UJqx(aJR0uSm7ID zaW<%t!wf;;GLO?H&DbbcwlhtJ6vN$UP*qZw#>M+7j}j96tvYGCBPF|IqE{T{h@|xA zG5s`#q@#g_KSU1C_cZxMI$^Dko=SaUT7s3yP)`56p*0~t*N}4Vp`bR${s8yTB~+cs&mDNag0zf%*_eToVzLMi~`sR38nWN z1$T!IL1Kgo*g#pp{#^|KeL_qXcMX3SgZ9$tKmz;LmlgD@Czm8DmJMYyoC)QYUg ztO7$pK7TzZqgdsiT@R@?h+KcQe2G99xobf(cd?a&uVBh6GXZ=4mY& z)Mg{Dm8y9o0C}XJ8zfIh2&{9$2TXyYfF4l~B&TA|dsHMmG2c0~GA2xDpdj>qM;ZhR zR2XFzVH)bzyGgi28Dn?$XCB$;!z#i>PMQ`r)H`sG@O#J(=3a&pcf?*^9|=R4w8AVR zc-eeDaWPDzO>L3b3d}G4BGa9(;j;W9u*b}Y%x80#6HuX1RnF?4x4Vdv83KjvPsz-K zVFt=lFajlHoRpv(Hy7cphgtjvfM_qx73rd&vtLTPI(vj5w4g=9LZruP z`)V|M$l4$8^igaIDUMZ7REhC#u!O!?t|P;H+a3?O#M>bU@iAC)eBrU}q6}Jw1^p9?8WI(L(mZ`1azR<_lDd~PPEWn8q5=8)GzP)OR z1`UVNDt$)7q{m2T5SvAZ0Y5^5&WC~iu zzH58>Z)5=90Naq6R82$pv=ZOUk;ZwPgyDrW{;2RciYQz(O>lxgnH`Q8%$Ji?)u4av zK$6Ze(LWpBl3*11;5vxFfquK=FJ=6vWu381+`S zaR?!-Tk#T_2{i^53roASgTP?Q-tGf9`u|n1IRqd`9^ohT?7qB;9rBd?Rt8+K6K|AeHtQA$< zEm=NebY|J#3mi)Nl6q>UYBmT^%Khk4ib|t&eNa#7cycRN+bmwpwocaik}ba8$Xo0X zEM~h_IIlNP!TnEAW}tqW;w#SK&s(eslIp(gP+|Zoo~IN_eZ6v=d*jkojhX`KyQSzf zD;AIUXX9+xU3b5DYpI^*4SPP4{-k(5@Ta^F-=uK)YL)B%D3$}@rM_x3n{urm`G-`Eq5tx7n_B(EKI* zC{8m>ghe0{elqQN5}(Lv z=!C%=GS%Gj7wbwNm``|mWdkCzB^b>wMPk=>c$fYbr4!d)d!4^7+>&Vp)!tJpH|0%f zey%OsKJYY6!P*b=e-w40@iJ?7)NXo0Fjh~crvHAEdUnoj-O!ko81_FHWqWAE?h zRMow2X(PI9gMekGFMp6U_!j{V+4HI}619V$x5mqLC`Pf{HEUV;2C4BTdwX=1QqNUh z(qF|4u>ha2?MVb*?6hno^S;oTl2Pei`2d>o?JYzascfn~O)~|Li9LiiA&Pa(&xScc z3QcRyv-vsDLBI&%H<;XOM;*znL^s5zTk%lb>m~j z&vzJlVst*)w2hf=lC5h2OH0t$+f+G@p9oZf4ZLkb$^m0;%Yoy0-URgF;{E#+sq7lB zpGrEN^O|;GpncuY3I(2bsa)Vz&7yj$J^dD%H-kDD`xaQ3Xt!foG3ApzMdW3ti*-b9 z5YqLZok7-3pI>Y#4p^;AT45l@Uh^8e`Tk|dgqDl8G*b9)3MQ2>g`@ajJarK-IsA2V zLLiRaCVM6hE02Wq3rVMFyoNB!2(w@bQ#m|!#Vp7zT-Y_=b?&OG5&ye@C8=`6okjekO|nCpl2> zF|>DDvH%Fz_c3h39dFd=%ZMdwPX@`zAkaFj4AY9WiwdCdB!%-K-a^w=NURIwW2QE^ z^7LtC62CnNvt$7&4lICP3SRtdF^Im6`FYb3p7?z7rfH%5xjjcYlPFnJxd&xhTzA>n zJ=*lO%$liNg9PdL_jDIf(b5W#sn+M{T?QJ3rJmZ@S`H z^J8V>Kh}|SuQCz%H#%`m-(6ci+5GyN$2=5Bd}{Ks4XpVam&3s(i60$>#_!mhCBHv~F@StpKWn*$G8ZZeOEGy+6J<-ubmU=7(N#`d7RlD%3 zHV9^V6k0<0!%YG|&y~@aH;#pJE0DddkTO?}R9ZvPa$px#dQ50QOnDj<;4x7kxV3~| zW}}B~=Qn2js1tIpT@dIVX|6#Wovp|S22S0Nxn$vgw9smay@>s*?kO?$Mma~9bvE4% zQ3s68%$x16Klvx~hYRH6&va%2`kttZtjtDLj8aos8qUrr!s6f!=nkpXXyPE{Jk)U@ zLNw#!%sUl{{0Sx6OxwAK_1I|nY7>?Wh0zE_fFT{^TSok+(ZJKdPPpDuCU970Yq?7? zZsy(j9X*{!sOxXc@61O%G)%svA_)dGYht{iX2Nup{@rAZd&A5(DN@ z?g3zbUb$Rh;ujZ5GnuHXr6DoKM!N_lR_njQrhWQ+PXH=c^1G}o>-i>Uu7O)dKwXi! zz9jc35|g6HY)2`9kTR@c;}= z70S9Z8`t@SlGU&0E5~qXrh9w6Ha!D`r0FsM$lOh4k}RYYcZDJbGn0*1BC!#=-MI&^ z=u%hGMdYcDd=2H#%NDsRc$g;oM!==kSGovc+%z%Yd((50whirEXq4rS@!X5f-hVV>vEfIF=wHOWj8EbBm_?3Q40Otum?NGL@~oqAZ((B z{E{V?u@*7DZpLH7P{}sjERu-0Pue81?Hkde3q9*J2$cQZD z@eAKsU}X2dfC^4vsq_yUVVU$J4B7owk?FMhmSe^B-Cs9dL9t?GQXs+2ylA^TSRp*~x$v zf|oW2JJHMr<<=Gu>mUDOk+=@I^In^QUJmU)IcU=iO~U$jzW1dAki#$nGGs?67A$l9 zGyTs&G~-%2+{K_McWRgK5U05>wr~7L9rcwD$i;9tBJQ9ZW^U*VmeO|j1v z9(OVMY-6%$mLm`R>Q9x^54C&tXuC#EV-SmowJA!zUZZRdbpgwj(OCRE?!|1VU z%#<)|&i@!EaiN>;qD$hx)$ z(7GC6=Gr$u&3`Wq+wzJ1md3)LQ_VQ-s(!s&(cn<#V$HiGJ7a_V@v9Q2i8o^fAsIIQ& ze%`B2O|9-+Uw6A+C~kiPE-&SJdE(ECNd4NP2In;|3#WHjXVh{c;5xQXq6i$ajUh~Q zR>3yQye|3*Ew!CBK-%wdUl(pK8x<2D?L~5R>-qB1)zWVDwm)=WtigawcdJJ-aH{qn zGp--)ijeB&W^BS)&{w{!#D#=0gXCRWd~B^OfLCf$9*dl%H^7{2%RwQQ;2uN;4jAqc z?@2;oU8y)%1oCfq6~vk4A}J3Cy{|Gz>GA?-nNbG3%?|4rYIJ+O$<|8ay!-9tR1ZEr zPoylKhh5*0D-89?pzqfuTzT=jhqs%sgLfVA+zrrhhJK?QkwP z3mC&&$iG$3#z`|stDi+JF#scmDmo0KGu@er(HQ;+>;)$ z<7KFSiD=-^WP#G~Lsd#8*~7y0kxwSeXQ&^%}ggq3f@`lw9#SF%*!-Ltmt^W@N-&WvQNr# zYD|%v^M#KRpX>=49ge0<%b}vQq%RgI0;Y#&>WnGW)vm6k8{#&D+F;~%Efe)@9>zcR(!tbK?Mj8*??MF zK%qZ71`!o9e09J{Go3z_XC)#PjiTF@W3lhW6_fB#?AXTF97C7gEnZpEWK#2pEOQK$ zQ=(*O*c;(pJ|l^XMZVoAZAj&d38*g-oaCjhz$*OwET?Zm0=3#}h9+BJ|NWx@UrTA? zc}#AD5x4}`jgqVm0nR*De=sEcR7=)hOfr^p#&~C(_Ja+%RAtOnrHaxya)|L|Ni+mr z`T`4>T+7X(Kt$_i0p}bhWXZtvEjQ#*nb0#&;Q`nk58r0I8p1-+B=dcamr!Eif-n9g z@EmmWrXl2dWSNFEub zyZw5axmTMs{X}}>(SeaFxbkC4p+bn(@Su*gQ3O+46y2aJQ_n2>ywNeSI5abHh*B&Y z75`OcsIgblS*A?%45j&R=PJv-^dKibP4}^UlPBjTq>Yz!%o|;M&voFpmaPFF2x&!W zMz2uX&(Jx4kob^`tbj6VGT>(!W;(03I#k6WtlvatCQq5e?z;mhlZtgDy{Ta1x=T_j z6Gr}GNv@}56g0m|aP@K@7+&b1s6*Tzo4r*_eiGJphG{FG7}LBixwlJFL}2_J@+(19 z%<=bW5_TO6B1LJotfTXq&F#^KfDnGo{7Jzw(lN7)*vsVZ`G5z&a1>6(sTl^19^lN8 zyb`XP;E+!W>A=!q<=D5Jm$gDEtGBqfLxcN**xi-CB71|pr7`=j>GlC#5$tp~$n z#y(Q+;ELGQ1b-xFOGjjL0IUEL$-xg<~ z2vq3%9UcT}Z`f};;!g7_&C4Qownyomokr#Xa{My^iEmFQL=a|$EQtI9wbfhu zNHcJI;EhcZeX~>x|cIjoyY~a**9h2+# zNSIbz*E6}8yamHk)ZqHL2mJP1@v@*qzdHU}?;0RRCd)nd?r~yz=0%);R=`z%!C{dDf-bMF2HR?7_Ruq*q=h23GhNW6-j`J4#ow^ zjLwNDan9c9E5UmVR}63xS%%!qJ>#8YE+23uX~>BujAGtJfe(}b{pN9B5uZ~N28O#$ z$rY6a$w_>OTkVbq9zUw-jFfPSe-Um_9M}0(_83ajN>>QzC~f6BFPn}XKz@%21q}(2 z;~aCG26bWm!=mUQ+Px~-@%bgeZvqgk%&9n!cSYx<^5hvj>z~VD5#YPhtq193v zm!OyVB`RTY?6RSC+C}KJ2fNccJOE){Jh5W0MxnI;BC_mRo36NQx2gu7< ze@i|Jh4+7@D zxj(H85&-UwVz$PA74@&KO?B)stOCIT>Od`3mNt2bw|_J>HC57$;8$TW1L^$b zokfRe_rIn{2apA?J&P3|98LzkUw`k=s5e|PXnyGD9Q{;Yz5rVN==e8%UQYloz#X5i z-tSk3FGm+=-i~g99bdfR+N|>f;ZK4s1it(I>BDO?PyHkt1Ub3yz`BtQ(LCuW4I{dVBd~0cJSk<$y;MObIwdJnk{OM&3C$zV{pl)DRZTV zd3&VRlyi*^`e2I*>A<-`TXo@!I`>kYBic(dTJ~?M^0!`E)TnH|yUuLf#han(%z;(( z(|#NMff5^kl?UGrUBjB4;!I1FRZI2><4Cbpk2WUbOe_3W^slTp7v{>6O3P5k(1Yo! z=m)2UzvxNB?s&b&g=Q>XV@9+GO+(lx!-J3ChMs@;+bgd}TZ2BvZSnS>4`f zTs=MO>1m9X>oYhgE^pZw?ro|%KXSm~qD&fXlp z?e8Ztg-<$PbKvzi#B|&bhQ;#A4-Tm#4-DzSBWt=Qp(d1>rhxj02f+%EZNx*G<&QL> z8uF;A0Td;4U}EkhS11>~8Hkgo1|Tgi3(^-d)xR;42!M?h_C$q@e@YD!l^c_fv@0d> z>jdSBi4S)cSOG#G$2e2b$0V&0i<;VJNl6O?Inn*g9D@o|fCiXvL5`G%)p25O3<05%T<>JMr{|6L3FxB&Y3yFSJlW;fM=&0jcv z`odpj=i!smQjEM*#MK&zC>*1d1(=A&w?c3-540oGk0OkbjRgG8*}@ij(Smf<@gQ6epxJLlD0ANB?h*6`7=JQ|b|NL~^MUPc^r|uD z#5_yqZ9z&?nMp?Vw zI?fRz>|;oa?+Gr;VeId*%m)8`^MVMyq~j&np>ze8}EN85?onmPOu{k_^IKHN<5 z%7a#L13ow20Pe!WocB}|wf(1Xjd#pF@i$qfsm=sOUvb2W;AVa%Hs?wVU)dnxJ_lmi z@IrAd_@=YJ7S3i;Kd(>MhXT$nF>(x1VEbq7poWbuL|H&J(YNqBK4gVyp4K<#`VU!x zE*F}4k6z55sbOJ4Uk&Kp1*99z+q+N4B+)~)K3&5YdGkGC5Ij57QjEB`#}KfdI&qa; z>`CIAL_6eL=;JjR|CO0;s^Bn$J;f+@%P!}3P{LVoorb4FHu%j-4!ZSQ$bvOnhOfx_ zO6=PGWm|?1+(p6Y02i!vxxwPLk3lklS%l|^zR_lo&Ub7iwBJAP07823eXbFq%qUQ9 z(LO#(B6g%bBDsth@Iim%+hZ=7Q#Bzkoe>XEZ`iwXXkv@?)l~e;sr7@g9MHRqbOP!U zS3@XR$oSkA*J!_h0ng2;*odBua5)}5F5})I4H$D__%l^Td77s2RTI0=w<@gTX2sc( zN!WM>@FOn58G#kP-t$%OXTo!&)f?2y_5lKr6VTf$>m}DTBRoG*&TUE`=)`+Ka$0p#%0(N7zb%4 zDE6-1W+w1QQ__3d-P+<((UU;;2u4nkt6*OA0W=8LiKU2PQ1^Dy(=6uLge>qGJwEcq zyjvd2rdLJj8$A8h+8IWKgnSZS`;&oICnczvK@Oxx4|}<;5Dz}cX0(0U0{l9XKNnWH zpvX7i5w=H`eFT@j?8sZtEn?ls=OEfueqO~*SMm0S3^kJ10q!YI9`kzwtc0~PcjhSy zQ(FQZ2sYq5V_QJ$MjvDW9pAQ|NCR~bvNg=yyqDglJbmV1cKp_dq#f;k2< z#gFi#5&1X{jq+THfbQQxQ`2Gt$PKVo=r=X{Xk6pN`lNcCEZQ)l-OqHW6?q_8)^c9f zk=3E@(D9d|)$r#-K2W{DMs-%P^N}x;L{PCKg}UR*gSs4^4pR1Z0y}*B%$(C@ek|Tj z;?Khde*mQK@Smfh_MCU^bvQk$2YBJ!0z6-LR3#f2$JL3!cl~BJ|1k;(S`&4Z9 z;qgI#q`3PQFU*aC-v!a6Sdx4Y@+`1+yrF0pl}2ingigOY16S~NKKJ?yc06Y`LhQ|2 zO#t!@=j87Jth>=#JwRaH6d?1Q_y*&Fhn;o&9=p`X{lfFmchw@w^)HEHQ0a#lrU8~! zeHP|uv*QD3{e9|!-w3UX`%`rk!r}kI?%Pm{`xA_bLQyfO*mvzwcNwme!8iyVktS3k zQ37cZ5IyhK5wAztZ*<1L6k!^IoiYCX2_P0r5R&NaJ>G*EgSVUcdkLQwS9QprS5Yef zs}|I$X4)A?iz*@vPk$M_IB@mNCvB68`z-EwL(aoKm7K~BzN$a8F?+G zEFb~HY#HXJ3^LUT?q8qTcU`_(7b?}z5tXxm#5Zow?<9sPy-sNBKc}JPvnSQ=n+9E4 z0hBF%5;%-{gk+cs7?qJz{qLYkM#W9_lmm!?WXJt#-Ka#caEYN71px-w#h$ z5q|swgD*^Ycd#YdOrGPq)ah0^eUVQ7E%k&oxg_Aamaj4_6)P9iwI(k|W#AWm=d}QM zC1VG;?(k;%z4yB2Na6(J!zv(4qdHC~igi!Vj}Z+ijS&XWs&E3C_dVSx#Bs(H2WZ5s zz)W`GDWa!VcF8=@;W3kjX($9ocXc-fn;kSJ=>j=+@s1Oz9mlK4kcwbC;pS!NT|o(O zs&ZN<&CStElTvhGci`z92@6eB@)Yn4NRKca;IskpLc+(+>#1maEq_CmmB^?Z7%Af^Z@ba$I%E}0bG#1BR>N!B zwIDTN5B}K~OD-rsQxI^kIuu69!4_l!5N6;!4oljGdf?~ z$aJw5Qsg5~a|ju^vSNaW$yq^zr>bOf5>ofyd_HQ(T?mj7`#>EKk$sI=QhX@DIUFxpAp_B^y7LBW(0LfqnS{jNt*< z4RnNH21Xq!iw&uPIo&2|P{hDorCTsdy;NTbr+X<=ArKz&^#i(b-a!sG8u!D4F$mLh z+zuyNApr>zl`3owtQR`hI5X7X-S2SY=S0uIxj8QhUE%P+0Dt{DOC88d^>b=ZCjTV< zlNo4S43r0749)2!^-M#dJ`~!^s3JrdUW2&9-(q+_8`!0S-|#^@3?%QbK~D!2UQv!$ zMeSW#g7$p7#?$wL&BmCw?A>~fF_yr`@aeBh62C6t`O@2E#iJ$P;k#!R9Ke11H(tD^|^<0PQ|f-`utzuxsR|ew}wTzFOta7wa7Kr0{Fv{B5(=PYYhrr zq&~o1Q_S6JJEHC@4&2k5J_N1p@GbM~4iW*s4WfQR@>(73jvI`l8b~! zR|8d63_=v$g~C-jL6|#|cWq~Q`lL;umyxRhD*XuU1~p!`hdOmD=cMu~93bbpL|+=X z7SDwAS)^{|MIybsaEQa*B_1U8FS;P2Mm2n(?!Ny2{I(|mhY$`)2bGESnk7{I$llkC zYP^?A68kLQQ|{m|o;Ax2b-8Y~ zNqp|8K5MLBthIA;6!UXBH+#H$81vsvv9gp4{Fic3g(eYwsj4lt>=A|-UsFl-rrTc4 zvO5ZEb|!JpXkb570t)&hsITphLK>qt13(GR`KIt$bu&#BJ+ z6Mv=IH_PbHz>TOOI1xmmCZ9#aHEtGCWVoeHpCmk#Yvtzej8KjKTsgz*#2E$AThz@f zl0#hE-Vi5&-(yK0OMcE&I>J2BE4QJ%G-%j>t@yIE2d|m;p!7S#H9Vv`|P)QN{h-UU9M5ccT&VmLFUP?O>#fH zYlS~t7$*ES9{(?S7qK|n8IErw-Tut^0)1CSWR|A8qNGuO+9~U}D)q#exYRhgH(6<^ zJ0FvdiJvg$5z@q!E^R@$c}tfG7eln?o%0Kjn)8nZjLBF;$S)QhaC>My9 z_>S=~DfY#Xt`p0phuEnV<`N_eA@}fflJufnE}k=FImMka&17p2je|9b4yX)KV$k9s za*X3bj%av?$jS}9HNrFjVa7D^WO{P+bP_ z`{@Ut=c=BTo%62p#t7>Xb;06Rd$zsg|WfHg+0YNCXIv}ZJ!Z{n;3W+yy5t$I^= z1=Yn>Zz^JR3*UH<%Jk&qsP&Dib&ScYj_>XyT=9 zEC(s9KPjuMpLM*D4+L2t(=erEz(0;(0`fsWsZsAaHvXBD$3TqG zc|aCSaH60{^<&+G9?NpujXA3|k<18&$ksBa_AZz&&i!Sj(fL-!Z7?r4k(@~&WE`M^%ne3XL<;-3Y? z+xEhJZ`zTF-)p7Hzvl zQ%xX82>x9bH{c4D#RgJB7O+>V$8{0d%L5u+B`IVU6G#Q&1dABz#eUI{2$%-uJ-PXw z*dzL9t4Y8=eLcybCQ?p6cqqdW1_AsSzn~q^I`}!0H9g414Y6#0TVp zTX_VI8}kFb!Mu=(7p}2jF}u+l7w9Zk|LLXoNs~o_|{_6+Op7T_yp3&JNd-j ztmS}Fgnvf^^oxjgrhtllV2XzRLKXPRpzjeS7bB^^phhCSVVc^BO^*w@nd#tzr%h!p zs3YzH{yVzFj?+!hkV_^9v4Y$p#%-rVJJ*0j08^Z-AS^l?&NCdAWCS}!jx4ZSoMNb2 zGB6)hnroPpCWc`+f|R3tptM(HaoUc^3Zp*~!&M@No3`KBHX6IEP?;Nuc3i8wd+-Xj zqQXmVYMh4`{1gNc4xo7ii^;nWAK71sjKQL$xJisrg;UfwY%4%to}4h)bqFH)>9$2( z@_=bUP6E|1xJwh)o_rj((~)M2d(3B(C+HWW)-QHmkr0NKPgpI?Uin0>Dx^fpuxpf- z3aBuu@Cl$##Rwhwyj@EvV`w!BO= zM~NQOUHmfwcQuyC5p}r2(5}$V7DcrGL~n3m;Wl(~fDi|BGJ)F5>@GF%gp@1n3{_%= z)OF~&LgwQ09R=ie@oBgGv=5h9xc$`4CZ)2pjGCfmLIHVf(2y7`pVnp*(Sy80bt&Cp zzj76^NFw26cS!DWai5|Nw?O4Nmwbdzpc7THAw3_xpVA#>OI;^(Kug}kE#CFqqV%yP6Ze(XM+lC!DV}BZ*9r-zwkSjc?y^$s}At)yFkRg6X1mC7RP2?y9@c zjCa!**@r@fdFn|@HY?;X@r7`S=6*gJ-h(2>YB=L@1o(x><9;z#_W`)SlV9{bVl0oz zH0!V!P80r640}9jl2$WJdo1D-Tm{>%%>4~}b7K>T{fCjuYq*J6-6Acf>T?P-rdHCcu;WbtE-38M-8 z^R=4~&qyrpSAi~2Zo)}wN>enrxDKwQ(CnO{p>iM-;Bz~#dzqwI?B)y9nXEq1mWZ=* z5iXAEGk${NQ{LjlkxkU6YJCM7lj|X0a|S#{DneaOHn+P5H`he>vklvyVvYW)*fe?3 z>rr4T8%d=OuPNj;*PZaJ>@Ud=Zm|wq{xIk=iX5f5o!E^|_LBibMv@v87a`0>!`4ff zJtn0!=TIpHbh3h?TG%hT)t8z zU)j-D{<28T3V2MYQ}j8L5}iNTU+6dRAG=G&W;iD}d)|WX=J~-Z=#mHBrv(jM_#%Qa zouKm#vdO&Ow!yOdTcE2sZHm$G2IP_(78-Gjry)9(KjKoM({P3JeM%r~NTtdY>mNtC zv_myoO|kwR3!f`U$#I&{o=8f9C^Do9WB>jiVNbD`(5FhsJ!zQ=5jLVYcM)F;=mY-! zP`Lts1d~kdpIg}jq&Fo%QHWfv=@0Y+B#T~$YQ;$s@JF~rz4^3zzj;QbyN;jNcMt4$ zvr*Mb(02MW#-`^Tb>|ipDCCt}tmqbA(qfmutccvC`g8u^8cLTXa)5k<$ud+l_k40v z>s!#yh{HiDY}%P|_qGSuSVZ?xTmu%WJnsTGtL-w)&4{j2Q))h3pY0gnh}lCGPEqxe z35t^JR!OB`{~vz^#U)UXT<;FW+bT+$6$}& z;2ByXgXIq44H=g`Ozv{3&<9i|ML5gd?7{1!QjJPCnXoDefeyvl>CU;AKjrRLVBR}? z0}~iI97isL%emBNX|K6@O)cw%yrQ$$uUG1DNR5PBVD7n50n0U z?0aex$PEGEv8>{y^C2yh)G}Li zK;TyDdPu;IN^uS*OGa1rpjMlbaHhE`msHD6`4EoSrkWl2#7$glOgV6?oQr8!UEf;| z-(aQ`tdW+~YPPJLr$rQMilRB1a#dQv&!2osZ4Wld-3rUqLM`PkyR{l(VjDF`gIXd5 z?FJjt(dr2_l(b3KI#i62kcQ4nhow@Jrsm-({LT{JdA~d?m;3l7*P68*RJ6-}qIbTCJ5YKt=l|Jm%e+tmF>-r~T&he*1Y3KN^OWLCK~$o}E)Lqnm36P@n%ro4 z(CkZ$=&^y)R>*nGXPlLd5nqa{#VWppU*SzbU7{#;;<2tPR|#Flm7IBP$~N3wZMY_G z4b*QzYegNGUQSX?&DB4uo8zdHHADGNOG|K__i~*(KSSM~|AR&W^8K-B9VE z*}}dX@)kOAU?nXE;umhhaqg$_>%NKsZdADWrq)WKUMw`x4R~$B)_iG~Dzy4Hoa!8Y zR6L;d3Rfye=*A>HE}Zk%&gG1@82D->RVaV(Vb#_Vc0G#2J#>rVLLSCKp?G;wUpaaZKkcw)Is_ zEsrZZQe`)z_k}xQtl)NXFnAZcyWwF2>*bBTY*K|Eg{O_Q4eRaSb}@&W|g`7~g!D@CTaoaEfj=ocbGGrzt>;S8U-$tpvYO zGo}ph2`{{B?l^&aE7c5os_&qZrHwLo`9VbkB(_Lo_%&%_$YLzRe^^|xM<3y3XBsHe zQA97j42Y`%{gBzob9;0fR$9qj;5>!g#-5S6%&tvGl?Vr(fzrCxxJSkcS17k%4tb0q zofz`Cv;3r@id1xn&$TNidcseX&Aa3+EU?mX5>WD(CkiPhzBNP@*O07w-c!L_R!4df zQrbW%O@gUeV5*QAtI}l9I1?dFFyb5&0pce4O3C|jmMWYjck2(8lvMIq&$SlfqOs@* zPrRPu%9UIuI40c03>HUcFJ)85_Zue%;XC7-p@h$U@)OVtXr|(ExP{##oF{&VZ{CHE z#(5pb6g=S-Rd_)iA8crHkdfyz%S}v zM>c!o4Y{dg{=6;J)NNfx3|VxAKHkann1lEO?n+v^h>=Ul>T%-cbu;beWAkfNEw4$Q;hipSnCb>xUHx&`$N$_j+)kqT}|5gzVw)3#ePdCTq{@A zS({BHGG2>XcJY_M`_ujuxECAJ0w@5C5#w+JwXv1TSi6P4L51{;-(F?Z62Y!mr@E+O z#U%NfuUH6CL#!k#kT9whMJ{-N$de?n*n}!0SH~Y@Fl;-v>bdbjx^8*r0O+i|e}ldyry3|E0h7U?)sznY zt3W)>_PUo(PFOx`rI2}{4k9QvZ5b0(0EYlI;LbqqfUt)s(E73_yrNRS9&CW@0LOqE z3<7T_2dIVP`X?PK3xpG_kL!>Y@kxIO53bGRkVQ$YTMpBqMm+~x=!;F+kuBg!DT{c_7o-igXyk3oCfQ006^Cu0mE`onoEQO7@FWkRp(tF;ItZj^WO1c2Qq zvvd65O5Gi|STtF$9RVJo)@ml1Q&g9hZ3`w@2Y7}cZ2C>wz`=A&>ST#B=CxWqWp z$vEUu9OrQfv|9sX3vZ^VBvNf%U~>;45@)7_u!a2c1cj8+!Zm(Pl9Ad)d&mou_P0F$ZcjAYj_UEI1lkL zn~+ofk;izEQo$*JnN@7tiJR+QN?cfS0Ea1i(?)~-1VAfO#XE4IBDFtAHb1F5(#||% zJ~8wKOO|r|<#@IJdfa?{+X zTaZaMRr5`3liDR*=`vls_LjlO3uM7HeD+#y6Q8J(?v5B zkDYq+@D1zLtXJb+#pN-nC0HfgW6T!WBpYMHv=|xS@GL1bY<02I{+PqAucDwbg86Zw9hd(3%lUit)We$JXd_B?|j%9d68KA$j zPkhFbr8N(NO-^u!{nx|p%ihfpBqFs&P~F5&oC5lC2Lh1`yaT5|>m(7wB3BK5cREZA-iMQ{c($Z_AQ5ru+3wIMlE8IJI`QSKr(WWon)gYk zz$G#lwnbdmkHIJKsP{^^XFK+?x6?|^*eqdVAa4v#_39@H1P=Q5@Xq-{u*9R094 zr+cm*>?YIji*Snxo%M*H&Kw70xx-iPL za)r}BMcZ{nqn<3HJv8QeCMG={QMBS0X)2$qpBC=((;8~!5Tvr{bIO+k%A@c(sF}F1 z`+BJ2R=N9nEOuXx;uRD{+4l49y!*VbnR(Ek4JQic!K~x9Ym$I5GWW?KN-DKgG4Hte zZ^I+POCW;D$oxdJaTzd_I+rU z`u~_`gw8dsl&M&r-HUui+*R-{mkU)r7gBF62q_$KF*=9i6d_nt4Z&raey0q}6T%J9 zWw&=k;+SBY3h34?>mZ!tcz{ls_(gf?N&*Ex$kzKziG*~n|!E08Dbn;e!6r+JuEKH5ETEubppUiCp>>z4S0bech0|6c z53ID2kw#d+CTF>$ztCC2X(HcHv*4L?Qcaz@tzOO||8e>3`N41_IfK-Un5XoZO+&(l zm;B^rni&Q~(xjc;nMH=4aZeRH%qjI)-E|L^c(240M4(RU3WApHb-0s+3q9yB@F%Q( z+DoFS*5;4yBxl`w+ZXbr_)fECZB6G1>ATNjtjRE64pp4z@R*Rb98W?Eya?`L-#{0xM!k%@11Y?IjSH)94$NpZAL@s#SK(5ny4NPCF=8I_=f zM!L%Qfbo1J<)ThYt^&Dabv)PJ*VL~}MNu%L`WcsF7Q>Uu?G`4Yhxxc|wRnOL#{+IYd0BU4*1J4 z9Au4|8q_?jdq^0Z+M!}8x4%5r;UoFxmq)lvI0l>|9OXC+huP!TVb8<_2dVaSmOUJ4 zsD!lrmV&H3-QeojTz7U;88I>4%7-?iyCxb>^sdIyQ3l#QMmkB7E0^v;*U7P1xK1* zz8dkt0qI(M&scpGJjCwW2>T+A z-h1+xnMxfw`3qA|oQ>N$I&*bB(Da~K2d;1m_Zcoy0VF~xy)(ZyUPI>1?-cSVf z&lflfl1&zbQo&imX|}&SLCNOfA#qs6m3MJxgBudS5V)qACJviDs0W_&d4Cmj1EoXf zA>V8wGCs=|TZhjVP4e&9T7WF;gfcuchgUp=j}t(r2q#BbT- zou2dj9G9hmmvkWzP}|U>%OFjSJ+GY4IcWs%InB8y#w|ZC@qK8EBQ{|441pd{v@nV< zx3xKTOqy#qozdK{y@_iWC)`Dg+qGja))-h!k2^<_!e#G8=fOCI%I$Eg#zMIa?-@9I zfsT}@D0<~RQwW<`TIh}R^-eQLTG&5JX$uUbC2?&xH`Gg7t=m`1b3Evy8NgM_UXsIX z^#&2GnURiFjJfJ1mfYbp;Zsl0F8f~|Gx%0q8j6$XQ%{ktP??v9$XthCj@99p$H9TM zR$SQ!ksVN=e>q&yvEW-9%{^h_i3{&GoOIfvFC70Mj9cj)ILc4qb@Znsbm&!^_VnZC2ZL@~%?%bV4es!k>`QvbmfDo(Fc4#JLN1 zsng^nIqe0L*IH}NckRGoxVP_$8}NOP!)Dq!O4T|Fy(GNi1V1N<@-ORsawA?_|G}B+@TM&IrCgvz ztO|=B)LV-gN60$i3h(DjcaSBf?Pm0y5thPmVU-tHr4@JR05!N4wDRMPhiDUNz3wez z1&!GxDdp0B()23qBJiK##TP5=WtR4_Piaa1g1VaRnc0E+msVb`;yn;sX_8b8bn&Sb z!=DdyibEY}XB54k;T0%|s9BI({`T}<=|&29mDV!h>w6^_@C|q-3-{3YOClQh3Ho(| z-Iu*(jGA{vRM+qqfd6^_mz`QO@{VKcAlv=tUAS3%mfMWlYOdaRLL5|a>0Qe+Yr4iNcxE?m!aM#=cm@mb>D=v_j$Oh}!V!>h!Z`-*qNtgd zT1q-=UZLg$xcBMc@(9#Z@Qt%~2CbQaBvYnJM&Tvi1$c_R=dm|E`u;HlpFqBZs|-eI zvLJk=O5MCEwkl7)QrlO~bFa@9#Z+G0Hc*M(t#+&2k-@fB3qJo*dASNy?m&$gK^|^` zGP-kvQn`w}5-bw_G7MjFO8WZfp387WRjgJoil&2#C%Q;4@lfgRT`95m(!g2bLb0Q> z>^~n+RArHNq(z?AL%B(~PxuFunb;)XF&$O*2~IR(Nlc76NrLQ={6ic;|0v_qpr3~z zg5erbgwNkgpD+bU`%dO*j*0Sj#@-$CPv+)KKBr4SuGE~Eq%xlI**6#2nYZRh#8G-@ z`B1W_vGxgW+Fiu;j;brX!v^o6o3}0k)sky|0IIjpY`_$6GT1E!v)xku5w1~_9Js-u z9`n#8ctI|{Nd5dXJqC`Ex-a1j4Hhi{+s&8b&rB7E

{0R(x z8*HgSD>qvxP+TK}3;tqVDz&kL7dV3)R-FT6aq|-3|NI*L&H-jBoa02=R2>%_*Yt_y zBrV59msigzRjKF!^nCgeyZK<}*bA!RIP`APrC(1%kX;}XSLBgk3IH#tFK?kPdu)(# zpJT}gzB0p$n7D`luU*pI@IZb1Roi0A+E!a?jc6_KF+V44#4*<_A1anSTw?b(iVF5b zRLVkm79kg)4ZgHqF;Evx*#OiqP=f?5Hu;Mjm29Uz+aN}|1)SrJ%M9BB1$C*MqiCH2d0;5_P{vrRQ4-hYVi9%l#r<@EGOpy| zH|V@Aw|sh0RZK;`h&%y5nzxHBlY&s!WU8gMS(hyI{E$}{yo}RM^4+%c;0oviaYZp9 zb+{8ESHdezv|*`tw=TKcHMhiOUO+JUS$D_=eaAq-QPD9Z6xqB8 ze8VNsX&+EvK1wSDM?Ad?nW;1(*GNq>lqKOaC_g+|lfg}PXvu%!d7+8}E`fH3%G{up zuZOZtBOzn>6?n-(UIs_G?BP36zdmnIbPag|M)t+pbGVFL1L{C44-Tt=T!NU>E3V)b z$uZn$jp3)I9%uFw&nRQ1G9fCQTPjy3cxnvJP_*C1mG{mxt>j#~xsQb_bR1U%$pmbI-APFAoZb@1zg0e2aMQDv zMpkINv!x|Z>DI=g7)f5$P2>#Kdv|e>#O7zM7C6{(iqQR-XdOi;`y({&;*7!w@k=YYodxxAM2a71VwD^0hx6&Z+g#vxg zUmn9F0R9OOqajKUu@fMR3_%XOz=K0`5dP2`*D zqoDMJn3Qi&h{7)*JBDu@qYBXfBJ9_q57rvGsq2s+aWB_RWR)ts20ME>yFi@eatWvn zJf%^zMQO!poK<>^IZDn+`^3+3Qiqci*cNOxwO8uc9YMEJdrO`&LUWh|c95^-695sqs$PWRn&TsrG;Xq0^8hkY?WL zcFPq=D}RG;JPjh7Fv;K(PGVJ3gEP<~cQa$(Ri^A?e0^kM(U(jTgU(^TD*5!h26bwV z=EYmbVJ5NT{4DvQ8$mDey!J z&c!`YcDsHyr`UJwIBjyNH&UujBo&AQPO(z~Q~Dg@;&cFwL?WUZJ-DM@fJ~TiO5Hok zH<&}%6#IHS9lx@Sfp?VTl+U|MAfBtKRoO3sYPR)3=?1KU8a3O<8OjYB>gt;pEqy>k zC9b&F z%ffK81uZk$&Rl`#y)v)7+bI z-~F&J)Z9<;)Bb&%PkPuN;}k87Dz0UQ{gTvX*RwdqX%oOUKvj{CcBki3DkEG7?7+AR zjO!z0XgJjYzXRvP=N$me_YCa@i6aghU~E;HapKJC;jlWbF@F;OcmS*5E_ywUaMeB@}Mtb)mi2q%`?p$#K)Zu$JgxN|kqUn^O)C?R4 z{U8Q}`R2>P&8R{#99W+ESc>xz$!AkN5j?5`IgmC0fDCQO!wBCaCpZq019jk;1-8|Z zv3w|x(ulyf41CJ~6D_Au1O_-p1Kbc`1n+S**lFPg>dR$qOsl{QL0h>Ns9hHr`YMLT zA-=%=TIeHgnE9a&GtQS{pDp$uz|FioC*jX~`^PW&9;=04Wu<6D=r+#xx!Q=OJBGz< z>-Hj5;7pU^t{AHXGdOtWcW;Z5i$#JpF>;2tY+z!XZ`;7;m97zmti}I6C3nD!g0WCj zaq~q@C*ZqH_@Zs_;vN%en)Lj)$2u@X02T+X$4O9k6Q2N->G9VEBO8~ojTJIy7M@r{05(xP#<90A*pgA|bKPX{vvQoOd9;}hx-!t%oBa{()sma6bz39NYCqXq&f6{Ixl0%KU7{-l=$EN_ z$#My?@=OkZ7vz>cHpZpHw_zJeOr2_iqSgF0Fb@TXIqyNg%uCaerDHiY5;G$XHcpLY zoaX|&N{!?IdGB;=tzU8CQt25;N0L3hV=_J}AGe>?!Occ=hXUmz13Tc~Uk(gr1agPF zbsO+6ot>fPsn#|xfqjJdrre_dd}OBp$HgwiwpY$9PCedEAlFuE?K<-G&|BuN@t_5H zv2F3qTM>uH>R1q7^o-Q<V6L~` z?N>b+RxA?03Tg-Uf@}N}&?`O<1YooE=RW{_wfUoZU$^Z;)O2hZ2cQj_#yt`T&`mlw z(3v%Prn#g)hj@>0zBsJQ7G5mPi#Tp&IZF90kz6Cz3&lFW9)tx+Zm9Q9>xxh_yfO7` zsGERw*ar4W<$HjZbKY@@+k?o`?V>3yaB0`@=9)_2s_(eUo)G?EOgF&Chm3gkYVv2UxFHI`r)u!!)AvwJcjPXik&~@IG=S^w>BU4*P zvn$g<>`q^Va2w9UORaO59kf%T| zI{;9WPma?KyDW=}8I^OnD1>q?GJ+NxzFBOPBzDnuad9?SrfO);{ZA%Cku!_vl)hg@ zD7Pt;md2y4e>a-wu{S}e-;8FOnB#=pg6}BRD`O;o3pYsx>Tub%;2C{D4xO=(PrHGp z=X)))jWTFj(2*u*dhA-K^l3yJ2Vmuv85VWaEu@sn5tA%@P6vb56Hv;Y!1?O|RnURW zk-Zjf1fcAqv*rOYf8GhaD$vW(@4$4ezEHaGt%3GIA&QabjL|@LiyoR#1(dn6M_2XVz9#!@er zMR8oh0}{-KD3c5^g11nV0_Zp^W6ZZ`qps>6zbIZB$IY54rJ?j@3m|Z&*+G@N_x-NaFmPv>P0)6>aC$xOWCXVcBg8= z*U(Zj@s(kpSl%{vfYSBSdkHAv3#r5;yV65YaDjJnk5`>gO{|p;^5g)e0WWvIwDTiP zuccL4N@Zs1?*V813h0VwEQ}oOXp$?e`$&tfQz2YgF$v^dgm^m4jwbTJygDef6Ye!| zSMh|d7a}?^Z(I~1(;_Izx?KVuzFy!*nOzh05V#99Hi|`>ccDMv`SH108-Kw0Yzd`% zL>iA4bGy;Q`o}^WA~OXa`2<_mhV_wQ%^r53$_B7hkL_X*LKz*FHX{nV8~ z*!i&XM%v?6Px_BIh!_p8gXCkHH5v8&p* zdyf0vCyUDHrT1|LfOxyJwmLs^Pc^-mjhNxpzikpWJG%$vKusk~-fK>zz}#1!pvVQX zBkAGuij6;ByP3G1nTsHz=NtnvQs-iV<tf&6}@sr6{IfW z@yyC(H~(%?1QIRu((M2T57E`_o`~3F`YFAcRj=8^YjFaimP$QI^t5eyteSh{&VVC( zQ;-zv1R8R0AtrTU(rmTJexRPiYs^l-%v$(w&$!w)7|~jIjn`32?$HotFDkW|x~{|d zHF_mw(WhNtb^NpkWZCia?#B^?*#U+m2_2LlFjusxEQchK)PKnKkIa~ey%s;gwoVOW zT>I83;o8rk;>j{&mbq3z|LA1E^lHK#>&?oqxJ|$@oYwgYFSi7S++8T5Ydc)=O-9&D zoCkQ*ZuJ^Cq`garg-aF`B?D5W=4c34pC-AW!ImG}NCQd$EDldjag_%fJsQyfkYL@4e0MkIdX8V7~umHUKl=)>&i%6NNZdcy3(}UffR?a zG%6Ky*kLtX>0$1)W|UZHotU2UUV`hqfpner`_%^b+7ZdG(x}q%3cfVhZ+%zA--^v0i^Y6NUoe2T+i8#?OAG^p;m{0iEmR~vSE@ih>`-B;6{OMUCb(gg%2!8{*U zC&|cS5c6HZiz@r$=$oqrqq2`cLaXMb2T+b+`MkRvRTx}?^}uP3>%23u#_nM4eP^_=h`*ECr3cfLA z>lcORdM#Uu8brxZ$S5wbU3n7gtzQ4^T@Co`Mej`9)`C<^jy?w`FelGHo!?LT^CqnfJx- zSzTcdn9tY!9MKaez`BwWC+1-=z@_ky5N-C;$YKPReX0w+N3pal} zTRVe-QU(C+)E3Uah8fSPuI-t!2vf#jgQFSO}>r$yt4N<{YG#du(ZHP1pJM>XjpRwv3@(%Td+T|D=s= zSDwGa{jm2?>>_JhO~L4x#j(ws)=kCt>_6=J`#G00R{_gu--_V2ZgI2lvGI9rRw26t z*;JsEN6>!!4Iks$CYyo{@ zTfq64yHD#hb6xp*Azke}oo~M!QzUG;68D%CFX0)6{r8w>bMN;O&>$vG7z2~v5Ce~2 z#VElnnm9cI2AF#g<~~BoLe18XU>sqfG)!S+6kaH7pGf-k9tMA8Kv31D>d_S>y}LGa$oXZLfMiPM3t&zHBC>*rmO-jJr9F|AYa;w*hH-0+MgTTarJ>wvU1#g+?x9D%XTUqcIvas2}l>P>3;CV5G8w zrM#A@l zU=G=|dD%sK;w`9E7J4kunKx>e7qy;21Zuy8jyE zqOI!?Gl-X=V@f;Fex^b#+PAeZKqQS)%vA1zgU_loYZ1Vlm8Q|x;ws*zmoC6X?__gv zls^+H|MU#)(>!X{Lc#KtGm2q%{5}?8`>^w)mgNbcuZ)}G5$Y5Im4=VQxN^XEzw9rM zDle*6WjT8&n{RPksLJa_P#$1FE5+c3$*St*3;@wsxYmA39zb9d@6~~OdLy4V+zyjF zeIQ&;YxhIeiV!mw;zLz}r6~c+`L-OoKd^|JZPx}+Dj&|c>6$x9Bu(&nI|0FvLLpUc znJejmaB%L9i-UcNm4KrPI9SJ-&Q3Hx7t17NT)Wg$Y%&P$8AnD;Hqzwrxv5QYZ}iBm^a!?bVXctZuWO<&hI`EJD(QDm?^{ zHu57j5ze41>pxZ!&VQ#OGj+Yq~B6ZpN0v4yYgZ9rooPF{>0#$2$K zDRCIPCY?X3w_6_mM(o;T64!q>I#r-E5Hk8q?c35B1j4H{MD^pRowEJ&)+l9$2fRh8 zr2-@n(dx2v`Eip_F%ra$>xWen0y|fhe(0G2hFV4#;pxX(Pt6mQ(^_*Nl_Q8*CABxy z6a*v#y$^Q9cVYpAhV1nD@Ltw;rP%91HC|GZ5=ub8%&}JnX&?S@= zq%#zi68|J@pG;nQm?lfJPIlmX0 zm)a|94EE{4OXqk_99vLT2TEPUM&h&QLdm3uNq}$=CKXFV;qq$_mnLvQtn@LdOlJs< zACK9fuC}UJ8bkA~2hC611$IYBy#MQ#Z*+^( zGmAtita9a-Vk5N+lU(m@Ns!cOG$f^?qm1*~NTB(&GZ5SMQN>)PEV>9#aN%%G*=?|6yd^Y z4Ah6`u=7=$ISvd9>fR>?QF)~JVo;$h8SJ(0nGtewuBcr#nvxJH*zr3c;p+n`jNH99 z1-I=}AT}!{``Kk4W#S zIOklg5(L*6gRGu#egWSVenX5x-zzS)k*$FSkw;mlz}IPuxGO#Kbm^W{n0a(Psp(6~;x+PlZMX>FK9 zYq3iYX8dj)dP=qNMt#;?M&#Zy*kj~**X%y+E?c|``$_wbCY3s zBTwCQ#E=SLSh`78=H5-4(p;T!d#IqJIIg*c*r)xOFVWNP5B1ir>DUJcG+V8nXP*4bBzvH1o-3hJ5^H zQ;gg|MP z2==IUs<9edd)S&hv z5QF#^!K-70>ldxdm(TI{#a;XTZzShupzx;!Bzy1D3Sx7!ng~l}q^J7G_P6QO~=s0%qf=WW5_X6&Ny-0AJ*bedGOXGDebiFzL=2 zRRrqAAhC08!U7;W1q_zHG)TYB1A}(DW{;T~&0@BSB&_YgDWF;6OaBxZ0tBTij}-7{ z8^1*4JjI{;#O~ZN1~q{K2A+YpD)Sb#B>3!++;#jlu3y6T*|Q@iY@aJ};Iw`U{%)nE z^9G>Ux`($zd$l4+{6+#}&!se`GnK+S=9`jNpLd6_Zwwdg!JwT;jRW+}fHEH&$^``2 z9thjQ)IAt51~iA$PQ(Q}=a7e(BtUY|+CLn|rC%Kmm%ZvFP*)>LdTLsO)AnVj)}J{Z zL+l*?=@Ujo0DID+DfWN9J+XA^>}r>%z1a-vnnK{M@6X~c`ge?Et7qCh{60A1N#=yX zWB6t@l*6>2c2N)`Dt4Y`;QV!zUYHN!JT{hRG~FKzMOQ@noc^FjMq2TReqClp1HKQikM`?M$#oKn94O*eD~_GFfFuesrVy>oT~ z9;hb}HVxB4`_wS6NQ9>S)n;w1aFQvZ9I15dvX`DY!)*_?rmP#$OT81Sug$bFCmq)U z{-XZQ?x5xFVNx!CKOc}nrNCiMKP}8n>Y#R_9NG=TjypbbtS6nqQ~d^lFUP-Vo4oeL z!dt%5Z_Bp;roFSiV%sB_JS>Ztjy(#aJ4v9l~pUM{80+a!B3DW7A^nO%`tWoX{nH!}3@#ljLrWo;GD zB@~aJT0?`*gDv)LzO|)a4%iipOVIJ`NxlEXO(82w$y^pL!={<{ldNoKTpJ$3T*=gw zI4Fc9fpTqMS?^`w3l$4$`>)5Vw$IpB@0H7bc7l@w+hMDH>N3ii8`MFzIIKGe>&lyL z^2!k8x(ao3VPdq{QF08U9&P`!M z{)@N6-+lI*=8~uHbiCDe_`xDQ7&ywCpQzqlP3^vFqAHb}Vd`&PnMwZmZj)Db^ahUJ zW9m9m;cqtNKnbw3@=Is*|0Qf$nJd7n19XI8nH~JqG<*W#hDA>u2Vcm+C|GfeE{!Gj zyRg~mAltE5#?|51$VQUfOH_Ztjl`EXQN%lEGa!c$*51CbnawF9y!X( zOB=p^?Ea`U#&@`cK2)9`Yl%D-Cg&zSz(mhZ#8@B5BRvrIjX|im_qEJ?tFCc#6 zoCXV2uT_xhqf^&rlJZT-`k&EZn6FmM(I*2YRS@;(O-be@i4=#&i1%|pNNr7XqH26Nv@UR=6Y(7{ma z?qib-oqp~qIdPqe6_4M-f-gNvwz`A42U6PyX%TpOSUL|&!>iGlg~R{CJehb|y(}-Q za^CzF7Cw1oA!AXOKao>N*9HJJPHiBnp7lXEFJKdK5IZ?xOxYaN66PMX_Eum1P?M*b zGWWqV`@`q-*zS>Qc(tG6&dnJ<3P>T{>vWORnO@a+g_mPyT28*>L`7=Y}+L zTSY>ll!}7JC{ziJqe^}x#YgGpS{8^SO{{ag8`;4_MiO{mC^x$tJ;M0 zOS?rWwgkiDm0uqRds31q-vE?s;C!Xi@4cEyAyMz7V~W=JmoAHzy{M=x6_HubR_IBo z1BG`jCXc<(o~UF?xWnQirRpCA}*O3(_AVf#T~AUj)70;lkMc3_gU*My%e zULU${C1T-wSoccq-a364y0*a~bn2dCCk;tn`kJ}&CT_a>*l=kdHis!?mlr?;M za*rjKLPBTK;Sw*k2|YV>8Xes7<3NGx%PJF3X}t74-6{bKfZHAOGj4u7Cc`hD=5MuW;aJQUZ*6K?T||MCo!r zNxzeOA*gT;pWMy0$W-=BDY7zk7p=dt*3|Ygt!Fm$NbV@c2WGSu@y9{iUelCl-O`Tx zuWo}&ifiS>*JI`knLP1ibq8f9v(~)=r%FOR&Wn@>+vd}+cGW!W_o()GaZH}dIw;Ki z|9~}vcVS70ld~;(l54{8>eS@304Z(R;)$M?ST<IrH#25xm`Hhu}8hCqIE*Br1d&bPwqz0K5az=OZ zYTL1vmUwEl#Iv3Ad(Sypm%C|-^p-izX{z!oo2Y1gytt+bvyo6UTeYMKyP75of~9F= z{Iw_hSftpfr3)NR%gNfT+expfgyfe(USNEoNl~YKq7VD&6|NYERl}lwL)0mTEXs$| z5f5M>XTY%DL2J)h8NPQ)6}Q@PcsMC3yV3<@&%i0X;g+>sHA{`AgK9@l4WwzEQY`x^ zmEehS6N6Uv-=j)M*ceioi{jCLHW!?e=bBWRl|E^1p!x(Ge-1_Q`7jJS%4M0e_J*Vstqu*KX%qVAv$0ZQL`ifeoOLlXpMD;4BEqrfG6G z>sc9|4ez~#SN~?Or6=3U&8IK4aOT)AWMC`dg6iR5>$0L@IsTbNb>d?OscouU9%JUO0A*iPkr5-1yN?CfQWPDfK_oIb}%LHM3E3-SR96 z{j`?CI&c-O%$z3MF>jbr97s6)W@3N~$F;-XpXHWT3MZ&pa5YDYE+RB|Vmq~S(9&)T z46>fV@$h9qecLzj4|1-|%l>`Ob2HmGvyI`D=y&GGc5=$FVQaJ0kL$BVWfFxqUVNT8 z?qSrnqijcYPCLp&tH*y2eMR$B$xEL&Ba8m==}EJ%`STZ+%QED#cxLJL1QUKa{Le|b zq6&DH%`S|1F5BT+2bd_;;1&CTUk<9jIM+pE)z19f_AiBaD63P?FYSLh*z|8tr=H2+ zo|nXdJ)0$IZ$*mGztCL&{uBFT9c`*-nQ{@%A3MM7d0!beJ3Vz%)tQ@Uwi(RV_%h@G zSFFZyE~ByI8Hc~e@&6NoN``#a6n7@^%J4pQ%t$}~;^rOIC|$AZsba*#V)nTcDex;c zJxIlqrD|#rXzRV;$fxsB24WhDOBY#*20SOju_1$YR~X~p!+4)Fj-8)nJ;QZ0s5Il- z$oYlxIwcgo0TWq=ou6&-BHES_sF~Jgz=buQKr`;q@OK z$h8F(YpR29=AGelg?G{bg^d2hr?`l$4bJ(lp3sLx&1LCS5hTC$R`S53N)#KG$6WqF zvMaKaJs945vKJ@S1dGG6MT`gbATgz6$$y~bBQ^c|Fzvtp9B~XpKEtiwpnyN(=VPi= z<9@g=KFPDX$T^Y6UZbFs25rz<9wfo51{z~Mvx5Vt;>o}rk=MLfnYmE&tg%f}}WaQwesgwc_+!Cx?4_DD>Syhyw(cT*UUj7`dw z%iog|o)=IYC@7#?0aeulCb@ZL0CIuTU%}*rSes=U!}BeU^UmIb7L2$DN@2b`_Ed3O zZgdh@l+$ZxK6O3&({pzY<0rHIN&zR)#%ms590V650NNQmCc{68!-cKZPT?^KwKBXI z>9UO~7Guv$>ok2A^bA<0otteBk7m7cbTRN2*CO)5s~=GmHpFZaSM{{q@;4t;2>v7N6L!f!}^U*{a?;gO;tsqBuU` zc@kS1)~z{08+Y|v!B{=m#%KFlV{2eB%*k|o>5&6i8<}*sUsb!qx(ov+WAk`-T*K(K z)N@M_%~NOaT8oYLT&bX$k0_TvGhsu+*qgtk$E}`9y6)%WfG;0@e56Y!1)aI9t{=g_ zDlJl~+I@LEaV2B;r_G#&UB8802b)iajUHW!zX=#3tjbatiIUqbv`)M8(^1=S*liOg zzQp+pOl`UVC1h?pImQ)G#y5 zeZs@|d;AXeurK3J1Ug&^^R!D=u5IBnEF3m-@i9E&5Vj19+P<)J9#^<5O_qfVmtoob z@o!IYC!IF?FM$jmjQg94;IMS&o-mxa5*w?I7H5DjVEhZ03V%B2QOwTv$Zo0D<2l&c zIPj6#CwlrR%zlE|?e#ynebshB*7cMsEHRMT!|HLfj^X#GFKyrQ5=PIr`(;?SN|FO* z-zQArAJ)6Ws@}@zc^G;Rm!{p<$?iFx4tvCN1zXA(J2)}`)*{;cRhS=BdoN-B${L)W ziyDqruWa>GTnc+WRgX}7Umh`*uyM%3Q;aXRZ`F|lrshBfk{C@VEnvtKm-ouZMHrdS z?&}$vqgoaikqC3$f@yQ?Gb{&BoFNb%w`W@UxF)|W^j0!h-HPr}0^LhQYg_zRyLhsA z78WnVuDRU1vM7gt*J0|$CNE@i5DJJLmhKD>haZIH_jts3XRgYu_+k5i#H$&FK^(KQ zT$yCJ>_mQfJbP${47_u2Be(GGCfF_Am!l|3+$=Bqm>s<_-33hV9EaDE9yfW`$W zGt5pHdUTTugA^ZUcs-HXBnjE5gV}{Nj&ZQ8xk*KAgNwh&ZWoz9B7 zD+VhGR3=7<-G)VAr+MvAl(G}EAs5TLY( z+`8Db!4eiZ7QzBh@G639yZB~k%77#nCbgL?GWjY3rtSjgJHp}*$gICHN**^?DMB11 z&sc7#79<;(hzLT$sbGPD8}(yXcV&hHP!s_{AOM5+K&gA601Rj*=%m_UiAN)w-$SllY$w=u-{^fViq=)DVL;o@fb-P~`jzN2L&1{b zz=v%3;6W}lScUW}-s30ExEBf#%>4i)G?Gy2;vQKGNaR8y#fBfidj&^k*1GhTha?y% zQ?Y*mjegmx1Us$qSZuidvDX>yq*K%Re(g@f3req*d>%z^5n~L_=vP`{x!md{pNNLU zTxT3JowS}mhvA!*#zMkhynD($YrtLLLeH6Br9GRF8xK1YD)1a=}l~bA`y| z`HQDYf*-=D$K?DnH!L4X{NTbEGAgXmCfDQ`(JuV0=DMtgK~Of z+JUc2+g5$6+a8*ii9jncLqBdHrQ+}#Z7v=P z`_3U>xsALrIK_Ew+n;TF@J+Rq_e(e()~w_#s9<=wdKKg|=#qgl0j&R{Yd#zY$?^y1 z02aua=M4BhMMjaaKObfC$iKBsorF{pR<%uzED*W*@r=B@qmDgRc5^;6-yw`nCySX32Uc$0nOhwk{xQDO5v#oCOgYE z;`b_&&&-w{x*~ZBH((HBoh) zZ0t-U6ec9iciSD83SIJ9LLu82i7mF;kNV6R^&7L~L!?f%I8iLTG3r&w%K zns|>jm)*5t-Iu{1#&_9a&oTpSGPyIdOxg=e?~? zQ~TDrXY%?_`fSdX*awy3@WA(LTzciNNJ9KwfWJ3$r%k;9Tc>0U3Ve{rV5RqmY@l{7 z1Yy&GKw@dd|3=&{ElJxK5eXaoB1)AJq5p4#^r>&+@9KB}LOUQtWYoY=>P3K<{LglN ztYgUnow&z`O^W?9R=ygmfzO1=!JTKf>vE)oFzD`+p3C1M>$(U?qThX^i^oz*=UBZB z6Lpxmx9KU)i*@RbR-8al26!<{wYYr)V9tK~4HRUx!0({mu=Eh25ilM%3uag-%A{_J z<;Gx8R00iZ&`pXK=H1fVUj{r?%D)jHpr!$ucfv$BDgm~F_;;YxTfm{?_`Puv03hiyaOTLIA=G!JV960*}miz~;46a-o`wa{u$u z!PDksYao_jJ8Az^D`#)O$=$SGsi#!G?lc8Hmo^u_%E{|fU~^vJJ%5MwKw+X!L{&kw z)(gDebu<5Nn7Rm}JYtL~c&c6y)vHY_n@)iSo7#eFsjRYFy`UD`vJzM~9?{jS-OLcJ zA!1IwJd%g$_iADzN@`Nx6QA}j1B0Rs4y4~g0MPcI_+%kQJt@&@{{+W70e~Xx^I`kx zuub23Oj-$8pohVyvh+PYwL-a+kU@YzCS9RS>&+=Bi|o|L*qijSwGgV6U);Iq5IP$n zym4rV*IRGqElzrEHz+U+7dKv5qqWq>VnrN>H|YJCoz z8f19Z(!z`xKftQ^D1N}Pd)(sL=7g4$`5;Dw47R`6m4+=>5S1-@iQU+33g~Kb86M$f z>N)-hu&&&zAWC83_{0_@2(La$1J!X`Z}b}+rn=c}KnQ@!sVHTCw+4xbwvc?@pFD60 zrn~g3Ji`J=_!7Jw-iq)Vj&nfq^9~l@GHiD4?xoLUdea<;jHxG}$OQ%DS7!U;(IViH z$F;V0mhd7}t}uo>HD*8A`>QyrwM$RiP)f~P_x=z>{&G(oyu&5NP#ZwDKd@;m4{GBf zb*3gb@({SKcI4E;1+Ubds|TpJF2?!nG+)JUydSxZ9$=G88SuT@%tM>mH|8MbD3Tlk z1_6b};EU_+(ug3pY?X2lH+2t~h!22+IKgp@PuLZvgC|XaR@Q3NY{Y_a?VEt7eVlj8 zIF7a8{ z3bzcdNp9)luYzN(nwp#0Bg^o$S_cY)OaT+w1#gmG&02s0n7`vZOkW_7T1IOz(ap-3 zG!B;3q&?y5ZlYW23!4rQVLL`7;QL<&5gRKr0C(nXHI}fPc%48qb7Bmi* zVG0yfgzB$u-1KOAt*0&kWm+eTf*6KV-zZosP+8t=^@q5(-I(V7kzYwJrc@04_ z5P=b;Ai5P1LIfdtYDW){LgWZBox6L*l07qA1+*OXTWQ^Prf!Q|x9tmrGd4?-9^1c$ zCylrhVCO_Xvl9%>C3FuTYo{_&} zJUNfoud+KNz@Wn;DzXlb-sEZ}NMLf(S7sU;LV9sl4;UObNd$0S3E$_-B!vfPtTByM zF*cwzU=k3(>`?*DfQDe=h#0yo+aAixS{0GboOHgY)-96#j_-bh!Ch`1xk`z_b7=Xk z*s-By30<{QuOhBXui!*}2>?KTd51?8c$C`X%76fqdQb6o$hhCzGavXi7BwT~dH-uq zOKB7Iy_GQJSfSLB%t*3}i>Ehg6{XxR;!?k`c)5FeHYx`vP73_Yd-B+_8 zwsraEwgv~u&0<}|0 z);&?{_qwUS;y#PR;SC6vl(hlEVRbeL8As%R%`EZHg|bTgQ-|qKCK-@Tttte0;#I2! z4&M9;29UP}{CvN5M};$bE=e$>Av9_$DlUSG@!O6vn5i6o4f9`x*_FHFv&-!eV0qly zp@akwPmBWWAyL}V%>r2TQ(FkjpX*W!_H5iGlA6Oe5J!WNEChi_X{TDr7J4u%u1zWA6aF)k)pY|*F)LHqv zlfzIN2@FM08iUffECc}GZTupPzr}Xuo0H8h_P6P~BCw?C$y<9=e;0EU;7I$Khv^&a z6CWeCV1|i}!g=eJ0UKpsT(6u5Dp%AnF5gG;%rtS8%DXN}l#z}HLSltvK`i)VLgIVe z3#)Hr_#dq1_UrGqdX@6B>I&os_li zD4lvJfv5%n4YqN9+{R}W1NZe`KWW(?1gu5Wi({m6tHVoe$YI3BAtJ*s_@=l&$EIj2 z!pc&rl9Wn(g;;4~RMEE!jP|P-Y6l3gGL6+vGQ}K>1t3pG4rzsv<@3y1_6!p1S}6v_ zAVmPZMv%n@P{P@E8O36h9w0URM(o62l*f_p*a-`?;`)&LmTy{&DtEJfVtPS_34j8r z4MJ_(h1CF;qu3C|1ws&4N+2Isj{8 z{iKRfk+xCAm>S4EZcH0Q0ncv1@#a4mX5^OR7Wh56=qiL)ei z)hlTdiYZAAVvJLLQr`7$=8_O)AI89~cm*83gme}^lUr}739#Vzmn(V;Mm6CUohbCg z1AZ+$|Ics*-Y+p;0B+#9WlO+a=%I9989h++Mx0RVbpw+0U=12@A)6foDrGeU z-pSQZ9nfR}T{+t>F`f-y3c^B+8o>5BvLA-^T)3Tu#mr&F`5QwNSWJr;T-;;CEdzDw&W-Ux5LT3)#<3BG~g6IYhT z=i<=HoYjO=YL@L*Mc@>00W}8K0cess2hu2k)~o}pOm)f3ah#Z6bXIi-GSeyI_)FRd`+=*ZH+DNto?yvz=|W(s~)k zO=5i*do``%E4loz^iQyISxx^Z`ybN#*|wyV?yW?sQYt6W@0M3`LfX-}S+5vn-i~j? z?>$~Kx|SG5GX-q_f>$IigC%0r3lmo|E~39!p^v&=;w#7Xw=j1d=E}tfR8Z@uoeS}l zIDaG=G?!7cH%6{3i;`5TWN;evY?dy2hKAv57&@#Q0}NfoVPivI=zFW#uP*%J(rd)P80jBV+(#mNY9 zBTI|Kp~83{5vbHUo71SoGx}yvkBi>nPBNosdk9-rJ zdKdd*!)WJgz)&)2CZ>61%gyV=HB55~PD5wdH0=04&OO0qQD{>q|18wPHXWQ>>xT7Y z+3-j?C=3gOF5#qcYdHgvo}89Sr=`-4`z^*njKQ6h49q}-HLWK74#fc8$a*IJM%N9u z4fmx?q!=8CW#zn8Pf-k3i5cSa#GCQ&SOJVZ!(L)OEKcnmA^~sfiRZM+OqM3gS`wm2x@k#4$mseqEo%zmk z3gdoTpmUcl{;sRj6U{AZ?W!QjwpN_c%yrMqHB^AjtcA-Pt=dlvY%_`nq|{C}YaV7r z!V0spbbZ`PDD#b{;izKSlDwd?5bNsYjwoSS>Yzn8P(oX&ud`(8qNQ`Wc1@mmYB{2I zcEi|&o&UL)o#%rYm(U{DJ9J&7ez%FqirRQ!ml8>hj>Ae5F~u6`G_09k%pK{m%HDC@<0&=@kL-zb>b~lEM(A0DCE5>NryVd93KAE&InYx z#Xx`t>pB6j`emMkt`t~Gi_II+t8w3o;)FukL#3h-_pA4+P~iW|85oCZjYOWHqW!-c zliHYM{CV+pwh$oFb&?-h!f-)N%u*#w0pkb(Ag5N}ZKy#21Xf6Y?`1?p#sy=r`MdRT zqtv%?#@kTA9Z2jaD32vB$@(fE_13y=YVn`fmbzR62?6KoqEQ=}i~`%i-dSsVWyo*J zjO)(SQXgFqgjYktEmKubWk+i{F2cBl#D~w|zDXC?R&wRMt2$1wJM6r449M%t*7Snn z?d2GY_zC$x7)WI%b8_Qy#1*5%fW7Tzsl}f;vn?qf5pe27LN~_0+K~bB@%v=A9Ql51 z21kRSh!Ib8P;y7XE!?ogp-7390HGO^D@GdY!)%#4{hFQ$u%KNkp|h@xP}7eL*CVyP zKho>U=`~gCti3xOSQ?8+p|i8?55v~xAK_uYPyW1+zjHK?)#j+4%hxUe>r?`+ME;gD z7UP$6C8T0lo8o4_YDM94zgoiR;X^StOWaBTsIsYKbc$@*9d`yX>deVus3(+HkDD%Z z00YB@U1V20T1>xrSyF3nPHte9y;3k&afrCc!Bj2~1 z%bby+(+WXyRGdd*St>YIZ8N1ZV0j<}U;?0*Wq4bFRmO<(1QtLl4c2gVT(<}<_AH&Q zjL;GEq;jb?K!}q^b&k`@)T5gsDOS3eK_WQ^Chr%o3;Fi=&#L)y7NTyJa!8jyhRPEn zt+u3c?~>q2Or0EFr4jlb)(?K0{;GsM6Gy3ZP1Lnal|o7wwW9|{|F%@C8mj`cR1B=T zC7YZ*g>p^7ln5(n)j&g^Rp9Wlh-h2HUoUVO1SV~0)Gkv8ZS)|c2O_1b)jYQUqS}-$yeAqW>czTGTWg$C;8BYsT%v@!& zDCb-LE*86`EZSHIm8KUseI2IEY)a0W%gJHNtUoTe;L7FHoHJDo37k{9sIN|Q=}s0= zhqW_7E;}bFME49=Zf5S$PMMH3%hf3(=7<@+dEK>Z;nOwcDLJT`v&i)=+Cn z;=w9Ny;Q7yUmlZWH4YV91`%trdxs)5R!?i4It)`+2l!oj_zmK?{bN$F#c(lQrF_Gw zl(s#wgqdfkoUi7r`dSzO*EE!sVJmyN;+&9>7^@d8I8%OeF)3$@NfTp+3}juFR9Dq$ zT2Ga!$Y2jc5f$J1(E`S&qZV1qTT1r}gcZ?Q)E={W3Ole^R45LvjOmnNXo0_7W=^qM zCM3cRho%gQK?YLiwhJ0*Ttrtr*UCnmr^yd|zX>3!DHN>05L7~fbXNQS6aUK#@5GlB zDitwUqR=oBvS!%7m=cuutY*A2$yj$NPMQvlmoAMg`U+U^WpBWV>jbD=EL+j`yK_it zKL6H5=zNY~N!Xm!v- zd*CFK&eiBBQnr`?fp=l676g5omj;TX1;71wnAC}(v7Rm6k!HEEkosCqzT4=Pjb63h zt}uv0iKa6xk7ONmg!yT?eWU|q2u@XO7N=R1Gc#!bq{_2x%z8J*#^==($7m?a$5JLYy`h)BJ*Tw0?!DNE z4WXckJ+s0z;Ew-Xxwx7y#^;vqWndP{VO*$B71{CqU;7RX+Fo(_(_9=lhq?Q89V%!1 zW}OgU%Vw*2HA6mzZ!au1QNEH`VCje_)Jq#UI*kseu4TF=H?YT)8F2-p zwq(QklVdw$>Xp^;4KPbSb2RV9L$a+F~woFCblI_J` z=ga9I;owT;T&}MEhR}eFjV};~)$FGj0}h}O>geFvE6GG;TyW3~yc2(gDMxZpl8a@K zLal7MgmU6WNE?wj%iFkr0(4V0Ce*bYZq$&?Y}?{VYBD43Kse0Z@y zIUL*orJ~G{+9*GT&r5!q)mP^Bm1DtKRqcvBJY4`Z(+FKyKQ5qrJF0iT_s|zl7;eQ@A{oiMYRx^Fpb&mnCwMK4Kx82H^w{S=hU= zoN40t6xS{@TwhEsk~r)?ojj9(nS;zAG>WrHHFE%f>!JEa6Z_E_%@IV0CCXAyvNC*s+CZ=@z zb71g&D*K1M$EUD6f+L&GM@@`*j6FC`&JU?Yo(Bv)MDV`=vcr^`5CUuuwTQ6E&QluK z31LJc;iH1bO^3;fL`rABvs1AbR6oQGvpZdL0~b>KPx| zlvb=MVp^>;OH>m6yyXpY)5_Dt>v=Z~-~Xc)+?j0geIY++y_o+4}^5ogX{`00oQB{byGDJeVhUWDI_lWAbjCQt^N$YdGPRG`@y z)jCieGE&+1JNWs|O|@`ui)Pfcf5@i@NZkoFhVLvYKtv@Rq%dv8G~xWY z71a7}d^P@@3ICY%r^sMj4)OQ`}ulxwU#NQV$bTHZ@1eIEb;ZOEFH7fm$aw2gdy@ZZHHoKD7R*1C`=c-m4R= zy^1ETMGzx=Rzx2F!0MUBTtOSd%r(s_9NtM>q#S1~P7@|DhG7CAW9URei)&)iG1&C) z!eeB~m-O7pW4>@%gV+rB}_QMwO`vwt^$quUIf{elt2#+Wt&ApgvY*Q@{AH034Y=7ZcO> zkXGRrswi^c&^Iu{0_)A%0;jiq{u#gpz?!$-$jW|vgbh5uP zcg)A}?+y~4&KckXo03%t8&p#|t+RYkb{KIs`qg$#T!L&*uV((QsHok2XKA=>{kSA5 z3a*z#>&V~}j|e(*dt)Av@Kxr{CDYEFui3KYluMCH^J!OOf9_MFz_itr*8 zB?VPe(DdTlOv?|!1}LPF@qUGg!2n^n;W&}A>{{8bBydWj)%-gcxy^&ln~SrF;qR6$ zkR+zs>a~rhEG3u=8SFJvqsoMWKLxj@F~XFmX)8lnKtOyJt$0EFm%Nikl^TfqTrx(~ z%PEa%Axlo>v5+Z^b6*((B;yh*_=H$^h$3z^nzfj4EZZ;1wHK;p~^gEuqHnQ5{{(z3Q3p%j_wIt>3W&X>8Yj;?7gq46(p@~PAX zJoqw89g9UT$t9a-a-v|@q%uxc8MPTU=y?RUmZ$a#0M=`?eo~M1WcEP2Yu<*q+!TZRaL>q=r)ijzGnB|z##PV~La@K|766wOfgyl!`_%)6LxPI6kb-}DH z4N8{==z|Cx@XSv#KB59l4bjpfQl%nXBo5NSs){K))c97XD;nsMiHZaORxwqE{uql} zaJ?~+J1Jte3`*(>%3=Z4H4#Tk2bR_#jgC27{xtJP(<|A}b3F$^hXi zP?!n=SKISCY=1@D&)e7l2xEY#oC_uf2Nf+S!7Q`EM69x!y9XF@dZ7yw_p5DvpzwQG z9hvoFtH-?*6W>TelKuE!A);T%>~cIaPi6O)rkmrKmhaU~sdsVi8M_C}==}@{A>opa z1BGfly)Va;_&vSP0ujbT+(J6-x>zXU{@WIt39$)i;``%S{2I|qrlL{_sf1KQNOamD zFHE3nVd`mMQ;py;uYp0=52@B!w`3L;mt{I%up0eC1&Wz$$;5g~vA3z_4e z#~bzY#-KCE!-$AD1`yvJ6=VKM3*ob(P_NtU8;&(Wr--RQRZ?Ix7Crsmi;STRK1s%} z5@RU}?(-OpQwwLX)U5jx3gzVZUK3blqp9$U=mA%S1bql7$Z`@u2<4w=DM!WUB!M+b zcp;U2-|3JR#g~(Wm2LMhao18h2PyCmzoi*a0I3^q;sC0zSPyLMX z>Qi)I!hjA3Km(#0%C7BKD=EzcNPN4BZ`Uyvuur z(}&^}Dy22ZP+$ZI@ehgH%_v-EG#dki(qI&AW&zo$^8^wL7+wN~BDk!Jk&G=02zRL` zu~`*BRDS@1^{-S`lgfgzN?im=#b6Pk{TM6FAdoI*vIG~tQ;gI9?psn*O74i0l=?$o z1ymWLXDm8%#ropBpMnNak|ng5q$3E77Obwom@?txXEOf`5CcAw`-Z4Zfzf?fKWIChty$O0BXQ9IKVDbpbTpcyFTg~<2@NR&q=te61>3=`%* z{V^V@UObd3gN)Q6G6wZnEePED(S^p3-XCI=Ace=4!eRcgbk<-DBaanAlvU&^*SCNI zDZjGj!pJs+&fQ!fJu#ikQc_2aK+7Wr^0+o_weL6=3a1#FghGsnp?rh@A~=AyaDD*{ z(}$rBTMj!Xh9Z#>6F?C#jI%NRF+o!pM{p%7VBnDp50F-oNNaK)DYKkY%7_087LeE| z{-hCw!EAs_E7u-?DkYZE=lN(g8?AJ!gX)s<{+Qf%jyo4eh5)OLQf6KQJA`hZj8pwG zPHjE@568+y{5MXP>e!80X;U;$Q&kNzOyy$EI-H$})Er_rh{B?a6=LF;ao2A2I!{$b z-9TPqIGgTX7=WTbhEI&S;QAeK#bM=ep)g}NJRl@SWU|uonQf#oiR{d%kvvl^p2dw| zq8U)R1UhAmx%^u_x!1U4iktYlfJtQagZDOz?*@zb2@>FO)!JOwVDzcWlZi6XCH}U< z392qf3=>dLv$8+MLM|v6JC?KU3=;z+EH`@?C`hCf&eN`3M0{Mr%x4G2C7IdgEf5fq zq#!v$L_bU)-aX7lktV{XVd5@7j8HRCW$8k)au_oVNJ_vsy^7)${t+9>{BCEDJ3Tg9F`XdQG~?6*Pgx{oAA-rs zQjHEZs@qV6lLHWB|1KCx_Cc6$)x-38Aqne32FSp1D?2a>kKp|W%usYm#HpWo-)SFW zVIYwJa*~k#G3o?0#u{11c;Qb6v5iP&ATjhBYImPNX5~Zt^h5kqV3|E24>3}vWHJ?# z^)z8ea3(_mhIm;*ca?6!rrUuK1RNn75w&R($mKc}o&+z=DY71EGiIR-XxEl96k|E<* zx+BIUy316^_wMG-?M4WQ<+5M|)&nfBd}DwZgAOWKzfcfbwB-muVRmsc%7Ec$a(8+d z-(>+67&DWbP{}a%sD*%tnhk^d@!kC-e%(g^RuV7uH86g5AMmR-uf%)PPd|2>m;=!UNzzSc5#t>pXCHKu~Eryp7W>5sw#lYd4l|)+N zPXAn)Kv2N+>UU;Dix` zH~~t;$Wgj`ycoBaySC=I>YQ^ z_@^F0_EkRO4`uQ@#9muV1(0Zs%)S{paA$!&3&XB4j+jbQN=lH)60nG%N{~_787Q=b zDBHu%`D>|IkEP-VqD10z4}5?LO0Pj&4T$2(h^5s-P~1ZgoO1wE#qTVRQSQdAF_Te1 zP{lPwQGP!ig*jO_i2=j>WthLY2eHl#1A=HsMUVKwx8~yn12R_~-#LZplYCH|eDBUg zg#@H#MZ0NLdY#mIjIK3mCaoaQO*#5;)5k4PG*rlbC-MAS;BEDAl zF$l-EJ_zGi_dp5bZ1i5SkkZY}D1`ePgUX=*^-w=B9GHO`BT#nbRGs{Nq~pQ3Em#!* zu8i3#nxrCXl}f^6n#^k1XngmZ@u`h!K=UImeeZ$scUwFh92y{^L5Vyp7*?)fbr>{`f1=+{ zMiSMn)#3Y-rpG_vo0E;5nPm_JaPmTm04c;=RGWXAl<&<&YPc=j)A+^|vLxT+FevOB zm6-}139^*OZCWG{PB^FXh1DunSY>Tt1FseF1nI4g>(#`*3pNJDq+x`_)BDSD?_e1#)biV{m3c zw}s=pvF%K3JDJ$For!JRwvCBx+qP}n$=rP3y+3c)u0E$u_3zcEdar&K^B*%t-+{HS zMa1HgGU?B2w86EqsaZk7^mZ$6Ril}vOefCE&zU@o%>;*PL)bTG0=0qD_oz$H4^S`y zV?}T1KsIY zFtI&pD)+UNn>-=f&B01)i~04|w6t8b#_EHh8`NQt$1_nuNQRFB>!^ITFo7L7k<*L8 z%6}c037*?FHxoK_If|Neti+ZnYpTue=Dl>x#!c$;W*m_nKg+}Hel{SKk4}qx!nc6- z#C>V>P^Ahs%pK8?P8r3J4SXbyYJt*3|LS4{&zKl zPxd9;iL~lrRrRPyvgNcd2dIwxlb{PFRbZ@hOn1b7bz}yW?iPWGiWTKO&DQfy90E7W zHYt8Vh~Nko!9j;@UpA!*5I$KY&TaWum^7}U|x4T9x6R3}HN?Bd4P;{LhQ z%}#)KE#XlOhqS^vM zXjD2H&{1>XQCCTCHQi}2H0qk_vpv67iweKz1_JUgRTas>KsH{6De7!U0J$lW@Hm*| z2uWfRNh?rj1t_Dgw8`Z~;Fx+)8%G#Sbc9l=y{PyV)oxNJc8~b8Y?oh9Ir*dx?`(I= z&h^=4%Md8?T@^Bbs%itJg4WB@$&-l~;}3!X;&3+t01*QV#c}a~k&H#2sH07Q3dY6p zy&53)Nfab{LV-*u!tAK-Qj?)?_uDm#hv8weQmD_A;s}?r=}Ea968Xk|NwzDFKg?Km z&3qp=6;I#h*=Xz?lNY)F@KLD+oSE2+l{MT%dworo;zCJ>l1RB-c-D!Kd>M%tgL;PR ziCj_BS3Fv4@4?V30}@FY?Iiu-HF89p$u$~QmIHzo_K@;kB@*B;Sr$47<-ZSPuFN8h z{gRv@9zY3MwP)^{Jcf2vlhNA{{Xo>ip;AYvogjR~ArFC7R}8?WUf%>(-wv-F)+Csf z$(mJ*jfJ8FXY0`3i~gR;KH0U?^J4~(4M@#MCn;jEIPn}F^)9H`u!oU3*8@W4e}F^Ywc%=q zad9RdyO}FNWO%9ZKO^2BJfjs3Y!iPo(oGMTH}<@EqpY*ln|cvc02c1($!$BwmdgI( z=6O|~O)JoHTYZoVFC5k!F+$b!$07TzrOV33%k5GAX!ZmwyT-@G)6fb$-h^qiM=V{`MC4Po(KIL&>;+IOe2=xGii3SdIk_Vhe z1DiMRbw=e|>xD`z=bk{_?$bP`(<*}H1sfx{IN7KKNYl<|AY-8NcnB6P_WDvjh0>(JJ)P2EheE3RGf)DnJRr;4fvCn*p>;B991=qKGL7o|F z?J^+|_s{NYpEWyeT-mtL^lNE!DKI=-L4a_!jz5S6!Q7#Sx?3X%6MB{B2pW}Y0CV8j zo|Oha7iiZLA<96z+q*Sp1_yUjo3djEB>)IqeJGo_7MN!I1yF%(wiRUq!AM*$_z{9Z zRGc_O_R>Puu_10{pS2@7E0sqxtgVY;=-52XtlWJH6UuNby(#^M|l6aL&1WL%ENiH@ptL)YSNo)!>F}k z#qeeykWFn+FJIG?c$KlH#nNohs$&Yw1rrOk1k|+OP*O@}l2QIvn&w12ljhlM73j7j zBz-$Guq1U)MNakWHg~tAy@$7_ueT!sqdTnuk#_pE4U`AoYyLnS%rs#3LI8oW_7rcm zk!%^M5CWNz>pjGR0^WbG;?~OzC1Y@&u=#ycQ79guP+&w*>L6b}z~yOt+v?#ZoRguTKgFQN`I&io69n9r^q zkCX=3+I)5Yh1RV3EL*6A5bPJKR{SUzd$o6mvt@r8QM*tj}mEyuTG_O9?*8PH6Vo`hY$0U_cq^`WC3aP-Gb^l-8ry@}0Le(0$ z;j06|b4+_(_epnSdAe>j0FM)nsAgt-5L_P2D#R~3Xs_O&@Di_RtXj(`jdaDsE=^d! zzk-sNchq^*gEcSGDeP<6;>}Q(5bQ4mSZS1rA>#rPc3PVPFk2dRh^sO|S_4B_ zDtPWm20{P2YtvbIh&)OnWrndOL!aD{LFF;#x*jY94?E+>mzfY$l&Se8B{ssR7dx(j zVvWN4RjQt!_Rq@C#4Czfgd>1G_kg&Yk5UWiqBuM;BOfNuc#`5G{_Ywtbp>|v^M+1} z1bcRd8jogVK6j?N+h=QKzYyRm!Zn1O*4AV$Au2%ZC^#0+bq)EH+(*l8KoZwzZ~lXk zlf9K#i_cEkvCSBvfQEg6VRzfrv=A7^zNaog$y>S3W_vYCD^|u>PYTn4Xb_yXe5i!X z%I~s2@~>q=QBL;W0Fwn7)Qzvv``iGgjoU?oPnG=J8FS_X9O@)f(+>p_!`Ba8f|a?^ zMDA9V*NizJP|!XoMTLQ7fPO>Fumd1 z{J<)#j^^(EVg^U?COgX(q!vQiYu1H)8>iH1w*CVI{LwR_iKmOtR7 zBT8D8TUOfhL|)zmlz^e;1_!Q$SIrh=A#+DAbIc7ZF$z#hsahtzzO^QXEe=qtI>Gg$ z<4N>Ug-(IBT= zEBtCTNV6pb(a&EtohI)O;C7?>BwP3@+CmBW9!_ZSO$iD;{MqT|Tb5)!=k=%@?NF)7 z7rz|;3SNt3>F(@+qw}OVR7JB1jSy*KDT*T_(2(IU^lzftmCH4&|SwUC1`(n`3w;{|$83WF-ql zh09K;txLJtFJAd6q~I31j%Gir}HUF!U~cATlH4` z`KeOusn84^NESk3k`v89)YIZajV(sLk)~q%1Hfc(CR!ZRF@b{AXZR9bTdiax6<09k zdcL%Vd0^2Sf4XCU>H0~YV%Uy&x*J!WA=MBw8>%#O;92M?7t0zQ_L)W>)ifhJmjiS% zL^+=C5zeTj(DMZW$K(6W@WD&(5A=cp)p!Nr{IxWrGvC5YkWL3zq*(mRs|=MlGiq(i7l!k#JJFxfPNYeucbNJZe`lOILPAa zhE@2E;FEPZ8vg|LVQJOsFPF{Mgsi6cq@2Q;u69K__HG@e5+6}7fWyy=*{E4vL4*Pe z8^3sP77T|v;S1pTCarDNruGNNUx|pd9Dx|4qZH>4DDTG%er{DQW9*bI73r_<^DROK z(XhBIE!80*hOXZZ(+E+br_YW{?cY||72{1?tumJiUTGG^w0i5ais-as=Ei_llxSEQ>#+;f=h>zMpzV$F<^H})kT$m z(YIi~SCZgQk@QzA$yNr@wa#q2YbYrN`Uh5_eD~C05g)lu=rLP}fm}s}tCDIz%-9g(>HO(i!RgeNz+4?*eu8_k^K>lqx|mrio7UUybTNk0c*+>B=dT2J{qa3o((SGj6DZ`zY%FHy5+%~$UWtdQ zzs)$r#*4t_7si8fevE%?BPUn)2fRa%QSDd%y3kn(o`U0}Si2Slf%{Qa0G5|^aP6N< z4QxF)%{L2us>opF*M!JD6Px@boKK*ZkyNi5Z)>69)scCA!^+_sxxNjIS%q$@Ix06N z5d^M-{H=&ZSPrzlBq^dYl5fPSBvKzY$l>zk|L5SglF4-wtZ1&gaM*UCL!^wIFZga# zG-R7>kKOXXxrmmIM3vX*Dn%W&H~2wAhbnV|NytFba3LF(yFaYr35r!AqiKFjn7>F? z$A2b?X%Gw|bSmKJH8fCBts*Cvr#9y#jZt>i4+4ea%1$l=2Sx!b92JNON}dNkgf#hr zL@5Oe7@n|Ed`AvY^9x^-$_4bqy21|7_*H_A@`&no_t0r-YuGSaBWau=5KXv;;2hC| z8RBvSZg4K%GbuG#dM<{v^4wyp8>Sb$0{Vh;yzEDdZ!2(JlP@aP(^9_dOD;fr7VTSR zRo$&DYadRL$Ai+b)U{neQ0k$UBkU|P@|grmELQ6Dzn(7U}%;zmbSu^O5IQ(g%?CQmI4znPCP1fEzwoqfdZ*4QOkuju$$}-8zcM zA4#Cl-iBAd+0GiE97O`z3(N-`pi}HM7hJQI+|xM4Kmt zghU%Bo+3`3zBFnssA_p>>ZZ0lak&+KfnPbtM&&n(d_8RptB~<)rFh9~xM;oP z)`9Oyhv`5f%c#$gqGyvP2%~CFUnpH9g_>sK4Y?CkUGwbcfJ=toA^MtD~Y#Zg( zri4S{Gm7;~xAeH8=P?rlQp6SV1mA=xPxs2NKk!|@=ib?x~sm?FggAC z+N)XfUlbG*))GiIIF$BrkMIpqXP2zYFVDfeXc1{a6#Y`Ul&BC;hvqrjA7tHpy;|pv z_*Z*#Hkbqq%p*)l&5m|lu;CujGKiD1>=9pXQZ*Ca@{VfD;P$=J%b&JMr#{>gKk-}) zbkHsS#kSZO8;HSdJzbE)x|GQP-Tes?uUfdNCYF>#J}g)-;ijQBzXf{_lX!rO8lnxP2VMh3-AjK;GB4YPZfj*LMKh`?UZ2!JS(|@j>_9K@ z`#$HQt#4&a)1g3--7PuiW4PQ!B@jX_>q)MN`N{5^j&19;+Md3%>O_?hFUk4w)!-SS zcBR-{|7jV_F$EPVD_v$huQKT?-w19lJ3#GwG$~NY@>1>!rf2P(9;U;vQ_(y@Jy5~O z8IM9q+1pkTTp3rE2Gh62e0tw!Ggkb)qiB7dA{B6RufU1&s_Yw}1QeGkO{qOr|I?~o zFTYR@4pR)4I1pqA4ap{!**3+~4%bi;t2ex$DIToVjZ)LuOHC1Ev8p!va?8Z-KrWD% z;z0AY5iNP{-YJ=kQ!X{xM8>>Neq)p$2$*3GD$B*|eLo#vTvN|`7I3g$86bD8pZFJs zc+zG|z^5A12+xXku+$WA;Z+r)E?f1U4<+xz%&;UjsP-wY?{{!s7{>e&*1a|`#lKfD zsfq=`gm1MoKnMe?xccabz0A3(lp?*A(8xbF85jt;&v@Srz9AC(wB52mec;k>k_j7= z#`V;m68tzOO^q8O2yylGHLi79c$WM!4sFuZt|O6lEFQn~SvsO_w}+h~aZ)g-r0Ko* ztM6DhF;BazK!v8oyOs|Aua8?c!-l&I>%QQAAgd{C&x@fcg+O?QwnB z{=;$F%UwjO^}2>HpZH#5#=dhRca7fabY>1RWmgE131ihRsVL>31KM?1qjpzH1Tz!y z@It9pD}#7b0ElIOIS?kirl1$7;nbU)i1ykM8)|Se!)IPQuSjm&{U^HqF=x^nf$hKd zyX%@Acj){Ac^;gd<6lJ*L4?#Ey<_u)--0V?Cd~EaSMNw`oe|=d4>AgERx9WlaYbcw zM~&=lDeXz7O+DyVTrl%We?>Eb_EBwZmBt;C`S%!4V4T#v*3zhW_*2?sQeMu%LUos5 zxOuKqns&?5!|Sl7I#m3B$pl9*+P;}ZV=74@g&CHk_QpZ=)MG?ps69%!Xh&%*CHoc6 zzFQ98p&w9>c8>r`L*%1i`!3*%Tm6v4x1h^ptpS7}!4OkcsG)ZnFT`~Y3Z{K?$>(6_ zo3iIt9h@>x)D`w0G%Nv+@lTh(T2?3YqsGnoZ3y7TpJFt zw^z6|2p%=eV-rvq?lGw-H8(Vknk)77*%Wx5Yl0bsLym~N@~kbqGP9(@8mybH2sA*l zK?e2@{4$jCO1v|@9c_?#RXIFO*_f{8AR>8Cao(@lsY~G!b+7x5!}}x32#AU*KE469 z`?EUOBYTLevcNTb6)rYUQwg>BN5|zD<4NR+PGy>_dMkHMf%YCD)i?{AAZ{-^m|mZn zZJ$bbfVl#TIF;|&%+3cHi#wf8{9=G>S_J}wQ7!%BzD4_tUC8e~t#OZNmoWxeW(4!G zKz!_F8t~M|XLZhlD2@OR3xf;`7*<;zqKc+W%?sBB#`~d@Y|y;g){)7%(9e*r_J&{B zuk2yR2uNcDHvh^UasPgt_X)rlbiQ^TbN-1%LSp-H9@yy#4n0rs$Ofzt#Iq@pqX3bwi~l+vDzTtn~+KtA*1tM15<)J{%fw zWfLO@Alpb|2HL}tJD+kH#+mEe!iT2bO=0wFTAT+YMI3gM8&CDeip5Qe~;VO<>1CXrBQ!EwR zAcYjP6`9W^G5Y;<7_}xGbwmI_>%Vv;B9%|V&%UPgl!yBrGufibzfyHbnJo@erP-D| zip3GiG>z%dFMq|FLTpt7&ZEkgOtkR%F)XDFh7)L3DKCW(*&-G0M|zy~S`@fVrg5+0 z`wdF4W4AHw@m3T*$_T~pZ^aOk;$jOIhHJ} zk+Cc#07Vi?;%PI`!H>i9)h$wQr3v&l>;AN46Y`6rd6UOQ^JV*QzMXHf5^= z#Uj}!QTjcBVq?Z{GP18*h|C61hVZ0{UeUWhV1A)>P}HS3^=h!GT3HXQD0 zrKqD@j8njwXmw}xJ35*O4J5@Sd}Yg>R%KEQy10?yx-eon+YmWJdz5zA=LveuRA=G* zLRvud-X|B{>2DU)=sjfP6+mjMPYwm-B7b8_`+_!L8R0x4f$6HP1(djZ_rXq+T#cmH zc0M`nG;2|l&I0ZN$;l`r{8ssg3dt#sy$5SrZSg zmI#2O{jiS;=J4}+TLG29W$z&WfTrKK?Zeo%T<&HnX z2Ge!>I(*@Fh{3g&pl6b9SPl+zWRD{1iOanad^MafWcv2ju}<@qGK<`@ZPC z>is~ShyVTS`M2q-@iSkxeC76h%l-TN@B81q??2anTmRmCUwghgeBXP%5dN+I@H~89 zcm93+OLqL+`Lg}@68dl8!T05}Mem#a-^js3>VRIuKYDp7P%vnq|BUyx1j_%u{NIH5 z^K>$Cb8>btaiq6%uywL!`tNGgpYH&mL!SgnGLo83OfVoId;%aK-2Z2_iLsuwt&6z{ zos+4-m4=ihiUMjkb9iLC1$qE#(3-LNY59hYV!l9Qqi9fd5UP`r2+dZ;N~1fAHHzgO zz0S}S;t+XH-zv0dbD*Y-2bhQ-}O7Yye3mqf176(=)2bBp-PX5~f*E*Y@FcoMH1JV2oBmOwB4h*raYwcmCk+&HtY3|77D;ro?K;yfs zx&NwAXfq6LP&rpCVkU_^qOrk)%oydvB>UuvMrT%F?939`l}VoDBAv7TLF)S`#$Sq9 zKq3013yN#wQ2Qa*D|r+p{SLxBQbQt!T@wMANvRt9>eGUL(L5QE?t0%Kkd0DM8ecp| z4RFPQ9QdN<7iOj`v9SN1vcRS!nteLAb16`MoR2PZiBmw<%-3BJ)Nseb=~?Wlef<;2 zPjzk#sd{QMveHq}1Eg)ULM{AUuNxG^(GHWyLeU3T_PLVa<_HrtZo|MQdZqZ37qijX zB$wQ-oD=){I!74S_YDv_RtnZqA5 zp>SD5cqLQ#jL8TWzK#>(6NQ+tucUq!SWd=cfb|}cO-($tDAz8tx5$DKS0ClqU1Hc@ z9}o;j+daFxIC{rCc~2>rR3*~qZ!_f31%0}fI@z`e0^d9r%;Y&esc4*80+-^+HsdPF z1;5IDfEzmd1prUkrco!?2B|y4xv&Q7r?DPm?U}dU&~vF1Z{yhTqx7X_apZ+)8({2{ z?dr?Fh`DuM*dBpvn;4POLHw(DL>nP^Koj7nXkvpZP}$PW z5o~C8bjQnf{-Zztt0WEfPlU{u^r96J_Baf1}}3* zLe|c`T~?|UIY*t$N3<; z9?FRO*oc3<6_ABNsuiIK1iISVR&1FS6%|)5k-2VNx-~ODV|qGe!lXf+#^d45 ziz{1}Eb-2b2N&Lza4yNjJz~WTMQ&FBabRXe*YoOWMGw;2>(i3w+4i+&(5Oq-Ha1lV zvG>3Y9mo%O_2`IH9_JH#mpy;S?Eo$T^cEgKUeom}0*J;15#p|0F`;cSG@i zf(gBL^nHMHZ2GStBOI83+E95(LVZDp{Ua74w+KWKeTC->I=n;iRf335#N%j_yF0M< z3KJug8;$%O9-ZsAe$W6C%i>nwcLS_3tmGDi0$v1BiHi6&(>MP6peN!I(BbAYNN@M2 z3_kuBK$yegw%+6M6iFCv6Jlp=PYSeiSZWkM=$4j;Fl#pxwDS;Ekzp|#0+E#*;dkFU zeC5~TDoBePvK}f38o-`K;^h`tqo4pF6)cUjdfrh40B3~qt=VN)*$55fJd*Rp{Z!}) zY5;+~>{Ek#zD2GfY|Qm*xY_Gb>!rm9cdf4ClOQ>4ul!6_{)@LA54=TAfq$5=@6l)Z z58rpZf!7y3us190c||{5iK?803ogc|d~?YSLEBiT8W6+ol1Fa19yxluj9+tuG=36x z$q#FX#cF7iuEIyyyMl*uhAwxeBVTdi)OPG(^+z z2=zpfi>PvLzpznO95y~`FbE`fb~{<=yIfK>QY#o`z0d)KPY$1VM6NOAy%Hdft~j5b z6az-3Od;ld8d@gXA&x@M7n*S~*` z^g|j<7+yL0E;&Kd2t~OK^%-%%ym5|CL9D8o<_<+qH3^gih>Z!9v}!{p5}|JCRTo_R zGx+8Cwe+||FwqN7Rc=uy&$n{)c#XblGPH0 zuOwr{`~?W^-QjajLIBi(o1)!W&~BF&9%oLW6=iGm4J9uX4t}v#62lO}{8vMf@1I(s z@gxg(gX$=E;8*-ZDRY2Bu45oMg~SuLNB4{aXuIm~^5-GYXe3+uH;wZpKMN63#A~qV zgF`=LY$%79t=E+7x!dM~r&H@W3;m!T)mlEkEl*W)kYCsKa0m8Y1!mPus3&|A^D3l7 zds1^`fCP@Zm$07(^Bqls)<&OuiKde6WY_>#k;VhCzXZ=WO%03d)Exq!9H^zELz3Ha z2Mg{Uq(GOP5dVIorT?of|5<1e*rA_d zLPE)3+(6LeLCsPF9K|##(ym9M`^<>dJUnfEFH}_RGLyh7pn#C}gNQ;$s~jsltRD2g zfj})+oGoQc{k)xW{mOPPf7(e%OOhxmiqgBxBMax!f69SdmEj2`U>jI0qjOBE?RGtSI#vRV5JMK`7-$&BS$tNKfP72#42# zD;Ch zu)UGZX!zzP{ggBX@L|oRx;Qh#6#Bc8z-06wOtwENrA_gKz7n}HyI*Ccnl=*ytzIB{ z^@OQDno52E!|}cd*G~ok|BX-@e<|#MUvEMgp(7cDc^VeE5Kt-bKl}|Gece9o7R$$6 zT=eU_KbsY;HHurzi|f3HWsvyN6`_d5@GvPT?)CL&))}??uMOSOd2< z0vdLZfZA}3C_Eo)cVGaVKBci}zB`xJ)l@;B1uANxicj-7y?4MD2j7%dBbXD^b~Jj~ zt7WWP3YcduJZ=fIdSLp78mal5w-_b^`BeGG!^V{-gMXM_97i$KW#MRRRPD>n#n%RX zhCye>o^?}!D&PhADCo_fZZJRq8yE?CJfn0jY2|lWV=~HkCU5e=YyZ*$3NYuhMJgWQ zFxt24$L!7f7}$lMV;E(TTuwyNf$bbp9{t00D25*`q-m@V37->KU@>Lwnq^}}pc$g} zB9|#Cza??+f7iI1?O}yAVC7N9l>gIjYgCxv>D$MJDG#Ngl0u=SxB*W9O-QmW+osyS zy4#Yu2gP{oWwnh*hA8K;AgE@(kA=hXWeNa-b5*dlrM}nUTIsf@+C6G)~QZrMRta6gENR zhnA_K2`0`$^Xq0kotB2|U-7$+T^|d#r#5swHE{4TuXS2}DK~R#Q<}s<;_@NijFFvi zDDyHYJ}a5CUDQ>kH_VGQ-7>S`8DG8FbUf{#dG${F#wSIPRmCsHcL*42%H2$7MB*bc zyqJsKzh6dktqPd+hp9Z{+ivIU_lK<&>lcBZ=YIk}!-gbS=gT_SN+@I}EhPO(Cu}$m z)L8xQ>W>jrJtwV27G7p)Bh=>>L3hPt6nVmy@YtW~JkDd+>C+7AJz7q;k(ktAAx=pR z&X;iLo#CypLypEe$@)mWS2#VdC<~nRp2~Fsx2x#9+R*lDu^Y+d1TpEkW>PdGRM*qc z-R6*|UM&2aQS^Y`*#;L7Z>9Ja%P;*`sw%GtPaP{`9Bh1b!sn4#h3^vqy}S_zf?(jf zDQ2Qp=5>m$wO{iUH@*5B)#;@d=u6iX@l0cZ=mD-vfr#Z?Y18o+CN=2AZg#~GH8W&% zj9!0LPiomn=Zuo%iNZKg?%z)cv2r4Yw^-4BMP6yiwOcc7 z|F4i@bWHP!1=z1YbF=sA^Or)5d`x6@sCeth`@!0sF-Aku_6Ej|Tz#k??2;{FLUNIY zvDD_tv9nh-fe$ipiGb?C8wuI66F6y*gBuKd;6LjLf!l$K=_)^w;efePw$!#oQqE!t z3jLs4ExVf_vwlr!$_X=G#rQ0L$;O^sEU^GOB3w|9w+=pp_z1tGwdF1|LKG=>N$8<^ zQ0}Ae<4xu%s)7UvyOoq4WR^GPq5HVte1RxWHuMFa1-aIJbk!d!Gn0d8gCV%>&|-@+ zU7I#HOQM+-m3mP-dWwXrZ_xFiVW{v6O;Luf;EO0|4ZOmfEoIZJZUorJ$rWl!d8i3o zvO_+NGD6iewW@R){i57?fHbXrLjNNmVW~4&teCgHfJmynzB4c=gKfG8BkB!3<#Q7k zYA#U6fKx)HsRh;=o2kNa_(W*}k^|)XC*r6K)gbD#tJRVtrAn;{t~}GvEhH7qA2eq2 ziR!JQs#NdfKzEaz9UV-pX%RPYG8Aa>(<(y|DP-br5E;M%O5=y+5x@96B#IcsHPaHSosEB~!>!T*4{(KM=MS{)E<{52)L=X(`Bcf1_GH9*{4e zj2PUNC6lRp%#p0)^A}@~A&{FIG7+>iW@po{##icq=QJ_pr&V#Gz@e9x@<*a^CSsx- zLx;o4!gbWK7-*NMp7Qsmc2+kX9lS0UgRNw&LVr1m6j~|15IbI9BgxQ)r!`k4gF``- zc~iTqRe6PVfIdw(KyU?ZV&qh3rHz>3FuJhQNkcjgSn79EgQHo|7tyVnnYGQipGNV> zm07Q2xh51s>9#oF76gFi)|f%V8YVC`!cY@?u9C4e(%>0pQI+U6h)1(llX0cwR}gNX zkkxUj)*a_pUH1o+X`Dy1R(haE*s$Zs36R6hDND>)<9LDyiKS8$2y-JzXVphs2(Hvv z>(FU!DWP7hH75qmW=mc=Ts_p_yBs~BQ;uNOMaw7PuSc0}?2{Se7>kYRP?YPi!mwZw zPK^|8wNP`BvFR<`^D*OC63L(cYXHdSb3YCMaWnjN#9o6x1NH0W*z?-&kH}3zBeXTh`oHttiZ%rfa54 zI+Q;TBYvdqT*M={hWs_b8ky@^k$6!=a}`(M4-UGBD5R+-cI0B;azo(Rt`$GKUV{q`y&6FdDg0Nwt@&sV87XxtB z{k~N5e2e4zHV<3<)u{rE+#c^^W?}BRZT-w&okqRt1iYp9GX*rt-C*u=yUntROoiIR%CDa(gM))31R8Cvx5aye)%N#KXo`h+?W{oLp0bbh7nR%ePHIJ&`vi(4Ssr{DW#Nfgzx0EYL-*@af;7CQor zQlZ^GCwzeI*2Fb=iMak|BU_lgpz|rtP7%WJHrx$6qRR4|7qQbi79sK+nMU~03 z7x*8`>h8uLt{Zzx%ovrTJktoMSVoW!nPnR7TGTEpK+nC;VDq>>OF7&z!zg|Jw%$2M zw#sK$=)oHytz}>{4olud@&bS%O4%$7(|^@CCCKfkv(`AvX70X?3{p}JxQaww8y~^U z%~Q2$LniqvuX=tPo-MGJ=F03^vk^_}{H-p-R>b>H%)qjRr`<&5N~1U=0vOwx)-Hc9 zE3-wAJ7&dDvcqI2Zu(1OR#m0QM@-APjkVqK=$>s#*J1C^y686WnEONSc|qcP%c6(U zUf%{Py`o$s@Y#(ISV4%mBopad%&0<%(*2WS5K`kJoz#Z#86Gh#aX`(U=*i@#BIxC* zWTBCY0Q8|RI=OQuh=I%w8H5RU8 z7IvxsocAb`suAh@LStmqioyDYOb0$U%r$(G@>|10p?GeG5#gW3`4t)omhqJ=z=sR7 zWjvYn(8^gWbOoa@0(GXnME$7$y_qBqq1en*i@}N;KbUN=6@^3x4AX15Wyfb@%V5j{ zp&<22s+uzZk4Y1q1MrLxp^Bm7n<8i{wxUxY-_iz|niccC{4uVH|MuXgK0>2Z>kQ$U zYm<&6a?^Z22^hxhhl$vzU!JSGEO;jwKBDly1T8<`?5uux237(2Z4J&UEYpQIC*)Jj zBps(~j%R72b2ar6xjH=s8<&Js8GCvb&mqPhn=^vo^jKxiFWNxe$!R*zdvsK5WvM=F z9LLY(Bjb2>?s>GsUaGJB4XpTV?sBOZvZ0i?13#Y0vdS^mO z!xo>3-+nCZCBv%qc7m`*1$oLGoat)o%}8@$YW~w|{HKBas-=zJc~1&%#v|2Mq3pEc z%*bs_LBpS37{xm zXOm*Pi;%kZogJGkqCfjy(+7z@&+e1kML>%qBTn(lb$#_kg@0H-bVpLUA@jyXu(bEB z4DT6}4|?y(Ijnk5{aO>{e|QAo?0Df%RR>?RC{;vdeN;;dJavD2l$Vl%(VL97Wm}~T zuZVMrU(PEbn_k_$IS%Py0!RBR&Hx|~Ry?O|uH|8ag2A$Ob$dvkX+E@zoNhkG1L6-T zpILP{SL1N;ekFlplO*(AG=*?%H)WU;+S_FyASW z29%_2&0%hTWsNVOQP3)Siwp5tR^o~{f;^u8HZU3Y4{nR=Wx4XwDFSi5pjYO24ka!_ zmFiK&arCyohfs45+^D-ljU)b8X>j8=g|b6P;CptUf~r&=F`!HB*T$>=DA<|D9L{^v zUwo`@NKws%6%DhpDkf96HH|Z%*9F>Jh%cCD11wX~v)013`f%H?^;X?Giplk1t&dEI zc=>!Gv5T>1Rrho=z2(If29@+2LiaP7RBYcWl9%TJd?ui({@F8e!AM<^CT{2%h0R2^ zWa-E8+)8xk?EOnPN)X==ypQ?0S`Jh#y6bcnG+`}!D24Obt=B&%?6mkKS<6Zul{QF* zc)|xGqrpnfoNM2_%V{J4A#J*l<4@Uk{Qg2GuHTn}MEe6D_RqpaYCBllo)$GM`7 zT>}WEC1N}YJCt~H0MH}{1p6Iog zr56sJ=KSq1pq^}~7J3Mpx4kxYkZImRDKDrt%bhG`fQz3OvW=MoZC9gWW_jrqDxKdJ zvDhwJD2!cre8W`t64dOKUV@+psq*6=uUy~B0r++z`|X8nyxl6zqF%%C1OrbkGto6p zbR{Z@{KV21c!x8MuAB-VE1dzl&6 znpy#zFD^<#erYW@!|b|us|GR9Q!pxYU2$V-ymb-Dq$uyWS=7gIu1dwmY(yprP1IR; zpD9b3YI(8pQZ%tOzF!wN-5)k$yoFDV&Ro2sCTS?l$KlfnuEIqwUHJs^s871;Y~B-{ zYSDMyU(Xx8;2sarwq6HG+PhcO9d5ns(VPoKf##*7u~Vi}&s0E>$CHtNTisgHSpVXxv9#G(X5NL|~wu&trBI9`fEkHx7U4FMNt)I)rm2odqiFxy+WUE`Brr$G zT_r`56NvA8SDO$+G$v;Rmy}!=P(}&YM`MD>z629TqS%lCpm&lR&{59hS_VBJVuiCz z+wL{w!yPcqXJ-Ll-iYM80q9p zBFhf9cq+(J3qy%~9Q`HjxID;lZbDQp32(9dvZb$D-&U$XIK-&Nz1Vq;tWY0QbuRbo z95GSue2GY`_2}e=DTL;(0s?Cs+A~`;xykCw0)C{I0x?cSH$wUhHbUg&XrcL!{7whP zDX0LAm)Y02;teo1Ik->HE!o7^8AVIpR!DE4a1k8gu4m#zAi&YwB=*S36}BkM^z_%v zHa@c| z0(7z#`PKnb%mZJp@T+h6y`=Ts47rfEO&qe3V_o8Yk);3%kDe@74Z;zp~^L}p7BJY}nX=JTwdi9Et1)`hU(UESYfFLbV`+D0sz zDmKz8rA#s)ndy=Nk>7U7kMxxUn%0cv&$>kXI~WMqOpJPiR!E#j6j$_wo%kWsGKE7d zwsjii5S_j_wnN{!?$NSHwf*Rdm->(;N26n|tI=C|gM%6J8kHWdk$Si7I5>3hn>nv8 zP?`-;hWf)6Og{P~mNHC-DT&FzsWYy6ooR%L8W!gA377h!w`}4B!@G3-`gxhNT%`lS z^X9-ClaNIlUFS!9g!1L9D(f2TL>uHqJ1{;Z-hBwf+{$-8$PnL&Ahr2`48ZRsU!E$W5Nkej zTD`$>F2tIBKr?d%Ei>mMlx#>gWvjW!MGN(gEg&n_IZUGTb?_IMCY(e!$`-@%<0KvZ zY&_HN$$Pob`F>D z*QRPF-@-9!hGcLriVydSza;Fn0PXEJKB{{p{AWIzs)9?E?7SJx=-j{Vo9!Gz*$JddrfcYtOcT#rrIVE=o+)(T{~cN1>H z*|LRPLq)Q+uLqmR^cvd~AqeY>9(Web+)eC8@OqETI=Srd7^wT14wQ;!@EoG^Lb1ip zbq>$OW7ozSl>futIYfyTZPB%C+qP}nwr$(Ct6tf*ZQHhOzOwT2(+E51rIG$=uDj2; zXV0-FT{B>JW6LQO{%6LD$#zEemM@rFs}M?ed63hO7^X3um#++eYCih9BL<9wVY ze%BwGK^Wm^MQF0@BslS_r-3S8KQXz=HC+JfV7zc(J=@E(7_ypl&reN=m+PRWj%QGw zN%SM#=2{mH`yJ&&Bg@=K-ltw+0j6BBS;5qD>K z6e^PC#|{Mb3x?%7SjyKv^PdnxOF3JLvqryChDm$e1=Jle;;dF>WkQP8Sq!h{?=C)b zs;-Be3_}n-My@)@r8TJq6i+@O+SiZIJIq%%vBOIMqda7%P*znny$~tO`2rP4M>z7d z6|1PT32jIi6jg97?ACPk}>w-cFZ_%9hc@mf^ERy%EN zP_vfnZme@(MM0W1Y#S}Cj=3XS20=4WuZdSWxQTel(aRMMh__3LJr?yAV4TLX6?sjPkOn1a<4{CBOBRwQmKa(`LS%{g9x>J+*Z(?mwH{6!N z-sfvIS*M+o%vi1v`6>P}ZPo1rz^?T$8GRiq8=J3zQhkPY zNbsnT9Yal!M$3AxXA%r9VIOrHtl!F4gB!R3>u@PF$a=qeuCqv2uFGy2cn?q%lw7(V zJ8~K~s>aWo+&rO_j*VPc6V43yC!Jpmq)$qX^DSkHlXa!P%y9~6s8ly%+)RnadV&~= zRx#)61u{!L4}Tghr!{l@%8rSU!d{_4HdMf~c0H2*A(^}Vg?f1T+2|494)w7B#Cj`V$OM&sR~ zyZ?OdZJbJHRq?+ckzdW6psS7i0{(ZLgeF*lG80%HH5&*3Kmif};2%}; zzu|1Q4lbrnPKHeShBgishI9_b9yco5cFKY_lr`r> z>q4Ao9!aV2Di6_I6SBAKc%N_Ux$t*iJ%+x`b1$HI{(3(XU#?Ysbraqw{xK8iJR|DY zQZ_%tKKM=Y4CQLyY~5m;cr$(Cu`B3ByJs5t)bnzyKCJd0E!Y!ZAy2g37&bAvgk3Ap zGdX#nWC=p^)9{=71!1$X+92UqH*?N!SLn2b6NyH19=-+rlqT~-wnLEF;bux^v;gVk z$rwf@QM+|T+%#r3q~-?K@Ijh-la{+D0D))b{G_O^!<&Ud$}YtS7#Xr<&?;4}s%2C- z14!D6n-Z2|VWIi8Fho?SH0!!ae1dR|>hJss`Kf?rgE~M-!DS}*?GR@;Lha`FVwaS5 z0$QYfc$g|w{Y{E7ccnIeVAUL&aD$r@S$esLtzG!cW&H3B@OPM(keYo0#F0xX;o^A) zE0qNXO|}7Qjw*;M%Z3UMYn7A&<3j6_<=@Eya?-DX3g6DX1H*N>ufDdiGNF(^q?=?O zJ?Q}i=)Od`Hn*L#JS%)i-Rjq6WMXtOd6fC8Oto7(35*IENRh}{R-Od>NdlkK#p%&i zsdVlM(gLm2S$L7LMxMGS)NnAk7{i4K=O~kmU=7p4^g2HhWG8*z zDGy5wKDe+7x+p3&m0vW)|LV?wZRp-68fzu1gl_u-t6fThjE7toaTvx)b; zy|WoLIH#taNe3IQAXli4wJK@_O{rm5{`n|4fiaMs47~14}_4PdAKjPW?Z60IU(b-s5 zx0hS5*Z01+y7h6lYX5(iZ3ip;|AhO$CYyor|7ZLEXZ!#4Z2zAzWZ3_4ZabTK{0|Ir zn|Bgrb#hwJ79apX05|{u#{YWM!qmpb%>KWTf-2l{z>Ekvu!RR87F9a`9(q^=wIBmU z0Tvbop@I;QTwnftlUU}95-2`!f`}hNd0ew^D1w9#k;ZkqneBG7u6!s}jk(I5B46r&$^zPU>cKm$TZ}6h zv4#aHRlhA9Ra{DNWFoe_I|AV*L`Z?NdnD~@AqnEx8SFDa!Zza1SxlAr4`)um8&9!S zR7WpX@CrRt<`RpNt{f{S3mt5TH79RoXi*pD04%_g+K>_joq{=^#n=h3W8sPnI)%+9 zMv5s_s|PD+N8WnrK{SLLp*AV5dyq?)tm3;H(<0?l^p5Ki=Oo%wY>+rt8;kvr^MpEk zP7ga(eX03w-~ZG0wQ)n-_uR68+1v3Ab8vkYze&Xxm#6p|ADl|`Gu9~RMI&kqU^hoc zXW#k#bfCJX2k#$Tw-kSb)>|}mv@5wN5BJh0=l-W>m(BM-cmDr5JMjNgAgnF_f$aZ% zh#vn-kFAPVU$_7OK<&~0La;mk=kR~1cYSAT&;PKdz8j6Cl5Q#C;d||`+h|O9p3Ct4 z`VdWQLjqv}qty2IK@2hY5eM1-Oh}q3nwrXLW))$0l_j}Zw`xnYkeCuc-$45P^axw8 zTHf~Y&Xtw1=9dL>yUZfjhBpgs-o-8%*L`%ZzZ9;VufG1R$xVh@`ma}4?Y(iFY2ALy zuAbkARnJ>j+`d|SDQnN-rr(RsJ{x^+{EjD%-_APvWzVX&^?rHkX=}B~1=%@sL-o>E zRogy2F7$nw_f?SUiB-C)M${EYAJXp^A5+ib&%5o<|8!>BcmKA*;#X;K1j%*z{=>X` zb$dE{)25nxe&W3?KUpNSS7rV!exbz=bkEN3yB}HDhJZA&L+_-T*aMq@)!W*?X(_0Q zBOf(9*>%;~bv_gBp-dgJ24(~DRDs{x*oVi3^n$-qW8qFK&&C~l_N#5?9q7$9Y1x;q zl~SvB^2OS8UA?6#SOr$TJ=t__eZqR3&(4VQ?N#+ke@9hwhCY_QKUSE(E3HH$(So>F zk{#G8?ko3q(MqfEP&GfA&}$Rnfrwy9erEW|5Az8WKQneTGD2*c4$VlNRp4TmOixtw z;8T_+Wk@ky0uQ()>ec@!!o(}Ql?!o!4_1|^gn&hWSxYeBZyPC2xX2%)CCo}I#xlSG zMrfH2!jXJKk&t%dt*-5gp#P6qimikw^$si`sN}(ynsW}!(E%|u$ zECq*Pl#X7|mVV;ev#(oH0;6tV6C_5?KrA$FFdFM0W>hww8SyOI4%5$iXl2yk51CX4 z06}4UQgbN_lBD*C4q*}`Kmi#DPMQYh!V1fC@YaVAH@c;XaP9b^ zzo1LF7{Cg{3?{@B_2-%(45ZQcN9=Qza=tTUdJ43*1s8Ve{?8ip&4=N7g|dRII%2@^ z^Y3f$N5qb%UXxdZaC?=H-%9EK3kOiolmvu_y5hDkaG&`uTFoU;M-lQ|3MYdT*Cuq)@dr zmD9R^e$ima#i&iSTojm&bj*U3h!uMPMX}!WaGF?CnE2$WU4qulEbj2$yn&7~f$~1D z#lGAnb>DiK&FNp#Gd^>HbJ8g5+W=Y$N5ta@49x?JpiDG#focJd)by3#1|s@EU7arU zme>crTosPed8M;}y@dw$f@t+hK_DQFp&OZo$pA0$@^u5fDg=7am%Do{?5x@%B7uMP z2teiOJL{CS2Ia-f)sn0kXKPVmVVx&)$wc@r%EjJ57ZmEb$e{11k-`(Cmqlc8{^YNc z*8d1>3qRuDq}$D?hNjw+$>SIms`dm+82QF~fXK%pOkh7pzVZSwMoI7UzKNdJR(y=& zSWi%3`dAK|VsK&jiLx9c1*{Y6Vh4UjzSHRSsfnPORC=p$NF)ve*@AJ26u6Hy7Qj@B zpKoulWn6S!-P!fO!4Uqe29=}f4KNC$AT#^{A{izy`|1J7aDk#S)SE810H_79$7y%U zLi0!udwPEAS_CnB?}UhqO9OB^dxhK12)V@~amH>YiYxSO_F($GvD)&sG6ba*))d+= zH7~nDzWofGz;%(ol~c2TZcP#Qs8hs}`p| z|5x4X^OE2S=~tF-GkitBDk+>`|E%Xjc8{%1EU**Xpc`upMpl}-l4gpWzP3jFfe~`!85r zk!DX#u+x~&517^YOkO~dqcR61J9;WCd^IjKb_z%=2U0`hR{y+ffYYi}-615$SGmO{ zq2>;y|A)HeRbprss9&gKCeDf#Tc&Uf5qTxlsncN5opp(?bJ z&7;!i9@v#I=aw1SG&5WGx)o^fV-*tgE4qVC-o7gsJF7`rdbpxIc!V|!OK>!3z#sKv zy@id0VUY40T&u0!Sr}>0OPJY#s#t^kg<%W}^w=*3&ChibCe>i0F0OjzrmfW)&+q^& zq`Ckmu6i(niJDy^^{CdX{uG0Y$cZnMN4*v^VKtcsN$$DFpSy|>VH_#xX}%bN@4`LrFb>`6$N>q~>(ZElEgGLu+vSQ89m}avX$k3Lh?IzNK|Lsw z$uU;009q}LmjslKNw?^^KV2+}uZBaR?af+D)x~-P;kq7eQIgtao$0t58&Eaql`)$c z%h9`sWRG3|JTvP_IT; z%ZFAMRc!=^L;Ee}uXJ;VXp3dL(AmYfv`DXFUKr)0Gsd=CI2YX=BQgD#mYQ|^y@IY} z1=ihdyD}juR^=u&9bO{_8k)F-sn!%a>SCF~RK)X-yKjgRw_Z4xU5yP&*{Gag*2$8p zMIF*;`+X7pbYQa`(LrtZNJ@zki{5+>y_4A2N&t%#6+A1bZnr>d2cE{U-pRUmLF}s} zOECk_&um*dH=QKJ(IgDSb|Q4RQl?NqoSOz!WjbT8wO?2j_-7AD$b`EV+&|GR~?C3lld zwobSrlerLcO7 zmq5@bMrT>yR;;C~u1gWytcyp-41O_Qkb?R+K7Rm!n_auo`;oPHY_D zn#>#p=ry)bU80YF7o|=!RpQ2186Mk@ml zIko~RC-+;5|c5x?WrQg=V%9f~ACFBu79cF>#_g>7;ouyJ;Z z;@xGBiC=-@vjM@N`p>8Wnd=~?Ra?N}$SHi4B}A3iXSS`RLl6gdC>|kIdg0n7?h9gt z^FGH8!Qn&`-^19470|_KT~ViT57eEvkg!QMrYs>vl^h|s!dg%8DGjX2TU3r5$~CIf zSfS}pRU))*)wp{cDU})RWXE-&S{-J-GOgomA=ceSh_=WB`CTT7l*t`%Rm~lI_X3BV zF4Db#fVGxvU|Yo2tN1Ket)5@^mVQWwo__p}1;-P$3{R$jIJr-VIYaSw?`DhUW#|+5 z0^tLN@6dC_t= zh19Ozf2fxheO9aoDsEW^(x$Z+rYgvz-vA;weHK~{@Rm9CL@B&`S!*)aqWP}82Aonu zxY*D=9fb`bs!X_&NQ{5j)AB{lLG$wv1qWt^ff0=g47UjmW9W4(LajCw;?;f^)%3#| z+~7%g{zfDh9VZM+u>RCIJn@nY9KKh-UE(|32cK#QHWoSw;I@4iClVD+f@shn2$a2Q z&?~Da0gf%yl5tqtX|b`}CWV4uvGd!;rdXj%zX44{6}7d);+(N=DA)}^Ou}@hSp<*00G4u|M@Gtj{%zbU zsp0ciquHJ+jiXQMTyLfNxepOo=Vt_jMVlB)AYKz?dWbFQcjSfD>1%6=_&rPoFn=%0 zx3Ht|VpmYX*khy=63+uSLsou!VR^e;HJkA^P$QKDNFjRl>u4#+>sls?ty$h3(5(a8 z!eau9WwNJjusb%P+ir~!Sc{25fedA)KnlH_@l!OSK0!m72vEo1@QV9fa(RK$l^;Yq z>^jE_3=!EwGQ5LGwRJyGd;~lOXnf}GqiDb&vi)@FP77?*ynC3R$wF-1QCqQ}S^*an zc>EZUB>Hit%g9I;i9Fms-wuFjHeGADbB^frcFW*#g@9Gr+Z?Qa zV+#zZ+|HU)>kP7LBh?!^MTuaP zLHy%H=`hfXR8sex8RA274XqIH^;5vxqCU|n?&%t^DUB2)xL}8Bybt~yFm+(-EO^rf z7v9O)1I%l;NT$&Yo1ZQ#pBD%>DFM>@yS z6|xC4j~0+5sb8Y^9=U@TK;)PB{*7Z?D?3!jIuK>gwa93^m{k_LQZ}KbQ^AQ`s(5Lg z;fReXwgdinv^D1~+VtrM;*qo$~QvyJZ@j%yNJ^9R_9mP_)a*eGKpo;} zYQIBdc@u)ICegjhfr+4wQTwJ>4bBb4_KBm_ImzFl3s=Xbt` z97AA*Fhe#+7iWi5qWF!JVXU(K()G~ja48%Px&9bJR?3HHc|Ju@ZRzeB$w(<#IcE3w zx+k^vFoeIYlQz38L1=ldDrYC24=^Ayo#NiRqD%m?xp1o{=sL%eg`)Dy?L?!YT~iEU zH)Fsri9z~wVnf7<`pGnR!7_%?j>NjIhpE7iP(AHs25*PO#khrLkbj`o+4Vv1 zwRj@8lkd0cwrA3>G{YLmx12to%*2P=zTEAiOe6f+sc6UyZ>;UTprzd1APLNqeVN9l zEsb`PN8CAgi#G&^oDo6zET8pbRio^kGP;sCld8KulrYXElCKVIFMII1up#3-2nMy_ zJ2#-STqSIGfXN4+9Hx_JxWUm`-|nT2w0A9K5rwddfAmy!uI_}WE?H0O2{fC&G~}J6nXQM=NzSg}z)B=? z(qrP5s0*h*Vlh!ttQm5I4uQx7CEWg&_TWa-QA(vS@|Ys1*-WSBg?ixNdA)v`*@Ct2 zyYxKlgxXCVKap*M@`(4#aN;O4pbQ~6z|o*$Q{&+d*yl$!?*g)jsTNt)i-O|5vKr_z76^o#4|mqJzg&428x7{1DpV?g&d05L*z9;gI~xx>wZYFB$?; zEHh5_BFGRy2=BVVy>;8F&Q%-qmTa;^*%Ui5KUi#c#C$tQdD|yOV z5lV`Vbr{>206~$+%@+lZsEm>Lw;Qmx%!8#M>)>l9R+1d0nn-V+KWGh|RM@`2I?4|k zkUh5KBbWDNU;LA9kB>14_P^r4 zLJFARoJYq&ABwgBAUijLJvu?G*VR;0(HqsT~{5W z+ryqUoZHkG3pu6# z$cp&FPqjy<5I34Nk2b`C>mXkPkp%t_H`j!xA9)4uY5)$$tKKzUzlZa zaYCKGztA__%==zIB6i5`_US#^TIOpB=@>7CIU+Pl%{>D&HNzy(CP5r%fO;+kfUTcDgYPZVLj5MO;tW* z_~*xTX&3dNIXN)ME_CgDw5tLIzCi{S%lNq(=MWK`0(rp)K-f?n`#&4oQHo`!|Kw$7 zZ1YfM1$+^S(nyPE=QZC3Z&7U)PXhnwZsK8b?jPF=4wGdR2vdp zdY@o0i)@RC#!eS+08+MP$rJp20oIQvcUeSV8eQ&`?s=$vn-0Bn$aJlk-L{%P(Jyy? zmd;Y5x{`sbZtwVtiud1+{mPz*I;XaJa-{Y*&k|m;5_H2_9pE4O@Q8xm2kOReA>xay z3vh1hhE|#>Bi$EttOL4k^Y5p^KSgc^zI#nWBTiNHnfN+}5%;TUnT~$&J_#dg$Tj43 zBhSEu!;Ive6Iq0Psg&3qg`=`4>CJ9RQ34rc9m%8)2-)f2?nn%z>-;N)Q8AxC=o{)3 z8!DbE@EH6P;-oOKzB4-!tgen{44z+VB5~gKVimNx8qso^(d9cqN@jBtOr&hrJA(!P zUHfB-6_yP)K7ez90F1c|Ij+eT;$C62eIBUEyUyb{qfvb}cH@WW0t#41RwnQ=t*#OL z3wF_yn`=xM%Gx#12{>Se>u^eCmTev^Fh1WK8j0}J7`;hh=IeI8jrP0Yb*A=plFVk} z`NfWwY!s9S=EJ;4*$x8{^_&$?6!tkk@8_{JKJF(i(1ySeumc`A<27(59csRmlB1!f zM6W_h;C2nY+I(uqq;+jUF3I99d-7TZ$$xioWP|gR=8zR`-y15b+bR|=vsD3c-x97n z8vHepAj$f}6(s$T^FaxxuvBBpbH+Wk=)dr)?f;NRQpV z!4=+yRjhCOH-zB)KV(lQ1=PAv?v_HlJFPM8_v`jg^MgLTR96OTC_cm+3cAx2^XHTX zBJhUt~*r?3nDoK>T%P4-Ut+$P}UgAZqPXo53U=nLX{O{@~Ko6fV}llojvy;SR-#- zJ(*uxx0ru0LscLnYxdsJEwh5}{|+x-nl{l9JLyAYpBfvV_exW>3?TrrNqWl;OhB=v zUK<+b@vv6ms*jtEde>!bjgJT!MP%8|{s2qs7-v&X9$J?Tyh~T|k=g@Kt^sn|{7LoJ z)=TZt>l&ml*{`%r^HZe?CG`aQxF(r_5e=^^_J!QbjkEMm-%guR*us!V@IM=lNzZrz z>9l7D8ElR)_q3fxJ&$xDbvXD|7oiXwgQjR?oPyNzie*bYj>k&lGP9*Cr z_;VQbVK1v>F|qM$8Eb}^GrK_sp{nN(tA^(?-~=352PD;)NzpvsG<$)$9^u(eDr@Jd zrkQ+Av_#056Q?Iex8r$LV5a@iim_EEz^(3Ll#uo4XfL)Ih;REQ3c4U1267=ZpW5_v z=@o6OKEbw6zIIYUV6ZM{&{XXJG~;?Ny21HopXxL^gD!bw1{Jkw4jbh{=p<_>q(m*) z&E5G42=3YjotjLlo`MKr!!vI?+sLCw{w+SP7IA59gUNB_ejDwL7LObP%%)NC>{{io zeg8!ik9`IAlblN1A4a=?lTQiN(Yo;R}Nr*JW#qA7- zQ@pcg!fTC|09(Nit_h=57{dMUYoU?wdd*pGhPBhJ3iN?HHGTwJsu6qt*Yw21$W}2~ zZ#sBNOGWV9FWjNLxZTcvgBX%AaXS};1tFFSF@1|hp!xO&XW8bgz%ryc}t!U@hxiAi47lL+5vK-^^)I*!!ja0cO z7;xDDFsMj(PM(!9&A^J<7&A03vgbGdz2Y4+?$9fs*F*)Zb#nVTuxy02H!229TS zsdX1a-e?)POhn@M@ z|9w9VjH{Rf{!emEn`6}L# zT&}F~l$gteUnX4$O=4$n#F@=zz2#i4l&iI7drCZmSm%tE`I-|-@UR8o+1M}S$Xxsj zXVT1-D7R2aW(ai5fXyZlm(wpI_}C=cxS%ysdmYDv>Jd!6WAvSWB=#bebe7ykIOw0Mf2%{qBSVcA%ZX5ubnT5D6T;dMQ7_6`$=Ny&Zk?mfSQf&7%2tb^}q&7F_ zSa|=R;b%@$IR1FfVY!6U-K&YZd~$D&V0*+CIvkgs=>s_4f%JezjKEk};?r(E^j?5^ zAw(E>M^bNH+6=f0Z?rI}?tRH1KCr&Se0VDQo&|c5G&@tF> zDC&W*$%Kz`rZeecjtf}@9zv0d&NuImM*q{GFA;~>Df0d=tg%8L_rcNXl_c{~TNWg4HRXZknUcs!v z$k>2754VCHS^14ffhIp@5QfajP04J_`WS(%Wr+|Y;BzRoZd>}CQ^^CI<%ycsI^Q_8 zBO`67Tz8#nyU=<=?O9{(iez`b8VA(QIllyllba3Q5ISEZet^V9r*1u$42kRkyoo@mjB>JRET4-Ye&2r(b z^^NX$nI<|-HV>U}KX8OaDG_>rD!$tUh6tfXAx5vpi3u3f#==|-!sg%zvNj>XetYBe zfVe~?J5BYX$4!M$*g4XbgtfGMu0nT`GBZ`aL!Lv+a?(LaT*2~#MB--@J>Ci4 zqxj~s^9JLs;cLt5bPeLh-bYQhrv#ZBY9s@6%ElIR@&WJ&nqkH7fs!Q)abmwG0kPzm~Ie^ z9=9?2t?wNu{MI4iFYMp}lBy;pOnFbKEq||s?i4&8B@A~`{sQb!UND7szbr`90Y%Fs zHR%e-Y!l=3u>;wJ=Hxc##Q5U;P3aN&z_9QD@GSJ!vD!?$Ky&X>akf6t=8=BBA{VUto1~L+9#&+#kYCNhgHkz zX}|~2I=jck+)#)0>Qc1Sk|H7@tnfHu5u2B*>)Zcm(cXLq4oRBDwaa<6eb_9b4LYw8 zPj@YIG7G2l{6WBh$G82c2!QG}=(sP_KcEN+{Jf~}kbBl%ShL@D)x}aAxXyt(?Qj4) zlx9w4(xHf8u)U=PToCmZpTOVCR6u_H6eU27(xQ%sr;d20Co0<(cxvzN)RNrjcYD z6O+S(CjPV_?&Tn2h3C?}`Q3Z>afZPS>ZnHzLnyp%B|?S*!Gf+BiTI^p%j{qW zjGhby{7biqrsnTovfGTnLXYD2T8@vcMqSEH^&11CwQizV|THwM* zLUF31KI}fvGH*G@VE3t7m&dgG!goLGm5RsOH&Sc{v^wRMXXkr|l}ZjL+z-ElHGlPS+Z zw?ze6CNsOyk5Dm4nnUq;n!<4z>|$*N(5ef*9cSv`HRnyuKLb)(rgs;7*i|^@T*%DF zGxHNXXKFjFtMLQeaQck^asP{>AyzaE`uJUC%1X&IXHEnZJ;87PQ)n*9QdU9kA!pch z!_S0in4mm@@l@N=)V9D|+gJdsPb62zfF_@}3ePBb2mt_uKg26pE8LcP!O=nk;hMJ= zO_91@*#H-B9zxTlKAp=Btia6`m)-U!;@hhOy?hFN=ATHv{(aF7=r=t6F|6nhi=NOBGF^5pc1gHfN=5qB<;XJ;fLuF+<>i2*fg{F zC?ZRJ{rjh|D7Vs!$DVAozDeUPl=?$tqZ+Oug-bVOWqqEI;u)p1L)cL!9~Bn&(;+UF z7e_a_5`u>m`2NZ_I;?+UA;`)IYxnSek2AmlUkE@JK=11D#43o=vw+F zqXVZ?q%UxKiKwelT0P5qy>Yx%MvYBJF-Whma=XIUYR&3_`DK3tG*#EmoO#emG6@=~ zgf*idfKE5ZJmob_-o}}ejRXCDD&?zy&kbZ69w!TPR<(xb;n}2j3SP!AYQ4sgLK)?W zbh}OxOsASMUJv;ER^|IPGx`(Xc7+Dm@i3{JN?KQrkJiU7>eS^i5lY3Evg7{>i34+k5OE#fAfYNb zGsWu20!?gx`j{bPXu;MEzrR8rBJmGCRyrPlk3TnegJ>&U>7fp8BC;)_X8WmQAb97Y zT(ch%-WT~8K_1FG^V4F5DMXYl`N0H`GG-8-RK7hN4(jN)6LGUximEnG9+WmmR=qjM zy|2D{(L&5l7i897HV>V!`?+s8;*IodW)w_s!*(1gDcHd|dnoYe)hhrwof70GP*}=Q zO6NlIRd-ZCNpTV8>c4PMS6S?`AKv{d!`?@^%3X>bCT*>0ue}O2&Pj!Rd)6==ADa}& z<2C3nQM8$}Bh#wHM5CjqC7jq?8+<**+(2wGnhb_>cEJL|@O9*<-WEMBg|-D9p^rby z>ooHxQ#NX#vHas8f(67X$;hCfbWecGcJC^CORZ-uUjeU{5V8CsumVGDnJe7rXiO}i zK)2amEBR{-`BSg`okm)byHlray!T{7tVSF2ToVI4d!h2v+hSx?51F@c-44^zRhMhJp-H*5<}kJZ@T~Ye z-BDPZT|qX+odM&letaN(VuW}aV&XEdxR8sr$*Z_N3|-~!;K^8yWiG{$mYvoM@nmw< zhhLp`Hn8rrMNVr&62U?$^E*D|&&yk9!E>aDM{IzEROx$FbFSj!=u$6b8N#@+NZSqF zBWJOp7~deBl8>26KR6G2>Z8PSl?<0*r0y&_x7^yS?ud><=n9tJ}Su21UNU2xclEK5(h1b%z)af5w+_(B@jA~ks zbqvkSA?vo@TOQn4uvqS4mt=K+AR>_)Ju;?omw^KkTl=^gbUtbxOV%bmW71cw5a-8Q z<(8FvWd&`^6=KBtig~=+9eKo9@beSwN291Q~>_)&O+ z?w9!)F~Vb=^m~Gb8Wmp^hiSo8smJ+XZb2T}QXPTZXqhA+%PTi(=(^lq}MMQ8;I5tm<1bdZLFt<<|3=_0#k!qi`H4;qpaE5qYXBGqs-6vsYmsWouDm8!Q3?B zx|kjSGrIz;AZ1^^?gf~1wyt+S5tO$`yqE@A`SX<;4BhVd)>F$LXArGhu5&0HbveoX z???B&-MitY;`3f4^)W+3Dmd#1m^?bB1U$R9aZ<#5vss!JLARhY%Fg&wMj?~pe?r)* zF7Z-(F)1TGMYhlA4+Tbikp|Bc>7lDDpUyfx##=1iaZx6=LwP3?8O16)#J zmwKVX2vL?fL!zXz@z-jvBJ(Cwda?E>wH@o7tpIXIT9rOr5W+XQDCj>;Z@0n;BD}0@ zO&8-UE2uiYFAW;*e(K!R+5n8ld8@E6qYnsvaj042^>%98p~s%SzJQF|W3QKYhCb=$ z$6Sdd1T;{WR_15g@1dLI1KZS}X3MjFgLfB-A|NH^4<#uO>VgqXR%W1@kk>o`Z4A7x z(;Df%K>mG8-AZpzT>*r#?)^Q;8zkjtQ{FOKm#Jo3v}?yV%QRnPSl}y3?06T=lB^5FF3Xp#5*FEjboqpp3uWn zf*Hx0;(m+9FoTxhE7DT|WCV@|`Jb)U3ZG=qO_Liqspd!vo!xEIUU`QGA%i1x3_xtuvqyP z^tO@MJP>1DKmD_v2QjDag~LR9GBlNN7-cApGt(;)FNkXoqLQU6n{E)#9A5a5&G?en zW9@Ce+QuUy@$+=h*RIT@_w0~ePPy84nBSN$Bd1cL5pVWL;qCSwp_HMQds8_D7WNbqWjzCq| z?MYU!m2!~&V==46&t9%;! z7UufT#o~*J-EuV7ti{6Rjs57kpM!#Zc*L8x>6xS=_LCLZ?)+~)RmWbO8x7v7-AXz8 z?hK*hhpwaQlyr7R-GIG1GTJn-Y^Or(&oCI5y+*w)9%)IDNdV_X`^6{Bscy!W=+iPf zK_eTwseB%AgM`hiS3N68x}h2)#0UqLGfJ1oG3&KzsI{x_@P*7tYr-!_f>rQV)BUfZ zeKd^ixcGtcz~vk0-(#xxYf3QA8wPf71{{?FGr9W{q_lf3u8uVskN%y3W@Qvvz<)Uh zWQJ+Z2OUnGfg?%u3oFALDcAj zgp3GhXdr}bD?cF*O3rAO4}lD=S54SG)*?aueU6D)>4AV7UI7ZJ$52w-m!aU>>wEBA za9prtnmm;j`@fWXXHXNhU`^t3Kpz|}ifc_$>j?~S^^a2_Ern1@2uomEJ)qIpX!R?- zE&e$$Kaj$JD<_6Nm#B5#f-ybirB<9MBT}H3iLg&CPHlCzkrSj?pmVs@ImS>>d;<0n z@GiC|x0i%FPEQ}iHG>nwW8Na>ntYO%qS`3jjMqX;-rXhEg}k|;j3@nW4PL$gy4BiM zbYS94;JM(=aJf-X-f|s!Eu z9i_>?Y8>po6?HLin+3N1$=l9M^c~y}Dz&Y=x>;vjiH+GMir2+uLPbvmoj2wwiI9oL zIkz&ecp)6ew|Eke31o7tl+d%qg<=VVl9RR8fK_1*a-|UrWCDdR+W}e|>`Dlh543hY z02Hyy^ksA7M~c})@c_W;_H0`v)>ON5V2`&jU0I2-Y%ms-1_BWvGsY)!*Ii2mhRd&QeC-R5$L@qq*J~)y~G%-T>YYcSGJb zkh=L|V%;++X|?I#7?=Aam!zQ(N;16>-j`9)UEKMwVYk-088**H-y4$-@!7j!2rkLX zNlO|hG$WCP33&8ZtN3+zbUvK&m^O#Mk|N>?fDuwXo3TJPHt>n-i1W>4T21Kj^_yVE zTEZ%tJw8xX5CM2;vTbGm#yrkkg%(O{qDI~9R(wIImEmd;p4u~TmCdR$TqhS1I%DuF!gi9ym zz_~~`1aPYiw8@y5>8U9ztG0Spz*%Rh-r>e@lJQ#4tW;$VNKOKMGk8?$=xyXFrNA8? z8lh#HVQSzce;LpS|8YH(hWrshzfRJP!x|DXQjc_lYvc3aD}WG*n(GhdySWZqEN1+; z+Ey(dA778a^I$;@)$K5 zJRRixa+0}e$f)H|jk#-4DAKoe%Vc95$s$f;@i=lLAUuQZW;vjft4JNcAIU_6EN$%$?d%j$dfHoe^yzGCs$}dWNLBH!*)y1v zztO4@Jy|PV@DH7OKv`@W;qR5I(h)wlT8#6-bty+T#qIXAID%3CrN>M&LQ5rmlOA^M&7H3opS2jrD`Lu?4q|bjrGBF}6{2 z$baiGi12z0PPMt>e5bZ4X-W0el;IzLqfrDs@iM8_;Zwd&qGiUn&mj;X*}?x_B%6zG zo6TLLKUY4g*hynbKV26J_xCWItSn7Vby>ZW-=obKp=)ZUX`R{7NX^BRb*MGI#-ffy zGu~TOSF}6f#_M{BXM%~yJM$Ge_*{;5F}t-OW)|~qyb9{Fkbo5-DM!_rZ&Y9^Yp!}= z^d$RgR!f`LS=tQ<;nAB4vQslhshng-6iQYCiPkSDvI2+j&o*MeRagJ}B-8oFk#Yrp z;Blz-D$m#iBEca*-<`-n4;X&mGH=4x;J-LXG`C#joO|CMsHkJUKSdV!5~&jUDa!4r zM?oIyKi}9bZ~Hos5mx8KkHT;B#hM?C;c_;5rf6kP*VyLg^S2a#-hno5$a}$Rq(AW+ zQSy+xndTI%>e%_dbXUv+a&2E+cD@3!uwvg5Y&ydKn-5UCg> zpW=+qiUg{I%|+Xrw{TIzsAuQdMzYno-d_s%k@K$EfIj^6FwfwCG1g}OAj^bDy=CNH z)b{X^HO-%XP5zR#hKSRK1{lB=02|lGi<`RkaxbzUh1z^;(hBR+A>?W`9EZmh74w|# z)GFo*4|J;e$vw$~_1md0!onPmEnCyR-gpTs7ZHT(Mm^ zU0EN9-S|{jRd!y*EM|9^wsauqCtmP~~JO;SzZPNrm!lv==pjsru5;^}> zfjHfBd5z^z7K;K^GZg|^)hfzN4NZz#RQ$iIGQy<5UP26yhWs-uSeZF#eb$=qbidju zh2?iAl>gndgQ{>jgK>6ZC^kyu-absuv#%w6K7F{_^gF?Y$-CutC6pv*kMiV0>Kb=H z0R|H}#GF2;t6Mt({9$`DAb1{wXbXLsVl>mvoeto%gzHK}5s%CO)WOv-N#?dQewRe6 zc>#fZxBO|oo||_@{9oRPJ~sS8L|^yUpL@OU2cQ>k|C_w8m#QAW)Sic4f!Ce4x7x3x z-mg!Aw__r|dxMXA{}21GQx4GDH7M!9|GyB9?*0J`L^sinX%NA{?g_xa{-yB!Kf=*} z0t{U2JuHoX+qjzkUxtCErSrxzCPiBSxmy4jTs)Le)Vq9CReRKTY^7)lt5)Ncncx3X z^C%osiscVRk{4Xwcs5+5c%(Xt<#=-BuOW$}Pi2$*E@Yw62ZCR>`GC2dyMb5;MxKs_ zSh6i2=-*DVvsS8ZmtL%V*m{2WKjY{X1fQ*N>4MC@1i1Z>pA7~di5&bO4iuOW-)VGv z8*uI!W%I&P`NC^+b(n1I1|J}i_JY)X!Bu(!@9{;bJ_LNs>$R($@jmKxs@XpoI(S<3 zYTo$%yi~Qr2h=$?!5>e}>2^-LUDa&>-8u*1jkBiXdg@6!$9ja|v|geu`z;lPBe;M3 z40>!EWEv&lJRWeQikrGQON;c*Et{enS>jvQxEpc#fk#EjOG60QJ z{yVR}lBy4Xufo$iM(-bLeyyk1u0nDzUWidh+E`*CiB|O2uwcIqes#!e4obp1IY{0O zF$-DVv@Fs{Y{LffZzdEtupvQKno9#DzrN2Kg0=PwqT;-e=beD(dB(3gEGjPANt8>< zLcPE&^ivR^{#C?kqwj)bjh~`|NXCbU0w-_5kQw=2A7b+$ zGRqNkH~~EsGMs!8tHpT=IoLN1^f^uTlwU_ODazIQmh4v5o{e*Rc#rbc>$GWjp}G_~ z^rA&lznTu8!@&st!ArC_goNRQd-B ztE#dF_hu|u@#3DBN4$fVa;_$po1faWud$<6=1=dGS&J%V__>H-zsuc2Nd$KZ{^|Jx+VoJ)T=neSA^rm2;IEYUdrw)b`%d%9fx zSgn&Zoffu$7d&U=?%KMhWl)3UG;AHIDivM)(H}uh^OG(JnO+3uq()r?$|g|s#|SEB zmDFJALcm+$zp!UfB2_ik?~}y{CCWu}C(m9B&2u(gj?7zM{Ub9~S&iO!jqm53wXwCm z9W9<^0$i3TX0cCAngqr7u@+tVVZZgYLc;`Ey0Y?#@h-w}^50u6h=2X|VqaDK=@7m_ zPV&+fRT*|rugc%5Tj5sYI`X-cv-jZ9;EP?y@kC^Y-^IqqsVBfmFiVJ3yJN7{wL!3B z^I$$XEmgA^T}Efc`RkpGP{~LWMHJ_as|k%-)FMNDvUhaw(6I3wKfh`YfrgvMbcSD!2qNVjd zrP-tfEe`XuKm7!$A)D|!w$VSE$KQbtVyMb73^S;~!vJ(U2yNKnq@OTszpxar;D^nc z+t<$wt`+PMTlI0L3FA<qXa~5VsK96tQnmY~36_j7) z$(8QH6ALv=JsG5KF6ej zdsveBKg7m*8B_kUpf?ukBciYp?@<<%-EgO&qz9W*5h z9V8O_yW{&`a%@XOY*xd}ZE{Whcya?pq~W65-`qR2%M#7o7waeL=J!JGz?|(bn4H0~ zoFdQn6VLOT*XH2Y=I*lC9F()HvZcB1-`8fP^*PivR^uK2kfWZFm_G66^g&^SAuX`# zpIo)TVQ3_PQrQi36dW>}v@!;7kJudEO_gHNt4R%9d&}l_MQzWbZtu!EzwKqu&N`^v z^TuYIlk=JNDR;@7XsKnVR(6LL#bDB1e*W>&!YH4zvLW?$4DH)cK6F`@c!gzMAC{(W z%TEL^!S%oF1<7k?Y6KiEaCYoX~2-YNtAZf=NRt)nu>c1frKU+?8(7|^X-kv*x>dU z>ElOB&gV=`;@!^2kExOgmF&o%t`3}dol!D!Xyx=#)E4+9xAV&`8?*GrQx_-i_}}wy z3}xD*^=EFJy+0&byR?NAf5(g}FcwA|639c`$(IFAK)$ON)#U@z)ck`6$f<08NQV6u z-9ErhiTEyERevPeg3bU?dCZZ0=UnMb!rPog+8IM4G7SeXTcfZ9zgKK;iJpu9=|HEC zSyGjV{3+9qagDT)eNhUvDVK$)h+`85AB`Um9}%`x`meQ2BBhSo>*~Tu{$SFYggIz- zs3H0ld(fOCde6AllX12!^{g-NdQHjW{{2$tcEqTup$Ljw@v%da z&|T#(xQ)0ky%Qrxq$WO-V3s;eG5r;3fq7y~I2y)wm5}6-0|{zXDD#%2QIqO+jJmsV z^Cynr@}4tl#Z{P0R>22n`WcB$H8r)A_`Ib2+^6{kXMynsHad8J(Wm>zfPXjRB`0dY zlxq_HxMa*O(AS75J|v!Y&Wd;r-b{V*Ly=Bac(_76I}HB3f0H_%kb1nuzJfjszAMqB z8!hp<6BjOgx08A`NlWSGl0kdGobq9w;z8^e=U=xJh;d2vLTCZt5)=h}C9Xl+Vf1pc z2YSHAc#Xi4%69^;wZVvi}m9vFhbfz7JT28+%r|88>~hhbCQmF6vJf_g`kXL{&zeC znJz!5_plD7h_lX6h|RX_6nQFm31{>jm5^$@(=uV#L>o4UFCLI$oSn!COeUWe{_$Ga zghL6PVrYu}Yai;`;Z&0N55Xw?0JlM(a_rf1Yq+@U9wXjzpEOlJw-h)@1AheiFbs`S z$q?#MARx+6@y3T<+e!E-AC;7m?BAyHS9c7yp2%M)H?(o=+DLZIZ$#L!omy1=vwF$q zSHFE?vY^lPsUU84$qgM~2c^~t?C8qfGb+_tY)-@=yL}hZ?6e+RkyIpC5Xi%`9ElmP z@c$$-y0qc&90u9p!uNbtr z5FC#{u|9JBtOtW`TC`fmGh?CBO@ATy3F66)Sl=wXPG|5D6B2uVYXFW^&-|zs>19jr zoe9vvd1BcrG`dHaJYrzY`$1#Js>bJp-Pog>Zkn(2GcR3(^_p%H^kuK2aqu6#H^}>g z0_%$bW%7BZjl1W%?kC|6&j#<*X(vOkqZih;|L3LqKqp}5tL7AW(w~f z#lORu&!0KhE*3uZKUK#6%vAgTV!{8n%J{Fb;LS#{)PHs-87gJK!G3~4g5mu)O~TAz z>|)0LfAom%XQUgsMr|>|ay1zZ?%q8<3sAP?Ay38k{gbH1=*fsjs~R&pS}K95&DfX` z2N87c|9K5+20ep5YC*t<-rUUB)tFH;i}iX-V2fVn)8g!kQM>zn(N$~Z&id`9+=^XS z^Hw{N{Ozn?+tVZ;(E{Js+GCo>$@BTCgU!M1LB-px2%saQ)6Vv-1b61rp*noj;q7GE z9kjO`tHblhm1TJ6>HZg?ZR_$NjUU%n@nx#^wL|$jlb^Gu{ee?Pi$w2c$7`iKb56%8 za}D72qhrgjW~F!K{QB~#K6|@#VfOK(U6+64(zxRTUq0{PiTe-W1-47^L+yj5XXIIg z*T`q&^t-{v>34gYTwTBwewr{~L8g}v09ANjd;K<&8_w&A9Ug6Jm_P$z{;I;K>^6NggzwSM#E!_~f zm22&8nUvW~aO*hRkHP*Ncd9M(!1Qf$i!|`CJqBuPykGz(p6T_=&ssdZy{eDekDB*i z4;mSsE&T|~+F%(z^Rw{ssQqF`^RwRZLDo@pTm}aXqZCmZF#xU@D!%at-k94khC#19 zd4`1}TkYD()1GXD6}e~99xeLX$yZbUQzm(!P%3(w#npQ|-b!0R&%4Z0*z|*fn!%E_ zk6<@YpHj*7v;Ie=7w@9)s-O?Z#p3Ht>C@H1k9Vmd%BynUUrp~rcu8T@?w>?Lp|Z=c zQ`wxB*Vt7=xs3pM+pI8p_!1dpX#uonRotDses9#=f*+u9)Z;#eGY{Mry0hu;!@Brt zZi&qjr8NMBXz3^GuTp6aP7T>k+x}gHYE0yp`(O1cZfb@()uG=|gbAN2zyT+WRo* z{83Hsr<>GPeE#U-w@p8L{??JRt&R&i&we6;k)xvS89|GX*pM^Abj%rS&}vGhLLBpj^|sZ$+j z&=3ZY=#4syoy*aWq*3d zqK`&IpZ493JjUGfiRV=@J4$2xxisA7{X+%(w;zH0HBqKi=_;*2$y~D=HAfBmk;tNeEU!#~o%q z-73Zq%?zIsO=yB&j=xfl!_}$MI7ttve7kS@8Ri?{p-M{E>g+Fa#4UYdg-G$E6 zX4=cDyc3Nh&A!{HBLezFx~n4m!zhve*DX+m(;;WVFY9>J%{ThP#P`$N(FbMH#iZBi z@SsX}+7Eu;;-~bt{e6k@%jKJLcfQnUz*B}qdO5G>cAUBA`h7UQ{brE0$JVT$CjdLj zxC)P!=j*959|G7GZ5le7qt#|hJy2&Ugsne&FHUGDOx-~iWA zC_~}U>@C2NVc^C3vsPkNKqCKPLyhg zOvJM?V{-so{JC;>zvr{>MN5jmQC7zNhZ?`4>wziT4Y=6xRD=X#P|$I0Bc>>n`)Kbf z|8O=r73l(cpF3A0mStf=)AA_{A(Skq#EA?+#EE1>*zn5>@tfCHRgcMt;^ZBuoU>1( z(C4W1d#_5(`f9-aO{xq%8atj=p|j&JJK5&ZqmwVYt+ARN1k~kk}gV9lHtg4@RwyA5LVYI1-h zJZair0WwfU3N#;AEvHM%2Bowt6{rfa?Z=Itk3)_M)p+r<{LCOT&v#m0e@*_f$RCF% zJn0;ZC0I;N>YSX-l|DQ8`KBMVNo3YJIanR=sT^0woDgWm19vF}YL$xnRF0Fn_(uaQ8C5GaU`Gpum``3D^=NVx zYQlYW?zSGp$sw)K-Ku<9iqXV>(SdAlG*H4}KrpA6s#|%^J?FP%x;j z_(% zrPP6=bw)(5sSSGK-j7W6)18S&)9A>|I9!Bl^tohTc_ym#bh8(uG`%|L{&fFAvw%a0UidU=3rB$PYi-QbqEx&hbKD4Bi^ z6s6xjt+Iq*^C5utf|qQd0IqZXz(H02aGxXFQ@t&=Ff!&Z7<98HZ{wewCi0m@AqC7l zB>~kAW^s1R3 zQqT@V+3>i+;i0u|MmeBnVwS31=!nbBu@W$#6oP^>nf4j}j6g)FVIRBUWruC*(!qmM z7LcDMP)q8xTGsur73OtMvh>^$nbzv^j*pZTYoo&!N8t2giz!{i&>2ORQBP9pFo*m` z3x=tvs>9dNfl=Np&YZ2O*t?cRgSt9kpJXi(USLkUvtJUb>v{xx;)5HLS)LI7u)!>I zU`C61xsP0}6j$f322~4hEYsQ6_ET~8t<5N8rIsxfsSuvynuF-al|*epbl-TNV<;al1bKxur-O@gkil@<&xzxaAnHnu=;I`kqY>)`47mMqK*w3{^yac;T$u z6%2!eSj${}cBE(^*1i)ss&w86Q1at9zia7vK}#79S1vszgrUu4v|C;HvkAvk3bns5|OKgQJ+=U%qO43xC#JXk0F(yt=sYRMJqBzbD;+ zbIC?|6&2mSSKbv?Hs3!dT8$q+O|vnh9vfjt z{c3mMzol_G%VP2~S3170L3QwpwUVss^U1k@ght*lJ@pH1&coO&TOb<uBA(KAec{9scWcm>~{dlI2$T z)!_sibs|>3T&Fe;nwJn6J!Afv{op1xfpBQ21A)wcKP*(w9VdW)GNye*rc=DIgrvz6#yJ!3czn$%jft{KTVJ-w#r*v__yGRJJY79zq zt6!;ZZ{cYlcI2=Rt-R<~`fzCUph4IPC~!l-Lv0+D1zLbZJGMj7{wREijgDq%RY_)S zSoQdoc=?m?G<-eK2j=7G-XH&w@eXAET6xw`^m_~bccYQbVNFs&B4;%%cO^Tm-4z0m z3HiW4;Kv9biJ;xtrip;qP0&H9aNllp>5$0t3XNhd#(KoUIE)dUyKZC+F;7uL z0+e`vClNRoMQc>sdv`x~VdTQMn;RIEo4gwwBM^ONY31;|*+nmygnN-2N|~ClMmBJg z(S)5HhcusCt`Y(xM~WD()Dm=1Dz5p#AY$I*9(3F%12afzE79$|j}w%${)H}D0tj#} z5|T|V(P307(rbLI4s@iN!agDY8=F) zY}d}8O0hM->d2Q@b}y5x0hv(9_ZoLjkcbI;vKoRj8ZFM0_)Ry~sa=8~uv81`P3$E5 z^P|eECjmqa4G$tRV4!_q#MGluYeugZ`6_0a!QFXw9&v=eoxGywG<9T~Y5VP*Kq@Q8y=nkEPbm zikV~ee?Q`q;S$IfA%{KKB#V*L+x3&Uron1(Sf*%ZN$zyeI?Ub8$(0n&jNW8h{X*>t zt#oJ)L8_v4`IH%odA?2*V6M_PY(VKm&Zhz26Ht?^VYpJ+l&o@yLD~%Fk5+*|LY7dF zw6c8~Un*PEPv~FQgqNeBz4 zl`&M`)byGG82-4o(VotWd@BmqE|J!9Z5xSBT)pJ7`EvPe*7X~|bA{SAhovIExjG2m zQyuYPUV^eyuF*`?e9j!qTGRDj>4GsAdI65~XbX7G=P7(kIPA0_g@uU47;}L(2$yM9 zlv*RsW92C?r74KF=g=lo3wMLxXEQz;?*cIm7;(aP1{VPS&tMHvQoQW zBQwd6VI|b1*Q*j?+U4-$#`Nav2b-!Gf|&!$dPUr3r*q5t=fulT%^%cs@z~Y2NeNnk!BQ!-4#_-Qx zy36*DZhgN|4pM`P;g3IGPVSTfKyCrJzzdh=&?kmS9F?K=Xi@+0->Cv5_i&A61Yw<} z9pu#$$9h6+p#ezp#nY%Nzfi%wk_q_PN)9%Eoq>?)R%t$uh$Jd^1J#AUX^n2yUUfBE zOUoFVpNZbtvbk97gT>B=<+BntTGrH(8noBK!;NmjmF(weDaVD0ECZgz9wN4I%iwTU zNai5F+pGkmE+wzFF&*BCa-cOWnE8)_rJ$gJe|$ zXi=kdfbN~bJWw6oD8ex)$dE5cXU3hfvT@qV@;%Z%eYrlc75V+|FN$x!(Fs-z2$?{l zjo?E#s29oDJfr)E9i3xre#N2gzC8v3LZ+c&Pe9`Kchf4)h>fxny09ob8|>|wu72q_ki>o8WQhmQi*pjp$ESu8B$?bs8gHQw z-5~uos=XvMdiJ;JareWZBHo zb{bV}HdIZ@5#)4Uhquzu4M$jif4VO=jJ52ja)wu1^QQ4)-c>jjzE3oga=}otz38gg zU@PP2RcRU$hfrOQKwsK0K?v$)y}SHOI^S`EvO=8{_>^mL1o)aUd(xRMS;54_gFRB> zWg_Ivif!f_75y!$`u(0~nRjWTw6i=J$4Jh-Wgz28AuHueS^{1M`$y5}@wWCFIJ&d{ zxej@P%iPOn>TC5y@`SS2I3pe`w1@`uKX^eLF*>2yeMQIOfd?P)X3e1OB#bevFJ4=~ z&QE|!O+Td|91)c^h{ZKC{0Q>o=U{F{{#%Qi7`h)b2~^#zOHEc#jN#h2$A!|jH{(s% z*xi@RlKMILP^MQal_@lflQ9OD1;e6qo7sz76*E>{-S z>Gw6OalyltoTf76L3Ew5udlxoxA_fJ(LSd4Y;c6n`w#zp%V-TugXk>LMvvc5Aj?^} zmXC6h5j+Q#Z|57uuh5tT!85Mk5YYJ@zl=cN1OOpm`Ko@^ylSu8lyiSO*D4Td9$Xn* z{1^`LFc8{)NP|_rSKesatSVaPCJ9i2iqvHaP};kfeskFm9;wI%0}Uo8{f{?xD2*n* zcoI#_yG{-H&KkmpIa6F&{MC-EV&237p<{~%Q12#eP(K`!by~z|2!6#f?uA@|5`jER z9N%OjZkbNE2=WO8H|sg{51f!FUE3<&Zp84kA44TF0dZ(E;v;{adC&v3$7Ul%DI74K zP}yn3rl^&r7I%JctvTrm*%`nbQD{?gIP z`O8jU8xY#@(EH>=+|LS2^}xZBr@_Fl8>RPow-`}X)Te6hdc7_^+ZO=I`dw*DeqXLR zf4^JEIIoj&o$<7oLA>7;lzk1NZvnkl3VWbV{IU~YO!<7uX3t=niJMVKx#YUR-)jZz zMUSPiDLED5qsKx#I#`&3tmVyI%~Tl4{$lm?&kYJy_OE;>4jxOTGVLvlG|8@kGHW;1 zK@#xA$;$mRJ;TkF6}#?M3KOY6H+5;xbRn~`R-hJtzJo}Xv2-Q0_}ktHvCoVoblV9q zr=nQr8X@af5pL{R7+k4pCbzHDF7+rre)MJ3^o~p_$Sv69W6jVXeiDyxCMn(8p>8D4 zd=(E050xS0E3D^?PWG81! zq{Mq#_2obqK;E8gJ|vz;9F71L##Dixb={=^)p?RIR*EvVx+3irX7gnFJ@vBxsA(E>GPAkaOQTqWER+r&6p>o9wQ%M^y>p=z@8RoMgKW+* zm7uo^lONm==(#PX<><ka!i-vat$r3R8zQO% z-^50sXA{MxfHx5_OJ?cE*=B}IWu$Ocs$}|IN!aAj3W1n>IfBJVkt_Hr6~fgz_K2m1 zI9w((#t0@QVESz(VUp7gX=Y>=An4YU2&3Z2+hDF(UR)F_1reu9D^FH+i#8S)VB@`n zQRneh$T4;qq9vYT2n2N`b+_MjC@R@^yo;NV$2ruH$Xw$%wYtM?9rvj@L1h#6o=$tj z%hghAZy_{t)o~hrC7;JnQ;ucd&MMD!tp>KGG9cM$Q+3!Ke}JHY;qr1UnA>AgId;L` zuHeeqES!(ZecJVB9WwFwWA1>);p~Qv+P5ifwh#X96J-NGaoL#3@BS~UBX|h!^k+hB zMy4Bu54;lnY*;< zF?%vc%-MhED@&$6BXBpE`-(73rE+G>kJrd|@fy@ycZ=jogYB_(oUYkRCJ&sIDExuV z4D?L~iO71&CkW6hXd^4`?;33G^hV`4}g%7U)t>13bjG%?HNh1}wBV#}+l_)4Or2(Un+{lDDc` z{0VHkZcoRjiD!uYVc~@OGA*+wK(%?ogfrJ?0qM4d(e{a1pE1H&yISui*k0Kc+w_hN z{Q_mr4&BS1;*dIp@(e%yE8Bg-HbUeB^2{-ce|T)xl+Xt6gFxGUn(2YH`dX(fLZEDz zpoK%pN0de~dR^x?-|5@K0b49Mb6Hw%`OI{q@{DDCFweGFif6Gz!TBqlO>A@dP^Si< zr~HpD218@NoCR_i#SFRMV}=rHLhC{*;M#It*hm4INn9jbZheJw^-h~E`n-$w+$V5G zsnp)ybFs=MMXC+mXayAS{4+>lL6ix44hijb%wJTm^x`d#EtmacZ#GXXYw~Jxmams@ zOCT$Eh31Sn4~U2pwz;R}v~T#(Ic&IgJQ6a{P9*f)n8`cFUSd9GeenH8bWsR}RT7&nW2saES#C~V*Q7>nM)U&s30r$puL>~J;=djp+~tXF zK?C&3o)cTP<9Je0nbHAe_L1R0v_s8GX&aD90*y{*X1Jw%sfX`~IdRFe)dDB*fk=3$ z1jz&|w&G`Q4YPftGXX7k#(MK?tQ7H^2;@4ke2N#;WPB1sw2H)9mpP)*h}HJQJ>_rh zC{;3jy9|aW^O#WpnY{9_jlqLkwmAQku#5QKBrI$sPxCDPO%ojOU(z-$>C})1TTDi) zz7?bG%oBSF)oKS&ZHA_R_QF4OTZJl+3Srg5<3VaRb&azdOu_R%>b2d}l)Jv{%&Eo- zL^YcFA#obQ)w+iVExr2X*a+`tmw4vSm8E=Y6cla~v(G_dN8)4$l~tP3cuA-Ui8RyS zv~UG7Wx0Jn$l*qiCFTi>0eFg@SWkEl{gkPNUL?4@2F6K2kj?L6mtu_atJSYuYR)S%vN-UaTTmO|Ec}kZqS$H^P zXIFj3JqWM#B;fa<6Wbg<&|(;dE^4ErVrFUxdJ#=hOLRE|1XtOpv9br_3XDHkUvJw9 z|Fz=W=DYvmHvQ<{bEPR|>`l}#d8YbWTR75PLOm_m_~m|=2Prpiyx-(~Gtd<|h6^DJ z5sm{nHan`2x7#}}gNG5dW5Sxq3fNykYRhqiF*XT+j)Ej#A2B6)1utfsEWE+JaTPc# zn}6n22F}Axf0%=TPaaCV0$Wsw5UIKrEys{E)cyGHTFteuIkUKcb9bw1{G? zc^zN_KcUB3-Mi{A`Ni+v^v*`ctHG76e7f>+`}`-1+pZP#()?l`av=G^>PVALCm_F7 z)}g8+2>3Kvs`IP}HZ#43^XdavF`jGB>)iWH*58kiAB&GN=N96Jb_s-0*iiE0uJA}* z3=ZFnrPG$Gz<^MTzF(nQC-d8s$ai%?$zLni|2JZxV>SyyqFOydX6{DmX>kCCG4R{! z96K+#lXULg^=@c=&Y0uKsFLS+950SecFnP$dbrC26$q8dwLGd?{O_8uF5`?z%|O_s zl?rm=8kyH{?~5bf(67(t!NZVP3!`v74ijmC?nSmoux%2c?`v)IUy};J8V1Dmc;|i4 z0fwM9q?Pkp5EgoJF^h{zs9`J^4$btQX}Uc2nN}-GjVC!D9>3Y5!z$Yl>=&!`Ep z{+Tt8DXigQtKNJDURmM>$9?rynO%m66pozvbO@-iAEtPoSX(#x(;P0qb5NTXD|^RM zu!aBAKLrDA?#{=RE9O*i=eo&AEY<_%vx4PU;21S<(|k^8Zc}0WXGpMqy{&`H*0Z>y zLkRHOkWqZn45u-HgU~6qqQUiGz#$cR{Go9R2uN;NOH>1W*Whh>)5{;6GS6Tg1HeZ$9X%aWKmXSg2T6ty}|E%A?dac%YBW`cqq1aD84CyUZ- z8I63ryiGOJ29K7nG0In$b%WrZ}|BRdWx6@tI!1= zklNm5&zpRHUS1Deub;aw(+VYfeF%wZFz$HYk7R2G0&VYMRMJ;3O zQn$9g)3Q@f>7wk@8ylpx&xjQAR-oU}#lpR9S+RGl&K=&yR1r~pVo?0Hs{#|PJk0xbHj^NVKO=u{U~nsp3N@%R{474 zk1eZH#d}UPd>xg1sV*MwcS7LMZ1Bg;AhOd|#Om;pV`}@|l1GI2u$p^#!V52Dn8O#U z&)&Zy>GcG3+K*T-0g_H~%^x(6x(Z!t%!2NGl+3d=GArw83HZv;8tBFw+$8Qd%KS;+ zi|Du*Kcs$}(tMOG$Y@DBF^`QIlt18gm=Poqub4^4(rg-!Mxb7P16aQ@mOki0kQuvC zj4&BQymtQ97+1yEWPJ@*l^M4U^HAzj;AUtJZ@a}A9e|IRv;(2I>3y>V=aOjD8k?HV z96VjKlWQ|oZ`H`(!{Qvgz&k%4_vUO)<;@%K&(?!>_xG)a6rF;)+W7WLy7( zYoYv!hy)K2Xwq+1QT7j~N0!jhmKBvPui&nhF!QYKzo7*xe(a+}r;E8M%Ipf8}qJ;PspFR8SWx7%|z8v3qGI8XT_ z(xIGEM0Vq@hdjSs`W&a=qWIEg42@3_2_6KwA$37h$imG*8oqY*lVil1iccj3l(A?U zVa7vn;}Xga;*GHg+t$8Ik64{>fP(~D5!oQjjWGcnp`>!I^V%j_nOwHz(#WrD#AM_^b} zdd1OdCDK(%Tr9oCo;lnL7oS=$JQ#&7tcD!`IT+gyL)Fo%7!4S*1=g=w@pWs70;i`g z4%8(F^cs7`)-{6Ee#|&k$Sd{_aj};`N^3QMdX{Q5v#vYc!XG&tl%(vfwe=cb?b2oc z{gf<6D^A=D=3~Gqdeav5q4ej8rRdOrWYTislVDsuXCl*hq>rp5Ip!!kN&t{ePtW!+Js! z#wW2UHxy4RPbeX;75krZ2HXwPel3N7#@5snbN-X|Pi^iBx;Kxa%i))7SAmVF4(%B# z*HmwnGl@ffwV$Eps><;v_rPVj5YAGxE0p!RD*`@UkT131D=2MNLQOfth@8C>XeHl^=iJrtuJ9+Tn@OZZnO0EOYoAJ+U zu3Jl0J|*HB&!#?$=QyGaOx4PvNtLY}MyMFm044V5dfl9ksJEFqh;|~{$n+O}q{=HY zfYwCnEi_?Zr$sgdvmbB!@U?pcKsweMHE6*9x^g&zCc@78GKK~B6B1)B%OEO7}#L~{h!+>V`IcZT80E&_P z?CtO6@=I!Up4n8#-1@O{cTV`r)swzKlu^f`3|x|4WjG>GAz+n(drAX{60B9P!4ugp z%kt{sQ`j{r?ULY3nGmNRU0M}cBV&7e)yeC&>Bgr_81^I$vj>NyU(@>etCSt1HgP&M zAwH1)*53%NS}u#+{v)46jj*-6hY=Tt?kjKmn8{U+VBic7wr$c3O1vM|6?B-`S~PaN z*QserFiK+f6gi1Jn90~2jkt{ZU)lE=c(8k@uk8W@>Y#9#91j(t6Q$EJ`E}D9PR+pN|cc@~5ZrU@Iwd1Kf{vDzU zGN)-eMJi%%|8u_nJDq+?p;~k`X$ULx8PQVqc}zm}i33<$cKc9703ve+Wy(r+ObDn( zkI0RQus{@k;;RLJ^t}xmC7-KJYc@`3nyXvV!)zXAWc8jsSIH^0vG9Szv9wUJXZ$}8 zP@p|7ll)Z0`I9eYFool%9C%6#;8Fo@ z?9H93^tIcW_CcMU3(HUpInI+Phcuw}wF_IOLkgxn-;nbhB-tkh-CsXMpZ4oo0S4_v z=k4`yRU#BMuWtnQ|HDGx8g#0`Z!Nbqq{`gUB}pCuC;4=aA{m}j?wFCrdr3KzESVny zyqsK6I={@xx(d*#sX)a?8~Gq;kzR(dK1Q50Mt1^5*Qe1c&5uIuzd2M>{SJT zWrEB)>C&e&MO`;!{3igFb z)F^>aj0sAI0xCq@#6x(Ei^{@)me z)t`8bx=%uyF5RKcC{}xH)@LO3+c7*G*RiZL@>TU+?k~>P)SQo^XFA*9*k}x9#fC3HLjL;U` z!&ZR@J7qm(lHoL6J(Q~Brm1#9hOIHK103&obSQr+SvtYqAu=9KfZ6RIi^Z|~6+QXl z;Q~?@Y^Ld#J?)_f%5!#Qwy~VnocC{c7Kh_nx@b*C3=M6mEu%)d@Ry8O0bd6$cC?b0g)5B*W&?@pOGzOyV<%}lvkZ)4NB5Jkgg1# zotcX;yE@*>_xo=If0h6f4>8O~P9unFjsY^nUFrswM48k9+lt}*Xw^6A3 z31e<})MK}nUt{dTn3cN2E*!dahF*r^RItnN-DETUvX3DUWGl<0{ACSHQXq~1hptX_ zm$L*7BHMA@5e2X8zf2Y&^r0ns?()=SQ!2p`tUJ+f^>HqmvQablYuvKWv4X1~w^E`q zGds5?W-vPp3d%SP_@@(ihMtg=X(UxACH!l*-Ex4mO=V_yvsB7*w_N>7kE|^?-XmdMiU}hq5M;SV;;* zHoK?mR$(pNA#+h0Yic=(vM`#}$@)1JL4{EaY=ZFBfUen&pg>_=?jrz!LX%@8=X?ye zCJI5#_ybjERis5I^ZT6XV@Hx@rI%CYs34qcF03(FofuSIqCXi7qNm-se zES`O+>QVylOa^l^CiK3Nkbvr^QT$iz^Yg%0vF_w5&vj3Fq z#`tUO-{)wnJIj~xZt1H#U(bwc`X{DxK?L;{4Dz4hboZi@2dZ=g+`7)r7s~ux zA{!o6fShpc*Y%*il7BY=@6KLSXZ1s_5Y;KjVL(j=q4+U*1CdZ}vHGvj7^<>Lpf249 z;Nq&?=aQ1msJLLmaQ8olUfZQ?MM2vE?N(P|X7@dq#TZVX?sQ*hBJ|2~_r@`>%%}r3 zJ=^;c{U;TM8olg23ZVx(K8`t%;(?|6~>m z)Cm8i-Vgik2au)m_>VnUNyBJTr2k(ilMTlSn!vjrJ-JZz3Fy@{s=Ae8!9`PYdf|KE z|A%q}CPV`ai%|kU9n$k_al^5)reaCt#HUIHt-rj_=!eS?y^TI~M;l{$Uk}}^OAWf{ zEqhrgjmZ(xc#9gN(j77*+CzEaZ>I<8w-A{A!T~2hFbFmj`ff+x77BD<+L3Xmmb*9m z+^~NG4vSAg?tdgr5~6Ne@{>=2k*iDT@jcV~aHYH!+7DBZUXN~{PaO)CMQ_Z@u;dTP z8K#tMEe%uUU{7T_iD|V8z6!Ken`C+gnc^n)~HM+T4gffoI_G1khRQv+g*L@ zt(R&4b=OX28+I)3*vzsH$C4wl3hvJKl{M{lsT{54nsJg-N1F|JbRu36kd=DhMCj_X&avR z+Fz)zXMTI*nJuZvnCo~^4&~u*F^=3DcAqe`LafL6&?2N<~&lXl4vr(qQ=g`O-6!tHQ@vE)&N&;OU)N znjic?-_kUR%T6?EhV1E7-?S#o)dx20aQoPE>N(qVt0E0lTS!NRAuum`={t9{$s{Kp zPMKKi+++#UJLmUQg$6LgDG5T?^7IjA*W|#|q?+QN76H>H#AA*R@cbCRhNmE4FjEr` zui5g%>uL9&c~lLp6iY5U&akls4Gl&sfAU zrpw->s5;!j$cH5#?tSBExL0HL>m}E}FHm6Cb-FNCpJaYF#cEi2cD4iiKBfndyG2Sj zSTT|^X;jE*T?u}mB@=aA4A*_l3T~1#fDaNxaaYRIvQHxyeiR8sC2{7G?>KCUV z6YTT@UlJVfS~~$R3IR@)bE)XKoRf;2o%*%#z&${E?EZ=>N$~Xz>XEMDdT-)WM0#`b z%3zPPS^vay$0Hl$CDO}+Y(}WSpUr^1Bsj^8MwvXa+2^PoiK`L*AxE?dr$rZ^J(!ch z^93yknu8-+0VI}wa<^$*qLvhHVSqwepK`(}iWkXQ$Je!hT8nawgL%;s;_z;WAE_^q z<5UM1zq{8;E~UqBNyg+|v3&K9I0EjTd$L|sheay@04v-HeMUrRx=7H8jeC|=`5^g$ z;p5r_^&}LDflirA5@x;C)|t;odi^F*;P-xb%f?~9@1~$*|8jJe zs>Ac^I$FzkXQyO$K0)Efv^s0`TF5 zY!5=f013P8QE$&pyoc@4Xbk_xUb(Ot=q1N)L_8fQ}Fu+M$fnWBCLH*r!h-d&uk?n1O}NOv{WTAV+P@pB&@O zr3toG&A7dzBZto6V8JV9^k|1QbJ|@J z4!J|;sk?;bKOM9M)iP6wa&%5Ax|t2{Uz$tG#+~pB@L2`^z`7wR_4e(xz%RL|4rE)1 zhj%2=k>o)Fe6ZL~$ppM~qbvyPC&Ydg7E9`Q5{`$OU(NvTwP9JW13!7#@c%tM#NHpa z&%qx^)GYF&4QlASIizl$2Xf<}X?Og&SubAx@-mzyBQ|<{q==DIwzHFB-K*hFUK(M` zjb_u`1#~}Uo`uaQpFp&-&V*7_NMzMom!^Bn7HLAt-)JlebH%1~X-v zd#cL3XJ5EI9$hJp#nz}4$V-cqt8A8Papl;Q`6eHt6hKhs;E^uT@0aW3hHtyRW{83S-Wmwn-)dVSXhX_q$rpraOC!SZdYNz zke;}qSJOz8^4$vvsbpT|o({rPmz_tMfykZefQXnBSAMxf+EYa>bB+)D7|-|RbQ?~$ zxVcRc(_rQooz_$_dRcb_Q@PF@_#cI(tD*a(FrU_VkGR`xGMDDG697=<{W z&9s9RqDM~F$UST3O9a0)btHPP!y7MQ*zd~oEq6JS(|Rnoa`QS&7coFIb@w?(9gqQ? zhaBZQmg(}Hlt>cNmI1CE0jpvEwz%ap1Z=rt6C|E$!hI_P7}x-4QI0q--t&m-fD&f6 zz*fq;hg=lp-G+N=mK6Xg4r%?gcdB5-Px=xIT90@XSTZRM*|n*aKO4Z=Deju zYVV!$v!u5a>kWsZR2G-FF4Jde|4ptxZpSjCjsH)05R%flE_4*IL?Q@nk=p)KC!z13sQ#L$Wh&8Ehotz{$ z7s|a#6_*25*}QBvf}NrB#v@Ctw0lKITRzR>GjzS#g`_|*qS^kHt9Uf^Wmw*=0U~DX zWbGO z6Sv``KmVE@|3;A;NzQcpC(;HaSbOV!my-F_gXFKsih4)JbN+(;9?svVJ6EV@aGajK zR_W0pyKT_5O0r+-Kf3{UCOJ8}5`@T6Y)K!Xnx0i$$2~p2w&xcCr<)7FaF|1G($u9} zUb^jlxc%Mx14>!KJ3yltY$5Mi41}&ha%__MFv!le>un`j-4)k)2yp(9!n4Q1!*MGdH| z3&!hqQis3Uwb#a?oJ@Psw(8A;dqUW)G)J&Z{v?NYyr6**jK)=f3bbYf8f|s}1W}P( z5_03MI!B?5$<;a z7Y(DtyD)EVmhTb;vUVk@Z}!4=u}#(uOt}w;2RP?`x~qLePPf}Oqpn15xHD--8@l5? z7}nNtGtsM6-fP@a30vVg(B6`%&r8-a_K={UQ8r4;3n>O#kQ;(6xd?#CXdCJWk{xXP zK@Z0%+|`qSh!1~_dI8|8z(kY8sZ?JESGldEKtoyZWGO0jAzRmj>HkZSSiAU5U=XqW zDP=>XePLPJ)(RVu{4h zuD=nt4$ zx)<>Ajzyx=LH}Iv2l4G8Q|-Ht>xssMxD5@G6yt-4a2#%t<2huUj#0Bm{uXa9a=FXj zaRj1@(Xm}r%Qs#JY+~4zo-e-i*nHC=+yw^?wWlorKstViN`E$q3h@=^Uw8$1gsU>_ z2_VpXBkJ2czU*HMm7;2v*rQj3_@THzKjJu(<3-7%k&4@|?(${*`eGG=hjDlwmpTBhB z_J>qdd-O#s2@%?!=~n>ZU56^urw3jX(Ly9-WhzD0s^mQ0QfJ|pwx|)dEHQCDwjY7L z1o-RF01C;v+~KPFyA^?6cNjXZf5 zzv1Y*J#r1~A|%^+*&qLZ&0@b#HL}SivSd(z0JGe<%jZdv>5 zEmYp77Esd`u}8-*x7hXxTql`o2au^M|Ivh3otlbAFILk{Q38*ozW{vrZ213p^e&3+ z9-m>aDIA#a*`fymq0zTEe%^W*b0N9Oi~j(1s$)*$8A zIlu|leo?zYIgFPPi!*bpT7d&z?(mX)vqef5_52e4|0!Zh7@kriRX6MXlNOlDgf-XM z*BO|M#3FXuX1jl{ZEq2$r(v4zl9& zrbQT=VQfE&%)3^kMZz!T^AlYEe)>TLb;n$=PfO_-02)YA9C9>+46XBtN>>a~P-=4EHwmJ&s zUd=T9WWlJFKJTq4qC4D_%^Dny%5zUtDA?Gs8KEgQjM8r(+f6G}bUb|u!pTP>*ID6E zcuO9!k7oTiDF3-T1&VJB^KKe-@!+8(ENaORy|^*0voLzg22}v?sq-INT`g~kTEGbN z@xT6f+M#boiVih09T}Pp>_0M~6vdJ%hj#NPO`n|h0V;x0^mkZ-$c!*)_2eyqfBf<1 zAAdYaW6CYCsFc_9`}F+Z@z}y?KmQtTAMNGMzM8rCMLi>PJ|$V;7LP#wIp=vH{8#X2 zM47vo1R^bQ%uk%y$gkY7qBBxig80cCFTFT1NuJ@OtpPt~z_ z#q$?;)P&+0svU-M2FTI#++|z}8Hv}XpFle+T4r`i;Zi#EXMod76`Z!@*%r@5c0bB8 zsiK#4HCz5gZCnp?VencLbN&@SQBj=INmojnt~7{QK~kmKGi&Hm5r{@AI;f;%9O?ur zB~NXIQUgsYLg&{ZwSe3#C`%lk4!KkXfFf?qG+!i9b^WOcg8RP?1j^8yjOm09V`*}^ zPZ5SaQ$<$a0M=%~#w@+HXz<{LC|S!PE8$^TybCoDVo@rN+Ir>d%} zNblD>dz`n^+xh%*y1%b)zatA8FCX2O{09jCEp3Gq@OkhmwtwR=MxnFe;zf}9%{86> ze9ApF+5B>W?wP34x<|)$fr18dP%>{EPy9I z$hZIZ|JIUIVBYwQ(=4qXPig&Dkn(0d(UT@q-P~E5x7%`&v|8ki^YvwWyf2quK4lM! z8LGf>MgP*CbDc*6QAbJdtJx8|qL+KkxpBC`|1)8si}~%V@C5f$DBasRckp)2r)@=Qa}x^TFjnFMR{B-}A7g{adx5V3kFVgBAmWIcP87-{7pO z7oTHUxoDuzrbAjX*&WpZKq!fjWA2H<**%Mk1r~e^CzegfKAr!2ci2+{ED%@TJ1&#Z zm9}b?m}8mOaHiVsDJ#Q+8K6ZBLy$oWt-Px`jOr&6Z7y4^rtZ3%^HP7C4$gwTENUE4 z_(5d_;+);4 z{5>z8BXe2QCZFdroK>xd8;n$cz5gvNOHN)?Op!Fy%liz6-^39xE}^>Y@CC(oyVayFCRIQzZQm}^r9`(!M4?_o&^e73eg zqM!>ME{ovJdGE|)kz}h6DIWEi{3kb;5tp&PxudzhDb_K!)PUpQyHC{v1YIwD6>o2ft1GNAsYAypOPJxm@NyR8S$Yhj5@ z|7oXi-N+sWp{(z2GO4^64x{$6gs90lG$Qw@>n zkb1?>iwEsL=Bp%q;&ZjrtD0Z;$Pj*;r1Yk4_4QrtU`tZS@14s9FJrklJ!QOdBVRsW zFmgEsIRBgi+n2RDIMSHtk%o3yB!*I17(KY6r^1Mpe08^G;Kj)l^6XE>76yvE-3JyG4c_ZHEY$R4D>Jpec zQd(~wi}R~E+?=xb>eKj5Px7j`D(eMCBQ+G$jBb6t80UA_`-Jn?j!5$VX??T8gAA2| z7r_c2fm?=y$wOXUHZgbNeUceE2$okmEWSkVVQ=B1!u-4yjwPpF15t2(8c%x_AgG}c zsum@)lArZOMcFlqbZu1BB9$$-JDD!>YB8%gBR}V}D&aIlZ?PD&8j-{7Z_q0gp z5vzaE=gOO+Gp_>eR;QfQL?hV3Q)AdweD>}3wm$xjL}EHj?1$=sP1sK!)E>U71|g4K))x*_&*^5JRtUtDH!K8@u84@Su05Oe$lSJc(iU zi=5J{?U^_57{+^Pij^#=J@pJI86IS0gCrsKW@k0Nt0EQB6=pSm+ek6SlkXnD1WS1` zxd_64f-3IOD{YHsKE0>k^E{U_e=Ugl$ysnq*HR>gRnz{Hp>(CBrLAc{kk`%5QwnUp zzc=@)oczl#y<7kA!*S<5vs^fV765dToUAH{RZcJ#?0>!fUN6#T4y#^Hi3QEVD1N%h zBCV}O>TO{a|3r*9-+l@hk&@fTc>X=y{_U^7L_vY;c>YkPq`>E0Z|v!dY#|w9dRJeC za5HB9e`t0%DE@gY3gpT*>$19?w!UvfQ^v+s3#2Ibm%;#Tl%@>C;r(cbb!C>{oy}8? zMymuO#Ovs{+p20v_8%$G6p7INV={wLf4(3Kd?BlMjdo9qvK&31*H(RPO24})i(T5% zQNke$7n+k?(OK-2Dxmh_>~2OC@Mct5HqaU^;83jf0Ug^Tv(S_DS0%c|YvWK%gv?zK;Qq3D{?;yM^q)|lf7u7hgf3J_<3ISU2 z{FcQFBoJp@oIXQ~a!nKZGaGAdVIi8EQRn*CieZhM&fA&l7sUPgAy@Sst+L|xf65}4 z!J;@OE+Wj6(T#>p>Ztv5VhNz78}`hKE(w4bhmq`P$YC@n5O)IB4)3^rxzi!S`9n{I zuXxBEvMsPDVcK<^w?%vRsAI~9S0iaVb{v7lN5FyLgIp+QA~GT;nIWBjVRj{8=rP;e zK`ai58rCd~Q}U)j^XUn@7sC$Pq!3q3kPE_ziy3hv!~V-oXoTFQCeAtX`6zpT%?eKv zYEEZj^>T?8M)phPzCDy1JpU8*Z~U^f&E8uSZm`P9!9lzF_yDKI=(R+ZU) z#MR7>XX6g6`{}|$TM$}7&>mQLs`~G-Aa!pFyO`0}9X%__PdXC^1s3eu$F3p(fKrO2 zXKIr-58gz8mt4#Qw^=#lE%KjV@lawJpK(F(^V*C>%!+VtwG&cnAsgFs;guB?8i1W9 zhjz23`!=azL%mW0)J4>eu5o82rIA`A8=aoDTrv}jBfti5pgHy92rHy#36kK(9T66| z)8rEGxj)pXdqXp&nG-MF8*ojEL}icO4^V3YacKwCPgPDFh?VMjw=k!$6Re96pyObG zk#-5i2xTu_``x!Uh1k{%x%Li7e-z}Bn7@-KT8aucF03@)F^-yICi%&ZaM@TvINkvV z*(9H339$2E;L=y=|+z|IV3wQFy`CN%_q8u{^Jo$0bC2}jE$5>i#b?sHhVi%Qs3 zc5idcZ8SELXna??_W71l)awfg+!KR{S(2wK*?4Q!tS;OAUL0`#;O-!O=02C#u@#7{ z`65nJuzNoUu)KQr|CeTdZ8->HVw2nFHx9c?-KJ1;tM9S+STsmoS4!|xfV`>z@%-oO z-#P-f{}2Lr=`{Xb%E@8c`Om9VXUD96v!@_2y}O6L<2`?{M8ikmV>FvoJkm(I!~ooS zxKjPa?ea*O-m~;`sKqF;s_||z5I-aHrji)uQ#^5p6&pi6048jQB`<#I9uZg zd@cs`{H{EzdHRH{jqzhz6Lr~AH2If%R=&snk3SFp^@rL|IRD-L58t$2k4-9+9t*v# zp{J99K5f!RW@`&O8ixiMvM$lzIc;igtD;|DT|7!R(gy)pUg^CGmW!flW|dC+8><;4 z0N9|9u_cqr$4xG1HhToeZVoD4V5ObzWoP3ind}Zzu`;@|W zof*ys#(|!mQ!U5R_np-?Qao*9k-8FzKCiq4Iyfm`5m_5>AX09y{nP(DWTdXUH-P{3 z66TzW+Ls~Po=NhHouBbVx{O_>{k3&jQ-1?xPQe=2l7_vwFY|Wx zxu$!YO-cJ<(KfuQLuEVir$eDM7om)U3uk6>EB9*%>*;u@@lC?4yOfRP`~qHqy3n#Q zVD9a@J#@YiRHQ>mbk#1<4jDGq8Zb-kmBqDESY*7t|L< zR%PeMCgtEdtCI40snLwfWv9NdQ&N)R=waA2e#3VaOViv63?H)H{*es0j(`&E8A`zN z<@wn&+jy30NafpC@_f&6r|uaa$5e-h7v8x$9EIxXL-1GfnjXg1v}asfQ6`1**2;?W z^M6D}QkIUsy1Q>O59LVCSl*5N$n3XAB>BI?+v`vW_IzH=qMVnjQu@p9sN%)>F|F4l z%pcqibBCVW)IT|!Xng^E1Dc@w*;x7m7=fv}U13!*w4Iw2_DPX0dGgfZ{J%D{RE73w zYjoP*NuJ1OCpVCiI6+#oXwS{@PIbx}q51ri4xJG7>1;{-lZ!bfW6#v4BSHZ4U3+|2~Xvpn%y_ELV#!0&zbpnyP2Vn z7c5~Yy_FmlWDN?UQiU!)c`ut&rq_J+oW#H3taPre6YJmw`v@J34x*GNA1fyGk6v8M zeWdN{{J-Oja0C=|#EtyDUVkq)UFxuZ5uUxPv}L7W8ZRAkbx4vU=jH3wB za9`E%@)#`iC#5TDO}@q5?}wT6#$Go+?|A=bdi=XS{u%GTxjyB#dPZZuI@SMBhGRS- zD%{I+*uQX|I1W+6O3yr^=X~{!-Jec!G}h$Kqn444*nC7N?;xfQZBf7g=<|5;;0=}b z$(aQ`rMzl&IOfu*gbF$J-lL6DpX}La05`}dVq!YpV${}FYE#)h{ZjTTJNQoMu}CIe zu}pQ@>U~Uh9d}X)81ganrSrW6(vqiO;iVoJP#RO#q zCk82EH(kM2R)di|HR5kAw9hU5zuN?Z+hGGzescbzI}SOIoGW#PHTi+136hieI_W9M z@GvjMO?fIQtHqN4Wa{W~cx8G=6QzEDQKSUQK1-6Pz+yqhf@&J9bSlFp?O}epwG?%_ zggw!+*rzfaHqo*)07p8r|y@y}n%6T)nk zn-ZZ*WJIa$kE*k2gqwBqZq~lr_EvZ)%vE7A0UcL3n^{Fe=BX%bt1)4PN#L)>*GD%f zW%{lt+^P@Kd58czEVTc&Z2ij(5jq0qsgL} zeJUq6tar?D>0_7bE9vdUO3J-p;3qqv(ISB3O=_}R-$&&t0y6~z)+q!;Q#JK}x^XR@ z|B7OR{q~(90!)1}&50(X`DQ3!vsW~+#K9wh%2(N$QuwHyPfEMbWqTgVBgr!{=$K^P zKAXHnsS=-Gb^8(xxgFoZ6asSmI)!-@IQ^IVUms)P=j3G>FH9f!xC!c^PIN#0j?eRO3dENRrEa9%#M*;;Z+=QfgIi21o z2UbVm_lfOm=(jUN_C#`3inkAtrS@5l&SotlmDJbBpXhf;KrYJNIl ze#=wue5M_eoKUkX#}PAX+p*9-mCz37td5uLVym(?KC_-3Lrs1mc|=f&lI-5H1uJTL!`&2mw$Z({yn=ij!&^g6f=6D?yyMR z?|GfuGax*2Lr|C799jJmX6!9t0b=8o<=s;enLjX0U3PW=1lbyMPpIlOgo)y=^%l&x z#CHw|d))6S>FXZzL_D))z1?hH*?Cm4qh+iS#a3gp-cbDPB?Ygr?lmU@jRdBRQ-UwG zu0qTfq*I)stQ`=qV?kSDl`Vr01<#bv_x9M*EZ+GcBHV@p!T!_#i>9uLOAQ)pNr&{x zJfWi_*1BOW4)*C8mrfM3u!DL)z(*ZQvr81k$$X&y>tP&r=I(n~RtlUleAJ}|9kUX3 zZbZVdBQ@hseKJ*FpheW9Z8iLr!q)^Bs+5yY`_TtuM)Z z(xa^2lov;sTxAiu{<;(omgK7;SBk_Hh}*i|RL`y#-|ldCw~u*wAp~?~t)%jwuzzJf zBEp5)v$QTOoD*@n$0>+d@bBIxSTDJHwRa0O^LbF>I+Y=hEFCjLpev(!gyTceeCF$q zr=s~O^~l8=VPK}U>AtqRKIRrz@*%y!Rmf5%ImU>T-aD;&LX;!L+mjlKv$97@``78d zXhYu|wXk~D7{db@PZC0-xX%gBm)2n_GZe)+N3p){zNJ7N^xZPp(&eZ%_75sZ9mJBR zua6(`jaDaW2nE1ho}MteB;A@4dx6;5q<#?PgP%Zr*ped?e0vx4SD|gnbov; zHG0@7X7x8yX=|Q&lkABDNuVER#+3dkDq8sS%kxr3>cEsJ89L}y67s#w=a=*2=jHiV zc<`XOdVL|=iLbTstN1I--XY-Q9GTDkAGn|p7+k;TEI{nRdB&gg&RV$|Rh{iB zYFIf3d3$vKaxhABDCLSlojsb~^TdWh=Mt4AIwSNSP{chnVSCebQiZOl9Zn!p;F%BZB2hlNr3}eRTHIq|7S$=SNwtr)Xj1LXP^X}t3iZ*x zEZlKoL;n<%iJA9r97U_Z6_rBoB{}88s~fWe0#9RrzT&La2d76RLzIU1?C-Zrm%hb> ztJ6EIzr2!6Ue7sj#Dn7>iOP0*3;PdyJ}IAhTg~Kz>H|=$6Bqf<`PX{?Cysz1(EIOr zI9d8zbWm^}_kZ*r*?fpyenO~Y~T@U~z3ZF3!Y zgxzCX*K$O4caD3#c%|2}-YjOm72(P$LPLLgrgT!rgas({4hsKAc32iYxO~333V5SW z?G^ymcxR@}W$b-Sw(12z67{g^zKrNfyq7`%#Dj#*M_>UjYI1DKs1!^L@mNx>YTVe} z@SN#7Ei>og@mfEAr0+$Wr2)`}M&&^;vY=@d1-dJPEoCU+PQ4(cYkRhk&JDq?&Q%5= zWOjmbc=pCfQS~*NQTn{*$!D-D1UVn-wJXyB6^bj>*Pi0UoqXlV9_=A}Q_=FK&|j+? z7IRnufb%j&wZbgt3yrX*gb5|Xc3;-TwStNd3vmIel3dW3Lqnr0*31hNhFNxkHrcD$(DN_V{G^sR5WhtlE?ep|8_=3CkZR^gtef?IY_j zAjFQ$I$haHOmoK(b}KQ|t2Rp^uMZ^%v}6Tk?xQapV8mOB^Y81_Y|lNv6n$C08x_Zo zG5M9XVV7sHmsl2JDbFsk-#|H%m^!7lyo~LbqbQa0jeX*tePODIBS{<9iG_o1>wEII z@I^<}3oT5}@u3Yq@mbcQAaru#YT*JA>c-n%xjRs@GpqAtoG>2}em}M>c?-Tx9E#Zf(^GC6JXpR}+takk_a(_Bk!CoL^(VS!F({hN zhl|jkUUYb-f^eWw2{0;CdQrlEmH)rK{IlNwyFdMp7V@SSdS+BmS+NRgrTRAhw13sV z&;L0;{#)U|V7Lp1eK#djW(uI*dSI_!G?&Pbi`#!m{MK%vX1Shq`|I!Ep+u(@>#>#! z_19LNP?7z_71;pC!fVx9#;OTc9Wl#5)t0?dl{6QzeHx&J3(*fbW&%#Gw3%ad%3x{^ ziRZx)lXT9eNZl8~#;R*9nTt9cWZEBvyvjTX*>an`^`u@<0t`hCcPxlyPjZ-KxiVv} zO0)G;f@c9(mS?~R!-fu;>RYgboY%!abA*4@s`|zYP=q$LCWM2xhyAdUKz%ps`x%a? zOM~xlOd0Awjrk`Xi^UddsTW+!~%+ePm=@^Ja|eY~1Lo{fGE{@_vW%j<8u^ncC|rT5e6 z(_f!KgAoeoicG8c{{sINDFpRgNrZm;XuJs_*{n9OK*N5qSc><0c*iBR4>>%St24Q1 zWa(;`w1mn_8DKbw>oxe*^Uh6n#ip&K_7ePx`w zGlp+8m{;#iNND!GQK$o1!dC^+=>u4}v|YZ6*4Bzrf?KUzZJji>G3KHogSWY{g$KED zyCXm9d6{)@-_hXH7wFkAKO9JP!F2sKe?~yG+5~PO_cxm7ri+6*4->oleXy8F{&8vPg@|;*oj_otf;O;O#AdP2&?pmz-%17r*ZeHqrnxocKysKe`E+ptJ+D(4NP?W^R1i z_&=>Iq;H~h@-DNpdpbE+8x@vRLp^Mm@IFY+SXjrbjOCPp^O8Qxwo#m@8vW)+o zt1%WnK$j!B7xI6FsxJ2@;+$)XR%M-dBwMJU$8${Z=TsbyGV1mUvcUiQY5NIT3>i6- zsx1oDg__c`g~zk-C{8mhqw#qqA&d967#(%N%N&h|>(8d3h*Mf}lCtpEgDuLe#vCKv z(JC3|v1J?yWjvQWrjGdP;VPM~8ol3#Fh|!IG~kavp2D7+($eL#RF0Sji4aOD-7#fQ z_dJE;it3~DVUqlk=f7YW*w2w9e>!pA$xgu>sJV`jW$om*?V%YKTSCcl-TjQSaC#|J z5EH2E^yrcc@F_j(liEj_5FGy88Kheqq0s*s!iM`kh0c)@?zAYLu2KvS- z&d~pi=2;YLL4B8`TARpJG-Y2{4KJs`DwI~_6r?ZBNF5|| z+-xfA7BSU2H9w`Kw{ubcN>4uS{ky^WhCT?CRASbc{2!Ms$_Bk7;JC}7#C=boqs}=d z4^GlhR&jmYVd~xsgRI?z)CR&D1DXjX|B1VhPC#n>-p_(^qj%amvzj$Mw`7 z-I;BQGFA3ulQx+Gu;G`6VHveQ*YVE#(`R`L{vr$|MuFv9ujqxS1*08!I7z>>!IKbE!&B zyII^qBuECxOjIT?&3!b@qgJPqO_41i)%HwGG+F&?V75iZq)(8%`?k%E3nHqXgk)Pl zGmWyE5jt8NW(p4pGA8Qm!*Urf3Fef^rlz3f9V>m^p=Qbq$2hvr*m*NDbOm1-kFBA^ z<)K2di#El{PkH>&F)m>)y|GuZ=tJpBo_bd6y2YbKwBoqVsp?WHy$~i4r8z*JM z%lby-TF;+MTSEpGUgS9rz&CR>F{(41qNt#Cz(o{%%XW5q$~_2#El;c$J8{@5xhvWJ z6Pr-o03O{uxK$Pi?P&ZDP5SHk;J&L-Nih1k^|;s*EG4 z#bB%;EFV5LR%bkCs)}Iyk0(j_#f!#O+T&*9q@5nhUL(`pOMI!%1vgMS!Sl28n<3ki z_(fHlP~ICEaD-hd#*=p`k478)K!f!#INYOOv8gp6o(v# zq*J3OslDte`&QM0xA(rkgj|rQ!bErbhoz7zXPzAKEfWYv&EmTL(VG_Dv!GBK`vN*f zuTr9V@*&z1&leHezq~+chT|cg)m{Yvqb0!N7or@)^$9+bMh#gLZ2xmx)EoBcq}@me zbUp;|xA5Y*vx3)Bo)XAMLED#iAz1|>e(Vzi3=(^m@ z;tbq0a#x65pIeF34bBNNLz9s6KZFfGh2dlWIs)SGAD=wK@|E^D|0hHe*JuGhRmpR9 zjV63)-fr6U7WVHMtFB8(Gn{~`=09_k8xdFTQ5vlc0OLR8C}k#N2QRE|Abt2Zge+Xj*$#L*6Gvs8vsMWCNp98oSEQYf?eL z#_=++TF9wywg{WtU=C1h*2;DNP|(;saQ*5zYmY^*-*muq1lZr5<~`L;Stp{;MKiny+sO%sS=V0O$eq;=sYn9`df)C4o%URdW0>NoEFbY+tp<4t?yBXnN61xBlOICdZ@-aSII{{UUSJv@!F7|*6k@8VJ$UMeM6{Q= zo_CvfSUERe>r}pZhT&Aa;u%QUVhbj~_=dL=5wgF-08~Eb$uo&L819;A!h!G( z`N)O1$Xxj~88~Hmacg38W8udxYuFo&63ZaG!&6GF3^t9W-xe=n?~St@^L)Be})?RB|v6Lz(T|j_B%GmnLUDt_W`?y?iVhwnoyz z0^J-OX^}XenG;m>l!{Klcn0Ob)d0RZNS$g6-+`9b>SB6F*BZ_d|IL=8C z7tNmKnCD1=G;xfWzbg7G3Qi2H4W1zaM|G3>N}|YvBwYS&)7C=Uf66t;6sdf}|Nr@v z+A>f&fgsHM+3lZogus$~G{-VekcIu1NpPJ|p@nLo1IAXk--0!Pf~wc!u5p`tKTR$= zy1xd++S}@D7EGHe&^o70nqP{6{lAO(3s!sl6u#Brzgl*6dGYa@rIk^ z%xqQBvODI|nOj&FNX6{_&cx=v>FRpT$A=jZ6Q8jB&axg90=;0F3mP~E+eO!RPV!WY z{|KMcPA@}$KO@R_#gFB-Qxu^YrcftNA`GLQ|0>0~pK(;DGL)gj(s%IqeN%SIdI%7s zb;~m+1R9x7m02{s;Kl@3nlI&}T>)KF$;yX_jR~0yWBg@xS}E#NMw^5XI=XWt#Ppc2!mV_kE*IYs0*ioM$eC0GdStsSfB&F%4u4CzE_afXgTYu(~y=Y(o~;B-19l znZ2ho43n0JhcvZnXL=AjXlhi*PL9S{%+jR(#s2da*rC-(wcE5@2T2J~7TYBgNf)7; zzm|8~HN|I%>|z09-`OCp4%pmkUXxjQg`uI&f`KFDidOm>eH_}-Y%-0_D|Og(CO&g# z64be%D__$kUB=3!E^~tRG|8(Xt~#3%he`FP_(l>LAd|?NHDj^=KPdz}6tLj#u>V|^ z?ZvE6Wtx4+5fqV`U$#W?@u7K?wII$gTa*l+5VNhmO(&Uv(G00EsIASiy3~Qp{$`(T zi?++aROedKMAtbr%`RWLLu9(?rg@hJZsip}Y_ZWUColMO+b#z@Tbg2h$+DW9@H(>9 z)ZwZ2lzJS5)*HH2yc+@Tx#PyTlV!DXuvAOX3bQ>yzpvhX#}Q7S)>vLlNR*}T#dFwP@^EnE zI=l*PP^P3x+^kd)^9;CU6Z67H#{Yx-7=^PWT7T__z4I$xD2*_tb&jSa(VIAwP2%;w zi=57>c@&P|i8awHcWR;O>6)!-^%S-z^@Ef40Y!ve%&w6*H-doT^DC=M9 zIH-f{fdb%G>R;mn+gFp+{l3;}KL%Th1l(u^^0L~=75CX^ZGI{hy3|KCDA&>a+PBpw z-A?2DsA>Zn&dgDA-6)@pW_(qnd;SBk-$2rHt{9G*azi7EiaQH4akvO?E`CO62vy-P zI5fc%BFIL;vZu|J3rUc%G;$3}Y(-=Iiv44>-p74MvI8+IV1d0qj%VvpI4m1y5EcN= zO*m^RTFPo=-kmHll>N%8wa(mN?K>N2hn?&jQ(<0Lc`GR>G%BAaqMyO#7X+MH^MTch`O@mXHQD;RDPTW0+q@1*i}NDa>Xc%tHn z2h2cH9ZDp%jml1T#d=`FqJ;&Vh&!?}Ov+|5yV06TXMXI?yfv2FAl`K%%Mx#VT0NVy zd2y#0mGs~+n8ut&!;d~1UGe_~6Hp~SCOL#)E&M7=q*MZVI()5F)pI)kmoIhmx-TtY zKgp&%Ckw;1#F3p*53s4W9Sk?0bc6pMoNR_<8yc>$x^;@%XR87}b~QdXzi2kGsYSh;+- z6Y(JD6amIVC0sOSra%{a7r7b|G&R>$?-#AQaG=PT8>5 zMGCAc+)La4+{4MV!eNUpK~Zi@46v+#PmED)lhr~`@6d+FGPyhz=ij85e2e{4bPH~M zs#NM4P+~g3(~;Q}XpQ3;BDh0VWCTpRBiVFJAGQo)%a?kT=2#)gRYg&w`0FOJzS@xB zC^p$z^)k(}(;TF|Dcwxl|G+WdQxw@xj-JW!@_&zo*uRs#W&dT^+-DihF;we8W^Q$% za>@P+pvq?_Y&kA>+CXjRZ+hptJO9ZFY~)}{z#h_-2v#h;LbkI2R@&y3{`$d!*KIE_gbRhaXXZgM%=T=tz6P#OIuYt@xurqb<_ zqmlMv0OxFicQjtF$(2pkD8Xd`bs^qmpwYO;%Q!uQ(<-}LF0e9u7zexM^#5)>9O!d- zn%;UfMW)-77$qbS=`C!i*`*yfOO0r|rhzF5NbFhv3hLJjsgF>hXU_1Tg&ei4mL8Mr zUtYR1HKLGbe2?6@?lUv7>Ie0yTZ*IN#)Y;cx-ouTY3W6NlR41R%}sl=5OE^C~k7pnK!B`}p|w#wsK zdF!{`9ZeQ5Z(7lld~=HOF|1xqqS=rS3u!u$TN4F}gHZLCAC+f*jcn)9c4@4@id5a8 zQ`vbz7<-^5>uAY)9G#}x2r>S~`Wvl-d(PIGl%m{84DAP*KQyGydmrSt+f<9PoqJ%! zh^XUcs<=?>MDVIm+h|KVO9^Y*lrxXv+jC+bH5;x~ODdg4;|@9^RV}S9 z*0;rjR-Fj0VE|R%G-XY#?O!I{?dalQc5VTqpd$Dej&5rGzQgh3>y;+LWbrK1zo44VW(j@!_J~-Jy;`a znqNjrgRqd{hTo<%1BKwDIRiXrQLr}!OdHsRl=rk#6Q*utI3d)Gk~!gS4q9BggMQOP zF7iZwJ1YNiufz+mekt>J^+a0kz6LTl;^91brJDV}0)gkFRRYLaxtrYP=)tWlcyiCT z%kB&}h`rcML1te7gjV7S-M1kfy%tA+d`8BvZm-CJBAAWVN$67yO<~A$1Q~_9%#gv! z@dh;O6K3&c;qV%>^@vBC%d^U%7|DB!cTLu(wS_BpPssq(zT{kP;& zQ5Re_Eej&isV}xc{BsF;L0W|UlKQ{IrX|;*vWvkpxwp9Ky8E+){aJn0=6soQ`yRAk zx)bl?nsQZc9N%|z7d{@IKZ_2x&-#5ENau8@7c-}Ymt~BRoVGR{8h2s;FJr^;^5%QX zMC7ClgX9(+a$?grR<|3^)=r%00zYWe2(UFuX@YJ~SXUJIp+*>+f{$L85O2863fG#$ z6S9*xG90X>WkFy*(``n%X?OO9VFyY-;s`dD@4*92PN+`A?tMT2`>$BqZt`}P zu05LbYc@ODrH~?&ssU<=3p(t=&T~`b*T^V#EbHjuJHWR+MVF~q7011^$Gj+s)d2P7 zpV5=ltBKR&IB;D|d~0`Sk93`Ni^&t9yUa_fFebueoy9 zge&OcI*AEnCA&HN% zWhovdfM&J_$Ie5Y;6Hf`O99?N1XWl;BL2~2!!81!I>;#Ts=oN~bU3tXcy$YeSl<7* zc?o7A50h-uFE|$NZb^Rpiv4x(j=3jTq>L@!AvmR8zxXW$(aJ7ZWyWv8*gLDX!c5rh z-@KX&befFFrG%`ADUCYIHEbotn{S~RSEUaHc<%PPR=G1-Oly_BdT1nlF+ zDTCn63vTGYp?Bv~pd~ol>210F8t?zi&;PMj#xKU-yhPY{3cS?&{yG&4pY8hADnP$z zHhI1=Y)kh|XIVb;)yvUDo|m0_nODvBpVEl{<8_Y%k>`}ogFD1=v;AL=z-aY!*w6Lw z#S_*wX%g6JO>8*sjmx&IR8TlzhB~DhJI?{JLJPdHoxWs;YqxuRvZi5JXEnmEZdE_K z1@oX)O{v&;7U1crEH?@JKX{?J`l^f|kq=x5$1Ou}439X4BZ2IkR_&3Lb3yavuutBx ziKgnhPN}}HEtulL6Thdks$!u!!akqm#NF78G=4RGRek+8Rl-N}c|9M1j-w*LLz!6-l=K%9%3B!M*$JXjq1A z=8_Ou)G46rhm|%%4uj{QR%(D;hm)vcVK(8H8uiLAjrMun>A|%Haw%qP(fHhFC*;Se zS4N*WTr`dy*9^OjsdUl$Bis2C5ukr~5ZHG?9!90msT%LRTQ>_%hJaE~mrG=`IcF^H z3>;}pZ)8kk_7tSG7oH=Gj%%*7Z$Zm7be0n|I}t+M^??S>wY1&+p%%ublm+1`8@4b^ zUmEXxx}ARZluK7@UgCJ{jz%w)N7*AmJWyyJB+h{SlYQ+NPE~jyU9VJMD&gj?! zteuJFm_0$t-h9+az(BIz-5)OyDYccZgaknT~XlT?kp;>#QloE%3dk*HUv`ai`t*6@oHU6M z2T}n3dVBYNa1TdI1nCp|XYse1W$P>9vhA|}(n!5rRm`v^Tex3DVv(k8sqvCMO0Ga@Bykh#u52=OiQ)W5a`Cl?bjTaSp3zyAu_e3Aa@JsXZeLa@Q{$~b z!!E>!d9WlU2VRn4H2@jq=&l%s$TsesEY_F9%gtfK1S@Fj)$C_cH2Crr$itx z9|{2)9hF?n>HKm!-=(B#eRxD5$(N)6fBlVKtN1xm5;y~GafFqQ&SoZf-iKLT&_b?u zUvM^CAPfXgd^l9`k#WmH$j4i1L^DMw(S~!I)xn+Wm~1e44yd#lJuZ#Wl-Xq8w3h{= zh7mTYE&z@1(X}U#V?H6ksd2>!0n$yi=p4bj)=#}mg zDQLHs_6Dr7Lj+h27UU*uo7=88zE)-ONX>;53L9O(S~vv`tqy_{t)9io)6NcxdSM3v zy00;CD@Lw`QS3s1@iE~@=F#mCXy*S_jtd>3ejWP+_6s$=Dm?18%mw>?T?n%HYCOM} zKCqa(-|c_Th2Xw+UX=@VApr_<$SLV7)KKj=QPyLri)#q98%+2l=WzI0v$-^?s#e<5b+tn$l*8mMA z(&%QoMZ@U*!G&NNA`9fQScI^mqTbR;voi!0>1tJ6&<&`}j5Q}#_Wxi1^+Q$av90%J zWoqYsk=zW7p8(-G*Oi=`vxP39T_+4C4}1$TPfGp`f|=BT@fTH}YZASD&GQJm1V+Rl z{|W-F=OQP@vAq}(ca*b}Zmc(!eE?cd=BjcP=PhQm8s^pW=O#5H4@vDy8GN&stuEW! z*P$AE+^M#HLdx3~>5s&GHm2Bco|dw_K!?lZAzKwx*?FOw>~Xub0r;sLPxX`+50%ko ztu6liww?3ioPs?F3F0Ho?u z$%ImLFzHl!@AD%^zf;_g&Ahs9O_6VkdlYZm_~#WjJI$_BB<4Be|G(`2k0(9;JcMER zZJc&@M0QGDnQg?Kgefc~S4TlrYJj`HhIBUUALik1|55_k-ib$)0_fteJc!E7_{h>aBvq4wb-|qS(WMjvZ}`WNy}h2BW2^&~1@$Q-oKr@8X%t)3 z!tZL!@&S#J$&YKFQ!sY`6N+mx;ifd3>O@E`un4p|#5vxy zdQa;aijKdoA4Wly?XTLZDaH5*^y_w)hWt$e+GxV>3vK7CN&q^xkQVF)>8Gm-u2bMe zpQv{EMz1`3OcTl{%w^o#WO<#7*`M|?B^iI48#in=C(T?l_`t$MSG&Y|Gx_ZVeDoR* zEWi-fFZlWCHntwJ(3W$HfX!x|SvQF`P!4a#y*uXAvuBjr#oQ#d_Oef5=>V-GFZJ(V zf8`*6>6$4rgIY^K)}Q!Lgdex;-NQU(b(yQ-++s7KM1F)b(E$+U|CX z{gW!FAr)q0rc;e@E*h0X&NfoBV-+p^eK)Cn@N?-;{KUA;Ih{XB<6+od?r9BM2_?lx ztB1Y4xE|WIN+Fk}uBY9-=%z4(3=PJM7rjFC)dl`1>^o=}q-6a!ZT6!{@13QXa~qKu zO1a!tqr{Ylk(`SNR|A2Txr1b$L&P=ooo)JLD0NA*=hou^bgWD&YYR|TnbA=S&(^Ss z3eVm;*pt=ZE%lbdR%DXIQ(U(X!imsej-{n7JpC#U=>=F?7U`pu+twUao8c>jWn0Zm zwx=%@$BxDpB6xh{-n$MFfI?=rGuW#{#TNnO2m8;rm!y3w=Vy7F3Prvtt^#OPl+3v+ zvN`QO;pkb9Hn}d!qN!4i^*yV%u9+_j(yGt`ZeGG zU9bPdSCzo)$6$VfJ#8-CZobX6HRj(!LCH0XLrR)-W0~yB!OXAX1zN<${pn_R`U*Q4CW-dB z0388O)phv;9N& z^+dUC?~pThqFwdgCreCcg9&?Kj4Cj_o76!bWYnY+o+3om*-N|pw_cIp#?6{JMpMX3 z_N(btc3OMsN2s}m!bVrh)!u8zJaAcJKbV5ObSOjTP@c;Wimrs#*Z2R%m>pCXav7U6&%H{mwkID_{z}``^Dmr z|19_4qjMx}piY^xOU71HGQL|rUz?(xNE9FhwB$K-uMANh8S!=?>&AyI;mUwjUACvy zlQ&sx?`3%NIlC>4S9nZM!wXO>{K0j)&kUpG5`m1c@xQ|JKNQr|2a(@P9jZ)$_AXV~ zFlZ$0>Y<6RRjS<6EK;1GgU|md3S7UFuZU=v`l0Y}aQgzs__vuD~M=g#*-uFNZ` zV6uN{VTa|j6MXbSG!SO0r``UkYYL0Zn{+0Qz(bB&#{W$HD;qN`;7x@hWY$*9gOg_I zmD~aGLoI1U_IjjaY7a9uBNK}#uf9s;$JuggE_YpIVfgHPki5mi2A!ZX*~efrV2#priCC25`?o%tL(Er-&dOlmjuruOBezx8tC=H?|zV$ZAi9;Y`J1jt1U>4AHi z1q=vS`$akJ_z3$K_>(u{O!6syV@ZK9ero|u6ti8TK$3+#7M=Vwe%jL}NY|MSQU_hA z<+H;wW)!H+X;f>8*wjlUUMcHMQ#p*{PB|^|B^FfRwNoNLC`K9;mr;qwrBlO-v@zYR zE{-W)uaMynEu=DaRTzNEmR#8n&e&a5mO&`zEZFRn8?Vfk+##7i%n9QJ81=7{}~T{sUcL9p|*1oXR;M%7I$MeM>@O?Ih|IjSszL#Bzfh-1KGCA_Beck-r&I(65J#?Iq5-ZdY%8I%`F{WhbxwEe`cZ z*#C6>HKqLWTPcBWP%KEpYC2HbaQ(u#TpGq$w1OKdgqa{Tv{S=!2ZI-X%T8qZzvu-kIGWg*@x4fu0_tWj!*o^>ymlYFnsTtW_kb9QK@DBg zQw+{~F>mid9=Fsn@U8^S*G!26G_XyImK2tM@UkJ|es4jQ*}Kp5ajwtHMblfu$@{|M z86u&Iv{`GxecthbUrU;p$-P^vB&WhvRv1<5W;iV>6YAlCR8-|s9m)YyCm;aSK82@WsPj1f@$k0#paROEXkbg3qawle=QJ@0loAKVy6l>F$nrI6Ce6eNb+zBOz$-0L* zIX}51T|ykG7YhFGktd4n^rgt`A>Ae4f4Fd;mLjH<#@r8Xx#x$;Uy zT%rKUZ8M@RocfKOXjER~qLrQZ$@-|{bkD-shFeUsTDmZOZ?PcRpUUBX24jWVqDr_(c`NLuOTIh80~5Mo<^; z234#y3nCFSXo^1m9M7sx?NIhsXGZ7aaLC#A+=8J3YBizPiv3WUfr)+`I|wbXi5y#3 zBr>4II#+q8E?dmH(GgG{@-y;qG1Jb90)Uf)AEVQ9fs^MvEaJp!)c2ZROT~!5kaltv z>3s*Qyq^{vYjxV?8UIfcoVDrRD)R0Yz`MHupWqC=N1l7Mnz#vpUX{ZXib!hu24IBw%WcFcZvz==F0hBabK$9o&0Mt z^cJO!PV``5XWT3|*SN=XsT3H=OfgbJF{eY(xIi|lwD=Pyq9yH3CD-H(H(&GP)jp;K z=2K?0*{{@CrT`g#=QbV*oGtLE)@fbr3Wj4`q72{p@b;ygaWb5+ z{~jGku*p*3hHcXLlHXHbY|7!O)|>?VKwH453}idt7nKcWbtxv!8R5tR-5(n7ZxUpmX;bkHM8Qjz;4Fzi( zx;LjNkl1FS0@^vRfVwv9GJ9g>tARG|_FU(zmOQrI?3P@e)&bW#4_S+)NtB9SgMlV{ zRG=tsD6}iaPpudBuk0=y#qttgi;Q8ieKcR`_FTMeHe=>C;UxuU*sb|hq%^s%rA>V1 zN}2@Gt1V}_LiC2YKWhJO-j4wO|G+MZq!yszqtsEBkHFW?610ELP@6bpl1!K)iRU-c z>uoOz*3aW5Wnh!x=^+ajgSS41-L8p3#5(YY#B480jgtyknwP;hVz%(80sIghaRJEwwHnJ~J-dF#GcwPOw@?6{)bU0E(hK+LN& zrRt7Lb#Dy!IPed|=*noA9r(#0p2nR}SL;FQhV$M5VSMbVMsqSVgeEyWBFy(@sOlrT z_GCC+tG+I;k)lMR9*^_m=lcBLN??rJgePAve`|SVJRbj9A385n?nU+V;%Es?vwR&3 zBsk+W_epGNDrJ5O=eKAwj(hgH46~Ow!ypunvu_o z;3TR~9BMhqq3njBc=4$FjiT=xSWP#o+&I=BWC++Oeq~OZHDIkg+?8R*TAI=eezGkD zPP0M0>2=?m=|pI64Re*yzfBs3JOB`o>ntwR1?;+RGVO-~%5g^WD*?a)X%rt-k_Vlyo_U#pt_zp_e)+? zXBs5rATyc9yLs(X^NdOC_CLG1pU*bt2sX6IcuQqTsEbDkkj$1Q(OtAU&7k=rN+JR zMCvd)q<13Q`?SEU+VpHd$O(G=j#oqxQ(AaC)=TMh$_CFRr7WR4J}jfuIH6Q1e|ci@ zdAs~n((V>jnEm?t-`n%Q>QX)av%UR~Fzwqv9(8=<$m7tMC`9~9-G3L$UU~d$Tt5>4 zbn-9hdzDloh)Nx9qJ72$hdNMj^EyvA^x2O%<1uVAyZXu{J#Dts(s<*o6 z%pXca#KqBQKBwzJBSL1#XWI+BrNk8FoSiERYgNfJh@xXUZ^=D~p88p+np_|CPJu`fb-dd>ke16$DL=UP_x!? z+O5&GK*Znj$^FF zfAZwDlA8a@jWenlEdX9N;X3W-jDw#XEEYsRMNe*>4ZI(^aQl#g8$)EF1v<7{?md+$ zYPV}xYqA*#_0Z*NLgN~~o3(yp z4`3LE2OibW(jwqEAaMjH6nMPrdAXPup?;9tZEu*(&`5J>=R@v1-A5?53WP2We9_!8{^RaRZWr z8op{?v*6n`ohgw%p7W9_yEe0RKLTATA@To%n*y{jz^1w{z*FgmVZE1q`S{3wc{f$- z&QfW}l|R)#jE!R+c?z23%F2a`MdN)^Wruj5{3w*<-Kn%*hj|y?SK)boey3BN-!7{ufihTaC{gNxO>RbwAmcDsbMtk%; zbs4*8oM1pGmC2ny!(3^W)gx{CO~x-q=(GCf%sVftE>n>kSFgbOnmQO{?BgR>Z;#Jz z_WiVB+kszn93;~xm|JWjy|$x-f64l);s`{yODfp8BtlQ zCwTokp&^TMqgk3tPzI|9(DFjSt7|i(JQ>vHs*BQ0>5@H2kGLw^#0~|@2G*mWxTnx< zo742%j?tT*_O%g^!3q<`x&4}8zP|B+H8!g}9O|Qte`K9>>O{4!+Q@%Ye)ik`aLj^` za|J&ffY#%ni6Zh7)>&`BkdisKNqXanmV(tev6!No&6p@kHSDnu@DoS}AL|D3t+6p>)a`Gchq4D(Wbr^4=mpDtTUH54*&~k6sv@$;f%e#zv%e1GcbV_N& z|8%``2WpP<;$sqJ#Yg-}*tX@`ej4!qk6c7p>6Jk(O{p)J-{fGq6n;dyuylSSgVOK( z!v58#Tb>gJoJ1Q~Jt3vx$0)Ad8H6!Tkj=b81*1~UD59JZXs(;v_{;kVKTP?hD}i~JX`bCjZJ-k;T!qQdrRle zIA>Fq56U5z6(rh1qH}R&!fPlRP}G>PJG#VVythkI?OF;iDiN*lBqiQx832~T5Vj(8 zU7JC@Zyid^Fy&-ZLWKI%9Qe(>u$#z-Y&JX_OEE;541YQH=cdj1dLMxfUaRlR9Vfsk zNDMY-rHxwC`%Ye{K8|PJ8HD*5%g|Oor)p(eSnG9B9j|jnb)&71|JTs2nJsn~GFLMh zShjLUQQ2ZRxh!TFbMb-mE-N8}DoA_nmAch8_nyNDl0%oB_ook$J;Ky)e-D?xoeure zA@6zqG`;8NdX?v=k%5Dv#+kIu>R0xZ<19!zOk!5>LbWb%wUI{_v3U5=cyfF%F4qAv$rn8SycWu)h zM>F?4u?1e&=JOz-bE?b8SevU$eU>M)ea3CnhUKM<=ND!&uU_d@+A=Z6#=T(#_xS2u zbcOGiXo+DKmkIa&yNaOeO?+}3XZE6cNS0O3&Yzk5$`lBdxt#ch>|_#@&VtG@-Q`dB zcis}Hr$}en(4eMR4=k@!%#d21;>0j52-EC}Mijz@`{6oT>(n*Joqhv3$`^_ndp5QL ztxXx&q*I@{5Xq;73fo~3B(i#NLrQedo?6O;O=dh_IS7Dt_%UEK07goF={qg2MP}Ku z2I3pM5fH=e59iNBZ(jae4Kiu+d{FVJs&#fWpZ}h&|Kd7)rrr{)JAHtTF6*!5{L7-a zIvt*Al_uxJbfnB)$-f%J7{8~4{BT1`8UhMlM)f!DexEa#(xpE%ZHDzZ6_B{{g6=(v zSeI!aW?B#0sV#B%+vw+D4MZmBGg7~oB+3^g_E+;TEl)>hv+}#;(o>>^O zphA0IcJe>euZE2PtUml6dVJ{Yg!4e)pM(Cit|>hG$j=>vAX( zNo~;zBj+bUf~D-2-lt^;>lA_iP~_V3Q(ZaR)_sv#E18v)%pK_KqyPc7XMdbfl6qhM zU$AJ{AZBu!Poj{YSI&;o9K@+^7(ISki@H< zM+w~$`2TZRRR~zj$2gl+Uq&MXohh};`Navi1_D8L;_2~%ErJAdRRbWuSv+U zk@B!6Bjmz7mc=fej{v##Od$5L^4GIzto7CwtRJ_`V=4Y zx~r?HJ`Z+S%S6X4c=3dt72(9*Y^f^Epmui8+G6m4 zP^}H-!^f?jp4DufrL-KG&tO^FLF4D@ z4rqJJMc&@kMCxYigX;*$^24`NS(6_3W^_>Is|r{@C=#jtDG~>efzjZn^3RAk(mk8z z({gzc0rm2>onT6vOC#re-}|Q$-)_Rub?kLTg8Numw{TqK^UIwAIt~MVD)M4(sasEj z_KKUNwbp7&fr^^W^SsI6s?33`yim19?j|q0Q}oT-t2g0+6QFmGnDA1wL`f|e!wc50 zkp0tsVpN2U!)h(bMK??Y+baq{GgmNPVpgm4vhS*+rlzbuSbLnoKqSO*`^SAy$mA%> zC>^C!j$H8oHyhP|*Lc@*`Y1fWcN#G$#dU=vZO0d&TjKMU&bO{>UV3F|xfu=zZC+Y_+AEnf+PJu@1lnQ;xyS~nUi z=87n4n-Mg4j>aJHXi9B=efJdYD}n%o08h=lvKV@XWHoFSiPb{hen2H)Lewj+l2n^K z-OyU1$60r-1FKk%c+451AIA=H$;M*4rd0dFJd`=l z+Ar*eZ@+R!>avOvT43wdQ7*Iv_zY!KkmT8yg=r468TV<*qLVfmE$QbZ0a^!=WP^>F z%~zdE+pBzb?*LM3Z}JGL1We8^@eTMA2?-K~;^&{#&ZE1nD1S<8aR~5=923IhX}c*G zawU*8rZRl}rJPK6^4t_&N|TBNXAc>@-~f}UHRO3I8(}(jxEyy`-7Y0opa>pPd(+&c zk#WE44mvfSQKjJ(E=8k!EL*Ylg4KBFSQW7tCSvLQGd+axM5#O7ep#9P&CH_D2*KG9 zS#u2^@zIv=?zxvLl6&)@5Oxam#-zi5BE6Vbr)>X?4=Cv5oRR0-+C3?A`^lY>@tZ7^ zD^VmwKlfhb1mP-dfKHIxpeq1ha_Fubn%}eZZo~|itn7CyL z-ew_FHXXxma-~C2z~Q0*(NQu|;dxbO^^w>J*m>h2!#)}Lbf9mARYsyN)tz`Om%o?W zFP%_Npnw{+tI*WJ6e$K9dl;>5W(`q3qh>j#QVOgp(xhdt+Eyn&B2}uT*bmP<&tPG+ zu>aHfdAmHXt0u+d{55xj{XZutYCq}JcVZEtCgW(4Te{o`uu%fbXjCP=aR^{}ij)NY zvVMr>gBnPNJ)B|p3uKw!a;-~Zi8>v-;Q#7C!#W{pyFqwB8<`Joh~Brx1094#1L-K` zp4vIL5e=!@p$u8Pg43O`I90yMvOYP1DfB9>H+uJy!DL-FeOV|_vc4LfUJJk5-Zas3 zdij*#_Vs@O9JDW4Hi4BvQ9r^{~hej(erMwu*_&} zlc>*>S>bu+X0%-W*?1y}?B!_9TiQBboadsfcx=YP?(5l>RezsWLrvFYKU2h0$I?vE zN7#Hkx-HkAna}e%T>fTDOVqF;Ik=cz+~H!>OTxuEL1m3EtBWiJAS6?W?wzyWl*WqL z1yj5(dM_dauU7)4Q%X<41iz^`LRh6_uuo&e{WG-gb#F>7B70s?d_vMHZ3*l z5sJ}ec{0#_%$>g*uqVb}sWJ2ki`3(B6o6rD&8#TQq_oO z)AX)-JziYwzp|uYSaSV`@%aaesWy+xklO%NY9%$rz(~8imM*+zsSJyqJt6W68tm*E zvE1a?#~Yh2&l1N_CB-(PGYtGDC7!056iApV4YeDr`}Oe|mLEsJg2Sq?G>^F?8QnE7prR7ma3!YpxszLJ}RyirKVgCdzRKgzOQXQqR_etmsKIpk3G_Qrb%>*`z^DxbIBk;Vyi z`&NiOyq`EnN|wgcqDJstV=|9_*2nKnQ!^@lPgfZO8I&f)rZahOH*YF(C5W1PGimz! zrdax>%I@%wC#k0b3?iVBs!C!1E(GF-TwABjQ{hJ5U71=L>|5N=C7AUnKjt-agvcJ9 zUhjT2chsB{vnD*tqdd@ioF5hxlGk!xeKQ38;#Pu8$gDZlm9s}_R!4z^O@>@a&u~4Z zTxY5OqNtyIzozV$aoTf-G8)OxasX36tiO9*AMd9)1y?sXn8DmByPkPzQ_;fei=M09 zyGR~uSNCo+WqGZbvGG2Y0`qcQwzq&>gIYQFt){uAH) zXLhy(HUohHaFarpTpu54q&vLG$O|d0 zr3vrNZlER2kE(X^&&Cjq2ew|G-W6V=x~1+Q*JaUgt)8V8;EP=qo%%t~HHr+4HExttBA3pzd|8=@qk>mW+oKGFYeA^=fymu3g?rsM_ihC6QUxsw> zIY_aUBLKwOF+^Mtdkz;ZfVB3aC&Mri@*0hGQ1=8?J$hC2Ofd|I544F7)7i$2#P{#A=Igq%3Dh#90%b z!J&aQ&Ci*|F^<&iyVo_#uSA-`M)jaiL*f7~36+{o&Schb?;11+o8R7S_TH4C=}Qmb zL!~ocqVd`$A)jI4-gj(xb0qycrgZ#lEl{=|$oPLqI}gcr_3C7+n}AkhyreLw(fwKnKa$j0jq3?0?kv z;+Fr8>+IxbBg0Yt<697p#S=+Vk`F75REnKk)B-vzkyBmYhj@~^Sh!2%{5L(MwtfHG zO%~}axo!HuDS^`LX6!TaUP^!*(sZ}l1S)G^=jAe)zxz&Yny$qM=Cdhwk7dGlD573a zl+7=K&cws9yP;&W{jX54_DrnJDUWkfw)zx(bqL5Qr+q;iiXX=O-|YWCwTCV&|K&g1 z`KAd+j{|#FC0Dw<;SI!>kmiFPaiHR+Com}U(6pLFiL+?B z!Tkf@7A@gxg^<=$w(T^`CkOgBw!_3Vw^+&>6PHmtM2RtrbAE&N+!z+F%zi(>TVN5x zSVmUmrMp8}U+b?mv0yj;{UU?^(?vS4&b61kw#)y>OwKU>!5EK7f}^{#FHI;%fCq*R z9o^_e)($3>CA+w%DU6t;a{vgjLvg%-mmn!v!A+X-XzVTv^s;#l6-n#$kGTQh^x-1r{nA0+_W z%zxx^w}Y2QSLw{XAJEHja-mh@fYP75Ok_#UA?WB4F?pjLZIKS9t&jbq=ho!lSn930 zBMj{sR#jbx2`))Y-$kqjasWFvex zrTS1a-;SMk`s~65?bI(RUWX>XXVR7SctmA; zcWcJSL2W5*uV!;J{BQu4V{2r1%@u^Y7vTVf?yhxNOfMLJII$T-azN)#yE6HI7rzE5 z;>4vi>$#z)X&o4C0gDn~xxip_6_$&5>g>PI#8c3ozdR-oIlmU>=JL=#;mqvtLi25k z*7@_yAOL|?DNtXw^O(TXIN@{y*JO|R#mzz6zqf|%QMiIHgw7%Ss3KM%LYmDil~)l7H3TrO{nfzbg7QZUMO9Me5<- z_4R*j>QZtzzx{tMpa0*81@S%3Us8k~%R;?v1?cwtroNVOEsd6IDpT*1IXexR4p$fv zOpEu!U1TtUC#WX*pCMcJ;K@7*JqsLfZ?4g?YNO(=i_ju>5a^>f zM_N)p-qO=oGC>pj?2N^QeD=e~@Nas}F=;Ykxv@9iXdBv?Iv z+m5*#5v)wYhNlm9#Eh`ojBvUuWU`-M!oc#4RaWIJycYY6=YII(pv{78|!Zq;?JO@vs3;b~k^fxrNu=(xn{|)~i$oE;z<@RO!lpwv1))UB8O zpFfoXowOZhvs&h0)=+B!XBVLzJC6`Q*Y}RsM%o?zc4?G`fnQO5d;}Z_j;SR7$DdEy z?-|bDveJjbl*3mvlKZn5W@PxQ{nd1?Cod?eQJR_(W&y!2I9@yEUPb-9O$f*-(Ag!V zh9%9yy?1j-4w>`qFA~c3LIfRrizQkO)lH}k9?piGzU=@0alO5tocy4z%3!H6>KkZ4 zKQnlBH@#LOPI1fhRGT3SC;5p>&q!WaVO0yZ@YoQ9Tx{;-d_(%B;l&(i@`$o!AU?A- z9u1#%r3$b!$(^TpVE?lJGHqIWa1{usQtEE;OpCo^OLd_QG`?0vP-SP7FOHZ5NceKV=VPeS9b!KL| zqEVbxfauP9CIbxs`VhtYkOKH5u7wl<^TC-UHt#fE?2df?b}mHp5ng&BT1-8e5~7Qz z+&(sX_;MM~Lql0=o?#>w0XQ+kZ;;0e#^+^iqc?Mr5b?owtBjHdbq#0uO0O;QNhsUYW~w zcizdNm2)hobN(s0A*+u+`#yMo z1j%;voT<|W%j=a-1U=r9J~`vo`L=fM(f0)fstQY|OBzqk%v9budNJ;}$pF$b znD=6W7Gw$jsaRhaxv(x>;CB{=J?%A7TtL;o!askmQJZY%R5flt z1r)eTXrh$#nvB5k*|)mLtspnSNQ=mIrc^15wpJ~ifzBiikUCaaR*DN>Y+kNIsehIB zh^TL>RXnry+E9mja!@rXQblD6j^`r1f!g-pdECGhXgN1p1MpPguvH#`$@ic5($}DI zeiWi!Xu_E$+UNpSOAQ zN`mzb|6dgi2X}SRJ?M@_8OEi}OPh+Ls(q^NtK9H}>{C4UBY<`g+!CcUhxW_=yYkAK zVqi^xlh|%8j(x1U+$YO%I9eBamtTngOXJ=Y3k_r)3<&qk%i#Z=|9oi@`qr4M@Y8cB zuTK6S)F4Dmf6VKQBK_$l?O$Dz*HT$nw82Q!ZvU+XF(^nUpOnccN;~Eb^u}6JU2@lz zAv9wK^uCaI$tzkFs$YAr3Uc-4fk7IhZ$qjpKr1S{d))5i?h~wCcWl|Z9r@-|PQhB2 zomTPaauoW8=VvX2MiI{}Nqo_9P#5prNAKO0#lvHC=2R4+>>~T`w&VQj8TOA#HcrQDLJ)3B4rL0Pj(J{$!tuxq92{~=9S_}T>z30u*S+@J$U?O@K5Tx)Y^6}> zpr#YN^|Of9h&j8MRe!<$UkMB>EMyHj<%bA2d0XySR>fHmuVDU920xEKibN#OdHl9h z=~xKoby?}#6#b3Fl)PPn6AjXs!<9AUI?Z0e$1WW89!^Lz?yGZ@Bn(!ls9mHVSYs5H z;Nk1hLqop)?iBkhlP->)ByyYJVIl6H)AqF}Q{wz_%gn2!a^!9IUc42zl|Cl*wU`5D zoVHWWPZ5|JCeVxe97(Jd8xRG(yAP$i?`c+x2U9zjeJJMh;RmHtu@j& zo?`pX-YG*gYay@h+kDs)@tnzzs#Iz6urr8WiR%An0ZUxxI3t z_jOMD1B}|U>hyWv%90lv4R>GHmvB(WHff!qwxNkDe86 zz;#QxM=DMpo2jEcZL5XOlacltBhnfXHTjB2EsBT*b!7~3-G*FaD*K101io~7-uugd zHqK;{rL*TbJ3K{TMU*V5FV;`+6~-|}*8N#X9n#}lC!@EI)YUOvP(oGe@V<0qn)vuNvIHHJZc!3f zNE^D%!;enkOmt;IyI76E}OgaN-m%PXq6NCW_la`zT7UKX5 zl0=b@nV9X@g-e_~v9Dcz9sVC?th7FGya#z*oM(rEv4wMM|6jJ{dRw$oAW+aBEK_c? zo5lsN>T(1)tpx>bjBNrCHA5NZ8dDPR&@4~+HacYLMJrA10y7Gf{3JNw<*E-r__(l% zk-7j^t~)bqd$DpddB_PIDKmj#vuNt`>KR5_#&XU}Zpxlnv$gnwqqv*+d203SU-<_6 z&+bW?+-Zoms<{%!&OZtB@ak~s`$_WJ?bNUwiHE#&y{kDVQ5>b+4rzUAQ?t9DHh3#V z8`~-Ne+CaB|M89Z(uBzh(cA;&ewsc1$zEOOb^6rIs&p2GXspCov{Oz@@IA3O^=o&P zliMLjle!V%>o?P=p8bigeXo6{=uaA|y5xl_!y2@hjQV%)ejv8o1PZp*R; z`lo0p`6DDZBQrs|er8<|f;f%y8v zu)o{ugE2t)pKr*+oGs=eyF`YQ%U{fA##>^UR@l~qGS(!hjs^#?bJ8BX{ZO{O+_8M7 zKQgXqazXK;n{xe7)>ad$g9>mtGC6KJ5WQs;KokHym>0xS?vfuLlNr+RguBi;kM&D+ z#NO#b^b4J7=s;?>A~PL@>w~j+2w*x zJ^GCwk^<@H$iMi*mY|@qV!%>L;K<@m-W)oYG3^9+%OXFP1J=$tb(`#OJpj^IRT)^pdsS80*CU#N zdX(z2F;+G?*1)K@W3i`2*4{#$u#6CWjT+XeHG0M6O*&<5bFsTb!igHC|J8wZMlnM1 zMMJ+sg#R0By`K|A4fB37fSJm!&RaObIU1kP7E)|2!^nr@%=}S@Ycg+^x0h5^+h@hx z0bKfByxm_pap}S82{433llFU76!Fjd(JiOMWTJHn&gGlYouvU4s0ca6GGuk!v2Kqd{ z;dtaCF)q}}UGGzoCdj?FoguH5VHSspw9L_qW5zqWe?5FZ>v+&rA!aqn_CJxs*paT- zKesz`Jl7+Fi(Pcf|63ogw6m?Z%n~9Favp(w0(8^1bkCuu^EV+mE`^NKy(%A;#$B+A zL><7hEi~Ezl_xK_@8=>`KR*Z`In)+Z9XcE!B2z5F^m1~03 z8t;nI&x!|cD3~?v8G-1`ivVHH5BS*A^<{bekL1BMp#9vREa}fE?r3GC`PLVuS!{*` zxEa{3;8Z96>C(6X#D*(tsErfB;pOP{!dg=dVS#A0Jnv&iK;M-&!~XE*FUbG;r)l|d zZMpl$qt^#hHWtNT;}3Ik-Te;hqQsjWrLQeK5(u>`(Bv$?&dTI9m_zr?{z)?|WsHxN0svU+P&T#$fx`XM_B1a+-T_aVzoz{U z=^k4^wj_`f?(vGXw*xp>%ylBkY+Nc6*`^S8Fov!M=4)@>o{{pqF`E0p>Ucl)%rM969 zgok<=eG#a);0aQAaRgcf&l?Jyo3%t%Z>!8zO)W^Q$)d=`m>7X|x@TY+(Q16E`QHhjHc(4w5gLyz6scYA(H#v5=0e71j*7 zpHBH_W>y}aZBPbdOK+}ghvorOYb?m>fSx46dd8a6nv^ESQ2J9UFn=679DBIs-VVy_ zRxp#q@pc9do*Dah;lL)8vQpFSr`{vR`8LLLa(Bx@uDZz1yB0u1w9iXdcn&&Q4lxcc zOeLuK?hb+hF;bDC@N*3QWD}to3KJuR4pObx!_;_A%STUQIC$rB&%_q&k@cEu8O=aw zQ-?6Oqoz~!>FfFwa;KSF86j!PkWRapePp4z6kLkR4k~OMz4fBmv`qu})9E@!4gT`) zeE%D?Fl#RB`B3rzB#LZFnY^H=-uEy!AWE}js@a><3pqzI%j&gY zEQdw~>1g6TN1$C(W1lD&-2cOz(XP@;Wr$Ywzj5mR*PX=0{EFF@g;wuB>%L#LSn- z2BQmZ8s~#1FStZUS&bDTo;(0bCz-P=rvP|_pbybn>s>U-;v{yoUYWbk^L(DSt45Z# zn|GI-m)pzq_z4tg%tRS@r()dXoE4hc$GW`(OyvN}RA#tR5YqNGu#v$lqB>Q<#98U` zIa;M{jL9Jx*W51WNrw(-!l9TqVe7=mld zvLv@W3XMlstoK@h2nRcc2KuT9mAi_Hh$}gNA=TI46ixF8bS&Od{~dXs%)KYeFF5mW z3wHXY>0N!JtEm;c^;7od+U1oQhdtA9UhSo6u7J2EuyJbZ=QA4r!vKq^#cwp2+>|_# z>QkpT<(5^ncMo0NO#3Njj+m*9W1*7Pxu(;2nklUI{I2PSTU#zvM`W~yo8uG%3u@K* zl(`CUKUZj#)#L_CDp7`8jsJ{ToRVbnw{ffXjo2OePmzu+$xrJLiTx9om4WnE6sG~Y zb@zKSD7<{f1hBJ)2+p6w@+(@rT;$EWMyHVl?5NRF;iICtJj8)#(E?aC^~$DBl>DIuUL^hmBe zMQDivMxx-eu@k}7-0ss5q;(N-YGyNseN9m7a^x zs^A)@dNtgA8j!|%{4+lOdpP|&tbdQ|$2?n=QF1Z2#1O3Pq*(w{>&>FqgpSLEJ56oi z5&XPYxaQ;q_U~*tF7j3)rr{ThE2`vlK|Of0bLo?c%s|q+4?LDMH45Gw1}8ODR^R0w zgu3Z@v;*tLdWp4B-Og zvWIf-w(yRmf_^&+WGa<2%TLWQH~o?R0UeZSg;YKqlmc0Lak7@aKD&uzprFwF>O!~R z6oU=wf|T84azVn89$svxTiLr|SB-Z%KJoo{|Icv#cieuC>reG7t!&H+FgdQN?3Ir5 za(dTX73}(pG!=0yusdWVd|r>JyN3d?(AhH55Je_PuA{$Xlg{`aT~{la6AMJ<)SjB1 z@DrCy#-Ac8=73pQqSAIeooMBsPP#^E4p-CTpcyWmL~k(JGClKG9aVHEN?+S{uH{6W zXxAX7f_poyw`5-092Yue@~$09Ck0n9bgkCMzhi^)OxHM{0HF3 zd+SPj4u$Z7L}h)4@6Gu{MI|{0+ie(_q($b7XTCHf(k>S!k0Q!rz&*Lv#@7lQBQf7P$#mbB~!E` z>7$#%{C-LdUmHno_G6NwGDv<_a-u21-|OSI+3atTBe`?&1{!AW2i>mIv07KpJ1D|4Oy3ae`X|3yO@kd zjKxFn40u1&R=DxZP;q+iZET9~WPVW3vzd8jEQ(V`dcXKIpW_#`tE})H1ZFv|mR6Ds|;+=#3|W4ck>(VcVNT zam8(ufP-_eu&cOq^4?OvoEU9hdP}uiVG^mg>?HPif~;Q4B0t?qS3~Pt-HU@-59fmX zpJ6HZknYBxqEet7ZPKB=gfuC~XTo1QvK;4}8cnFsdvv$9vJNbhHdkQdNE9d;~l?)T8<}z$Gh4?1YiWJ7>1bQ;?}> zaYWj}XaHoq9f&wGq*DTffFN~LO?p%#Oo9?eMtdd+3Yl*AJ}8ZIZAVqIaob z*W_cI*dA*V>E&(M5}4{tduHgsNBHJ7ls6zUm9aGU3;PjY^t}*hQ#u|!Nd$xw3(5qW ziM)|j0ypX}j+=f#>H*0$%|F-sPbtf;$j&<*(u*qjSgh`vveD<2XEujCuB4ZtNZ-jK+qIPX zlpraM*`x#_>}7f$M^-6mK%;gyp8*gy#Eqh7|Mcn~YbIRYDDey@GBlTDF!=d(AzU%H zSnUU)|Dvn4$O}*u+trX!)YgCkj`QiJ{+)kR(^IuPHPa6kpfvMAauAL?qv!79Qm`U9 z4vvXKWd7t@oUh*8C!-lRIJ!(?4mr50VS%YMZB53wLS1Wep7hQh;zt(5TK(WxKO!U`0eqKN~h zjFwOa{R@XLogxbW(O0dblAHpN&YU~QvMo{+klIp58#GR-oGe?=!};n0)Myr= z*^>IbNnA;w=~yTnb{&jD%X<*5IFhZ0h7we?GE80Qc2!*t8Vhlbh%${%t*@ghJK_9< z5@zU*Zi4#=5DM>Tv!~|yaCUG>>43}!X10U9mj+pK|FXmz)~{+VGykL<)B~h7u@{m_ zNL9s+E})Q8Wmb}HbmuEp!!SPP%IHbMhV751E|UL0k8Yd7h$t%|^to!&x6F%(uWN`kG|p!&jz*(Ve*Z>Q1z~!^Qsl+=KZ5TOgBh&)O3%L+&xpy3!K*r3ljS zg}2gVk06i0m{m!e*~``*Xx&c3{{vm z+2ZqyLITF$(p<=C1vB>yFH=vcBVfqa*b$HMkgBJdg|?;`=?I`UJf9dPCeb>k+U;4j zHtY+--3^U$plRkK+?#9J*}=}56uZ7sOclGG()|(w`ceoevg-(FlE@50CAvdl<2c(< z?aW-NGyisn0vLQ~X0o7&ZgDZ6o)ktio>~&z>VN&Qj6NZ%U|oe&^!4*!3jC7Ha4OBg zvR5VT_w?D!=<%aZk9ylf6(8AJnlEAe7AU*0m7wB`AK6rn{P;`>&?N7%6ugBP>2SFf zM?qrq$W(Crmi)NcB)dXsZA{{2m)+`|kx8(0DM}r_u*dAl@=j89**XBFkN%Ps z_&ay!8;`Xzrq>r5YG=kQkET!#1bd?3A>)@Oa56@GX2TBA!2B9m`0EI5TWuOGQ5{He z>+dr=TrvA+ym5RG?r&B=$by*);&HPc2Gs6>>q5vioQnU8#DqGWzwj0(nuK z755JQQeOWtbtIbIgSBT$185sfo8WC}N1h5sje4^LC$r0M_KtQ=_1UxLMOzDMH)~7%$^H~*#j&aSo0uB9ETrzlsf2ZQ!VeRL%?taZn_O+eehIPBq;gc%6L8u z_Br#VrsO}sAVm(*sw{%9<;kP;-V2cIwC>V6O*%J{+e}}<7%_hF9Nc#+G&!QbicOy* zsN)n|-I%2r3P}Av+B2nkEtpkRhOZ^DNJ(A@(t||+kSI~--7B%2^DwC83}-1_!a3!S zdKS@^gs`W}W|l?SbbluLbfvbNnV?5#IwBXq3dnyP)Kqc6k~>vSDVm)frb zhwJE8cm-fvXLpQ0>1;?4>UPx^MYmS=FD$*-e`YB?P@V~9K5Hf{c}mE?lNmnwNkR5x zz(zi)^qX%@$=Z|tBs`czLcW$pBs8=m;_7Q+=54sUq)yeTGIu_SNV5y-I1a^B7o&1EccOxB7F#y)&X!AWK_FSNZJl(X!`5hYF3E6)Z` z89*dcI!8qu<%xw%xv*`AZX{1~b+Y7&6&>vLwGg__J6ao8K%?ttr$GD=!heZAo!A8r zu;`=LD`Z_n0{&#>Y(Hp{v{HHnDEX{gM^@5Vu`g?x2%x{jZMg zEkja++#@b6$n!ppEBp6Yx^KkbB6^Ja@d?yu*R^XYqB}&tVeuvBs#&OQ>u(&GCL3F{ zV>XJ`#%50=%$$d$RArr#@&ZEhe8BDZe4^ov)ZU1P+t0UDb~+!KNHtJ^^chD$^Wc9f z1RReQ_ODG?Rlko`!4u=c3P~^tlN1QH=eV#1>?Pa5h5knY)#nWUmA(%UF8(mPcv=Gl z?Syg+l15IZWD>|wNd?eX0zC-BSQv~RiM!ik4I!ufT` zvA(PzoOhktE*Ff-$BySxAm^C#z-+Q;Cm%|6SV`a*(KEJbSsOAhQ*F z*3Hc(S0A}GwQxdG47uw5`m2Hn=PuaD+v8mK@a>(LIRfgvRSYbU)9&tTIs<2AXn;53 zhT1VtdU7yY%ke2B4QFycXBvt)cEZaKBsFvdR-OR>HXr719N59_(d_u9Zc;Q-T=6!o z)Xx7z4H$V*@%*_ti>U;?ist)LWB`5w*fJ*wDo9nNziW^0*@~1Lij;D6C;dlNd`P!9 z*7;$497Cf?gER<}D^B9kf*ZIMJFu>3&4t}#>O$nCbCx;2*X@uhC{>?3`1Bczxwc8^ zxi{10Sim3PIPMxoek_)-cX{|<%@>>3U1$aE@ z#JQ;1-5MwhA4}Trw0yb@Wo*z{mIO0df2N;!-l5qkoyAdfMdS?@NBTWWfqCtk1g^a@ zRYQxSkvL!_AdsWPR_^^#?_5xh05)v1KhxtLa)&8={$l?HTT6SZbJ~LN>a&n)El@7; z|AoD9L%Pj<5c1ND#jX>1Cj+E{y==t(4_;bF{-#klW~`drXI%<*+9k$(wE61>rjZW6 z8R_gZ#`xtV%`kyYTGW=nN#;Bit*p;g3#*xx@!X#)G#F)-^{mK0yrDA%-vrR z&NAwydr{A#DkV=_=8NswE*^gTn(3wra7X@HWDPD%<&U|-<~eoAtSVqVd@s@(AKvHA zYTc9_E3K}S_!~WM4kKbXzaZ4Wp=cbP?L~9a1k|@FUaQ(?VI)@eYr4F#FW%DqkM7%m z8wSSMzTH%rS#Uy&gh;%QxkGnGLM-{1lLg1J_BUHy9-LvdME=}hep#D!-7z;ZD<0YW zos54P4Y2%$w`^N~rjWFiKll`o0yQPaXp7ELlXDFW7!E}fJKJ#C>Z0-$3(jd?`H99$ z>uvn79Rjzx-YQ4ZqAfr zOiwjx z#p2fGLtwutY=_Jkogh{8x$Ly5YglRkQqeITFs9PT;D)1OTy8PWqQHJBaY6zU9f}`} zlyWF?Y4yM?!;^`u3JPte=uJ_z%65+?f(>POZl!`iB5RSJUNb}H&jm(hlh^4>*nwrN z?X=@0dWONslH2;8uz+Jfqumrp%au62QP4&PO@d$On2;i!ki!CZqFfXb#uD&uv# z5TY_?ah2`!x33Rnl24{IJ_R02M>)h_vH!B#_)t7R<@IX*d2)S|@lJ1!X$U1G7q7p$ zIsLvkpC_w%kP;h`x=8xZs~?6UJ6z1ZeB*IW5@||Z9wXWs8A>d6H?ms7N@)FM2XKI2 z3^Qg$lj*J{o}lDCo&RBJwPF&J29zZkEzadtKw1<8RaddsS11hLuzu zq?s@nZQzH%jHOQTq^Ii|{hF7^tKONdjk(3e(a*Y@a4`SYsrSremfPah6PK=mT5 zr*54_%bS6@s#0mHc=3BCa9FPZ(A8v~CYw8_%m;djUAIi@6rMmU3Q$pr?202TkwW52 zeyzI9IEVym@G4GpJSr*O&z(%CPfOqp3{Pa=wh8s^2n(+c?mvn@yy=b&OI zYMBRM=QBs3o67Q$SuK05l3!j}+p4U?ER=rQCyrlqic9X)m#AUw#~ax-My^gS5X4A9Tx4LH^Honpej%ORcsUnw@ zk8w+7FCyEdgUa=$1URl+VV_#E$=hxEX%h)#Ts7N!|AhahX$S#RxpvUu$^FyJ{0p4; zS1!|ZrJO-ZpkgYO^&mn!j^}EQ1_1)>9=Yluxq;;-RnqW9F16e-E7nO6XE|bOcOok) z2PMl_+BR<%vfjG&nxJlc!!AEMDf3yxmBAo@dnJw?ru{%_a_*<qQ!~-v<2YAELct*{`R#6hET#Nec9(cat!DSQMNiGHG%)zl zbK;#FHzuulN1Jon&f@Btzq`CzH0d3+w8;Z&iS1AV`xKMyBSyiDKidR)JI@^+CvB*G zgNicb{Tp{ES7{J=t9_?N=|r?B^md*RbBm;MyZ@2pl|5CvT5NU!CMeN*K!3;`x{0?hd<2RvetWqoiJZ_vVFWzlDe&s zhF5QCXHQ9r+Y{#2hobHi>u~MhxgKMxjYV=~!}LM2y*rWBllcI8@BaT#{^anDr(r`f z`nQsO$x&x##FdPD8X zLcW5lxCkb2OD-U^1@?gU(GfIoYwKy7qctKKl$yi9E>^hC*8KVbtNT&OPHB2iV9%S$@Z8YVk!Gz?2wNm^$j%?a89buDynHygd(^ zzbvy*t}NafaA8*FB@6ewrl#v>96cOiV;uu-l#`!>zJ>W|1rV()+D>+Mz!Z!o2=0@d zHTt;%HC4=)&hTNQv$X)e0;rK1PDfyOfq>;o*mZ*2$-4jCb&_NpnWt&Dfg_RDZJl7p zh@tVUie}IrLt!Q6elWd%se}oySiM_hEf;dvdC=lyP+R$l^q7o;84%k5_JbLEO)P!u z)x<2xGdRCI|Jv#w(|C%!TYd2G#f2XeiU9Cj!I7PIdj2G3ttZaaG2F1l?PtI&=bI5_gFLKxBQ=r?V z4QSV}zmtqHpDxt?r9I-ZN5L=4X4{>-WA27#GHwE(uPRontb+ug8uK+ri|V3L|0%$* zVy=29Hf>?4RebyY#ap~GglpRuB7fTIA0q=M#MW?Q+7L4luRyJ3n`ICH+}xfQWp;Bo zguIN75_^#wm7V8xZE4WjP-Z(tw2KeG9uqg3ZaS_8T?GB=MxbGZa0}x@9sIhItu!a< zLlzII7?p18T~)LU%je%};}Y49K$L%&r<84oj?#dG@rIrQ9YGPat}WmX*go=M_L&Q$ znV{?4CR{4tWu_GUC6Q;5u8Uf1+ zkqN0oGMC1gUsP4<9~;X${ux_zF8_!DcdW#}H!|2=YFVdhzgQlavJTTS;$JEab*Myw z3Ad)nL7bSXP=^bcnup|xP4U2&q&vlXJh8%D=K8#0ASX~Te8i#kEl4mz_7&z9k zI>hI&dLPp z`GlO5;=iyvYI@?G70Y{r1}=CU{ANqWG0!6pVIyTWG5{QNHa7m_o82QS&*PdHTCG6< z)BffdpbB+$?KdBK+N6D-f+O*-4*_Rk`L;XJj=0#Z5C9b(@T*^OU zNz?Vu4=4X`;Wl36q0*;rSV4&u6plPmYS=gnQkkx4oRNoM*K1kWDjba$`Mb~XsPLTf zk|4}R&vaPA3IocPZOwF$`>bdO@Vf@}WemQ0OEPg^pl&L)nQuV79q?{Bqa;pW>4i7+dP0%G<}d%^kfzbK-ySUKq2> z5Obz^1mv8;6^MiIVufvPf#?NVq!>se0-*NHfQ%TsCgV4ER`3Q>sVc}3c9a&y#;E}CkvvNmX}of{hWsEs+Oc-opUu-Z zs|aaIxZ<_cQii|whV;P)4v^mr3;2%6IWsTv5cy6csZ{}_nnA1BSPTd&TEg@r7`Q8% zObuPb;8g{GmhT9&KjPoDkcFmwM>`Lf2>4L^+%_PTQd}v~ooR4~rZ9T*g5EwVoOYLY z23_iqTl($#-fh!i8zdb90dTtT2Y3j%JSNL+Ky6J{39f_f-+qDvP-2Y4MlDBFuwqGa%d&OKU_=X8xdwNJ0Z>1|k3 z*^`dIlO3ZZ+##3A7qq+Oird-r^V5n&RunasD8^XYfFj{8sw?>==4~1>4 z%&82(BvW+!oAg2CfiIrOz|ogJ^g~RrxBdEc`|yiRvyLlL5yDWr4RYfHOTLd`dBe<9 z^-n)2{`(9A4r}O^w31H@dv}Cc?rp5Wt{LLF~pG#J%MAH;?S=7yG z^GcX5uj1QdEiH>x*FR4FIHz~nFJOD;e)`B<+#|`e#%rjpjV-YIc0hPQq>f58s?%e{ zzk&hf#u#K98*D<{pv+bR_}Y99`wShF{6q{BE3^J=VhiE0X+GQPGLWLcZ`&~1wty$6 zAVj>O1{wRBLd1T%n|M-jO_$`ix(|HSI}z?f59lYj{|&wCOk2`W7;h;tUIXxPonyL!2Ri$_eBq?A z-v(h3qOIW_9{rd2Z~A<{c)7cEEvAFPODTb$>)Ywar z`IPT9SI9o;W~yvK^381Ipt2xj3icISgn81vK?l2yi=LH`8^EZ#nYVOZGM6NC+N@Tw zP2}I%LA!c8Bh)O-V)Y#nUY6FP%uA6)_-Ap@<`_7dHpZXXWhVCbP$CLeUe5d-k0uYS zt=>?3kAO}sC8N%4qWLcAlfDyyV0M5}y6PSZQ1X@Sz{sKCVLswqOv`s?rU{&&1cnl<_Y!OmA7|0;I&;Ymh?T^O83d_^AWXi>ss_ z0;S=OF8q&r^y#4?+ZOs2+C!B6-C1kV+z4{?Be$cgc8Pg?AQkKYG8}0==uAI#f2DAG zn~!gH!*p#=p1;6>eAag`34xEa-TJs;V+H#r^?N%8Fh0iSi~rr)NaL55mM>!cZJ%wa z_dy1ZRbtwN!4aGPq9>kV8^;G*MgDiW2=h<{&nS;DA=2%FJ3|b$t2Vey9z?RpukTZv z4!WdV{gQ$|y_Q?*0^W!7$8`M_$HA=uc1srZ^3Ujb(^iF&SL3BW1B8gUeHQc!s4)BG zmAS{?Wr3+!2`v91oTT`+tI~^McSMepyfZ2vU<`?Z0hkv^x1f#qXFy-sAt>0e)*gI# zGSbY?z5;^X*Tjsn$|SC>l=?66&!tmlIZbFzq1#jFO=<j?g6<=V~KX_Is- zGpRsuV{X86)F?kI&_();zFqUoK>N|RachPD4o|)T2+}zkBuZ>I5Ozy*{JSjo zg6h>%su%;!fu#qjqrZEu8asM~VwGLMNWy}W4xx%hRhFJ<<8`W`rsVTKn%-5!zezru z-`^paInnl7k1=a8A&2#;#k#rdg-#&FwuV#v>i*ZudXh|EK8v5m{$KQ22{WeU%=uv2bl*M;}xR3$E(;VsPbOqumWPV#z1*)S0h7X%OEoE^)=;NPqo1 znrT*XDc~2SE2AHd<5BJHtoVOt68bh?{w~k|*6a31SHSuX9xnUH7<9HLpD*v!`=t*v z&yNhDdj)>u5d}yB6-3D#t76hS&TD%qZ~wy}xu8O|06rJyd++m1XP>FC{7%T=sNC&k zJ6NNk;gMg}1#!0`!0HTan#dRNkNS{CJX5$Tm+%rf0&6a!SW{(3GSEv)V>PCxYn)9m zT)+oBpl`SJv@dsD4168@fSg`Xx>#RVl2BHb9%7ZXVGd77oWcF$hzo_7f1=z;~rW*>V%hazlhjpW4O9SUx>8I|#YAH4~ajYak-<3%f40NXLb zXgp;eP|1V6)&eGTWj~MSM|yTCgZV@LG8D^I5R(!24vzC-#Sv+>IEkLlMrB7KUq*_D zyhgpl!SE1EC4(LFVjSW?@5^Z$<9GX@u+Dh65B<8_uf);QBIZx#1?5|#F02(Z+^Q+8!0RdWMHOH| zV_Fef^g9pCa6@sr_M#19QsLEQS z{hLCCZg97>gS{$F-Vl*cjPaRSxhPy2RXzOJmDa%eZ4d7DvEW&p#TF)M!0A~ zRnipY4G?y^5a1jhC_d(H5~;8Htl`s`0zK#mxKh$sd^MTj5aTnCzrA4IwFB(#_3H9| zJZj-Ly?;w3m<*8mVmTEqxBhsW&d)XS)T(?Q|6U${*2iD9!xxz{WFlz5T;g9%50}u+ z{Hfq)cJ`72o~iKz$n;&^^rENJ&an;c^0G7plr_YB5p47TGbA1VuAFz7`D1)IqKg~E zt3W_fHx%T~W%hLypCnv0rEwh%@AQNx(Q}*k7iy-fRmc~gHWhu<t-1N02AgoZdvm0h$uxG1&=_Xy&E(P0axlPi0S1n}a7Wf-f z@=^cj15bY?Wv%)0lJbn_U$M$c)~!$^^FXk+u45n-w?IK>+tWPx*0xGjTmdq*QSQ}c zw-12D!5`pE8?9vxfskVC5=a`!q{$kFGUkXahS~G19}qwM(2Mp{`I*)X)hWJhifyNe z>WfEq5zcM|c{{rJp(V-c>#gMh+m!7D?6C38lJA8UNd~FAFJkyjJI=@3psV&mZQ#9+ zpTp@RrTtV6rB{l7i4YS14J=%ZU1IDWwEx!b21oHHb%V&z=QTabbaABkS819X_)sc<3&!f+{Z#tF-u}qig0HQ0Ggd z0e95@rY43d(%^Mk-6j^_D510&=!@+a6yesvx~4 ziSwsR#9S1gf~xD~(R_ruGo4)x3hiH2x2O<3z9|0JXT~M5;nHTRiNAkq@ABofU0?gt zduQ(SnTz18>?9+Am7Rhw5Rhy54GQ~l$XPT~g>?kTv8K(q-i}ki=Iq`^43HZYqT|Ko zu|G+ZY~8?Gt&}_BB;SgOd!Oas1|upjl0fvmxManGWc#)!?Z&bRxc@Ska}DV_KmCq_ z{~!PSk$$xq0Ws47{)fUzfi7h|o&!4TLn^$Z{xK{wFHb4>m6ztTJw!UMtBih2N9r`~ zqd_}|r|t2&-PVRIV$7O0%(pYO&DnUVsqEq_F3+l0g;+kD|7Q4tc%C!N+hrA?p!)NH z;~V8=ht9j1=$N78StGXW1ETknT?!={5`#=)AZSj+6lHZ)Aek6PcYe*c-9nM7;=f~_V6tG zkhK#tW>Rw5)xHIwlR>bd{HQl|8i+uxej@8^nD!j|l0^t`1^vLtXTT}`p#Y|Qa$}G* zUh)Nfa%)U0?SGU{qgMQDTL<8%-c(%L(S5Y%*BvKCPfGiDHaIwFWR~igl)YC{!Fn~R zqxA|r*s?|gumoL*HsQ`3n~z2en4sO={IWlO59;`854Z;{wwKBs{~}Tv^HEh_hj2}b zC1IYtjDN2>p_BOpj8JWy7j0**;s0mxB483{D5`tMsdF2)=B1#YN`g-~1n@b!+%48s33bOIdP( zg!z<;pJlxh{5SJb_%o0^V_;|g#sd$&dkxNv2bt;0h#TjkI(8lj3xDewxy}fVW zq?RvH_wRf4zx|@mt-qVy%4dF$Wv+?!>ONF1+pGoZ+*PCQrH@fwy0^$Du-!Z(^ZeJ_ z1lldiZ5K^na6-1O)*nUsg8E<8g@fP0Xvz4HoZdfOFzJi|c=yr|Q(XZd=PEYRvHkJo z7EmE=U5McKdgY3Or}aa(A1Db>H-cE}|};qnZlE z15z396S?Vp62I^3E&d(w%KVyNSnw@mZ{163e_WzNPqD@;0*^9tKU`CtIiH@g-unrX z|1tK^dz!mezB8JR;UbZ~&$jQO;=cCTaALgWgSD;nsi4rc;l;|!`Gd>J-->)qZy5ufp&exkY=QfoZk z-!t+S?C#Fu&wXrqnmoX4daXVwAE&Jsb|Dl$sS+%!LwaLR!J6B+SZ2xcCRG9*g8Z}3 z3l2ZBuvMIeA2#2yIz4jYs(Ge{ZrAOP2VQvurq2!Z1{$_5tZUIO-Xll{p_+sordFNh z!H1hKC(p98Oo85{{nw(WX#9rF+*pEuk*C$)Xos0u@3!6c?8>y;w!J)a5e!S#64G*d zX0Js1HPf7$ER~u{{>NKt0aE54vv-~>_BzoX()}L(o3kynQuaGeR;Op|YhQcUb+xI6 zlyDwzxzP~AbEVE_tEJ1rAU%qgR%hBMXNBPu458e}sB+%du3%Nxr5t`vP+H=M0znt;>4{n%Pl@w^o#GPUbpo?Qm^5I$x8i3s%9X7td+>Dobp*Uy~ zv)2iOIn0gBbP4TWGlWfe^FT0nxKZjT#_Tzji-$cNeudEViNp$UYvnkva2+4EEmo75 zn(_H+0c~NV{ppb2;b{ElrOT$!7w5Yx3sFYY_I8`Ylb$4G7-4rMX#s8Br;TEsDp6+bVa?{4pBl**peTyGQ`KpGq zm$#^DmdiFSMAut2h?>V`v(*?p{r9YvnR5CL9zeLLFabl8yUe)r&t>gmRf$q+3LhEI z3e*2v=RIWz7(hn->eqpaD@ zld8(Dmm9Dj!&U<(+4aC!kSkK(4ip#`O$s8tVNB)Kvj4%1!?YQDH0-_RzsbC`b4-Gk z8;9%J(-vI;0R-KQ0y#6N`kimGGWT3yFw{)pt^EH~Wk&`}6S!*16P!za!WAc$R{(C==|FUspb0TzaD?z9hxab8PbySrXX^B6bVt*ccA2E-;jgYR z?z0bGACq;r1y2m)ba$k**0Fdf zWO!vgnTZm6xO%s-{!ir=J;JDqWBa#!;`Zh|!})ZAGX9?qU`i?2LjV(Xn~d1%_%~YX z`lrglZ>+}U5S>m)LmO}o*v)_;t4VF%e11J_mfuNfzt$~$mk9+U zzZm=t=V0@i3Z9LwYA6#P#CYtx^*c&Rh1J^G+OzU@W8aETZmm&A{g~F5Mwlo9-sa;l zoZ})e$rBZYJ`b2`S8;-=1B!=5`It_xtSG+XPa$Mj_kx;Yqr_n`V|3jKoVK^!B45A$ zBZ?masN|Mep3lv!}#e!2*{F5K#kZ+P_In0d=oD}6C3C9=S~ zpv6sXFsPsvv!dlHF^}3rg)XSPL1p(jYGb|e$fay`KK2*BA568{hA(+LwYH&>9t~4w zD?|l{rwgxVE&|CIM#8Vc-NTQvG@*zd*4TT9x}<7KFoh>dFEON8nW&!Lrt@=p4d=J? z62WrzZUTIyOc^3qck0pnXmUH2o8OF`I_w8PHr3U420&S*tqJEu?@#Tr<%HRora}cO z+kg65$0_De13Nsmfq$9;bj>2bVd1e0VsMBjn|_ru^czD;V%Qcu{J{X zv%CppdtY{NJlY?b?`QJ%AyyHiG>y47mu73}GjFntBH>e(ul5nJSV7f!FI9adrJC^S zCht*ptSShdSYCsqEkVvyG`_+sc%N@S*PBkke0f=J?=%Q(pl3%ajoWIG)$vA;u-}Ed zpDZ}NtY?C#c~jIXDs+8_zQ(^-;hnm{LO|yGV+*Iy%t7@M9`b%7HR@ihG z@T>2OK>sit*VX`Uh5~G4ppXvHgH-~ZYx|E_QQ@;x%gdPQqagl2X{%c;Wd1fYJ}mQE zPd1;lcvahSp*S!}GItg@_`#!XX8}kRr&g zs&Iq`FcVA#VQqo>F(_LGt34>M`rt6v$V4+$6r+C6quE(U5$TfRi`eESUQujLI>_m? zTr1GgkL;k$zE*rAZ1G=tkHFd#-NmGu+Hk0_blNm{HQgGd$^n&zIfec0Z9Yq)VLCnQ zi_^2F1DnjwAcb?y@91CDxumDC5A(h~JJ)qcLmy)*QT4hG1l{9UJ)F#*g2FU=%HJlUWDCCmsA|uEtWKe5)&LeN-G)XzMjct9f{w z7p5Ng0w6R2h?j23l-pCxUw+aKD9N+J_ItSf9`7IN*8wKBNKL0V5oQ>w)@mX$RK=$J zj+L~c1vTx}NBdO-kbY*@az=M?a7g&0fC3TI-fiaVp3%jR2K|jEi5h!ZQllTPi156p z>Sej4F5n$*Hq3#Msi-$f8tIr-_$gRlG{Eijb?g|9j`{ROGiHF4M5N|7B?_)Hzzu7D zhB#6l6YJNGxl+Y2mr61lZEx~Zd2W?A*IIYSQPrD@8Lc18^8xt9qp_A{^JeX2wjdWoVIA{EtWrOi)aG1JEU zEHt*ZAFi&~#XX45UFQ{1a1S`8CAdA1_1OdNNdDVZs7G`5@LdyFL5P+>d6fKsE}=od z&IG@}c711P29~L@c$df+q<2r%E1T_R#Ym>c%ZAAV?~v0{=%$>1`Ke>8BIlnTM3(N#FP69MqokKeQ+Hj%dSfY z+ftNB*|g9dnFPtbLel;Eb(M_;2QB>+t~~h}|I0RUWWUeXsWp4hdX>|~%WnHBjCX-4 zzUng@8j1#)Fzfx!Yk&eH8~ZG5d&rw9C5bfam!5NCG>U%C5&py|_SuiJlQQQkQ?S?h z`j%d!%;}T|Aoiy}{}_&zD13N?0juE{?M7<@ow>+sgXz<2$2?X}PnivUv&7Zt2||el zaA+{$_34{&Z=sUFz4z%0eO$!94^HWVXSrwoKv=<6+gUI#%lu@ozoB)b@}@OnHoApZ z$D~9g5@w3VGDcl-td!7FB%huu_7-a>ok|)f&H}IQ_-lOpdrI-oB6D02%UkLSg^HYY zO#CNvF>vJSUtIb7pm`RosSw%Be?Y~O8}>3!@!$sRHk0dp$U7X6Ni@~7G1*eY!ka~P zBsIUlJQ45Zt!Zz_lPWRl*LtjVC-z*y^L8AtrAYr5v!`at3xke8mF_M?F}=Mv=FS0Y zG*<5n4*$8y@SRgG2-tD!`n_-(NcE=*pEO&F6#U>naPrOIVq^@MS+pVP>4HBBs%+t; zB+!QoHr7b)J=J|%Y*uWsvxQi#LagF{Iz6e#VXtaFzmYvOvkSW-4vyBWri+V^$|fvq znpkr1faFwqOU%^RPdUTtZ^HtqVJuaJ(~vR%8w$F-nk<}U5kgZGe7PIHb)A5U)Fsmn z5uJvC;NrjTVrru!0N=o)G{hOKfspdpSPe03^)2a{S_~JOW5xX&x?nW~`i`X{vjDe}|T?KvHdmuh-=^-1soFC8LpO6Kz3rsU28rUMzO;scr0{C-72 zi>&1mTbUN}LeMPF%7dK7$SFO?Wqq0S;2!Q+hjCq0&A#^OitH}N1`oCMD#M_}!JqQK zr5CjuYd=1w{FNjb-KGsx-A=8yz?}Oa;k!yHHmwO$Bl1MR`&`Z~C76KOi5U;<5H;QA z0^yY$3yIXLj+uk?&zbgmIk(6gz9s&5fq@us9`9Z{LzT!RgtOu^9f6e9DOss`o>HCf z79hpHX!&5F%k_0Zx6NbXJQ+u!j{B&xX1QV7?{Oh7pqi+07Nn4?O4K&=>fF@p$%aB~4t|9+#m_z~Di=*^z#rQV zyH8VNTaEm#BEziRIZ9w0iT-Zdk*Q=DAeWA;33S;Q%ixG2HdEIA0Cu`aq3RE#ozvsZxq^ng= z?b~{M)u`+IEZKqOD%k(}lM?7H{ZI-v!C#VwGebt7r=V`R_4qFw@xnEM-`D znBi|9x-P0C%8w$iX*XVBCRbNuh^K{4LY|o_)JgdLNjskN^_gX7Hp-9h0?p1pr_;xJ z{YYV~BXE7S@Q7&)bipV3Sf953#F8}A)x#fDX#5&wE6|KI7A!hX;q^IsJ|so)=;>i8?KjYKV8AP*z&KYP_n z72pq5y!=DVg?)ol48#h&A(5TsO^~4|vZ7Ix&3@M8H>UHt(9@$-1)Hw#Bl$lC|M5DV zQm)ggos!u3k$!L?6*#jiyUK4-oL=XD9{~ry$-R|GaZ5eTg{`aG0rJDyd|fi(5zcDi zc~gD-}L#s#Uy$dG`!jr+_VTuxqS{&Mzs#HT)I$nLenW-Z7u``|r;Ge0p!`DO-D? z`P8AZpuw@^UPF`Wjc=|+MV+Q}*2a6^LwLr~H2_KGdNhL<-uB67VM9TKy6IzO_7mEJ*HqGwY|>M0I9{7^G9vDs;D&Ar#{@WvH_`zpIi@KXuCR z-SarnJuR<(N#*bM$H`yCKl%@KGzc$s3jXz7zk|MgI;|i)D7Bhm+Bx&*ZjJ`oJ)oN) zR=JxnGRVw!nm)5BydwRKs{B*Bvh}=f@0xtA57?gG4ANCD{C|<^T6{7%vs(trr4BU@ zt4~ev8?#7A`hN#Fu2P9f@h`l64Dl8P8z2UojI~EURljcR8oB>0sva#O+6q_}5aiO` zEigr$rTA-XUI$-K@y4o97#0>(B4G+&6v(|yf5irN#xy*`{9I4;C8^?;|`J ztn&m%rOq`ad<2;DC|;d9d$Uj zqSbi}ttxR10;(UP=JLy@-eBIM;?O~ISnc8R)=jU0?Zi5>oV>K~Zifq`4^$(Kx@6n& z1^&N&2mO;v6n=R&2OfC*tbZ)!=NnM0=EB&rh%xlS3=zg6e_Wv1Xa!&{lRo+J{64a@ zJ5mUZ>Di&clWv4%y)lSiBEaIc)JP-JB~9kPiTn(39asT>Qt?mem3L2$6+1gMVpbK- z1*GxbW0YpRO$SPq5BHJQ0aTl5(|q+iG?9$;b1T(b>ZjZp zCPFHl=evYZDtt3bZyEm&vLBN{c5mfL;VlxZD4rDmQe)$l+PX!EaXJg>KRFuUpZv&d zH5&EuTII!hAUa~F_v!izos)NdeGV*I=T4wRgZxW;_^qu`eJ2_k6$h!oh5us)EU`SrK2xsKE*t93mhAurJMB3wR4RDQ2Z8~ zn0WZYb4wM@M>D?oVl{P8N1($Le!|_d4{L9YeR=0a79yQJ?dLeWVlON4N%phKl- z?7-XP)iz+UJQ@gXWWr;KRlzQxk~(uHHx$UJy9)^VZWOU>!>JP-X`eovIA!R%co-cN z@x~@iv0)vBToX3vWra{fAL=n3TtRFrG4rDEu*j|Q|M2fKR@MSBVw0o+r# z`u<9usofk62#N_LB-MdpvvBm@d=pW2rlqyOyStg~8RWw0fcBIyXopHaEpFo@}AW!5a+W&PwT zucb8f<{}uMZGiPk@l3$D=tT`c`Cp??D-}0Bn}A+2*Y)Vi)lupt=|=ST4doD z-Uij$L^jsOS=CE+%v5<@%3ji86CXv9SG#kj_vZYcvNvy4E%0>FaDTqN^;g6exB^<_ z?{tdCSk7v*K6yR`uRa>y@b%8Mn+}q|lTvX2K4A^N^%3SmyMV94)WZ~3D?-OX$ovQW zriltFMR;&!K*Zp&J1se;&*bZhnUPQb>!tgP22XADsY>oqkQTCSUV{!T=Os7e6V53Ku00q+bUkNUC|n zi$I^`WYpU6?*;*(KQwT%#&u|qRGaWZ#9t*U65lB`oXKi zp->B)Q5|39g}5}~G@;Qm1Z;jkJW4zY+(T%okaY97%>+LbIUZf=eaN(&W)76HRi(zx3H|sT}$lL^$@)+3UQ=iVCB^XbQaEyIRbg&5Ol=l7?<>jm07x zx%-@WO=m^iwLzM)$*Pk6{G|eB+sLp;VsP--KKL-Ij+tRtt zF@{{kDqqZ`T#yv>=6f`s^*+<#694TPSr2_UcCX{de1QC9wOi92XEe}KX*8$qAiZA9 z7SQ9+%9zH!qCJ3wnD)QRf{nYKWmt3583)5ALJR0(V`HyTV&!XUow;9dZO^6SDvdZ=yr%c8nkP6eW;N zvI;!B*yAup>f$FBuZ~Z;bM3Npe30kgocu)#KYgI6^JaHW;bzh#w;*TA|L@b~uki#4 zm7kux!r5hsax+?+z+rUWeLC8+Ii>oZEEgDe)j>#Yqkneu_uK(R!=4QzyntX}jlOsd z{F72yVCfeN7)AywJw9B8J|rvx7LM|=A>--cdiq&fG%PzEXDnsg!CBn}Z@dDktm8&$ zYXZ`IHZSgrgIks@?b1!8^#m<~t-ojxboq9@?q8|vL?LuOG@l$WsGb_~h8F`XfvJA; z+M1qkI~=^_1aDjrXoC|?$IkC?A7JH4Sn~L@pI_5!KEBPEZ)y>&zj@)&yxdlrHb-j{ z36lxo{aCxJSjV$MpuRue7qtC~BGK-Gpq>cWmF$Fig! zdR($+`WVjt>QBFoRn7oDBPCFJ(MkREL^!=neug{8TGot8p2ZkJbi0_Ti7lp?nn0v? z-4rUfgu;Ok%IlVJ4Y?14jb<3Om?Ln%XzN6*fO<8lPmxSQHtg>!%tKopfdNL`^l;@b zCNpTK+iLSG{L~Dzy1C}5btX>&Lt(2*=~aGVP|$9#8O?^oj%K*8b!9V_@vRM#f_(7u z%Mxzy&H5YGka}cxYG|CdX1`uN_VQwmm2k-R=;25RZvT%TyB}4p< zpt76((Q$kdWZ|xDk^RuH=&_2Mlpgn_sO!3;P!TG+whP~lbau>7(+p8nD2~82hb#Ku z2@25KYdgk@9414af&=y`=08^%ij2>nA(86gF{S`iiQv^a|L->CWFQM2rEaD#I|b{w zH+C(~lH{6cw{>b%;!12PeO4*{D>VzF7TE?D3HKNh%>ts8mT47j!mg4`+}#fuQc&{< z|2aq5AHU*T-A`FHYl$69{iipDX$)J23nR4?6qI+3&n~alfyd|W$;e4MjNTtCL4eC{ z%~zXBJE5$^mD+*sT!pJkY|e_;fi6cA^unWWfi`xjw4SUWDTlbbDanGDm6<}d_f0l~ z6-H4AU~(Ca;p*a-hPIV{zc#adH3h;}9ZxoL@}?MLLE}G9ZTGBdWCaI4{Z5~7Is%#z zOzG2jPkEr?L#Pl1bv`En?svPrHu2@&wU6Y#+kN}?J^d&0$hrdT{RF8#b|S1t4azNu zTea)??{w7g5l*}C4N%bMQQnT%p0dAb!otsUb3M>Dz#l7omawEaViQZO$Uw0RkC>b4 zY6XCI*y})0O&P7hF&aM4Hk)YYR0)`%3rM(=%NTxq<{jU)0w4FXE$33(%Z4Vk>nVjd zswrOIPQ~HgFY5@U5{TPyDf^@2U-p8h=X%hxs`h=d({%cMPeugSu)%>W=dTepa!&!W zX>|;|RG*-3`)a*SPo1*D8y0ESOqMak$@H@# zu+X)zsuk}fcFi~fZg7Zd8QnJE+kLDTiFFLN{N`c0C&m5p?)aA@3>t%K=XI5*_?Kd2 zigV@vog}by1itO}`@{ZlaAR1MsgP^sys-M_eON)IV!z(MBg8e8oy*&@Vn4^^OD4Q5 zcT)vjhf(q-u6gUn+$|OD0m%qx8#-*@ow)cT!X#)Elkk zWP)h#HSJjFI5Uf%$~^pa?~Ec%0@$s$M*s@I!8ZtLtO>}m^IV|r^P>HiSKLs&fv;GO#^n$@ z@8#Wc-&Q;}C^W7DoV)4OXiUog=)M0$752qMoj$7BwXQYpJY+NvAhZY-td!Q$5!fFJ zcA)4-)|fxG!FR2Lz@{RQ)=UR8<&bH98X)~jcKaAU6sZWwo$tdB)L^FC-WGW}0l(OC zLAo$;S6EYHr6ART{#M&6hjHvf*4Z<#BMFhf$?u;eaOMI`>cimJgwJ%kcb@c7{5$`% z30S7&kp7}(?vV8Cx8)5cuU~C?o2Emg+o1|hV=!#Hyu+T}{J=)1YcPZVCbb(|JqT9h^WepL|&td7vM8NSsh(+)U6F|!>iq$&1 z+zL{@0TJlCv4HH!e&}Yfc^Z8;|JQ|8i#&)KVi+piCX;Eovc0u*vi?{M><~EeuoayJt?zD@LD+bE!QbbfCeadQZ^Equ4~snQ8k{~{1u1}8aWZ8{ z7&tNl;S3Vyn3`}c=jY}8l71aePmEo>J0?b)?|sF87tUEBSgJB_4OS|XGVdC<*+|Y@ z3!`(Ms<+mnACQIdhAD8U3C4#QYiffjop;Hdh05_`Bcg8$6h!!StDv?i8^N#muX68T zw9tK`C+RYG6TJV@j?cOdFi)4>l=q3|6z9Lk%ir`dsuvJb^n=%L%5wQojI{iED6s@B z&`+`_oC3v0$`UFRnab7h_PcA$syx{rjAvc~nKuAM-eBek?Znr2pJjXyW^uFNBs1VT z=f;PnjCFq)V<%BioDpj`xP z>0(%9wjMQ!9k@V4TWFuZr&ARF__O?-PQOfPGdonvL{g8B>y^}cBNFtVDW^@x$8>t| z>k}3&?=dZ1ph0>MqRVP0d{zzaA!u;jHm!-qSTw=!D*)u@68opqrP+#~t*fnPbHfbZ z)%0t4E=y~@3r{-DEUNyLhihyT%+Za)uZ9<@e2cSre>0Co*(|S?dlz7YPpCvXJlV$G zNV|Y{ZBl>m0sfk=PX51j3b2IJhhu*J5p4m;cnu0Xg;wB)T{@d6LKNwJszHV<*Jz=m zZ13q;^vA#<`$xR224mwr03H6s+Xzy1~m7&SwPD>^tg&_I;( zZBPzPNEZq`|AzXu$smvNMtYzqRl2<`;qz>bYJu5nD(OoL%9*N!n47nTyUf-w)W5MV z>kOfIKBe}&UX3_yg$)J6UE`#Qg`nxld-p-9@}H{En7lZ?}j zqDIQ8{{O#XVwm0rlUeH{L3KOwt9WbgeV`Wa5Z&Jm^ob)R7HE3(mk~{{CY*mK1*$Y{ zZtiY+8w;|ZLZ29FkVfFCHZh-7=RzP|h1 zo2$*#jsQ*{A1UnT<>z#SPc@|@@C(cD57mdqcWr4&7V=j$eN_FE79__9`s%1DGLNeQ zWWILYwd*MesY5(5>87|JUG^BKGEml9)gQ{1fgQe2sAE}}x90K+Jq@PP>59<;zBoDK zk8B8AG(l4Y?OELmm?Ob3=xQ}=%`$2fNV?+=v5OKtx_)4?X%YKnQ>wX{)mD^>dA0va z=AXfzzF=^9GB?SrPGd@CP^NSI=f8qob#DTBkdYW1Q?RZ0kDQylF4Xa`gv_7cCm2)Y z|BVar4zne_-r_i%UrZwz4fW`54f;pj3{YW}VIVgyrM(6yVCw#XP}@s0KD+FppAsk8 z2y?Y@*xc&EnRJH^+WBPGbVu7I%%3_r?%a9}3GNf47T=u2hjN9|NuBfC2il`XczL<8c01 zZoif*f+WY6b-m6ftsZ&owN>|XckgQ={iLipGq#@PYfyIgRCMjoX))beGe>Izm>*k>bv*}P)U6qxa6O)V z|FUX*j7|S4RqrWVJ|Y-G7c2TKrLvTEV0uI`Pdq!Br~gdfs)H318{*soo~-S|>ZmgL zE$)ldLA2bS)#iiTmTV;p2Fd32ZYMnp_7RxRa$wY1NF|NykVWgFaW$x9{m^AGsbozt z0K9f;K1rBsQ10!dEUtdc2pXKrd=YeGn6sEJUSx*hb}0lfJB95uP2vG2IN)44-hp6J76Mam`+goZsS?>8(#$4vfM;#<)+av=F|4j zHGIcA8__c# z?0uS~#*e_x(PBGsb3xR}uM3sHi773==E|qZW|Wn+E@9W?!BZBr&&8)PUMCG_Z{HV| z45QH)n0V0u>f`zJ`3iY>z{=XswGl-4vgYJ2}lfc}WV3+~PIW z@eq6NO6j8f8OaCvZ(>rm;*XQQaUw=L>Wy=EC^J28laEMu1#GqxffV{o>)~Il zkK&MNxagFWZ4v)%>?2&fc;!rG@*y{Zh$T+`W@YSIa@oju2UB6SYmgaJS&*c`d)-)2 z9oz1!Orp`BKOkjLMGFuQq6)d?bx)N74)K%=^=3DS{vOsUPBaL0UUK6CrY6=$|$(?Abd9Ii1AE|Ev@ z?!Z>(E9W@-bzk;MNOVZtTwE$tFr~Xp-lJ6kS}_x~TMwP;UJU7g2Zf)YfV~FVM{&_A#I61x~Mv6~++H zA2j}erNDpccf4)1KH@R;#J1?lA*~scR@-W~b|O=E@6(~E8$?;b7w^c37S9FuO}Ype zwd*rEA2#GiCLkfkRg^4Z)Hy|4ld3}+t6#iHy1n!sJPr#p-_;jckHLf*!+iS~wWwgB zdln-*)bvm9Yrhz!eKPcd?>%_Gd$hQ>YM!#QI*Nrp0ATf2%Z4KiAA75W+mNkx4m|s5 znjF%h_qZ);=`{<$R|b{>RIjdZ+F;0Y9rUNI z9Q8f!BVg^yts`hHb=Zf-9lFyJzSv_CViFPG2X&q7eZzLfsmzKKMtGRT>j-EJk#4Sd zSVzc6b3hict`Y?DaEP1kvEfBqM6LJ^om)Z>%Hj9-@%l%)8M7$&<7$$Xs>=EH>-hMS z^1tX+$M@qUy?!pI_w>Q8?5Z!97cUBVq$n+#l$UggTqRdd{ajBm4U8+&Vvl@8AnF(2 zr)8Hd(QW(QX7FRdbC}(jLf!=b#OCsd#?SU3sJ3`VzfD<=3MeGV~qP|1tE3x zfT)a;QO4^H1dX{e^v!5n!=vAMgY%0Am&CJsv20<}L@m^0@9#EmHTq}}!?TI6r4?hU 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�x>Bd2TuTVG3mcGDy230*x!MKx{ZQVcog)2fQPZ$uYg`TU5Xj-b7Z_wsh^I zKKM}Fo(CU}ek<8x`+1LT&L1YKi$c`UpV4}A|LVICOC(LH2-U>r*`ZF}M4zQrQ}jqM z>+(i5ViH(-8I>kpt)9(p2st(z3S`HJ8oM}4pQjJ*H0HVd6)nDb0gmw`7=~WW6OfB* zHJjrTrl2bi(<9E80}QDz`Yj*Q5++ymdFfXP;VrY99X#Zfs{{TyR&3|kSqxe*T-6AH zjk9|-`B#@EytlKhA~~?Taf?}RUiDbcfGP#Lh6>D4S40c$y+`H8 zj2}EeQ`rAobTjg+yF=p9X%w^2qh~j|Xo5?u66(VdOVyXPS3thIn7PF+u)VLY)E@jL zwlVTejjppPGT)1!i%p*)?xduD&A(pX{75qt#Y>1NY@T1gev8iVmjBRlUG1^V6 z_U6RNxn{jPBbJ~w@vX1(Ac*2vbcxs%IYNsM1r-yfaGJ2X*s+!~Gac;5k?h#}3q*$L zn7uFu6Y{p3doRKHBhE?w^r5w=K(%=zfu@!g5}ZtqSj1J(xb{9h5qn|g5^K=4rzHS^Kz_f9wBT7x7EkIM z0qn&UE!}|+qaFIi8jR6Eg5{jfKsUcq-OC5fX+`S| z;2f?HR=~F<2qOvibWL$)G)FaTh@x~_w%IPDT6d7tV%Lxe5z`pI6daew_Cp%-aRi6o z;5>T!%;r}biNmQ2um4WbRQchvRb~H41U~u&yA=1}{4Qs=I?qaT1k8%PD&WVhl<**% zL%#JNz98}u4Ju%pr|?8rdXaT%kcj&i8>lI?W`0|IoE#M_ku72ahlqce=FkU4j0)*! zMzdehcme-2P6&U-%g{GhIFs9Jm>|r^>WE!aUcx7qh!6P^K?CDvugYai9D{j_YT@W2 zY7J_A*-aC#VR>e!vEV;@jZlHl*o`he6zk>|`^wu}lv}*beCTqT;HixYEzy7e9n7#z`T z`T2Hs$0HH}pas$p4PZzv>GK5`Q(xBt>Lo1y=;fio-6o^MzcH-k6guAC%zi$1w8Pam zfOh*);v>Qi>`sB3%Lq$fLQMR_`8iB6DZo$BQHC!A|8w7#wuJjmKqib2TWOv?y4CHX zN98xXAd;Di`0wt`BMJU7)?ASIVsou2%+VWJo!Kq652-a5(N8A0!40SA&gIG+2|^JV zw#b6lC@L1)mZzHyB=^g~O&9#@<|XneiRJ>iB)(_vfPaV{`<(vZ`r*)%CO+AcB&t!s zob2ZEAlys-h(&ws&Q3_A1y~(pjHgMT9R{F!&Dsb4$5;rsr~u#GU8H61V-z$N+y6a+ zAO6MWq~%#$SQt&S!3p>;^To$8eRPd4^?|2ML9=b_>M|q9)CU+|9HD`K$&s7P5%G>* z4!HFvvrSHf(-({p_LM&LPPxnuw`MztYM+>9|0~{WdFCn=;s_GS-23Bf>6NK1&7%M3PgZbrlv5?wGWD<`JUhyeVj*->F}9E{+CG{czpw$Mu*}{yi-qiZV@2C^WB9bKr+S(QR1JO-lEh4 zC&x&R^yL(mbBctq#`=5h>)7>2X$vGJMX$HM{{eZ;wp4S!o0!j&-88Vj1${*1kI)Be z`V{d%qW6e?a*R2YlNE8F67dgcN8GrBr*r?$cxwhfdB$$O`bN!Rc5#Ti#0u}?pjZE8 zzHopGhKT%A=tIBAb@`y{7cc8v#F0jzIt&|JHqqR_dP@F$IUIU%V~JL!$<}X+l5+B7 zjS6!!)n0>c-n7e1!OXYV&z^t17*Fs&+H}-DA%z2zgTu|H9w~28#;Jx-bHNaAf0|8EiXH@3pSe`}4H1*qR>T&~ znpb-Z@E4_cO*!WxkR(F3C^@cY5A)MYs9Rq~8~d$N=s0M}3gH;$Vz3H)xHN=nh`lAc zQ(B*`&u`sp5Ynu%j)nnQBekC+Mjah+7Kc@0{uGruW^{Lh3V#|x>w(AY9Bm0-rt!4C zsWQROEJUmQEH`=o$@3Rp5Gh$d<8)sUYPf~1;DZL%ObmO8^Yq5ZQjz8b^BVJLCwq_6 z@&%QI0mSt+dNXR6Bi%ne?;Q0XO&t6u>0R^K|C}A*2jOd&!Ody)!%al|DYg3+A<*4h z0^d*dxw(%ee=@kZH%0lEr!dqK4O*+s*n2#>v1$a}-7S@)l(C-+^C(X3V=+7#X2H zZ~^G5@uD#iQvjtcX!DsHyARg5ggv_L-oGI77Q5l94FY#gq;1Xt8EUchsQs$+E%tjR z69B({hzppUtAg{x`Zsg!v0w+I z_-_dlq?uMPUJpOow0M6D#zgn<+Nc1AE+x(YVBis*w?^^*2;0_p2S-lohZ6yx+!Ipp zqtBbsJ4bbT?7K06bhX05$<0XP(MV+JckQ8BO#fmBY7}jzXmo+kVy~=U;-81ECiu2Q z{Ezz7D6GjFDg;tR^o4v>;M1?BVzMH5E>=9EbC}rjusMPo*zFGoIr{gnJzbgv_?13` zuBCT;#g$&MLXTU+$ZM#8BzaYB=jSMH{}BJkG2xA{kXK%OkM|1Ih_6;3rMtU6|A>_K z=(8sV|N8gSM@9qSl=$j*@$f@k_UWU^9whdFuNL~|1#e-qLj_i+Ur*oRc?MM>3P>ZKK8NjM zWH!e!?m<2+$~ zINprEXpiOl-MRDp_JYX4IcAIcr*4ihNlxl>@iG}w!(vPku`}|V0wb3P2k;`~iK7>xh!aDJ-MFRi~*?NPi4-)ZW%a1tb=w}1c!oSq^&nJD09qt!r0r;!E z6_C@A9$t&VM1xF*vAKT5#SgE{>VgCkDo~^Ob3Yx&Ga4H(ZW>SPn?{6|$*Fqj6JAY( zLAF>9fNv7P(1(r)j=QaID{Bd9SwAq37UcCMHmotc&AG{PhCnxm6ZKsD1=V8Cr!!xn zS0A!U044s9SU~@Bu}F8otRckWDvE$~k8=-F1+cM7gzv6;-Od^*_(#4qs&LiSzv6JK zL?b1D*^DKaP$OTi;mxZ{*??c;5j?(~$MC-BFDD`5i^M0FNpq-Td-}~pHHZbwjFw*k z{uWv+$_H)X>j_g49J;W_3nGUIwg)fImFRZM55RbH3G`x)hNyf_4*pkrwAIA0tGg7^ z_?M{4g7fP7UbV_p$7u=I*Y$~|`8*qhhi>sYT6xva^VL)t{4iSXxjB7!ddrOH%XL)n zkC-&_k2Bkq9~66~5kJM5AsAR<(OX{%8(lysj{4RYvYPm9@d}P84OHz5)LhS>Qn;^)yrd&& zz2q`^z4)+`O(dfTBJjUP2r8C7gRokBK%ht9A0Q2}hI{i?k#BKk+Bcs|c?-h$Up(MD z-)d|+(3JpS3m1mes$E9ui~p;S`n*R22EO2@v#Kn@bLA{<&iEF`4|~L%Kpk!aNDUQM zYlJDX-S110h^zE{yg}(^*bNuD0?Q0Fa@n|))n6v^JUg4M8Ln=9qYs55D3Tg;ebt+AN=b} zS(}W1xbxv)%5O4#!a5SpX?V2pJr z@W1pGd%W!y_8c@Wu}lwv#y#5FpAsC3f#N=e} z9xK|K2zXe}Elzo7{qPa~MPDZPXII^qGkU}kjQzeX_*MhSYZPp2))qsa9LJx16 zC}FEhtpDEoRg;XL&p&y$mn>(s@du61A8o!6K2sc9INv=iKeGTHd(?FW$UV%Fqzvr$2!sxwxi>ni z8ojhMp2a%s(ir`0*l-@l7*Yzwd22d?ISMtqD@a?=e(E^m+`^Eqed2sXbe+JE1aD_( zeZhbA=67iC@n8EMs{C*f1fxRzVeHlyRZ3qFzQsEiFqQf5H@7OuV$9xcmvgTt$ZKr0 zY<@-c;z9vp+WM7Ha00s!W%95(k025dVd^vZxnu!2uO&7dJtNx{>~q0I9^o);(LK8b z=})@m8S4c|q{PlI?)iM{cH_UR*NJ2?@B%ldW(pn@z38vl@XZ>U+*`w;Owry+HdOl# z^WriclRbLMKV4`)D_4oM#c|q81eu_L|K`q+Pw(<$BpQF|Yv8rVzb3my-q9jK5LY)x z7uCwRI3b;!Ve#Sa?xtH*dnAi@{EH!Qdv>q8X!iomMI2i!UhL7)isf%T{^3Az9CfqX zy1QUS@#n85szBeOi@Ugb`E-Q=<1hN#-~RUH%I6-n<;|82c<^D5)7@dn7Fp!x@L;#u zmt3BGvZn8=->r6cl~UgGTWsD3y5RqU#?`fg#Eb|RfCjBTRBDZCQtNBBPq&agT(|~f zSm3QsenrB}?M!=-(NC^AwrCMdFqD4lP>ozW=fw#1p$0K9F_t?w162cqhZvl}ON|6Y zV^qv$_jqiPV(igbmtFuCNxK;X;@+JqYCN?!u#A?uFa7Bp;9pkdCzJf_U(QtkeRJ!R zUxp--+5hyi%O&BJT(&68YJ|1-Wk=ZXEfzHp&>nOI=^NCc^i_K1`w?`Dc0|dMQLSN% zG}^^EGRji=rFnjI&#u&U)QX?)j8~LWNs|YFn>9Q*6uu z)y4al(Sm$*-lX+yDtjntb?^_Q=l(qBdvwN5(fc<#?JBnaiXtS(7J)h#dqgc4#v=OF z24{AYVF~}0;75FOoW6^n0{H~|r~}*{-Rj)zaGzfAQo!?c=ZRExcS?0w7jiHqj@{5) zG(j9L;MtwsgHOKU!|HroKU~g5(rM*&9vHiZ6+SUP+NEb zjaJOWs*LVDhee`vJzF35@*v%O_Yyxad!BWYJ+hL`cCxx2b$5s^Rxokw$sA=XboL|K zRtb`E3LoxuDUKWWGh&fhQ_YhmlTY`vZ8rD-zB-n!PBzivJ+k0LH9TiVEt)_sm+`~u zZT>gYw^*aUN3r4-@A#{Z2iCswSzU^h1dEOT98Ehl3@Iboq7_zhOrw$CA8%U{mcGIA zr)VdTL^R-LF9{g72;LUEswI5Z-O=wD$vd;o|B4c9l2<-ra_8Ov@7$IyBcn&Z*&G#6@Uy!N za=||nhufQdcOst|RmXwYrP_x~dmnYfkP?P&_|X=I@r^)&Zne4Mu|)T5u@B9;6bFRB zPsCi{(gpuYm-y!K_GXjCl{$n%72@WdUq~eRiSj1?tKA9~FK+_1u>8%$)bIk$+u{JW zv{jtZ6BGQCBmW=bU#0+~s#zqLzTS?rOFId-i@TDRXwgYllyHl}#^@Hl53hppFW=wY z^O*w%|DWD-$|j@M=iL|lGo;#E9x+yz<(F%~zJ-BGYhS`KwbD4Z($gm(ab*icD47P&IB+$BSWpG*$aX< z7eGoRKGhaL6G1xFj)pnH8Bh(vi!&yyM}EKbeLkzv`{?@^A*}0HY+)8*12^NpdZnP8 z(e(xV0*1_80sx12Aq=LjTOPHd{hX{O+Xh^#NAb9{)AWzJS`S z0&DMF=4fhdp&fiqNYn`1wxB(F+MfAgHrvQt#^tBCW|?XLqyTmTeD)7S)zs}ad0J%sFC$B zo+e|U z?!shLV2zc*n^yzx{p-J1t6qs0#5m&kA9aZu_HB0lyV$3%wo%B7dy2Qssmc*Wk4Ka` zv8Wki{1E?7M?^WQ*)NLH^ydiDhUnIV?p~o2VJ&sHW+QNT;q}us|L;C+AT@M7k52)3 zzy=P~SkWuJb($QC&(RICyOj%`r&?{14sWq)R-*sEIGmWH04NxwYnWVeM=8MnVoLn$ zSy(VIyt#aVE&x}dU91zwQWta|Jz{akdvR!SKO@z8?s<7eV0<{|0-W4oao7ed%b6s8 zc;5;*DX}h7`vP5ywE#Ur_q<17`5IWU!Owq-m5UD-!RgLNv{0tG09`7u1AZ+3VcKHJ zd-fr>#TqyFrVq^DqYQ{rj1l&DPyzg-bXb+ynNBgmPtA1jDsAE)0HfVoEUu+)>M|VY6dUW-@Yn4v*2Rn@ z55cpHgIJ```VtfIw4;2-KPrIvnjHsT@ITlE+~aJAF$jxST~v8^5$7|U(Wl*0QsO_+ zRji36a!e$v%O<}G=<=u6=iw}agHrKui#2qZ!=0DtQ4x)AFCH4bA~{90GsS)}av~Ul zZmxY03)(M2l#D*ZM0}4ui8unR$0NF!TA!JUhlhR2SJ1O}AG41gp8E#-yV9Nsd)HO|(9=SYnZ=xM)jobGZ7(tQ>O_Nn+tgyG$z#T33Fktw3| z7LEzlJ>pD&>VB#zO#0omT%L$1r|4#x-nROJrOOnysER*a7Dff0Vf-oLu~338eD8x> zz>f%4hvjR$>f$Rr?=xyj&BtGi-mC}M!2jaxo=Gt^00Y~bTMqUpGfvK-#G({aGGDh% zf$~lMX>)Xq-FVv6=Qj^Gjfm$D7mIdRP}e?@T)gnXfPXrhd1fyb|FGZ*TNs$e_T7Zn z#*Tg2DeUfG1n?J83M$RvXblrF{iqc|($}Q0+q0|Rd$dm^gpfsX7Lewy#5zbSX|?s> zCzJ?=w|BJF=sMFN9}(oEm8qUzu}~-#;2W$53|aePX0x6A49l-s>jM^YJ9~zu$iOR~I+%kFuQD9BwswDXQ4omq>(DHL6tr27bkY?=vhsIxf=p57XXf z!ML_1+TKJM!wi9L?hQ!R=_$|tq}hyJzv7UA&$Ir?Z*yvCEgx87EKr69DJrqeg(;NBq8qY zt?CHh^i66L;QxvZ7oRS{X^=H&jmW%2D4zJgT)_9>Z9Ug$78hf0=koM)cH$xN8Ws<3 z^JRj+go^1YIjN_u$KJ<0yMwWZSIxlx77Krq+gfV$!vp)l8PF}ZXX*kh0|0wOJ`VE# z{`bFMB=|V@9xiT)U!6leq5)F0MY0A%;9-lUmgY@NlcQE82)bai3rHj!ZjETp_y*^^ z_h?NV`V1ZEZ*G2=d_Wm)Q7VAEwg`TG=xS^S;F@IM z=#z+eE~t~`xu_Tq#h=#jGJAg*UE(~M!}rXcZ?^CPfd3X}Q1C&>R|qt?E;KtaT%zKk zQGM?t9}JpQ;9(E7dTG14jJ$iX1GI2w_zVKMj9Dx`_lXhm^DSHeBtER}r5U3a?%TN? z4=<3KUXAMN^i7YuWWkHQ)#kMcjaDrBinJ7PqMm;<$!_R_E<3`NKxqV8#34uDT*36g zN$bP-)!Br8$OU2}AY9%Gbk#0EcPP%nl4%HHeRJ7F6x^+b7BIZhzlMxyYEnl8KPW}2 z{AXV;J;DPn4%IOJAKsG5=f9qt+=pljUtBnXdt%*Z1pi-A&C4M60(H#=~_7<_U*aZEE)#QBWGx{jd;@OS6qK7kx-KT_sllhkmbX$}x zX6I;(ioc>b)h_#DuS%rAqBYL?*kTP)^kr|JU+TY~UOFTK`8vy_pZ0)=vbYA4*8am~ z&u`~$uW#pWkuf&8G)EWAbhY*P?z6Rd?pI{TPiLSl45L1XvCY;@Y)1-QyxRkEG0t?3 z4y%i>j))SmB-LeSz)whz^KI@O(tTPSpF23k`{rHqvx%p#k%l}>&$o9EiC#<-{=fIZ z|8bfu=E9w8MDK}*uV@MQjHOZ(fAtDDs=C^O3IFgGS=3)B(A5ZpimU4&WOaCqajW67 z?|uKIn6|juoN{bY&48I{+Y|f(q2`_u2uygyfu+T(pYr}6arh@66kQ~{wm#%*eWdYq zS~kG{443rqZq2<3@^fPsShCV z5j#vvln_7O2=JF!#YUY|5EAiaV2{4;{n@{P^wUW(VCE@{TU>Yw_(28ulOQK{ZGD?c z;=e|ruSDBG;{TgZx~@xBsH%D%sH& z()ZqB9d89XM5F)8nP&Kh_2ZuFFT3m--UN++hk$?YZR}@X2z|OE=*uqk`x~J+a4&~+ zGYxKdm}6TX0zJYGqza$~dc?)5qyUC+g?L zNtRHm6zmqoE{y*erMcC)3F>9L}}y0t$d9xA;!6y@BUaVeQCFz zh@b~An&UM{0jg;={uw{|iy(fEaHtq-4o@!GrW+4(Y74l}rgtzg!lc5VC#ETugW=D|N}Qerh9 zo;D!hAH!Rs>f0g@f;mUO3IqO;1(zi!pJ8O4eOsn5Q~dTEii&U&<>H=eyo9Crc%KyO z5se}MI3G7hKLaXo^AVa%2lX#bfrn@jM+I;kiT~A!Wb)+8UKm+i>i<8R^jFNCe)Wu^ zC=%qqSlwsrCIhiG-2HOyj@-N};Tc_0n|;TmP!TmC5-*S;Sxn?nh67FcPN;gX%PZFqRIqq&K-`3 zO!#eaW76oow^JNMvqji>5lxGhetuZv08H_RXTjkb#(azlfRv~?_*|VkuYS4D1^j$K z1?C8Y^Iy^KUbS@AM5k$>0RNZEn}_X2b&EoCkrqpZP~i4u?nt@1wtP5CefAs4_h_0G z0r=VLT*walgUH_R(|VW9hcvTm&=IM9>H?$vbU^qOj*|EX{G$Tc7VwYCH@mZDN>%`& z)zLN31uBf6DRWzWsBWCzWA_A?&9N0_ieu|m=S|gF68gxWP+R@HoUMsS^YTQAayrBK z*(H6z|8dsyxwu6!e2LArsV~HhgX;!!bgOPX9exu%7D@koMh=T)Qw#8(o12YGw1_Ny z(QNHAM_9K6RR`+2=II3*{tMIAw*uV~jnJ@N@xyALa)h}H%$5h|W6_GfkytB{odpcm=9g-oh=0e;(UUq{GM}4-)@vAd*@&!Vsn;VCefC&GC z&)nN=hv9G+4Q@;DQp3JzHPrOz=Cbcq9iB z{7ZBKlqkW?URDOiITA$APY8rAyxJpCN)`Bu3je1Ij2f!M{oRYOSo@5E6ckA#zQSby z^1ZLLKV!)W<}gA{2M#p*UoKn2U%oEG_)7)S{!?xEvFKx#yQOYFJ}ma)|(PICqpxu}NW$j;SfyFq$Ki8p6f?*H{96yq%)PmCM^kFvaj|oKOmi7H4^R zC3a7gw-PI0>E@;6-3{%cM-Z6*?iVa#`qCDyE@Uk|asMsS)zv8s@I!DdvNrCIppPhz z@QBezCoR#vjQyYb_ck(sRLS<{vh^!*fJdVO(4(&#fA$MrU*RtK5}d#2KTpbx_~Hfh z+o!7mpZ&2y$s*C_h_2cQFsU`XDk@N8`C&_lW z*CO~4EzttX2WeRXNs6eRWmIUNhF$Ge<|x@6ku`wH z%YO+D2^4|uGaTqwtfc(S9afna!`tI+CvWOS4oM??#48nYQXrE*i3F!)R}GaJqvnGT z6}GFjLrYXs^haIz4+eD4X1B`})>x`TYbJXZaxn?9oeQITY&WY>IZUV{%4!abUf*9_ zU~JBPbXh7FEZt+lC@qpC@{DDyJ?d{c_ZGo_K5mWhBk`Q$X^w)nsPA2bJ4Ivv;<{zC zS)0654*?;O)vhO>UV7hAgDq+QKb_&iobT?g{Q0eJmQ4E|#D6m{;NNGzg8Z}T%c0cK z)AmNqbpVjiVu>W@n->%}A`afbBIHyDkX$*Q?>ARvevTs-AdE?M9=)6gL2P|wi=cPM zZ%f2ix7bG@%v_|8o-&4J6MDI9jLkSAh6+}bfe)7&K250$*rKCfPTB%gAPs}VsCY`U zG{Ilq3Ur%wc6IDp9WmnXnk`9<65Q-y2Dx*S7Rv`~@3QAe>u`k+=OCB}af49jdlWPI zfR20xp$J@-;7{ekHT=y>X5Y^@-QztI|9ox^5mA9+3tz1Zu!wI;L@c0d_Pd+62(G4h zJ#jK0_F{IHINq@Noq$+QI86K?NzL9zppt zhV=NDqtBk6E>k?5sqyGFGT95>s*MR))t|P$G{=4T_cC}GJJ|*Elw!g;YVONPIhgqu zT(&+m`=Ceo#Lc=z8_x(Jb z03@tu+B-+*Ki(>5hfGmJ1iISRO|e2(-0rnHVmW$Bs3-W7xH;%u9myYk*LMwSJ*Ap+ zL9rb}j_Ld6e(53Sj)L&li{3Gew3FgY?U#LVbNOGqVPZam`Ly}EI28o*{-Vbj!=nY< zO)0Z(@)?I&!Bs@Y)QVScq2wXVnIri{b{Ez)$0vuqFxnv(FhrXfLaaf>hG>Z_;1R?u zS}2ZSsWH?OmKQKDQHCA7)`J#6&Gu8I2Qehv$Lt&*1a1y}HTS3K@fH;A{W?*LupdG@ zwpjZ}su7m2zfhoKM(}5Hc?ShgHex6cP_lxN=!tWZG{!u@H>f!myX< z3&OVZbC`_mP(xjI1nqvU-WDbOIZniy+&)pGMw%Lm;HK!J=jkmhY7J!s{HX$PW9#i+ zssPsP%V{82Zc&1M2fyy~h+=h$hAzAKcGwCjTA;=AV5l1=^&WV1-gT3}&+mTxSCYgI5%L9(#q14wvjN$99jUfj zm<9c?^;ITr4hHnA>fJG@%=RN=#i;bF;=b{BO>cJPhj&i^d$iy)-n#PL@1DyuNwDW) z>@(;yil2G0u1x$hLJZ5?2ZXCBRbYv27hDXN7Dt;~AJg*NF=z=VvWDxwpic5y&+Q>c zzsrM*7q2gf?mk6-vtnw%V|1lr+@`43a>I98&bLe4W3f1IHM=0N_5S_SdD)jkS%$qu z3raCH1GqVhvR(uJcE%6Y+eVEBmYHogym+sLuH^eFubAQAV@TZ%8fA$O101vuQdp`@tB&JWV9PK^orqa;O^I{8Qg%zUKV5!RTs9#Bks(Uvi!R>!BR+J^X6MBtZf^eHeiVS^NXDpyLu+4PXYix9dtX{cf#2$-YVr2jA7F(b zw%_sgO!z6fK(0hvCU+Jar-*;x^BPggZvQen(5+_g8dG{Tu}%RN&K#DbK#D_Kd|xOl8vU4VXXJV(00 zuv?hW;cdUn&0BRq$Rmyjc(~C8TeQE$Fc+Y%CnZlnKFq06pa83jqaY|Bk>4Pfg*>6%Y=0fGOgUCiSx)&lK} zbC3Rqhf9c{H}Q`O=(mSgQ3avu210(Q&s*OooDk9vhj<^&9I-u^-yC%?u-SoqbuZi= zb(KdP1XsMPS5yQ4Yk2niTf;N>ANy?!;DkTj`nO6A_DwA!A1u#jRJlKW3X1LtS`zJS96^meTNGKp!ct1%K>^BT}%JJ1}X?sjd0sL%yY+MCPP&yT*_ zAB1D)h38LG@(t7d>Fr>D^Vv#Yero_OAPLwvQ?Zjh!e1m~u@AEY`x5z7>mzx6z>H%^ zo7ZahXu08slPL{vi4X`aK=dt4O7Z&_jy`_NYry{)JD5b(G13@2Wd?m8LjV>9F(t?iKtDe)d1^?U^aoVl7yr;kLY$pjX=#J*Zjxs;$by+XNUG*XW*m zbRm9v*WpEQC0zD=re^SjAAZG-Y4tFFkD5Q)k#WmsxY6%tAoSHY(>|i-@aUuZ)$VDH z0`;d05zIFke&N6p>wt?1hBM!LylwEE)qsC?qB_S?^6Ew%M9@MJ5P{~E$Y-=jA7t|M z%S|S`fHdHfBm4{aYt#>?I8R{mLSc2KcXuEy2_E60^kIt{LK5Qy&m}^mE&5WHczY&u zFMX|;VXu*lBubNN@JC!twliAY{PicM_USD=+!-b>cG;s_XOF%QBx9cM{Rt<8K+h=D zJl)SGWAZmQ{Db);>_5QX`^KtjWNMmwANh;bEyDh4AI&wuAWe;sJlTZK{ef4=0s)Bt ze~K()m1Y;u0Q9TcyRbEa;Tlz@sb2z4QR;$Q(0m$vX-(n>LgkseSW#@u5pnwN&xn)1 zTzRX1+}ktZQu0=R(hoJB3?xzoRulg{OaL#DpdlrU@$&C?tKqWu2v#xIGX9?~?C8Hl zHQ*n``R?U_&uC^oT-DKdo^~!w1oO@a2^&_g8OfgLGU+l>VETY+vbDdc!+gFXP~k+4 z9eLaev?M-LWj50zHn}vDpdv_bzt9HHP?xvv&D!h8>|p-xHn}M_rqwqp4lt%@+ZMG* z44<*HLnOI;xsD-)okIP=Ik>IX`f3q0gM4zhsDA-7^UWK!Gw}F~y$KIzxN8*LE*i1B zd3*1}%i^GSixgN_rj2c(2qj$h(O0ea{^)>I1Q7md^ZvB)|L)T0=a2TYVEjLOWrsFL z3!1xFJ-Q)n_Ub?LMf798yHJz{T-X@A@o;ffKQUbUk_8AHoG7hvOp_Ru!(N=*;sSD< ztJk?0Gx$$PK`dlk2Fu68`Lt(DW-TFyp)+fiH{uGyqttVeK<<5@8_C^tqU6mZ0hY8_6Om zNr4a0^N)LbCd@28ej)L{c^4Q%5||&37#X~tRcsboEIOkI0@xPz6HBWrpRp|(iKNTk z`-4xPE+ReM|L}8cW5HqV{V|E){|M5va465d$yTsu{Hq<`1&!1L5djPVqKh-cTmQD8 z$>o&98%X1ciM=JFDU9%RrdMk$_iWLWB`IUl=l*;)AOSF@h-WVPQUcF{q6V-;)g{Nt zOh*@cO9U#C0y0WVg>l0#9RG&5XX=763RA_agrDJhJ{?pX=OHRJIz8a9D3$utMtC#n zCl?iXI1iNyY`x2#q8WIPMCs_w`wRR}*9v6%_UM#GK|Z4>stZ=9`JX{YWHDUKe_KQj z^^Af(&SR6o6)>2crp=CaZeH}1%FHh5-+aXM+OHLEVHt{J*TofeRBt>zJ6z%?NN0}5 zwmDoCS2CT{FYGpe0WG+*$t_`;GVoqvy-YMa{nXPpo66_^Ki;0n1*1#QcWYrey263OckMX9+CRV$uXGET#Ua1se*>u77 zhrT@%8!`k>Sn|;0 zwn#TXKKBsyjtT&$B@)Jr<+x0Gq|b|805?qhuMsK;Cm{dt z|K_)6rr?;);3!UaKm|TyISKsp6sS51s!r{5Y8eI1UJf|I_;bVc&1Fx$3rLF%w!eBW z$*qnkmVQP2zd6Q`Ada9%6lwV~m2@>R&YQO-j^X7ccd=K}7hJW69W5BV44V9Zx<4)P zKSt;OXcsU7ljgL z*651){y*{UnJretn9dY7VT(%6!>zxM-b%NqAzUV2`wc7!IdORQLJxmJ*6WX4_TtD2 z4(J2s{nLTX>S$qeJp?zA-l6q`0omN4_l%5yDXfw8*GLt?11d1P*fK?iJ46H6Eq3yX zhA3ttQ?x7}#OGTy;Y?0!K{a45eE=^RHTzRQxLMccv#youImZIT9Lsh%9Z@PmjaYq( z1wMWPY&ORm1V1uaiOIa@4A98n>E#5u7% z1i=fxS&=#z!YTQsuTOnvnM|M#freYz--P?soy zC9~N2o$Lvlv?>hjqTnUoIstw@V=Zj!`(F4azfAmp`PE}cbLp$K0x!S zal%rP64cQ(ehZ}v@N*#(pz!Rnsv!~HyP5-fd2w;PzjIBcPn zn>(n>FSzX0K*bKESxA-wq3!f9k28VVq7_;9hkN`Lo@03u|EXwzJY$$4w#UwW{4=?7 zBJk_YSwuk@ZxmOOHLx0%D)EoX+@pd7_EyI~OW)SDI(a<8#qSaSGfoBxbR`AZ>Ste} zV%V^kkZWXv(oU>}fr1ku!e%PkDPL0K;_rkW0H) zNWZ)c2S4EB9CNHKKD=i=iv6s*S(ygRWOBDJ<)iDMdcZ)al4PL&P`mIdh zVUD#q-EjAovHY-k@lkWpIREsgKmFw|f0<%OMzTnpS?y~u@~uzA_6U{|`~ZnD2;rZm zBZ`Da5HQ;u{8WbuntP6<*}nh=0GZd%5kLZxwLfnJ{FkU9fJTP>j7;IMd11bK7OdD^ zRACm&FT3oA2^9k;uZx8)AwdSGS_QZdhH-HkqTxMHv-7$qg=ir^6-`4eE^kf_ekPX@ z6vpV$SZQE?_sS7wA9WZaO`crxt=58Shw?-455G{2zsR)o^}Q|j0)QetOSkdk-Z?~V=fkUA`uvkg>cC~Uc?W(HZJZtX+#Ps>uDQ3; zAAX%yntG7Wm(rlSd&w3r5^ZtT!4fZ?(<8=cuEwF@N-zjZH0LD#cNY+jSe-#+v%9hx zr|kb{G-rNA)9f1Vqee5*#l9ip#UXlizJQ>?>gI(BQJVe3TCnz^RQc!Mo|zn;dq+@D z3;*zWT!5d6F#cwz1|M1|*J1*tb9A8~f*LU-)2ZRI_aF6wR%4P#;Dvtb63d;Atu=!dh5qSXyQTLkdcRvn;L$3kl;Z;kqD z>0Np1K0~UfiOzeL-egH|mk--{w8#>5_!qjSv&A9@%zr2QpxS3QigtdEZt9=UB>39BrklZr<&iRMq1n@b&qll+B8I~n-SE~ zfPlZ4Y)O2k8B7^9uiYd*5#QPy^MvvIo8O+9L#>7x z(iAZ~?jX)Av6r*-7N!|*8d!_`V(z=ITQu~xJ|WUbkcII7FzsJiHs|KH;H z`V4OelYb?TdBYUDWgzThuK&O_97;pO%8dKS|Z8Gd(X z4!6n=tuHx>nvLEN%}Y#Yan`fi0K7m$zryc*Se59~y!dPTm)@TFK1~5N@eghn6Czmb zP?jJD3FKfPf>^^JiQ7zM_gV&`KfKQMi0_fLY-j+o5!`0?%3u}g0_b44p$M3Nll-V)VtU#)MT-FN2as=@*LK0j5@P8!$J5GsP%W|= z^6=zY^KajnD`YR?jBHy+oKQ9Ry3@{~qh$ zvmMhGts`&}B-AhkhgV=9-j@mwYqV^oM_%pIS3BIbuLp9$Y@hhi9|4UDfRKw?ZEwB( z#YTIKnh&r{U=P3c_ROWH(pQAiK;4~!fg=56a&06u?n>HSM$iR}MmPpF}1TC zk>*9et*&gWfqY0J7+u1;IVQZt8!Z7z4KHxP{Nfm?x#qe2L2u7wg0Q!|9k?N(;9m8o z$#y;+ga}iX_|FoAp7_qO<~%6t%!j+;lNP6-?}CkiaW!%LPKUj{{e02MqjhDIncw3bEOZa<^(@GWUf?<|%g{lvcrCyplGBC?%gF@nH`P^Y>0u=Yj+S>TShz97~jCWP$| zHzTE(VBi#;y4->I=gX~b`YleUMlvf-{&Y45502Gaq<%jMyIKlG)BtF66HY)%|f1wcEZk#zXg<`O6g?-43FfBrKPPyEAMxFnh*gJZt)8Nbc(vbiM|g*6h1V2EJ2 zzO`u`=c4)SS{CpVALR1hi~P+Mm=;T@CBnkNk^JN}@zpuq8ZJPC#3p=m=h7I}suEsL zGAg}gu6=~VFs47^?U|RyiIbz$|K!r^ z9tYnYu^YV_jgM&Z5fPAMw5wyfe z9aZ}x^O7gkkeFkMV$|KP=QY9C4fAo$kw%R*#Iz)LM-g-AJFtXBpbMNg$MB1DXUz_! zOL)w2c*O-Rm`5g+_-A%^N0o_zv5#{S|6?o?$*eK2!y(NP%^{mfxP3+w_%n8{rLw@H z>Fp%gwESx<6HNAoz-)~-4l}9?V9@BBlV8!xu;0%*(yxm9!$}{UocdS9wm3oPJL?6Sc>;D7d~pJ|*-wpxz>#)oSHYb^d&2Vf=M z?|{Cb0$>}-rnaJMB8-4;ULzjZBBDlpkhmy0yhh5oMxT$sug4*GbUc^Z@8SDU1kuz- zLB)Oz+kW&V9q|7dXL6zijI+5X>N4idyC;rl6l7{8EbS0|`!(`ko^`mV3n?s7yG8|m zqqxBac0-Ipj`|6ondy9{^99o zuzj=P)q_Ct&7GpFtt+!zqJnSILHXRMyDu2X5`pHYM)EI<17ENM5WYxW?! z6CcqYtMhBD7idyqNVVNdI-&(d&sw65I5o`hry@l!T%H;clv<+2P7@BfaY?Oq>~ud2mE*r9&w0mJ~6j;_vsLEM=*h%IPAakY@4BEBIa z$;rVRKZK@OvO!I%qe=pp*Pp(5C5Ru+(Ic__+UaMa;y(7A;N2Pe5lstBq}c7=9Zr8l z@~gox*&2b?b{3ju=R{Miwilf!;Q3z=_lHX~Vg)8;b~857*VYFZqY+-cnsajnRWq9VMS+Wn(><%3ghyMdIqDMd z|M-Q|&kh$Ws-qEPJ@`;-aY+wdO#m1;!A9KB9K9kMSaUok!J*NUV;Cg3{1I=@1piEJ zjujs!C_p4`qi2)usy<>St{+ePb}o4s#d%`dU!%4in{Kbxxo zkF$n3I@$+Ci>r={4e8$Ru_6~c>;eGE;viW(LABSu@{fqY30IQyu;!R!}ux^_p zpQ0SJnXq^{{VnpK>a(h9?YCqfFJ&77DwOe51+Yg3jAaD#swX4EO;SftlN=|*=1S2Xr=LChgV}SAgX_rxn1;vGmoV3p zVb8PPFPr)bKXM1}O=m}iItgbT(# zz8xd@*AHRB+^=yYa`amb9z4HuV6l%#X)dv@w?(mzdFfAcH287P7I}Aq>RrEnkGONb zIRF^Km_a7vC)3&Eos|!Fl2`-&fA=q5HBL?E&a1N({Wm#}BA^9Fgg}S0@+~UNH5TK> z(-I8Z6>nrK#m8fCY^ zc`mUHGoAYK@7+t-kdVB@ve6WlbB-=4q*Gn3V$7l%{fdL@Cu;<~$i2iCjA~QA1@XNe zq#@0Ag);t%g75{qD?-0t+-q-_Qrv44ol4YZTfCuzg4mavb6BWisCyg;1_PTZu>s$5 zFk(ybG7Zln_}TkV87P8^>IJf#UBUn`z!oTF$A62V%MT}~0HAJ;{+}97lW!P~q_#Nsyt&*u$Knp)MAoa#b#>IimoOxs zIE5=rFYt^_H~&^~w}`rH9|>0{N|@qYoQ0mTX3b5OzB3#>ZH^NzAgSR9nqLl!H4v-! zShB~AybriW(X80hO^ybE^c?NnHA2M8c;@KCyt#xj+VW5C{sIgP5+uxCKAVkRtU5z# z;dZ(CH@^o&;+tKbnr)!Q=+5H%$tlciZ#8=x^5_r_7(=D6a8`#jQ(uX?yI-sJv3=Vuyk@r+oE9p%~F?Y6x`c zD=O8Qbuwfz>4%$pvGV47-z|CCzi|$H=3Mkw?7-ajwJtV*H9X@QuD05dO|w4TD6%2KY z{$!A!=d|Q)Qx>IPGX*gC3wQ_yiaWzUz5a`5sZmd!U6;6d6=OBk2rq%0?#!3)Lvm9_gLGyxx~6eRf_w7hrIt1G&U+UOE0gaSNX{Lbc5n7=Dg+ z@zus(7eBnU^Xu(BO^^P(yV}Py@E_&PJJ-G@Fj{lTgNTB-esxPZW4^f?JTaWNWokgT zn5viaY7~VKD>qpp{9rnxZSNXe|574Ao%@LN{bIwVFNdDsn69}1b#h5(h)8U*?W!*0 zFcRGgGyX#rV9fdSdn_N{qYj3A8C$dK#2{o4D?G3Ewwqf5hS*yK%$~9JdvlQghlpFk z(tKBY5N1(q0jgsIp0dUHBv^g|HtA80VK(w-Ywi@rvpVpG?fg(9kEL!}77S)Qci`UKJaz$O=_>=!6owkkh=EH4oI@1Vd2|hkj^s9GwBY8hY z=BPd=TU~FF#5d;-i1PP~dy3YbYCXkXEq$`EhL6xA_P#9nh(kD$IHDO&N2wuAHc&Y9 z8v73Nx3g_awU5}NIs6f4;w?7FH&ZfXwP%?kofJdHw@Uuvw)Pgmf5KI;w`Tkg5OTrn z0N@?}lfxTbc^ShP3H9J}!$v1@)0+-X5sVGinkjT)aXQIp^?B%bQ1W32^IP2CcyrtQ zJvykR0^Qt|nkj%;oc}J?!Oc0;ZrU7ZflqN`JXaF8plZJ+*~#w@ zUP}_qz4^+K!0;(LLQBvRRekQ0{Nxd!TBensfZi#RBRDpNeocm1eltXUo9}1W=Ox_T z@!0fsUbj9-Qj^&}y4wHEd#2zL4`S|f-&Z37t4AywJ>tX(fCs~8S9F2g9*J{aGyM*6 z5B;%(tzYp$8LKTbgW00PZ9mUpenfiCb9M8Z1I1gExEa{^%WI}J5@8JnIc{%@U)9P! z$NqGE&pnIF3zKca-HTR8bLx-lUtP3cBGj2&vtqur&qHSuBcH?C-+fZS6nZxrx9{lX z(UTK5zMq5gS6qPFg0UmoV}{rdjuza!#4v?Q;sS25YM}8H8;2wi1^23h8H#w%{$<=P z6ah&AIgtMcihJ-%3P0rj#mh9+VUPZV+25>&Td1d=TfIp?A9RZ{6s%)B^N-d{SBGIh zXz@Og&0c`f0>UMN;VJyu<$_y~o-Q^nZ^pkmxMDDKta#=)7o(lgF0ML`uAE5O0hITe{X5vU>28o#NezV($1Ag>wF~O)Mg4G%% z!4U-!Fs!i*+8l7|(fac6HYixl)RsR^-1(t6S6U-T+iZ1LYeb2dWRIF8e85oLoI1&d z%uz|6etFHbMF6QAUWT-W!xHJTDO@wG;6noP=H(=i!>#hp{Cu(fuYEO)i%U3yDLl)) zUo(uL5NW2rsb4vWv#Ar(j?u^na_k6LQP~c&CNWr?kGIj^EBM8jsG- zB%pij--L(tH>{Zo6)DghWR41kOnrinm=bayk@V$dHDFUixG+tBk{oxR(NrQHm>uT9 zd^jM2KgkV-&3JN1=*tl6Zu;--3|%h2(s(oxeFN(z*H5GZ`I61MHwd7!w}@kT?mKTq zz1?SHfFvOLIXo#zj@!K#=JNs z(G8QgA^|>Y6gh?6J@ZFYb#^xeF}69%ye;CB-zjcQaOs0IxUHWEb*Z_0s8%bunyjdX z2l_aOsA-@O;Og)$-Z{C>*#^8f^HAjqxIFjue#?2?p^YfeA@QOXu7DYuw#uQ2}? zV9bx8TPzc3{4l?~ZClnLcelPgObQ;VS1QG#hmSR&cme{8ySb1%g82R7zPl`(fQLm$ zVe)=_O>lPsYW2&+YgFCy1DZSbt=EA6Bb+IUP~7D3@L6Qt!%5`MkZ#Th5M0i23jB|eb}iw*)^PXL ziVURT#uN<(cNfI&@hT$2zboIp<7aZrR{EV9k2tS*k5!lw0qWi1Us_jYR3Zw+4_x&yxUq5GRx&sQx-R6kBVGjR7#U^6;(N2vEqe|Elv|w`HagPdc zjY`51=RR#=#)~^?2WO_-VX@2JV)N{37p6&p_UaPHY)evnF!f*l@)z*`Ee^><1po$` z&g1gGpK);LGg_BH4m$pH&rEx>|6{a6qze2Y;?5f)T&YrvGma#bN4#kWe)0%$wS-BT z`U<}kQ2f++`yUZoa#`t*0jaL|0shJ1^yG!A&1-W228P_vs5mFf4dJbByF?TR17Yv_ zw$R3S%5T`IF-Gz-2HhR}PkqDK8Wwen)gQz(^_j~QOXQ`0Ezah+0;m_Kmen4g4~Qw> zkb;bE4qOq_8m3-~Px<0-@bmDI>5QaW^>l}J_C-9;b58VM*eggcE`-)71pR(-R})AR zfnlCr<5dXKJFYK1>0$)^dYppE$^IIXBElDdggF}F5^pep@h>+17)d}P5x*PQ66z@g zGC`)p%~L>3x&4lv8W+$Gy*Vn8@LrG)=hHk&eKd<9;{OCcN+f2MP;k-glzDbEJDmsm zT0(G_yt`yt=BnL=3}!ncW{KZV{4gkurl} zUBAbRqAvIc1F&~~+a)1{ryEUTYz%LUdiH6FpM6*2+zkS5Xv0F5g7f_z~&w=tP47KU~K7j2AS3(oZ-1A6~2nBugB{0H2#n4K>O;#k~Pr(C-vCw8TPT zaYR(?4W~%ekFfv6{w3Ks+p7*<>j(CCCmxla`noTBA) z78iA!Bk0u+6C2fu%p9dQQFBbP{t-Jh?r~VtJ$fOQI06&{&Imy@Jb@J`6s99>^22Rr zr7z9F!)B^|spJy>e|X6T{;d5G4Hp-%N1p)Gfg31bix(9g-Yb#131U;we~7rNYdE@F z?P<2jDh|k>vFoZuWKtqd7CdHWXSe{dPM?1=eMI$7gO@0aeIHsmxoVNNt~iG}OboBa z`<{5>V8^XHKhMo;PZ!^sQ_Cg%V~hG;vvq2}d#A?ebY_gz+tKZdz+RKu+yKvix7b** zm}c95uHWOO)o^l-qe~LWi(`!0g`kfpR(wRAs)Q*9^AB&$`;3=XY-jpYd?xc2>w}tp zb?m)6NZZ~{OW+!&_Vjwe?-4h0sbOZ@X?eEuV7C&LfeTkrNruPlE(}B;(M^!gmp8w- zM*~Ko;9j*|0{qDz#s-sjAL0r_KI|4}$Ap_VZ&IT`eU4_XPiv(Yp#HC&dsMRgK|KfBMtwp_6N9uK|Dm{{82Z^m5hR zrSiGYFPhE%8g2etj=g)0V~-X2N4%Q= zxu61*>;Gy0LB5(yZjStKvDIRXW{=e-cX?|8O%}DcE)--sdw-<}gYbEtR`F>9|J)P% zpURatXKYNi+LRIbRGTm4s40wI&8e0?w=H4+51aZ&yfhG2AANhn<|GAWd79A2#Z}Y6 zWsNORm*BtkbYWm|vVVjN`0^PbC`Gb#iM7;fot0{o2r@6suYrG=U(H3If!u08_*=w{ zB0TI(c1Kgdp3BhjXC(EE1c@ZAUd5PQ;!d0Y;Xp{A$G(qo^qNi${KJGL+E*_4UxVOV zaS1m?DTDCo(^@1u&1egwo%qN0KH|{nX3~{{H2f4R5NL`OHBaNO>zU5x5VyL=2HFDu zhu<#=@%{d`e6YUNwAVg~xV^no-Ezsj7O|5{6=xV!k#Z5RQnlk5yJHCr}1YNT%2YEejc$L!1oM^DNNB=n3bOo zXXqdw{OjK(mOm~Nlz`w5r02flU&FXXqS5?XPnd8RwD~w5feP%dD85T7T>zlszj<5i zKXXL-z<7;f_z}h@hsu0gAFb`tdx??Uy#z2v;YH8Vz!=r++O_E8N3RNfJu62gW>QH2 zUBXp~6gwd;R`3nT*{%4^29UWtBK?OC%@*<>i(5w&e#VZQ&(lMt0TfA{(U)hujFKro zqUGb!_XRaa1@jpd3(~~@V&hNVWJfrP7VvqDo}a{|zFAECDN%%QF}ZN2L^W9Sc+2a> zOrFvrAklpHKVqlG(&yL69T)@M&saibsN8&w>U}wj?YoUXa#^Fgi}B}IOQfYk6z;x7 zcMAW#or&}A2>j{DUj>$Q0jNMi6wXxB;#QM~*DUrZ@9>Ccgx@Xtf0}cLUllj!vwb=} zL9^1re8zcJU-7=7!@V2~Ms!5II<3m$zKf53G5zL+fSdPm+}#6%BOpd?Hl)l;U@NxI zP(J!%+{BjR2)xE=>R)}DpF)|V|4LI!L;>vbFYVNrV%1EP;9tWS9yYK?tRgW~bdZN` z5raMAAj%p>5~hhWV(I8uR3v*vP^$}01x=bXlSWnkSDh!!OUXU4;~mpvU+tLesth{_$-=dEZ6cl#y@zSbaO!lHDAN1 z=CEsoxX5L7jy9Q=SUO+Bd1=_2RqPRKOotNwW$9S{Xg^|v; z*agq*1}AHaU-OFn|2ks^0W9H>OwfQ2XYMt&5F)!AbMui|;B$9DUX()lRdIirkUMD4 zZ}i`<@E1?7afmSfYnUk}yPY8)ydv_?EfqI!SsEPkz+TZ5I}||pd-;#vzZV_u$pI@uz?*Q`^;R?&2F?J4^f0+>spJTamHKI1_ zEM^KE!qvQZjWPw_AnqmJ=lj)@JXacjJ?qOUz|(26zJIvxng}f6$MxvRYbY<+|M|~< z=3tG)|LlIA!R^7Kxv%iou(5OhiVEPA9sw-Dx(v@4_7>YN_+GafW6zEZ)M6I{hufR| zPnAg(xLm(PfQnkdx}4n>%PXSQ`QYKwH~h()9B&>OUJdTnXjb+T3)A0Rp!Klu*jJ1F7aE+EE8GjKf0OpBmPysAtHI?%vl0&?kuQ){EV%;ja_wd=g zpXWlh7*b5_EGaYQ>X?7&?f)2QcsUO)IKl)i(NQ`5Gdnc~H#>19tV18ysB-LHWZxYg zfB}(yn~^O)+yaN1SMqR&dg1fF;(=%LkfK3#ze%{cs;FmN{=*`pwth z-QI8!_v|L;&j@}L_Wb>%m-D(*N8hJ|fVk)6ItHRa3YTk8fp6YShZlyLi&u-QVXNx{ zibjw^4e(E~sr>E(K!A{VqIqF$fEHeOix%ZM${>Stld<2NULts&f5%RZ5BGl5K3S-J z7_i5NGKQ@`<>N}zUKMiBLCoR@{>Cf_4&hH>o=bTv7gnIuPB=U zRKQT|Yl`hZ9&LNe=+WFGvd&M(AzYtA6lmp!KAkV4EX|7upI!)Hz{0=i_1}k=26WHV zrY+i&h!Ey8tlfG{~>Fg2^76xWy=m3=?;_Mw(L)X`1QIaB5rli_J|7 zvU1=13g_|!L^GyoY&K-rAC;dEH?i9TO-KXBk)`MWcDk9a4c9(T+Z<&UqSaP>N!t$ zVdvdU+j*;dD6$JO_-z%isiZcSUp!;+5U`QWdKNJ+V(?bF8*Yz)h&-EE9 ze3}HF)n0yfb0GL1&KTy13@hh5^v7F?;ou5Z-+c0aigxdTeJ~27otx+$L{g^vkU(DaDnt?B4E43o^*6! zjlfLPloY<1KHgqwAvPBGr!mvPA=BhVWU-}&4(7<4O(J*3_&mL^#Rb*0#(7FdG;)YV zi%HymUGqIMS-Fg_=v$~xjtF&B`BCxbQs?A@Zu0s$;zk7kwooBHucj?tPkeK!2Q3(4 zvo`pb!P&e*flXNB#lc7r%>wpwzkQ&&T~PR!H{{OEQC#!#I%au}ggwE}d{IM*o=2DP z1qnZNd2=C1P=tq=UohWX1Jon7ehJ{y9k~ye!CT+`(oD~OT`!@C5W)ZLN3XOH@sl~$ zxKWT6t#>7w>+~x=Os2sZR`X8Vt#|i1>xb!xG~t4W)vG)&7|Wi&;En0VO3dzpBh@AC zMR8ugeL81+kF`qFiZO|T#M)Q>Hz$UpSCP0f5j#gHB^R*SAU~qbxLSF)Q>_q3B412f z99sejQ~+I;W?^d9*hMniecT=SYqXe3>K;=pIxwW_5=VPG5%h3~n==~Ewy1CJF<>Ii z#KZ15Sw`%f-r&OYO!Ivct$XSP-O z@b($$8fe)fGeWHn+kc{wBQ{er>+OtxMAUF3bbJRglBbaI|69;YasKPS{_FMSXLN)f zk;3Hg#vp;D^-DafUBD9hGP;B=ws5P-%|GQ_TH0gDW^*-3pN}^`j?ndG=^G)o=optG zz>qC0C$_P;GwmLw4}BPXa-%}H!5!Mgo-qdi{&#mT95xQC%bSZcshg`?smLu#pzwC> zPnkw2i#HAfyyA{W+(cqnba$Ss)|6Y6`bTH_+^WVh@eq{(B#ThcF9f|f>`4PMdf^Oo ztx+(aquYvr1RGLf@0bMl>8%_;dt>7>j(T`Re7iX+R@ftD$;5%E>CvyAZ;r-=huOLR zOz!!Hb^Y z|Mr%@>rbU$^QxhDk7&G45i`!oo@H=my@c|L-~i*)4NK&SB^C;YXw`d~R{J|1F`Wt2 zhr7`AIb9yeXAF#abU^rVp6NGvQ!1>$HfBt93)1z?-Vo!!T&7R~Fr4~6MlvY#^5|Er z9@{g?n4lK3`P0w2-o{q^?lcph3^nH(aylPK@~+kXbr{MJaedrkR>;P&!3u(UXz z!ZL`M{t_>3(TCN(m0MLuQ$zpSm(3Oy=+G!1-KZfW{5V+YmP|f!`%^BIX(~G z@pSY4*1HqEdz4LJ&JkTeC3-Dj9h|JrGG-T%c6&z9j-!9}S+I=W=BPj_L&^;7pI-cG zevJ#dli~y9b5wwJ!5k+n4GtArgi=fdb1_FmC*mp1MvqzG7N2fI-Mp$*A|TO&HizF2 zFCY?`fDL`FE{uTx#s2Qrza;eT7Y5Do!b%4Dh$W}ZWxy@!WBLh3dx<(yeX};8qV&g< z@z>(KDAl%vd6zZN2{udANEcVUZ(i>FaKN9=1&Ob* zz`aEy-(nZgA{ENXF79e>UdM;+`QbB~dyzQTKi`_4zudX>^kGnw!yAdLno3lJV44QQ z_>slkhlVA>xe5QmjTWnHy6qm-kIPUs-`(-d5}}BuAT2oh{?*-;G{&{Cf@aj%|U%i`^v}w7CE6>9AJxh+SG~ zj+#B`8eK!55%!QZ=yCE~qj%$0C!R2b&lfvZY>~$3Z62dC#@!NuFky)htJ;+xUJxYA z%L$@-JRo`jzgrkssMQ=LMJ~nVh}k>xzQwsT_c(S{CI$OY!>RxY>DtS23=X>HsK{aD z@6qEiIbyG|U8}iLmuy)g1t>wa4=r#a`&(HIaf6V}b`@$7kfh4!Ca*8YIIK0LlY*!{ zY(RL4#lFQ3ngORKg87{L5=Wgg)T7^O2a-{6fWc@PD*FEEja1FqRtc5VT&BoO(cgQd z03Xr9#2~9(fF88>-H+(F=%NTY5?#q>zNud4(jaTtpVt@!{y&|>+gpgYHA3v_k82=EIn`g`-XHDb#nHceEYm3Q}AEhBs%b9qaOC$ID+_b#vm5?h$!#Tmf` znS#v`EkEp13d*h4Q><3Z5dsYns1L5;Fg#$>BKf`f9jOYmNC7SY5NBZ5 z&B0jW9}MKg!P4*xn{@C#`Y`n`e6RMHtMfi)kvJ?SaFR-~I%*yJx0BR93ur-WU%Z{; zl(X5vXKFOq$U9(d23JHG9*o+et08mtN7Tn)mwv8q_NWg$;%G|op_)pc0xWJ+kTmrH znU1kwR3qKqqCcN|&TkuYl)vnLWiTU0o4B5Fme5na9M96a@UL_KULUakL#(!!Z~^Jj zh6qj){98mR&4u@mem9fW4wh&P80;?bFW=6^H6Gn!!8)f_gT`Opq;rpObcnR2hBWu6 zmLLVu934%wt${vYhB3!d?-cJA5jSd|!mJJy=V(O$^V|yIHYbBX0uIANv9v}33gm$N zuUM+qH7zWpsJXLbm8RUzS>W8cA^I%5bPu}WPdoL#ZZ++7s zw}K~YxY`!Y2KAia=tEWod*c6};%p71fUNZaLz?*C`W<9jkhn3pw)vCk!@WbJw`oj$ z(EwW^x=gm2)-XzpIk9>H|HtWt=YEqQvtaNrt@N0m`p%gW?jSE1W9w6mzV{T?JN}nG zRY(0x5c8F|t2K@>Oiq3QKPvDUySlJciT`{M3<3X%y5wFv_p{`Db%!aMf)X~jI6`^r zsYY;;uAeESGOpGg=y1nNwReCg#TIXg-H0z!jQz*>BRf#Hgn=5OUV8V|p*@ydpM9fs z?dzWz0^OrOd~|QjhY$TGie794wrKFEQ9RF?ipF2wq@%$zwdx>^8*crQfkY`ZVw@58 z5;R8)0DAMb*jqGrjgz1xqd9i@VTHK)(iduSsK}@|sRR{z;_gZgmj4~hB2-|DXmC3d zrC+*!av7vK@)QS#XjQsJHT%LD^4}W83gDrcf-BI~q9T{ojAU{(dYip);{Sy-S^mHJ zja`#Xx;W5!S2D-R1G>rR7tkCoo}&UJ0w~Uh6K9S!xSh484nj-#5DPz#qSijR9MwgF9mr%g}Xuk|{ z5X}+_!p%2p-0oG3BN`h}98ryMTGX7G%H$rQGM6hgYyMlDbHVwKcvT--tnmvWyBkVN zc9B&P!2r~I^a_GZc-vgaTEq8gc=~?%wM{x7XWYejrtowvlI!ZK;M6yC zO<|D1JfBhIA^LM_M6k)0G%QS3kNb%7FZa|VN;E5`P;`gta^E}t1+!1@@lTE|QT9pN z`ZIfv$QNqp4v%Iqj9K^>LvAh$&t8RZUZhUVnj?W4qgeOw`aAd+6Yx!_IrvA#m`>vV zBg*)2dxKF@Q z%~T^!ONlqXA5A1t@_CJ@>4Ja#c6C7vOAEp9%cFq}9J}@BK?(drSoJ-2?o_Xvk4F9w z)xX`F*|GCmP<|;6Ajf924=rA22Ya_TNp*?fhj}Ges{>}iVDj?K)7w(^ek}tTjb1(z z{zdudkEo9!lzc7%+MLrRmeyF*yZ^&YIvOx4FgtQsA}N?6jZH$_$%@IPk0k^3`ew0{LbA!0Vl%bAc}6%>d&OBI#!HFA&o%n2w&*6>Y)JFx znoBYbCZy#T|7UMoAQ^f6_U41s?y-oroYD2>eNWF=ngIrkHeugRm2W|-y&iT3JfL@A zfJr4+HDw8%=}$hNis|hA30jEw=7j)~4ni-98`fz&HCCxKwfQUvr%}qk!vEpdHtC>Z zb69NP&AbrSL04kELBBc&p(`l9^+Kf@4^c#nmW;92P zfn1sk8v0dzvlTET=bn!Mjog9TGR{Ok;m4z|K!S?NZ9iks zJI0L4kB$LMd=|TA{daW#z!J+q)v4Lqt9xxp4I*rx$FDQjt1RF?h*m1y`F_~ zO}0gv6bP9j>YhxPpd~VK1efr;#ew|X=jNgowx#x=MUBuUIho=ZTmi1J_J@4u$T&(Y zjX{f-Lguh?2zm^oH`^vO8%)f;NMil$`@MIUk|gNrgPx{7QCcHZTZ~DbA^?xBaU~33 zRO{P>!2jWXEfAs~PGRdxp9O&DYWqKX9TR)S(}7n0sz!)at+`A8B0mjJY|%8EThYeo zqZa-Z1qp;Dj6?0$q?p}i!u}T<7H=%#bx80x@58+S{1q`KoEIJB=hg5=;!|HSUSc^+l)Av3HO?tw&gSiXn|8zBV#5BKEc*cib3?DS!a@)!7@;{Caz;nz0l zz=VYE2E%rfhEXG&72l=btO`vq38mn-4_hJD|E9ZIa^I610xTz!So1xAR zNRXRLTT_%%Uu9jwg0(*Rtu}qdbro1qt-^_%W*_$sNcay2GHyKl0)paRIO1~}A;cE$ z@aT{CWbiz34bzcWn&On;pMLWu9UzDCpPUCZ+aFkcQ6dd#ilQaNHz*W<1nta-Z;Fc& zb7ZL!=wkdQs`(7&Q4O9|oL|hLDX7)t>|QfX{9g#nUtGY$=^j7K0047QTm`B<@la4# z`u@@u#e7{4|G9Z}J`1~MACRaY7T0PZJqXdjc7)D{&DqMk7F?L$-d;J43h4g#X!2Bu zLJCmg7&@FL51K=rYXpaD;D7e3y1D=D7dGiM>*L&)-0yKrM+@t;2J*QNPcO~_MyC=; zVTiOEOeQ$zwSFf!+-d<{>4?6GV=luIN%eY#F7&TL)?n|z20B_OQ=+}snZ%hu5A7VB=4gVkgmvnzcvOXX+$g-tru z9&>W=!$@X_bDFz!|LE7<(9q)QLB`d9fB0?30P;b!IEllZk)FT=ZUyPLmv35BQL4?z z+^=r)bj>&Me@O&5`%(1i(=#rb!e23i`&s9oqnKRYDl-~?0vmX5eXSK#@YmNjQ|!SU z&c$5rTmm6EU(kDZ$XeWT0|+;VTSs`b?Jb0sTCL}i&PU%4v{|pGX!8H-xezS;GqyR5 zAq-i(PN#Xz{oAa#MyMEn^Cq4A?bN5hSP#t+A@XxHf?EklW9-_OXWgh{+eXYmH%v2W6-kv1;j-R{3_lg?@%$`ePE0Nh;mc|>2+ z=C0s02-QjiVO@uR<`}>lZHlwAa>-?Mxqh*q1q`k4b*aWb=vu>4EpO>?aoJ((1H4N} zBTCGtBlsn{AZLxUd4I@({4f0Hw}5R4cUf%7hiJ6pf(u(}PZ|cM6|^*4kKF;hrZ3L4 z2*5TMZ~1xY-zkIQH>W2b(Fpg~^Eim++81mA>a)WhKsEP)t|qd?deG1>Ma^D&#g#wf zRirIWRT2pmvzO_Qx3!D}$@Z3jYZ&1F_Rkyxh{a<@cb`STtYF_m>qN1 zTt-(fK?svtqx>?RDX{pdXH6!gP$Q(-qov{VEu(2J%clm_e(T)k;$d~2th<4pcNp{T$1=ylv8X#GY0$utYk%_FLmK(WQTK(XR;L2)TyaHE|>U+qct(AAyK^IPJ-gdG4##mdtB0>r~n5O_ej zioL2NRioYah_!$k%Wb#w6}O_h-{qkhEfMYKzu+IvAk7*u(Dze>;+l2qH|ad$0Gw)D zx&(2n<|Tl&j{t)}e7_I~f%bkG8vJXtw}0{&z}@AAB{XRC+42}J(2IRzoO# zictF24s7+qSwMOLu+8UBpZ$xGOc(HUbu=G(0iGBIbW^PSr1i;54Gb(U;{coa?5}1< z%~l%x!$t(n+!IB*Gm8HiX0!E)Rf{a3c$xKxZl#pz-AiCFXjTyKE@*i{N_%Jy-Vw`-Q z`|{BmNxk@k@jsk&9C6Iu9IFEt@aOegl=b-Q=i3Wy6CR>suL=*}F*e!$e{+}4^tLKd zqlM|6GmBj(_^EHLs z*EP=ATw`5ti57hk^JQv_%jrmbF@gUY2_OpCVzFS3BE$3xn{-56R!mH%o(jIjs>lA8 z{{q_0rGU{ictzkNC|$rDnHqOSWRn*r24{AnCI!F_=q&&GqMA4(%k7c$0GaSIv8eZ?kf+B5Ym;{4J5vWfnCBTh*}@dU`CcO zK5O(>0}pgZcY_IBw#5>aNJ5c-w%(vMBXfxoP1Zvs**OZHS<7O;32a!j#tI|6w_QoWfCWl{`B-_+lM3n&mWOE3I6pZ_}|aE z6NY7pqk-PViaONZr!#V(JH2fcsj(t%eF_6Maw4xPX|Jg25Gu3nw{PRD*Ne7|x!)Bve!c+>JLYm}@ z<>%*m9M%a|pa?_Xc)UdI9jS4*#b>#|qUnqqN9S$`ML0)xkU)!q;EVUD?QEuebhYhz zx9U`WKD`}GP`PNI=o#IQC?FV~9obeVJF}zo^45WaO!LZShsCg)Jt@-xZvcKamGJf3 z`5H|DBjdN@tXm4+^>izb@UX{^+Q1N2q7i*8R>s-M_!N{szx;_=jDOrFox|_=7908P zJ7byV!!a<^=O@UHIhKA={vHd{w_iI3aP&gSJsK)tY)=1hikepX%cj4)#k+lvh)59% z(3+k6N@|j_E@o1&@flIj?B#&tZIff-e~!buX1jo9i&}g9PZ8}12RpWLK_gWJLY!dw1ZqT~ATA_CyoWdOcKAf$&5aUukn?_~Rc2neXE_loNJ3;u~5 z^jut0(pTS~z&8l)^~BFuy4qs{%i0@WZcf_|<;_Pd5MWOpUI+mE$=enNsyHCQCNF*d zRb3X-P0*Lc!BXwbPF|c3s{KB%so%}5>r>M|`(r#Mpz7#ijXe&`ZgpSB6eYWKF>v60 z?tlR;7^6x+f}DSv`jYA5IxW;}6SytoVf;_WZ_J`bz}BL2sHbePs3+0|hgVl2v3GX& z0`(th!4Mf-a%S(30YusP3C2P9uTD%3hhzzUu!_Z6xbiihJ^roY-I>^?X&?*{&# zE-61E77~e9OtAFbp4HHu9RZqX^h4+SB(w>iyW zE-(5X%^OdjHND2_;pV*Q=}J*vFvr2OgI9TK?`W8N3Ewn%C(h{L2h)eayj+~4Y7T@h zpcN&boBewlt_!wCd^n=-qV-Y7>NjG8{O^8)h5*9{2$O;oV9shcx;olS*%ES>Z zqzYgFx$WxcYmFt^cP-%lus6*VLSc^Z4UC~R2>0@#S)<{VrgQt<#{drYTo@(BS))09kIZ~UrW?;L~xS- zE~YtFHn9>l%q;h>PD`;lB{Es2_KcH-`2OMgK(*?jL7Nj{J+20FiZdELi&?MMxXm@C zxqs=&;*KvOUI7No>*CP`khPCgw^(t;0<@^OVn17K(%GUtuLPwa;OZ70b8~pG#|cGn z0CgMUTnH?`W;Fl9V*t^SFsG&b;>(c| zw*vD=zy1aPx3HYm{uHC3FH5xHVYT>Ev)NDc2u{)%!p|C3k^3P1*ZispUnNyc59zMULMDInEo1@ zboRHF4-}cXaDUx%cR7(KuJ#f772sdOMqLt_CCtdvb;1(I0CMpX4FGU;I#(DI`AM7K zc_iZx;3aXwA$f-{$3>4bFNPbN!#o_vr!#0hW$#~_`RTGSV`$++x#8}^a3o(?E#4w5 zn7KsFe~iWnAU*rgr@_6KsY**!nTo5^i#InNeS;IGY_l!h-4TaCg?|+Ma0sD4F<
Ud7hL=P1O%G2Ns@zZo1m-iiQAknX?@^ZV77K{u)WF@Tq0)IKGD zH~T35YSVW(3c|cU-L&)FJ#3$SMgV|!*8@Kz^2gL)9{P+uV)>^noaP#tT5(Kr_vX+! zO6A2QxntpF6>o9A;{28{&e2uA_KCnn5W3)S=>WBDHkIY=`0?3|G;72I^%to1mjAG& z(tme5LGXX`S`XTd@y8LM`?b$UQj0(T`As@U1Ta$+){;=7W{nmRfxwCuY1%~vbOE2? z&+cOYHESfx4VwcAKo0)_VFFA)+4`OAkI3~1X}(7@Czt8|#5U;yjvzfnj^-bPHO=DnEFwXK`Y9>(5C}J2}OoupYq^`37lLhe^y-Gg>2Smh5UY;!4qq z@y}0?Z#i`YsYw>Q4-d%?oBM?ZcZhwQJK{gicF@_O-RS-qd;xH(QDbSpdy@`YutcFu z4?_LR=`#2U&wBP-JZk8s2t~LsHthqngbx+K0QT-w<%sU1Bf_4`^@x?^7c+i1t3?H# z?%~lyHiwj7PM;M-aZe3kjWd6sqfd@5|823tSWlPtaW;o1a`XY#&5m|Jf>dUX^1|ej z_!jvf0BBxoC~sA!Wa(yq0i<&PV>BMDu?klEETh_AYZ#Ac%9WTHWc5o+1%A$gyJ$Tj z(EPS70=>gnef~?EboQu!!fotHarnWkK_j#U{z3la099;c%-nf(rKP$5XN}Y;Nu%AJ zdh_oimhg%#+t$aNgfS0yvhk(9dBs2A7LFZf@DGvy?h$?Mu^RH}76|?d?OvqYqFqXi z9U}{X8`a>iUJ94(#S7eAOdDKS5T9%RvKU|n+kx~2#z(aEwpf@;12{!XPl~KMUIGAu zWqUgd3p1OFHl8md&euNP<6O$AuWnUGAgh&naUtdS9h-ELOG|W#&#@@EMiFD}cWg18 z#ZGYQDODi(-$J=s^fED+8a1fZ>lCOS$k$)>tJOVzpN>WZ&hKtu=9`Ry^w%S*m%9Ud ze8i)F?ZV~))ZXuxPb?jMhW;+T*_}>PZ0xGhzLn8Vf}bKGdNIc?S3PcX4P=QT(h}te z4d&@0#>JJ(7$O3Ol;#V0NvsHNi6aL!5_pBkc*Nk|;LD`uXkADQ9JW+O%76DY&wq83 z&S99Y)g>9es<>FHTnnOK=G2qc;-R(sChExF_!lBez|`$tv1N10*`-blTNknGxvlg zpY`0!U%C05%S_r;K++shBu_s4vcei2n`j5%Cseq*ll<<5(J3l>;*TCQ zdF#aNHK55`qWMNP2ZkfC5K0faA zuh0GWul>*O{o{RmK9|pr<@0mADZ`7WhN)Q}Lhi(f=90S-(mj zCtZ?%dA#4a;2~c3>v-FT$8EaZ#?^n_-*y@Lb6nvxUgEOjKc}hPd~>dwzWKV1@4AvT zF5qz=<7c-u{!0AjW*VFL{COYm*WnhgxROo3Hs0F4_VKg7+6rVc)k6!(Z)B#&%VVsbj_)6Pkk45((uUim=+mr+=1p2zu`6h zb?8qvc$t0I>J^{I@9F&)hj@s7#Y3F+K+j=>@x0=y;-1G5SpE2XI)?YhY)h6EZQHQe zB;uFE_2@cZe*XONcf8`V`|iSkwa$zaE#p+Wf+Vu%a;3 zUPs^(|2lM++4g^po4if?I&OY<@v}OcGP%K)w*8XL%kty({=VF^VM8gN|NYj}Gh-m(lB%rw*Cv6H{CpPOXb8Yyya3I&~Y|qf+J*Ls`acQo%A$~S~kAAIwVceYUep~O4_4(W$_ce~d z{VLfy<~U+!S$Hesk0XHn$8q!b+y3KE$2au)*-0Mb z!fmt-$Op#fzB6q&oOrW$J;%W}UysJVC|={N)7^yq#}&q<#_Q#0Tx6VUxySg|xC7xL ze!cI%-j`n=>+QBI^DyTP(cO?K`i1>ZBNk{^Ec@@{2-J(yt(V_#ACDlSKzRPJ|FF_9 zD!-O6`|!Q-@o59TT@?uYMcIG2X#K58r=IJK%jj+Y^2YM0iZAiY!^_1_>Fw(Wd%5e? z&ME?&J#9QV`3n8iV0SmzW^`3Lk_rJ6K3v8&w^w`q_?a(LOzr|AP`+yDG~ z|M=L#=EL~o2*eZLH~p*P$T~Qt$E^-m8QH=)47+s_5*8SC=ro|yxxn}@r*NZTPVui{ zNawTcKVByp*w6TS#DeqN&-g)%If6x)v8^JWsc!OY8}=Q$=zFkvoj93&=dZ*O(9!5m zj^MKYalANm>OMy>O5@*jpB4M;$B2)&s~k(*3O(^T?EgZ{IynXU>#zU(`1`ML;67P# z$Ktk!f8Kt-?|;HYlNIcW`yBcBxYQA_TaG}iWFT&SgxY0{Xd4eg;dm*hjn|bW`*GOe z+uw$@@6-Dujzd^}*p-g09%x*H&q91#9HPZ%OM`vDM__k8b3Cm3ZOB{nj6`Mf zxgPyf4Ov0F;*ErL`KRK7YWSq1e7?Kx({=|?Xx`F=l)Nmpr8AD*#92! zE}m}$f`tq!PC*#Spzs<=THCkhF!J#KJ_53TyW*2QVHp2gWYKSLN+iOODuHQUeFR=* z_O}1CkANJkT~OaUhZ*EWmH$Lq>-^mIAK~V#SF4=rtY7#R-|r(6;p2tlFmMDM1^Auv zC(|V?U;b@w!qw#xXFe(mADm=(SZU;< zVfNv5%bm)8o^q8k#k-vUa(trv$M=U5s%O!L_lrBDTfuLpULflWn~5V3Zy)E6|9AeQ z`>#W!S93(MxJw^T9mc1G+iPNc6exgh% zOi}OsCO1yn##ijJdID&irpJAFI_f=@GOghpt`rfzb@6b+43vZu&PIo`sdIg#8y@Mz zIOy_~Oq<{s)H-C)@H}yz#jIB*~=rsws4= zUP!3${9*Z=CTfs4hLzBsDYb~9aSC+X*Y+V-BR3ny@B1$&rX<8waM)5m=m8O%l!t5Nb$T?d zGi^N%zf(tiSMKp-9S9V2xzw<|58J#P>~rDkq(e@A+K6}Z{6mD@6Za=R$&$pW@8+kx zE2Xzn-TSI!zuZMQt~f+-3RJN8Ajic#9f@%1*PRr-AtyyZT-hB%E#QiL;^Xx1)o^QDQ zUhd^YRv$+ozNoJ^nZUHJYU4qiGw1&qc1}c4QvLF`UO)d1yQTP5b?ge)*MHJ|uzREy zQ)Ded3z+GM)ra-e;SY)Uy*oTex!Tog~0|BM6mRLg&cN3#7ZlZ?DEZVM&^{)7F; zx5eA+6lH!kKBV~ndF-C|Mc|Bb^7Ro1;T~r}!7=WwGiqJ)q%t8acDCi~bvIe9ERF~~p`Cz zhTCykex^w5ot)oXGCz#H#OIj}s$vpGwEKqW7OiqkH#w`G65yr~>6jR4VLZpJ9d%|E z_`(?~uQ*w|U@ih%h6W5_9^xRh zB)5KdIxKPei0?vBN`MrIXXmoBb9%6tJ+ zPPXIFjfvd>Jch{ukn*ptnq|82Yp=>-CI{sa{4>w2ueo#0MR4o{7YK9;`}7GVpXtc= z@c&L`1Xy95qf<~he^(IkktBy$=^TUPhws0T?8W(7eMr|YU^ZSI)oZ-sL6B4NYdd+) zIG9l7yYZ`)x+{H&gXj<&J>cjO+IiD@aS7- zZy(=3+WD08*B=VY=Ow?_Qb)ffrm-|jMOEEEdt=pcwt;xQ_*f<9wuHm}?c&b7i})*X z)8c#N`Cb2p{YNzvuQ086394EM0k+k6UK{2bnZTlgH=N|8Ko&Q!71DbqPa}~4wsl2&hUuT$%rbk_{t2gWrO#JpOvzy0|&u$-PQ`J#d*hyOE4P0!)COv*V;%)NhM#G6$#gq{gi&NmhJsZo7tX^^J1`^w-5lE06rk!rt%L!9*{{IqxMQsJO z1E_=6HPgtOVV_4+fA<1Fta6ja4Td-AuSBo=4Qu^J_b~8{gyYj`K zG`d9>r@s0+k3-JNH+E4gaQIdc_m%%&j6a;(L@+L(UU~|Ks<6i1(VquR72`vpQvhlt zpweJ|q$T)&{G{+wIR|A>Ve0XTqJZ(?>z;3LGbA+&8tsAcorZO~&#RM=&ApH3Oa@3V zBkq_B7F|+Afv|^gm8*h_PFDOa1-rc;1dcUw-Ht)=(SAemH1eN#Okwb!;s4)t3V!{P z@hi#H!5rfLIIDMhFB~S$bv#O0Y_B@&Vo%FmY7Z~>9q^as|NNnsk^eA$K3;saL=Y-> zJC?TKL7mW9uw*oN1^SiR5Qjqg?q9K7>xL+E`(VHpuv= zA-~wstGX*{xJNKu=$KSd=5DW3KDh`q)suT1k0tE?!>_P^b>0;V7EDEM#HkLkqjwVPfP3=eyCmFXH;4&w%HmmI zoTd}RM;(FqFshhe0Rn~#u#!v4eH->L)< z5ad@J0h$q+{uyncl;Z^*V#$st1POP6kDioi0Nc`2I15g+Gc@+1vM4-;O>{gugKlZ{ zVEa>5g~p9t6|QOjJ&8JnztW7R4tqldAtu1CE|qHYN~>^;PN(IoDNYGAIGo0STl~VX zAA6Du9viPxERnBNB!1_V*^ApoLqqS3%*SE62{lk1+oWau zQ+}nP7Nh^N8H?68&jMm_?)`?=Bj@dk{{k+9V0W>=j-^mPPFWmkhse; zS65}tVoHrORo{aG1O{_)!*q6js8>8VKcKMr-@mWFZ22D_tExQrwXuKt_+U7VZ$hS; zF1-h;x$2&)(Wc0&LLg3DIDh$PTRstiuSDsZ$K>KdfF^=GmBOW>WQ0`NziuXvsiOe7 zP${2*n}F-7FWgoT+?r{XlTR$%t;|9`_snU@y18uNR!9Xv)3kdggK1O;`uc6Y-6Hv% z%|DqodteZLlI^+p1ANigNIX{RYXvgJGFR4Jd&Zb`C9B)hj@qu%vytkWcc5KMm+J7e zJnQ%kpv`3ddKOsSm`N!fMvbA!L)_;*psIMOF(-rp8*T`%M{(B|>`bPL{VN>w*2QD!zx5(Z2J$|Eot zocrt`qKZ}L&bfgKE_|syC;c6YS$>4f=cmiwQ@QJ`E{WQgqls)5(BM0!im4;4C_^B# z(s%ls;~hn;=lEP`uD!_lUos8GiIH%MU{Kw8vTI7qC3#|p{fEcM_To*po#+t8KTp{- zcl%7pfSal&;g~z&3`%xo=7vwf!tcx;u@j6lO~AMhpa=GoSr0-~yI)5dLyic8lYe&* zGRaJq3tpF;r|Z&PlT?INuXA^t4tnm+LoS=qbvH+Rd#U=#!N#wTcsxJ!*QPisMCwsk zqEcV(;gmc>Uys5~MBbBmYqXW!g{&%G<(L~KmFqS~)#G{us47fof_M;dHd4*2>Z~xT zVI1Se4z7vJp_&06&k1p;t>1(4sk860T1^LEn*n(x22KUfep0PtJ^iog^Fv2Kr$A9) zRjcJXQeHWIlD|EjUTwpmK-q0{!R5PJfCj#r94YQU4qrd$`~(&pKHnkf4U4^;^K-fw zc%eQa*3Qr9!Wrr8))b55BciI<}kGfI`}T z|GM7A38V<^z=b$U$vrbN;E>nn0fBNb!?M$#!}*hJ_f9QHAmtEVlntIwuf348#?`T* zzX(8UHjIwKkQ5HaCUuq~?3ljV_wbE`Fj8EDS|-o99E-ykcZ105+D%rsQjM;8pq#p7 zG&#P9C)l>919^6v#-E69W z=Iw69V0c;7)3E<-7mah8!W5mf2ylzCG!kQ_ls-y2Zh}2GbvNFh)B7V)?zns4T1_T_ zCu8p~@kira%yXu`@z+0%e}?^kn0zSy;cZ;}^bZ97tsu>}w-@^ym(s>A%BWhhX#Geh z`;YI0OG%0jV)+`y?}ak(&A26vGd)VII&K{i&9}(NITQ%9Jx9ZRLv>ZuKK5zqDjaZp z$Z*P#jM1%0NE2H?(fn;RZ!H2VR9Leb)<3^*;SJ1`&|#Sf*3N%KLc5Lm+luhXzfLA0 zIIRU{G1bJ)ovu>!EQnkUDFx~>SD)Qi-JG~?OPT$|;Z-9EERkFb4+D`>_r!oI;Mg_$ z$j;p4+m&$Y<_R9#$rnldGP5I@>UtW}s9ja`J782l4r_JszSOM&%X$Uv1o}FtM#W zP{(o95fj95Ra-6ogvh<|x9+3zAN9YoIWqWSrYU$GljMZS$rvmN{A}BS5OG3qQ zXUJ4c%i!IMuAkcCYkCA0c@Zx0^COe)*Bml-)eZsbu7PrUH|;L z{gVApCijkOVd?6|UNh$*F65~MymBE46-{Z6Q6|TooZ4;~O3i z{m6$po9bUbREdm_$7o_? zr^EN}R_f_P@*o!G;!({ZIcrEDCY$&qq}r7rdLPzN@+5LVoGG zs)j%V1PHvOMfIN30rlF%rpr^GkBJD z%}2$%;cR5St?EYpYN@a_7u4_Ld;xGXe0o0lH}LqrvYkE=j0?W;{K654kMaEg(Qe0+ z|M$r$qI^{@0NY)cZC6GZP;9E_(6iJBjVkiCJp$gZ&To z4;;aO12mEdi*`G-+D(^g^W25ehDlf1JAb}!|NP#f2r>^@h45@g+IN?zD{nSw(r+B2 z99^3ycSuW?Pa{&K{Z~x{fbgc0=r4mduW)FULr&@KmzgZ69$Yr0P7^iwo^R@^7Wn}L z>5eJcQ=}XDyME{fo!pTJWN^0Mm{i|Wds4P!;bw0$6mWXDri7Z`^z?O#&2{wS)7d}b zLL)Bvfw;c%pQB4%uJa~dwAc&qZ|hL>r0(H(BlA(icc0c(Imxg0ei1CB|eC%V+X{1dKQyy+6e!`f$Rt!;O!`X-nH< z@Fd=&Sn;oR0`{~-1Q%APea}+^?iAP4IsZw*gY%zwk@~)Q{;O@F8eZ@rl+sR-7Uf-?R`u!GY)PNiZQROhNCzcHrX05rB0qDwfO<I=`8BT^#J@HRt#KB|C(fZ{%6vUfK1rQ2rA zK0jiXqhj}0SR|Jw60PvAGktP27qr#ePWahOY&ydiltts%q<>T5s?#*P&$49iJB@$n z&xhrM0-cM*;%ef>5Anpo$Np*Jv^AGO^26Pp%;!;d5pni?HW5pOFes%7Zyk&{cK~$+ zZf*+v{#-ua89*DV#>~hFGMPoa{LDaJcTb|r#MIdC1|nv5ytSxt%u6(z&d@7ErlQBV z3$yQ0$?9a0V_eSP-n;GJt+eX@&TVq(=N9`PT|kj}hUfp=`4164Qr||b(Re!TK_;=2 z=NX+d|Kz1)=2XYFA?U|nG0hrVN=ge>@|C8KK-tL)MRR^=t6?^_3xJ=_7Dr3!P&Ay>tqfZc5 z1*fPOr)gSqO;2!#$z!R1iCp2(FoQfD`4;j{_Kpah^D+P3Oh;#v1neACoPKz&?dS;H zs9QzQ726HBe@?Hd!xI9op&b|x|sM{YHbES6(o$bioV3QjnaOcDmS406VS zA-l;VHa)XBusC4;G|9bx1!IKF8UINHxo5Ld9`9&y(>jsCoAa-%>6CP0_afbYoZaTu z6{f-0>F#ahXV3h~s^^(5TSC5HaW+BJR}!SL&o*&<5^p4Kbp+6-{eS%6Ioo6}#g+-1 zR1;RbWlcs;8p8cpBL9z{qWGc_FuMf6gY6sh#TVzsCl4|>F;+!y@`)h`<}%9uFW5hv zQZ9qbJ~@{Fys{qyH61;*C*sg%_eG!_xIavq*EAOR8{^(Y4PT+@D8|jyw`%j?6IkaW z-R)b_p_gjNQgF$1|Nrd&`~r!Ku^?B|WI=CT4I<%rI5>I`6&l2$a^)UZrSimumFrUx znG^z+o>`1I6mic#3_remI{vBThhb;*3fiN|=*>1D_6E02u z`3Z>BC=qP{50`^vxFkv`tl&DtU*tLyMjl}#!XkDc>y9)go6-K_$&9tj=AqGdWt%xF zGTHu36Ve&v2O%NMGpKT}{QqP7d{+lt9T2lk;^sqg^V#ej+TQTVuDhuU^)|aq1=D+M zjNW@j16!g_=e!U`+pqi~3jw!`C!&BTE>jh`hI*K4oQn%*tf})8A8pA=oSPFOIMb{o z*u^KnQ%f~O)D6kH+wjHORjPI(xTkV2IM&`F_qs%$! zQ!H^a4R(zL#$WN@dQ8l(-8CIKKq8g>J11-l+Bz8pGJ)Yl481`SR}|K)<=B5Q_VNEt z`;`l69LA+YYpP)f{Ajj-03SDuRu|E|s>PQEgm63tG)(^Y3sSUEAjpc@z9BT&C8h{Q z+-k-HL0{XX%Ioa38su-t8P;`R(gcR#^RdDjf^w{+VoYirNqc*|L1pr?9jG+0ByGf>GqWkDBrX#;zy7oItupa|sldrYrP$X&n^A7C7y;N!MByS{f z1NjXgXc7<2$k?Sc3i=H!G9m5ieWxZ*1huAS%4F4@+B7b@UmX`*DX2gI*V4RaWy_bm z)vALOp02mi7I?Dp+w7a1lhv%>44By%CPgGf_~HG&SpLF1Tf>RA|F8Mtu85bXw*;Vi z-w^)HY{`H8cHrE;S###d`Aus9 zChgwHrUXiu;Gu`&f)R+Dx!`TfAvI>(`J8DWS~f1C)Bnq7s<%%4o|pg~L&nEEM?4%; z-WoA*Q)8-n%6Bpz`b0g>d>KdP?%`siWO4`sva$+z#dlo_kWsL>RzGx3pf6rcbBsV* zQA)s34uW06_vYw|;Ulw)tz|TOzG)&I8XQFMiu4)n;ZKAQW&1U(ZOTpJcuuRb9w#f% zJBr)5^{UsLi&D`zqrTuLnSQ;6+JC%LwQB|Yh@dN&H0L6XXI58h%uafFAvm1P zT#Tvg{|*T$GvMiZB!dN(Lt`$Yl4n3pLt=(@ceX$i4smxwPVtzjH4ce2>F&K6F6Ql5 z)=eFE*#BADS#kCUCw?YfRCVTyH0W0|}K%eR~p{~xCS(po`n4*k&Yi>am7|Ft(4R1^qMN`5?RoG9Xu_4AQr zHvF2xdPwT&U%_u7mP4{?%iYEOWFFZx-JY`(_mjqGg2rDy|9tehs3vrK6(A%t=-PAQ zwdHf~K-vi|BCcf1PuF9pq#f<(R6%bL(t27&wD>uX>Z%x(GM(=zpp+qxW&FcP`&CoA zOOiI_{LR0e?}fiXdk|DUCnuyS(vfo*U09_32--;WV?CVGh1>XL|L%PZ#ecSIY7Erm zticBU?+ic3WK6sqt8d6D=*&V%XPzTG9n80}rf$cA#mIi`e;NpoyW!lNI9}5Jzm)(o z?^CrZj#B+ntxq2fl?DX_<)5I|xbQ04u(Q@z5!IY=-E#`NXHt7ef>VQJ7Q#XI9M#Vz zh~1a&n5@*pS$9YdM&yiZ$xjv+)DLS*GloyHR50a02~k;FQ}TwYg4F_pGfZ1;HP3{* z!Fw#cLIKX5qXE3sMW5c$SVCl?K>H@NIk%!a@279}a<3S17AVo|--ezbRl3#H@p+gN z&;(5K0-92GKvUi>g18TjyPSUex_%_8^$|@}vV**d+KUBnf zMuA~Xp1{TF?inMY9uNDBzxDozd?}eNOkmkilaf6SmjevvVhm7cHbwGtjB-rXz(Qvu zd%@;fjEH7v9I0S4(@XjjI&mB34k^Z<`eHg#Q`dmAt zQUQQx)$%VAin+W%&2o%0)8k}fst1u7iHlF}yWn@nZbfiP z*Me?**_wtJxPg#-3|^T>r2FOucM@E`2-0qSf*3T@kq%iEC+z=Wt9{J0NCRb5_RoyZQI;+xP~)(E2DiB;fNZ&;`9dCE!LePe zIin`;6$MMN)bR5lKYY=_w=I?(d|k0ilsG-{#P?YFsF{(>6ES+stS z$Kn>sQj!xJc2A}6Bww9APRe5D)tXp`{<?9_8IitW(@Y+~iiTXp#->o&zl1FuN z?^XBYG-kmlKmhQQ&Wn=9fzDUr{G4}Po0V zea&|Kg>K{K5u4RKu}n^^T!&`{NU=)Wg-qTUrYUd|$0G!kgrl2iSCm|R^nC{Z z>~8g^%_y#6q9lGdH7`6R)qF5(MK@W;q%Xm)bp9Ff7f&=#Bc$%mlmif2aY9JTu}S9R zo<0bSr951=Csn?t60S)nPF_uA9VGKT-T?pKRc?$dm_;@Wf%@-K7q2xVJeiiP+RgA3 zQEbznvm)!56Dv8k)8`O+o9NBS)Y+r1&)B`A`r;Vm3-;{xH>%Q+K^kfez~;CaL@2p*R_2n zel_25(y&te2{-T3C#UDMI?AX3+UT`33&O=p=@n#~bHz|~Kzayrc6$A_ge;aC_gE~n zYds1k0+@yAjt0k2jj+L8MclY07A<*qQxrfg>T1O>r%%{_KEAmB@h6xvc6QNcmFKwG zN-4z{Lbw9^8CzXqN@LX^VD)Cr4cvbdy7Wt?F$s-+nsGK)$x~nFkEdpnAJ66eBR-K% z`}-p$F)eR0@ZM1p;NZI!&bAt+yC6k~@=xXeu*7{}JI@3ycg;{ zxGkL-*TtogiH;@7o2XZfR&fKBER}K&_J2=JgPL9}9)jKa294F!OZDwFy zrs+J7QJY*C&});On|wdZbBUy+)ICFh?caTKi)o1JKaUq?T@Sj2uQ`5%kx6s!E%Jc< z?I{+SgZ)MC! zBBz^HYE+cWPI4NWeSlGWtwnIkHyX(8GSQ-4;uPqL+qX#L`}-!DKBhd1RxjcEEh@YH6;JaO?GPuUb5Hulbm)m)5gwRd3beEbK1_e z$pt^qSz43H7kgS9_=~24ozZnBXdU4%^-?@Iye$j?wan4$V$5tzl+~ysi7N+Z&-~;< z-Ut*As_D#xOnw5F-jnaG?>z2m-)F;=A(2N4jcPr?)5M<183NCmv7oL9ne>`T01lVl zKuTFC-fRSmt9rpDHh7&_ld&dSo(b_w za||zE#BwocFA~DgXFsbwG&%jB0MR&q>>njJ*J#}V$j|{FQ|a!^!AwY@sWw&%q@#Qo z(cRlVzuy-+lB-4q#s5dKr^|thoaZ8lla_E8$CLm{sH(G^8utJ4@^>fA5XJ_Nr=M** z5-|UXGquU+uFBvcO3%QaQN18yQWS$2JAcS_ZKN^Nl-M=YL9`QxqtI5&`bh(NERf&a zk~se9Ou#J-WDUpgwc4N}(Fx(dA-C(eGuDiMCXjPmba(l>a3k*)8D6cFHF=DpcgEN> z$@<{@&fj{qX=MGG4Idy z_or5+NQ(JG%5@KiROc6ZiOGDcy_aeSvy zsjgVrHhvdG?r7xEfFjr?0hOzjFxnew)oVEXtqRpGTQe65$!*CorOxwxm!jVTMh!H= zQie#eo;lpzLNT609M)u#!%t4cNg1Z`ZJK2OfSAfAZuaEEg82N5d_CW$WuK)ZA zvtO*!E~)(IUB$21U&R7ia{mP{qA=YYix^zqK$)_VE&K1VOgARN0#W#p0=6}O;&Z$A zo`Pja7DT2Kw50Fue1+#haI(kP!Uwh}PrjA!J>&m*6$+GbIg=l|;{M?N^(iFM(=4`8 zS%S>pV-A(nLiVWyzVZT4tit}sY#-#DCT8C!V>6qQM{}pGrgmrTpgt)mWRI-;NKS=0 zw9cTuqRE9Lz&{N&57*8E$k;p;fab^NBOv&~18b?@j^W|BxPeqy zsrtK!Wn9u>(UCLa?jES%Cju>qtfmI3)fi~93RI(1jpbGWTwY==o@kt!|F{sRvy+=J0SyWjQaq`J6@}mKX>Uk zC3|N`&8s&PV5)z_s7^7>Nco)UW$H55=;D#~&;#XnE;ZZ8X=UW0FIF4b*PL6K&Sof` z{j1XW+k86kPA?QAIQ-VGeq?mTNo+nBnW*Hm=2H7PqS&DY)O%jo_HTg#tFKJyTU2_) z+dsGvehNP*F|s-v&Ls0uBe&p(H9kNXA`4P7CUMuS3kIbM=cN|s5kVa8mCwldAJgZ@ z9N7ZxW^}PAuiWTNBD9&eN>|L8w19?5FD@rXcx9Y!b`Rn1;we0&L^{#L98xY)cNoSj z_)kwUJEk4ZxdBQr*VQ`kpg>1?#Yvpa>dfi96?8PLYYOKtwbG~b85lDZS~$0ri@L2w zzv&?5RzW=)xN|1?LSw>4j#0VadKAl(ssJ-&bO34B?ncs_0<~iy?KnQIUNiN zf$%p~`rddFFJZ#cO?rL7NU|tsQaAzxp58Z;aV*(%j(Qnj#JPt;zLZSt5iSI;%Qz&o zH5X46#X>JDG&qSgy;;_M_OP<6#eM6#^b!MZq$3*oKL>nl^3XDl*!X*j^ftpc&6K5L z5P7EM#}zBzJOfSY`oVHE-gob6C|M8T`^nbMI!=wnq=pvkCoWQMM!4&=X=zipq- z`CUg~JjN|=o-$jrgP+vv!Kgwf^{^JsBttsyIfglde@oDVboK0R*enGj3%sJbrV*7$em;$PLP*0K zTkAuQi6OOOBxbA}i_q15OV^zQsxh(eIa@cRp4bKO0d+E0rrx5PGod*JGi23}D3B;R z?j284ZabPOmgg|b5bWlhUYy5{9Cbh&-)Y{qvOy^^s4;8y z1VTp_6ub*wtk-crrSyE72Uiw4mgzGX- zsjj)2)`%EOTvbz&-59^g8?t|u7=ygJFETFgjqXF(|3#>&ocyZmNmnKnM;`$zI%cPA z@rtFjL`%Y@+&ydWgjpgIp6wj~La&9rqcKIwvCJN(xEU#O1BKx!8Z=caozJzmWnYG8 z6oy7osF9uSp6Ps{%+D?AvVWZ+H7=euH_5+x0UJ737aNQ-F3VFh47hp32E`ALXsr)3 zAIJx$+FRG9@}XtrvRzU@U$Gf=A{aSI$tk_|Z(Fgz)`(UjtGL6?EXK!kx`I?YGz=pP zk()02sxqy3^pdz-a!YdGTTX2_J9fV+QoOyg;D%bUGmVzg-6 zEqhxaJWxYZ85o=QPc={}`hpFc+Kd*Vknx}1W1CG=Lzi`bWdAOc&7TxBF;?jm-*02f z#v&1cV!?1|a(dx=l>hISqUK)rWF>Vq_kriP5}=g8J9IEQ9$$_bUO+o9FO|EV&>dZr zJbb;}CeV4L7qA}^(|RLv<{EGDE-LA+TzfH#947WkzprpmeZX%yhCI3WMIS7AMD)wX zq(JDB4C9DYkoG_3@`zG-EtYr(SQj}t43GwZ%T;jpKKulek%GUSkzBLSrw)b6!qOb? zz)A&v)IpQLQ)TR>rjwXfbF5Doc_;>s3~5ij7leJ*`D-_N+*NjK0<7&x@b2T9Cz4yc z`mXw_V*H-twz#)wQDr)7gV!Z6K%|}Zmlr?fh*Jg%oQ5SHRT4lm^O#e(`d%s-2!c%s zP~>3L+EqWIc%eB^02-g-3_0@Y4h5nOd?#^%_}C}lmZZ2fS9j@+97LnO%P7Dd=6-gi zq~Rdz!|2Y`Jf*6zwAaQ6g`Q%LUeQ(>|f}popM#GbnNchPH`EBGmS}0;HWa5V5r|-*F!*CO~G$& z=wp`K%KmO4LY~l^53hpBtxIl#XlrV$`KH;}6;%xMz)(hWzYnaI_Er(}TMQ{1wo(gY zHu{mBi_Y{y-vnsJ4BNWRB>30;5&fX2Dbx7lVEPDjS!cbf7LaByM1nLJzJKw`U_)NA z{G}$2ht&M1x#^*PlXd-_?Ljn}#_H*O)0!|v$5DVigBgzV8!%n6Ah4h{ReV!sWJ$Tm zOI9mRax5bwFMX~FJ`SLJcC9H-I=}ag?3DKuUWqJCkpL}wTAYe995tdELjUUYQL5F38JHW(fk6REsg^dTR@Sfu8DO30vUJ1 z%(q;(blsWIZ@JG$lVV7a=TvVNRU%mh4flcWWaF9ETA%>bAn3_s^^o~#in-)$%GsLO zFGy36yJvwrSTU11?NJd!>YJ^56Mq`{rmoHT8jQ{JW!_;|#Ry#qBYS5T`zbq*>PsdS z?m43R#VHsPUeo1q*<|eST6?J&(H|GrWzJsY02SGcR+&VTl;E@7^3V42bDPiVdc!^% z+FklrUfi=m%wl84A+oeSlR z>Si(CrG(L<#B)n7^I`V|`ivA?28*$Tq`GV$%RK^I$lZ0?*fL0*Q24-^jn!YwcIzy` z);1$zla}upn}qFVRDWV|=Q1B#s4_9oe2PmFX1&#ORBS!5TCwlX_&tdg)DeKY-WSjz zN9UX$&wt%gHaueMR6X}Tp^waslQ;xxap^GZ!+X0ldy6_(d@a?X-8`_oL!Gk00APkB zH{jyVER*ROzG>IBzXAxXCeykE#%7?GwA#VS%^AI8cXF?70?IJ|P2l!e&D<{6#cEl@ z>6_}2;m`~LbOfdv33qgZ8H)g&IuY^6&faqSC8Ai9?<`g6;N;ibB~OG#vmVW;BVc$$ zQMJqUokEO%{!AUAw^9$FYQypg3dz2{yt>Y9o%wfbk(p_kaRjbjsA~D&!8m_!@7+66 zG|xxs$f0xip#WMldbM7MRw)_&Qu6|9O%OnNkE4aa7ozH8x{R8 zEdT9Qns1ibNt9#q5!g~J>udaBOF=y5a0ULrx*;iz-{4Bn>E)CaAIP>oclMhdNyO?e zUrXoDC0Od9Z$hK#;vW3bs2!=Jb5y)sCdMh~)Te^qTr)E9pz;5s`&@!e#uGIf7&w`~ zpyMI;AVey7DbZb3n!|ZtbaI!W0SdV9k`Ys#yN{Fi0?^KeVy)q_ttT&a*g8}e`_d`u zj}9QnKk_W-|MO}}D44iBmi`{)zn^j?p9Yqvfks<4{V$+u?OWLijJ~XP)k*R6*;L4Y zkAUsL?4U6>;AC``Jo3-K;&tdtd^-p^dILHtl9-xS%`GJzoW|S!J%MG?zJ2@qBYpeb ze)U*AuPETX03T$J%nsP4@6KutoP=<{e(_Set=NfIi{_CYci-kcja{@(48jGfYv--yjC5JuXu9o+^>=BoD8#^KbP&mk&v8T*sM#0hRxxlI zKL3=W#3jzgF!IYmS?{e&3@s{?Mpxo}p;e=4*Z?U*)`s4$GBa_X@y^2(0(rJ2uZm=T z%7KEWt(`}B;4}Nq2G4gy?izkzZueO$U$5)9FJZ>>HV@uXl-Le4zr_>ipWn2hv=7up z!Gm$yHQfctXV>N;LZeSFZ&hq^0LSl3yOJc#7-@>?EXfRPeVWqv8%Fjb*;~9@r8-u)+^bMx>8D*&bv zhkQO$uZ&Sp>tDel^9&1o8<;{}qBq2XBm5bzOv^W}m1_ChcASL)`)@ALjo!{Fd;3ZU z2du!{-5k2vZU0J!y}UzYauc8Wk~Ib)>}!7QVm0``|N4(LMTH3A^BboM~~Gc)y=gn4;RY)JRQrabNP`+!m&)}je_#pdGM60##p@A*JF%+ zx!?jHHaK(SD#r1q=aV(Kl8(_FsK@li0UB*~!;8}61pb_}D!901u8lJm%3zQ@3BwH2 zNMHI7)x;O8(Dsk?uBig%T?>StFZN5xIE7>jAJvXaB`1aOk01Yu5PYp49Bmr|jj*fRwewWmt3 z=Mp#-*Li8{L+cWvW5&c_ykz36^f?+?Vbb# z1n$1Hx!%Bh+=+H z*B7N)|Cs)KuAk4Doh($x?vXV&eo!5zjfq9{n&ibx)!gj|=)O;;GFJ3`fPKZK;@ z6X2XVFz;6rF8tU4@j>i*X-u$9+DAyvDC2J z6Pp=6+ks8>F8QTK!lq*(PA4f1f?JLr1L@3j$o`rv;gFIuR035-ga?)XJeqJ&*DZ-p z^OO+rWW9p-$Y3qmaZAC*@miAp8aV26Mx#088hWH7Ur=o&mD=}w%RE+6pldC7($R3w z#Wc>G7C(x_(K8x2*n8SW3eQUW!uu)4RM^nz&dR9I)u=;d4iUAne;9-2_= z=GRtpUe;ug*-N1NIsg7lar-cmch9hY`0K2gF{am6k1W?;-rWdeK^~wPi3E+~B{d>E ztEknel-qF%26|`Vl<2VMNLt?BvjLC>{J~k!2{P5O`&g}B1!&q^a<-9g5E0f{BRsQ+ z`ltB(ws!GeBA1I-9D&Exkl^B0MN(u%2BYVTFKuh4+kPVf&&dCs^#0^d@IwtvVS>e@J0)r@d~Tffn6@-cv131ITLx^!(M%vq_u_d zPg9lBMhhbf2*;N3TM%`oDV!XY!4fNJa_)n_dsFS^O?LJqZO(a>1Z7u~XykrA`!4b3 z1UK#$z;PWk!Sq8b2@%?@c7XPNphtzc%rsbY*#uIPzAE<1layWkRAC7>a@>Mh^$s@blGHU0E63;iMhi^*iZ$2S z&&BliTT=~{&-(I(ZQ}I48-IK`B&9zAG|5)v1R^B;4+xsrBk?4&64 z;|32w?W!;~WPZ`RjVfqp%XF*!`+&FyE{@a{=d#ig#xj3&O_tRtPF;8bN)p&>9R;-9g6Qp7m0OIHr999eTYkrF>pFRo$Af!5whLjE>CzE>d7x7TC@T}nH8 zwpK&f$-~=B;`K|Tf68-yeXgE_nw=C0_JN=hXT;4E(uVdp0v3bn-9Z>|&T*?L_eRs_ zjIlImM`u{Pdja2LIyP%?GzK@a&ov(%uhuIqsO#e!-gSBV=f~y@&0V=&n1JE6(VCpS zzb$@qzp4}3NEvUAoPi4%9oFZ4_ekb7LR%+6Ff;BnmEfQ}AMmNAXpOP|G`X#86zDoY zxVqF5hx0j?s`Mqqw60Q4(-xJ-{Lk;rnT&#t8w&1au&IP?m11isjM}d<3+yz{O*(9h zBe`2z&?nKnps54vo=T0G7z*H{HKSxcFMt2_pZ_O5QvJ1%NsO1mV@ygL8q0-Fw8d=H zoAS_WPFKwdPTKyFh}VLQ#hcdS3~Jx;k2rDK_jfv}{TD}-JekNwa4{%M`1 z&4VHEI{3&8BQBl4;;wFQL+$*0b2yH~<9<))@3o=qsmXn{op&oUm;-rZOyTP$SAO`f zuS@Q31NnCqtp1CCrw2=I{8#s;mkI>)gwkw(O~K?*a@m?UR1vYd#ou~^$q|tgK(;F5 zRQGwvX|lJ&{$F4JJ~Kk?9kc_$IzC#{nI-2eQF zk1Ly1?+DTg!=Y~&U(t5C$Q$nx?vSLzBQe|F`nRXpzcZVokb{#om}Bh){2QEAH!DjD%roPZ8;2zqo}YtnEBew4gQ5+E^K44? zUYFqw4sJZj{$YK*d40?)yG{&QcL^G#2sx!e&TBYo|2$IG8XipYAuWk_VLP*Tgw3BH z?2(*qrQ5%wh>~QUuj$}K@MJwMX?3=(p{-Y-r86;-@a6O4 zejcX)=buwx#q=OJ(wMlR7;iQ#F_g+;v~mS{dbIm*ITV%v8q_Qjk4$CXa`qu2LU`Ky zeNljmnD|)2^5dguDjvE4QfB65U9t%UpUqMd!(Mb~^9Dt)Qg~_vMc(~AC?9UM^BO>y znV_lkQi%SOrzaR^bIz87Dx0Np+|&qc z$hGoBXuY)_73Z(m{yU1Vv4l)7siXdKDG-Cv$cr~?&sxpXI|(06|5n=b;T;*||4$bM z-rhKFB|ATQpnl6iIbqR;WOLEXLA*~g!+aq*p~E6hooimHfZFRq#qr~2t`qq``V_A9anB71 zzYKPf`;n1S_rZ9y!yML>ip|aA*uOGKW5|SqCUwX?YEkyjN1!~Cja3`#5~HSt$MEbj zCqU|h(9$};)&|?nuN>_4MEoW9+H0k0y!Yo_F-|qnO)72gj^;aCYvq$+mI~voR#fIT zPa%rB;hX|+W;ymo!%BO3B$(K1DYTm<-Z49dCg(IJZtSF8CH6XXWyyjR?#ZZ$Ke`yt zneS#{nHQ8zv9Bx$^&3xWcqG$_(>0+&7|5f!qbU_qs~q^*xJ&2Mv$aZO)yO=c_(&E+ zkAC*T?q@BhO97mBeGF^iEEolv?7@@|r~RX#yBr#cjnU&KW#SBGn*Y!m|M$XcC;vCE z!}xfB{EWuohrKv~_8ShbeX^>~*>ZjDjVi~*{Q12iPGt<yHBtivPqBH7P}2i>n%5a9NYo;SEzTRKF_>T#|*J198qt=3>T{3MG{k=%O`X zMdlAbfc-}b^l@K49;=gf=haJ6o5<>&XypcZk<{2{QnNKjyg-hWh;vHoUL#P7lV|lU*JA+)rs8! zZ~9Mvo8vH+>yi00E|j$ATr*#%+_audl`!U~M}C~Q4-x?RSX5fdwazXC76^fnJTIvp zpIbBFFmQ{2fbjDi0h-s>5~0PLJ#zn}mQ>Q+GaRSB#_z&JDrIrgEO-T&WU9tVE z^4;0u?P^83ZT=_$Pstc^xRm@yZMgsWxc>Uswe?uzX{s*6=KsX|QZX2*-SY8V!)%^+ z3*Jhb2!zDEh^?=?t#}ITPtLD>M@!CGH^hah z81Ku3l9DdtTJzTvx=)^ilUV&MVLjD2@B1G@fC7X;vA;S4XPi>DmO=F%#czdNCK-d1_-J^F^qcVOcKZ`YR zwy?2J8w|M+GZ9xZ(jqh9AAEirzmi50UttIF(+S&-G!XM3iTTftVtQ*!(j7;H69t1v z;-F97ei0gr+||X;{*uq%J~KUA(wSW2H!CRoigXBZb+wR|e|}w+8+^ubUc>WvzG--x z(cw;?G|v@_{jxR@g16b8qdPMk+en4MB=Y%MZFFv?oxD2N|0@=>ZwJ(-G$Th}6FnpO zIh@Iy%8D(>$#sJOpiB&|=I*a-Cct}m@Q@V4L*K`~F;%Jd!c@ zRh^Sifo`Qj(^p>I7gOEYQFbk{)wN^+fO*OB^Ux@M z!%ncS3<1i81TfMrNgkBT-s;+?Zzlu{HPF51qM5-x>%{yY+2_(9dU&;p`CZN8DQ1!% zV%)K@f^d8Q4y%=8BV94_bBz*Mi`3boyN;GFkw$m8aVNJDvkLoHA@lCt-}iOjRMUMt z1^&bF@Wj)?KHPXHtfiy!qT^56V^{y9$W(tF_ikUU6H+Dl;OZN@FVqY!b*PlQC`rEx%od03}upIzA+oA{eMQ@wjWLZq_rwhzs zF*ug&XdK#D&=ApIM<8dWAP>hoUG7>RJQz_QDG=f}hyA;rn#n3j`zJGR@pzatsKT6N zB;}%-&AH{AI~>&P0;d)wxlN660TkN2vLuKO5?43?X*K zIULxsWXj44`AWo?^-s9g2mv2D2vzwKE75;$Ggy1a#9fPBG~WT{n-nEAj zp=}y+ylyco|5?nyNl0OuQ;-BG-V`GlA-%0{^>u5wX|OWCDqqPJI_-~Y_wysF-D`Yu zRi3jv9tsCf+5i6M_Xd{b=p(b&IFD)GxBZI-38~n(TImyvjur6}!w7Qzo+>>;z{v{U zwRt3`qBsIwX~2@?uQ}b*;ER;)=V(LYE?eqvWP_;_-||`%DNCtDfq#vUbZ@gMX`V)W z?vf``!4dh>Or;XGQYPHd?&tr)I#7MPT2`l#R z1}mt@I8hFBa@S?EJ#?lPT_C z6jMWurlj;GJwNP}Lz2R{9KtMb=R@-o{^6$E_|Knfl#{>3q*~k#SZs=4o}WFllYpax zz&ViTPdTpA;xR~ju36*`uCM2hk5%xOc5JCeu*89z7b^M;zhC=^5&!<)L`F)nER*LK zYD08%MNJID#_a$3ef=Y-XBQaq*zULW=JT~}^6g>#Zf7hHH@Ic?&ymMr{(lE{H#^UV zd4(GD%F@FbF5LN2e2jpSrCnaa3h=<&ZR@=+`e_+v(4#jMZm;H#v17&+~WXI%otK}r6u_>SMUqt z;_NKNR0oQ2L{>If`d|pxC%dL;a^6k9*1JEn{sWQ8j1)rn?aIbm?eF86GAg*6_c)K) zRB~O}8<8etO#F2^7u5CQgjko)^++y_q8~?J46bbXC~@R?g9)Gw7jvOsI3pZ^t49~Z zkpBD@Z0K7J^6wD2W|Uz=Q;sY-)u(|)i)ZnsC%tiVa^Svtm`)IG(VwR4RXw#u!V92D z7kQO>zkfcXZZ&%Ok*ANxO12q~KJ46B%?h3nmjBP6`=1C0A7LT8_twqcD`B$G$Etx= zcg?)&B3|=q!@loENYG^V;uv{p1AS|*jTmUA_kCtT5FuXSW}D{>RG0^!J=(C-`$PkH zK(6IaOvmf)SxIcFahSel2^&;o8Nf%UcURBomlt!y`-PK6Rj9Xc9gfr@KF;Hp&}f%L zearGRx&9y#*AnBZ#H`~-+@OWbjV;H2JiX~18gihMMdXefHID9~onQ}$KWgati>`N~7Y@$@;KgCoz z)M9fh0setv?JeO@vY=MnU^R?ZGig=)-n}pQnp^5xl7ZHg*U{WgyOAjydAT4UwWkD- zUb70$AqX|H<4vijynDN}+54vSZ#`}3_`Co8z5VlR`}fZ-K*J$&t;G$K7uml%z5n!z z7S+O^@y)k?|GEG3`=*ZYhw^_58>->rWiBhN4OE@4*AYoHC9y+_a?=VY?_%Kv6VNkD z%< z5ESP9JE=>MwNh@CO1)hBs8oR?K$C6a^KmtP@A~|7`Vs=_Jg+Tu#c;ZB_3~bwFX$py zc)U|GT_^m%>qOVH=`DF7ald=g2m5!6LFpVt>$Wf6HSCh#)Ma5Z?_vK_WM6-TTPoeX z`##Vg=K#{a*L70c`oP8!`0t-v*nhnK{Eie(41W?WSI6oa{1&NOziOq=m>ZN%rtXCO zUuf1a@g)1VmK~)x1r+u#CT+?HB&6Jz+?i_sE!#2MO42C6r1#WtU!pF34gY4bVDVK# zKw=avdqX1e);oPjnA(kOtz=4B1`@MzL|E8%VhwXt%?~igFJxd1*ZX7*Rb|WTT5E#r z%i(}FbVty){g2RKp4lg|GQ0#lVb@!IS4d<0@-Pnp+H;AH=5eU~u+aYLJ7}`l%m@AJ zoR#2UCYuHN#P-yp9JW)#rl5WD4BH$-&Rf@%7R?2DMte4Ap7Jwean&3dQ^(kN z#W@dqRH?H6Rl@!cYDS-WIL0dquD-or5tBlGGW^?8+3h7Z#ju-q9z|NR+$eu;T73da z;DtU4^ij9EtGmT_sb~H9CI5@dKrL^wiK?9s;7tfK>t_lM4vuj(z)!vP3@GFBfHerB#qEo zqX5T_)Xb1sWy3T&=Vjz*u;j(;wWqR8?EodQ*-YQs%lT&Vo%ktZueFlGh1^Neit6X`8%F1msUY6!yOiVxW=aNNQEK4b$f2fqD?sbA^UC)i6$6%F#MRnV~DiIj3;1{0UMZlrgv`{+OfI*gvQsbr4IMj+QZxLxb=h1dEhA z>dp8>H1#=mUrvnP+y0rv^i!@87?*(_ei^`slze*97IaAXe>JI@hPyK=Ygg=vp^GV< zc1kZl<8`*~ZkMVodb7u14(0rj1@TN%{Bt-Dbx%NsMbf)XtfozS-V(l^s+1$#bCJ0x z?$8q$X?*BEh0J@wv^T1QKw4g-emU*VMH3lu?ykRo$$Ni@u^=*ods4~);-lkTSm}V- zzl;2^{fV^a&kZgp1cuKKQllMWPdZO~{v&v`35*}Jy2|0v{kyW}a#geSxMNUf?J-z> zfg`nQ_s~S>cMhPJ2IrU2g=+l8De?iO1Y(y-xpcFWSy`sw^^tlCnV04x7*b&B0)H6V zfSDef7t^mE$Vvz(-VQmT?Ej`HIixlkV+&Rz^!|=4VM-6S&mxY|t*;Z25H}Mj&TIiO zZcOa1M|)SGv@7~AH6(k0##J!-55tIR-_Xp*^eDd>;#D@Oql=C&3c|SOcRvc>PQYoD0+!$h5zT<83 zM_tpo^H^@nmr=Q=2EOL%PA^QW=R zhn*f&pL>p#DgTM^^v~}-j(`VY^!nxe#|FQ+zED^9qcBegoyj-h(j)2VU2~OKM;>mbdiq|pS-ds4bGgd6VrD@az!&Jz z?Fl8Nuod;fqD0aCILW|Du*;3P77#K!L8(O7F;X;Ccl+q`!jmW1nUQ`k#K>u^m#4b9*(V@a_TstyWG@n&G}YZzY=X&5|<2 z1*l4j6c(b7TOd2^`KF2vK6w;pGLTj)3{Fk}_|Ng$l zxe!6xOWPwr5Nhwoa+9ra)Jc_ZU+d4%U)oV%FxG*N#4i4Say1W#5?6_dN_d?8ELI+l zXQ6_~jJ{1zc62g~x)%bxy|a{VDfwR-vTP+@N@?7pSk076>W8C{_qOiU{CU~rT7>zn z)Rhr$;Q`qgOa?Rg!JoVx^*g9|`LSj!(ayOjbF0ps*|0_+seb`oGbPAk@O-XOl*X#{ z$HaZ^3!Bv087J?Y60l}ztlYdNzTBMJwymML-Ww=d_}lnTx3-Zb?A>=x0~`8t@`TSX z);av?cH{}1T-TPck6v(G2XFC!7j2*RiV7$i6l<>TYWw8D`e%o94tW{P+W$ZQz5g*Uf|Bi?ctr<_C34-|dP+Cx_x(57G2H&$TW*2A zsq#kl-1T2O&3*I3N|~{hwL}Pr`zaZU;i4eEkKynE$Fz@iYacfeLX0q|_8EuV0(nhU zsBSBj7+i;Yn$RFgKPHY9`2RC`o^r4*+%ji#jn?+L4E=53kTxmFb#khZ*V1z%sgqMLf z2%5z`RO`Wza{Qk6q;^bhB_tDItOnoZk}}k<5~BG59jjy8i?Y)+e#n!&N2NM#0eY93 z6fk1U92s}s1i##93`du=SwbAA9HmhoQ_SrFtk0Rlz%q_LRaqj+4}NO1Ra|8J;RmKM zms@d6HlLuV^8WdKmnZ)dR(*4Nzr33+2pWt~z*;h`9@1CZ|3^N5{qyJQTxfH{ORQ#t zw{AVaLA^52(X!)`+NZBAZ0>-FTokXF;r%h&)O}mcAKOMZI+YA}y_ZlMx;KR{ zxth!3uD9prGy-f3afuXu%anxugr~W2f@0)Sep{aqWeF0P)5mwr!hH@hTkhC&OFNE zdn$08`}simZ04-llC!!!=CRHLxGTbj4zh3FJt{urd*-w=<=bk>5qtOq5NZmeMx{
^(w?@e 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�Tby3@`&MivTYm2j@|uE{tr1jL3bpg- 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

ks)rbxa-FR=-r97JKY5 zr4heYu8hk3nRXv7;6O7D9HZk<&^lqw4T!4)Tpl9h6+fZsSqVo+;38u7+t}y8CS0;} zZnVi!Ah)x7j6X|&j$17Q17Gb6SL|H@9VwQv=*SJ?3M~}^=UFG0jiSv}G<8}2{V_|g zL)&lH+ck%D`tIA1&fbg7XbL@AvXKJauel_BD@x(?CDeSOUqfKZ@HA_OsRp>b$wD)X zg*`5FHlz}kPm0Cawc*)BqkNmq#m&|WTwD*&Ufv?%kzC%?+++rq%&1*jD&co;&e)5) z9t9U*Mb{)TX6K6&og~sI9&=8?#6LIDM$NhVIIC-xQ~A9MSgx=w*0GSfZ-u~|bz%mi ztyEv8O0exf&aO>-DqVj~DJCzKAvzaR5&(4lKAt`O{emJJY}hNdy~b-y%%`O{fvSKJ zT8)`Yr!gbi^Y@80|DIaaaP?lUFcwjKP;#3JD5k43o3xyA9! zL6~ykPFu~CEQ&{li=9!7)_?+zvt6B?*~Z1c^!=-ZzArCLQnR!tLhccQZu{0?geC~} zrkVp!an@G$s50B-F7W-Dlb95qPsc3H(wT3rC>zQ0Il7rkjrqB?HC6V43LY+dMvZj0Q2+Llj#P=(7^S)xc4jqS>L2 zK?y2KZ|5Q6r5n>dvB_z6>rI`lLqoE@X^Vj3Cdaq{u0tv(%N9HTqYIFN6}EqImOQWw zaiuMw$*)&j2meXwy(W>V;Vg6q{^>YaC9or}f2v`Fwxdbwl@>zqmcdfnIVQ{uUE?PB zWT`8FCbZd?8izC-ozel1nsjyxEa~({=iDl-V&|ylI0ADvBTSlgK4z5fEf=m07fk2? zg=PSjtRtWYoVZ%QF79w4NT`9?^P3d!VMJWM?HA}k0%@&^8gT+ETjrdJ;6(GfS?&LB zEnH7ki=4?UZ;Xs7^tnV@(Q-UkV9dmY*;V|LJ>@ zjSt@$|E+95j3a_Ga^Q#k->xZW47NZfGqaLOCff8clvrSAb_zw1*V%~l_; zrbUXuGEKP}toLx}n)91k3tR6ri2;6P7CIvSsrMy{Q6z+n5|d~-M%y>S74c-v43cTK zUf1S)#Afl&)yv>8_&o=vT8b&`wk!8LWGPp5q8{|w(loC_H8G(O^AIT{XHw-QQ`zH@ z!TKNzI%_%R-!D?X`AIyLdwJ0d7=ag}3MZ$6bu$@&?U!%Na4OAvNzFLzvApn|k&SF% zabyTpyk*CWo-)d9wHEL&&NwvwVaSY>5@7g7#T@gEXJYR_nRw3ZRy(QSX8!q+9Sz8s zyD8(N*QG($?lao5z^#cg`Nn2?+=0rb>hiMC@0if1x_Mgvs;;gkIKV}hoKG3K10X+U z`+w8A7nK(g26JVXahh|V5oflwinWhG4J^F;DB8A`2wR@<+#K5P#d8~+fhTb1e1PXm z1vDWG)~Ci!!&(sJ;*W~J2cMPni#c^UCOn zP#Qqn7;;s|xl7oG?9uO~^DZ7m!x#8GXX%QcD01hdD_;zWpGhnSB%!*Tn#^D-&YPvr zd;>9ifaP#37`*xdZ|b&F2bo}S!VZTNF4I}wJqS>RqlAn2X0k|MsgE%J%>!Ti7nQxDf0yS7>No}0mdb>w zfOI=XdkRAXvueMFuN$1|QUqy-e#F`4rv(rB`s#w6PQf~-$Ji1sw(Ee!w`53t+>>R& zrhE1}QM_ku>n`vyut599&b+Zhz8oVYU6%t3lXbyl~qDcIAyVG`O#QT9)kG8)huXtMjPT`svshwsS@zt1_Kxwt(bpF=SL`fvGv z29c5l0P+=exmLaS90AbrX7l}K+p*6!YxTcgSO5{X@w))*o8&-rZ`~C8Ny14TbZLqe z#^qIqk@+vXwX}by{boK~59D(okzSURz1j%`)&gbwgVP})`HUV6?)?oVDUYzWAq$+t z$)^~7w)0R@Z*%rXT73BCGK6IfOSQcwCj;BJnZBfn-XYD7x2)ogSzR-OLdcXGYy8J+ zg{=X*nu2xRry2{Tuyq=6ptW?6SEv1E0%RblbVw5x>H$fvL3?eyFV6)&%cHAtSu@T6 z*W@0(F9v+fZlo(5tVs1s?w4$Rh=fFqIa)}vZ8u`x?e(8FBZD`kw4x&jbE#c~u4eq(McNYvwL}C99NXU7m~c{6!&X zY+WOyM|VTUg`S;QyKc7HICBYdu5e0?g2yepmTuvhpgy$_R`D>Fz-=jz$?NEPDC;x0 zef7L2^BN2KdtziE4mnoR*nxHIH4=E0diLl>s5JNt_yhI^vBAjRU z-slNLB*L(Od8uxDJrY)Hg*{>J7krV`BI(N_`?GCu)q zxlT|ra*_U?Y%^z?Oaliq*G3W3FODZM}z@qtN#AphFDV%ZsA6Br@bw#{f}?E2{td8a{uWmb z54NpYr+j6tLBBQbPYb4jF|^(@YpYIvBTmvsKo&Ju|A@p7z=GGFRCHtY_!Lls~zmoj%0yod4A`Jz-GOj&WaJq0Kh5(8C6 z40`1JApWYtS!Sx|T7@|{S9F4!>CI$N(PEFoG1FaDKu=EYj~!F_%s1Vxsp7I)l=zzV zFZPHUZF5QxfXR^a?_Uys0{vh_+^x5~r^=;=o9syEQjGxhb?)IvSF*b6~;NZbpr%R_9y|4;%2r-ek}A zwg=`$X2lB!;!F}X5*-u#C;Br<(tiEv{2?!xvv8{9jpkj>H85aUMP*)FF)^roBNHag z<12dNU2-;(vN%uzG210HBUue%M1(}mu)g6JdKkV>w zl(9~1hQhMCz0{nX_E;4`AS5GW4UGxj#b^lH4UW{1R7X3vIDJ8&Z83+(gT=>MqM8@Z z=wM5O9kj0y!Wn%{baDL>sP7YRG*kCI1#k!!`H}g-+s)fsOrn?)$?pxHQr&pE)`i9@ z`LaP`n~oPYl}yE}9Lw~W`_R`c%&2k5?)exc!Tq@j`Pam*1&wR3V$-mv>1z`TvDht= zR0uywWktiwM&V|pSrOPDitRwg2yWIDv)a~mNwNn4Yv#?iR2Hi~xTONLn{)9dz@S+Kd#7+$lX&&?ugs8o z^}y0sj{s74GgYxayCv-mvo3zj6Ahiimzs7?q;9f@a)uMq7kjzl_(6l$;esH&E&~+w z!={p)L?)3@939Yo^b5CxEprQ^fDUbhtYquyEOT*wYC zN8&o={)-D5P$TVoPwb*R`F#4o*1kM8^^p8r4*58DYC3mhgu|5Miq{}cZ~~PI=`d)u>M=kQp1dF?WC!Z?SL((M6m=d z@|%&mJs)o>Nj_wxb&z{wTzth~*Vk&}?1reE$x01KE!P|Q2~LSE%K?f!Im0~fEMhi# z>B$HdQ@m1WM14h!C@K#i7gC+-RQN z5#CJB?2lmqx3|_cD;k!_kJdTS$|tRfmrIe;Pz#`QVIst}wVfC(d;wHX`~Ue@yqxX7 z62-YO`?XQ@~>djDqdph|oE)nU>u9 z$i@|*OiCoO=u&#Y~|lDcoG;-DWT9?M#6|II`ljDG_XDI>Q(KLpc|e;JmkH?>Uck{5CGym0Ibf-rtuha$a`AtvaeI zF>;19*P9aHs#7@_Hygcvu5me_bv)A)KduFN@ZaL3#L-|`Ve1W0Z?7+2CgRM$;6zpm znxU6F7wr6Vhwr5jp##Soth!@XM(!?|JepyUry&Y+Ko+|-j{kvKNg)-# zJ->fUB5tZ5gl+3ZH6Z}`b<8zMr{k4Lj)P-P^%l3eZ%>Cy^wD4x_w4;v*_8$cZyPp^ zc2K`^N1G46(v_>FqC`GVO=)_#82^Eta*E0JQ;dQce{lX}-z7Xw+A#T#COEu)afdka zZ9?vswumv@Sd$oY*-#t-S|o#^08~(#+QbUpwH850sx?ku@qV-T zp;bo76MdE13s;S^N9NT%g%q~))-)xX1F8V`q30*saR=(+fU zIR%EuMB}__gMg6mX-r9KZ_zz3UyCf;xkNj;yq0pwJx9<9x=styh33+HOPKYQ5sb za-6`|YL)C+KfTl0qP|Bi#2Q?i%GZQl!Jd{f_M!71(p@4;^x4;Jpt}sRz(oh}LjJ=W zAC3v)n#Wm}q72PVm-^>T|IPDvrn}53C#ZM2cwnI~1q>(2?UKuGph$IO3q-DbIgYO$ zn|)7(PtDmocRXj8r34~Zqg6^q<5ypubk8xZ%jk{6GI+n8 zEYs$sLNzqgy-q#L-a0`p0dmYFi4enA|IRRe-R-*b`6EurPJHKBNJyU?26GXsjO|)C zR@yI|hZ9}k&&fz&QWMX$^9Xl(;4?&XQ`-CxJ2t{6)WE+=)q$Rrw{;)7?)X5`=Dj2e zfi8`6l1m`0r+yjbRaHY~q11?tIUC-(=)I6_Dr{sIFH6xS=R~R@ODn%=Q^heKXncP5 zUIX6!ODf?G30vnByA|HX- z2_!{Oa-UYkh~8)xEH@~q1kf9!&wQ<;~omE`ypY=xK?g=y0zy(3A?Vb6I-W7NN zVh6xJ^vSK7z^SI<7$5Tse$oFr@*ikCQ_WTn{rSj*=}=%2*i7$b&6(SK17_DH_}_aB z#1Zp!P~4qbB+ak5GtH=~7~)vAUsshy`7vTbn~e3N&Q z*Z~UUjef~T9Wa%?_+7KjfDIZYks*C`)C*0i1_6J81d)hqgs5ItV2aevC2Z1FnjJK|h8bd`CeNcZhrT%^%x zW+@>WfshrlzkH<*H!2@8zo@Ez#}yDFlc7<3XhY#MI#%M}eN)Bm(&~x)<(uUJl=aoB z`^5kGbRR?;_B&YmVXuqq(=CA)H$Ec;k}+Pu%qBOc z>%6&iTY=5y>X2eS_c4k2!7U8H6y*mKZJw&W?qqfe(6;$Ip9ql9|2ei<-x3Rr|LOD% zs%>0;GnX&_-3^&sd=gbHc;1Rlo7r*U@pLEi4`G*PgO%_XUixb)#(SJcM^jB0@`h~| zZiaRISc58#K-)}@IG~Y%sqtv=k6n_}^01#^OIG=8^HHZrm+3BTjmXIx_zyRG@R~f2 zb6FA-tMcV`|pAYOd`&~ zQlt7JV0@y_*)<&c=zovd@E+S_UNy~EO3y_MB3!+5^ttDtVe|Be{D7yDnc$+`O{=?3 zyq3D;h82qu3VWtZ zL*(}6i)nL&zTPD3rVl1?h((-p>z0Sf*sBU)Bv@X7p{Yk!leH{4ZeyasGq=?pdtq(- z$*6<@IZgd{Mtv-3W{p|D2GC#yr~a6NDFO#w#oYr#dtLH*5@3`P=7Gh z#P!=Pz}+@mUeUe#A{cYf3A{fH0VIZ}mAT(KBV)Y;p}Gn9D0l*yA526sR32=rCg=73 z_d&eeS(^KKr|fC!U`^CPqF~1-G%FO|QVxm1uI4iB8M=#mt~1cwl4d>fr?AVLUfJ`S zyk`oxueN!Lec{SdAvm*)*b@)2e1{4;S3Ed;E=+|H;eG_bg z__17Y!Rs6VVd}@orfE`%NOEVvNv@-ek9=iK19dUIH?x}HgdehjHOJ39jjlQF@K*(O z@DN?hJ|N?cAZIo?JZ)kXku-8P-?H{Wur6g_v(XZc3EcHw+bO}RP`AOWOw;Zob?@VQ z{HNL6Jca&0dANMhln`5ZpOGTG%U}V2uR3xbc#4&l;|>mVe$*hb)N+{>TZp@S``56_Rh+2boI@|&6P6?L zFHPcX^cv>Z1$f)I{s;MIm+&nMq3@Ny-ck;2{a6?a9u99m58CB%tJ0mJ6VG-Nvw)$b z6nz9}!M->uLk|=0V5sV?37GNZLN|eq&E3sI3#xc?IQXZ_%GO?&>@N%}Lp~8@4-u$Z zCULA8>f5BftrOC06MwFpvB#9zbb|n*m6#_Xo$UkI*E#IkkEZ&^lqYTzs3T0cvPW+B zMX;JSP(W7OR=ZY7Yd>Wsbo6MzT+Utc)PCA1=k-+ZYxsrVr9Cbm_HM9@@Telt7+_Pg z7^rF5WJ?qB7A*TQgg%3f8ev2cJRQCN&ceir#w|rPql*!U4T`Up;>uokR zVo2wQPa^F@obzlUM>9R5-xt{XdJWI#WPjwr((8(Ux?sG+VrV|MVV9=6Lw+J4PTA&w z?Jz&x_t|$`=)^JPT6Zy)**lbGlklVbA8XF%L*bS1ywCTW_SWxq&*WE%R_&&?m)-Kf*84Bk`{~-*doZwVB~|{MjVsway9ncd9c_&--XcUmwBx zBPXl)nWRj+x7B^pX25R=Dpzg|iyIWNP=hWTv%e6r-|wcn{<@}{99T#B5$iBvf_d@* zhdB={dCYZMk?jGl-Qq<&xGnN=IPJYs$Mk$+sXUBSgj%~kx!TKewWCMGe@@N#yWGN) z>FAr?U2n!Z%IhlU^xi|yAxY-q0C-nDc)}}k-wV=(-4v};>k}6p7Uaeel@*tlU9KLB zvy^}jbxsrU?6sYoe33M=W{a!voD(8P%eVOV<2s-BrZ{Tp^5{yy&zerQs4)ng=xP8) z&$5HF9oTX#WVN^@UN6(fYtu#WC}&~#kbJBB?#t^Y`EL6`cMR-~ChvLJF@&v>UO_WZ z^ILiWl${u!#-zrBD(A+~E1*Kolm52HzmapP8gkI;SohPXjxEBRbnnnXoptY!O32Ps zArugRLx)&5Y*jOt9Q+P-nY*!_F$_tn8Q7c9Nukf4<}orO>pgD{~?Y-CU>2iLJa&?TL{_GMw}BUB~7LqmV!u16Q#hJn=S@XZlb zWkZYLRf}jQtzC#_MyJo+oVi0iQ}=8 z`DX+QWQy8f(vx~~`%Kx!1iw!n97zo$I%u$>4%N{c%c#tcvR#tM13>e>*f+=|Rjzw;^&ex0G|EMD9!^4g2A1-$C~9|ulFmZMCEGBF zl*YAF=x92qY0pCme#ie>^8fpz9DxvJr8U5AY0GMPNr8^N3Z2a|;w7KBfDp%B&@W)g z0jh9h05arG={ebe=BM7_Ux&B9%gbW65jiAzGV1vh+wOf{sgk)y?kR(o_=j%VrBc&s zkZM`NJ^5nrXA4BpPEzh)INcnjuTtt;{6jt*Qckl=wrx2A&J+9OSq3`=HX} z2<+BQyQJHYYyoYCCcS(NVGWH`)X@ZSy|WPsjXi5zrsrdMm0RF_a{RAP;0kEKhTkoIy%R5kKCsJv=FS$^;Sj%V(SE&%V z3!yDu(cZQmErs4Gb5(Zq2*m`HOnRI`9fhyM?_ag3K8swjYT)1Uhs(Pn{$pmn`~6kP z%yEYc9!10GD!s-4w6_-Pm&+b{AS3e>$A9#{oqMZNmwpvLGyY#9*@m(~mMaQxmrw20 zUyAV!q1;RI!#&OHVhS%d-OnRp^=(j7qG0yL3bw3k9X_ppK3NW~k&i|_A=$e3u;;^G z@z&KBLL09<{w5urc2=ZV4Hctp{f5?{{Jw)!re~O28zPG6$&4cMHOmOQLpMVC>mJ1a zg^EiP{G#%;b_Tvmg+IT)R^$J}pU>rAzc1zW=W~-ZYsvo?M!;=2NKO^!Yuk(eMQ#rJ z{0Io075HyFqB`mdqhweW`$lt}{3c_gpU?vYlB)#bT)_8ka;8%y71sUlA%MQ-xP*Xe zXj#yaQAH2-%T55ihsa0#8%5L<0D^&#Tk{f!+*2NMO|`Bd?f*E2HsG%s{p7R8+3u-5 zAPd#Fw|zZrzvCiVQ??#j6G0ai!;0$t6Xvboou-T zO#>K$0Nj4Dmt%3S{3dTtGZK;OjAE~0PY}?ahUi-hd|)55IwwI6rclZ__!2Dd$1W8E zi+g&cZFA=6#T(EHUMX1{`xTZCxMi(j4=|`jT?> zMIHpxbu9(V=nUqEoI|m%DyTn4PEH?E3sh>w)kJr@!zY#9%JU&IdCDbILn{HxPhs8! zslXE!-w682`TIHbtcJw8x#Myg{#DHmvDZ*}Ko))0$mVIflLTj`iYov*83bwg?M;l% zPxNAbu%+ZH^@i_3D>jRo+p6o_X(tDD!R5=9T zwO8fy=Ta*Fe?Bkje_!kCxj+PE)V`t)mnAfrztlNqO_Z?r)If~T@l|?<=c+q8po!p) zjwV9XnPIpY5257t*G?5C{;8bL$@~Eyt^-VXJLf8>;=k1V&LK!51V_lOnzeNcDfs;{ zb@i{Q(Xsk2^Rga~Jyi5P-FBOAQKr7bCZ;??)MEeg0+**1MmV{)VmmMJ|DQ-epip!& z)l*;k#5P;N;f-e~3=*!i!NlvOg!%>0X0*2%5z;6Kbjuuu31 z)E5*~Tu19$a%+b^r>_80qr*t+^fiyu!|!4fIVhl$351IUZ$Z+gphC4)UBKJI@gIAs zZ}L|q`A5e3DKIn#cRA6hc!;`|nS`UhC~T1rgd4qAd#MFWSGKVJ8NKr^c^` zbN*#07l-0sopsbd^vmVdJN_vos0j~WVur}>Njw3liaVl8^3OR=jq@#9Pdr9%3NHxg zg(rfyGYnLgM+DS)zjpUaP#-r>d#3={HJgLPxY+T*_W)r)p1+7^*#`R9&XdaMuW+Bt z%j=g)wO^%c|Bv$erJjXp9gDX*0vNVdF)yyBeIse*0&QuL%0m+g=Q3X;d^eDp4YM~n zcuM?g66_$$n8(5hc%G2msPfl})!-rdhkN{AEy&D*&t9g&dBB5!SzZn0EP2l7bBv;T zcDtZ_Q0<$cN7`T4C_DKIm>T#dJ)cuYD7JE9E1_ZjxXz)pJcp2GEbThZLl7n^oE;p_ ztyR7?z3n7600g-up%BtKL%BrW;_lWdXzFvx{M+oI_J~xkSU|6r>X!0A%3~?V$g z%MF)xVbam?^H;CTXl>-$%l8WM@XZ&2ewCq#{>^>-4gpca?@$;Z&v&Y@watA6>b#2>huDJEFIO}D0xxBwr!zXCHceoK`ES4% z%1&ko#0dM8V7m`>8`2_d>NVbdsH1eTlBesLAcW`+O4q_BwdT%AbZNbqvttf!ZJb?0 zHN^!pGi9SC(Jndu`Hy-I<(}6jXz9U+@Ou>_VAua8|Ciq%k8gkd^E z4`Uskha7fV%GEJ1o~8y?0}hEt4bBwHHsB<^rMj(7UzlcdME#L&(5$ThM+~cstn8coqhoF8E{J6hF<~; zykTYLbho56b}e)wf#?Hz_t_%(812=lxRe5kKAQQpHL0rd5&m}YOOfp7kGejURC!$+ zQo%ZrXB;8dAO&eOV3r_-=p4LC7ov$6_-*$zzjv?6@V$76%r-#V81cVE$JEH2NCi)2 zMmG)PNjJjZyud$WV7*IS9Rl_zoSG&SBWD*sa$t-$w!#C&4x8Mb)<*UfAP98Zk-&J( z>C9^<9k94ioS^F@7nL97YA4eBAtk}fuhc;tcowtC1%u5ls$~=7cFPul`@ZP?|7872A4s@}&@m^HZ(U(8(#MU&a?I|DDp=>9vIxC;{ zwkh%YY2=vIuG&NwxozieqDo635JV}u(;kE@*QNAFZnw$~eyhUgO^fCTGZeMoh zgzQ}{kD@ZM2h5+~&n3a1zxE?={L)ElEc%LRnv%cf5tVHYYIe-h@1mdF$WJLG?$A^pofc6q$B`G!3NhwF>(gmn^EB{8HBKKVM z9@6>i;#<-ekU7bh@qR0P)_S?j+a}fPxzweLu>Hk%_n65C>kSu0F?OLeWuna)89W51 z35D{3rUw!S3jXUDkR6`vse5Vi09&ia&@w9JiZ}X!gATYGv?m1On)gk(1$O^c#`(fZ%m}x`E%SB(rGz~hNR3{-RvZFS%-aO>1&1E7U}OPKX}e%X^XS1 z&|+~og%^armM=;1Z;yksz|WE`;k)**K78UDNVZmr@S7a!w6B5*5VfVswq!{9odDmd zsCM%2AD#sWI7&rO_x0z1*UW0DlEb;jzq^3Ho&0S$^7iAWN{FBPEg-5-8z#jDC(qun zBPX0ldYp^Ztj<~cZpX?pAmxCt*yX`ZOa3fx+j6E{-)E{RFBnEOHKhE);8}C_BXJEK z-L@0|5%503^zYnX2NRh<{!19&u0sZYOJ-h6?>x|yJHY>G++p&l4E&E!ELta$h z!bL*zssf8fE`^pEmYt-kKAmO8SaI^6mrH#^g3bVIw;w=PzmiAjJ>zCJ=X?3cIDm4F z-iMW|CIlzXP8~stSS%8f`O{bD7-Aq@NL-%32Dm6C#wjkh7$o_$pHOR1!g6BF=gN)A z8jenlchgKf)2vW)@F|>hylH~QQ6I`M`i{QEzvxD7DI2<1De{fHU6S4H=fI|$SH}8a z5e$7etMa+_UYJ5?3d&_oTp3&LV9kxm#iE1bO_qmn%E4%r3l7KB1Btr;BB<55Nugfo zmParwYp%i)u8hF8P-syJ zV(;L3$vWIZ$~L=iiGPfkw^?U|gHPGtw;^9#;=jD}zx4(A_1Ax8_@#W}Npbn?lKtFR zVEW8OQCBu$e;(LiNUw3&qeRG+{ULIkG1hLRe>9HG?7S=J6DXH2Pdh zo#Qb)r}pBZsgZiC*jw3R1}!D|QVZENpux7dR6eE1S+%q!0c`=KgIopW>1+t}nx@-< zxy>=M^x3J`^!|fN#8?^Qxh6QM!GCb_|Et9RUi>Kd|E2||3l608eEx-a2rZSn-4q<+MqFUFle7uv;o+c#thyU4w>{@1G;x^-s97FuS!ylW$a*SMXX{O$4d ztMU?GYX!(rLa$#qGvIuKTUN_9eKmZcPl$3PkvM^U$^!rs>@!>l^}gR*CfyPLxdO}) z0LD}cAoE#)B*)Mp{}q0Y=hzUZeqa)`Nq42UpKNRNtg>kQNkxkTn9QK;S01BJgpd>2 z^_uF#mh09|>BxXIK~zotnfo}{w~0MVbANYzy4#_ISIPs`OT9B z1)-{O?-rSdKRzC#H%zDdZP6aq7HSOFtq(SrCAOLxzLu{0zB}hctYrmYpO@K|J#_6D zFJ@hq~6^{$ykKW7s6n>7tG3wOH| z35NwbP-Ct2J{jiwg6GX!Rs0Bsok~R1KQ8`b*31ONiKR{yG|VM|-QsC@HEEfHZ{}HH z%zwM!e}2h-HM_fkQT-|`cLQ^dtsh`F#s4`FY_%AwVYYe4-;O0+>q5lH$=A^HHhjL% zz77=p9{%dRUF_~x${S9fKaO6$PdQWdl4$m9rDeEw*}3bq!r9m(pK7Q4V|l%$<}J)m zz<<e6#v;?}OG(AEo9gU+et1Eq6gcBYNE?ajBQ=ht_JGRU1pJaxozOiG0qK>2oNS zpleaOgHrDyeG`(x*N~~fY&59gRxk*HqA)JQZj62Re#bNJpWfF44mF3(Fn+li*W}iY zDS%APFRzY}fHZ=duJu z40zR=IPG3rZTlYi<=66}_#v@}%$I&`rd;6dqy2Ztc>vcZCJ^(B+}EB!hdf1EqZDbD zkfzB2LFml1bX!aY2|3s@Y-$rx=S({Yzxda;GYf7}aO(Xm9y+U&4Sk-H9~xI*)gHtA zPY(zGtJK(=xRm9jzHhKtsI2)d7ogxEwN)LmjU2J@C`=)ll5Bt z@H^{OPFt+NcwXk(z$_FrOj^Lw@?VFj;IjXV%Fa1*{UDgjb!iaQPToa=YPAnv*iO~# z#*t8234t$Vj_Ga9hLEF`jrmWz7f@l~_>4$vQ=E$ZsZ&}`z{Z3M zwR|~c2bV1B2Ony=-rpGI2L%XFkz0UT$b&6Qn}&F@mwGC+6OUDmqeo006-7DC=L*pH za#pWVevf={3Gx#2&znenug6qg=C7(HDW~T37--Tr7fa<+7?IEcq=Mq#Yo_4q%(^rO z3y%v&I@znmw9j9xFno)DThjYR;1mE`wJCizyFa?RurKfb@tEFU^W!m>n!i*&H+5m& zXAyVHwP=s_p!GAC4nSkrxi_{NF|kuK0vG?W^kg=5DUV%#R2usDax4)ihG z53Xy`+l|3TZea{Oy8K zkqKt*$Mv2cx71~lAhQ;Byq`ONyw=xaEl1#S6UR&!!AAafuJF+-AEAW$&mVv5<*@gO zwy2KCZ@{OaeM&K78dc39`uF&UgLiOQ$kMt-|4cKtFPm&Pzt(74=V0x^5rrlS5TSMe zs$LUYR8;r^oJ**it{HO{$WG1}egjAF0Y?0Ml~$=5SYf++095k)^RBf2AtKYn3Y#>( zzVzINK>utwz8Ln8J%Z}ZEr4zimHj@~_>Z8d@KvhiGUmzg|8G_=Sqs76Hjr|3m8kkq zmEkRBB3?x=^?$k3%WHWEF76<+O>iKG2F29L+(@(*U9wht?YhhiXp9sMt*v!iLxSCA zHjZwbm ze*suPUZTnPABR9xoI-BuOk-O@ zgdBzQBij}S>bFxgk|uJ8q`(*+rmE@(??U2Ott)KW3F#+)oZ zN4QggaYYlc7N(OIh_W^D7R=Sqy(!Voz{2^*eAjUZStQ1Jp?1qfGc)>>a^u|~zwX(l3lFFsSXhmT+^)e_=JL3vdY^X}V_8md-E^S(pMPwjK7 zO#W#B`K^+f!_C&rb2hVr{D1ap+s@51V>9%cLK+(25$v5l<*6mjR3sKerh;F;S%nXm zk6E6fQ-@B$U3FuKRE)+gy(|!{IcQ^1h?;*srz$c%h~}FX^UO-d?=#lGDe zM$yN~TkJghxD7o@eJCy-IR(H$hZK2x^R(hEomh=>qw96z&VqPW0=^`CeSLQ?;gd z%BHU`Xk~eml}U4_VJRTB)c(6ZGns#Hkexq|U9KAseXI^ODQw$*ZKfzH&@Y|M8d?$+ zne9b_(uj8kd%j8w5i=YY{$mJeBoAy_E%)}y7Bn+P7@7b|sOr?Gh(VWoNd_BF%N%3n zb?qz=cZ4Nww#*SEypJ8Iv!8Iy&3KL*M7Uo`bmcc=xZXz#FpuHhHSQZdx!N%2;Mg

Ve~z9z==Jd$|M^({`B=*- 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 diff --git a/install/installs/Q3Pack/install/missionpack/maps/.svn/entries b/install/installs/Q3Pack/install/missionpack/maps/.svn/entries deleted file mode 100644 index 449a9f82..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/.svn/entries +++ /dev/null @@ -1,65 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/maps -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -Team Arena Prefabs -dir - -terrademo.map -file - - - - -2012-04-01T16:51:39.453275Z -eb4594330013666971d45cd48693a36d -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -34925 - diff --git a/install/installs/Q3Pack/install/missionpack/maps/.svn/prop-base/terrademo.map.svn-base b/install/installs/Q3Pack/install/missionpack/maps/.svn/prop-base/terrademo.map.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/.svn/prop-base/terrademo.map.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/.svn/text-base/terrademo.map.svn-base b/install/installs/Q3Pack/install/missionpack/maps/.svn/text-base/terrademo.map.svn-base deleted file mode 100644 index fca03efd..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/.svn/text-base/terrademo.map.svn-base +++ /dev/null @@ -1,553 +0,0 @@ -{ -"gridsize" "256 256 256" -"vertexremapshader6" "textures/terrain/mpterra2_2;textures/terrain/vxmpterra2" -"vertexremapshader5" "textures/terrain/mpterra2_1;textures/terrain/vxmpterra2" -"vertexremapshader4" "textures/terrain/mpterra2_0;textures/terrain/vxmpterra2" -"vertexremapshader3" "textures/terrain/mpterra2_1to2;textures/terrain/vxmpterra2" -"vertexremapshader2" "textures/terrain/mpterra2_0to2;textures/terrain/vxmpterra2" -"vertexremapshader1" "textures/terrain/mpterra2_0to1;textures/terrain/vxmpterra2" -"enableBreath" "1" -"_color" ".22 .37 .4" -"message" "Distant Screams" -"classname" "worldspawn" -"ambient" "22" -"music" "music/fla_mp03.wav" -// brush 0 -{ -( -448 -640 -352 ) ( -448 440 -352 ) ( -512 440 -352 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -512 440 -304 ) ( -448 440 -304 ) ( -448 -640 -304 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -512 440 -304 ) ( -512 -640 -304 ) ( -512 -640 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -512 -512 -304 ) ( -448 -512 -304 ) ( -448 -512 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( 576 -640 -304 ) ( 576 440 -304 ) ( 576 440 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -448 512 -304 ) ( -512 512 -304 ) ( -512 512 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -} -// brush 1 -{ -( -448 -640 1376 ) ( -448 440 1376 ) ( -512 440 1376 ) skies/pj_ctf2_sky 128 127 90 0.500000 0.500000 0 0 0 -( -512 440 1424 ) ( -448 440 1424 ) ( -448 -640 1424 ) skies/pj_ctf2_sky 128 127 90 0.500000 0.500000 0 0 0 -( -512 440 1424 ) ( -512 -640 1424 ) ( -512 -640 -224 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( -512 -512 1424 ) ( -448 -512 1424 ) ( -448 -512 -224 ) skies/pj_ctf2_sky 127 0 -180 0.500000 -0.500000 0 0 0 -( 576 -640 1424 ) ( 576 440 1424 ) ( 576 440 -224 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( -448 512 1424 ) ( -512 512 1424 ) ( -512 512 -224 ) skies/pj_ctf2_sky 127 0 -180 0.500000 -0.500000 0 0 0 -} -// brush 2 -{ -( -512 -576 -352 ) ( -512 504 -352 ) ( -576 504 -352 ) skies/pj_ctf2_sky 0 255 90 0.500000 0.500000 0 0 0 -( -576 504 1424 ) ( -512 504 1424 ) ( -512 -576 1424 ) skies/pj_ctf2_sky 0 255 90 0.500000 0.500000 0 0 0 -( -576 504 1296 ) ( -576 -576 1296 ) ( -576 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -576 -576 1296 ) ( -512 -576 1296 ) ( -512 -576 -352 ) skies/pj_ctf2_sky 0 0 -180 0.500000 -0.500000 0 0 0 -( -512 -576 1296 ) ( -512 504 1296 ) ( -512 504 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -512 576 1296 ) ( -576 576 1296 ) ( -576 576 -352 ) skies/pj_ctf2_sky 0 0 -180 0.500000 -0.500000 0 0 0 -} -// brush 3 -{ -( 576 -576 -352 ) ( 576 504 -352 ) ( 512 504 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 512 504 1424 ) ( 576 504 1424 ) ( 576 -576 1424 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 512 504 1296 ) ( 512 -576 1296 ) ( 512 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 512 -576 1296 ) ( 576 -576 1296 ) ( 576 -576 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 576 -576 1296 ) ( 576 504 1296 ) ( 576 504 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 576 576 1296 ) ( 512 576 1296 ) ( 512 576 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -} -// brush 4 -{ -( 576 576 -352 ) ( -504 576 -352 ) ( -504 512 -352 ) skies/pj_ctf2_sky 0 -128 0 0.500000 0.500000 0 0 0 -( -504 512 1424 ) ( -504 576 1424 ) ( 576 576 1424 ) skies/pj_ctf2_sky 0 -128 0 0.500000 0.500000 0 0 0 -( -504 512 1296 ) ( 576 512 1296 ) ( 576 512 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 512 512 1296 ) ( 512 576 1296 ) ( 512 576 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 576 576 1296 ) ( -504 576 1296 ) ( -504 576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -512 576 1296 ) ( -512 512 1296 ) ( -512 512 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -} -// brush 5 -{ -( 576 -512 -352 ) ( -504 -512 -352 ) ( -504 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -504 -576 1424 ) ( -504 -512 1424 ) ( 576 -512 1424 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -504 -576 1296 ) ( 576 -576 1296 ) ( 576 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 512 -576 1296 ) ( 512 -512 1296 ) ( 512 -512 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 576 -512 1296 ) ( -504 -512 1296 ) ( -504 -512 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -512 -512 1296 ) ( -512 -576 1296 ) ( -512 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -} -} -// entity 1 -{ -"origin" "248 136 416" -"model" "models/mapobjects/tree2/tree6.md3" -"classname" "misc_model" -} -// entity 2 -{ -"classname" "misc_model" -"model" "models/mapobjects/tree2/tree1.md3" -"origin" "176 256 392" -} -// entity 3 -{ -"origin" "40 -112 440" -"angle" "90" -"classname" "info_player_deathmatch" -} -// entity 4 -{ -"classname" "func_group" -"alphamap" "textures/proto2/pj_terralpha01.pcx" -"shader" "terrain/mpterra2" -"layers" "3" -"terrain" "1" -// brush 0 -{ -( -512 -512 1296 ) ( -256 -256 592 ) ( -256 -512 848 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 -512 -352 ) ( -256 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -512 848 ) ( -256 -512 -352 ) ( -512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -512 1296 ) ( -512 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 1 -{ -( -512 -256 1152 ) ( -256 -256 592 ) ( -512 -512 1296 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 -256 -352 ) ( -512 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -512 1296 ) ( -512 -512 -352 ) ( -512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -256 1152 ) ( -512 -256 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 2 -{ -( -512 -256 1152 ) ( -512 0 800 ) ( -256 -256 592 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 -256 -352 ) ( -256 -256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -256 1152 ) ( -512 -256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 3 -{ -( -512 0 800 ) ( -256 0 416 ) ( -256 -256 592 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 0 -352 ) ( -256 -256 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 4 -{ -( -512 0 800 ) ( -256 256 344 ) ( -256 0 416 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 0 -352 ) ( -256 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 5 -{ -( -512 256 360 ) ( -256 256 344 ) ( -512 0 800 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 256 -352 ) ( -512 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 256 360 ) ( -512 256 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 6 -{ -( -512 256 360 ) ( -512 512 200 ) ( -256 256 344 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 256 -352 ) ( -256 256 -352 ) ( -512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 512 200 ) ( -512 512 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 256 360 ) ( -512 256 -352 ) ( -512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 7 -{ -( -512 512 200 ) ( -256 512 272 ) ( -256 256 344 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 512 -352 ) ( -256 256 -352 ) ( -256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 512 272 ) ( -256 512 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 512 200 ) ( -512 512 -352 ) ( -256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 8 -{ -( -256 -512 848 ) ( -256 -256 592 ) ( 0 -512 408 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 -512 -352 ) ( 0 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( -256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -512 848 ) ( -256 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 9 -{ -( -256 -256 592 ) ( 0 -256 376 ) ( 0 -512 408 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 -256 -352 ) ( 0 -512 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 10 -{ -( -256 -256 592 ) ( 0 0 360 ) ( 0 -256 376 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 -256 -352 ) ( 0 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 11 -{ -( -256 0 416 ) ( 0 0 360 ) ( -256 -256 592 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 0 -352 ) ( -256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 12 -{ -( -256 0 416 ) ( -256 256 344 ) ( 0 0 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 0 -352 ) ( 0 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 13 -{ -( -256 256 344 ) ( 0 256 352 ) ( 0 0 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 256 -352 ) ( 0 0 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 14 -{ -( -256 256 344 ) ( 0 512 360 ) ( 0 256 352 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 256 -352 ) ( 0 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 15 -{ -( -256 512 272 ) ( 0 512 360 ) ( -256 256 344 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 512 -352 ) ( -256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 512 272 ) ( -256 512 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 16 -{ -( 0 -512 408 ) ( 256 -256 448 ) ( 256 -512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 -512 -352 ) ( 256 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -512 360 ) ( 256 -512 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 17 -{ -( 0 -256 376 ) ( 256 -256 448 ) ( 0 -512 408 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 -256 -352 ) ( 0 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 18 -{ -( 0 -256 376 ) ( 0 0 360 ) ( 256 -256 448 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 -256 -352 ) ( 256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 19 -{ -( 0 0 360 ) ( 256 0 456 ) ( 256 -256 448 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 0 -352 ) ( 256 -256 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 20 -{ -( 256 0 456 ) ( 0 0 360 ) ( 256 256 400 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 0 -352 ) ( 256 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 21 -{ -( 0 0 360 ) ( 0 256 352 ) ( 256 256 400 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 256 -352 ) ( 0 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 22 -{ -( 256 256 400 ) ( 0 256 352 ) ( 0 512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 256 -352 ) ( 256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 23 -{ -( 256 256 400 ) ( 0 512 360 ) ( 256 512 456 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 512 -352 ) ( 256 256 -352 ) ( 256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 512 456 ) ( 256 512 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( 256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 24 -{ -( 256 -512 360 ) ( 256 -256 448 ) ( 512 -512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 -512 -352 ) ( 512 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -512 360 ) ( 512 -512 -352 ) ( 256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -512 360 ) ( 256 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 25 -{ -( 256 -256 448 ) ( 512 -256 496 ) ( 512 -512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 -256 -352 ) ( 512 -512 -352 ) ( 512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -512 360 ) ( 512 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -256 496 ) ( 512 -256 -352 ) ( 512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 26 -{ -( 256 -256 448 ) ( 512 0 408 ) ( 512 -256 496 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 -256 -352 ) ( 512 -256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -256 496 ) ( 512 -256 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 27 -{ -( 256 0 456 ) ( 512 0 408 ) ( 256 -256 448 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 0 -352 ) ( 256 -256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 28 -{ -( 256 256 400 ) ( 512 0 408 ) ( 256 0 456 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 0 -352 ) ( 512 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 29 -{ -( 512 0 408 ) ( 256 256 400 ) ( 512 256 536 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 256 -352 ) ( 512 0 -352 ) ( 512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 256 536 ) ( 512 256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 30 -{ -( 512 512 960 ) ( 512 256 536 ) ( 256 256 400 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 256 -352 ) ( 512 256 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 256 536 ) ( 512 256 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 512 960 ) ( 512 512 -352 ) ( 512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 31 -{ -( 512 512 960 ) ( 256 256 400 ) ( 256 512 456 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 512 -352 ) ( 256 256 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 512 960 ) ( 512 512 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 512 456 ) ( 256 512 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -} -// entity 5 -{ -"classname" "func_group" -// brush 0 -{ -( 3072 -6528 120 ) ( 3072 -6528 136 ) ( 3000 -6600 136 ) proto2/concrete04stair2 32 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6608 160 ) ( 3248 -6608 176 ) ( 3176 -6536 176 ) proto2/concrete04stair2 160 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3072 -6752 176 ) ( 3072 -6752 160 ) ( 3000 -6680 160 ) proto2/concrete04stair2 160 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/tin_floor06 0 0 0 0.500000 0.500000 134217728 0 0 -( 3160 -6752 160 ) ( 3144 -6752 160 ) ( 3152 -6752 176 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3144 -6528 160 ) ( 3168 -6528 160 ) ( 3156 -6528 176 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3232 -6664 120 ) ( 3232 -6688 120 ) ( 3232 -6676 136 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3008 -6696 120 ) ( 3008 -6672 120 ) ( 3008 -6684 136 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3232 -6688 160 ) ( 3176 -6744 160 ) ( 3204 -6716 176 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 1 -{ -( 3112 -6560 176 ) ( 3112 -6560 178 ) ( 3000 -6560 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3200 -6640 176 ) ( 3200 -6640 178 ) ( 3200 -6528 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3120 -6720 176 ) ( 3120 -6720 178 ) ( 3232 -6720 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3040 -6640 176 ) ( 3040 -6640 178 ) ( 3040 -6752 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3232 -6528 176 ) ( 3008 -6528 176 ) ( 3008 -6752 176 ) common/nodraw 0 -31 -180 0.500000 0.500000 134217728 0 0 -( 3008 -6752 178 ) ( 3008 -6528 178 ) ( 3232 -6528 178 ) ctf2/blueteam01 -127 0 0 1.250000 1.250000 134217728 0 0 -} -// brush 2 -{ -( 3176 -6512 176 ) ( 3176 -6512 160 ) ( 3248 -6584 160 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 2992 -6512 120 ) ( 2992 -6768 120 ) ( 3248 -6768 120 ) common/caulk -62 -1 90 0.500000 0.500000 134217728 0 0 -( 3248 -6768 176 ) ( 2992 -6768 176 ) ( 2992 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3248 -6584 176 ) ( 3248 -6584 160 ) ( 3232 -6592 160 ) proto2/tin_floor06 64 63 -180 0.500000 -0.500000 134217728 0 0 -( 3176 -6512 120 ) ( 3176 -6512 136 ) ( 3168 -6528 136 ) proto2/tin_floor06 0 63 0 0.500000 0.500000 134217728 0 0 -( 3224 -6584 160 ) ( 3168 -6528 160 ) ( 3196 -6556 176 ) proto2/tin_floor06 -127 63 0 0.500000 0.500000 134217728 0 0 -} -// brush 3 -{ -( 3064 -6512 176 ) ( 3064 -6512 160 ) ( 3176 -6512 160 ) proto2/concrete07_min 0 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3168 -6528 120 ) ( 3168 -6528 136 ) ( 3176 -6512 136 ) proto2/concrete04stair2 -32 -18 0 0.500000 0.500000 134217728 0 0 -( 2992 -6768 120 ) ( 3248 -6768 120 ) ( 3248 -6512 120 ) common/caulk -31 33 0 0.500000 0.500000 134217728 0 0 -( 3248 -6512 176 ) ( 3248 -6768 176 ) ( 2992 -6768 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3168 -6528 176 ) ( 3168 -6528 160 ) ( 3072 -6528 160 ) proto2/tin_floor06 -96 63 0 0.500000 0.500000 134217728 0 0 -( 3072 -6528 136 ) ( 3072 -6528 120 ) ( 3064 -6512 120 ) proto2/tin_floor06 -32 63 0 0.500000 0.500000 134217728 0 0 -} -// brush 4 -{ -( 2992 -6584 176 ) ( 2992 -6584 160 ) ( 3064 -6512 160 ) proto2/concrete07_min 32 -32 -180 0.500000 -0.500000 134217728 0 0 -( 2992 -6768 120 ) ( 3248 -6768 120 ) ( 3248 -6512 120 ) common/caulk -31 33 0 0.500000 0.500000 134217728 0 0 -( 3248 -6512 176 ) ( 3248 -6768 176 ) ( 2992 -6768 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3064 -6512 136 ) ( 3064 -6512 120 ) ( 3072 -6528 120 ) proto2/tin_floor06 -32 63 0 0.500000 0.500000 134217728 0 0 -( 2992 -6584 120 ) ( 2992 -6584 136 ) ( 3008 -6592 136 ) proto2/tin_floor06 -96 63 0 0.500000 0.500000 134217728 0 0 -( 3064 -6536 120 ) ( 3008 -6592 120 ) ( 3036 -6564 136 ) proto2/tin_floor06 -96 63 0 0.500000 0.500000 134217728 0 0 -} -// brush 5 -{ -( 3008 -6592 120 ) ( 3008 -6592 136 ) ( 2992 -6584 136 ) proto2/concrete04stair2 224 -17 -180 0.500000 -0.500000 134217728 0 0 -( 3008 -6688 136 ) ( 3008 -6688 120 ) ( 2992 -6696 120 ) proto2/concrete04stair2 224 -17 -180 0.500000 -0.500000 134217728 0 0 -( 2992 -6584 160 ) ( 2992 -6584 176 ) ( 2992 -6696 176 ) proto2/concrete07_min 128 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3008 -6592 136 ) ( 3008 -6592 120 ) ( 3008 -6688 120 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 6 -{ -( 3064 -6768 176 ) ( 3064 -6768 160 ) ( 2992 -6696 160 ) proto2/concrete07_min 96 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6768 120 ) ( 3248 -6512 120 ) ( 2992 -6512 120 ) common/caulk 0 63 -90 0.500000 0.500000 134217728 0 0 -( 2992 -6512 176 ) ( 3248 -6512 176 ) ( 3248 -6768 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 2992 -6696 136 ) ( 2992 -6696 120 ) ( 3008 -6688 120 ) proto2/tin_floor06 0 63 0 0.500000 0.500000 134217728 0 0 -( 3064 -6768 120 ) ( 3064 -6768 136 ) ( 3072 -6752 136 ) proto2/tin_floor06 64 64 -180 0.500000 -0.500000 134217728 0 0 -( 3016 -6696 160 ) ( 3072 -6752 160 ) ( 3044 -6724 176 ) proto2/tin_floor06 1 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 7 -{ -( 3176 -6768 136 ) ( 3176 -6768 120 ) ( 3064 -6768 120 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3072 -6752 120 ) ( 3072 -6752 136 ) ( 3064 -6768 136 ) proto2/concrete04stair2 32 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3072 -6752 176 ) ( 3072 -6752 160 ) ( 3168 -6752 160 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3168 -6752 136 ) ( 3168 -6752 120 ) ( 3176 -6768 120 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 8 -{ -( 3248 -6696 176 ) ( 3248 -6696 160 ) ( 3176 -6768 160 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3176 -6768 136 ) ( 3176 -6768 120 ) ( 3168 -6752 120 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6696 160 ) ( 3248 -6696 176 ) ( 3232 -6688 176 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3176 -6744 160 ) ( 3232 -6688 160 ) ( 3204 -6716 176 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 9 -{ -( 3232 -6592 176 ) ( 3232 -6592 160 ) ( 3248 -6584 160 ) proto2/concrete04stair2 224 -17 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6696 160 ) ( 3248 -6696 176 ) ( 3248 -6584 176 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3232 -6592 120 ) ( 3232 -6592 136 ) ( 3232 -6688 136 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6696 176 ) ( 3248 -6696 160 ) ( 3232 -6688 160 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -} -} -// entity 6 -{ -"classname" "func_group" -// brush 0 -{ -( -8 0 360 ) ( -8 0 376 ) ( -80 -72 376 ) proto2/concrete04stair2 32 -15 -180 0.500000 -0.500000 134217728 0 0 -( 168 -80 400 ) ( 168 -80 416 ) ( 96 -8 416 ) proto2/concrete04stair2 159 -15 -180 0.500000 -0.500000 134217728 0 0 -( -8 -224 416 ) ( -8 -224 400 ) ( -80 -152 400 ) proto2/concrete04stair2 159 -15 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/tin_floor06 16 0 0 0.500000 0.500000 134217728 0 0 -( 80 -224 400 ) ( 64 -224 400 ) ( 72 -224 416 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 64 0 400 ) ( 88 0 400 ) ( 76 0 416 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 152 -136 360 ) ( 152 -160 360 ) ( 152 -148 376 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( -72 -168 360 ) ( -72 -144 360 ) ( -72 -156 376 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( 152 -160 400 ) ( 96 -216 400 ) ( 124 -188 416 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 1 -{ -( 32 -32 416 ) ( 32 -32 418 ) ( -80 -32 418 ) common/nodraw -16 -32 -180 0.500000 -0.500000 134217728 0 0 -( 120 -112 416 ) ( 120 -112 418 ) ( 120 0 418 ) common/nodraw 0 -31 -180 0.500000 -0.500000 134217728 0 0 -( 40 -192 416 ) ( 40 -192 418 ) ( 152 -192 418 ) common/nodraw -16 -32 -180 0.500000 -0.500000 134217728 0 0 -( -40 -112 416 ) ( -40 -112 418 ) ( -40 -224 418 ) common/nodraw 0 -31 -180 0.500000 -0.500000 134217728 0 0 -( 152 0 416 ) ( -72 0 416 ) ( -72 -224 416 ) common/nodraw -16 -30 -180 0.500000 0.500000 134217728 0 0 -( -72 -224 418 ) ( -72 0 418 ) ( 152 0 418 ) ctf2/blueteam01 33 102 0 1.250000 1.250000 134217728 0 0 -} -// brush 2 -{ -( 96 16 416 ) ( 96 16 400 ) ( 168 -56 400 ) proto2/concrete07_min 159 -63 -180 0.500000 -0.500000 134217728 0 0 -( -88 16 360 ) ( -88 -240 360 ) ( 168 -240 360 ) common/caulk 1 14 90 0.500000 0.500000 134217728 0 0 -( 168 -240 416 ) ( -88 -240 416 ) ( -88 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 168 -56 416 ) ( 168 -56 400 ) ( 152 -64 400 ) proto2/tin_floor06 -80 30 -180 0.500000 -0.500000 134217728 0 0 -( 96 16 360 ) ( 96 16 376 ) ( 88 0 376 ) proto2/tin_floor06 0 31 0 0.500000 0.500000 134217728 0 0 -( 144 -56 400 ) ( 88 0 400 ) ( 116 -28 416 ) proto2/tin_floor06 1 31 0 0.500000 0.500000 134217728 0 0 -} -// brush 3 -{ -( -16 16 416 ) ( -16 16 400 ) ( 96 16 400 ) proto2/concrete07_min -15 63 -180 0.500000 -0.500000 134217728 0 0 -( 88 0 360 ) ( 88 0 376 ) ( 96 16 376 ) proto2/concrete04stair2 -32 -18 0 0.500000 0.500000 134217728 0 0 -( -88 -240 360 ) ( 168 -240 360 ) ( 168 16 360 ) common/caulk 49 33 0 0.500000 0.500000 134217728 0 0 -( 168 16 416 ) ( 168 -240 416 ) ( -88 -240 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 88 0 416 ) ( 88 0 400 ) ( -8 0 400 ) proto2/tin_floor06 48 31 0 0.500000 0.500000 134217728 0 0 -( -8 0 376 ) ( -8 0 360 ) ( -16 16 360 ) proto2/tin_floor06 -32 31 0 0.500000 0.500000 134217728 0 0 -} -// brush 4 -{ -( -88 -56 416 ) ( -88 -56 400 ) ( -16 16 400 ) proto2/concrete07_min 32 -63 -180 0.500000 -0.500000 134217728 0 0 -( -88 -240 360 ) ( 168 -240 360 ) ( 168 16 360 ) common/caulk 49 33 0 0.500000 0.500000 134217728 0 0 -( 168 16 416 ) ( 168 -240 416 ) ( -88 -240 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -16 16 376 ) ( -16 16 360 ) ( -8 0 360 ) proto2/tin_floor06 -32 31 0 0.500000 0.500000 134217728 0 0 -( -88 -56 360 ) ( -88 -56 376 ) ( -72 -64 376 ) proto2/tin_floor06 48 31 0 0.500000 0.500000 134217728 0 0 -( -16 -8 360 ) ( -72 -64 360 ) ( -44 -36 376 ) proto2/tin_floor06 -96 31 0 0.500000 0.500000 134217728 0 0 -} -// brush 5 -{ -( -72 -64 360 ) ( -72 -64 376 ) ( -88 -56 376 ) proto2/concrete04stair2 -48 -17 -180 0.500000 -0.500000 134217728 0 0 -( -72 -160 376 ) ( -72 -160 360 ) ( -88 -168 360 ) proto2/concrete04stair2 -48 -17 -180 0.500000 -0.500000 134217728 0 0 -( -88 -56 400 ) ( -88 -56 416 ) ( -88 -168 416 ) proto2/concrete07_min 127 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -72 -64 376 ) ( -72 -64 360 ) ( -72 -160 360 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 6 -{ -( -16 -240 416 ) ( -16 -240 400 ) ( -88 -168 400 ) proto2/concrete07_min 95 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 -240 360 ) ( 168 16 360 ) ( -88 16 360 ) common/caulk 0 -17 -90 0.500000 0.500000 134217728 0 0 -( -88 16 416 ) ( 168 16 416 ) ( 168 -240 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -88 -168 376 ) ( -88 -168 360 ) ( -72 -160 360 ) proto2/tin_floor06 16 31 0 0.500000 0.500000 134217728 0 0 -( -16 -240 360 ) ( -16 -240 376 ) ( -8 -224 376 ) proto2/tin_floor06 63 32 -180 0.500000 -0.500000 134217728 0 0 -( -64 -168 400 ) ( -8 -224 400 ) ( -36 -196 416 ) proto2/tin_floor06 0 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 7 -{ -( 96 -240 376 ) ( 96 -240 360 ) ( -16 -240 360 ) proto2/concrete07_min -112 63 -180 0.500000 -0.500000 134217728 0 0 -( -8 -224 360 ) ( -8 -224 376 ) ( -16 -240 376 ) proto2/concrete04stair2 32 -15 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -8 -224 416 ) ( -8 -224 400 ) ( 88 -224 400 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 88 -224 376 ) ( 88 -224 360 ) ( 96 -240 360 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 8 -{ -( 168 -168 416 ) ( 168 -168 400 ) ( 96 -240 400 ) proto2/concrete07_min 159 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 96 -240 376 ) ( 96 -240 360 ) ( 88 -224 360 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( 168 -168 400 ) ( 168 -168 416 ) ( 152 -160 416 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 96 -216 400 ) ( 152 -160 400 ) ( 124 -188 416 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 9 -{ -( 152 -64 416 ) ( 152 -64 400 ) ( 168 -56 400 ) proto2/concrete04stair2 -48 -17 -180 0.500000 -0.500000 134217728 0 0 -( 168 -168 400 ) ( 168 -168 416 ) ( 168 -56 416 ) proto2/concrete07_min 159 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 152 -64 360 ) ( 152 -64 376 ) ( 152 -160 376 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( 168 -168 416 ) ( 168 -168 400 ) ( 152 -160 400 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -} -} -// entity 7 -{ -"classname" "misc_model" -"model" "models/mapobjects/tree2/tree6.md3" -"origin" "288 272 440" -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/entries b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/entries deleted file mode 100644 index f0c618df..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/entries +++ /dev/null @@ -1,300 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/maps/Team%20Arena%20Prefabs -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -armorpad_blue.pfb -file - - - - -2012-04-01T16:51:39.256263Z -0fff87b5195a2b33459e2d3f941891bc -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -604 - -armorpad_neutral.pfb -file - - - - -2012-04-01T16:51:39.270264Z -ba9037d16e7e53ba7a559ac7ff6bf8e2 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -632 - -armorpad_red.pfb -file - - - - -2012-04-01T16:51:39.341268Z -7813b785d5eb5184caf84c42e94eb7a9 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -587 - -TA_banner_blue.pfb -file - - - - -2012-04-01T16:51:39.383271Z -622f20a660fff008d7e494e116c5c4d2 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1134 - -TA_banner_red.pfb -file - - - - -2012-04-01T16:51:39.391271Z -c330a5191afab16eb52141596bfa375a -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1132 - -weaponpad_blue.pfb -file - - - - -2012-04-01T16:51:39.410272Z -df180ba275d3c7c3cf810db5a9ada61a -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1513 - -weaponpad_neutral.pfb -file - - - - -2012-04-01T16:51:39.417273Z -96b6e84d3703485efe20ae328d094daf -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1541 - -weaponpad_red.pfb -file - - - - -2012-04-01T16:51:39.422273Z -2cf3872b14f69e1bd11e197a524dfb59 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1491 - diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_blue.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_blue.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_blue.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_red.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_red.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/TA_banner_red.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_blue.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_blue.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_blue.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_neutral.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_neutral.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_neutral.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_red.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_red.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/armorpad_red.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_blue.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_blue.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_blue.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_neutral.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_neutral.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_neutral.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_red.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_red.pfb.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/prop-base/weaponpad_red.pfb.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_blue.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_blue.pfb.svn-base deleted file mode 100644 index a6acf990..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_blue.pfb.svn-base +++ /dev/null @@ -1,22 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 -{ -( 4 124 24 ) ( 60 124 24 ) ( 60 132 24 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 60 132 80 ) ( 60 124 80 ) ( 4 124 80 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 4 132 -16 ) ( 4 132 112 ) ( 4 124 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 60 4 -16 ) ( 60 4 112 ) ( 4 4 112 ) common/nodraw 1 0 -180 0.500000 -0.500000 0 0 0 -( 60 124 -16 ) ( 60 124 112 ) ( 60 132 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 5 -1 -16 ) ( 5 -1 112 ) ( 61 -1 112 ) ctf2/blueteam01 -10 54 0 0.437500 0.437500 0 0 0 -} -// brush 1 -{ -( 64 128 0 ) ( -64 128 0 ) ( -64 -32 0 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( -64 -32 128 ) ( -64 128 128 ) ( 64 128 128 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( 0 0 0 ) ( 0 0 128 ) ( 64 0 128 ) ctf2/blue_banner02 0 0 0 -0.500000 0.500000 0 0 0 -( 64 -32 24 ) ( 64 128 24 ) ( 64 128 -40 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 68 4 16 ) ( -60 4 16 ) ( -60 4 -48 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 0 0 128 ) ( 0 0 0 ) ( 0 8 0 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_red.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_red.pfb.svn-base deleted file mode 100644 index 3139cdd0..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/TA_banner_red.pfb.svn-base +++ /dev/null @@ -1,22 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 -{ -( 4 124 24 ) ( 60 124 24 ) ( 60 132 24 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 60 132 80 ) ( 60 124 80 ) ( 4 124 80 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 4 132 -16 ) ( 4 132 112 ) ( 4 124 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 60 4 -16 ) ( 60 4 112 ) ( 4 4 112 ) common/nodraw 1 0 -180 0.500000 -0.500000 0 0 0 -( 60 124 -16 ) ( 60 124 112 ) ( 60 132 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 5 -1 -16 ) ( 5 -1 112 ) ( 61 -1 112 ) ctf2/redteam01 -10 54 0 0.437500 0.437500 0 0 0 -} -// brush 1 -{ -( 64 128 0 ) ( -64 128 0 ) ( -64 -32 0 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( -64 -32 128 ) ( -64 128 128 ) ( 64 128 128 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( 0 0 0 ) ( 0 0 128 ) ( 64 0 128 ) ctf2/red_banner02 0 0 0 -0.500000 0.500000 0 0 0 -( 64 -32 24 ) ( 64 128 24 ) ( 64 128 -40 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 68 4 16 ) ( -60 4 16 ) ( -60 4 -48 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 0 0 128 ) ( 0 0 0 ) ( 0 8 0 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_blue.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_blue.pfb.svn-base deleted file mode 100644 index c51a0002..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_blue.pfb.svn-base +++ /dev/null @@ -1,12 +0,0 @@ -{ -"classname" "worldspawn" -// brush 0 -{ -( 48 -16 -1 ) ( 80 -16 -1 ) ( 80 16 -1 ) common/nodraw 31 0 -180 0.500000 0.500000 0 0 0 -( 80 16 1 ) ( 80 -16 1 ) ( 48 -16 1 ) base_wall2/techfloor_kc_blue 64 -64 0 0.500000 -0.500000 0 0 0 -( 80 32 31 ) ( 48 32 31 ) ( 48 32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 32 16 31 ) ( 32 -16 31 ) ( 32 -16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -( 48 -32 31 ) ( 80 -32 31 ) ( 80 -32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 96 -16 31 ) ( 96 16 31 ) ( 96 16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_neutral.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_neutral.pfb.svn-base deleted file mode 100644 index 46cc78d7..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_neutral.pfb.svn-base +++ /dev/null @@ -1,12 +0,0 @@ -{ -"classname" "worldspawn" -// brush 0 -{ -( 40 32 0 ) ( -24 32 0 ) ( -24 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 -32 1 ) ( -24 32 1 ) ( 40 32 1 ) base_wall2/ntrl_techfloor_kc -48 64 0 -0.500000 0.500000 134217728 0 0 -( -24 -32 48 ) ( 40 -32 48 ) ( 40 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( 40 -32 48 ) ( 40 32 48 ) ( 40 32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -( 40 32 48 ) ( -24 32 48 ) ( -24 32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 32 48 ) ( -24 -32 48 ) ( -24 -32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_red.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_red.pfb.svn-base deleted file mode 100644 index e6f01ba1..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/armorpad_red.pfb.svn-base +++ /dev/null @@ -1,12 +0,0 @@ -{ -"classname" "worldspawn" -// brush 0 -{ -( 16 16 -1 ) ( -16 16 -1 ) ( -16 -16 -1 ) common/nodraw 0 0 0 0.500000 0.500000 0 0 0 -( -16 -16 1 ) ( -16 16 1 ) ( 16 16 1 ) base_wall2/techfloor_kc -64 64 0 -0.500000 0.500000 0 0 0 -( -16 -32 31 ) ( 16 -32 31 ) ( 16 -32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 32 -16 31 ) ( 32 16 31 ) ( 32 16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 16 32 31 ) ( -16 32 31 ) ( -16 32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( -32 16 31 ) ( -32 -16 31 ) ( -32 -16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_blue.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_blue.pfb.svn-base deleted file mode 100644 index 59e22f86..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_blue.pfb.svn-base +++ /dev/null @@ -1,32 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 - { - patchDef2 - { - base_wall2/respawn_effect1_blue - ( 9 3 0 0 0 ) -( -( ( 24 0 41 0 0.349386 ) ( 34 0 21 0 0.174693 ) ( 44 0 1 0 0 ) ) -( ( 24 40 41 0.312500 0.349386 ) ( 34 30 21 0.312500 0.174693 ) ( 44 20 1 0.312500 0 ) ) -( ( 64 40 41 0.624996 0.349386 ) ( 64 30 21 0.624996 0.174693 ) ( 64 20 1 0.624996 0 ) ) -( ( 104 40 41 0.937492 0.349386 ) ( 94 30 21 0.937492 0.174693 ) ( 84 20 1 0.937492 0 ) ) -( ( 104 0 41 1.249992 0.349386 ) ( 94 0 21 1.249992 0.174693 ) ( 84 0 1 1.249992 0 ) ) -( ( 104 -40 41 1.562492 0.349386 ) ( 94 -30 21 1.562492 0.174693 ) ( 84 -20 1 1.562492 0 ) ) -( ( 64 -40 41 1.874989 0.349386 ) ( 64 -30 21 1.874989 0.174693 ) ( 64 -20 1 1.874989 0 ) ) -( ( 24 -40 41 2.187485 0.349386 ) ( 34 -30 21 2.187485 0.174693 ) ( 44 -20 1 2.187485 0 ) ) -( ( 24 0 41 2.499985 0.349386 ) ( 34 0 21 2.499985 0.174693 ) ( 44 0 1 2.499985 0 ) ) -) - } - } -// brush 1 -{ -( 48 -16 -1 ) ( 80 -16 -1 ) ( 80 16 -1 ) common/nodraw 31 0 -180 0.500000 0.500000 0 0 0 -( 80 16 1 ) ( 80 -16 1 ) ( 48 -16 1 ) base_wall2/techfloor_kc_blue 64 -64 0 0.500000 -0.500000 0 0 0 -( 80 32 31 ) ( 48 32 31 ) ( 48 32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 32 16 31 ) ( 32 -16 31 ) ( 32 -16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -( 48 -32 31 ) ( 80 -32 31 ) ( 80 -32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 96 -16 31 ) ( 96 16 31 ) ( 96 16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_neutral.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_neutral.pfb.svn-base deleted file mode 100644 index 25a25d69..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_neutral.pfb.svn-base +++ /dev/null @@ -1,32 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 - { - patchDef2 - { - base_wall2/respawn_effect1_ntrl - ( 9 3 0 0 0 ) -( -( ( 48 0 40 0 0.349386 ) ( 38 0 20 0 0.174693 ) ( 28 0 0 0 0 ) ) -( ( 48 -40 40 0.312500 0.349386 ) ( 38 -30 20 0.312500 0.174693 ) ( 28 -20 0 0.312500 0 ) ) -( ( 8 -40 40 0.624996 0.349386 ) ( 8 -30 20 0.624996 0.174693 ) ( 8 -20 0 0.624996 0 ) ) -( ( -32 -40 40 0.937492 0.349386 ) ( -22 -30 20 0.937492 0.174693 ) ( -12 -20 0 0.937492 0 ) ) -( ( -32 0 40 1.249992 0.349386 ) ( -22 0 20 1.249992 0.174693 ) ( -12 0 0 1.249992 0 ) ) -( ( -32 40 40 1.562492 0.349386 ) ( -22 30 20 1.562492 0.174693 ) ( -12 20 0 1.562492 0 ) ) -( ( 8 40 40 1.874989 0.349386 ) ( 8 30 20 1.874989 0.174693 ) ( 8 20 0 1.874989 0 ) ) -( ( 48 40 40 2.187485 0.349386 ) ( 38 30 20 2.187485 0.174693 ) ( 28 20 0 2.187485 0 ) ) -( ( 48 0 40 2.499985 0.349386 ) ( 38 0 20 2.499985 0.174693 ) ( 28 0 0 2.499985 0 ) ) -) - } - } -// brush 1 -{ -( 40 32 0 ) ( -24 32 0 ) ( -24 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 -32 1 ) ( -24 32 1 ) ( 40 32 1 ) base_wall2/ntrl_techfloor_kc -48 64 0 -0.500000 0.500000 134217728 0 0 -( -24 -32 48 ) ( 40 -32 48 ) ( 40 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( 40 -32 48 ) ( 40 32 48 ) ( 40 32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -( 40 32 48 ) ( -24 32 48 ) ( -24 32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 32 48 ) ( -24 -32 48 ) ( -24 -32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_red.pfb.svn-base b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_red.pfb.svn-base deleted file mode 100644 index 56728e93..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/.svn/text-base/weaponpad_red.pfb.svn-base +++ /dev/null @@ -1,32 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 - { - patchDef2 - { - base_wall2/respawn_effect1 - ( 9 3 0 0 0 ) -( -( ( 40 0 40 0 0.349386 ) ( 30 0 20 0 0.174693 ) ( 20 0 0 0 0 ) ) -( ( 40 -40 40 0.312500 0.349386 ) ( 30 -30 20 0.312500 0.174693 ) ( 20 -20 0 0.312500 0 ) ) -( ( 0 -40 40 0.624996 0.349386 ) ( 0 -30 20 0.624996 0.174693 ) ( 0 -20 0 0.624996 0 ) ) -( ( -40 -40 40 0.937492 0.349386 ) ( -30 -30 20 0.937492 0.174693 ) ( -20 -20 0 0.937492 0 ) ) -( ( -40 0 40 1.249992 0.349386 ) ( -30 0 20 1.249992 0.174693 ) ( -20 0 0 1.249992 0 ) ) -( ( -40 40 40 1.562492 0.349386 ) ( -30 30 20 1.562492 0.174693 ) ( -20 20 0 1.562492 0 ) ) -( ( 0 40 40 1.874989 0.349386 ) ( 0 30 20 1.874989 0.174693 ) ( 0 20 0 1.874989 0 ) ) -( ( 40 40 40 2.187485 0.349386 ) ( 30 30 20 2.187485 0.174693 ) ( 20 20 0 2.187485 0 ) ) -( ( 40 0 40 2.499985 0.349386 ) ( 30 0 20 2.499985 0.174693 ) ( 20 0 0 2.499985 0 ) ) -) - } - } -// brush 1 -{ -( 16 16 -1 ) ( -16 16 -1 ) ( -16 -16 -1 ) common/nodraw 0 0 0 0.500000 0.500000 0 0 0 -( -16 -16 1 ) ( -16 16 1 ) ( 16 16 1 ) base_wall2/techfloor_kc -64 64 0 -0.500000 0.500000 0 0 0 -( -16 -32 31 ) ( 16 -32 31 ) ( 16 -32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 32 -16 31 ) ( 32 16 31 ) ( 32 16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 16 32 31 ) ( -16 32 31 ) ( -16 32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( -32 16 31 ) ( -32 -16 31 ) ( -32 -16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_blue.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_blue.pfb deleted file mode 100644 index a6acf990..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_blue.pfb +++ /dev/null @@ -1,22 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 -{ -( 4 124 24 ) ( 60 124 24 ) ( 60 132 24 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 60 132 80 ) ( 60 124 80 ) ( 4 124 80 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 4 132 -16 ) ( 4 132 112 ) ( 4 124 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 60 4 -16 ) ( 60 4 112 ) ( 4 4 112 ) common/nodraw 1 0 -180 0.500000 -0.500000 0 0 0 -( 60 124 -16 ) ( 60 124 112 ) ( 60 132 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 5 -1 -16 ) ( 5 -1 112 ) ( 61 -1 112 ) ctf2/blueteam01 -10 54 0 0.437500 0.437500 0 0 0 -} -// brush 1 -{ -( 64 128 0 ) ( -64 128 0 ) ( -64 -32 0 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( -64 -32 128 ) ( -64 128 128 ) ( 64 128 128 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( 0 0 0 ) ( 0 0 128 ) ( 64 0 128 ) ctf2/blue_banner02 0 0 0 -0.500000 0.500000 0 0 0 -( 64 -32 24 ) ( 64 128 24 ) ( 64 128 -40 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 68 4 16 ) ( -60 4 16 ) ( -60 4 -48 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 0 0 128 ) ( 0 0 0 ) ( 0 8 0 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_red.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_red.pfb deleted file mode 100644 index 3139cdd0..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/TA_banner_red.pfb +++ /dev/null @@ -1,22 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 -{ -( 4 124 24 ) ( 60 124 24 ) ( 60 132 24 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 60 132 80 ) ( 60 124 80 ) ( 4 124 80 ) common/nodraw 0 -30 90 0.500000 0.500000 0 0 0 -( 4 132 -16 ) ( 4 132 112 ) ( 4 124 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 60 4 -16 ) ( 60 4 112 ) ( 4 4 112 ) common/nodraw 1 0 -180 0.500000 -0.500000 0 0 0 -( 60 124 -16 ) ( 60 124 112 ) ( 60 132 112 ) common/nodraw 0 -31 0 0.500000 0.500000 0 0 0 -( 5 -1 -16 ) ( 5 -1 112 ) ( 61 -1 112 ) ctf2/redteam01 -10 54 0 0.437500 0.437500 0 0 0 -} -// brush 1 -{ -( 64 128 0 ) ( -64 128 0 ) ( -64 -32 0 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( -64 -32 128 ) ( -64 128 128 ) ( 64 128 128 ) common/nodraw -1 -1 0 0.500000 0.500000 0 0 0 -( 0 0 0 ) ( 0 0 128 ) ( 64 0 128 ) ctf2/red_banner02 0 0 0 -0.500000 0.500000 0 0 0 -( 64 -32 24 ) ( 64 128 24 ) ( 64 128 -40 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 68 4 16 ) ( -60 4 16 ) ( -60 4 -48 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -( 0 0 128 ) ( 0 0 0 ) ( 0 8 0 ) common/nodraw 0 1 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_blue.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_blue.pfb deleted file mode 100644 index c51a0002..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_blue.pfb +++ /dev/null @@ -1,12 +0,0 @@ -{ -"classname" "worldspawn" -// brush 0 -{ -( 48 -16 -1 ) ( 80 -16 -1 ) ( 80 16 -1 ) common/nodraw 31 0 -180 0.500000 0.500000 0 0 0 -( 80 16 1 ) ( 80 -16 1 ) ( 48 -16 1 ) base_wall2/techfloor_kc_blue 64 -64 0 0.500000 -0.500000 0 0 0 -( 80 32 31 ) ( 48 32 31 ) ( 48 32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 32 16 31 ) ( 32 -16 31 ) ( 32 -16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -( 48 -32 31 ) ( 80 -32 31 ) ( 80 -32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 96 -16 31 ) ( 96 16 31 ) ( 96 16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_neutral.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_neutral.pfb deleted file mode 100644 index 46cc78d7..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_neutral.pfb +++ /dev/null @@ -1,12 +0,0 @@ -{ -"classname" "worldspawn" -// brush 0 -{ -( 40 32 0 ) ( -24 32 0 ) ( -24 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 -32 1 ) ( -24 32 1 ) ( 40 32 1 ) base_wall2/ntrl_techfloor_kc -48 64 0 -0.500000 0.500000 134217728 0 0 -( -24 -32 48 ) ( 40 -32 48 ) ( 40 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( 40 -32 48 ) ( 40 32 48 ) ( 40 32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -( 40 32 48 ) ( -24 32 48 ) ( -24 32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 32 48 ) ( -24 -32 48 ) ( -24 -32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_red.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_red.pfb deleted file mode 100644 index e6f01ba1..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/armorpad_red.pfb +++ /dev/null @@ -1,12 +0,0 @@ -{ -"classname" "worldspawn" -// brush 0 -{ -( 16 16 -1 ) ( -16 16 -1 ) ( -16 -16 -1 ) common/nodraw 0 0 0 0.500000 0.500000 0 0 0 -( -16 -16 1 ) ( -16 16 1 ) ( 16 16 1 ) base_wall2/techfloor_kc -64 64 0 -0.500000 0.500000 0 0 0 -( -16 -32 31 ) ( 16 -32 31 ) ( 16 -32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 32 -16 31 ) ( 32 16 31 ) ( 32 16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 16 32 31 ) ( -16 32 31 ) ( -16 32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( -32 16 31 ) ( -32 -16 31 ) ( -32 -16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_blue.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_blue.pfb deleted file mode 100644 index 59e22f86..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_blue.pfb +++ /dev/null @@ -1,32 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 - { - patchDef2 - { - base_wall2/respawn_effect1_blue - ( 9 3 0 0 0 ) -( -( ( 24 0 41 0 0.349386 ) ( 34 0 21 0 0.174693 ) ( 44 0 1 0 0 ) ) -( ( 24 40 41 0.312500 0.349386 ) ( 34 30 21 0.312500 0.174693 ) ( 44 20 1 0.312500 0 ) ) -( ( 64 40 41 0.624996 0.349386 ) ( 64 30 21 0.624996 0.174693 ) ( 64 20 1 0.624996 0 ) ) -( ( 104 40 41 0.937492 0.349386 ) ( 94 30 21 0.937492 0.174693 ) ( 84 20 1 0.937492 0 ) ) -( ( 104 0 41 1.249992 0.349386 ) ( 94 0 21 1.249992 0.174693 ) ( 84 0 1 1.249992 0 ) ) -( ( 104 -40 41 1.562492 0.349386 ) ( 94 -30 21 1.562492 0.174693 ) ( 84 -20 1 1.562492 0 ) ) -( ( 64 -40 41 1.874989 0.349386 ) ( 64 -30 21 1.874989 0.174693 ) ( 64 -20 1 1.874989 0 ) ) -( ( 24 -40 41 2.187485 0.349386 ) ( 34 -30 21 2.187485 0.174693 ) ( 44 -20 1 2.187485 0 ) ) -( ( 24 0 41 2.499985 0.349386 ) ( 34 0 21 2.499985 0.174693 ) ( 44 0 1 2.499985 0 ) ) -) - } - } -// brush 1 -{ -( 48 -16 -1 ) ( 80 -16 -1 ) ( 80 16 -1 ) common/nodraw 31 0 -180 0.500000 0.500000 0 0 0 -( 80 16 1 ) ( 80 -16 1 ) ( 48 -16 1 ) base_wall2/techfloor_kc_blue 64 -64 0 0.500000 -0.500000 0 0 0 -( 80 32 31 ) ( 48 32 31 ) ( 48 32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 32 16 31 ) ( 32 -16 31 ) ( 32 -16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -( 48 -32 31 ) ( 80 -32 31 ) ( 80 -32 -1 ) common/nodraw 0 -2 -180 0.500000 -0.500000 0 0 0 -( 96 -16 31 ) ( 96 16 31 ) ( 96 16 -1 ) common/nodraw 0 -1 -180 0.500000 -0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_neutral.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_neutral.pfb deleted file mode 100644 index 25a25d69..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_neutral.pfb +++ /dev/null @@ -1,32 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 - { - patchDef2 - { - base_wall2/respawn_effect1_ntrl - ( 9 3 0 0 0 ) -( -( ( 48 0 40 0 0.349386 ) ( 38 0 20 0 0.174693 ) ( 28 0 0 0 0 ) ) -( ( 48 -40 40 0.312500 0.349386 ) ( 38 -30 20 0.312500 0.174693 ) ( 28 -20 0 0.312500 0 ) ) -( ( 8 -40 40 0.624996 0.349386 ) ( 8 -30 20 0.624996 0.174693 ) ( 8 -20 0 0.624996 0 ) ) -( ( -32 -40 40 0.937492 0.349386 ) ( -22 -30 20 0.937492 0.174693 ) ( -12 -20 0 0.937492 0 ) ) -( ( -32 0 40 1.249992 0.349386 ) ( -22 0 20 1.249992 0.174693 ) ( -12 0 0 1.249992 0 ) ) -( ( -32 40 40 1.562492 0.349386 ) ( -22 30 20 1.562492 0.174693 ) ( -12 20 0 1.562492 0 ) ) -( ( 8 40 40 1.874989 0.349386 ) ( 8 30 20 1.874989 0.174693 ) ( 8 20 0 1.874989 0 ) ) -( ( 48 40 40 2.187485 0.349386 ) ( 38 30 20 2.187485 0.174693 ) ( 28 20 0 2.187485 0 ) ) -( ( 48 0 40 2.499985 0.349386 ) ( 38 0 20 2.499985 0.174693 ) ( 28 0 0 2.499985 0 ) ) -) - } - } -// brush 1 -{ -( 40 32 0 ) ( -24 32 0 ) ( -24 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 -32 1 ) ( -24 32 1 ) ( 40 32 1 ) base_wall2/ntrl_techfloor_kc -48 64 0 -0.500000 0.500000 134217728 0 0 -( -24 -32 48 ) ( 40 -32 48 ) ( 40 -32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( 40 -32 48 ) ( 40 32 48 ) ( 40 32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -( 40 32 48 ) ( -24 32 48 ) ( -24 32 0 ) common/nodraw 16 0 0 0.500000 0.500000 134217728 0 0 -( -24 32 48 ) ( -24 -32 48 ) ( -24 -32 0 ) common/nodraw 0 0 0 0.500000 0.500000 134217728 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_red.pfb b/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_red.pfb deleted file mode 100644 index 56728e93..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/Team Arena Prefabs/weaponpad_red.pfb +++ /dev/null @@ -1,32 +0,0 @@ -// entity 1 -{ -"classname" "func_group" -// brush 0 - { - patchDef2 - { - base_wall2/respawn_effect1 - ( 9 3 0 0 0 ) -( -( ( 40 0 40 0 0.349386 ) ( 30 0 20 0 0.174693 ) ( 20 0 0 0 0 ) ) -( ( 40 -40 40 0.312500 0.349386 ) ( 30 -30 20 0.312500 0.174693 ) ( 20 -20 0 0.312500 0 ) ) -( ( 0 -40 40 0.624996 0.349386 ) ( 0 -30 20 0.624996 0.174693 ) ( 0 -20 0 0.624996 0 ) ) -( ( -40 -40 40 0.937492 0.349386 ) ( -30 -30 20 0.937492 0.174693 ) ( -20 -20 0 0.937492 0 ) ) -( ( -40 0 40 1.249992 0.349386 ) ( -30 0 20 1.249992 0.174693 ) ( -20 0 0 1.249992 0 ) ) -( ( -40 40 40 1.562492 0.349386 ) ( -30 30 20 1.562492 0.174693 ) ( -20 20 0 1.562492 0 ) ) -( ( 0 40 40 1.874989 0.349386 ) ( 0 30 20 1.874989 0.174693 ) ( 0 20 0 1.874989 0 ) ) -( ( 40 40 40 2.187485 0.349386 ) ( 30 30 20 2.187485 0.174693 ) ( 20 20 0 2.187485 0 ) ) -( ( 40 0 40 2.499985 0.349386 ) ( 30 0 20 2.499985 0.174693 ) ( 20 0 0 2.499985 0 ) ) -) - } - } -// brush 1 -{ -( 16 16 -1 ) ( -16 16 -1 ) ( -16 -16 -1 ) common/nodraw 0 0 0 0.500000 0.500000 0 0 0 -( -16 -16 1 ) ( -16 16 1 ) ( 16 16 1 ) base_wall2/techfloor_kc -64 64 0 -0.500000 0.500000 0 0 0 -( -16 -32 31 ) ( 16 -32 31 ) ( 16 -32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 32 -16 31 ) ( 32 16 31 ) ( 32 16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( 16 32 31 ) ( -16 32 31 ) ( -16 32 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -( -32 16 31 ) ( -32 -16 31 ) ( -32 -16 -1 ) common/nodraw 0 -2 0 0.500000 0.500000 0 0 0 -} -} diff --git a/install/installs/Q3Pack/install/missionpack/maps/terrademo.map b/install/installs/Q3Pack/install/missionpack/maps/terrademo.map deleted file mode 100644 index fca03efd..00000000 --- a/install/installs/Q3Pack/install/missionpack/maps/terrademo.map +++ /dev/null @@ -1,553 +0,0 @@ -{ -"gridsize" "256 256 256" -"vertexremapshader6" "textures/terrain/mpterra2_2;textures/terrain/vxmpterra2" -"vertexremapshader5" "textures/terrain/mpterra2_1;textures/terrain/vxmpterra2" -"vertexremapshader4" "textures/terrain/mpterra2_0;textures/terrain/vxmpterra2" -"vertexremapshader3" "textures/terrain/mpterra2_1to2;textures/terrain/vxmpterra2" -"vertexremapshader2" "textures/terrain/mpterra2_0to2;textures/terrain/vxmpterra2" -"vertexremapshader1" "textures/terrain/mpterra2_0to1;textures/terrain/vxmpterra2" -"enableBreath" "1" -"_color" ".22 .37 .4" -"message" "Distant Screams" -"classname" "worldspawn" -"ambient" "22" -"music" "music/fla_mp03.wav" -// brush 0 -{ -( -448 -640 -352 ) ( -448 440 -352 ) ( -512 440 -352 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -512 440 -304 ) ( -448 440 -304 ) ( -448 -640 -304 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -512 440 -304 ) ( -512 -640 -304 ) ( -512 -640 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -512 -512 -304 ) ( -448 -512 -304 ) ( -448 -512 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( 576 -640 -304 ) ( 576 440 -304 ) ( 576 440 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -( -448 512 -304 ) ( -512 512 -304 ) ( -512 512 -1952 ) common/caulk 0 0 0 0.500000 0.500000 0 0 0 -} -// brush 1 -{ -( -448 -640 1376 ) ( -448 440 1376 ) ( -512 440 1376 ) skies/pj_ctf2_sky 128 127 90 0.500000 0.500000 0 0 0 -( -512 440 1424 ) ( -448 440 1424 ) ( -448 -640 1424 ) skies/pj_ctf2_sky 128 127 90 0.500000 0.500000 0 0 0 -( -512 440 1424 ) ( -512 -640 1424 ) ( -512 -640 -224 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( -512 -512 1424 ) ( -448 -512 1424 ) ( -448 -512 -224 ) skies/pj_ctf2_sky 127 0 -180 0.500000 -0.500000 0 0 0 -( 576 -640 1424 ) ( 576 440 1424 ) ( 576 440 -224 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( -448 512 1424 ) ( -512 512 1424 ) ( -512 512 -224 ) skies/pj_ctf2_sky 127 0 -180 0.500000 -0.500000 0 0 0 -} -// brush 2 -{ -( -512 -576 -352 ) ( -512 504 -352 ) ( -576 504 -352 ) skies/pj_ctf2_sky 0 255 90 0.500000 0.500000 0 0 0 -( -576 504 1424 ) ( -512 504 1424 ) ( -512 -576 1424 ) skies/pj_ctf2_sky 0 255 90 0.500000 0.500000 0 0 0 -( -576 504 1296 ) ( -576 -576 1296 ) ( -576 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -576 -576 1296 ) ( -512 -576 1296 ) ( -512 -576 -352 ) skies/pj_ctf2_sky 0 0 -180 0.500000 -0.500000 0 0 0 -( -512 -576 1296 ) ( -512 504 1296 ) ( -512 504 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -512 576 1296 ) ( -576 576 1296 ) ( -576 576 -352 ) skies/pj_ctf2_sky 0 0 -180 0.500000 -0.500000 0 0 0 -} -// brush 3 -{ -( 576 -576 -352 ) ( 576 504 -352 ) ( 512 504 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 512 504 1424 ) ( 576 504 1424 ) ( 576 -576 1424 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 512 504 1296 ) ( 512 -576 1296 ) ( 512 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 512 -576 1296 ) ( 576 -576 1296 ) ( 576 -576 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 576 -576 1296 ) ( 576 504 1296 ) ( 576 504 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 576 576 1296 ) ( 512 576 1296 ) ( 512 576 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -} -// brush 4 -{ -( 576 576 -352 ) ( -504 576 -352 ) ( -504 512 -352 ) skies/pj_ctf2_sky 0 -128 0 0.500000 0.500000 0 0 0 -( -504 512 1424 ) ( -504 576 1424 ) ( 576 576 1424 ) skies/pj_ctf2_sky 0 -128 0 0.500000 0.500000 0 0 0 -( -504 512 1296 ) ( 576 512 1296 ) ( 576 512 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 512 512 1296 ) ( 512 576 1296 ) ( 512 576 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -( 576 576 1296 ) ( -504 576 1296 ) ( -504 576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -512 576 1296 ) ( -512 512 1296 ) ( -512 512 -352 ) skies/pj_ctf2_sky 128 0 0 0.500000 0.500000 0 0 0 -} -// brush 5 -{ -( 576 -512 -352 ) ( -504 -512 -352 ) ( -504 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -504 -576 1424 ) ( -504 -512 1424 ) ( 576 -512 1424 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -504 -576 1296 ) ( 576 -576 1296 ) ( 576 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 512 -576 1296 ) ( 512 -512 1296 ) ( 512 -512 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( 576 -512 1296 ) ( -504 -512 1296 ) ( -504 -512 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -( -512 -512 1296 ) ( -512 -576 1296 ) ( -512 -576 -352 ) skies/pj_ctf2_sky 0 0 0 0.500000 0.500000 0 0 0 -} -} -// entity 1 -{ -"origin" "248 136 416" -"model" "models/mapobjects/tree2/tree6.md3" -"classname" "misc_model" -} -// entity 2 -{ -"classname" "misc_model" -"model" "models/mapobjects/tree2/tree1.md3" -"origin" "176 256 392" -} -// entity 3 -{ -"origin" "40 -112 440" -"angle" "90" -"classname" "info_player_deathmatch" -} -// entity 4 -{ -"classname" "func_group" -"alphamap" "textures/proto2/pj_terralpha01.pcx" -"shader" "terrain/mpterra2" -"layers" "3" -"terrain" "1" -// brush 0 -{ -( -512 -512 1296 ) ( -256 -256 592 ) ( -256 -512 848 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 -512 -352 ) ( -256 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -512 848 ) ( -256 -512 -352 ) ( -512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -512 1296 ) ( -512 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 1 -{ -( -512 -256 1152 ) ( -256 -256 592 ) ( -512 -512 1296 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 -256 -352 ) ( -512 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -512 1296 ) ( -512 -512 -352 ) ( -512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -256 1152 ) ( -512 -256 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 2 -{ -( -512 -256 1152 ) ( -512 0 800 ) ( -256 -256 592 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 -256 -352 ) ( -256 -256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 -256 1152 ) ( -512 -256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 3 -{ -( -512 0 800 ) ( -256 0 416 ) ( -256 -256 592 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 0 -352 ) ( -256 -256 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 4 -{ -( -512 0 800 ) ( -256 256 344 ) ( -256 0 416 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 0 -352 ) ( -256 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 5 -{ -( -512 256 360 ) ( -256 256 344 ) ( -512 0 800 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 256 -352 ) ( -512 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 0 800 ) ( -512 0 -352 ) ( -512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 256 360 ) ( -512 256 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 6 -{ -( -512 256 360 ) ( -512 512 200 ) ( -256 256 344 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 256 -352 ) ( -256 256 -352 ) ( -512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 512 200 ) ( -512 512 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 256 360 ) ( -512 256 -352 ) ( -512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 7 -{ -( -512 512 200 ) ( -256 512 272 ) ( -256 256 344 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -512 512 -352 ) ( -256 256 -352 ) ( -256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 512 272 ) ( -256 512 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -512 512 200 ) ( -512 512 -352 ) ( -256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 8 -{ -( -256 -512 848 ) ( -256 -256 592 ) ( 0 -512 408 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 -512 -352 ) ( 0 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( -256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -512 848 ) ( -256 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 9 -{ -( -256 -256 592 ) ( 0 -256 376 ) ( 0 -512 408 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 -256 -352 ) ( 0 -512 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 10 -{ -( -256 -256 592 ) ( 0 0 360 ) ( 0 -256 376 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 -256 -352 ) ( 0 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 11 -{ -( -256 0 416 ) ( 0 0 360 ) ( -256 -256 592 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 0 -352 ) ( -256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 -256 592 ) ( -256 -256 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( -256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 12 -{ -( -256 0 416 ) ( -256 256 344 ) ( 0 0 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 0 -352 ) ( 0 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( -256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 0 416 ) ( -256 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 13 -{ -( -256 256 344 ) ( 0 256 352 ) ( 0 0 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 256 -352 ) ( 0 0 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 14 -{ -( -256 256 344 ) ( 0 512 360 ) ( 0 256 352 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 256 -352 ) ( 0 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 15 -{ -( -256 512 272 ) ( 0 512 360 ) ( -256 256 344 ) common/terrain 0 0 0 2 2 134217728 0 0 -( -256 512 -352 ) ( -256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 256 344 ) ( -256 256 -352 ) ( -256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( -256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( -256 512 272 ) ( -256 512 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 16 -{ -( 0 -512 408 ) ( 256 -256 448 ) ( 256 -512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 -512 -352 ) ( 256 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -512 360 ) ( 256 -512 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 17 -{ -( 0 -256 376 ) ( 256 -256 448 ) ( 0 -512 408 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 -256 -352 ) ( 0 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -512 408 ) ( 0 -512 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 0 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 18 -{ -( 0 -256 376 ) ( 0 0 360 ) ( 256 -256 448 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 -256 -352 ) ( 256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 0 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 -256 376 ) ( 0 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 19 -{ -( 0 0 360 ) ( 256 0 456 ) ( 256 -256 448 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 0 -352 ) ( 256 -256 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 20 -{ -( 256 0 456 ) ( 0 0 360 ) ( 256 256 400 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 0 -352 ) ( 256 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 21 -{ -( 0 0 360 ) ( 0 256 352 ) ( 256 256 400 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 256 -352 ) ( 0 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 0 360 ) ( 0 0 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 0 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 22 -{ -( 256 256 400 ) ( 0 256 352 ) ( 0 512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 256 -352 ) ( 256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 0 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 256 352 ) ( 0 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 23 -{ -( 256 256 400 ) ( 0 512 360 ) ( 256 512 456 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 0 512 -352 ) ( 256 256 -352 ) ( 256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 0 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 512 456 ) ( 256 512 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 0 512 360 ) ( 0 512 -352 ) ( 256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 24 -{ -( 256 -512 360 ) ( 256 -256 448 ) ( 512 -512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 -512 -352 ) ( 512 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -512 360 ) ( 512 -512 -352 ) ( 256 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -512 360 ) ( 256 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 25 -{ -( 256 -256 448 ) ( 512 -256 496 ) ( 512 -512 360 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 -256 -352 ) ( 512 -512 -352 ) ( 512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -512 360 ) ( 512 -512 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -256 496 ) ( 512 -256 -352 ) ( 512 -512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 26 -{ -( 256 -256 448 ) ( 512 0 408 ) ( 512 -256 496 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 -256 -352 ) ( 512 -256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 -256 496 ) ( 512 -256 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 512 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 27 -{ -( 256 0 456 ) ( 512 0 408 ) ( 256 -256 448 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 0 -352 ) ( 256 -256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 -256 448 ) ( 256 -256 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 256 -256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 28 -{ -( 256 256 400 ) ( 512 0 408 ) ( 256 0 456 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 0 -352 ) ( 512 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 256 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 0 456 ) ( 256 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 29 -{ -( 512 0 408 ) ( 256 256 400 ) ( 512 256 536 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 256 -352 ) ( 512 0 -352 ) ( 512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 0 408 ) ( 512 0 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 256 536 ) ( 512 256 -352 ) ( 512 0 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 30 -{ -( 512 512 960 ) ( 512 256 536 ) ( 256 256 400 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 256 -352 ) ( 512 256 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 256 536 ) ( 512 256 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 512 960 ) ( 512 512 -352 ) ( 512 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -// brush 31 -{ -( 512 512 960 ) ( 256 256 400 ) ( 256 512 456 ) common/terrain 0 0 0 2 2 134217728 0 0 -( 256 512 -352 ) ( 256 256 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 256 360 ) ( 256 256 -352 ) ( 256 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 512 512 960 ) ( 512 512 -352 ) ( 256 256 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -( 256 512 456 ) ( 256 512 -352 ) ( 512 512 -352 ) common/caulk 0 0 0 2 2 134217728 0 0 -} -} -// entity 5 -{ -"classname" "func_group" -// brush 0 -{ -( 3072 -6528 120 ) ( 3072 -6528 136 ) ( 3000 -6600 136 ) proto2/concrete04stair2 32 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6608 160 ) ( 3248 -6608 176 ) ( 3176 -6536 176 ) proto2/concrete04stair2 160 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3072 -6752 176 ) ( 3072 -6752 160 ) ( 3000 -6680 160 ) proto2/concrete04stair2 160 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/tin_floor06 0 0 0 0.500000 0.500000 134217728 0 0 -( 3160 -6752 160 ) ( 3144 -6752 160 ) ( 3152 -6752 176 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3144 -6528 160 ) ( 3168 -6528 160 ) ( 3156 -6528 176 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3232 -6664 120 ) ( 3232 -6688 120 ) ( 3232 -6676 136 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3008 -6696 120 ) ( 3008 -6672 120 ) ( 3008 -6684 136 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3232 -6688 160 ) ( 3176 -6744 160 ) ( 3204 -6716 176 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 1 -{ -( 3112 -6560 176 ) ( 3112 -6560 178 ) ( 3000 -6560 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3200 -6640 176 ) ( 3200 -6640 178 ) ( 3200 -6528 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3120 -6720 176 ) ( 3120 -6720 178 ) ( 3232 -6720 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3040 -6640 176 ) ( 3040 -6640 178 ) ( 3040 -6752 178 ) common/nodraw 0 0 -180 0.500000 -0.500000 134217728 0 0 -( 3232 -6528 176 ) ( 3008 -6528 176 ) ( 3008 -6752 176 ) common/nodraw 0 -31 -180 0.500000 0.500000 134217728 0 0 -( 3008 -6752 178 ) ( 3008 -6528 178 ) ( 3232 -6528 178 ) ctf2/blueteam01 -127 0 0 1.250000 1.250000 134217728 0 0 -} -// brush 2 -{ -( 3176 -6512 176 ) ( 3176 -6512 160 ) ( 3248 -6584 160 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 2992 -6512 120 ) ( 2992 -6768 120 ) ( 3248 -6768 120 ) common/caulk -62 -1 90 0.500000 0.500000 134217728 0 0 -( 3248 -6768 176 ) ( 2992 -6768 176 ) ( 2992 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3248 -6584 176 ) ( 3248 -6584 160 ) ( 3232 -6592 160 ) proto2/tin_floor06 64 63 -180 0.500000 -0.500000 134217728 0 0 -( 3176 -6512 120 ) ( 3176 -6512 136 ) ( 3168 -6528 136 ) proto2/tin_floor06 0 63 0 0.500000 0.500000 134217728 0 0 -( 3224 -6584 160 ) ( 3168 -6528 160 ) ( 3196 -6556 176 ) proto2/tin_floor06 -127 63 0 0.500000 0.500000 134217728 0 0 -} -// brush 3 -{ -( 3064 -6512 176 ) ( 3064 -6512 160 ) ( 3176 -6512 160 ) proto2/concrete07_min 0 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3168 -6528 120 ) ( 3168 -6528 136 ) ( 3176 -6512 136 ) proto2/concrete04stair2 -32 -18 0 0.500000 0.500000 134217728 0 0 -( 2992 -6768 120 ) ( 3248 -6768 120 ) ( 3248 -6512 120 ) common/caulk -31 33 0 0.500000 0.500000 134217728 0 0 -( 3248 -6512 176 ) ( 3248 -6768 176 ) ( 2992 -6768 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3168 -6528 176 ) ( 3168 -6528 160 ) ( 3072 -6528 160 ) proto2/tin_floor06 -96 63 0 0.500000 0.500000 134217728 0 0 -( 3072 -6528 136 ) ( 3072 -6528 120 ) ( 3064 -6512 120 ) proto2/tin_floor06 -32 63 0 0.500000 0.500000 134217728 0 0 -} -// brush 4 -{ -( 2992 -6584 176 ) ( 2992 -6584 160 ) ( 3064 -6512 160 ) proto2/concrete07_min 32 -32 -180 0.500000 -0.500000 134217728 0 0 -( 2992 -6768 120 ) ( 3248 -6768 120 ) ( 3248 -6512 120 ) common/caulk -31 33 0 0.500000 0.500000 134217728 0 0 -( 3248 -6512 176 ) ( 3248 -6768 176 ) ( 2992 -6768 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3064 -6512 136 ) ( 3064 -6512 120 ) ( 3072 -6528 120 ) proto2/tin_floor06 -32 63 0 0.500000 0.500000 134217728 0 0 -( 2992 -6584 120 ) ( 2992 -6584 136 ) ( 3008 -6592 136 ) proto2/tin_floor06 -96 63 0 0.500000 0.500000 134217728 0 0 -( 3064 -6536 120 ) ( 3008 -6592 120 ) ( 3036 -6564 136 ) proto2/tin_floor06 -96 63 0 0.500000 0.500000 134217728 0 0 -} -// brush 5 -{ -( 3008 -6592 120 ) ( 3008 -6592 136 ) ( 2992 -6584 136 ) proto2/concrete04stair2 224 -17 -180 0.500000 -0.500000 134217728 0 0 -( 3008 -6688 136 ) ( 3008 -6688 120 ) ( 2992 -6696 120 ) proto2/concrete04stair2 224 -17 -180 0.500000 -0.500000 134217728 0 0 -( 2992 -6584 160 ) ( 2992 -6584 176 ) ( 2992 -6696 176 ) proto2/concrete07_min 128 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3008 -6592 136 ) ( 3008 -6592 120 ) ( 3008 -6688 120 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 6 -{ -( 3064 -6768 176 ) ( 3064 -6768 160 ) ( 2992 -6696 160 ) proto2/concrete07_min 96 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6768 120 ) ( 3248 -6512 120 ) ( 2992 -6512 120 ) common/caulk 0 63 -90 0.500000 0.500000 134217728 0 0 -( 2992 -6512 176 ) ( 3248 -6512 176 ) ( 3248 -6768 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 2992 -6696 136 ) ( 2992 -6696 120 ) ( 3008 -6688 120 ) proto2/tin_floor06 0 63 0 0.500000 0.500000 134217728 0 0 -( 3064 -6768 120 ) ( 3064 -6768 136 ) ( 3072 -6752 136 ) proto2/tin_floor06 64 64 -180 0.500000 -0.500000 134217728 0 0 -( 3016 -6696 160 ) ( 3072 -6752 160 ) ( 3044 -6724 176 ) proto2/tin_floor06 1 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 7 -{ -( 3176 -6768 136 ) ( 3176 -6768 120 ) ( 3064 -6768 120 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3072 -6752 120 ) ( 3072 -6752 136 ) ( 3064 -6768 136 ) proto2/concrete04stair2 32 -16 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3072 -6752 176 ) ( 3072 -6752 160 ) ( 3168 -6752 160 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3168 -6752 136 ) ( 3168 -6752 120 ) ( 3176 -6768 120 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 8 -{ -( 3248 -6696 176 ) ( 3248 -6696 160 ) ( 3176 -6768 160 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3176 -6768 136 ) ( 3176 -6768 120 ) ( 3168 -6752 120 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6696 160 ) ( 3248 -6696 176 ) ( 3232 -6688 176 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -( 3176 -6744 160 ) ( 3232 -6688 160 ) ( 3204 -6716 176 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 9 -{ -( 3232 -6592 176 ) ( 3232 -6592 160 ) ( 3248 -6584 160 ) proto2/concrete04stair2 224 -17 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6696 160 ) ( 3248 -6696 176 ) ( 3248 -6584 176 ) proto2/concrete07_min 160 -32 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6512 120 ) ( 2992 -6512 120 ) ( 2992 -6768 120 ) common/caulk 32 -31 -180 0.500000 0.500000 134217728 0 0 -( 2992 -6768 176 ) ( 2992 -6512 176 ) ( 3248 -6512 176 ) proto2/concrete07_smth 0 0 0 0.500000 0.500000 134217728 0 0 -( 3232 -6592 120 ) ( 3232 -6592 136 ) ( 3232 -6688 136 ) proto2/tin_floor06 32 64 -180 0.500000 -0.500000 134217728 0 0 -( 3248 -6696 176 ) ( 3248 -6696 160 ) ( 3232 -6688 160 ) proto2/tin_floor06 96 63 -180 0.500000 -0.500000 134217728 0 0 -} -} -// entity 6 -{ -"classname" "func_group" -// brush 0 -{ -( -8 0 360 ) ( -8 0 376 ) ( -80 -72 376 ) proto2/concrete04stair2 32 -15 -180 0.500000 -0.500000 134217728 0 0 -( 168 -80 400 ) ( 168 -80 416 ) ( 96 -8 416 ) proto2/concrete04stair2 159 -15 -180 0.500000 -0.500000 134217728 0 0 -( -8 -224 416 ) ( -8 -224 400 ) ( -80 -152 400 ) proto2/concrete04stair2 159 -15 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/tin_floor06 16 0 0 0.500000 0.500000 134217728 0 0 -( 80 -224 400 ) ( 64 -224 400 ) ( 72 -224 416 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 64 0 400 ) ( 88 0 400 ) ( 76 0 416 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 152 -136 360 ) ( 152 -160 360 ) ( 152 -148 376 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( -72 -168 360 ) ( -72 -144 360 ) ( -72 -156 376 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( 152 -160 400 ) ( 96 -216 400 ) ( 124 -188 416 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 1 -{ -( 32 -32 416 ) ( 32 -32 418 ) ( -80 -32 418 ) common/nodraw -16 -32 -180 0.500000 -0.500000 134217728 0 0 -( 120 -112 416 ) ( 120 -112 418 ) ( 120 0 418 ) common/nodraw 0 -31 -180 0.500000 -0.500000 134217728 0 0 -( 40 -192 416 ) ( 40 -192 418 ) ( 152 -192 418 ) common/nodraw -16 -32 -180 0.500000 -0.500000 134217728 0 0 -( -40 -112 416 ) ( -40 -112 418 ) ( -40 -224 418 ) common/nodraw 0 -31 -180 0.500000 -0.500000 134217728 0 0 -( 152 0 416 ) ( -72 0 416 ) ( -72 -224 416 ) common/nodraw -16 -30 -180 0.500000 0.500000 134217728 0 0 -( -72 -224 418 ) ( -72 0 418 ) ( 152 0 418 ) ctf2/blueteam01 33 102 0 1.250000 1.250000 134217728 0 0 -} -// brush 2 -{ -( 96 16 416 ) ( 96 16 400 ) ( 168 -56 400 ) proto2/concrete07_min 159 -63 -180 0.500000 -0.500000 134217728 0 0 -( -88 16 360 ) ( -88 -240 360 ) ( 168 -240 360 ) common/caulk 1 14 90 0.500000 0.500000 134217728 0 0 -( 168 -240 416 ) ( -88 -240 416 ) ( -88 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 168 -56 416 ) ( 168 -56 400 ) ( 152 -64 400 ) proto2/tin_floor06 -80 30 -180 0.500000 -0.500000 134217728 0 0 -( 96 16 360 ) ( 96 16 376 ) ( 88 0 376 ) proto2/tin_floor06 0 31 0 0.500000 0.500000 134217728 0 0 -( 144 -56 400 ) ( 88 0 400 ) ( 116 -28 416 ) proto2/tin_floor06 1 31 0 0.500000 0.500000 134217728 0 0 -} -// brush 3 -{ -( -16 16 416 ) ( -16 16 400 ) ( 96 16 400 ) proto2/concrete07_min -15 63 -180 0.500000 -0.500000 134217728 0 0 -( 88 0 360 ) ( 88 0 376 ) ( 96 16 376 ) proto2/concrete04stair2 -32 -18 0 0.500000 0.500000 134217728 0 0 -( -88 -240 360 ) ( 168 -240 360 ) ( 168 16 360 ) common/caulk 49 33 0 0.500000 0.500000 134217728 0 0 -( 168 16 416 ) ( 168 -240 416 ) ( -88 -240 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 88 0 416 ) ( 88 0 400 ) ( -8 0 400 ) proto2/tin_floor06 48 31 0 0.500000 0.500000 134217728 0 0 -( -8 0 376 ) ( -8 0 360 ) ( -16 16 360 ) proto2/tin_floor06 -32 31 0 0.500000 0.500000 134217728 0 0 -} -// brush 4 -{ -( -88 -56 416 ) ( -88 -56 400 ) ( -16 16 400 ) proto2/concrete07_min 32 -63 -180 0.500000 -0.500000 134217728 0 0 -( -88 -240 360 ) ( 168 -240 360 ) ( 168 16 360 ) common/caulk 49 33 0 0.500000 0.500000 134217728 0 0 -( 168 16 416 ) ( 168 -240 416 ) ( -88 -240 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -16 16 376 ) ( -16 16 360 ) ( -8 0 360 ) proto2/tin_floor06 -32 31 0 0.500000 0.500000 134217728 0 0 -( -88 -56 360 ) ( -88 -56 376 ) ( -72 -64 376 ) proto2/tin_floor06 48 31 0 0.500000 0.500000 134217728 0 0 -( -16 -8 360 ) ( -72 -64 360 ) ( -44 -36 376 ) proto2/tin_floor06 -96 31 0 0.500000 0.500000 134217728 0 0 -} -// brush 5 -{ -( -72 -64 360 ) ( -72 -64 376 ) ( -88 -56 376 ) proto2/concrete04stair2 -48 -17 -180 0.500000 -0.500000 134217728 0 0 -( -72 -160 376 ) ( -72 -160 360 ) ( -88 -168 360 ) proto2/concrete04stair2 -48 -17 -180 0.500000 -0.500000 134217728 0 0 -( -88 -56 400 ) ( -88 -56 416 ) ( -88 -168 416 ) proto2/concrete07_min 127 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -72 -64 376 ) ( -72 -64 360 ) ( -72 -160 360 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 6 -{ -( -16 -240 416 ) ( -16 -240 400 ) ( -88 -168 400 ) proto2/concrete07_min 95 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 -240 360 ) ( 168 16 360 ) ( -88 16 360 ) common/caulk 0 -17 -90 0.500000 0.500000 134217728 0 0 -( -88 16 416 ) ( 168 16 416 ) ( 168 -240 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -88 -168 376 ) ( -88 -168 360 ) ( -72 -160 360 ) proto2/tin_floor06 16 31 0 0.500000 0.500000 134217728 0 0 -( -16 -240 360 ) ( -16 -240 376 ) ( -8 -224 376 ) proto2/tin_floor06 63 32 -180 0.500000 -0.500000 134217728 0 0 -( -64 -168 400 ) ( -8 -224 400 ) ( -36 -196 416 ) proto2/tin_floor06 0 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 7 -{ -( 96 -240 376 ) ( 96 -240 360 ) ( -16 -240 360 ) proto2/concrete07_min -112 63 -180 0.500000 -0.500000 134217728 0 0 -( -8 -224 360 ) ( -8 -224 376 ) ( -16 -240 376 ) proto2/concrete04stair2 32 -15 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( -8 -224 416 ) ( -8 -224 400 ) ( 88 -224 400 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 88 -224 376 ) ( 88 -224 360 ) ( 96 -240 360 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 8 -{ -( 168 -168 416 ) ( 168 -168 400 ) ( 96 -240 400 ) proto2/concrete07_min 159 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 96 -240 376 ) ( 96 -240 360 ) ( 88 -224 360 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( 168 -168 400 ) ( 168 -168 416 ) ( 152 -160 416 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -( 96 -216 400 ) ( 152 -160 400 ) ( 124 -188 416 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -} -// brush 9 -{ -( 152 -64 416 ) ( 152 -64 400 ) ( 168 -56 400 ) proto2/concrete04stair2 -48 -17 -180 0.500000 -0.500000 134217728 0 0 -( 168 -168 400 ) ( 168 -168 416 ) ( 168 -56 416 ) proto2/concrete07_min 159 -63 -180 0.500000 -0.500000 134217728 0 0 -( 168 16 360 ) ( -88 16 360 ) ( -88 -240 360 ) common/caulk -48 -30 -180 0.500000 0.500000 134217728 0 0 -( -88 -240 416 ) ( -88 16 416 ) ( 168 16 416 ) proto2/concrete07_smth 16 0 0 0.500000 0.500000 134217728 0 0 -( 152 -64 360 ) ( 152 -64 376 ) ( 152 -160 376 ) proto2/tin_floor06 31 32 -180 0.500000 -0.500000 134217728 0 0 -( 168 -168 416 ) ( 168 -168 400 ) ( 152 -160 400 ) proto2/tin_floor06 -48 30 -180 0.500000 -0.500000 134217728 0 0 -} -} -// entity 7 -{ -"classname" "misc_model" -"model" "models/mapobjects/tree2/tree6.md3" -"origin" "288 272 440" -} diff --git a/install/installs/Q3Pack/install/missionpack/models/.svn/entries b/install/installs/Q3Pack/install/missionpack/models/.svn/entries deleted file mode 100644 index e9a6a258..00000000 --- a/install/installs/Q3Pack/install/missionpack/models/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/models -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -mapobjects -dir - diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/.svn/entries b/install/installs/Q3Pack/install/missionpack/models/mapobjects/.svn/entries deleted file mode 100644 index c4412257..00000000 --- a/install/installs/Q3Pack/install/missionpack/models/mapobjects/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/models/mapobjects -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -spawn -dir - diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/entries b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/entries deleted file mode 100644 index a30ca1df..00000000 --- a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/entries +++ /dev/null @@ -1,96 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/models/mapobjects/spawn -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -spawn.md3 -file - - - - -2012-04-01T16:51:40.017307Z -4d50bf05639f629bbed696fa89a97f7a -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1084 - -spawn_r.md3 -file - - - - -2012-04-01T16:51:40.020307Z -79bfe680dba6bb114c4533d433936584 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -1084 - diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn.md3.svn-base b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn_r.md3.svn-base b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn_r.md3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/prop-base/spawn_r.md3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/text-base/spawn.md3.svn-base b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/text-base/spawn.md3.svn-base deleted file mode 100644 index 91cf9f8668b5b5e078faa2f291e6b9ab5879edcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmd5)JxD@P6uxDq*0Z7^f*Rfu^kZ4L^y^EjK?o`WY0T1sP@kma5L8P`OIt)VNkiCB zdmuP9wAB!_1cIYfQ)W_~@8(ITf~F39@B7Yo&pGej`<`cV*3l@02%bA&E2`O zu7_0D{8ZPM@1Z?T=;1*BK)LQO3i|?Z-fqGL0ed{H7D6=$aY*>_9vpqKRUb9{5;RT* zzYhs(FxCNRdZmm8dU6f4wUmREikxe>7yZzjec>w#Y&Ex^> zv$l{2u+O@VJb-=H_2dEUv&I<#_ABp$z5mW558E0Y;T!3psHWcRJL9Pt?aX;Mb`)>d zf|l2j>!vFwxTDtPg#WxeJ%&2H*)WWL{^ zh=o|7A1hHz(dSg=%!MTV28#b6pQNi(HV*RMcj7&B!TUyhoG7|qiO(}1yLsZYYLNNu arBSYDZ6;a&Vl&Bp%cW7yYf}w!e(xuewtwpY diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/text-base/spawn_r.md3.svn-base b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/.svn/text-base/spawn_r.md3.svn-base deleted file mode 100644 index b690f79185e5f04376d3cdf8e93dd91c6d9c428f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmd5)JuE{}6uvywmggsiM#AtGiJ$sQ7gYPS7$g!zA~s4(B7L4{qk{yC#bRqjOpQTm zU~kf-lflLyu}CBx8%$aR=ev3^buc-}_rC9Z_niCgJ@1W;OuFiX5QZ5Hg(KZYV9i`u z2`xq=-I29GZ1w9ox87w0T~t*%%8JX(Vakt-7_1;Ml*@?uhm0)S$@)n9gm4gk;x^&* zw=S)lhUS|dZTs@a=#0bWYN)68r|vHb=K^rwcEULUXFMqvLQ{k|Ae5Ygiv|&04p2+U zpzUPv`;f2(V;z8|SIVfRC)YsN6mzipE9V;SML#sg3-CH?3wZ$htSiX_*k^4e4`83Q zjXZ#T)^_p$_E}ev2e8k&nmmAg*0>|U{_lCP_utulx2@9^zLDvV=-So3H^jlcvc1J3j$pDS?du diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/spawn.md3 b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/spawn.md3 deleted file mode 100644 index 91cf9f8668b5b5e078faa2f291e6b9ab5879edcb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmd5)JxD@P6uxDq*0Z7^f*Rfu^kZ4L^y^EjK?o`WY0T1sP@kma5L8P`OIt)VNkiCB zdmuP9wAB!_1cIYfQ)W_~@8(ITf~F39@B7Yo&pGej`<`cV*3l@02%bA&E2`O zu7_0D{8ZPM@1Z?T=;1*BK)LQO3i|?Z-fqGL0ed{H7D6=$aY*>_9vpqKRUb9{5;RT* zzYhs(FxCNRdZmm8dU6f4wUmREikxe>7yZzjec>w#Y&Ex^> zv$l{2u+O@VJb-=H_2dEUv&I<#_ABp$z5mW558E0Y;T!3psHWcRJL9Pt?aX;Mb`)>d zf|l2j>!vFwxTDtPg#WxeJ%&2H*)WWL{^ zh=o|7A1hHz(dSg=%!MTV28#b6pQNi(HV*RMcj7&B!TUyhoG7|qiO(}1yLsZYYLNNu arBSYDZ6;a&Vl&Bp%cW7yYf}w!e(xuewtwpY diff --git a/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/spawn_r.md3 b/install/installs/Q3Pack/install/missionpack/models/mapobjects/spawn/spawn_r.md3 deleted file mode 100644 index b690f79185e5f04376d3cdf8e93dd91c6d9c428f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1084 zcmd5)JuE{}6uvywmggsiM#AtGiJ$sQ7gYPS7$g!zA~s4(B7L4{qk{yC#bRqjOpQTm zU~kf-lflLyu}CBx8%$aR=ev3^buc-}_rC9Z_niCgJ@1W;OuFiX5QZ5Hg(KZYV9i`u z2`xq=-I29GZ1w9ox87w0T~t*%%8JX(Vakt-7_1;Ml*@?uhm0)S$@)n9gm4gk;x^&* zw=S)lhUS|dZTs@a=#0bWYN)68r|vHb=K^rwcEULUXFMqvLQ{k|Ae5Ygiv|&04p2+U zpzUPv`;f2(V;z8|SIVfRC)YsN6mzipE9V;SML#sg3-CH?3wZ$htSiX_*k^4e4`83Q zjXZ#T)^_p$_E}ev2e8k&nmmAg*0>|U{_lCP_utulx2@9^zLDvV=-So3H^jlcvc1J3j$pDS?du diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/entries b/install/installs/Q3Pack/install/missionpack/scripts/.svn/entries deleted file mode 100644 index 95fae12c..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/entries +++ /dev/null @@ -1,844 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/scripts -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-02-28T02:40:44.363662Z -30 -timo - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -stone2.shader -file - - - - -2012-04-01T16:51:41.777408Z -bfddfb7269fe860287cc6250aa2b8a90 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -169 - -liquids.shader -file - - - - -2012-04-01T16:51:41.772407Z -c74f77664df5ba1cb9c6689a5795d286 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -23860 - -base_floor.shader -file - - - - -2012-04-01T16:51:42.135428Z -76f07736637f598b71d3e53ccd0d70ab -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -17698 - -base_wall2.shader -file - - - - -2012-04-01T16:51:42.070424Z -3d75adad1476ad52ffd62bd5e0ffff32 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -14883 - -museum.shader -file - - - - -2012-04-01T16:51:41.994420Z -f7614f8ffa2ddbbb4a3dbcab101109b7 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -567 - -ctf.shader -file - - - - -2012-04-01T16:51:42.138428Z -fde130d5d5d3817fa44ea7e104b1567d -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -11611 - -skies.shader -file - - - - -2012-04-01T16:51:42.172430Z -a15a65a06bc84c161ffa6f9dd747ceb7 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -20574 - -entities-ta.def -file - - - - -2012-04-01T16:51:42.140428Z -c0b706986b1a7b68789f733e4e756e5e -2008-02-28T02:40:44.363662Z -30 -timo - - - - - - - - - - - - - - - - - - - - - -30086 - -default_shaderlist.txt -file - - - - -2012-04-01T16:51:42.175430Z -3f1bf2c98a07f16d84fa448771a6f2f7 -2008-02-28T02:40:44.363662Z -30 -timo - - - - - - - - - - - - - - - - - - - - - -181 - -sfx2.shader -file - - - - -2012-04-01T16:51:42.194431Z -9e2df9b641bc06b562444a074fb4b029 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -25414 - -proto2.shader -file - - - - -2012-04-01T16:51:42.225433Z -0473fd2f76f20b773e360b9d0a3a42a8 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -31911 - -team.shader -file - - - - -2012-04-01T16:51:42.228433Z -e1c690c8573d6027e197530b8915ed11 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2586 - -common.shader -file - - - - -2012-04-01T16:51:42.230434Z -3122d41a6d0171570855268fd160606f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -7988 - -tim.shader -file - - - - -2012-04-01T16:51:42.263435Z -c82f5dc168ca9c0f0f6663388cedef1f -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4292 - -base_wall.shader -file - - - - -2012-04-01T16:51:42.233434Z -c9b6a4598ecaa7a088c12d0b60380a38 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -25377 - -liquids2.shader -file - - - - -2012-04-01T16:51:42.267436Z -a6b9e8214294e348f88e36efcc859619 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4510 - -gothic_wall.shader -file - - - - -2012-04-01T16:51:42.271436Z -90ac9c800e2e815fbfcd045c94bebc78 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -2110 - -base_floor2.shader -file - - - - -2012-04-01T16:51:42.511450Z -6b9517c59de8919708db6f8fb13afd4a -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -559 - -ctf2.shader -file - - - - -2012-04-01T16:51:42.515450Z -09fa6724f4b47bda65f11909bb594a22 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -6285 - -sfx.shader -file - - - - -2012-04-01T16:51:42.520450Z -71719108e0590d3fdbca0ebf41c64523 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -67806 - -skies2.shader -file - - - - -2012-04-01T16:51:42.524450Z -613cf81f3aa6e4b09cd6c6505322738e -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -4880 - -base_light.shader -file - - - - -2012-04-01T16:51:42.546452Z -ed4c32860fa809bab26f07e31dd33634 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -31565 - -terrain.shader -file - - - - -2012-04-01T16:51:42.550452Z -d97527e2f5bbba73cd47b836b1e71701 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -9842 - -gothic_trim.shader -file - - - - -2012-04-01T16:51:42.553452Z -5051248ff6593df4880a642458269486 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -5169 - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_floor2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_light.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_light.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_light.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/base_wall2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/common.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/common.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/common.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/ctf2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_trim.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_trim.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_trim.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_wall.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_wall.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/gothic_wall.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/liquids2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/museum.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/museum.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/museum.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/proto2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/proto2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/proto2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/sfx2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/skies2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/stone2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/stone2.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/stone2.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/team.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/team.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/team.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/terrain.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/terrain.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/terrain.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/tim.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/tim.shader.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/prop-base/tim.shader.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor.shader.svn-base deleted file mode 100644 index b6c754aa..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor.shader.svn-base +++ /dev/null @@ -1,900 +0,0 @@ -textures/base_floor/clang_floor3blava -{ - surfaceparm nolightmap - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clang_floor3blava.tga - blendfunc blend - - } - -} - -textures/base_floor/clangdark -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow3 -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clangdark_ow3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangdarkspot -{ - surfaceparm metalsteps - //{ - // map textures/base_floor/clangdarkspot.tga - // rgbGen identity - //} - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangdarkspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangfloor_noisy -{ - qer_editorimage textures/base_floor/clang_floor.tga - surfaceparm metalsteps - { - map $lightmap - rgbGen identity - } - - { - map textures/base_floor/clang_floor.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbgen identity - - } - -} - -textures/base_floor/clangspot2 -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangspot2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/concretefloor1 -{ - - { - map textures/base_wall/chrome_env.tga - tcgen environment - rgbgen wave sin .25 0 0 0 - } - - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ZERO GL_SRC_ALPHA - tcmod scale .1 .1 - rgbgen identity - } - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ONE GL_SRC_ALPHA - rgbgen identity - } - - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - - - -} - -textures/base_floor/cybergrate2 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/base_floor/cybergrate2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/cybergrate3 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/sfx/hologirl.tga - blendFunc add - tcmod scale 1.2 .5 - tcmod scroll 3.1 1.1 - - } - { - map textures/base_floor/cybergrate3.tga - alphaFunc GE128 - depthWrite - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/diamond2c_ow -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/diamond2c_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond2cspot -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/base_floor/diamond2cspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond_noisy -{ - qer_editorimage textures/base_floor/diamond2.tga - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/diamond2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/floor3_3dark_ow -{ - - { - map textures/effects/envmapblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/base_floor/floor3_3dark_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/base_floor/hfloor3 -{ - //deformVertexes wave 100 sin 3 2 .1 3 - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/hfloor3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_floor/hfloor3.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/metalbridge04dbroke -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/metalbridge04dbroke.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/nomarkstone_1 -{ - qer_editorimage textures/base_floor/smallstone.tga - q3map_lightimage textures/base_floor/smallstone.tga - q3map_globaltexture - surfaceparm nomarks - surfaceparm noimpact - - // A stone that isn't marked by weapons. Used below red fog in pj_dm10 - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/smallstone.tga - tcMod scale 2 2 - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/pjgrate1 -{ - surfaceparm metalsteps - cull none - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate1.tga - tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/pjgrate2 -{ - surfaceparm metalsteps - cull none - - // A RUSTED GRATE THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate2.tga - tcMod scale 2.0 2.0 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - rgbGen identity - } -} - -textures/base_floor/pool_floor2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_floor2.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_floor3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_side2.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/proto_grate -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate3 -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate3.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate4 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm nonsolid //Tim's fuckage - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate4.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate2 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate2.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/rusty_pentagrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - - cull none - nopicmip - // A RUSTY and Eeevil grate THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/rusty_pentagrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/skylight1 -{ - q3map_lightimage textures/base_floor/skylight1_lm.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/skylight1.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 2 0 7.7 - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 5 1 5.1 - } - -} - -textures/base_floor/skylight_spec -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/skylight_spec.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_floor/techfloor -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztpink.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - //clampmap textures/gothic_block/blocks18cgeomtrn2.tga - clampmap textures/base_floor/techfloor2.tga - blendFunc blend - tcmod rotate 170 - tcMod stretch sin .8 0.2 0 .4 - rgbGen identity - } - { - map textures/base_floor/techfloor.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/techfloor2 -{ - cull disable - //surfaceparm trans - surfaceparm nomarks - //nomipmaps - - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 70 - tcMod stretch sin .8 0.2 0 .3 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate -50 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/base_floor/tilefloor7_ow -{ - q3map_lightimage textures/base_floor/tilefloor7_owfx.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/tilefloor7_ow.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor2.shader.svn-base deleted file mode 100644 index a8108463..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_floor2.shader.svn-base +++ /dev/null @@ -1,29 +0,0 @@ -textures/base_floor/concfloor_rain - - { - - tessSize 32 - deformVertexes normal 1 15 - - { - map textures/base_floor/concfloor_rain.tga - rgbGen identity - } - { - map textures/liquids/pj_e3_reflection2b.tga - Blendfunc add - tcgen environment - rgbgen wave sin .3 0 0 0 - tcmod scale 2 2 - tcMod scroll .5 .5 - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - - - } - - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_light.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_light.shader.svn-base deleted file mode 100644 index 07ade964..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_light.shader.svn-base +++ /dev/null @@ -1,1683 +0,0 @@ -textures/base_light/baslt4_1_2k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 2000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/baslt4_1_4k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 4000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light -{ - q3map_surfacelight 500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light_300 -{ - qer_editorimage textures/base_light/border11light.tga - q3map_lightimage textures/base_light/border11light.blend.tga - - q3map_surfacelight 235 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border7_ceil50 -{ - qer_editorimage textures/base_light/border7_ceil50.tga - q3map_surfacelight 100 - // Square dirty white llight - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border7_ceil50.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border7_ceil50glow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_22a.tga - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_trans -{ - qer_editorimage textures/base_light/ceil1_22a.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square rich blue light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_30.tga - q3map_surfacelight 8000 -// light 1 - // Square rich blue light (8k light wattage - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_trans -{ - qer_editorimage textures/base_light/ceil1_30.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_10k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_1k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_2k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_5k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_37 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_37.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_37.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38 -{ - surfaceparm nomarks - q3map_surfacelight 2500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_10k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_20k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_30k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_40k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_50k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_70k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_90k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_39 -{ - surfaceparm nomarks - q3map_surfacelight 7500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_4 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_4.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_4.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil_white5k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/cornerlight -{ - q3map_lightimage textures/base_light/cornerlight.glow.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/cornerlight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/cornerlight.glow.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } -} - -textures/base_light/geolight -{ - q3map_lightimage textures/base_light/geolight_glow.tga - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/geolight.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_light/geolight_glow.tga - blendFunc add - rgbgen wave sin .575 .025 0 10 - } - -} - -textures/base_light/jaildr03_1 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/jaildr03_2 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_2.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/base_light/jaildr1_3 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr1_3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr1_3.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_1500 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_3000 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_5000 -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_1500 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_2000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_5000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_800 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 800 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1dark -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 6000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_2000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_5000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_10k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/xlight5.blend.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_15k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/light5.blend.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_3000 -{ - qer_editorimage textures/base_light/light5.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 3000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_5k -{ - qer_editorimage textures/base_light/light5.tga - //light 1 - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 5000 - { - map textures/base_light/light5.tga - rgbGen identity - } -} - -textures/base_light/lt2_2000 -{ - qer_editorimage textures/base_light/light2.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin 0.6 0.1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_4000 -{ - qer_editorimage textures/base_light/light2.tga - //light 1 - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_8000 -{ - qer_editorimage textures/base_light/light2.tga - surfaceparm nomarks - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite -{ - q3map_surfacelight 2500 - surfaceparm nomarks -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2 -{ - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2_1000 -{ - qer_editorimage textures/base_light/patch10_pj_lite2.tga - q3map_surfacelight 1000 - surfaceparm nomarks - //light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1K -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - // Square dirty white - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1p5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/proto_light -{ - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_light_2k -{ - qer_editorimage textures/base_light/proto_light.tga - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_lightred -{ - q3map_lightimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 300 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - } - -} - -textures/base_light/proto_lightred2 -{ - q3map_lightimage textures/base_light/proto_lightred.tga - qer_editorimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - rgbGen wave square .5 .5 0 1 - } - -} - -textures/base_light/runway -{ - q3map_lightimage textures/base_light/runway_glow.tga - surfaceparm nomarks - q3map_surfacelight 400 - { - map textures/base_light/runway_glow.tga - tcmod scale 1 .25 - rgbgen wave square -1 2 .5 8 - tcmod scroll 0 .5 - } - - { - map textures/base_light/runway.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/base_light/runwayb.tga - blendFunc add - rgbGen identity - } - - -} - -textures/base_light/s_proto_light -{ - q3map_lightimage textures/base_light/s_proto_lightmap.tga - qer_editorimage textures/base_light/proto_light.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/scrolllight -{ - q3map_lightimage textures/sfx/scrolllight2.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - Map textures/base_light/scrolllight.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1 0 - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -2 0 - } - - -} - -textures/base_light/trianglelight -{ - q3map_lightimage textures/base_light/trianglelight.blend.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/trianglelight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/trianglelight.blend.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } - - -} - -textures/base_light/wsupprt1_12 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - //light1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_1 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_10k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_110k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 110000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_15k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_20k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_2k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_30k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_500k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 500000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_50k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_70k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_90k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_a -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_b -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall.shader.svn-base deleted file mode 100644 index 82730f68..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall.shader.svn-base +++ /dev/null @@ -1,1406 +0,0 @@ - -textures/base_wall/atech1_alpha -{ - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atech1_alpha.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/atechengine_ax -{ - q3map_lightimage textures/base_wall/atechengine_ax2.tga - q3map_surfacelight 300 - { - map textures/sfx/proto_zzztpink.tga - tcmod rotate 60 - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atechengine_ax.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/basewall01_ow -{ - q3map_lightimage textures/base_wall/basewall01_owfx.tga - - { - map $lightmap - rgbGen identity - } - { - map textures/base_wall/basewall01_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_wall/basewall01_owfx.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 0 .5 - } - -} - -textures/base_wall/basewall01bit -{ - q3map_lightimage textures/base_wall/basewall01bitfx.tga - q3map_surfacelight 300 - { - map textures/base_wall/basewall01bit.tga - rgbGen identity - } - - { - map textures/base_wall/basewall01bitfx.tga - blendfunc GL_ONE GL_ONE - tcmod scroll 3.3 1 - rgbGen wave sin .5 0.5 0 5 - } - { - map textures/effects/envmap2.tga - tcGen environment - tcmod scale 4 4 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/base_wall/basewall01bit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - -} - -textures/base_wall/bluemetal1b_chrome -{ - qer_editorimage textures/base_wall/bluemetal1b_shiny.tga - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetal1b_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/bluemetal2_noisy -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm metalsteps - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny_trans -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetalsupport2 -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/bluemetalsupport2c -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1vent -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1vent.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2clight -{ - surfaceparm nomarks - q3map_surfacelight 500 - - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2clight.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2clight.glow.tga - blendFunc add - rgbgen wave sawtooth .6 .1 0 4 - } -} - -textures/base_wall/bluemetalsupport2d_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2d_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e2 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e2.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2eye -{ - - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/bluemetalsupport2eyel.tga - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2eye.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - { - map textures/base_wall/bluemetalsupport2eyel.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } -} - -textures/base_wall/bluemetalsupport2f -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2f.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2fline -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2fline_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2fline.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2fline_glow.tga - blendFunc add - rgbGen wave sin .5 .5 0 1 - } - - -} - -textures/base_wall/bluemetalsupport2ftv -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2ftv_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2ftv.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2ftv_glow.tga - blendFunc add - rgbGen wave sawtooth .4 .05 0 10 - } - - -} - -textures/base_wall/blumtlspt2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/blumtlspt2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/blumtlspt2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/c_met5_2_trans -{ - qer_editorimage textures/base_wall/c_met5_2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_wall/c_met5_2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_wall/chrome_metal -{ - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - - } - - { - map textures/base_wall/chrome_metal.tga - blendFunc GL_ONE GL_ONE - detail - tcMod scale 0.0693 0.0712 - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - - } - - - -} - -textures/base_wall/comp3 -{ - q3map_lightimage textures/base_wall/comp3env.tga - qer_editorimage textures/base_wall/comp3_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3text.tga - rgbGen identity - tcmod scroll 3 1 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b_dark -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3c -{ - qer_editorimage textures/base_wall/comp3c_qer.tga - - { - map textures/base_wall/comp3env.tga - rgbGen identity - tcGen environment - } - - { - map $lightmap - tcGen environment - blendFunc GL_ONE GL_ONE - } - - { - map textures/base_wall/comp3c.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/concrete_ow -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/concrete_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/dooreye -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye2 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye3 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/girders1i_yellofin -{ - qer_editorimage textures/base_wall/girders1i_yellodark_fin.tga - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm playerclip - surfaceparm nonsolid - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_wall/girders1i_yellodark_fin.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_wall/glass01 -{ - qer_editorimage textures/base_wall/shiny3.tga - surfaceparm trans - cull none - qer_trans 0.5 - - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/glass_frame -{ - cull none - surfaceparm alphashadow - - { - map textures/effects/tinfx2.tga - blendFunc GL_ONE GL_ONE - tcgen environment - rgbGen identity - } - { - map textures/base_wall/glass_frame.tga - alphaFunc GE128 - depthWrite - //rgbGen vertex - //blendfunc blend - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/grill -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/grill.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/main_q3abanner -{ - q3map_lightimage textures/base_wall/main_q3abanner.tga - q3map_surfacelight 100 - - - { - map textures/base_wall/main_q3abanner.tga - rgbGen wave square 0 1 0 .5 - } - - { - map textures/base_wall/comp3text.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3textb.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map $lightmap - tcgen environment - tcmod scale .5 .5 - rgbGen wave sin .25 0 0 0 - blendfunc add - } -} - -textures/base_wall/medal_impressive -{ - qer_editorimage textures/base_wall/medal_impressive.tga - q3map_surfacelight 100 - - - { - animMap .25 textures/base_wall/medal_impressive.tga textures/base_wall/medal_gauntlet.tga textures/base_wall/medal_excellent.tga textures/base_wall/medal_accuracy.tga textures/base_wall/medal_victory.tga textures/base_wall/medal_frags.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - tcmod scroll 5 .25 - rgbGen wave inversesawtooth 0 1 0 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_wall/metalfloor_wall_14_specular -{ - qer_editorimage textures/base_wall/metalfloor_wall_14_specular.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/metalfloor_wall_14_specular.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/metalfloor_wall_15ow -{ - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ONE - rgbGen identity - - } - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - //blendfunc dst_color gl_zero - } - -} - -textures/base_wall/metaltechgeomtrn -{ - - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/patch10shiny -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/patch10shiny_trans -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/protobanner -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - deformVertexes wave 30 sin 0 3 0 .2 - deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_ow -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - deformVertexes wave 100 sin 0 1 0 .1 - deformVertexes wave 100 sin 0 1 0 .2 - - { - map textures/base_wall/protobanner_ow.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_still -{ - qer_editorimage textures/base_wall/protobanner.tga - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - //deformVertexes wave 30 sin 0 3 0 .2 - //deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/q3tourneyscreen -{ - qer_editorimage textures/base_wall/q3tourney1.tga - q3map_surfacelight 100 - - - - { - animMap .25 textures/base_wall/q3tourney1.tga textures/base_wall/q3tourney2.tga textures/base_wall/q3tourney3.tga textures/base_wall/q3tourney4.tga textures/base_wall/q3tourney5.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - rgbGen wave inversesawtooth 0 1 0 .25 - tcmod scroll 5 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - -} - -textures/base_wall/shinybluemetal1 -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/shinybluemetal1.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/shinygrate1_4 -{ - - { - map $lightmap - tcgen environment - tcmod scale .25 .25 - rgbgen identity - } - - - { - map textures/base_wall/shinygrate1_4.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - - -} - -textures/base_wall/steed1gf -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/steed1gf.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/symbol_bluelt1 -{ - q3map_lightimage textures/base_wall/symbol_bluelt1_mask.tga - q3map_surfacelight 100 -// light 1 - - { - map $lightmap - rgbGen identity - } - - - { - map textures/base_wall/symbol_bluelt1.tga - blendfunc filter - rgbgen identity - } - - { - map textures/base_wall/symbol_bluelt1_mask.tga - blendfunc add - rgbgen wave sawtooth .2 .05 0 7 - } -} - -textures/base_wall/train1 -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .1 - rgbGen identity - } - - - { - map textures/base_wall/train1.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall2.shader.svn-base deleted file mode 100644 index 93308923..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/base_wall2.shader.svn-base +++ /dev/null @@ -1,860 +0,0 @@ -textures/base_wall2/blue_warning_light -{ - - qer_editorimage textures/proto2/bluelight_off.tga - - { - map textures/proto2/bluelight_off.tga - rgbgen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - -} - - - -textures/base_wall2/ntrl_techfloor_kc -{ - surfaceparm metalsteps - surfaceparm alphashadow - surfaceparm nomarks - qer_editorimage textures/base_wall2/techfloor_kc.tga - - { - clampmap textures/base_wall2/zzztntrl_kc.tga - alphaFunc GE128 - tcmod rotate 360 - rgbgen wave sin .8 .2 0 2 - depthWrite - } - { - clampmap textures/base_wall2/techfloor2_kc.tga - blendFunc blend - tcmod rotate 180 - depthFunc equal - tcMod stretch sin .8 0.1 0 .4 - rgbGen identity - } - - { - map textures/base_wall2/techfloor_kc.tga - blendFunc blend - depthFunc equal - rgbGen identity - } - - { - map $lightmap - blendfunc filter - depthFunc equal - rgbgen identity - } - { - map textures/base_wall2/techfloor_kc_shadow.tga - blendfunc filter - rgbGen identity - } - - -} -textures/base_wall2/respawn_effect1_ntrl -{ - cull disable - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - qer_editorimage textures/base_wall2/ntrl_1_kc.tga - { - map textures/base_wall2/ntrl_1_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbgen wave sin .25 .25 0 .25 - tcmod scroll .5 0 - } - { - map textures/base_wall2/ntrl_2_kc.tga - blendFunc add - rgbgen wave sin .25 .25 .25 .25 - tcmod scale 1 -1 - tcmod scroll -.5 0 - } - - - { - map textures/base_wall2/ntrl_3_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbGen wave inversesawtooth -.3 1.3 0 .25 - } - - -} - -textures/base_wall2/blue_metal -{ - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/blue_metal.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} -textures/base_wall2/scuffs1 -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/base_wall2/scuffs1.tga - blendfunc filter - rgbGen identity - } -} - -textures/base_wall2/space_panel -{ - - qer_editorimage textures/base_wall2/space_panel_alt2.tga - { - map textures/base_wall2/space_panel_alt.tga - rgbgen identity - tcmod scale .5 .5 - } - - { - map textures/base_wall2/space_panel_alt.tga - blendFunc filter - rgbgen wave sin .5 0 0 0 - } - - - { - map textures/base_wall2/lensflare.tga - blendFunc add - tcgen environment - } - - - { - map $lightmap - rgbGen identity - blendfunc filter - } -} - - - - -textures/base_wall2/space_concrete -{ - qer_editorimage textures/base_wall2/space_panel_alt.tga - - { - map textures/base_wall/concrete1.tga - rgbgen identity - } - - { - map textures/base_wall2/space_panel_alt.tga - blendFunc filter - tcmod scale .25 .25 - } - - - { - map textures/base_wall2/space_panel_alt2.tga - blendFunc filter - tcmod scale .25 .1 - } - { - map textures/base_wall2/lensflare.tga - blendFunc add - rgbgen wave sin .5 0 0 0 - tcgen environment - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } -} - - -textures/base_wall2/jumppad_red_kc -{ - surfaceparm trans - surfaceparm nomarks - { - map textures/base_wall2/jumppad_red_kc.tga - alphafunc GE128 - depthwrite - rgbGen identity - } - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - depthfunc equal - tcmod rotate 130 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - depthfunc equal - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - depthfunc equal - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - depthfunc equal - rgbGen identity - } - { - map $lightmap - blendFunc filter - depthfunc equal - rgbGen identity - } - - { - map textures/base_wall2/jumppad_shadow.tga - blendfunc filter - rgbGen identity - } - -} - -textures/base_wall2/jumppad_blue_kc -{ - surfaceparm trans - surfaceparm nomarks - { - map textures/base_wall2/jumppad_blue_kc.tga - alphafunc GE128 - depthwrite - rgbGen identity - } - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - depthfunc equal - tcmod rotate 130 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - depthfunc equal - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - depthfunc equal - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - depthfunc equal - rgbGen identity - } - { - map $lightmap - blendFunc filter - depthfunc equal - rgbGen identity - } - - { - map textures/base_wall2/jumppad_shadow.tga - blendfunc filter - rgbGen identity - } - -} - -textures/base_wall2/jumppad_ntrl_kc -{ - qer_editorimage textures/base_wall2/jumppad_blue_kc.tga - surfaceparm trans - surfaceparm nomarks - { - map textures/base_wall2/jumppad_blue_kc.tga - alphafunc GE128 - depthwrite - rgbGen identity - } - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - depthfunc equal - tcmod rotate 130 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - depthfunc equal - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - depthfunc equal - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - depthfunc equal - rgbGen identity - } - { - map $lightmap - blendFunc filter - depthfunc equal - rgbGen identity - } - - { - map textures/base_wall2/jumppad_shadow.tga - blendfunc filter - rgbGen identity - } - -} - - -textures/base_wall2/respawn_effect1 -{ - cull disable - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - qer_editorimage textures/base_wall2/redjet_1_kc.tga - { - map textures/base_wall2/redjet_1_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbgen wave sin .25 .25 0 .25 - tcmod scroll .5 0 - } - { - map textures/base_wall2/redjet_2_kc.tga - blendFunc add - rgbgen wave sin .25 .25 .25 .25 - tcmod scale 1 -1 - tcmod scroll -.5 0 - } - - - { - map textures/base_wall2/redjet_3_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbGen wave inversesawtooth -.3 1.3 0 .25 - } - - - - - - -} - -textures/base_wall2/respawn_effect1_blue -{ - cull disable - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - qer_editorimage textures/base_wall2/bluejet_1_kc.tga - { - map textures/base_wall2/bluejet_1_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbgen wave sin .25 .25 0 .25 - tcmod scroll .5 0 - } - { - map textures/base_wall2/bluejet_2_kc.tga - blendFunc add - rgbgen wave sin .25 .25 .25 .25 - tcmod scale 1 -1 - tcmod scroll -.5 0 - } - - - { - map textures/base_wall2/bluejet_3_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbGen wave inversesawtooth -.3 1.3 0 .25 - } - - -} - -textures/base_wall2/red_metal -{ - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/red_metal.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall2/blue_line -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/blue_line_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/blue_line.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/blue_line_glow.tga - blendFunc add - // rgbGen wave sin .5 .5 0 1 - } - - -} - -textures/base_wall2/red_line -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/red_line_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/red_line.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/red_line_glow.tga - blendFunc add - // rgbGen wave sin .5 .5 0 1 - } -} - - -textures/base_wall2/double_line_blue -{ - - surfaceparm trans - surfaceparm nomipmap - surfaceparm nolightmap - - { - map textures/base_wall2/double_line_blue.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - -} - -textures/base_wall2/double_line_red -{ - - surfaceparm trans - surfaceparm nomipmap - surfaceparm nolightmap - - { - map textures/base_wall2/double_line_red.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - -} - -textures/base_wall2/techfloor_kc_blue -{ - qer_editorimage textures/base_wall2/zzztblue_kc.tga.tga - surfaceparm metalsteps - surfaceparm alphashadow - surfaceparm nomarks - - { - clampmap textures/base_wall2/zzztblue_kc.tga - alphaFunc GE128 - tcmod rotate 360 - rgbgen wave sin .8 .2 0 2 - depthWrite - } - { - clampmap textures/base_wall2/techfloor2_kc.tga - blendFunc blend - tcmod rotate 180 - depthFunc equal - tcMod stretch sin .8 0.1 0 .4 - rgbGen identity - } - - { - map textures/base_wall2/techfloor_kc.tga - blendFunc blend - depthFunc equal - rgbGen identity - } - - { - map $lightmap - blendfunc filter - depthFunc equal - rgbgen identity - } - { - map textures/base_wall2/techfloor_kc_shadow.tga - blendfunc filter - rgbGen identity - } - - -} - - -textures/base_wall2/techfloor_kc -{ - surfaceparm metalsteps - surfaceparm alphashadow - surfaceparm nomarks - - { - clampmap textures/base_wall2/zzztred_kc.tga - alphaFunc GE128 - tcmod rotate 360 - rgbgen wave sin .8 .2 0 2 - depthWrite - } - { - clampmap textures/base_wall2/techfloor2_kc.tga - blendFunc blend - tcmod rotate 180 - depthFunc equal - tcMod stretch sin .8 0.1 0 .4 - rgbGen identity - } - - { - map textures/base_wall2/techfloor_kc.tga - blendFunc blend - depthFunc equal - rgbGen identity - } - - { - map $lightmap - blendfunc filter - depthFunc equal - rgbgen identity - } - { - map textures/base_wall2/techfloor_kc_shadow.tga - blendfunc filter - rgbGen identity - } - - -} - -textures/base_wall2/blue_arrow_small -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/blue_arrow_small.tga - blendfunc blend - rgbGen identity - - } - - -} -textures/base_wall2/red_arrow_small -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/red_arrow_small.tga - blendfunc blend - rgbGen identity - - } - - -} - -textures/base_wall2/yellow_circle -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/yellow_circle.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - - -} - -textures/base_wall2/red_circle -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/red_circle.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - - -} - -textures/base_wall2/blue_circle -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/blue_circle.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - - -} - - -textures/base_wall2/name_vortex -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/base_wall2/name_vortex.tga - blendfunc blend - rgbGen identity - } - -} - - -textures/base_wall2/bluearrows -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/bluearrows.tga - blendfunc add - rgbGen identity - - } - - -} - -textures/base_wall2/redarrows -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/redarrows.tga - blendfunc add - rgbGen identity - - } - - -} - -textures/base_wall2/red_solid -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/red_solid.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/red_solid.tga - blendFunc filter - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/red_solid.tga - blendFunc add - rgbGen wave sin .25 .25 0 1 - } - - -} - -textures/base_wall2/blue_solid -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/blue_solid.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/blue_solid.tga - blendFunc filter - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/blue_solid.tga - blendFunc add - rgbGen wave sin .25 .25 0 1 - } - - -} - - - - - - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/common.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/common.shader.svn-base deleted file mode 100644 index 30320886..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/common.shader.svn-base +++ /dev/null @@ -1,429 +0,0 @@ -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nodraw -} - -textures/common/invisible -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/teleporter -{ - surfaceparm nolightmap - surfaceparm noimpact - q3map_lightimage textures/sfx/powerupshit.tga - q3map_surfacelight 800 - { - map textures/sfx/powerupshit.tga - tcGen environment -// tcMod scale 5 5 - tcMod turb 0 0.015 0 0.3 - } -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm trans - surfaceparm nonsolid - surfaceparm nomarks - surfaceparm nodrop - surfaceparm nolightmap - surfaceparm nodraw - cull disable -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm trans - surfaceparm nomarks - surfaceparm nodraw -} - -textures/common/pwclip -{ - qer_trans 0.40 - surfaceparm trans - surfaceparm nomarks - surfaceparm nodraw - -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm nodraw - surfaceparm nonsolid - //surfaceparm nolightmap //proto_addition 11/08/99 - surfaceparm playerclip - surfaceparm noimpact -} - -textures/common/full_clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -//***************************************** -//** I've reduced the transparency on most editor-only brushes here. -//** If the transparent textures are still too pale for -//** things like clip, hint, trigger, etc., -//** Please make an editorimage to suit your needs. -//****************************************** - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nodamage - surfaceparm trans -} - -textures/common/hint -{ -qer_nocarve -qer_trans 0.30 -surfaceparm nodraw -surfaceparm nonsolid -surfaceparm structural -surfaceparm trans -surfaceparm noimpact -surfaceparm hint -} - -textures/common/skip -{ -qer_nocarve -qer_trans 0.40 -surfaceparm nodraw -surfaceparm nonsolid -surfaceparm structural -surfaceparm trans -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm origin -} - -textures/common/noimpact -{ - surfaceparm noimpact -} - -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -//bot specific cluster portal -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm detail - surfaceparm clusterportal -} - -//bot specific "do not enter" brush -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm detail - surfaceparm donotenter -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } - -} -textures/common/energypad -{ - qer_editorimage textures/common/bluegoal.tga - surfaceparm nolightmap - cull twosided - { - map textures/common/bluegoal.tga - blendFunc GL_ONE GL_SRC_ALPHA - tcGen environment - tcMod turb 0 0.25 0 0.05 - } -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga -// map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 -// blendFunc GL_ONE GL_SRC_ALPHA - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - - } -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/sfx/portal_sfx -{ - - // ************************************************* - // * Portal Inside Effect * - // * April 29 * - // * Please Comment Changes * - // ************************************************* - - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - // This blend function is not working on RagePro drivers Mac only - // when it is used on top of portals - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphagen portal 256 - rgbGen identityLighting - tcmod turb sin 0 .5 0 1 - tcmod rotate .1 .1 - tcmod scroll .01 .03 - } -} -textures/sfx/portal2_sfx -{ - - // ************************************************* - // * Portal Inside Effect * - // * April 29 * - // * Please Comment Changes * - // ************************************************* - - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - // This blend function is not working on RagePro drivers Mac only - // when it is used on top of portals - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphagen portal 128 - rgbGen identityLighting - tcmod turb sin 0 .5 0 1 - tcmod rotate .1 .1 - tcmod scroll .01 .03 - } -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf.shader.svn-base deleted file mode 100644 index 6a280383..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf.shader.svn-base +++ /dev/null @@ -1,577 +0,0 @@ - -textures/ctf/blue_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - sort additive - - { - - clampmap textures/ctf/blue_telep.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/blue_telep2.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/ctf_arch_b_shiny -{ - qer_editorimage textures/ctf/ctf_arch_b.tga - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_arch_r_shiny -{ - qer_editorimage textures/ctf/ctf_arch_r.tga - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_blueflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .5 .1 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_blueflag.tga - rgbGen identity - } - { - map textures/effects/redflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_blueflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_redflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .3 .2 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_redflag.tga - rgbGen identity - } - { - map textures/effects/blueflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_redflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_tower_bluefin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_bluefin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_bluefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/ctf_tower_redfin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_redfin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_redfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/killblockctf_b -{ - qer_editorimage textures/gothic_block/killblockgeomtrn.tga - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/killblockgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/killblockctf_r -{ - qer_editorimage textures/gothic_block/blocks15cgeomtrn.tga - - { - map textures/sfx/fire_ctfred.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks15cgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/metalbase09_bluekillblock_shiny -{ -qer_editorimage textures/ctf/metalbase09_bluekillblock.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/metalbase09_bluekillblock.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_cfin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_cfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_csansfacefin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_csansfacefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_d3fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_d3fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - - { - - clampmap textures/ctf/red_telep.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/red_telep2.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/tallblue_1L_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1L_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1L_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_1R_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1R_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1R_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2b_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2b_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4bsmall_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4bsmall_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4c_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_4c_fin.tga - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4c_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_5esmallb_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_5esmallb_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/test2_r_trans -{ - qer_editorimage textures/ctf/test2_r.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/ctf/test2_r.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/ctf/test2_trans -{ - qer_editorimage textures/ctf/test2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/ctf/test2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf2.shader.svn-base deleted file mode 100644 index d15e6d5e..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/ctf2.shader.svn-base +++ /dev/null @@ -1,343 +0,0 @@ -textures/ctf2/test2_trans_vert -{ - qer_editorimage textures/ctf/test2.tga - surfaceparm nonsolid - surfaceparm pointlight - - { - map textures/ctf/test2.tga - rgbGen vertex - } -} - -textures/ctf2/test2_r_trans_vert -{ - qer_editorimage textures/ctf/test2_r.tga - surfaceparm nonsolid - surfaceparm pointlight - { - map textures/ctf/test2_r.tga - rgbGen vertex - } -} - -textures/ctf2/redteam02 -{ - qer_editorimage textures/ctf2/redteam01.tga - cull none - surfaceparm alphashadow - surfaceparm nomarks - { - map textures/ctf2/redteam01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} -textures/ctf2/blueteam02 -{ - qer_editorimage textures/ctf2/blueteam01.tga - cull none - surfaceparm alphashadow - surfaceparm nomarks - { - map textures/ctf2/blueteam01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} -textures/ctf2/redteam01 -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/redteam01.tga - blendFunc Add - //rgbgen wave triangle 0.2 0.5 0 0.2 - rgbGen wave sin 1 .5 0 .2 - - } - -} - -textures/ctf2/xredteam01x -// Non Flashy version -{ - qer_editorimage textures/ctf2/redteam01.tga - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/redteam01.tga - blendFunc Add - rgbgen identity - - } - -} - - -textures/ctf2/xblueteam01 -// non flashy version -{ - qer_editorimage textures/ctf2/blueteam01.tga - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/blueteam01.tga - blendFunc Add - rgbgen identity - } - -} - - -textures/ctf2/blueteam01 -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/blueteam01.tga - blendFunc Add - //rgbgen wave triangle 0.2 0.5 0 0.2 - rgbGen wave sin 1 .8 0 .2 - - } - -} - - -textures/ctf2/red_banner02 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/red_banner02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/ctf2/blue_banner02 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/blue_banner02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} -textures/ctf2/tin_redpanel -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/tin_panel.tga - - { - map textures/effects/envmapred.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/tin_panel.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/ctf2/tin_blupanel -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/tin_panel.tga - - { - map textures/effects/envmapblue.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/tin_panel.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/ctf2/blue_banner01 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/blue_banner01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - { - map textures/ctf2/b_dummy.tga - blendFunc Add - rgbGen wave sin 1 .5 0 .5 - - } - -} -textures/ctf2/blue_techsign01 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/blue_techsign01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - { - map textures/ctf2/b_dummy.tga - blendFunc Add - rgbGen wave sin 1 .5 0 .5 - - } - -} - -textures/ctf2/pj_baseboardr -{ - //q3map_lightimage textures/ctf2/pj_baseboardr_l.tga - //q3map_surfacelight 300 - - { - map textures/ctf2/pj_baseboardr.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/ctf2/pj_baseboardr_l.tga - blendFunc add - rgbGen wave sin .9 .5 0 .1 - } - -} -textures/ctf2/pj_baseboardb -{ - //q3map_lightimage textures/ctf2/pj_baseboardb_l.tga - //q3map_surfacelight 300 - - { - map textures/ctf2/pj_baseboardb.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/ctf2/pj_baseboardb_l.tga - blendFunc add - rgbGen wave sin .9 .5 0 .1 - } - -} - -textures/ctf2/jaildr_bluescroll -{ - qer_editorimage textures/ctf2/jaildr_blue.tga - q3map_lightimage textures/ctf2/jaildr_blue.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/ctf2/jaildr_blue.tga - blendFunc GL_DST_COLOR GL_ZERO - tcMod scroll 0 -.25 - rgbGen identity - } - { - map textures/ctf2/jaildr_blue.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - tcMod scroll 0 -.25 - blendfunc GL_ONE GL_ONE - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/default_shaderlist.txt.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/default_shaderlist.txt.svn-base deleted file mode 100644 index eb4da10f..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/default_shaderlist.txt.svn-base +++ /dev/null @@ -1,23 +0,0 @@ -base_floor -base_floor2 -base_light -base_wall -base_wall2 -common -ctf -ctf2 -gothic_trim -gothic_wall -liquids -liquids2 -museum -outdoors -proto2 -sfx -sfx2 -skies -skies2 -stone2 -terrain -tim -team diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/entities-ta.def.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/entities-ta.def.svn-base deleted file mode 100644 index a5eee7af..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/entities-ta.def.svn-base +++ /dev/null @@ -1,374 +0,0 @@ -//INSTRUCTIONS -//This document contains the editor descriptions for all the new entities in -//use in Quake III: Team Arena. -// -//===================================================================== -/*QUAKED ammo_nails (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Nailgun ammo. Gives the player 25 by default. --------- KEYS -------- -wait : value is the time in seconds before the item respawns after being picked up (default 40, -1 = never respawn). -random : a random time variance in seconds is added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : the valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/nailgunam.md3"*/ - -//===================================================================== - -/*QUAKED ammo_mines (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Prox Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). Any teamed item with the same value will be part of this team. -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/proxmineam.md3"*/ - -//=========================================================================== - -/*QUAKED ammo_belt (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Chaingun ammo. Gives the player 100 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/chaingunam.md3"*/ - -//=========================================================================== - -HOLDABLE_* ENTITIES - -//=========================================================================== - -/*QUAKED holdable_kamikaze (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -One use kamikaze item that can be picked up and used later. Does an initial wave of shock damage, knockback, then 200 damage to everything in a 256 radius. It kills the using player when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/kamikazi.md3"*/ - -/*QUAKED holdable_invulnerability (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Invulnerability. Creates an energy shield that protects the player against all weapons except proximity mines. Effect lasts XX seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/invulnerability.md3"*/ - -//=========================================================================== - -PERSISTANT POWERUPS (instant use, last until death) - -//=========================================================================== - -/*QUAKED item_scout (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Scout power-up. Player moves at 2/3 haste speed. Increases rate of fire. Lasts until death. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/scout.md3"*/ - -//=========================================================================== - -/*QUAKED item_guard (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Guard power-up. Gives player 200 regenerating health and 200 armor (without decay over time). Lasts until death. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/guard.md3"*/ - -//=========================================================================== - -/*QUAKED item_doubler (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Doubler power-up. Doubles the damage of player's weapons. Lasts until death. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/doubler.md3"*/ - -//=========================================================================== - -/*QUAKED item_ammoregen (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Ammo Regen power-up. Slowly regenerates ammo count for all weapons currently possessed by the player. --------- KEYS -------- -gametype : the values for this key determine which gametype the entity appears in. They are tournament, ffa, single, teamdm, oneflag, obelisk, harvester -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo.md3"*/ - -//=========================================================================== -TEAM ARENA TEAMPLAY ENTITIES [NEW] - -//============================================================================= - -/*QUAKED team_CTF_neutralflag (1 .2 1) (-16 -16 -24) (16 16 32) SUSPENDED -Neutral flag (One Flag CTF only). --------- KEYS -------- -angle : an angle facing needs to be set for this entity. This item has a specific facing. -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/n_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_redobelisk (1 .2 0) (-16 -16 0) (16 16 88) -Red team Obelisk. Used for Overload, CTF, Oneflag, and Harvester game types for various functions. Facing needs to be set. --------- KEYS -------- -angle : an angle facing needs to be set for this entity. This item has a specific facing. -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- NOTES -------- -Do not assign a gametype to this item unless the location of your CTF flags and your Overload obelisk will be different. It is used in all four team game types. The game will call for it as needed. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/overload_base.md3"*/ - -//============================================================================= - -/*QUAKED team_blueobelisk (0 .2 1) (-16 -16 0) (16 16 88) -Blue team Obelisk. Used for Overload and Harvester game types. Facing needs to be set. --------- KEYS -------- -angle : an angle facing needs to be set for this entity. This item has a specific facing. -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- NOTES -------- -Do not assign a gametype to this item. It is used in all four team game types. the The game will call for it as needed. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/overload_base.md3"*/ - -//============================================================================= - -/*QUAKED team_neutralobelisk (1 .2 1) (-16 -16 0) (16 16 88) -Neutral Obelisk (Harvester only). --------- KEYS -------- -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/obelisk/obelisk.md3"*/ - - - -//=========================================================================== -TEAM ARENA WEAPONS - -//=========================================================================== - -/*QUAKED weapon_chaingun (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Chaingun. A rapid fire instant hit weapon. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/vulcan/vulcan.md3"*/ - -//============================================================================= - -/*QUAKED weapon_nailgun (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Nailgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/nailgun/nailgun.md3"*/ - -//=========================================================================== - -/*QUAKED weapon_prox_launcher (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Proximity Mine Launcher. Lobs a mine which checks for proximity of a player or a time out. In team play, the mines are differentiated by teams. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/proxmine/proxmine.md3"*/ - - - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_trim.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_trim.shader.svn-base deleted file mode 100644 index 100fa7c7..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_trim.shader.svn-base +++ /dev/null @@ -1,296 +0,0 @@ - -textures/gothic_trim/baseboard09_p_shiny -{ - - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_trim/baseboard09_p_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } -} - -textures/gothic_trim/border6_trans -{ - qer_editorimage textures/gothic_trim/border6.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/border6.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - } -} - -textures/gothic_trim/column2c_trans -{ - qer_editorimage textures/gothic_trim/column2c_test.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/column2c_test.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/gothgrate2 -{ - surfaceparm metalsteps - cull none - - { - map textures/gothic_trim/gothgrate2.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - alphaFunc GT0 - depthWrite - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - depthFunc equal - } -} - -textures/gothic_trim/km_arena1tower4_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/km_arena1tower4_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4b_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4b.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/metalsupport4b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/metalsupport4h_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4h_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4h_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4j_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4j.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/metalsupport4j.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/gothic_trim/metlsupport4i_shiney -{ - qer_editorimage textures/gothic_trim/xmetalsupport4i_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xmetalsupport4i_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/pitted_rust2_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/pitted_rust3_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust3.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust3.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/supportborderside_shiney -{ - qer_editorimage textures/gothic_trim/xsupportborderside_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xsupportborderside_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/tongue_bone -{ - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 0.2 - } -} - -textures/gothic_trim/x_noblight -{ - q3map_lightimage textures/gothic_trim/x_noblightfx.tga - q3map_surfacelight 100 - { - map textures/sfx/firegorre2.tga - tcmod scroll .1 1 - tcmod scale 1 1 - } - { - map textures/gothic_trim/x_noblight.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/gothic_trim/x_noblightfx.tga - blendFunc add - rgbGen wave sin .5 .5 0 .1 - } -} - -textures/gothic_trim/zinc_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_trim/zinc_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_wall.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_wall.shader.svn-base deleted file mode 100644 index 4203aec6..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/gothic_wall.shader.svn-base +++ /dev/null @@ -1,120 +0,0 @@ - -textures/gothic_wall/iron01_m -{ - qer_editorimage textures/gothic_wall/iron01_m.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_m.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/iron01_ndark -{ - qer_editorimage textures/gothic_wall/iron01_ndark.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_ndark.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/streetbricks10_shiny -{ - qer_editorimage textures/gothic_wall/streetbricks11.tga - q3map_globaltexture - sort opaque - - { - map $lightmap - tcmod scale 2 2 - rgbgen identity - } - - { - map textures/gothic_wall/streetbricks11.tga - rgbGen identity - blendfunc gl_one gl_src_color - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - -} - -textures/gothic_wall/window_evil6a - -{ - q3map_lightimage textures/gothic_wall/window_evil6a_glow.tga - q3map_surfacelight 50 - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a.tga - blendfunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a_glow.tga - blendfunc GL_ONE GL_ONE - rgbGen identity - } - -} - -textures/gothic_wall/xoct20c_shiney -{ - qer_editorimage textures/gothic_wall/xoct20c_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/xoct20c_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/xpipecolumn_gray_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_wall/xpipecolumn_gray_shiny.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids.shader.svn-base deleted file mode 100644 index fd2d50cc..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids.shader.svn-base +++ /dev/null @@ -1,1153 +0,0 @@ -textures/liquids/x_calm_pool_nolight - { - // ************************************************* - // * CALM GREEN WATER POOL oct.6.2000 - // * same as calm water but emits NO light -Xian * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 256 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END - } - - - -textures/liquids/calm_pool_nolight - { - // ************************************************* - // * CALM GREEN WATER POOL oct.6.2000 - // * same as calm water but emits NO light -Xian * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END - } - - - -textures/liquids/protolava -{ - - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/liquids/protolava.tga - blendfunc blend - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/watertest - -// ************************************************************ -// * Water test with environmentmap. Created September 21* -// ************************************************************ - - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - tessSize 32 - deformVertexes normal .15 2 - deformVertexes bulge 128 5 2 - { - map $lightmap - blendfunc filter - } - - { - map textures/liquids/pool3d_4byell2.tga - blendfunc add - tcgen environment - // tcMod scroll .05 .05 - } - - - } - - - - -textures/liquids/flatripplewater_1500 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - q3map_lightsubdivide 32 - //surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - -// tesssize 128 -// cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/pool2.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/xctf_painwater - { - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 450 - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - { - map textures/sfx/bolts.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - //tcGen environment - tcMod scroll .1 .1 - tcmod rotate 290 - //rgbgen wave sin .1 1 5 .1 - } - } -textures/liquids/clear_calm1 - -// ********************************************************* -// * Medium clear calm water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3e.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .25 .25 0 .5 - { - map textures/liquids/pool3d_5e.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod scroll .025 .01 - } - - { - map textures/liquids/pool3d_3e.tga - blendFunc GL_dst_color GL_one - tcmod scale -.5 -.5 - tcmod scroll .025 .025 - } - - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - - -// END - } - -textures/liquids/clear_ripple3 - -// ********************************************************* -// * Medium clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3c.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -// END - } - - -textures/liquids/clear_ripple2 - -// ********************************************************* -// * Small clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -// END - } - - -textures/liquids/clear_ripple1 - -// ********************************************************* -// * Large clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } -// END - } - -textures/liquids/clear_ripple1_q3dm1 - -// ********************************************************* -// * Large clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } -} - -textures/liquids/lavahell -{ - q3map_globaltexture - surfaceparm noimpact - surfaceparm trans - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - - - -// END -} - -textures/liquids/lavahell_xdm1 -{ - qer_editorimage textures/liquids/lavahell.tga - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - //surfaceparm trans - //surfaceparm nonsolid - surfaceparm nodlight - surfaceparm noimpact - //surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -// END -} - -textures/liquids/lavahell_1000 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahell_2000 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} -textures/liquids/lavahell_750 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/flatlavahell_1500 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - //surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1500 - cull disable - -// tesssize 128 -// cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - - -textures/liquids/lavahell_2500 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahelldark -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 150 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -// END -} - -textures/liquids/lavahellflat_400 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 400 - cull disable - - tesssize 128 - cull disable - //deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/calm_pool - { - // ************************************************* - // * CALM GREEN WATER POOL Feb 19, 1998 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - - // END -} - -textures/liquids/calm_poollight - { - // ************************************************* - // * CALM GREEN WATER POOL may 5 1999 - // * same as calm water but emits light * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 50 - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - -} - -textures/liquids/calm_poollight2 - { - // ************************************************* - // * CALM GREEN WATER POOL may 5 1999 - // * same as calm water but emits light * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 50 - - cull disable - tesssize 512 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END -} - -textures/liquids/calm_pool_bgtess - { - // ************************************************* - // * CALM GREEN WATER POOL Feb 19, 1998 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // * Large tesselations added on May 26, '99 - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 256 - deformVertexes wave 256 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - - // END -} - - textures/liquids/proto_poolpass - { - /////////////////////////////////////////// - //Electric Slime. FOUR passes of FURY ---// - /////////////////////////////////////////// - - q3map_globaltexture - //qer_editorimage textures/liquids/proto_pool3.tga - q3map_lightimage textures/liquids/proto_pool3.tga - q3map_globaltexture - q3map_surfacelight 240 - // tesssize 256 - //deformVertexes wave 100 sin 1 5 .1 .5 - surfaceparm slime - - { - map textures/liquids/proto_gruel2.tga - //tcMod scale 1 1 - tcMod scale .5 .6 - //tcMod scroll .4 .01 - tcMod turb .1 .25 0 -.1 - - } - //{ - // map textures/liquids/proto_poolpass2.tga - // blendfunc GL_ONE GL_ONE - // tcMod scale .5 .6 - // //tcMod scroll .6 .04 - // tcMod turb .1 .25 0 .01 - //} - { - map textures/liquids/proto_poolpass.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - //tcMod scroll .5 .05 - tcMod turb .1 .25 0 .07 - } - { - map $lightmap - rgbgen identity - blendfunc GL_DST_COLOR GL_ZERO - } - { - map textures/sfx/bolts.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - //tcGen environment - tcMod scroll .1 .1 - tcmod rotate 290 - //rgbgen wave sin .1 1 5 .1 - } - - -} - -ripplewater2_back - { - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - // this is used when looking from inside the water to the outside - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - -// fogonly - { - map textures/liquids/ripplewater3.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod scale .05 .05 - tcGen environment - tcMod scroll .001 .001 - } - - // END -} - -textures/liquids/slime1 - { - // ************************************************* - // * SLIME Feb 11 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 100 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - // END - } - -textures/liquids/slime1_2000 - { - // ************************************************* - // * SLIME Feb 11 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 2000 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - // END -} - -textures/hell/lavasolid -{ - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 450 - - tesssize 64 - deformVertexes wave 100 sin 2 2 0 0.1 - - { - map textures/hell/lava2d.tga - tcGen environment - tcMod turb 0 0.25 0 0.05 - } - - { - map textures/hell/lava2d.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.05 - } -} - -textures/liquids/lavahell_2500_subd -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_lightsubdivide 32 - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids2.shader.svn-base deleted file mode 100644 index 244dab46..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/liquids2.shader.svn-base +++ /dev/null @@ -1,243 +0,0 @@ -textures/liquids2/calm_poollight2nt - { - - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 50 - - cull disable - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END - } - -textures/liquids2/water_volume - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - surfaceparm nodraw - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - -// END - } - - -textures/liquids2/clear_ripple1v - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen vertex - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - -// END - } - -textures/liquids2/clear_ripple1_q3dm1v - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen vertex - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - -// END - } -textures/liquids2/clear_calm1v - - { - qer_editorimage textures/liquids/pool3d_3e.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .25 .25 0 .5 - { - map textures/liquids/pool3d_5e.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod scroll .025 .01 - - } - - { - map textures/liquids/pool3d_3e.tga - blendFunc GL_dst_color GL_one - tcmod scale -.5 -.5 - tcmod scroll .025 .025 - rgbGen vertex - } - - - - - -// END - } -textures/liquids2/pjslime - { - // ************************************************* - // * ORIGINAL SLIME Feb 11 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // * - // ************************************************* - //Changed light value to 400 on May 17, 2000 - // Added to g3map_global texture on May 11, 1999 - q3map_lightimage textures/proto2/concrete_blue.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm lava - surfaceparm trans - - q3map_surfacelight 500 - tessSize 64 - //cull disable - deformVertexes wave 100 sin 1 2 0 .5 - - - { - map $lightmap - rgbgen identity - } - - - { - map textures/liquids2/pjslime.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - tcMod turb 0 .2 .5 .05 - tcmod scroll .01 .01 - } - - - - { - map textures/liquids2/pjslime2.tga - blendfunc add - rgbgen wave inversesawtooth 0 1 0 4 - tcMod turb 0 .2 .5 .05 - tcmod scroll .01 .01 - } - -} - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/museum.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/museum.shader.svn-base deleted file mode 100644 index c33ec1eb..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/museum.shader.svn-base +++ /dev/null @@ -1,28 +0,0 @@ - -////////////////////////////// -// Rainy Concrete floor // -////////////////////////////// - -textures/base_floor/concfloor_rain -{ - tessSize 32 - deformVertexes normal 1 15 - { - map textures/base_floor/concfloor_rain.tga - rgbGen identity - } - { - map textures/liquids/pj_e3_reflection2b.tga - Blendfunc add - tcgen environment - rgbgen wave sin .3 0 0 0 - tcmod scale 2 2 - tcMod scroll .5 .5 - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/proto2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/proto2.shader.svn-base deleted file mode 100644 index 9682be19..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/proto2.shader.svn-base +++ /dev/null @@ -1,1833 +0,0 @@ -textures/proto2/winframe -{ - - { - map models/weapons/nailgun/nailgun_env.tga - //tcMod scale 2 2 - tcGen environment - rgbGen identity - } - { - map textures/proto2/winframe.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/mpintro -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam6.roq - blendFunc add - rgbGen identity - } - - -} -textures/proto2/mpteam1 -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam1.roq - blendFunc add - rgbGen identity - } - - -} - -textures/proto2/mpteam3_movie -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam3.roq - blendFunc add - rgbGen identity - } - - -} - - -textures/proto2/mpteam5_mv -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam5.roq - blendFunc add - rgbGen identity - } - -} - -textures/proto2/mpterra2_mv -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpterra2.roq - blendFunc add - rgbGen identity - } - -} - - -textures/proto2/redflag -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/redflag.tga - alphaFunc GE128 - } - - -} - -textures/proto2/blueflag -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/blueflag.tga - alphaFunc GE128 - } - - -} - - -textures/proto2/oneflag -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/oneflag.tga - alphaFunc GE128 - } - - -} - -textures/proto2/harvest -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/harvest.tga - alphaFunc GE128 - } - - -} - -textures/proto2/redob -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/redob.tga - alphaFunc GE128 - } - - -} -textures/proto2/blueob -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/blueob.tga - alphaFunc GE128 - } - - -} - - -textures/proto2/urhere -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/urhere.tga - alphaFunc GE128 - } - - -} - - -textures/proto2/terramap01 -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/terramap01.tga - blendFunc add - rgbGen wave sin 1 .2 0 .75 - } - { - map textures/proto2/terramap02.tga - BlendFunc add - tcmod scale 1.75 1 - tcmod scroll -3.75 0 - rgbGen wave inversesawtooth 1 .2 0 .75 - } - -} - -ui/assets/logo01 -{ - - nopicmip - - { - map ui/assets/logo01.tga - BlendFunc add - rgbGen wave triangle 1 1 0 .25 - } - { - map ui/assets/logo02.tga - BlendFunc add - tcmod scroll .43 0 - rgbGen wave triangle 1 1 0 .75 - } - { - map ui/assets/logo02.tga - BlendFunc add - tcmod scroll -.51 0 - rgbGen wave triangle 1 1 0 1 - } - { - map ui/assets/logo03.tga - BlendFunc add - tcmod scroll -.3 0 - } - { - map ui/assets/logo03.tga - BlendFunc add - tcmod scroll .25 0 - } - -} - -textures/proto2/xflag01 -{ - surfaceparm alphashadow - cull none - - { - map textures/proto2/xflag01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/proto2/grill03b -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/grill03b.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/vertex_greenstone -{ - qer_editorimage textures/gothic_block/blocks17i.tga - surfaceparm pointlight - - { - map textures/gothic_block/blocks17i.tga - rgbGen vertex - } - -} - -textures/proto2/vertex_cavestone -{ - qer_editorimage textures/stone/pjrock5.tga - surfaceparm pointlight - - { - map textures/stone/pjrock5.tga - rgbGen vertex - } - -} - -textures/proto2/marbledoor_blue -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/marbledoor_blue.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/marbledoor_red -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/marbledoor_red.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/vertex_con -{ - - qer_editorimage textures/proto2/concrete03c.tga - surfaceparm pointlight - - { - map textures/proto2/concrete03c.tga - rgbGen vertex - } - -} - -textures/proto2/concrete03c_aqua -{ - surfaceparm pointlight - - { - map textures/proto2/concrete03c_aqua.tga - rgbGen vertex - } - -} - -textures/proto2/pulsebeam -{ - surfaceparm metalsteps - - - { - map textures/proto2/pulsebeam.tga - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/proto2/pulsebeam2.tga - BlendFunc add - rgbGen wave inversesawtooth -.3 1.3 0 1 - } -} - -textures/proto2/concrete_rednfx -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/concrete_red.tga - - { - map textures/proto2/concrete_red.tga - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/concrete_bluenfx -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/concrete_blue.tga - - { - map textures/proto2/concrete_blue.tga - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/cheapfloor -{ - qer_editorimage textures/proto2/marble02b_floor.tga - - { - map textures/effects2/xtourney_fx3.tga - //tcGen environment - //tcmod scale .5 .5 - tcGen environment - rgbGen identity - - } - { - map textures/proto2/marble02b_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -} - -textures/proto2/redlight_on -{ - surfaceparm nolightmap - - { - map textures/proto2/redlight_on.tga - rgbGen identity - } - - -} - -textures/proto2/bluelight_on -{ - surfaceparm nolightmap - - { - map textures/proto2/bluelight_on.tga - rgbGen identity - } - - -} - -////////////////////////////// Warning lights for mpterra2 -textures/proto2/bsredlight_on -//for team sides in mpterra2 (1 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/redlight_on.tga - - { - map textures/proto2/redlight_on.tga - rgbGen identity - } -} - -textures/proto2/bsbluelight_on -//for team sides in mpterra2 (2 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/bluelight_on.tga - { - map textures/proto2/bluelight_on.tga - rgbGen identity - } -} - -textures/proto2/rsredlight_off -//for team sides in mpterra2 (3 of 8) -{ - - qer_editorimage textures/proto2/redlight_off.tga - - { - map textures/proto2/redlight_off.tga - rgbGen identity - } -} - -textures/proto2/rsbluelight_off -//for team sides in mpterra2 (4 of 8) -{ - qer_editorimage textures/proto2/bluelight_off.tga - - { - map textures/proto2/bluelight_off.tga - rgbGen identity - } -} - -textures/proto2/bsredlight_off -//for team sides in mpterra2 (5 of 8) -{ - - qer_editorimage textures/proto2/redlight_off.tga - - { - map textures/proto2/redlight_off.tga - rgbGen identity - } -} - -textures/proto2/bsbluelight_off -//for team sides in mpterra2 (6 of 8) -{ - qer_editorimage textures/proto2/bluelight_off.tga - - { - map textures/proto2/bluelight_off.tga - rgbGen identity - } -} - -textures/proto2/rsbluelight_on -//for team sides in mpterra2 (7 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/bluelight_on.tga - { - map textures/proto2/bluelight_on.tga - rgbGen identity - } -} - -textures/proto2/rsredlight_on -//for team sides in mpterra2 (8 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/redlight_on.tga - { - map textures/proto2/redlight_on.tga - rgbGen identity - } -} - - - -textures/proto2/mirrorfloor -{ - qer_editorimage textures/proto2/marble02b_s.tga - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/proto2/marble02b_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -} - -textures/proto2/bluetrim01 -{ - - - { - map textures/effects2/envmap_blu.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .04 - - rgbGen identity - } - { - map textures/proto2/bluetrim01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/redtrim01 -{ - qer_editorimage textures/proto2/bluetrim01 - - { - map textures/effects2/envmap_red.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .04 - - rgbGen identity - } - { - map textures/proto2/bluetrim01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/torchstone02_trans -{ - qer_editorimage textures/proto2/marbledge01.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/proto2/marbledge01.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} -textures/proto2/torchstone03_trans -{ - qer_editorimage textures/proto2/marble02b.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/proto2/marble02b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - - -textures/proto2/shiny_black -{ - surfaceparm nolightmap - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/light_nv -{ - surfaceparm nolightmap - - { - map textures/proto2/light_nv.tga - rgbGen identity - } - - { - map textures/effects/tinfx2b.tga - tcGen environment - blendFunc add - rgbGen identity - } - - -} -textures/proto2/marble02btrim03 -{ - - { - map textures/proto2/marble02btrim03.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/proto2/marble02btrim03_lt.tga - blendFunc add - rgbGen wave sin .9 .5 0 .2 - } - -} -textures/proto2/marble02rtrim03 -{ - - { - map textures/proto2/marble02rtrim03.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/proto2/marble02rtrim03_lt.tga - blendFunc add - rgbGen wave sin .9 .5 0 .2 - } - -} - - -textures/proto2/red_zot -{ - cull disable - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/red_zot.tga - blendFunc Add - rgbGen identity - } - -} - -textures/proto2/blue_zot -{ - cull disable - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/blue_zot.tga - blendFunc Add - rgbGen identity - } - -} - -textures/proto2/red_zot2 -{ - cull disable - qer_lightimage textures/proto2/red_zot2.tga - q3map_surfacelight 120 - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/red_zot2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/blue_zot2 -{ - qer_editorimage textures/proto2/blue_zot.tga - cull disable - qer_lightimage textures/proto2/blue_zot.tga - q3map_surfacelight 120 - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/blue_zot.tga - blendFunc Add - rgbGen identity - } - - -} - - - -textures/proto2/door_right -{ - surfaceparm metalsteps - - { - map textures/effects2/envmap_sky.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/door_right.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/reda_dcl -{ - surfaceparm nomarks - surfaceparm trans - //nomipmaps - surfaceparm pointlight - - { - map textures/proto2/reda_dcl.tga - blendFunc add - rgbGen vertex - } -} -textures/proto2/bluea_dcl -{ - surfaceparm nomarks - surfaceparm trans - //nomipmaps - surfaceparm pointlight - - { - map textures/proto2/bluea_dcl.tga - blendFunc add - rgbGen vertex - } -} - -textures/proto2/blueat_dcl -{ - surfaceparm nomarks - surfaceparm trans - //nomipmaps - surfaceparm pointlight - - { - map textures/proto2/blueat_dcl.tga - blendFunc add - rgbGen vertex - } -} - -textures/proto2/concrete_red -{ - surfaceparm metalsteps - - { - map textures/effects2/redfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/concrete_red.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/concrete_blue -{ - surfaceparm metalsteps - - { - map textures/effects2/bluefx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/concrete_blue.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/teamwerkz_red1 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/teamwerkz_red2.tga - blendFunc add - tcMod scroll 1 0 - rgbgen wave sin 0 1 0 9 - } - { - map textures/proto2/teamwerkz_red1.tga - blendFunc add - tcMod scroll -.2 0 - rgbgen wave sin 0 1 0 .19 - } - - - -} -textures/proto2/teamwerkz_blue1 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/teamwerkz_blue2.tga - blendFunc add - tcMod scroll 1 0 - rgbgen wave sin 0 1 0 9 - } - { - map textures/proto2/teamwerkz_blue1.tga - blendFunc add - tcMod scroll -.2 0 - rgbgen wave sin 0 1 0 .19 - } - - - -} -textures/proto2/gothic_light -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/gothic_light.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/gothic_lightfx -{ - - q3map_surfacelight 2000 - surfaceparm alphashadow - surfaceparm nomarks - - { - map textures/proto2/gothic_lightfx.tga - blendfunc add - rgbGen identity - - } -} -textures/proto2/5_dcl -{ - - surfaceparm pointlight - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/5_dcl.tga - blendFunc add - depthWrite - rgbGen vertex - - } - -} - -textures/proto2/grill02 -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/grill02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/wirepipe -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/wirepipe.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/wheel01 -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/wheel01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/c_zinc_shiny -{ - qer_editorimage textures/gothic_trim/zinc_shiny.tga - cull none - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_trim/zinc_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/proto2/stadlight01 -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/stadlight01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - { - map textures/proto2/stadlight01fx.tga - blendfunc add - rgbGen wave sin .5 .5 0 2 - - } -} - -textures/proto2/v_support02 -{ - - - surfaceparm alphashadow - cull none - nomipmaps - { - map textures/proto2/v_support02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/pipes01 -{ - - - surfaceparm alphashadow - cull none - - { - map textures/proto2/pipes01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/floorvent01 -{ - - surfaceparm pointlight - surfaceparm alphashadow - cull none - - { - map textures/proto2/floorvent01.tga - blendFunc blend - depthWrite - rgbGen vertex - - } - -} - -textures/proto2/supportctfblu -{ - - - { - map textures/effects2/envmap_blu.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .02 - - rgbGen identity - } - { - map textures/proto2/supportctfblu.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/supportctfred -{ - - - { - map textures/effects2/envmap_red.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .02 - - rgbGen identity - } - { - map textures/proto2/supportctfred.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/marble02b_s -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/marble02b_s.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/ceiling_pipe01 -{ - - - surfaceparm alphashadow - cull none - - { - map textures/proto2/ceiling_pipe01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/duct01 -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/duct01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/grate_trim -{ - surfaceparm metalsteps - - { - map textures/sfx/specular.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/grate_trim.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/techtrim02 -{ - surfaceparm metalsteps - - { - map textures/sfx/specular.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/techtrim02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/steam01 -{ - qer_editorimage textures/proto2/steam_01_img.tga - cull disable - deformVertexes autoSprite2 - surfaceparm trans - //surfaceparm alphashadow - //surfaceparm nolightmap - surfaceparm pointlight - deformVertexes wave 50 sin 0 3 0 .3 - deformVertexes move .3 .1 0 sin 0 .5 0 0.2 - //deformVertexes move .6 .3 0 sin 0 .5 0 0.4 - { - map textures/proto2/steam01.tga - tcmod scroll 0 0.3 - blendFunc blend - rgbGen vertex - } - - - -} -textures/proto2/flare2 -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/flare2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/flare -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - clampmap textures/proto2/flare.tga - tcmod rotate 10 - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/redflare2 -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/redflare2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/redflare -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - clampmap textures/proto2/redflare.tga - tcmod rotate 10 - blendFunc Add - rgbGen identity - } - - -} - -textures/proto2/xredflare2 -// No autosprite for xian_team4 fuckage -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - - { - map textures/proto2/xredflare2.tga - blendFunc Add - rgbGen identity - } -} - -textures/proto2/blueflare2 -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/blueflare2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/blueflare -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - clampmap textures/proto2/blueflare.tga - tcmod rotate 10 - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/pipewall01 -{ - - - surfaceparm alphashadow - cull none - - { - map textures/proto2/pipewall01.tga - alphaFunc GE128 - - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/barbedwire -{ - surfaceparm pointlight - surfaceparm trans - surfaceparm alphashadow - deformVertexes autoSprite2 - cull twosided - //nopicmip - - { - map textures/proto2/barbedwire.tga - blendFunc Blend - //alphaFunc GE128 - //depthWrite - rgbGen vertex - } - //{ - // map $lightmap - // rgbGen identity - // blendFunc GL_DST_COLOR GL_ZERO - // depthFunc equal - //} -} - -textures/proto2/rail01 - -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/rail01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/grill01 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/grill01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/vent01 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/vent01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/girder05 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/girder05.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/girder04 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/girder04.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/gear02 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - clampmap textures/proto2/gear02.tga - alphaFunc GE128 - tcmod rotate 123 - depthWrite - rgbGen identity - } - { - clampmap textures/proto2/gear02b.tga - blendFunc add - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/lightbulb -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/lightbulb.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/lightbulb2 -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - map textures/proto2/lightbulb2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/tin_panel -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/tin_panel.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/girder03 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - { - map textures/proto2/girder03.tga - alphaFunc GE128 - //depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/chain -{ - cull disable - deformVertexes autoSprite2 - deformVertexes wave 100 sin 0 3 0 .05 - deformVertexes wave 100 sin 0 3 0 .3 - { - map textures/proto2/chain.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - -} - -textures/proto2/concrete01wetwall - - { - - { - map textures/proto2/ooze.tga - tcmod scale 2 2 - tcmod scroll 0 -.1 - rgbGen identity - } - { - map textures/proto2/concrete01wetwall.tga - Blendfunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx.shader.svn-base deleted file mode 100644 index 5edf9796..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx.shader.svn-base +++ /dev/null @@ -1,3253 +0,0 @@ -textures/sfx/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - - { - map textures/sfx/beam.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_blue - { - qer_editorimage textures/sfx/beam_blue4.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .6 - cull none - { - map textures/sfx/beam_blue4.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_dusty2 -{ - qer_editorimage textures/sfx/beam_1.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - { - map textures/sfx/beam_1.tga - blendFunc add - } -} - -textures/sfx/beam_red -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - cull none - { - map textures/sfx/beam_red.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_waterlight2 -{ - qer_editorimage textures/sfx/beam_waterlight.tga - q3map_globaltexture - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 50 - qer_trans 0.6 - cull none - { - map textures/sfx/beam_waterlight.tga - tcMod turb 0 0.015 0.5 0.07 - tcMod Scroll .15 0 - blendFunc add - } - -} - -textures/sfx/blackness -{ - surfaceparm nolightmap - surfaceparm noimpact - surfaceparm nomarks - { - map textures/sfx/blackness.tga - } -} - -textures/sfx/blocks17final_pent -{ - qer_editorimage textures/sfx/blocks17final_pent.tga - { - map textures/sfx/blocks17final_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/blocks17g_jumpad -{ - surfaceparm nodamage - q3map_surfacelight 400 - - - { - map textures/sfx/blocks17g_jumpad.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/blocks18ccomputer -{ - - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/blocks18ccomputer.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/border11c -{ - q3map_surfacelight 300 - q3map_lightimage textures/base_trim/border11c_pulse1.tga - qer_editorimage textures/base_trim/border11c.tga - - { - map textures/base_trim/border11c.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/base_trim/border11c_light.tga - blendfunc gl_one gl_one - rgbgen wave sin 1 .1 0 5 - } - - - { - map textures/base_trim/border11c_pulse1b.tga - blendfunc gl_one gl_one - tcmod scale .035 1 - tcmod scroll -0.65 0 - - - } - - -} - -textures/sfx/bounce_concrete -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_concrete.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_dirt -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_dirt.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3 -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_metalbridge04 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_metalbridge04.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_xq1metalbig -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_xq1metalbig.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_block17 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 1000 - - - { - map textures/sfx/bouncepad01_block17.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_metalbridge06b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_metalbridge06b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_xarch -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_xarch.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01block18b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad1q1metal7_99 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad1q1metal7_99.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bugmirror -{ - qer_editorimage textures/sfx/mirrorkc.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirrorkc.tga - blendFunc add - depthfunc equal - } -} - -textures/sfx/bullseye -{ - cull disable - surfaceparm nomarks - surfaceparm nolightmap - deformVertexes autosprite - - { - clampmap textures/sfx/bullseye.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 200 - blendFunc add - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .3 - tcmod rotate 70 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 50 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .1 - tcmod rotate 30 - alphaFunc GE128 - rgbGen identity - } - -} - -textures/sfx/clangdark_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/clangdark_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/computer_blocks17 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computer_blocks17.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/computerblocks15 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerblocks15.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } -} - -textures/sfx/computerpurptileb -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerpurptileb.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/console01 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - qer_trans .5 - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console01.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -200 - blendFunc GL_ONE GL_ONE - } - -} - -textures/sfx/console03 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console03.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -400 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console03.tga - - tcMod rotate 40 - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/constfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( .8 .8 .8 ) 100 -} - -textures/sfx/demonltblackfinal -{ - q3map_lightimage textures/sfx/demonltblackfinal_glow2.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal_glow2.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/diamond2cjumppad -{ - qer_editorimage textures/sfx/bouncepad01_diamond2cTGA.tga - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 500 - - - { - map textures/sfx/bouncepad01_diamond2cTGA.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/dust_puppy2 -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/dust_puppy2.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan -{ - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - { - clampmap textures/sfx/fan.tga - tcMod rotate 256 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan3 -{ - cull disable - surfaceparm alphashadow - sort 6 - { - map textures/sfx/fan3.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/sfx/fan3bladeb -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - sort 5 - { - clampmap textures/sfx/fan3bladeb.tga - blendFunc blend - tcmod rotate 999 - rgbGen identity - } - -} - -textures/sfx/fan_grate -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm metalsteps - cull none - nopicmip - { - map textures/sfx/fan_grate.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fanfx -{ - qer_editorimage textures/sfx/fanfx.tga - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - - { - clampmap textures/sfx/fanfx.tga - tcMod rotate 256 - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - depthWrite - } -} - -textures/sfx/fishy -{ - tesssize 32 - deformVertexes wave 10 sin 0 3 0 .5 - cull disable - surfaceparm nolightmap - surfaceparm nomarks - - { - clampmap textures/sfx/fishy.tga - alphaFunc GE128 - tcMod stretch sin .8 0.10 0 .07 - depthWrite - - } - - -} - -textures/sfx/flame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 7500 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1_hell -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 600 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1dark -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 2000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1km -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 4000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1side -{ - qer_editorimage textures/sfx/flame1side.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame2.tga - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_nolight -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_pj -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_dimmer -{ - qer_editorimage textures/sfx/flame1.tga - q3map_lightimage textures/sfx/flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1500 - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_green_pj -{ - qer_editorimage textures/sfx/g_flame1.tga - q3map_lightimage textures/sfx/g_flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/g_flame1.tga textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga textures/sfx/g_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/g_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/flameanim_red -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_nolight -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_pj -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/fog_intel -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .75 .38 0 ) 800 -} - -textures/sfx/fog_mkcdm4 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .5 0 0 ) 96 -} - -textures/sfx/fog_pjdm1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .733 .737 .620 ) 300 - -} - -textures/sfx/fog_q3dm10 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( 0.75 0.38 0 ) 128 -} - -textures/sfx/fog_timctf1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .729 .729 .780 ) 464 - -} - -textures/sfx/fog_timdm1 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 616 -} - -textures/sfx/fog_timdm2 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 356 -} - -textures/sfx/fog_timdm8 -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .211 .231 .094 ) 250 -} - -textures/sfx/healthfloor -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - clampmap textures/sfx/healthfloor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/hellfog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 300 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 200 - fogparms ( .5 .12 .1 ) 300 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - } -} - -textures/sfx/hellfog_mini_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 16 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_pj_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 392 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_tim_dm14 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .55 .11 .1 ) 128 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - - -} - -textures/sfx/hellfogdense -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 128 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/jacobs_x -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/jacobs_x.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - //tcMod rotate 103 - } -} - -textures/sfx/kc_hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 300 - q3map_lightsubdivide 32 - fogparms ( .5 .12 .1 ) 225 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/kenelectric -{ - { - map textures/sfx/kenelectric.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 7 7 - tcMod scroll 5 -5 - tcmod rotate 360 - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/largerblock3b3_pent -{ - qer_editorimage textures/sfx/largerblock3b3_pent.tga - { - map textures/sfx/largerblock3b3_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/largerblock3b3x128_pent -{ - q3map_lightimage textures/sfx/pentagramfloor_blue3glowtest.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/largerblock3b3x128_pent.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/pentagramfloor_blue3glowtest.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/largerblock3b3x128_pentred -{ - qer_editorimage textures/sfx/largerblock3b3x128_pent.tga - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/largerblock3b3x128_pent.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/sfx/launchpad_blocks17 -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks17.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_blocks18d -{ - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks18d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_diamond -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_diamond.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_metalbridge04d -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_metalbridge04d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/lavabeam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map textures/sfx/lavabeam.tga - tcMod Scroll 999 0 - blendFunc add - } - -} - -textures/sfx/lightmap -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm nodrop - surfaceparm fog - fogparms ( .7 .1 .1 ) 64 - - - - { - map $lightmap - blendFunc GL_dst_color GL_one - tcmod scale 1 .01 - tcMod scroll 1 -2 - } - - -} - -textures/sfx/metalbridge06_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metalbridge06_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/metaltech12final_bounce -{ - - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metaltech12final_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/mkc_bigflame -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - qer_editorimage textures/sfx/flame1.tga - q3map_surfacelight 500 - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/mkc_fog_ctfblue -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.2 0.2 0.25 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfblue2 -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.1 0.1 0.3 ) 320 - - q3map_surfacelight 40 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfred -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_tdm3 -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/omm -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/omm.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/pentagramfloor_red3test -{ - { - map textures/sfx/pentagramfloor_red3test.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red3glowtest.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pentfloor_diamond2c -{ - qer_editorimage textures/sfx/pentfloor_diamond2c.tga - { - map textures/sfx/pentfloor_diamond2c.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pj_a1_fog1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 30 - fogparms ( .5 .5 .5 ) 512 -} - -textures/sfx/portal2_sfx -{ - qer_editorimage textures/sfx/portalfog.tga - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphagen portal 128 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx -{ - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphagen portal 256 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx_ring -{ - deformVertexes wave 100 sin 0 2 0 .5 - cull none - - { - map textures/sfx/portal_sfx_ring_blue1.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - - { - map textures/sfx/portal_sfx_ring_electric.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 .2 .5 - tcmod scroll 0 .5 - - } - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx_ring.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - -} - -textures/sfx/proto_hellfog -{ -qer_editorimage textures/sfx/fog_red.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap - -fogparms ( .275 .012 0 ) 500 -} - -textures/sfx/proto_zzztblu3 -{ - surfaceparm nolightmap - surfaceparm nonsolid - cull twosided - { - map textures/sfx/proto_zzztblu3.tga - tcGen environment - tcMod turb 0 0.25 0 0.5 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/sfx/pureblack -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map textures/skies/blacksky.tga - } -} - -textures/sfx/q3dm14fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3dm9fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3tourney3fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 384 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/rain -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - deformVertexes move 3 1 0 sin 0 5 0 0.2 - deformVertexes move .6 3.3 0 sin 0 5 0 0.4 - deformVertexes wave 30 sin 0 10 0 .2 - cull none - - { - map textures/sfx/rain.tga - tcMod Scroll .5 -8 - tcMod turb .1 .25 0 -.1 - blendFunc GL_ONE GL_ONE - } - { - map textures/sfx/rain.tga - tcMod Scroll .01 -6.3 - - blendFunc GL_ONE GL_ONE - } - - -} - -textures/sfx/smallerblock3b3dim_pent -{ - qer_editorimage textures/sfx/smallerblock3b3dim_pent.tga - { - map textures/sfx/smallerblock3b3dim_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/spawn_floor -{ - - { - map textures/sfx/firegorre2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/spawn_floord2c -{ - - { - map textures/sfx/proto_zzztblu.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floord2c.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/teslacoil -{ - cull none - q3map_lightimage textures/sfx/tesla1.tga - qer_editorimage textures/sfx/tesla1.tga - q3map_surfacelight 100 - - { - map $lightmap - tcgen environment - blendfunc filter - } - - { - map textures/sfx/tesla1.tga - blendfunc add - rgbgen wave sawtooth 0 1 0 5 - tcmod scale 1 .5 - tcmod turb 0 .1 0 1 - tcMod scroll -1 -1 - } - - - - { - map textures/sfx/electricslime.tga - blendfunc add - rgbgen wave sin 0 .5 0 1 - tcmod scale .5 .5 - tcmod turb 0 .1 0 1 - tcmod rotate 180 - tcmod scroll -1 -1 - } - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - -} - -textures/sfx/teslacoil3 -{ - cull none - q3map_lightimage textures/sfx/tesla1b.tga - q3map_surfacelight 100 - qer_editorimage textures/sfx/cabletest2.tga - surfaceparm nolightmap - - - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - - { - map textures/sfx/electricslime2.tga - blendfunc add - rgbGen wave square .25 .25 0 2.5 - tcmod scale 1 1 - tcMod scroll 1 1 - } - - - - { - map textures/sfx/tesla1b.tga - blendfunc add - rgbgen wave square 0 1 0 3 - tcmod scale 1 1 - tcMod scroll -2 1 - } - -} - -textures/sfx/testconstantfog -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( 0 1 0 ) 300 -} - -textures/sfx/x_conduit -{ - q3map_lightimage textures/sfx/x_conduit.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/x_conduit.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { animMap 10 textures/sfx/x_conduit2.tga textures/sfx/x_conduit3.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - map textures/sfx/x_conduit2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbGen wave sin .5 0.5 0 7 - } - { - map textures/sfx/x_conduit3.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbgen wave triangle .2 1 0 9 - } -} - -textures/sfx/xblackfog -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -fogparms ( 0 0 0 ) 128 - -} - -textures/sfx/xbluefog -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - q3map_lightimage textures/sfx/xbluelightimage.tga - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xbluefogx128 -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 128 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xdensegreyfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - - fogparms ( 0.7 0.7 0.7 ) 1700 -} - -textures/sfx/xfinalfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 3000 - -} - -textures/sfx/xfinalfoginvert -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0 0 0 ) 256 - -} - -textures/sfx/xflame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 7500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame1side -{ - surfaceparm trans - surfaceparm nomarks - qer_editorimage textures/sfx/flame1.tga - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_1800 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_2250 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2250 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflamebright -{ - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 3000 - qer_editorimage textures/sfx/flame1.tga - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/xian_dm3padwall - { - q3map_surfacelight 100 - q3map_lightimage textures/sfx/xian_dm3padwallglow.tga - qer_editorimage textures/sfx/xian_dm3padwall.tga - - { - map textures/sfx/xian_dm3padwall.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx/xian_dm3padwallglow.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx/xlightgreyfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 1400 - -} - -textures/sfx/xmetalfloor_wall_14b -{ - qer_editorimage textures/sfx/metalfloor_wall_14b.tga - q3map_lightimage textures/sfx/metalfloor_wall_14bglow2.tga - q3map_surfacelight 50 - { - map textures/sfx/metalfloor_wall_14b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_14bglow2.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xmetalfloor_wall_5b -{ - qer_editorimage textures/sfx/metalfloor_wall_5b.tga - - { - map textures/sfx/metalfloor_wall_7b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_5bglowblu.tga - blendfunc gl_one gl_one - rgbgen wave sin .5 .2 0 .1 - } -} - -textures/sfx/xmetalfloor_wall_9b -{ - qer_editorimage textures/sfx/metalfloor_wall_9b.tga - - { - map textures/sfx/metalfloor_wall_9b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_9bglow.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xq1metalbig_jumppad -{ - qer_editorimage textures/gothic_floor/q1metal7_98d_256x256.tga - surfaceparm nodamage - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/q1metal7_98d_256x256.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - clampmap textures/sfx/surface6jumppad.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.75 0.25 0 .2 - tcMod stretch sin 0.80 0.20 0 1 - } -} - -textures/sfx/xredfog -{ - q3map_lightimage textures/sfx/xredlightimage.tga - qer_editorimage textures/sfx/fog_red.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.9 0.3 0.3 ) 128 - -} - -textures/sfx/zap_scroll -{ - q3map_surfacelight 300 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} - -textures/sfx/zap_scroll1000 -{ - q3map_surfacelight 1000 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_lightimage textures/sfx/zap_scroll.tga - qer_editorimage textures/sfx/zap_scroll2.tga - cull none - - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx2.shader.svn-base deleted file mode 100644 index b8b81cf2..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/sfx2.shader.svn-base +++ /dev/null @@ -1,1160 +0,0 @@ -textures/sfx2/senbouncenolit -{ - surfaceparm nodamage - surfaceparm nomarks - q3map_lightimage textures/sfx/jumppadsmall.tga - qer_editorimage textures/sfx/bouncepad01block18b.tga - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } -} - - -textures/sfx2/flame_nolit_noshad -{ - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - } - -} - -textures/sfx2/demonltblacknolight -{ - q3map_lightimage textures/sfx/demonltblackfinal_glow2.tga - surfaceparm nomarks - qer_editorimage textures/sfx/demonltblackfinal.tga - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal_glow2.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx2/jumpadx -{ - - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpadx.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/beam01 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map textures/sfx2/beam01.tga - tcMod Scroll .1 0 - blendFunc add - } - -} - -textures/sfx2/ouchfog -{ - qer_editorimage textures/sfx/hellfog.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .66 0 0 ) 392 - - - - { - map textures/sfx2/ouchfog.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/sfx2/ouchfog.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - - -textures/sfx2/autorain -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - deformVertexes move 3 1 0 sin 0 5 0 0.2 - deformVertexes move .6 3.3 0 sin 0 5 0 0.4 - deformVertexes autoSprite2 - cull none - //nopicmip - - { - map textures/sfx2/autorain.tga - tcMod Scroll .5 -8 - tcMod turb .1 .25 0 -.1 - blendFunc GL_ONE GL_ONE - } - //{ - // map textures/sfx/rain.tga - // tcMod Scroll .01 -6.3 - // - // blendFunc GL_ONE GL_ONE - //} - - -} - -textures/sfx2/flameanim_red_lowlite -{ - - // ************************************************* - // * Red Flame * - // * April 24, 2000 Surface Light 1000 * - // * Please Comment Changes * - // ************************************************* - qer_editorimage textures/sfx/r_flame3.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1000 - // surfacelight changed to 1000 on 04/24/00.... PAJ - - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} -textures/sfx2/flameanim_blue_lowlite -{ - - // ************************************************* - // * Blue Flame * - // * April 24, 2000 Surface Light 1000 * - // * Please Comment Changes * - // ************************************************* - qer_editorimage textures/sfx/b_flame7.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1000 - // texture changed to 1K surface light.... PAJ - - - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx2/blue_jumpad05 -{ - qer_editorimage textures/sfx2/jumpad05.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad05.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad05 -{ - qer_editorimage textures/sfx2/jumpad05.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad05.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/screen01 -{ - cull disable - surfaceparm nomarks - - { - map textures/sfx2/screen01.tga - tcMod scroll 9 .1 - rgbGen identity - } - { - map textures/effects2/tinfx_scr.tga - blendfunc add - tcGen environment - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - - -} - -textures/sfx2/blue_edge -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - - { - map textures/sfx2/blue_edge.tga - blendFunc add - tcMod scale .2 .2 - tcMod scroll .2 .2 - rgbGen identity - } - - - -} -textures/sfx2/b_smack01 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/sfx2/b_smack01.tga - blendFunc add - tcMod turb 0 .05 .06 .25 - rgbgen wave sin 0 1 0 .19 - } - { - map textures/sfx2/b_smack03.tga - blendFunc add - tcMod turb 0 .05 .07 .33 - rgbgen wave sin 0 1 0 7 - } - { - map textures/sfx2/b_smack02.tga - blendFunc add - tcMod turb 0 .07 .05 .4 - rgbgen wave sin 0 1 0 .5 - } - - - -} -textures/sfx2/r_fight01 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/sfx2/r_fight01.tga - blendFunc add - tcMod turb 0 .05 .06 .25 - rgbgen wave sin 0 1 0 .19 - } - { - map textures/sfx2/r_fight02.tga - blendFunc add - tcMod turb 0 .05 .07 .33 - rgbgen wave sin 0 1 0 7 - } - { - map textures/sfx2/r_fight03.tga - blendFunc add - tcMod turb 0 .07 .05 .4 - rgbgen wave sin 0 1 0 .5 - } - - - -} - -textures/sfx2/ven_beam -{ - qer_editorimage textures/sfx2/ven_beam.tga - cull disable - surfaceparm trans - - { - map textures/sfx2/ven_beam.tga - blendFunc add - rgbGen identity - } - - - -} - -textures/sfx2/padwall_red - { - - q3map_lightimage textures/sfx2/dm3padwallglow_red.tga - qer_editorimage textures/sfx2/dm3padwall_red.tga - - { - map textures/sfx2/dm3padwall_red.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx2/dm3padwallglow_red.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx2/padwall_red_light - { - - q3map_lightimage textures/sfx2/dm3padwallglow_red.tga - qer_editorimage textures/sfx2/dm3padwall_red.tga - q3map_surfacelight 100 - q3map_lightsubdivide 64 - { - map textures/sfx2/dm3padwall_red.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx2/dm3padwallglow_red.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - - - -textures/sfx2/padwall_ntl - { - - q3map_lightimage textures/sfx2/dm3padwallglow_ntl.tga - qer_editorimage textures/sfx2/dm3padwall_red.tga - - { - map textures/sfx2/dm3padwall_red.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx2/dm3padwallglow_ntl.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx2/ntrl_launchpad -{ - qer_editorimage textures/sfx2/launchpad03.tga - - { - map textures/sfx2/tread.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 .7 - tcmod scale 1 2 - rgbGen identity - } - { - map textures/sfx2/nlaunch.tga - blendFunc Add - tcmod scale 1 .5 - tcmod scroll 0 2 - rgbgen wave square 0 1 0 2 - alphagen wave square 0 1 .1 2 - } - - { - map textures/sfx2/launchpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx2/nlaunch2.tga - blendFunc Add - rgbgen wave square 0 1 0 1 - alphagen wave square 0 1 .1 1 - - } - -} -textures/sfx2/blue_launchpad -{ - qer_editorimage textures/sfx2/launchpad03.tga - - { - map textures/sfx2/tread.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 .7 - tcmod scale 1 2 - rgbGen identity - } - { - map textures/sfx2/blaunch.tga - blendFunc Add - tcmod scale 1 .5 - tcmod scroll 0 2 - rgbgen wave square 0 1 0 2 - alphagen wave square 0 1 .1 2 - } - - { - map textures/sfx2/launchpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx2/blaunch2.tga - blendFunc Add - rgbgen wave square 0 1 0 1 - alphagen wave square 0 1 .1 1 - - } - -} -textures/sfx2/red_launchpad -{ - qer_editorimage textures/sfx2/launchpad03.tga - - { - map textures/sfx2/tread.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 .7 - tcmod scale 1 2 - rgbGen identity - } - { - map textures/sfx2/rlaunch.tga - blendFunc Add - tcmod scale 1 .5 - tcmod scroll 0 2 - rgbgen wave square 0 1 0 2 - alphagen wave square 0 1 .1 2 - } - - { - map textures/sfx2/launchpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx2/rlaunch2.tga - blendFunc Add - rgbgen wave square 0 1 0 1 - alphagen wave square 0 1 .1 1 - - } - -} - - -textures/sfx2/tread2 -{ - - { - map textures/sfx2/tread2.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/ntrl_jumpad -{ - qer_editorimage textures/sfx2/jumpad02.tga - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/blue_jumpad -{ - qer_editorimage textures/sfx2/jumpad02.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad -{ - qer_editorimage textures/sfx2/jumpad02.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/ntrl_jumpad2 -{ - qer_editorimage textures/sfx2/jumpad01.tga - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/blue_jumpad2 -{ - qer_editorimage textures/sfx2/jumpad01.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad2 -{ - qer_editorimage textures/sfx2/jumpad01.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -///// -textures/sfx2/ntrl_jumpad3 -{ - qer_editorimage textures/sfx2/jumpad03.tga - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/blue_jumpad3 -{ - qer_editorimage textures/sfx2/jumpad03.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad3 -{ - qer_editorimage textures/sfx2/jumpad03.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/redgoal2 -{ - surfaceparm nolightmap - //surfaceparm nonsolid - surfaceparm trans - cull twosided - { - map textures/sfx2/redgoal2.tga - tcGen environment - tcmod scale 2 2 - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.5 - } -} - - -textures/sfx2/bluegoal2 -{ - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - cull twosided - { - map textures/sfx2/bluegoal2.tga - tcGen environment - tcmod scale 2 2 - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.5 - } -} -textures/sfx2/swirl_b1 -{ - deformVertexes wave 100 sin 1 2 .1 1 - //q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm nonsolid - cull none - - { - clampmap textures/sfx2/swirl_b1.tga - blendFunc GL_ONE GL_ONE - tcMod rotate -188 - } - { - clampmap textures/sfx2/swirl_b2.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 333 - } - -} -textures/sfx2/swirl_r1 -{ - deformVertexes wave 100 sin 1 2 .1 1 - //q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm nonsolid - cull none - - { - clampmap textures/sfx2/swirl_r1.tga - blendFunc GL_ONE GL_ONE - tcMod rotate -188 - } - { - clampmap textures/sfx2/swirl_r2.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 333 - } - -} -textures/sfx2/jumportal01 -{ - - - surfaceparm trans - cull none - - { - map textures/sfx2/jumportal01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/sfx2/jumportal02 -{ - - - surfaceparm trans - cull none - - { - map textures/sfx2/jumportal02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/sfx2/scrolling_red -{ - qer_editorimage textures/base_light/jaildr1_3.tga - surfaceparm nomarks - q3map_lightimage textures/base_light/jaildr1_3.blend.tga - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr1_3.tga - blendFunc GL_DST_COLOR GL_ZERO - tcMod scroll 0 -.25 - rgbGen identity - } - { - map textures/base_light/jaildr1_3.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - tcMod scroll 0 -.25 - blendfunc GL_ONE GL_ONE - } -} - -textures/sfx2/b_flame1 -{ - qer_editorimage textures/sfx/b_flame1.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies.shader.svn-base deleted file mode 100644 index 27c27979..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies.shader.svn-base +++ /dev/null @@ -1,1073 +0,0 @@ -textures/skies/blacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 25 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 90 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/hellsky -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 4 3 3 65 290 75 - q3map_surfacelight 50 - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.05 0 - tcMod scale 2 2 - depthWrite - } -} - -textures/skies/hellsky2 -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .9 .9 1 70 65 78 - q3map_surfacelight 60 - skyparms - 512 - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.02 0 - tcMod scale 1 1 - depthWrite - } - { - map textures/skies/dimclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.02 0.01 - tcMod scale 3 3 - } - -} - -textures/skies/hellsky2bright -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 1 1 100 220 50 - q3map_surfacelight 120 - - qer_editorimage textures/skies/inteldimredclouds.tga - - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/kc_dm10sky -{ - q3map_lightimage textures/skies/pjbasesky.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - - -} - -textures/skies/kcbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 500 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/killsky -{ - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 3 2 2 70 315 65 - q3map_surfacelight 75 - skyparms - 512 - - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/mkc_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 0.266383 0.274632 0.358662 150 60 80 - q3map_surfacelight 700 - - skyparms half 256 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/nightsky_xian_dm1 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 300 - q3map_sun 1 1 1 100 -41 58 - - qer_editorimage textures/skies/xnight2_up.tga - - - skyparms env/xnight2 - - -} - -textures/skies/nightsky_xian_dm15 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm nolightmap - surfaceparm noimpact - - q3map_surfacelight 900 - q3map_sun 1 1 1 100 -58 58 - skyparms env/xnight2 - - - - -} - -textures/skies/nightsky_xian_dm4 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 1 80 -41 58 - q3map_surfacelight 50 - skyparms env/xnight2 - - -} - -textures/skies/pj_arena2sky -{ - qer_editorimage textures/skies/pjbasesky.tga - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 55 - q3map_surfacelight 100 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_arena4_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 200 165 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf1sky -{ - qer_editorimage textures/skies/pjbasesky - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 75 - q3map_surfacelight 150 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf2_sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 250 90 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/bluedimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/topclouds.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_dm10sky -{ - q3map_lightimage textures/common/white.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - -} - -textures/skies/pj_dm9sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - - q3map_sun .5 .6 .8 140 165 60 - q3map_surfacelight 80 - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/pjbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 100 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/q3dm0 - -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 60 80 75 - q3map_surfacelight 80 - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/skybox -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/space1_bk.tga - q3map_sun 1 1 1 100 -58 58 - q3map_surfacelight 400 - - skyparms env/space1 - - - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/stars_arena7 -{ - qer_editorimage textures/skies/black_up.tga - - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 10 - q3map_sun .6 .6 .6 30 35 78 - - skyparms env/black - - -} - -textures/skies/tim_dm14 -{ - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun 3 2 2 90 314 60 - q3map_surfacelight 80 - skyparms - 512 - - - //cloudparms 512 full - //lightning - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm14red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun .5 .37 .19 70 314 60 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm3_red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 70 30 70 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_hell -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 1 .77 .77 80 315 70 - q3map_surfacelight 130 - skyparms - 384 - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_km2 -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 90 315 40 - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/toxicsky -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskydim -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 100 - q3map_sun 1 1 0.5 80 30 70 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_blue -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 70 60 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_ctf1 -//used in tim_ctf1 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 70 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm2 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 100 190 75 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm3 - -{ - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_dm4 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 120 75 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm5 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 .78 .48 90 225 55 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm7 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 260 50 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm8 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 85 220 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .980 .835 .3 100 25 65 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xblacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 300 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 45 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/xblacksky_dm7 -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map gfx/colors/black.tga - } -} - -textures/skies/xtoxicsky_ctf -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm14 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 800 - q3map_sun 1 1 0.85 100 90 90 - - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm3 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_q3ctf3 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xtoxicsky_tourney -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 495 - q3map_sun 1 1 0.5 150 75 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicskytim_q3dm5 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 400 - q3map_sun .5 .6 .8 150 30 60 - - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies2.shader.svn-base deleted file mode 100644 index 45ff6f88..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/skies2.shader.svn-base +++ /dev/null @@ -1,245 +0,0 @@ -textures/skies2/ctf6sky -{ - qer_editorimage textures/skies2/ctf6sky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 100 - - skyparms - 512 - - - { - map textures/skies2/ctf6sky2.tga - - tcMod scale 3 3 - tcMod scroll 0.01 0.01 - depthWrite - } - { - map textures/skies2/ctf6sky.tga - - blendfunc Add - tcMod scale 1.2 0.9 - tcMod scroll .013 .002 - - } -} - -textures/skies2/ctf6sky_ter -//sky for mpterra2 -{ - qer_editorimage textures/skies2/ctf6skyb.tga - qer_lightimage textures/skies2/ctf6sky2b.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 1 1 1 185 180 85 - q3map_surfacelight 300 - skyparms - 512 - - - { - map textures/skies2/ctf6sky2b.tga - - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - depthWrite - } - { - map textures/skies2/ctf6skyb.tga - - blendfunc Add - tcMod scale 1.2 0.9 - tcMod scroll .013 .002 - - } -} - -textures/skies2/nebulax -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - - skyparms textures/skies2/env/nebulax - - - - -} - -textures/skies2/nebula3 -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/proto_sky.tga - q3map_sun .90 .90 .95 80 315 40 - q3map_surfacelight 460 - - skyparms textures/skies2/env/nebula3 - - - - -} - -textures/skies2/x_nebula3 -{ - qer_editorimage textures/skies2/nebula3.tga - q3map_lightsubdivide 512 - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - - q3map_lightimage textures/skies/proto_sky.tga - q3map_sun .90 .90 .95 150 135 50 - q3map_surfacelight 200 - - skyparms textures/skies2/env/nebula3 - - -} - - - -textures/skies2/nebula3halflit -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/proto_sky.tga - q3map_sun .90 .90 .95 80 315 40 - q3map_surfacelight 190 - - skyparms textures/skies2/env/nebula3 - - - - -} - -textures/skies2/nebula3nolit -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - skyparms textures/skies2/env/nebula3 - - - - -} - - -textures/skies2/nebula2 -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .90 .90 .95 80 315 40 - q3map_surfacelight 60 - - skyparms textures/skies2/env/nebula2 - - - -} - -textures/skies2/nebula -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .75 .37 .19 90 315 40 - q3map_surfacelight 80 - - skyparms textures/skies2/env/nebula - - - - -} - -textures/skies2/hell1 -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun 1 1 1 55 -58 58 - q3map_surfacelight 400 - - skyparms textures/skies2/env/hell1 - - - -} - -textures/skies2/xhell1_nolight -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun 1 1 1 55 -58 58 - - skyparms textures/skies2/env/hell1 - - - -} - - -textures/skies2/hell2 -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .75 .37 .19 90 315 40 - q3map_surfacelight 80 - - skyparms textures/skies2/env/hell2 - - - - -} - -textures/skies2/hell3 -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .75 .37 .19 90 315 40 - q3map_surfacelight 80 - - skyparms textures/skies2/env/hell3 - - - - -} - -textures/skies2/mpterra2 -//used terrain ctf map - -{ - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - - q3map_sun 1 1 1 200 180 85 - q3map_surfacelight 90 - - qer_editorimage textures/skies/toxicbluesky.tga - - skyparms - 1024 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.0355 0.0355 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.0125 0.0125 - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/stone2.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/stone2.shader.svn-base deleted file mode 100644 index eab89729..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/stone2.shader.svn-base +++ /dev/null @@ -1,10 +0,0 @@ - -textures/stone2/pjrock5_vertex -{ - surfaceparm nolightmap - qer_editorimage textures/stone/pjrock5.tga - { - map textures/stone/pjrock5.tga - rgbGen vertex - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/team.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/team.shader.svn-base deleted file mode 100644 index e05bb796..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/team.shader.svn-base +++ /dev/null @@ -1,140 +0,0 @@ -"team_icon/the fallen_red" -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/thefallen_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -"team_icon/the fallen_blue" -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/thefallen_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/intruders_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/intruders_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/intruders_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/intruders_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/crusaders_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/crusaders_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/crusaders_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/crusaders_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/pagans_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/pagans_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/pagans_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/pagans_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/stroggs_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/stroggs_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/stroggs_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/stroggs_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/terrain.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/terrain.shader.svn-base deleted file mode 100644 index fe729223..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/terrain.shader.svn-base +++ /dev/null @@ -1,557 +0,0 @@ -// ************************************************* -// * -// * Vertex Lighting Replacement Shaders -// * -// ************************************************* - -textures/terrain/vxmpterra2 - -{ - qer_editorimage textures/stone/pjrock10bc.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock10b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -textures/terrain/vxmpterra1 - -{ - qer_editorimage textures/stone/pjrock12c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock12c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -// ********************************************************* - -// ************************************************* -// * -// * MPTerra2 terrain shaders (PaulJ) -// * -// ************************************************* - - -textures/terrain/mpterra2_0 - -{ - qer_editorimage textures/stone/pjrock9b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock9b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1 - -{ - qer_editorimage textures/stone/pjrock12b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock12b_2.tga - rgbGen vertex - tcmod scale 0.1 0.1 - - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_2 -{ - qer_editorimage textures/stone/pjrock10b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - -} - -textures/terrain/mpterra2_0to1 - -{ - qer_editorimage textures/stone/pjrock9b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - - { - map textures/stone/pjrock12b_2.tga - tcmod scale 0.1 0.1 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -textures/terrain/mpterra2_0to2 -{ - qer_editorimage textures/stone/pjrock9b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.05 0.05 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1to2 -{ - qer_editorimage textures/stone/pjrock12b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock12b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.1 0.1 - } - - { - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -////////////////////////////////////////////// -// // -// x_mpterra // -// // -////////////////////////////////////////////// - -textures/terrain/vxmpterra3 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -textures/proto2/xproto_0to1 - -{ - qer_editorimage textures/proto2/px01.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - - } - - { - map textures/proto2/px02.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_1to2 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - alphaGen vertex - } - - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_0to2 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - - - -textures/proto2/xproto_0 - -{ - qer_editorimage textures/proto2/px01.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } - - - -} - -textures/proto2/xproto_1 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } - - - -} - -textures/proto2/xproto_2 - -{ - qer_editorimage textures/proto2/px03.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px03.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -// ************************************************* -// * -// * MPTerra1 terrain shaders (Tim) -// * -// ************************************************* - -textures/terrain/mpterra1_0 -{ - qer_editorimage textures/stone/pjrock9c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1 -{ - qer_editorimage textures/stone/pjrock12c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - //tcmod transform 1 0 1 1 1 1 - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_2 -{ - qer_editorimage textures/stone/pjrock10c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to1 -{ - qer_editorimage textures/stone/pjrock9c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock12c.tga - tcmod scale 0.125 0.125 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to2 -{ - qer_editorimage textures/stone/pjrock9c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - //tcmod transform 1 0 1 1 1 1 - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1to2 -{ - qer_editorimage textures/stone/pjrock12c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - //tcmod transform 1 0 1 1 1 1 - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/tim.shader.svn-base b/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/tim.shader.svn-base deleted file mode 100644 index c5c2b3db..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/.svn/text-base/tim.shader.svn-base +++ /dev/null @@ -1,213 +0,0 @@ -//Bwahahahahhaha - -textures/tim/red_flagbase -{ - qer_editorimage textures/tim/flagbase.tga - - { - map textures/tim/swirl_red.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/tim/swirl_red.tga - blendFunc Add - tcmod rotate 80 - tcMod stretch sin .7 0.5 0 .1 - rgbGen identity - } - { - map textures/tim/flagbase.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/tim/blue_flagbase -{ - qer_editorimage textures/tim/flagbase.tga - - { - map textures/tim/swirl_blue.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/tim/swirl_blue.tga - blendFunc Add - tcmod rotate 80 - tcMod stretch sin .7 0.5 0 .1 - rgbGen identity - } - { - map textures/tim/flagbase.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/tim/timborder11c -{ - q3map_surfacelight 300 - q3map_lightimage textures/tim/tim11c_pulse1.tga - qer_editorimage textures/base_trim/border11c.tga - - { - map textures/base_trim/border11c.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/base_trim/border11c_light.tga - blendfunc gl_one gl_one - rgbgen wave sin 1 .1 0 5 - } - - - { - map textures/tim/tim11c_pulse1.tga - blendfunc gl_one gl_one - tcmod scale .035 1 - tcmod scroll -0.65 0 - - - } - - -} - -textures/tim/rmetaltechgeomtrn -{ - - - { - map textures/sfx/fire_ctfred.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/tim/rmetaltechgeomtrn.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/tim/rmetaltechgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/tim/redmetalsupport2fline -{ - q3map_surfacelight 100 - q3map_lightimage textures/tim/redmetalsupport2fline_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/tim/redmetalsupport2fline.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/tim/redmetalsupport2fline_glow.tga - blendFunc add - rgbGen wave sin .5 .5 0 1 - } - - -} -textures/tim/symbol_redlt1 -{ - q3map_lightimage textures/tim/symbol_redlt1_mask.tga - q3map_surfacelight 100 -// light 1 - - { - map $lightmap - rgbGen identity - } - - - { - map textures/tim/symbol_redlt1.tga - blendfunc filter - rgbgen identity - } - - { - map textures/tim/symbol_redlt1_mask.tga - blendfunc add - rgbgen wave sawtooth .2 .05 0 7 - } -} - -textures/tim/rconcrete_ow -{ - - { - map textures/tim/proto_zzztred.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/tim/rconcrete_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/base_floor.shader b/install/installs/Q3Pack/install/missionpack/scripts/base_floor.shader deleted file mode 100644 index b6c754aa..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/base_floor.shader +++ /dev/null @@ -1,900 +0,0 @@ -textures/base_floor/clang_floor3blava -{ - surfaceparm nolightmap - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clang_floor3blava.tga - blendfunc blend - - } - -} - -textures/base_floor/clangdark -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow -{ - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/clangdark_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/clangdark_ow3 -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/clangdark_ow3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangdarkspot -{ - surfaceparm metalsteps - //{ - // map textures/base_floor/clangdarkspot.tga - // rgbGen identity - //} - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangdarkspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/clangfloor_noisy -{ - qer_editorimage textures/base_floor/clang_floor.tga - surfaceparm metalsteps - { - map $lightmap - rgbGen identity - } - - { - map textures/base_floor/clang_floor.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbgen identity - - } - -} - -textures/base_floor/clangspot2 -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark.tga - //tcGen environment - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - - tcMod turb 0 0.05 0 .05 - //rgbGen identity - } - - { - map textures/effects/tinfx3.tga - //tcGen environment - blendFunc GL_ONE GL_ONE - tcGen environment - //tcMod turb 0 0.01 0 9 - //rgbGen identity - } - - { - map textures/base_floor/clangspot2.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/concretefloor1 -{ - - { - map textures/base_wall/chrome_env.tga - tcgen environment - rgbgen wave sin .25 0 0 0 - } - - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ZERO GL_SRC_ALPHA - tcmod scale .1 .1 - rgbgen identity - } - - { - map textures/base_floor/concretefloor1.tga - blendFunc GL_ONE GL_SRC_ALPHA - rgbgen identity - } - - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - - - -} - -textures/base_floor/cybergrate2 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/base_floor/cybergrate2.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/cybergrate3 -{ - cull disable - surfaceparm alphashadow - surfaceparm metalsteps - surfaceparm nomarks - { - map textures/sfx/hologirl.tga - blendFunc add - tcmod scale 1.2 .5 - tcmod scroll 3.1 1.1 - - } - { - map textures/base_floor/cybergrate3.tga - alphaFunc GE128 - depthWrite - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_floor/diamond2c_ow -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/diamond2c_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond2cspot -{ - surfaceparm metalsteps - - { - map textures/liquids/proto_grueldark2.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 2 2 - tcMod scroll .01 .03 - tcMod turb 0 0.05 0 .05 - } - - { - map textures/effects/tinfx3.tga - blendFunc GL_ONE GL_ONE - tcGen environment - } - - { - map textures/base_floor/diamond2cspot.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/diamond_noisy -{ - qer_editorimage textures/base_floor/diamond2.tga - surfaceparm metalsteps - - // metal that makes metalsteps sound - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/diamond2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/floor3_3dark_ow -{ - - { - map textures/effects/envmapblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 1.5 1.5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/base_floor/floor3_3dark_ow.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - -textures/base_floor/hfloor3 -{ - //deformVertexes wave 100 sin 3 2 .1 3 - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/hfloor3.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - - { - map textures/base_floor/hfloor3.tga - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - -} - -textures/base_floor/metalbridge04dbroke -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_floor/metalbridge04dbroke.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_floor/nomarkstone_1 -{ - qer_editorimage textures/base_floor/smallstone.tga - q3map_lightimage textures/base_floor/smallstone.tga - q3map_globaltexture - surfaceparm nomarks - surfaceparm noimpact - - // A stone that isn't marked by weapons. Used below red fog in pj_dm10 - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/smallstone.tga - tcMod scale 2 2 - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/base_floor/pjgrate1 -{ - surfaceparm metalsteps - cull none - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate1.tga - tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/pjgrate2 -{ - surfaceparm metalsteps - cull none - - // A RUSTED GRATE THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/pjgrate2.tga - tcMod scale 2.0 2.0 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - rgbGen identity - } -} - -textures/base_floor/pool_floor2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_floor2.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_floor3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.25 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .25 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side2 -{ - - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_floor/pool_side2.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/pool_side3 -{ - qer_editorimage textures/base_wall/patch10rusty5.tga - - { - map textures/liquids/pool3d_5e.tga - tcmod scale -.5 -.25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/liquids/pool3d_6e.tga - blendFunc GL_one GL_ONE - tcmod scale .5 .25 - tcmod scroll .025 .025 - rgbgen wave sin .75 0 0 0 - } - - { - map textures/base_wall/patch10rusty5.tga - blendFunc GL_one GL_src_color - tcmod scale .5 .5 - rgbgen identity - } - - - { - rgbGen identity - map $lightmap - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_floor/proto_grate -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate3 -{ - surfaceparm metalsteps - surfaceparm trans - cull none - nopicmip - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate3.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_grate4 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm nonsolid //Tim's fuckage - cull none - nopicmip - - // A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_grate4.tga - //tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/proto_rustygrate2 -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - // A RUSTY GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/proto_rustygrate2.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/rusty_pentagrate -{ - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - - cull none - nopicmip - // A RUSTY and Eeevil grate THAT CAN BE SEEN FROM BOTH SIDES - { - map textures/base_floor/rusty_pentagrate.tga - // tcMod scale 2 2 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/skylight1 -{ - q3map_lightimage textures/base_floor/skylight1_lm.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/skylight1.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 2 0 7.7 - } - { - map textures/base_floor/skylight1_lm.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle .2 5 1 5.1 - } - -} - -textures/base_floor/skylight_spec -{ - { - rgbGen identity - map $lightmap - } - { - map textures/base_floor/skylight_spec.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_floor/techfloor -{ - surfaceparm metalsteps - - { - map textures/sfx/proto_zzztpink.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - //clampmap textures/gothic_block/blocks18cgeomtrn2.tga - clampmap textures/base_floor/techfloor2.tga - blendFunc blend - tcmod rotate 170 - tcMod stretch sin .8 0.2 0 .4 - rgbGen identity - } - { - map textures/base_floor/techfloor.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_floor/techfloor2 -{ - cull disable - //surfaceparm trans - surfaceparm nomarks - //nomipmaps - - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 70 - tcMod stretch sin .8 0.2 0 .3 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate -50 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/base_floor/techfloor2.tga - alphaFunc GE128 - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/base_floor/tilefloor7_ow -{ - q3map_lightimage textures/base_floor/tilefloor7_owfx.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - map textures/base_floor/tilefloor7_ow.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - } - { - map textures/base_floor/tilefloor7_owfx.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/base_floor2.shader b/install/installs/Q3Pack/install/missionpack/scripts/base_floor2.shader deleted file mode 100644 index a8108463..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/base_floor2.shader +++ /dev/null @@ -1,29 +0,0 @@ -textures/base_floor/concfloor_rain - - { - - tessSize 32 - deformVertexes normal 1 15 - - { - map textures/base_floor/concfloor_rain.tga - rgbGen identity - } - { - map textures/liquids/pj_e3_reflection2b.tga - Blendfunc add - tcgen environment - rgbgen wave sin .3 0 0 0 - tcmod scale 2 2 - tcMod scroll .5 .5 - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - - - } - - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/base_light.shader b/install/installs/Q3Pack/install/missionpack/scripts/base_light.shader deleted file mode 100644 index 07ade964..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/base_light.shader +++ /dev/null @@ -1,1683 +0,0 @@ -textures/base_light/baslt4_1_2k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 2000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/baslt4_1_4k -{ - qer_editorimage textures/base_light/baslt4_1.tga - surfaceparm nomarks - q3map_surfacelight 4000 - //light 1 - - // New Fluorescent light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/baslt4_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/baslt4_1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light -{ - q3map_surfacelight 500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border11light_300 -{ - qer_editorimage textures/base_light/border11light.tga - q3map_lightimage textures/base_light/border11light.blend.tga - - q3map_surfacelight 235 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border11light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border11light.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/border7_ceil50 -{ - qer_editorimage textures/base_light/border7_ceil50.tga - q3map_surfacelight 100 - // Square dirty white llight - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/border7_ceil50.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/border7_ceil50glow.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_22a.tga - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_22a_trans -{ - qer_editorimage textures/base_light/ceil1_22a.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_22a.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_22a.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square rich blue light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_8k -{ - surfaceparm nomarks - qer_editorimage textures/base_light/ceil1_30.tga - q3map_surfacelight 8000 -// light 1 - // Square rich blue light (8k light wattage - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_30_trans -{ - qer_editorimage textures/base_light/ceil1_30.tga - surfaceparm nomarks - surfaceparm nonsolid - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_30.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_30.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34 -{ - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_10k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 10000 -// light 1 - // Square tourquoise light - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_1k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_2k -{ - qer_editorimage textures/base_light/ceil1_34.tga - q3map_lightimage textures/base_light/ceil1_34.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_34_5k -{ - qer_editorimage textures/base_light/ceil1_34.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_34.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_34.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_37 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_37.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_37.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38 -{ - surfaceparm nomarks - q3map_surfacelight 2500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_10k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_20k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_30k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_40k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_50k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_70k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_38_90k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_39 -{ - surfaceparm nomarks - q3map_surfacelight 7500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil1_4 -{ - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_4.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_4.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/ceil_white5k -{ - qer_editorimage textures/base_light/ceil1_38.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_38.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_38.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/cornerlight -{ - q3map_lightimage textures/base_light/cornerlight.glow.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/cornerlight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/cornerlight.glow.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } -} - -textures/base_light/geolight -{ - q3map_lightimage textures/base_light/geolight_glow.tga - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/geolight.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - { - map textures/base_light/geolight_glow.tga - blendFunc add - rgbgen wave sin .575 .025 0 10 - } - -} - -textures/base_light/jaildr03_1 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_1.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/jaildr03_2 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr03_2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr03_2.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } - -} - -textures/base_light/jaildr1_3 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr1_3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/jaildr1_3.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_1500 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_3000 -{ - qer_editorimage textures/base_light/light1.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - //rgbGen wave sin 0.5 0.5 0 3 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light1_5000 -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_1500 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_2000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_5000 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1blue_800 -{ - qer_editorimage textures/base_light/light1blue.tga - q3map_lightimage textures/base_light/light1blue.blend.tga - surfaceparm nomarks - q3map_surfacelight 800 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1blue.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1blue.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1dark -{ - qer_editorimage textures/base_light/light1.tga - q3map_lightimage textures/base_light/light1.blend.tga - surfaceparm nomarks - q3map_surfacelight 6000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_2000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light1red_5000 -{ - qer_editorimage textures/base_light/light1red.tga - q3map_lightimage textures/base_light/light1red.blend.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light1red.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light1red.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_10k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/xlight5.blend.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_15k -{ - qer_editorimage textures/base_light/light5.tga - q3map_lightimage textures/base_light/light5.blend.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light5.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_3000 -{ - qer_editorimage textures/base_light/light5.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 3000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/xlight5.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/xlight5.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/light5_5k -{ - qer_editorimage textures/base_light/light5.tga - //light 1 - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 5000 - { - map textures/base_light/light5.tga - rgbGen identity - } -} - -textures/base_light/lt2_2000 -{ - qer_editorimage textures/base_light/light2.tga -// light 1 - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin 0.6 0.1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_4000 -{ - qer_editorimage textures/base_light/light2.tga - //light 1 - surfaceparm nomarks - q3map_surfacelight 4000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/lt2_8000 -{ - qer_editorimage textures/base_light/light2.tga - surfaceparm nomarks - q3map_surfacelight 8000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/light2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/light2.blend.tga - rgbGen wave sin .6 .1 .1 .1 - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite -{ - q3map_surfacelight 2500 - surfaceparm nomarks -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2 -{ - q3map_surfacelight 2000 - surfaceparm nomarks - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/patch10_pj_lite2_1000 -{ - qer_editorimage textures/base_light/patch10_pj_lite2.tga - q3map_surfacelight 1000 - surfaceparm nomarks - //light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/patch10_pj_lite2.blend.tga - blendFunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1K -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - // Square dirty white - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/pjceil1_39_1p5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 1500 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/proto_light -{ - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_light_2k -{ - qer_editorimage textures/base_light/proto_light.tga - q3map_lightimage textures/base_light/proto_lightmap.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/proto_lightred -{ - q3map_lightimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 300 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - } - -} - -textures/base_light/proto_lightred2 -{ - q3map_lightimage textures/base_light/proto_lightred.tga - qer_editorimage textures/base_light/proto_lightred.tga - surfaceparm nomarks - q3map_surfacelight 1000 -// light 1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc filter - rgbGen identity - } - { - map textures/base_light/proto_lightred.tga - blendFunc add - rgbGen wave square .5 .5 0 1 - } - -} - -textures/base_light/runway -{ - q3map_lightimage textures/base_light/runway_glow.tga - surfaceparm nomarks - q3map_surfacelight 400 - { - map textures/base_light/runway_glow.tga - tcmod scale 1 .25 - rgbgen wave square -1 2 .5 8 - tcmod scroll 0 .5 - } - - { - map textures/base_light/runway.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/base_light/runwayb.tga - blendFunc add - rgbGen identity - } - - -} - -textures/base_light/s_proto_light -{ - q3map_lightimage textures/base_light/s_proto_lightmap.tga - qer_editorimage textures/base_light/proto_light.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/proto_light.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/proto_lightmap.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 1 .1 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - rgbgen wave triangle 1 5 1 3 - } - { - map textures/base_light/proto_light2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 -1 - rgbgen wave triangle 1 2 0 7 - } -} - -textures/base_light/scrolllight -{ - q3map_lightimage textures/sfx/scrolllight2.tga - q3map_surfacelight 100 - - { - map $lightmap - rgbGen identity - } - { - Map textures/base_light/scrolllight.tga - blendfunc gl_dst_color gl_zero - rgbGen identity - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -1 0 - } - { - Map textures/base_light/scrolllight2.tga - blendFunc GL_ONE GL_ONE - tcmod scroll -2 0 - } - - -} - -textures/base_light/trianglelight -{ - q3map_lightimage textures/base_light/trianglelight.blend.tga - surfaceparm nomarks - q3map_surfacelight 2500 - { - map textures/base_light/trianglelight.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_light/trianglelight.blend.tga - blendfunc GL_one gl_one - rgbgen wave sawtooth .6 .1 0 7 - } - - -} - -textures/base_light/wsupprt1_12 -{ - surfaceparm nomarks - q3map_surfacelight 1000 - //light1 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/wsupprt1_12.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_1 -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_10k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 10000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_110k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 110000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_15k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 15000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_20k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 20000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_2k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 2000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_30k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_500k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 500000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_50k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 50000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_5k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 5000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_70k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 70000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_90k -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 90000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_a -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 30000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} - -textures/base_light/xceil1_39_b -{ - qer_editorimage textures/base_light/ceil1_39.tga - surfaceparm nomarks - q3map_surfacelight 40000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/ceil1_39.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_light/ceil1_39.blend.tga - blendfunc GL_ONE GL_ONE - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/base_wall.shader b/install/installs/Q3Pack/install/missionpack/scripts/base_wall.shader deleted file mode 100644 index 82730f68..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/base_wall.shader +++ /dev/null @@ -1,1406 +0,0 @@ - -textures/base_wall/atech1_alpha -{ - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atech1_alpha.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/atechengine_ax -{ - q3map_lightimage textures/base_wall/atechengine_ax2.tga - q3map_surfacelight 300 - { - map textures/sfx/proto_zzztpink.tga - tcmod rotate 60 - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/atechengine_ax.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/basewall01_ow -{ - q3map_lightimage textures/base_wall/basewall01_owfx.tga - - { - map $lightmap - rgbGen identity - } - { - map textures/base_wall/basewall01_ow.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/base_wall/basewall01_owfx.tga - blendfunc GL_ONE GL_ONE - rgbGen wave sin .5 0.5 0 .5 - } - -} - -textures/base_wall/basewall01bit -{ - q3map_lightimage textures/base_wall/basewall01bitfx.tga - q3map_surfacelight 300 - { - map textures/base_wall/basewall01bit.tga - rgbGen identity - } - - { - map textures/base_wall/basewall01bitfx.tga - blendfunc GL_ONE GL_ONE - tcmod scroll 3.3 1 - rgbGen wave sin .5 0.5 0 5 - } - { - map textures/effects/envmap2.tga - tcGen environment - tcmod scale 4 4 - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/base_wall/basewall01bit.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - -} - -textures/base_wall/bluemetal1b_chrome -{ - qer_editorimage textures/base_wall/bluemetal1b_shiny.tga - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetal1b_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal1b_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/bluemetal2_noisy -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm metalsteps - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetal2_shiny_trans -{ - qer_editorimage textures/base_wall/bluemetal2_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/bluemetal2_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/bluemetalsupport2 -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/bluemetalsupport2c -{ - - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2c_1vent -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2c_1vent.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2clight -{ - surfaceparm nomarks - q3map_surfacelight 500 - - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2clight.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2clight.glow.tga - blendFunc add - rgbgen wave sawtooth .6 .1 0 4 - } -} - -textures/base_wall/bluemetalsupport2d_1 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2d_1.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2e2 -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2e2.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2eye -{ - - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/bluemetalsupport2eyel.tga - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2eye.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - { - map textures/base_wall/bluemetalsupport2eyel.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } -} - -textures/base_wall/bluemetalsupport2f -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2f.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/bluemetalsupport2fline -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2fline_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2fline.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2fline_glow.tga - blendFunc add - rgbGen wave sin .5 .5 0 1 - } - - -} - -textures/base_wall/bluemetalsupport2ftv -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/bluemetalsupport2ftv_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/bluemetalsupport2ftv.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall/bluemetalsupport2ftv_glow.tga - blendFunc add - rgbGen wave sawtooth .4 .05 0 10 - } - - -} - -textures/base_wall/blumtlspt2b -{ - - q3map_surfacelight 100 - q3map_lightimage textures/base_wall/blumtlspt2bglow.tga - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/blumtlspt2b.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - map textures/base_wall/bluemetalsupport2bglow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 .2 - } -} - -textures/base_wall/c_met5_2_trans -{ - qer_editorimage textures/base_wall/c_met5_2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/base_wall/c_met5_2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/base_wall/chrome_metal -{ - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .25 - - } - - { - map textures/base_wall/chrome_metal.tga - blendFunc GL_ONE GL_ONE - detail - tcMod scale 0.0693 0.0712 - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - - } - - - -} - -textures/base_wall/comp3 -{ - q3map_lightimage textures/base_wall/comp3env.tga - qer_editorimage textures/base_wall/comp3_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3text.tga - rgbGen identity - tcmod scroll 3 1 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1000 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3b_dark -{ - q3map_lightimage textures/base_wall/comp3textb.tga - qer_editorimage textures/base_wall/comp3b_qer.tga - q3map_surfacelight 1 - { - map textures/base_wall/comp3textb.tga - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3env.tga - tcGen environment - blendFunc GL_ONE GL_ONE - rgbGen wave sin .98 .02 0 5 - } - - { - map $lightmap - tcGen environment - blendFunc GL_DST_COLOR GL_ONE - } - - - { - map textures/base_wall/comp3b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/comp3c -{ - qer_editorimage textures/base_wall/comp3c_qer.tga - - { - map textures/base_wall/comp3env.tga - rgbGen identity - tcGen environment - } - - { - map $lightmap - tcGen environment - blendFunc GL_ONE GL_ONE - } - - { - map textures/base_wall/comp3c.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - -} - -textures/base_wall/concrete_ow -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/concrete_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/dooreye -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye2 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye2.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/dooreye3 -{ - surfaceparm nomarks - q3map_surfacelight 300 - q3map_lightimage textures/base_wall/dooreyelight.tga - - - { - map $lightmap - rgbGen identity - } - - { - map textures/base_wall/dooreye3.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/base_wall/dooreyelight.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .5 .5 0 .5 - } - - -} - -textures/base_wall/girders1i_yellofin -{ - qer_editorimage textures/base_wall/girders1i_yellodark_fin.tga - surfaceparm metalsteps - surfaceparm trans - surfaceparm alphashadow - surfaceparm playerclip - surfaceparm nonsolid - surfaceparm nomarks - cull none - nopicmip - { - map textures/base_wall/girders1i_yellodark_fin.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/base_wall/glass01 -{ - qer_editorimage textures/base_wall/shiny3.tga - surfaceparm trans - cull none - qer_trans 0.5 - - { - map textures/effects/tinfx.tga - tcgen environment - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/glass_frame -{ - cull none - surfaceparm alphashadow - - { - map textures/effects/tinfx2.tga - blendFunc GL_ONE GL_ONE - tcgen environment - rgbGen identity - } - { - map textures/base_wall/glass_frame.tga - alphaFunc GE128 - depthWrite - //rgbGen vertex - //blendfunc blend - } - { - map $lightmap - rgbGen identity - blendFunc filter - } - -} - -textures/base_wall/grill -{ - - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall/grill.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } -} - -textures/base_wall/main_q3abanner -{ - q3map_lightimage textures/base_wall/main_q3abanner.tga - q3map_surfacelight 100 - - - { - map textures/base_wall/main_q3abanner.tga - rgbGen wave square 0 1 0 .5 - } - - { - map textures/base_wall/comp3text.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - { - map textures/base_wall/comp3textb.tga - blendfunc add - rgbGen identity - tcmod scroll 3 3 - } - - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map $lightmap - tcgen environment - tcmod scale .5 .5 - rgbGen wave sin .25 0 0 0 - blendfunc add - } -} - -textures/base_wall/medal_impressive -{ - qer_editorimage textures/base_wall/medal_impressive.tga - q3map_surfacelight 100 - - - { - animMap .25 textures/base_wall/medal_impressive.tga textures/base_wall/medal_gauntlet.tga textures/base_wall/medal_excellent.tga textures/base_wall/medal_accuracy.tga textures/base_wall/medal_victory.tga textures/base_wall/medal_frags.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - tcmod scroll 5 .25 - rgbGen wave inversesawtooth 0 1 0 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - -} - -textures/base_wall/metalfloor_wall_14_specular -{ - qer_editorimage textures/base_wall/metalfloor_wall_14_specular.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/metalfloor_wall_14_specular.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/base_wall/metalfloor_wall_15ow -{ - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - - { - map textures/sfx/hologirl.tga - tcmod scale 2 .4 - tcmod scroll 6 .6 - //tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ONE - rgbGen identity - - } - { - map textures/base_wall/metalfloor_wall_15ow.tga - blendfunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - //blendfunc dst_color gl_zero - } - -} - -textures/base_wall/metaltechgeomtrn -{ - - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/base_wall/patch10shiny -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/patch10shiny_trans -{ - qer_editorimage textures/base_wall/patch10_beatup4_alpha.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/patch10_beatup4_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/protobanner -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - deformVertexes wave 30 sin 0 3 0 .2 - deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_ow -{ - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - deformVertexes wave 100 sin 0 1 0 .1 - deformVertexes wave 100 sin 0 1 0 .2 - - { - map textures/base_wall/protobanner_ow.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/protobanner_still -{ - qer_editorimage textures/base_wall/protobanner.tga - cull disable - surfaceparm alphashadow - surfaceparm trans - surfaceparm nomarks - tessSize 64 - //deformVertexes wave 30 sin 0 3 0 .2 - //deformVertexes wave 100 sin 0 3 0 .7 - - { - map textures/base_wall/protobanner.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } - { - map $lightmap - rgbGen identity - blendFunc filter - depthFunc equal - } - - -} - -textures/base_wall/q3tourneyscreen -{ - qer_editorimage textures/base_wall/q3tourney1.tga - q3map_surfacelight 100 - - - - { - animMap .25 textures/base_wall/q3tourney1.tga textures/base_wall/q3tourney2.tga textures/base_wall/q3tourney3.tga textures/base_wall/q3tourney4.tga textures/base_wall/q3tourney5.tga - rgbGen wave sawtooth 0 1 0 .25 - - } - - { - map textures/base_wall/comp3textd.tga - blendfunc add - rgbGen wave inversesawtooth 0 1 0 .25 - tcmod scroll 5 .25 - } - - { - map textures/base_wall/chrome_env.tga - tcgen environment - tcmod scale .5 .5 - blendfunc add - rgbgen wave triangle .5 .05 0 10 - } - - { - map textures/base_wall/comp3frame.tga - blendfunc blend - rgbgen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - -} - -textures/base_wall/shinybluemetal1 -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/shinybluemetal1.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/shinygrate1_4 -{ - - { - map $lightmap - tcgen environment - tcmod scale .25 .25 - rgbgen identity - } - - - { - map textures/base_wall/shinygrate1_4.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - - -} - -textures/base_wall/steed1gf -{ - { - map $lightmap - rgbgen identity - } - - { - map textures/base_wall/steed1gf.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/base_wall/symbol_bluelt1 -{ - q3map_lightimage textures/base_wall/symbol_bluelt1_mask.tga - q3map_surfacelight 100 -// light 1 - - { - map $lightmap - rgbGen identity - } - - - { - map textures/base_wall/symbol_bluelt1.tga - blendfunc filter - rgbgen identity - } - - { - map textures/base_wall/symbol_bluelt1_mask.tga - blendfunc add - rgbgen wave sawtooth .2 .05 0 7 - } -} - -textures/base_wall/train1 -{ - - { - map textures/base_wall/chrome_env.tga - tcGen environment - tcmod scale .25 .1 - rgbGen identity - } - - - { - map textures/base_wall/train1.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - rgbGen identity - } - - { - map $lightmap - rgbgen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/base_wall2.shader b/install/installs/Q3Pack/install/missionpack/scripts/base_wall2.shader deleted file mode 100644 index 93308923..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/base_wall2.shader +++ /dev/null @@ -1,860 +0,0 @@ -textures/base_wall2/blue_warning_light -{ - - qer_editorimage textures/proto2/bluelight_off.tga - - { - map textures/proto2/bluelight_off.tga - rgbgen identity - } - - { - map $lightmap - blendfunc filter - rgbGen identity - } - -} - - - -textures/base_wall2/ntrl_techfloor_kc -{ - surfaceparm metalsteps - surfaceparm alphashadow - surfaceparm nomarks - qer_editorimage textures/base_wall2/techfloor_kc.tga - - { - clampmap textures/base_wall2/zzztntrl_kc.tga - alphaFunc GE128 - tcmod rotate 360 - rgbgen wave sin .8 .2 0 2 - depthWrite - } - { - clampmap textures/base_wall2/techfloor2_kc.tga - blendFunc blend - tcmod rotate 180 - depthFunc equal - tcMod stretch sin .8 0.1 0 .4 - rgbGen identity - } - - { - map textures/base_wall2/techfloor_kc.tga - blendFunc blend - depthFunc equal - rgbGen identity - } - - { - map $lightmap - blendfunc filter - depthFunc equal - rgbgen identity - } - { - map textures/base_wall2/techfloor_kc_shadow.tga - blendfunc filter - rgbGen identity - } - - -} -textures/base_wall2/respawn_effect1_ntrl -{ - cull disable - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - qer_editorimage textures/base_wall2/ntrl_1_kc.tga - { - map textures/base_wall2/ntrl_1_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbgen wave sin .25 .25 0 .25 - tcmod scroll .5 0 - } - { - map textures/base_wall2/ntrl_2_kc.tga - blendFunc add - rgbgen wave sin .25 .25 .25 .25 - tcmod scale 1 -1 - tcmod scroll -.5 0 - } - - - { - map textures/base_wall2/ntrl_3_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbGen wave inversesawtooth -.3 1.3 0 .25 - } - - -} - -textures/base_wall2/blue_metal -{ - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/blue_metal.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} -textures/base_wall2/scuffs1 -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/base_wall2/scuffs1.tga - blendfunc filter - rgbGen identity - } -} - -textures/base_wall2/space_panel -{ - - qer_editorimage textures/base_wall2/space_panel_alt2.tga - { - map textures/base_wall2/space_panel_alt.tga - rgbgen identity - tcmod scale .5 .5 - } - - { - map textures/base_wall2/space_panel_alt.tga - blendFunc filter - rgbgen wave sin .5 0 0 0 - } - - - { - map textures/base_wall2/lensflare.tga - blendFunc add - tcgen environment - } - - - { - map $lightmap - rgbGen identity - blendfunc filter - } -} - - - - -textures/base_wall2/space_concrete -{ - qer_editorimage textures/base_wall2/space_panel_alt.tga - - { - map textures/base_wall/concrete1.tga - rgbgen identity - } - - { - map textures/base_wall2/space_panel_alt.tga - blendFunc filter - tcmod scale .25 .25 - } - - - { - map textures/base_wall2/space_panel_alt2.tga - blendFunc filter - tcmod scale .25 .1 - } - { - map textures/base_wall2/lensflare.tga - blendFunc add - rgbgen wave sin .5 0 0 0 - tcgen environment - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } -} - - -textures/base_wall2/jumppad_red_kc -{ - surfaceparm trans - surfaceparm nomarks - { - map textures/base_wall2/jumppad_red_kc.tga - alphafunc GE128 - depthwrite - rgbGen identity - } - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - depthfunc equal - tcmod rotate 130 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - depthfunc equal - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - depthfunc equal - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - depthfunc equal - rgbGen identity - } - { - map $lightmap - blendFunc filter - depthfunc equal - rgbGen identity - } - - { - map textures/base_wall2/jumppad_shadow.tga - blendfunc filter - rgbGen identity - } - -} - -textures/base_wall2/jumppad_blue_kc -{ - surfaceparm trans - surfaceparm nomarks - { - map textures/base_wall2/jumppad_blue_kc.tga - alphafunc GE128 - depthwrite - rgbGen identity - } - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - depthfunc equal - tcmod rotate 130 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - depthfunc equal - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - depthfunc equal - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - depthfunc equal - rgbGen identity - } - { - map $lightmap - blendFunc filter - depthfunc equal - rgbGen identity - } - - { - map textures/base_wall2/jumppad_shadow.tga - blendfunc filter - rgbGen identity - } - -} - -textures/base_wall2/jumppad_ntrl_kc -{ - qer_editorimage textures/base_wall2/jumppad_blue_kc.tga - surfaceparm trans - surfaceparm nomarks - { - map textures/base_wall2/jumppad_blue_kc.tga - alphafunc GE128 - depthwrite - rgbGen identity - } - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - depthfunc equal - tcmod rotate 130 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - depthfunc equal - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - depthfunc equal - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - depthfunc equal - rgbGen identity - } - { - map $lightmap - blendFunc filter - depthfunc equal - rgbGen identity - } - - { - map textures/base_wall2/jumppad_shadow.tga - blendfunc filter - rgbGen identity - } - -} - - -textures/base_wall2/respawn_effect1 -{ - cull disable - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - qer_editorimage textures/base_wall2/redjet_1_kc.tga - { - map textures/base_wall2/redjet_1_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbgen wave sin .25 .25 0 .25 - tcmod scroll .5 0 - } - { - map textures/base_wall2/redjet_2_kc.tga - blendFunc add - rgbgen wave sin .25 .25 .25 .25 - tcmod scale 1 -1 - tcmod scroll -.5 0 - } - - - { - map textures/base_wall2/redjet_3_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbGen wave inversesawtooth -.3 1.3 0 .25 - } - - - - - - -} - -textures/base_wall2/respawn_effect1_blue -{ - cull disable - surfaceparm trans - surfaceparm nonsolid - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - qer_editorimage textures/base_wall2/bluejet_1_kc.tga - { - map textures/base_wall2/bluejet_1_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbgen wave sin .25 .25 0 .25 - tcmod scroll .5 0 - } - { - map textures/base_wall2/bluejet_2_kc.tga - blendFunc add - rgbgen wave sin .25 .25 .25 .25 - tcmod scale 1 -1 - tcmod scroll -.5 0 - } - - - { - map textures/base_wall2/bluejet_3_kc.tga - blendFunc add - tcmod scale 1 -1 - rgbGen wave inversesawtooth -.3 1.3 0 .25 - } - - -} - -textures/base_wall2/red_metal -{ - - { - map textures/base_wall/chrome_env2.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/red_metal.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } -} - -textures/base_wall2/blue_line -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/blue_line_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/blue_line.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/blue_line_glow.tga - blendFunc add - // rgbGen wave sin .5 .5 0 1 - } - - -} - -textures/base_wall2/red_line -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/red_line_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/red_line.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/red_line_glow.tga - blendFunc add - // rgbGen wave sin .5 .5 0 1 - } -} - - -textures/base_wall2/double_line_blue -{ - - surfaceparm trans - surfaceparm nomipmap - surfaceparm nolightmap - - { - map textures/base_wall2/double_line_blue.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - -} - -textures/base_wall2/double_line_red -{ - - surfaceparm trans - surfaceparm nomipmap - surfaceparm nolightmap - - { - map textures/base_wall2/double_line_red.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - -} - -textures/base_wall2/techfloor_kc_blue -{ - qer_editorimage textures/base_wall2/zzztblue_kc.tga.tga - surfaceparm metalsteps - surfaceparm alphashadow - surfaceparm nomarks - - { - clampmap textures/base_wall2/zzztblue_kc.tga - alphaFunc GE128 - tcmod rotate 360 - rgbgen wave sin .8 .2 0 2 - depthWrite - } - { - clampmap textures/base_wall2/techfloor2_kc.tga - blendFunc blend - tcmod rotate 180 - depthFunc equal - tcMod stretch sin .8 0.1 0 .4 - rgbGen identity - } - - { - map textures/base_wall2/techfloor_kc.tga - blendFunc blend - depthFunc equal - rgbGen identity - } - - { - map $lightmap - blendfunc filter - depthFunc equal - rgbgen identity - } - { - map textures/base_wall2/techfloor_kc_shadow.tga - blendfunc filter - rgbGen identity - } - - -} - - -textures/base_wall2/techfloor_kc -{ - surfaceparm metalsteps - surfaceparm alphashadow - surfaceparm nomarks - - { - clampmap textures/base_wall2/zzztred_kc.tga - alphaFunc GE128 - tcmod rotate 360 - rgbgen wave sin .8 .2 0 2 - depthWrite - } - { - clampmap textures/base_wall2/techfloor2_kc.tga - blendFunc blend - tcmod rotate 180 - depthFunc equal - tcMod stretch sin .8 0.1 0 .4 - rgbGen identity - } - - { - map textures/base_wall2/techfloor_kc.tga - blendFunc blend - depthFunc equal - rgbGen identity - } - - { - map $lightmap - blendfunc filter - depthFunc equal - rgbgen identity - } - { - map textures/base_wall2/techfloor_kc_shadow.tga - blendfunc filter - rgbGen identity - } - - -} - -textures/base_wall2/blue_arrow_small -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/blue_arrow_small.tga - blendfunc blend - rgbGen identity - - } - - -} -textures/base_wall2/red_arrow_small -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/red_arrow_small.tga - blendfunc blend - rgbGen identity - - } - - -} - -textures/base_wall2/yellow_circle -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/yellow_circle.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - - -} - -textures/base_wall2/red_circle -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/red_circle.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - - -} - -textures/base_wall2/blue_circle -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/blue_circle.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - rgbGen identity - - } - - -} - - -textures/base_wall2/name_vortex -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/base_wall2/name_vortex.tga - blendfunc blend - rgbGen identity - } - -} - - -textures/base_wall2/bluearrows -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/bluearrows.tga - blendfunc add - rgbGen identity - - } - - -} - -textures/base_wall2/redarrows -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - - { - map textures/base_wall2/redarrows.tga - blendfunc add - rgbGen identity - - } - - -} - -textures/base_wall2/red_solid -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/red_solid.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/red_solid.tga - blendFunc filter - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/red_solid.tga - blendFunc add - rgbGen wave sin .25 .25 0 1 - } - - -} - -textures/base_wall2/blue_solid -{ - q3map_surfacelight 100 - q3map_lightimage textures/base_wall2/blue_solid.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/base_wall2/blue_solid.tga - blendFunc filter - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/base_wall2/blue_solid.tga - blendFunc add - rgbGen wave sin .25 .25 0 1 - } - - -} - - - - - - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/common.shader b/install/installs/Q3Pack/install/missionpack/scripts/common.shader deleted file mode 100644 index 30320886..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/common.shader +++ /dev/null @@ -1,429 +0,0 @@ -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nodraw -} - -textures/common/invisible -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/teleporter -{ - surfaceparm nolightmap - surfaceparm noimpact - q3map_lightimage textures/sfx/powerupshit.tga - q3map_surfacelight 800 - { - map textures/sfx/powerupshit.tga - tcGen environment -// tcMod scale 5 5 - tcMod turb 0 0.015 0 0.3 - } -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm trans - surfaceparm nonsolid - surfaceparm nomarks - surfaceparm nodrop - surfaceparm nolightmap - surfaceparm nodraw - cull disable -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm trans - surfaceparm nomarks - surfaceparm nodraw -} - -textures/common/pwclip -{ - qer_trans 0.40 - surfaceparm trans - surfaceparm nomarks - surfaceparm nodraw - -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm nodraw - surfaceparm nonsolid - //surfaceparm nolightmap //proto_addition 11/08/99 - surfaceparm playerclip - surfaceparm noimpact -} - -textures/common/full_clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -//***************************************** -//** I've reduced the transparency on most editor-only brushes here. -//** If the transparent textures are still too pale for -//** things like clip, hint, trigger, etc., -//** Please make an editorimage to suit your needs. -//****************************************** - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nodamage - surfaceparm trans -} - -textures/common/hint -{ -qer_nocarve -qer_trans 0.30 -surfaceparm nodraw -surfaceparm nonsolid -surfaceparm structural -surfaceparm trans -surfaceparm noimpact -surfaceparm hint -} - -textures/common/skip -{ -qer_nocarve -qer_trans 0.40 -surfaceparm nodraw -surfaceparm nonsolid -surfaceparm structural -surfaceparm trans -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm origin -} - -textures/common/noimpact -{ - surfaceparm noimpact -} - -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -//bot specific cluster portal -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm detail - surfaceparm clusterportal -} - -//bot specific "do not enter" brush -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm detail - surfaceparm donotenter -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } - -} -textures/common/energypad -{ - qer_editorimage textures/common/bluegoal.tga - surfaceparm nolightmap - cull twosided - { - map textures/common/bluegoal.tga - blendFunc GL_ONE GL_SRC_ALPHA - tcGen environment - tcMod turb 0 0.25 0 0.05 - } -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga -// map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 -// blendFunc GL_ONE GL_SRC_ALPHA - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - - } -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/sfx/portal_sfx -{ - - // ************************************************* - // * Portal Inside Effect * - // * April 29 * - // * Please Comment Changes * - // ************************************************* - - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - // This blend function is not working on RagePro drivers Mac only - // when it is used on top of portals - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphagen portal 256 - rgbGen identityLighting - tcmod turb sin 0 .5 0 1 - tcmod rotate .1 .1 - tcmod scroll .01 .03 - } -} -textures/sfx/portal2_sfx -{ - - // ************************************************* - // * Portal Inside Effect * - // * April 29 * - // * Please Comment Changes * - // ************************************************* - - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - // This blend function is not working on RagePro drivers Mac only - // when it is used on top of portals - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphagen portal 128 - rgbGen identityLighting - tcmod turb sin 0 .5 0 1 - tcmod rotate .1 .1 - tcmod scroll .01 .03 - } -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/ctf.shader b/install/installs/Q3Pack/install/missionpack/scripts/ctf.shader deleted file mode 100644 index 6a280383..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/ctf.shader +++ /dev/null @@ -1,577 +0,0 @@ - -textures/ctf/blue_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - sort additive - - { - - clampmap textures/ctf/blue_telep.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/blue_telep2.tga - blendFunc add - //depthWrite - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - depthWrite - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/ctf_arch_b_shiny -{ - qer_editorimage textures/ctf/ctf_arch_b.tga - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_b.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_arch_r_shiny -{ - qer_editorimage textures/ctf/ctf_arch_r.tga - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/sfx/specular.tga - blendFunc GL_ONE GL_ONE - tcGen environment - tcmod scale 10 10 - rgbGen identity - } - { - map textures/ctf/ctf_arch_r.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - -} - -textures/ctf/ctf_blueflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .5 .1 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_blueflag.tga - rgbGen identity - } - { - map textures/effects/redflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_blueflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_redflag -{ - tessSize 64 - deformVertexes wave 194 sin 0 3 0 .4 - deformVertexes normal .3 .2 - surfaceparm nomarks - cull none - - { - map textures/ctf/ctf_redflag.tga - rgbGen identity - } - { - map textures/effects/blueflagmap.tga - tcGen environment - tcmod scale 9 3 - tcmod scroll .1 .7 - - blendFunc GL_ONE GL_ONE - rgbGen identity - } - { - map textures/ctf/ctf_redflag.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - - map textures/sfx/shadow.tga - tcGen environment - //blendFunc GL_ONE GL_ONE - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/ctf/ctf_tower_bluefin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_bluefin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_bluefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/ctf_tower_redfin_shiny -{ -qer_editorimage textures/ctf/ctf_tower_redfin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/ctf_tower_redfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/killblockctf_b -{ - qer_editorimage textures/gothic_block/killblockgeomtrn.tga - - { - map textures/sfx/fire_ctfblue.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/killblockgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/killblockctf_r -{ - qer_editorimage textures/gothic_block/blocks15cgeomtrn.tga - - { - map textures/sfx/fire_ctfred.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - //blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/gothic_block/blocks15cgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/ctf/metalbase09_bluekillblock_shiny -{ -qer_editorimage textures/ctf/metalbase09_bluekillblock.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/metalbase09_bluekillblock.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_cfin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_cfin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_csansfacefin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_csansfacefin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_scary4_d3fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/red_scary4_d3fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/red_telep -{ - cull disable - surfaceparm nomarks - surfaceparm trans - - { - - clampmap textures/ctf/red_telep.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .5 - tcmod rotate 327 - rgbGen identity - } - { - clampmap textures/ctf/red_telep2.tga - blendFunc add - //tcMod stretch sin .9 0.1 0 .1 - tcmod rotate -211 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcmod rotate 20 - rgbGen identity - } - { - clampmap textures/ctf/telep.tga - alphaFunc GE128 - tcMod stretch sin .7 0 0 0 - tcmod rotate -20 - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - - -} - -textures/ctf/tallblue_1L_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1L_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1L_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_1R_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_1R_fin.tga - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_1R_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_2b_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_2b_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4bsmall_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4bsmall_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_4c_fin_shiny -{ -qer_editorimage textures/ctf/tallblue_4c_fin.tga - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_4c_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/tallblue_5esmallb_fin -{ - - { - map $lightmap - rgbGen identity - } - - - { - map textures/ctf/tallblue_5esmallb_fin.tga - blendFunc GL_dst_color GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } - -} - -textures/ctf/test2_r_trans -{ - qer_editorimage textures/ctf/test2_r.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/ctf/test2_r.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/ctf/test2_trans -{ - qer_editorimage textures/ctf/test2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/ctf/test2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/ctf2.shader b/install/installs/Q3Pack/install/missionpack/scripts/ctf2.shader deleted file mode 100644 index d15e6d5e..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/ctf2.shader +++ /dev/null @@ -1,343 +0,0 @@ -textures/ctf2/test2_trans_vert -{ - qer_editorimage textures/ctf/test2.tga - surfaceparm nonsolid - surfaceparm pointlight - - { - map textures/ctf/test2.tga - rgbGen vertex - } -} - -textures/ctf2/test2_r_trans_vert -{ - qer_editorimage textures/ctf/test2_r.tga - surfaceparm nonsolid - surfaceparm pointlight - { - map textures/ctf/test2_r.tga - rgbGen vertex - } -} - -textures/ctf2/redteam02 -{ - qer_editorimage textures/ctf2/redteam01.tga - cull none - surfaceparm alphashadow - surfaceparm nomarks - { - map textures/ctf2/redteam01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} -textures/ctf2/blueteam02 -{ - qer_editorimage textures/ctf2/blueteam01.tga - cull none - surfaceparm alphashadow - surfaceparm nomarks - { - map textures/ctf2/blueteam01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} -textures/ctf2/redteam01 -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/redteam01.tga - blendFunc Add - //rgbgen wave triangle 0.2 0.5 0 0.2 - rgbGen wave sin 1 .5 0 .2 - - } - -} - -textures/ctf2/xredteam01x -// Non Flashy version -{ - qer_editorimage textures/ctf2/redteam01.tga - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/redteam01.tga - blendFunc Add - rgbgen identity - - } - -} - - -textures/ctf2/xblueteam01 -// non flashy version -{ - qer_editorimage textures/ctf2/blueteam01.tga - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/blueteam01.tga - blendFunc Add - rgbgen identity - } - -} - - -textures/ctf2/blueteam01 -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map textures/ctf2/blueteam01.tga - blendFunc Add - //rgbgen wave triangle 0.2 0.5 0 0.2 - rgbGen wave sin 1 .8 0 .2 - - } - -} - - -textures/ctf2/red_banner02 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/red_banner02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/ctf2/blue_banner02 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/blue_banner02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} -textures/ctf2/tin_redpanel -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/tin_panel.tga - - { - map textures/effects/envmapred.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/tin_panel.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/ctf2/tin_blupanel -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/tin_panel.tga - - { - map textures/effects/envmapblue.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/tin_panel.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/ctf2/blue_banner01 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/blue_banner01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - { - map textures/ctf2/b_dummy.tga - blendFunc Add - rgbGen wave sin 1 .5 0 .5 - - } - -} -textures/ctf2/blue_techsign01 -{ - surfaceparm alphashadow - cull none - - { - map textures/ctf2/blue_techsign01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - { - map textures/ctf2/b_dummy.tga - blendFunc Add - rgbGen wave sin 1 .5 0 .5 - - } - -} - -textures/ctf2/pj_baseboardr -{ - //q3map_lightimage textures/ctf2/pj_baseboardr_l.tga - //q3map_surfacelight 300 - - { - map textures/ctf2/pj_baseboardr.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/ctf2/pj_baseboardr_l.tga - blendFunc add - rgbGen wave sin .9 .5 0 .1 - } - -} -textures/ctf2/pj_baseboardb -{ - //q3map_lightimage textures/ctf2/pj_baseboardb_l.tga - //q3map_surfacelight 300 - - { - map textures/ctf2/pj_baseboardb.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/ctf2/pj_baseboardb_l.tga - blendFunc add - rgbGen wave sin .9 .5 0 .1 - } - -} - -textures/ctf2/jaildr_bluescroll -{ - qer_editorimage textures/ctf2/jaildr_blue.tga - q3map_lightimage textures/ctf2/jaildr_blue.tga - surfaceparm nomarks - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/ctf2/jaildr_blue.tga - blendFunc GL_DST_COLOR GL_ZERO - tcMod scroll 0 -.25 - rgbGen identity - } - { - map textures/ctf2/jaildr_blue.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - tcMod scroll 0 -.25 - blendfunc GL_ONE GL_ONE - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/default_shaderlist.txt b/install/installs/Q3Pack/install/missionpack/scripts/default_shaderlist.txt deleted file mode 100644 index eb4da10f..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/default_shaderlist.txt +++ /dev/null @@ -1,23 +0,0 @@ -base_floor -base_floor2 -base_light -base_wall -base_wall2 -common -ctf -ctf2 -gothic_trim -gothic_wall -liquids -liquids2 -museum -outdoors -proto2 -sfx -sfx2 -skies -skies2 -stone2 -terrain -tim -team diff --git a/install/installs/Q3Pack/install/missionpack/scripts/entities-ta.def b/install/installs/Q3Pack/install/missionpack/scripts/entities-ta.def deleted file mode 100644 index a5eee7af..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/entities-ta.def +++ /dev/null @@ -1,374 +0,0 @@ -//INSTRUCTIONS -//This document contains the editor descriptions for all the new entities in -//use in Quake III: Team Arena. -// -//===================================================================== -/*QUAKED ammo_nails (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Nailgun ammo. Gives the player 25 by default. --------- KEYS -------- -wait : value is the time in seconds before the item respawns after being picked up (default 40, -1 = never respawn). -random : a random time variance in seconds is added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : the valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/nailgunam.md3"*/ - -//===================================================================== - -/*QUAKED ammo_mines (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Prox Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). Any teamed item with the same value will be part of this team. -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/proxmineam.md3"*/ - -//=========================================================================== - -/*QUAKED ammo_belt (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Chaingun ammo. Gives the player 100 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/chaingunam.md3"*/ - -//=========================================================================== - -HOLDABLE_* ENTITIES - -//=========================================================================== - -/*QUAKED holdable_kamikaze (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -One use kamikaze item that can be picked up and used later. Does an initial wave of shock damage, knockback, then 200 damage to everything in a 256 radius. It kills the using player when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/kamikazi.md3"*/ - -/*QUAKED holdable_invulnerability (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Invulnerability. Creates an energy shield that protects the player against all weapons except proximity mines. Effect lasts XX seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/invulnerability.md3"*/ - -//=========================================================================== - -PERSISTANT POWERUPS (instant use, last until death) - -//=========================================================================== - -/*QUAKED item_scout (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Scout power-up. Player moves at 2/3 haste speed. Increases rate of fire. Lasts until death. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/scout.md3"*/ - -//=========================================================================== - -/*QUAKED item_guard (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Guard power-up. Gives player 200 regenerating health and 200 armor (without decay over time). Lasts until death. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/guard.md3"*/ - -//=========================================================================== - -/*QUAKED item_doubler (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Doubler power-up. Doubles the damage of player's weapons. Lasts until death. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/doubler.md3"*/ - -//=========================================================================== - -/*QUAKED item_ammoregen (0.3 0.3 1) (-16 -16 -16) (16 16 16) SUSPENDED REDTEAM BLUETEAM -Ammo Regen power-up. Slowly regenerates ammo count for all weapons currently possessed by the player. --------- KEYS -------- -gametype : the values for this key determine which gametype the entity appears in. They are tournament, ffa, single, teamdm, oneflag, obelisk, harvester -wait : time in seconds before item respawns after being picked up (default 0, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. -REDTEAM: only player on the red team may pick up this item -BLUETEAM: only player on the blue team may pick up this item --------- NOTES -------- -These team entities are intended to respawn instantly. The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo.md3"*/ - -//=========================================================================== -TEAM ARENA TEAMPLAY ENTITIES [NEW] - -//============================================================================= - -/*QUAKED team_CTF_neutralflag (1 .2 1) (-16 -16 -24) (16 16 32) SUSPENDED -Neutral flag (One Flag CTF only). --------- KEYS -------- -angle : an angle facing needs to be set for this entity. This item has a specific facing. -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/n_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_redobelisk (1 .2 0) (-16 -16 0) (16 16 88) -Red team Obelisk. Used for Overload, CTF, Oneflag, and Harvester game types for various functions. Facing needs to be set. --------- KEYS -------- -angle : an angle facing needs to be set for this entity. This item has a specific facing. -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- NOTES -------- -Do not assign a gametype to this item unless the location of your CTF flags and your Overload obelisk will be different. It is used in all four team game types. The game will call for it as needed. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/overload_base.md3"*/ - -//============================================================================= - -/*QUAKED team_blueobelisk (0 .2 1) (-16 -16 0) (16 16 88) -Blue team Obelisk. Used for Overload and Harvester game types. Facing needs to be set. --------- KEYS -------- -angle : an angle facing needs to be set for this entity. This item has a specific facing. -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- NOTES -------- -Do not assign a gametype to this item. It is used in all four team game types. the The game will call for it as needed. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/overload_base.md3"*/ - -//============================================================================= - -/*QUAKED team_neutralobelisk (1 .2 1) (-16 -16 0) (16 16 88) -Neutral Obelisk (Harvester only). --------- KEYS -------- -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/obelisk/obelisk.md3"*/ - - - -//=========================================================================== -TEAM ARENA WEAPONS - -//=========================================================================== - -/*QUAKED weapon_chaingun (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Chaingun. A rapid fire instant hit weapon. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/vulcan/vulcan.md3"*/ - -//============================================================================= - -/*QUAKED weapon_nailgun (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Nailgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/nailgun/nailgun.md3"*/ - -//=========================================================================== - -/*QUAKED weapon_prox_launcher (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Proximity Mine Launcher. Lobs a mine which checks for proximity of a player or a time out. In team play, the mines are differentiated by teams. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot: (NEW KEY PROPERTY) when set to 1, a bot will never seek out this item. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -gametype : The valid values are ffa, tournament, single, team, ctf, oneflag, obelisk, harvester. Once a value for this key is set, it will ONLY appear in the listed gametype(s). Separate gametypes by commas. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/proxmine/proxmine.md3"*/ - - - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/gothic_trim.shader b/install/installs/Q3Pack/install/missionpack/scripts/gothic_trim.shader deleted file mode 100644 index 100fa7c7..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/gothic_trim.shader +++ /dev/null @@ -1,296 +0,0 @@ - -textures/gothic_trim/baseboard09_p_shiny -{ - - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_trim/baseboard09_p_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - alphagen lightingspecular - rgbGen identity - } -} - -textures/gothic_trim/border6_trans -{ - qer_editorimage textures/gothic_trim/border6.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/border6.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - } -} - -textures/gothic_trim/column2c_trans -{ - qer_editorimage textures/gothic_trim/column2c_test.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/column2c_test.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/gothgrate2 -{ - surfaceparm metalsteps - cull none - - { - map textures/gothic_trim/gothgrate2.tga - blendFunc GL_ONE GL_ZERO - rgbGen identity - alphaFunc GT0 - depthWrite - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - depthFunc equal - } -} - -textures/gothic_trim/km_arena1tower4_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/km_arena1tower4_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4b_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4b.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/metalsupport4b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/metalsupport4h_shiny -{ - - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4h_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4h_shiny.tga - surfaceparm nonsolid - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/metalsupport4h_shiny.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/metalsupport4j_trans -{ - qer_editorimage textures/gothic_trim/metalsupport4j.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/metalsupport4j.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/gothic_trim/metlsupport4i_shiney -{ - qer_editorimage textures/gothic_trim/xmetalsupport4i_alpha.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xmetalsupport4i_alpha.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/pitted_rust2_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust2.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust2.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/pitted_rust3_trans -{ - qer_editorimage textures/gothic_trim/pitted_rust3.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/gothic_trim/pitted_rust3.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - - - } -} - -textures/gothic_trim/supportborderside_shiney -{ - qer_editorimage textures/gothic_trim/xsupportborderside_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_trim/xsupportborderside_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } - - -} - -textures/gothic_trim/tongue_bone -{ - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_trim/tongue_bone.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.5 0.5 0 0.2 - } -} - -textures/gothic_trim/x_noblight -{ - q3map_lightimage textures/gothic_trim/x_noblightfx.tga - q3map_surfacelight 100 - { - map textures/sfx/firegorre2.tga - tcmod scroll .1 1 - tcmod scale 1 1 - } - { - map textures/gothic_trim/x_noblight.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/gothic_trim/x_noblightfx.tga - blendFunc add - rgbGen wave sin .5 .5 0 .1 - } -} - -textures/gothic_trim/zinc_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_trim/zinc_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/gothic_wall.shader b/install/installs/Q3Pack/install/missionpack/scripts/gothic_wall.shader deleted file mode 100644 index 4203aec6..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/gothic_wall.shader +++ /dev/null @@ -1,120 +0,0 @@ - -textures/gothic_wall/iron01_m -{ - qer_editorimage textures/gothic_wall/iron01_m.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_m.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/iron01_ndark -{ - qer_editorimage textures/gothic_wall/iron01_ndark.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/iron01_ndark.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/streetbricks10_shiny -{ - qer_editorimage textures/gothic_wall/streetbricks11.tga - q3map_globaltexture - sort opaque - - { - map $lightmap - tcmod scale 2 2 - rgbgen identity - } - - { - map textures/gothic_wall/streetbricks11.tga - rgbGen identity - blendfunc gl_one gl_src_color - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - -} - -textures/gothic_wall/window_evil6a - -{ - q3map_lightimage textures/gothic_wall/window_evil6a_glow.tga - q3map_surfacelight 50 - - { - map $lightmap - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a.tga - blendfunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { - map textures/gothic_wall/window_evil6a_glow.tga - blendfunc GL_ONE GL_ONE - rgbGen identity - } - -} - -textures/gothic_wall/xoct20c_shiney -{ - qer_editorimage textures/gothic_wall/xoct20c_shiney.tga - { - map $lightmap - rgbgen identity - } - - { - map textures/gothic_wall/xoct20c_shiney.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - } -} - -textures/gothic_wall/xpipecolumn_gray_shiny -{ - - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_wall/xpipecolumn_gray_shiny.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/liquids.shader b/install/installs/Q3Pack/install/missionpack/scripts/liquids.shader deleted file mode 100644 index fd2d50cc..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/liquids.shader +++ /dev/null @@ -1,1153 +0,0 @@ -textures/liquids/x_calm_pool_nolight - { - // ************************************************* - // * CALM GREEN WATER POOL oct.6.2000 - // * same as calm water but emits NO light -Xian * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 256 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END - } - - - -textures/liquids/calm_pool_nolight - { - // ************************************************* - // * CALM GREEN WATER POOL oct.6.2000 - // * same as calm water but emits NO light -Xian * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END - } - - - -textures/liquids/protolava -{ - - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/protolava2.tga - tcmod scale .2 .2 - tcmod scroll .04 .03 - tcMod turb 0 .1 0 .01 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/liquids/protolava.tga - blendfunc blend - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/watertest - -// ************************************************************ -// * Water test with environmentmap. Created September 21* -// ************************************************************ - - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - tessSize 32 - deformVertexes normal .15 2 - deformVertexes bulge 128 5 2 - { - map $lightmap - blendfunc filter - } - - { - map textures/liquids/pool3d_4byell2.tga - blendfunc add - tcgen environment - // tcMod scroll .05 .05 - } - - - } - - - - -textures/liquids/flatripplewater_1500 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - q3map_lightsubdivide 32 - //surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - -// tesssize 128 -// cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/pool2.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/xctf_painwater - { - qer_editorimage textures/liquids/pool2.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 450 - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - { - map textures/sfx/bolts.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - //tcGen environment - tcMod scroll .1 .1 - tcmod rotate 290 - //rgbgen wave sin .1 1 5 .1 - } - } -textures/liquids/clear_calm1 - -// ********************************************************* -// * Medium clear calm water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3e.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .25 .25 0 .5 - { - map textures/liquids/pool3d_5e.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod scroll .025 .01 - } - - { - map textures/liquids/pool3d_3e.tga - blendFunc GL_dst_color GL_one - tcmod scale -.5 -.5 - tcmod scroll .025 .025 - } - - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - - -// END - } - -textures/liquids/clear_ripple3 - -// ********************************************************* -// * Medium clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3c.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -// END - } - - -textures/liquids/clear_ripple2 - -// ********************************************************* -// * Small clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3b.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - { - map textures/liquids/pool3d_5b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3b.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } - - -// END - } - - -textures/liquids/clear_ripple1 - -// ********************************************************* -// * Large clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } -// END - } - -textures/liquids/clear_ripple1_q3dm1 - -// ********************************************************* -// * Large clear ripple water. Created September 9 * -// ********************************************************* - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - - { - map $lightmap - blendFunc GL_dst_color GL_zero - rgbgen identity - } -} - -textures/liquids/lavahell -{ - q3map_globaltexture - surfaceparm noimpact - surfaceparm trans - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - - - -// END -} - -textures/liquids/lavahell_xdm1 -{ - qer_editorimage textures/liquids/lavahell.tga - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - //surfaceparm trans - //surfaceparm nonsolid - surfaceparm nodlight - surfaceparm noimpact - //surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 600 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -// END -} - -textures/liquids/lavahell_1000 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahell_2000 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2000 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} -textures/liquids/lavahell_750 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/flatlavahell_1500 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - q3map_lightsubdivide 32 - //surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 1500 - cull disable - -// tesssize 128 -// cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - - -textures/liquids/lavahell_2500 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - -textures/liquids/lavahelldark -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 150 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -// END -} - -textures/liquids/lavahellflat_400 -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 400 - cull disable - - tesssize 128 - cull disable - //deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } - -} - -textures/liquids/calm_pool - { - // ************************************************* - // * CALM GREEN WATER POOL Feb 19, 1998 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - - // END -} - -textures/liquids/calm_poollight - { - // ************************************************* - // * CALM GREEN WATER POOL may 5 1999 - // * same as calm water but emits light * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 50 - - cull disable - tesssize 64 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - -} - -textures/liquids/calm_poollight2 - { - // ************************************************* - // * CALM GREEN WATER POOL may 5 1999 - // * same as calm water but emits light * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 50 - - cull disable - tesssize 512 - deformVertexes wave 100 sin 1 1 1 .1 - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END -} - -textures/liquids/calm_pool_bgtess - { - // ************************************************* - // * CALM GREEN WATER POOL Feb 19, 1998 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // * Large tesselations added on May 26, '99 - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/pool2.tga - qer_trans .5 - q3map_globaltexture - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - - cull disable - tesssize 256 - deformVertexes wave 256 sin 1 1 1 .1 - - - - { - map textures/liquids/pool2.tga - blendfunc GL_ONE GL_SRC_COLOR - tcMod scale .03 .03 - tcMod scroll .001 .001 - } - - { - map textures/liquids/pool3.tga - blendfunc GL_DST_COLOR GL_ONE - tcMod turb .1 .1 0 .01 - tcMod scale .5 .5 - tcMod scroll -.025 .02 - } - - - // END -} - - textures/liquids/proto_poolpass - { - /////////////////////////////////////////// - //Electric Slime. FOUR passes of FURY ---// - /////////////////////////////////////////// - - q3map_globaltexture - //qer_editorimage textures/liquids/proto_pool3.tga - q3map_lightimage textures/liquids/proto_pool3.tga - q3map_globaltexture - q3map_surfacelight 240 - // tesssize 256 - //deformVertexes wave 100 sin 1 5 .1 .5 - surfaceparm slime - - { - map textures/liquids/proto_gruel2.tga - //tcMod scale 1 1 - tcMod scale .5 .6 - //tcMod scroll .4 .01 - tcMod turb .1 .25 0 -.1 - - } - //{ - // map textures/liquids/proto_poolpass2.tga - // blendfunc GL_ONE GL_ONE - // tcMod scale .5 .6 - // //tcMod scroll .6 .04 - // tcMod turb .1 .25 0 .01 - //} - { - map textures/liquids/proto_poolpass.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - //tcMod scroll .5 .05 - tcMod turb .1 .25 0 .07 - } - { - map $lightmap - rgbgen identity - blendfunc GL_DST_COLOR GL_ZERO - } - { - map textures/sfx/bolts.tga - blendfunc GL_ONE GL_ONE - tcMod scale .2 .2 - //tcGen environment - tcMod scroll .1 .1 - tcmod rotate 290 - //rgbgen wave sin .1 1 5 .1 - } - - -} - -ripplewater2_back - { - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - // this is used when looking from inside the water to the outside - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - -// fogonly - { - map textures/liquids/ripplewater3.tga - blendfunc GL_DST_COLOR GL_SRC_COLOR - tcMod scale .05 .05 - tcGen environment - tcMod scroll .001 .001 - } - - // END -} - -textures/liquids/slime1 - { - // ************************************************* - // * SLIME Feb 11 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 100 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - // END - } - -textures/liquids/slime1_2000 - { - // ************************************************* - // * SLIME Feb 11 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // ************************************************* - - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/slime7.tga - q3map_lightimage textures/liquids/slime7.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm slime - surfaceparm nolightmap - surfaceparm trans - - q3map_surfacelight 2000 - tessSize 32 - cull disable - - deformVertexes wave 100 sin 0 1 .5 .5 - - { - map textures/liquids/slime7c.tga - tcMod turb .3 .2 1 .05 - tcMod scroll .01 .01 - } - - { - map textures/liquids/slime7.tga - blendfunc GL_ONE GL_ONE - tcMod turb .2 .1 1 .05 - tcMod scale .5 .5 - tcMod scroll .01 .01 - } - - { - map textures/liquids/bubbles.tga - blendfunc GL_ZERO GL_SRC_COLOR - tcMod turb .2 .1 .1 .2 - tcMod scale .05 .05 - tcMod scroll .001 .001 - } - - // END -} - -textures/hell/lavasolid -{ - // Added to g3map_global texture on May 11, 1999 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 450 - - tesssize 64 - deformVertexes wave 100 sin 2 2 0 0.1 - - { - map textures/hell/lava2d.tga - tcGen environment - tcMod turb 0 0.25 0 0.05 - } - - { - map textures/hell/lava2d.tga - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.05 - } -} - -textures/liquids/lavahell_2500_subd -{ - // Added to g3map_global texture on May 11, 1999 - qer_editorimage textures/liquids/lavahell.tga - q3map_lightsubdivide 32 - q3map_globaltexture - surfaceparm trans - //surfaceparm nonsolid - surfaceparm noimpact - surfaceparm lava - surfaceparm nolightmap - q3map_surfacelight 2500 - cull disable - - tesssize 128 - cull disable - deformVertexes wave 100 sin 3 2 .1 0.1 - - { - map textures/liquids/lavahell.tga - tcMod turb 0 .2 0 .1 - } -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/liquids2.shader b/install/installs/Q3Pack/install/missionpack/scripts/liquids2.shader deleted file mode 100644 index 244dab46..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/liquids2.shader +++ /dev/null @@ -1,243 +0,0 @@ -textures/liquids2/calm_poollight2nt - { - - - - qer_editorimage textures/liquids/pool3d_4b.tga - q3map_globaltexture - qer_trans .75 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - surfaceparm nolightmap - q3map_surfacelight 50 - - cull disable - - - - { - map textures/liquids/pool3d_5c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3c2.tga - blendFunc GL_dst_color GL_zero - rgbgen identity - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - { - map textures/liquids/pool3d_4b2.tga - blendfunc add - tcmod scale .125 .125 - rgbgen identity - } - - - // END - } - -textures/liquids2/water_volume - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - surfaceparm nodraw - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - -// END - } - - -textures/liquids2/clear_ripple1v - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen vertex - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - -// END - } - -textures/liquids2/clear_ripple1_q3dm1v - - { - qer_editorimage textures/liquids/pool3d_3.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .5 .5 0 .5 - - - { - map textures/liquids/pool3d_5.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 1.5 0 1.5 1 1 2 - tcmod scroll -.05 .001 - } - - { - map textures/liquids/pool3d_6.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod transform 0 1.5 1 1.5 2 1 - tcmod scroll .025 -.001 - } - - { - map textures/liquids/pool3d_3.tga - blendFunc GL_dst_color GL_one - rgbgen vertex - tcmod scale .25 .5 - tcmod scroll .001 .025 - } - -// END - } -textures/liquids2/clear_calm1v - - { - qer_editorimage textures/liquids/pool3d_3e.tga - qer_trans .5 - q3map_globaltexture - surfaceparm trans - surfaceparm nonsolid - surfaceparm water - - cull disable - deformVertexes wave 64 sin .25 .25 0 .5 - { - map textures/liquids/pool3d_5e.tga - blendFunc GL_dst_color GL_one - rgbgen identity - tcmod scale .5 .5 - tcmod scroll .025 .01 - - } - - { - map textures/liquids/pool3d_3e.tga - blendFunc GL_dst_color GL_one - tcmod scale -.5 -.5 - tcmod scroll .025 .025 - rgbGen vertex - } - - - - - -// END - } -textures/liquids2/pjslime - { - // ************************************************* - // * ORIGINAL SLIME Feb 11 1999 * - // * IF YOU CHANGE THIS PLEASE COMMENT THE CHANGE * - // * - // ************************************************* - //Changed light value to 400 on May 17, 2000 - // Added to g3map_global texture on May 11, 1999 - q3map_lightimage textures/proto2/concrete_blue.tga - q3map_globaltexture - qer_trans .5 - - surfaceparm noimpact - surfaceparm lava - surfaceparm trans - - q3map_surfacelight 500 - tessSize 64 - //cull disable - deformVertexes wave 100 sin 1 2 0 .5 - - - { - map $lightmap - rgbgen identity - } - - - { - map textures/liquids2/pjslime.tga - blendFunc GL_DST_COLOR GL_SRC_ALPHA - rgbGen identity - alphaGen lightingSpecular - tcMod turb 0 .2 .5 .05 - tcmod scroll .01 .01 - } - - - - { - map textures/liquids2/pjslime2.tga - blendfunc add - rgbgen wave inversesawtooth 0 1 0 4 - tcMod turb 0 .2 .5 .05 - tcmod scroll .01 .01 - } - -} - - - \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/museum.shader b/install/installs/Q3Pack/install/missionpack/scripts/museum.shader deleted file mode 100644 index c33ec1eb..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/museum.shader +++ /dev/null @@ -1,28 +0,0 @@ - -////////////////////////////// -// Rainy Concrete floor // -////////////////////////////// - -textures/base_floor/concfloor_rain -{ - tessSize 32 - deformVertexes normal 1 15 - { - map textures/base_floor/concfloor_rain.tga - rgbGen identity - } - { - map textures/liquids/pj_e3_reflection2b.tga - Blendfunc add - tcgen environment - rgbgen wave sin .3 0 0 0 - tcmod scale 2 2 - tcMod scroll .5 .5 - } - { - map $lightmap - blendFunc filter - rgbGen identity - } -} - diff --git a/install/installs/Q3Pack/install/missionpack/scripts/proto2.shader b/install/installs/Q3Pack/install/missionpack/scripts/proto2.shader deleted file mode 100644 index 9682be19..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/proto2.shader +++ /dev/null @@ -1,1833 +0,0 @@ -textures/proto2/winframe -{ - - { - map models/weapons/nailgun/nailgun_env.tga - //tcMod scale 2 2 - tcGen environment - rgbGen identity - } - { - map textures/proto2/winframe.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/mpintro -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam6.roq - blendFunc add - rgbGen identity - } - - -} -textures/proto2/mpteam1 -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam1.roq - blendFunc add - rgbGen identity - } - - -} - -textures/proto2/mpteam3_movie -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam3.roq - blendFunc add - rgbGen identity - } - - -} - - -textures/proto2/mpteam5_mv -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpteam5.roq - blendFunc add - rgbGen identity - } - -} - -textures/proto2/mpterra2_mv -{ - - qer_editorimage textures/proto2/ed_movie.tga - surfaceparm trans - surfaceparm nolightmap - cull disable - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - videoMap mpterra2.roq - blendFunc add - rgbGen identity - } - -} - - -textures/proto2/redflag -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/redflag.tga - alphaFunc GE128 - } - - -} - -textures/proto2/blueflag -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/blueflag.tga - alphaFunc GE128 - } - - -} - - -textures/proto2/oneflag -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/oneflag.tga - alphaFunc GE128 - } - - -} - -textures/proto2/harvest -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/harvest.tga - alphaFunc GE128 - } - - -} - -textures/proto2/redob -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/redob.tga - alphaFunc GE128 - } - - -} -textures/proto2/blueob -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/blueob.tga - alphaFunc GE128 - } - - -} - - -textures/proto2/urhere -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/urhere.tga - alphaFunc GE128 - } - - -} - - -textures/proto2/terramap01 -{ - - surfaceparm trans - surfaceparm nolightmap - nopicmip - - { - map textures/proto2/terramap01.tga - blendFunc add - rgbGen wave sin 1 .2 0 .75 - } - { - map textures/proto2/terramap02.tga - BlendFunc add - tcmod scale 1.75 1 - tcmod scroll -3.75 0 - rgbGen wave inversesawtooth 1 .2 0 .75 - } - -} - -ui/assets/logo01 -{ - - nopicmip - - { - map ui/assets/logo01.tga - BlendFunc add - rgbGen wave triangle 1 1 0 .25 - } - { - map ui/assets/logo02.tga - BlendFunc add - tcmod scroll .43 0 - rgbGen wave triangle 1 1 0 .75 - } - { - map ui/assets/logo02.tga - BlendFunc add - tcmod scroll -.51 0 - rgbGen wave triangle 1 1 0 1 - } - { - map ui/assets/logo03.tga - BlendFunc add - tcmod scroll -.3 0 - } - { - map ui/assets/logo03.tga - BlendFunc add - tcmod scroll .25 0 - } - -} - -textures/proto2/xflag01 -{ - surfaceparm alphashadow - cull none - - { - map textures/proto2/xflag01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - -} - -textures/proto2/grill03b -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/grill03b.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/vertex_greenstone -{ - qer_editorimage textures/gothic_block/blocks17i.tga - surfaceparm pointlight - - { - map textures/gothic_block/blocks17i.tga - rgbGen vertex - } - -} - -textures/proto2/vertex_cavestone -{ - qer_editorimage textures/stone/pjrock5.tga - surfaceparm pointlight - - { - map textures/stone/pjrock5.tga - rgbGen vertex - } - -} - -textures/proto2/marbledoor_blue -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/marbledoor_blue.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/marbledoor_red -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/marbledoor_red.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/vertex_con -{ - - qer_editorimage textures/proto2/concrete03c.tga - surfaceparm pointlight - - { - map textures/proto2/concrete03c.tga - rgbGen vertex - } - -} - -textures/proto2/concrete03c_aqua -{ - surfaceparm pointlight - - { - map textures/proto2/concrete03c_aqua.tga - rgbGen vertex - } - -} - -textures/proto2/pulsebeam -{ - surfaceparm metalsteps - - - { - map textures/proto2/pulsebeam.tga - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/proto2/pulsebeam2.tga - BlendFunc add - rgbGen wave inversesawtooth -.3 1.3 0 1 - } -} - -textures/proto2/concrete_rednfx -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/concrete_red.tga - - { - map textures/proto2/concrete_red.tga - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/concrete_bluenfx -{ - surfaceparm metalsteps - qer_editorimage textures/proto2/concrete_blue.tga - - { - map textures/proto2/concrete_blue.tga - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/cheapfloor -{ - qer_editorimage textures/proto2/marble02b_floor.tga - - { - map textures/effects2/xtourney_fx3.tga - //tcGen environment - //tcmod scale .5 .5 - tcGen environment - rgbGen identity - - } - { - map textures/proto2/marble02b_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -} - -textures/proto2/redlight_on -{ - surfaceparm nolightmap - - { - map textures/proto2/redlight_on.tga - rgbGen identity - } - - -} - -textures/proto2/bluelight_on -{ - surfaceparm nolightmap - - { - map textures/proto2/bluelight_on.tga - rgbGen identity - } - - -} - -////////////////////////////// Warning lights for mpterra2 -textures/proto2/bsredlight_on -//for team sides in mpterra2 (1 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/redlight_on.tga - - { - map textures/proto2/redlight_on.tga - rgbGen identity - } -} - -textures/proto2/bsbluelight_on -//for team sides in mpterra2 (2 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/bluelight_on.tga - { - map textures/proto2/bluelight_on.tga - rgbGen identity - } -} - -textures/proto2/rsredlight_off -//for team sides in mpterra2 (3 of 8) -{ - - qer_editorimage textures/proto2/redlight_off.tga - - { - map textures/proto2/redlight_off.tga - rgbGen identity - } -} - -textures/proto2/rsbluelight_off -//for team sides in mpterra2 (4 of 8) -{ - qer_editorimage textures/proto2/bluelight_off.tga - - { - map textures/proto2/bluelight_off.tga - rgbGen identity - } -} - -textures/proto2/bsredlight_off -//for team sides in mpterra2 (5 of 8) -{ - - qer_editorimage textures/proto2/redlight_off.tga - - { - map textures/proto2/redlight_off.tga - rgbGen identity - } -} - -textures/proto2/bsbluelight_off -//for team sides in mpterra2 (6 of 8) -{ - qer_editorimage textures/proto2/bluelight_off.tga - - { - map textures/proto2/bluelight_off.tga - rgbGen identity - } -} - -textures/proto2/rsbluelight_on -//for team sides in mpterra2 (7 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/bluelight_on.tga - { - map textures/proto2/bluelight_on.tga - rgbGen identity - } -} - -textures/proto2/rsredlight_on -//for team sides in mpterra2 (8 of 8) -{ - surfaceparm nolightmap - qer_editorimage textures/proto2/redlight_on.tga - { - map textures/proto2/redlight_on.tga - rgbGen identity - } -} - - - -textures/proto2/mirrorfloor -{ - qer_editorimage textures/proto2/marble02b_s.tga - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/proto2/marble02b_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - -} - -textures/proto2/bluetrim01 -{ - - - { - map textures/effects2/envmap_blu.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .04 - - rgbGen identity - } - { - map textures/proto2/bluetrim01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/redtrim01 -{ - qer_editorimage textures/proto2/bluetrim01 - - { - map textures/effects2/envmap_red.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .04 - - rgbGen identity - } - { - map textures/proto2/bluetrim01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/torchstone02_trans -{ - qer_editorimage textures/proto2/marbledge01.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/proto2/marbledge01.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} -textures/proto2/torchstone03_trans -{ - qer_editorimage textures/proto2/marble02b.tga - surfaceparm nonsolid - { - map $lightmap - rgbGen identity - - } - { - map textures/proto2/marble02b.tga - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - - -textures/proto2/shiny_black -{ - surfaceparm nolightmap - - { - map textures/proto2/shiny_black.tga - tcGen environment - rgbGen identity - } - - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/light_nv -{ - surfaceparm nolightmap - - { - map textures/proto2/light_nv.tga - rgbGen identity - } - - { - map textures/effects/tinfx2b.tga - tcGen environment - blendFunc add - rgbGen identity - } - - -} -textures/proto2/marble02btrim03 -{ - - { - map textures/proto2/marble02btrim03.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/proto2/marble02btrim03_lt.tga - blendFunc add - rgbGen wave sin .9 .5 0 .2 - } - -} -textures/proto2/marble02rtrim03 -{ - - { - map textures/proto2/marble02rtrim03.tga - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - { - map textures/proto2/marble02rtrim03_lt.tga - blendFunc add - rgbGen wave sin .9 .5 0 .2 - } - -} - - -textures/proto2/red_zot -{ - cull disable - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/red_zot.tga - blendFunc Add - rgbGen identity - } - -} - -textures/proto2/blue_zot -{ - cull disable - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/blue_zot.tga - blendFunc Add - rgbGen identity - } - -} - -textures/proto2/red_zot2 -{ - cull disable - qer_lightimage textures/proto2/red_zot2.tga - q3map_surfacelight 120 - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/red_zot2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/blue_zot2 -{ - qer_editorimage textures/proto2/blue_zot.tga - cull disable - qer_lightimage textures/proto2/blue_zot.tga - q3map_surfacelight 120 - deformVertexes move 0.2 0 .3 sin 0 5 0 10 - deformVertexes move 0 0.2 0 sin 0 5 0 13 - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - - { - map textures/proto2/blue_zot.tga - blendFunc Add - rgbGen identity - } - - -} - - - -textures/proto2/door_right -{ - surfaceparm metalsteps - - { - map textures/effects2/envmap_sky.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/door_right.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/reda_dcl -{ - surfaceparm nomarks - surfaceparm trans - //nomipmaps - surfaceparm pointlight - - { - map textures/proto2/reda_dcl.tga - blendFunc add - rgbGen vertex - } -} -textures/proto2/bluea_dcl -{ - surfaceparm nomarks - surfaceparm trans - //nomipmaps - surfaceparm pointlight - - { - map textures/proto2/bluea_dcl.tga - blendFunc add - rgbGen vertex - } -} - -textures/proto2/blueat_dcl -{ - surfaceparm nomarks - surfaceparm trans - //nomipmaps - surfaceparm pointlight - - { - map textures/proto2/blueat_dcl.tga - blendFunc add - rgbGen vertex - } -} - -textures/proto2/concrete_red -{ - surfaceparm metalsteps - - { - map textures/effects2/redfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/concrete_red.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/concrete_blue -{ - surfaceparm metalsteps - - { - map textures/effects2/bluefx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/concrete_blue.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/teamwerkz_red1 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/teamwerkz_red2.tga - blendFunc add - tcMod scroll 1 0 - rgbgen wave sin 0 1 0 9 - } - { - map textures/proto2/teamwerkz_red1.tga - blendFunc add - tcMod scroll -.2 0 - rgbgen wave sin 0 1 0 .19 - } - - - -} -textures/proto2/teamwerkz_blue1 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/teamwerkz_blue2.tga - blendFunc add - tcMod scroll 1 0 - rgbgen wave sin 0 1 0 9 - } - { - map textures/proto2/teamwerkz_blue1.tga - blendFunc add - tcMod scroll -.2 0 - rgbgen wave sin 0 1 0 .19 - } - - - -} -textures/proto2/gothic_light -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/gothic_light.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/gothic_lightfx -{ - - q3map_surfacelight 2000 - surfaceparm alphashadow - surfaceparm nomarks - - { - map textures/proto2/gothic_lightfx.tga - blendfunc add - rgbGen identity - - } -} -textures/proto2/5_dcl -{ - - surfaceparm pointlight - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/5_dcl.tga - blendFunc add - depthWrite - rgbGen vertex - - } - -} - -textures/proto2/grill02 -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/grill02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/wirepipe -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/wirepipe.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/wheel01 -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/wheel01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/c_zinc_shiny -{ - qer_editorimage textures/gothic_trim/zinc_shiny.tga - cull none - { - map textures/effects/tinfx.tga - tcGen environment - rgbGen identity - } - { - map textures/gothic_trim/zinc_shiny.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/proto2/stadlight01 -{ - - - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/proto2/stadlight01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - { - map textures/proto2/stadlight01fx.tga - blendfunc add - rgbGen wave sin .5 .5 0 2 - - } -} - -textures/proto2/v_support02 -{ - - - surfaceparm alphashadow - cull none - nomipmaps - { - map textures/proto2/v_support02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/pipes01 -{ - - - surfaceparm alphashadow - cull none - - { - map textures/proto2/pipes01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/floorvent01 -{ - - surfaceparm pointlight - surfaceparm alphashadow - cull none - - { - map textures/proto2/floorvent01.tga - blendFunc blend - depthWrite - rgbGen vertex - - } - -} - -textures/proto2/supportctfblu -{ - - - { - map textures/effects2/envmap_blu.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .02 - - rgbGen identity - } - { - map textures/proto2/supportctfblu.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/supportctfred -{ - - - { - map textures/effects2/envmap_red.tga - blendFunc GL_ONE GL_ZERO - tcmod scale .025 .05 - tcmod Scroll .005 .02 - - rgbGen identity - } - { - map textures/proto2/supportctfred.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/marble02b_s -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/marble02b_s.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/ceiling_pipe01 -{ - - - surfaceparm alphashadow - cull none - - { - map textures/proto2/ceiling_pipe01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/duct01 -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/duct01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/grate_trim -{ - surfaceparm metalsteps - - { - map textures/sfx/specular.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/grate_trim.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/techtrim02 -{ - surfaceparm metalsteps - - { - map textures/sfx/specular.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/techtrim02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} -textures/proto2/steam01 -{ - qer_editorimage textures/proto2/steam_01_img.tga - cull disable - deformVertexes autoSprite2 - surfaceparm trans - //surfaceparm alphashadow - //surfaceparm nolightmap - surfaceparm pointlight - deformVertexes wave 50 sin 0 3 0 .3 - deformVertexes move .3 .1 0 sin 0 .5 0 0.2 - //deformVertexes move .6 .3 0 sin 0 .5 0 0.4 - { - map textures/proto2/steam01.tga - tcmod scroll 0 0.3 - blendFunc blend - rgbGen vertex - } - - - -} -textures/proto2/flare2 -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/flare2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/flare -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - clampmap textures/proto2/flare.tga - tcmod rotate 10 - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/redflare2 -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/redflare2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/redflare -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - clampmap textures/proto2/redflare.tga - tcmod rotate 10 - blendFunc Add - rgbGen identity - } - - -} - -textures/proto2/xredflare2 -// No autosprite for xian_team4 fuckage -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - - { - map textures/proto2/xredflare2.tga - blendFunc Add - rgbGen identity - } -} - -textures/proto2/blueflare2 -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/blueflare2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/blueflare -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - clampmap textures/proto2/blueflare.tga - tcmod rotate 10 - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/pipewall01 -{ - - - surfaceparm alphashadow - cull none - - { - map textures/proto2/pipewall01.tga - alphaFunc GE128 - - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/barbedwire -{ - surfaceparm pointlight - surfaceparm trans - surfaceparm alphashadow - deformVertexes autoSprite2 - cull twosided - //nopicmip - - { - map textures/proto2/barbedwire.tga - blendFunc Blend - //alphaFunc GE128 - //depthWrite - rgbGen vertex - } - //{ - // map $lightmap - // rgbGen identity - // blendFunc GL_DST_COLOR GL_ZERO - // depthFunc equal - //} -} - -textures/proto2/rail01 - -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/rail01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/grill01 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/grill01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/vent01 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/vent01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/girder05 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/girder05.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/girder04 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - map textures/proto2/girder04.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/proto2/gear02 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - //nopicmip - { - clampmap textures/proto2/gear02.tga - alphaFunc GE128 - tcmod rotate 123 - depthWrite - rgbGen identity - } - { - clampmap textures/proto2/gear02b.tga - blendFunc add - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/lightbulb -{ - cull disable - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nolightmap - { - map textures/proto2/lightbulb.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/lightbulb2 -{ - cull disable - deformVertexes autoSprite - surfaceparm trans - surfaceparm nolightmap - - { - map textures/proto2/lightbulb2.tga - blendFunc Add - rgbGen identity - } - - -} -textures/proto2/tin_panel -{ - surfaceparm metalsteps - - { - map textures/effects/tinfx.tga - tcGen environment - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/proto2/tin_panel.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } -} - -textures/proto2/girder03 -{ - - surfaceparm trans - surfaceparm alphashadow - cull none - nopicmip - { - map textures/proto2/girder03.tga - alphaFunc GE128 - //depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/proto2/chain -{ - cull disable - deformVertexes autoSprite2 - deformVertexes wave 100 sin 0 3 0 .05 - deformVertexes wave 100 sin 0 3 0 .3 - { - map textures/proto2/chain.tga - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } - - -} - -textures/proto2/concrete01wetwall - - { - - { - map textures/proto2/ooze.tga - tcmod scale 2 2 - tcmod scroll 0 -.1 - rgbGen identity - } - { - map textures/proto2/concrete01wetwall.tga - Blendfunc blend - rgbGen identity - } - { - map $lightmap - blendFunc filter - rgbGen identity - } - - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/sfx.shader b/install/installs/Q3Pack/install/missionpack/scripts/sfx.shader deleted file mode 100644 index 5edf9796..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/sfx.shader +++ /dev/null @@ -1,3253 +0,0 @@ -textures/sfx/beam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - - { - map textures/sfx/beam.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_blue - { - qer_editorimage textures/sfx/beam_blue4.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .6 - cull none - { - map textures/sfx/beam_blue4.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_dusty2 -{ - qer_editorimage textures/sfx/beam_1.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - { - map textures/sfx/beam_1.tga - blendFunc add - } -} - -textures/sfx/beam_red -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - cull none - { - map textures/sfx/beam_red.tga - tcMod Scroll .3 0 - blendFunc add - } - -} - -textures/sfx/beam_waterlight2 -{ - qer_editorimage textures/sfx/beam_waterlight.tga - q3map_globaltexture - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - q3map_surfacelight 50 - qer_trans 0.6 - cull none - { - map textures/sfx/beam_waterlight.tga - tcMod turb 0 0.015 0.5 0.07 - tcMod Scroll .15 0 - blendFunc add - } - -} - -textures/sfx/blackness -{ - surfaceparm nolightmap - surfaceparm noimpact - surfaceparm nomarks - { - map textures/sfx/blackness.tga - } -} - -textures/sfx/blocks17final_pent -{ - qer_editorimage textures/sfx/blocks17final_pent.tga - { - map textures/sfx/blocks17final_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/blocks17g_jumpad -{ - surfaceparm nodamage - q3map_surfacelight 400 - - - { - map textures/sfx/blocks17g_jumpad.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/blocks18ccomputer -{ - - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/blocks18ccomputer.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/border11c -{ - q3map_surfacelight 300 - q3map_lightimage textures/base_trim/border11c_pulse1.tga - qer_editorimage textures/base_trim/border11c.tga - - { - map textures/base_trim/border11c.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/base_trim/border11c_light.tga - blendfunc gl_one gl_one - rgbgen wave sin 1 .1 0 5 - } - - - { - map textures/base_trim/border11c_pulse1b.tga - blendfunc gl_one gl_one - tcmod scale .035 1 - tcmod scroll -0.65 0 - - - } - - -} - -textures/sfx/bounce_concrete -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_concrete.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_dirt -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_dirt.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc filter - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc add - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc add - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3 -{ - - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_largeblock3b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_largeblock3b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_metalbridge04 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_metalbridge04.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bounce_xq1metalbig -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bounce_xq1metalbig.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_block17 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 1000 - - - { - map textures/sfx/bouncepad01_block17.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_metalbridge06b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_metalbridge06b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01_xarch -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/bouncepad01_xarch.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad01block18b -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bouncepad1q1metal7_99 -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 2000 - - - { - map textures/sfx/bouncepad1q1metal7_99.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/bugmirror -{ - qer_editorimage textures/sfx/mirrorkc.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirrorkc.tga - blendFunc add - depthfunc equal - } -} - -textures/sfx/bullseye -{ - cull disable - surfaceparm nomarks - surfaceparm nolightmap - deformVertexes autosprite - - { - clampmap textures/sfx/bullseye.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 200 - blendFunc add - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .3 - tcmod rotate 70 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .2 - tcmod rotate 50 - alphaFunc GE128 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - tcMod stretch sin .8 0.2 0 .1 - tcmod rotate 30 - alphaFunc GE128 - rgbGen identity - } - -} - -textures/sfx/clangdark_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/clangdark_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/computer_blocks17 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computer_blocks17.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/computerblocks15 -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerblocks15.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } -} - -textures/sfx/computerpurptileb -{ - surfaceparm nodamage - q3map_surfacelight 200 - - - { - map textures/sfx/computerpurptileb.tga - rgbGen identity - } - - { - map $lightmap - blendfunc gl_dst_color gl_zero - rgbGen identity - } - - - { - animMap 2 textures/sfx/compscreen/letters1.tga textures/sfx/compscreen/letters2.tga textures/sfx/compscreen/letters3.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters4.tga textures/sfx/compscreen/letters5.tga textures/sfx/compscreen/letters5.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 2 - } - -} - -textures/sfx/console01 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - qer_trans .5 - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console01.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -200 - blendFunc GL_ONE GL_ONE - } - -} - -textures/sfx/console03 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_surfacelight 150 - q3map_lightimage textures/sfx/console03.tga - cull none - { - clampmap textures/sfx/console01.tga - - tcMod rotate 20 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console02.tga - - tcMod rotate -400 - blendFunc GL_ONE GL_ONE - } - { - clampmap textures/sfx/console03.tga - - tcMod rotate 40 - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/constfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( .8 .8 .8 ) 100 -} - -textures/sfx/demonltblackfinal -{ - q3map_lightimage textures/sfx/demonltblackfinal_glow2.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal_glow2.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/diamond2cjumppad -{ - qer_editorimage textures/sfx/bouncepad01_diamond2cTGA.tga - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 500 - - - { - map textures/sfx/bouncepad01_diamond2cTGA.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/dust_puppy2 -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/dust_puppy2.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan -{ - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - { - clampmap textures/sfx/fan.tga - tcMod rotate 256 - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fan3 -{ - cull disable - surfaceparm alphashadow - sort 6 - { - map textures/sfx/fan3.tga - blendFunc blend - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - } -} - -textures/sfx/fan3bladeb -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - sort 5 - { - clampmap textures/sfx/fan3bladeb.tga - blendFunc blend - tcmod rotate 999 - rgbGen identity - } - -} - -textures/sfx/fan_grate -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm metalsteps - cull none - nopicmip - { - map textures/sfx/fan_grate.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/fanfx -{ - qer_editorimage textures/sfx/fanfx.tga - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - cull none - nopicmip - - { - clampmap textures/sfx/fanfx.tga - tcMod rotate 256 - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - rgbGen exactVertex - depthWrite - } -} - -textures/sfx/fishy -{ - tesssize 32 - deformVertexes wave 10 sin 0 3 0 .5 - cull disable - surfaceparm nolightmap - surfaceparm nomarks - - { - clampmap textures/sfx/fishy.tga - alphaFunc GE128 - tcMod stretch sin .8 0.10 0 .07 - depthWrite - - } - - -} - -textures/sfx/flame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 7500 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1_hell -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 600 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1dark -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 2000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1km -{ - qer_editorimage textures/sfx/flame1.tga - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - q3map_surfacelight 4000 - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame1side -{ - qer_editorimage textures/sfx/flame1side.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame2.tga - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_nolight -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_blue_pj -{ - qer_editorimage textures/sfx/b_flame1.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_dimmer -{ - qer_editorimage textures/sfx/flame1.tga - q3map_lightimage textures/sfx/flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1500 - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_green_pj -{ - qer_editorimage textures/sfx/g_flame1.tga - q3map_lightimage textures/sfx/g_flame6.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/g_flame1.tga textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/g_flame2.tga textures/sfx/g_flame3.tga textures/sfx/g_flame4.tga textures/sfx/g_flame5.tga textures/sfx/g_flame6.tga textures/sfx/g_flame7.tga textures/sfx/g_flame8.tga textures/sfx/g_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/g_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/flameanim_red -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_nolight -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/flameanim_red_pj -{ - qer_editorimage textures/sfx/r_flame1.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2500 - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/fog_intel -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .75 .38 0 ) 800 -} - -textures/sfx/fog_mkcdm4 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .5 0 0 ) 96 -} - -textures/sfx/fog_pjdm1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .733 .737 .620 ) 300 - -} - -textures/sfx/fog_q3dm10 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( 0.75 0.38 0 ) 128 -} - -textures/sfx/fog_timctf1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .729 .729 .780 ) 464 - -} - -textures/sfx/fog_timdm1 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 616 -} - -textures/sfx/fog_timdm2 -{ - qer_editorimage textures/sfx/fog_yel.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .615 .309 0 ) 356 -} - -textures/sfx/fog_timdm8 -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - - fogparms ( .211 .231 .094 ) 250 -} - -textures/sfx/healthfloor -{ - - { - map textures/sfx/proto_zzztblu2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - clampmap textures/sfx/healthfloor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/hellfog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 300 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 200 - fogparms ( .5 .12 .1 ) 300 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - } -} - -textures/sfx/hellfog_mini_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 16 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_pj_dm10 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .5 .12 .1 ) 392 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/hellfog_tim_dm14 -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .55 .11 .1 ) 128 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - - -} - -textures/sfx/hellfogdense -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 128 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/jacobs_x -{ - deformVertexes wave 100 sin 0 1 0 5 - q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/jacobs_x.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 2 0 7 - //tcMod rotate 103 - } -} - -textures/sfx/kc_hellfog_1k -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 300 - q3map_lightsubdivide 32 - fogparms ( .5 .12 .1 ) 225 - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/kenelectric -{ - { - map textures/sfx/kenelectric.tga - blendFunc GL_ONE GL_ZERO - tcmod scale 7 7 - tcMod scroll 5 -5 - tcmod rotate 360 - rgbGen identity - } - { - map textures/effects/tinfx2.tga - tcGen environment - blendFunc GL_ONE GL_ONE - } -} - -textures/sfx/largerblock3b3_pent -{ - qer_editorimage textures/sfx/largerblock3b3_pent.tga - { - map textures/sfx/largerblock3b3_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/largerblock3b3x128_pent -{ - q3map_lightimage textures/sfx/pentagramfloor_blue3glowtest.tga - q3map_surfacelight 100 - surfaceparm nomarks - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/largerblock3b3x128_pent.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/pentagramfloor_blue3glowtest.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx/largerblock3b3x128_pentred -{ - qer_editorimage textures/sfx/largerblock3b3x128_pent.tga - q3map_lightimage textures/gothic_floor/pent_glow.tga - q3map_surfacelight 500 - - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/largerblock3b3x128_pent.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - map textures/gothic_floor/pent_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 0.5 - } -} - -textures/sfx/launchpad_blocks17 -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks17.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_blocks18d -{ - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_blocks18d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_diamond -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_diamond.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/launchpad_metalbridge04d -{ - - { - map $lightmap - rgbGen identity - } - - { - map textures/sfx/launchpad_metalbridge04d.tga - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/launchpad_dot.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 0 1 - } - - { - animmap 4 textures/sfx/launchpad_arrow.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga textures/sfx/launchpad_arrow2.tga - blendfunc gl_one gl_one - tcmod scroll 0 2 - } - -} - -textures/sfx/lavabeam -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map textures/sfx/lavabeam.tga - tcMod Scroll 999 0 - blendFunc add - } - -} - -textures/sfx/lightmap -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm nodrop - surfaceparm fog - fogparms ( .7 .1 .1 ) 64 - - - - { - map $lightmap - blendFunc GL_dst_color GL_one - tcmod scale 1 .01 - tcMod scroll 1 -2 - } - - -} - -textures/sfx/metalbridge06_bounce -{ - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metalbridge06_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/metaltech12final_bounce -{ - - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - - - { - map textures/sfx/metaltech12final_bounce.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - -} - -textures/sfx/mkc_bigflame -{ - - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - qer_editorimage textures/sfx/flame1.tga - q3map_surfacelight 500 - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/mkc_fog_ctfblue -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.2 0.2 0.25 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfblue2 -{ - qer_editorimage textures/sfx/fog_blue.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.1 0.1 0.3 ) 320 - - q3map_surfacelight 40 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_ctfred -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/mkc_fog_tdm3 -{ - qer_editorimage textures/sfx/fog_purp.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - fogparms ( 0.3 0.2 0.2 ) 320 - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } -} - -textures/sfx/omm -{ - - surfaceparm trans - surfaceparm alphashadow - surfaceparm nomarks - cull none - - { - map textures/sfx/omm.tga - blendFunc GL_ONE GL_ZERO - alphaFunc GE128 - depthWrite - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} - -textures/sfx/pentagramfloor_red3test -{ - { - map textures/sfx/pentagramfloor_red3test.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red3glowtest.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pentfloor_diamond2c -{ - qer_editorimage textures/sfx/pentfloor_diamond2c.tga - { - map textures/sfx/pentfloor_diamond2c.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/pj_a1_fog1 -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 30 - fogparms ( .5 .5 .5 ) 512 -} - -textures/sfx/portal2_sfx -{ - qer_editorimage textures/sfx/portalfog.tga - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - //alphagen portal 128 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx -{ - portal - surfaceparm nolightmap - deformVertexes wave 100 sin 0 2 0 .5 - - - { - map textures/sfx/portal_sfx3.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - - { - map textures/sfx/portalfog.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - alphagen portal 256 - rgbGen identityLighting - tcmod rotate .1 //.1 - tcmod scroll .01 .03 - } -} - -textures/sfx/portal_sfx_ring -{ - deformVertexes wave 100 sin 0 2 0 .5 - cull none - - { - map textures/sfx/portal_sfx_ring_blue1.tga - blendfunc gl_src_alpha gl_one_minus_src_alpha - } - - - { - map textures/sfx/portal_sfx_ring_electric.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 1 .2 .5 - tcmod scroll 0 .5 - - } - - { - map textures/sfx/portal_sfx1.tga - blendfunc gl_dst_color gl_zero - tcMod rotate 360 - } - - { - map textures/sfx/portal_sfx_ring.tga - blendfunc gl_one gl_one - rgbgen wave inversesawtooth 0 .5 .2 .5 - } - -} - -textures/sfx/proto_hellfog -{ -qer_editorimage textures/sfx/fog_red.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap - -fogparms ( .275 .012 0 ) 500 -} - -textures/sfx/proto_zzztblu3 -{ - surfaceparm nolightmap - surfaceparm nonsolid - cull twosided - { - map textures/sfx/proto_zzztblu3.tga - tcGen environment - tcMod turb 0 0.25 0 0.5 - tcmod scroll 1 1 - blendfunc GL_ONE GL_ONE - } -} - -textures/sfx/pureblack -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map textures/skies/blacksky.tga - } -} - -textures/sfx/q3dm14fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3dm9fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 256 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/q3tourney3fog -{ - qer_editorimage textures/sfx/fog_red.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 100 - fogparms ( .55 .11 .1 ) 384 - - - - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/liquids/kc_fogcloud3.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - -textures/sfx/rain -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - deformVertexes move 3 1 0 sin 0 5 0 0.2 - deformVertexes move .6 3.3 0 sin 0 5 0 0.4 - deformVertexes wave 30 sin 0 10 0 .2 - cull none - - { - map textures/sfx/rain.tga - tcMod Scroll .5 -8 - tcMod turb .1 .25 0 -.1 - blendFunc GL_ONE GL_ONE - } - { - map textures/sfx/rain.tga - tcMod Scroll .01 -6.3 - - blendFunc GL_ONE GL_ONE - } - - -} - -textures/sfx/smallerblock3b3dim_pent -{ - qer_editorimage textures/sfx/smallerblock3b3dim_pent.tga - { - map textures/sfx/smallerblock3b3dim_pent.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/pentagramfloor_red_glow.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .5 .5 0 .5 - depthfunc equal - } -} - -textures/sfx/spawn_floor -{ - - { - map textures/sfx/firegorre2.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floor.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/spawn_floord2c -{ - - { - map textures/sfx/proto_zzztblu.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 5.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 130 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - clampmap textures/gothic_block/blocks18cgeomtrn2.tga - blendFunc blend - tcmod rotate 80 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/sfx/spawn_floord2c.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx/teslacoil -{ - cull none - q3map_lightimage textures/sfx/tesla1.tga - qer_editorimage textures/sfx/tesla1.tga - q3map_surfacelight 100 - - { - map $lightmap - tcgen environment - blendfunc filter - } - - { - map textures/sfx/tesla1.tga - blendfunc add - rgbgen wave sawtooth 0 1 0 5 - tcmod scale 1 .5 - tcmod turb 0 .1 0 1 - tcMod scroll -1 -1 - } - - - - { - map textures/sfx/electricslime.tga - blendfunc add - rgbgen wave sin 0 .5 0 1 - tcmod scale .5 .5 - tcmod turb 0 .1 0 1 - tcmod rotate 180 - tcmod scroll -1 -1 - } - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - -} - -textures/sfx/teslacoil3 -{ - cull none - q3map_lightimage textures/sfx/tesla1b.tga - q3map_surfacelight 100 - qer_editorimage textures/sfx/cabletest2.tga - surfaceparm nolightmap - - - - { - map textures/sfx/cabletest2.tga - blendfunc blend - } - - - { - map textures/sfx/electricslime2.tga - blendfunc add - rgbGen wave square .25 .25 0 2.5 - tcmod scale 1 1 - tcMod scroll 1 1 - } - - - - { - map textures/sfx/tesla1b.tga - blendfunc add - rgbgen wave square 0 1 0 3 - tcmod scale 1 1 - tcMod scroll -2 1 - } - -} - -textures/sfx/testconstantfog -{ - qer_editorimage textures/sfx/fog_green.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - surfaceparm nodrop - q3map_surfacelight 100 - fogparms ( 0 1 0 ) 300 -} - -textures/sfx/x_conduit -{ - q3map_lightimage textures/sfx/x_conduit.tga - surfaceparm nomarks - q3map_surfacelight 100 - { - map $lightmap - rgbGen identity - } - { - map textures/sfx/x_conduit.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - - { animMap 10 textures/sfx/x_conduit2.tga textures/sfx/x_conduit3.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - map textures/sfx/x_conduit2.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbGen wave sin .5 0.5 0 7 - } - { - map textures/sfx/x_conduit3.tga - blendfunc GL_ONE GL_ONE - tcmod scale -1 1 - rgbgen wave triangle .2 1 0 9 - } -} - -textures/sfx/xblackfog -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -fogparms ( 0 0 0 ) 128 - -} - -textures/sfx/xbluefog -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - q3map_lightimage textures/sfx/xbluelightimage.tga - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xbluefogx128 -{ - qer_editorimage textures/sfx/fog_blue.tga - q3map_surfacelight 300 - q3map_lightsubdivide 128 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.3 0.3 0.9 ) 128 - -} - -textures/sfx/xdensegreyfog -{ - qer_editorimage textures/sfx/fog_grey.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - - fogparms ( 0.7 0.7 0.7 ) 1700 -} - -textures/sfx/xfinalfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 3000 - -} - -textures/sfx/xfinalfoginvert -{ -qer_editorimage textures/sfx/fog_black.tga -qer_nocarve -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0 0 0 ) 256 - -} - -textures/sfx/xflame1 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 7500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame1side -{ - surfaceparm trans - surfaceparm nomarks - qer_editorimage textures/sfx/flame1.tga - surfaceparm nolightmap - cull none - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 5500 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_1800 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflame2_2250 -{ - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 2250 - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx/xflamebright -{ - deformVertexes autoSprite2 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 3000 - qer_editorimage textures/sfx/flame1.tga - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga textures/sfx/flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} - -textures/sfx/xian_dm3padwall - { - q3map_surfacelight 100 - q3map_lightimage textures/sfx/xian_dm3padwallglow.tga - qer_editorimage textures/sfx/xian_dm3padwall.tga - - { - map textures/sfx/xian_dm3padwall.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx/xian_dm3padwallglow.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx/xlightgreyfog -{ -qer_editorimage textures/sfx/fog_grey.tga -surfaceparm trans -surfaceparm nonsolid -surfaceparm fog -surfaceparm nolightmap -qer_nocarve -fogparms ( 0.7 0.7 0.7 ) 1400 - -} - -textures/sfx/xmetalfloor_wall_14b -{ - qer_editorimage textures/sfx/metalfloor_wall_14b.tga - q3map_lightimage textures/sfx/metalfloor_wall_14bglow2.tga - q3map_surfacelight 50 - { - map textures/sfx/metalfloor_wall_14b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_14bglow2.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xmetalfloor_wall_5b -{ - qer_editorimage textures/sfx/metalfloor_wall_5b.tga - - { - map textures/sfx/metalfloor_wall_7b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_5bglowblu.tga - blendfunc gl_one gl_one - rgbgen wave sin .5 .2 0 .1 - } -} - -textures/sfx/xmetalfloor_wall_9b -{ - qer_editorimage textures/sfx/metalfloor_wall_9b.tga - - { - map textures/sfx/metalfloor_wall_9b.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/metalfloor_wall_9bglow.tga - blendfunc gl_one gl_one - } -} - -textures/sfx/xq1metalbig_jumppad -{ - qer_editorimage textures/gothic_floor/q1metal7_98d_256x256.tga - surfaceparm nodamage - { - map $lightmap - rgbGen identity - } - { - map textures/gothic_floor/q1metal7_98d_256x256.tga - blendFunc GL_DST_COLOR GL_ZERO - rgbGen identity - } - { - clampmap textures/sfx/surface6jumppad.blend.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin 0.75 0.25 0 .2 - tcMod stretch sin 0.80 0.20 0 1 - } -} - -textures/sfx/xredfog -{ - q3map_lightimage textures/sfx/xredlightimage.tga - qer_editorimage textures/sfx/fog_red.tga - q3map_surfacelight 300 - q3map_lightsubdivide 64 - - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nolightmap - qer_nocarve - fogparms ( 0.9 0.3 0.3 ) 128 - -} - -textures/sfx/zap_scroll -{ - q3map_surfacelight 300 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - Map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} - -textures/sfx/zap_scroll1000 -{ - q3map_surfacelight 1000 - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - q3map_lightimage textures/sfx/zap_scroll.tga - qer_editorimage textures/sfx/zap_scroll2.tga - cull none - - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle .8 2 0 7 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 5 - tcMod scale -1 1 - tcMod scroll 0 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 6.3 - tcMod scale -1 1 - tcMod scroll 2 1 - } - { - map textures/sfx/zap_scroll2.tga - blendFunc GL_ONE GL_ONE - rgbgen wave triangle 1 1.4 0 7.7 - tcMod scroll -1.3 1 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/sfx2.shader b/install/installs/Q3Pack/install/missionpack/scripts/sfx2.shader deleted file mode 100644 index b8b81cf2..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/sfx2.shader +++ /dev/null @@ -1,1160 +0,0 @@ -textures/sfx2/senbouncenolit -{ - surfaceparm nodamage - surfaceparm nomarks - q3map_lightimage textures/sfx/jumppadsmall.tga - qer_editorimage textures/sfx/bouncepad01block18b.tga - - { - map textures/sfx/bouncepad01block18b.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } -} - - -textures/sfx2/flame_nolit_noshad -{ - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm trans - cull none - qer_editorimage textures/sfx/flame1.tga - - - { - animMap 10 textures/sfx/flame1.tga textures/sfx/flame2.tga textures/sfx/flame3.tga textures/sfx/flame4.tga textures/sfx/flame5.tga textures/sfx/flame6.tga textures/sfx/flame7.tga textures/sfx/flame8.tga - blendFunc GL_ONE GL_ONE - } - -} - -textures/sfx2/demonltblacknolight -{ - q3map_lightimage textures/sfx/demonltblackfinal_glow2.tga - surfaceparm nomarks - qer_editorimage textures/sfx/demonltblackfinal.tga - - { - map $lightmap - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal.tga - blendfunc gl_dst_color gl_zero - rgbgen identity - } - - { - map textures/sfx/demonltblackfinal_glow2.tga - blendfunc gl_one gl_one - rgbgen wave sin .9 .1 0 5 - } - -} - -textures/sfx2/jumpadx -{ - - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpadx.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/beam01 -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - cull none - nomipmaps - { - map textures/sfx2/beam01.tga - tcMod Scroll .1 0 - blendFunc add - } - -} - -textures/sfx2/ouchfog -{ - qer_editorimage textures/sfx/hellfog.tga - surfaceparm trans - surfaceparm nonsolid - surfaceparm fog - surfaceparm nodrop - surfaceparm nolightmap - q3map_globaltexture - q3map_surfacelight 50 - fogparms ( .66 0 0 ) 392 - - - - { - map textures/sfx2/ouchfog.tga - blendfunc gl_dst_color gl_zero - tcmod scale -.05 -.05 - tcmod scroll .01 -.01 - rgbgen identity - } - - { - map textures/sfx2/ouchfog.tga - blendfunc gl_dst_color gl_zero - tcmod scale .05 .05 - tcmod scroll .01 -.01 - rgbgen identity - } - -} - - -textures/sfx2/autorain -{ - surfaceparm trans - surfaceparm nomarks - surfaceparm nonsolid - surfaceparm nolightmap - qer_trans .5 - deformVertexes move 3 1 0 sin 0 5 0 0.2 - deformVertexes move .6 3.3 0 sin 0 5 0 0.4 - deformVertexes autoSprite2 - cull none - //nopicmip - - { - map textures/sfx2/autorain.tga - tcMod Scroll .5 -8 - tcMod turb .1 .25 0 -.1 - blendFunc GL_ONE GL_ONE - } - //{ - // map textures/sfx/rain.tga - // tcMod Scroll .01 -6.3 - // - // blendFunc GL_ONE GL_ONE - //} - - -} - -textures/sfx2/flameanim_red_lowlite -{ - - // ************************************************* - // * Red Flame * - // * April 24, 2000 Surface Light 1000 * - // * Please Comment Changes * - // ************************************************* - qer_editorimage textures/sfx/r_flame3.tga - q3map_lightimage textures/sfx/r_flame3.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1000 - // surfacelight changed to 1000 on 04/24/00.... PAJ - - { - animMap 10 textures/sfx/r_flame1.tga textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/r_flame2.tga textures/sfx/r_flame3.tga textures/sfx/r_flame4.tga textures/sfx/r_flame5.tga textures/sfx/r_flame6.tga textures/sfx/r_flame7.tga textures/sfx/r_flame8.tga textures/sfx/r_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/r_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} -textures/sfx2/flameanim_blue_lowlite -{ - - // ************************************************* - // * Blue Flame * - // * April 24, 2000 Surface Light 1000 * - // * Please Comment Changes * - // ************************************************* - qer_editorimage textures/sfx/b_flame7.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1000 - // texture changed to 1K surface light.... PAJ - - - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} - -textures/sfx2/blue_jumpad05 -{ - qer_editorimage textures/sfx2/jumpad05.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad05.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad05 -{ - qer_editorimage textures/sfx2/jumpad05.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad05.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/screen01 -{ - cull disable - surfaceparm nomarks - - { - map textures/sfx2/screen01.tga - tcMod scroll 9 .1 - rgbGen identity - } - { - map textures/effects2/tinfx_scr.tga - blendfunc add - tcGen environment - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - - - -} - -textures/sfx2/blue_edge -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - - { - map textures/sfx2/blue_edge.tga - blendFunc add - tcMod scale .2 .2 - tcMod scroll .2 .2 - rgbGen identity - } - - - -} -textures/sfx2/b_smack01 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/sfx2/b_smack01.tga - blendFunc add - tcMod turb 0 .05 .06 .25 - rgbgen wave sin 0 1 0 .19 - } - { - map textures/sfx2/b_smack03.tga - blendFunc add - tcMod turb 0 .05 .07 .33 - rgbgen wave sin 0 1 0 7 - } - { - map textures/sfx2/b_smack02.tga - blendFunc add - tcMod turb 0 .07 .05 .4 - rgbgen wave sin 0 1 0 .5 - } - - - -} -textures/sfx2/r_fight01 -{ - cull disable - surfaceparm trans - surfaceparm nolightmap - { - map textures/sfx2/r_fight01.tga - blendFunc add - tcMod turb 0 .05 .06 .25 - rgbgen wave sin 0 1 0 .19 - } - { - map textures/sfx2/r_fight02.tga - blendFunc add - tcMod turb 0 .05 .07 .33 - rgbgen wave sin 0 1 0 7 - } - { - map textures/sfx2/r_fight03.tga - blendFunc add - tcMod turb 0 .07 .05 .4 - rgbgen wave sin 0 1 0 .5 - } - - - -} - -textures/sfx2/ven_beam -{ - qer_editorimage textures/sfx2/ven_beam.tga - cull disable - surfaceparm trans - - { - map textures/sfx2/ven_beam.tga - blendFunc add - rgbGen identity - } - - - -} - -textures/sfx2/padwall_red - { - - q3map_lightimage textures/sfx2/dm3padwallglow_red.tga - qer_editorimage textures/sfx2/dm3padwall_red.tga - - { - map textures/sfx2/dm3padwall_red.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx2/dm3padwallglow_red.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx2/padwall_red_light - { - - q3map_lightimage textures/sfx2/dm3padwallglow_red.tga - qer_editorimage textures/sfx2/dm3padwall_red.tga - q3map_surfacelight 100 - q3map_lightsubdivide 64 - { - map textures/sfx2/dm3padwall_red.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx2/dm3padwallglow_red.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - - - -textures/sfx2/padwall_ntl - { - - q3map_lightimage textures/sfx2/dm3padwallglow_ntl.tga - qer_editorimage textures/sfx2/dm3padwall_red.tga - - { - map textures/sfx2/dm3padwall_red.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - - { - map textures/sfx2/dm3padwallglow_ntl.tga - blendfunc gl_one gl_one - rgbgen wave sin 0 1 0 .5 - tcmod scale 1 .05 - tcmod scroll 0 1 - } - -} - -textures/sfx2/ntrl_launchpad -{ - qer_editorimage textures/sfx2/launchpad03.tga - - { - map textures/sfx2/tread.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 .7 - tcmod scale 1 2 - rgbGen identity - } - { - map textures/sfx2/nlaunch.tga - blendFunc Add - tcmod scale 1 .5 - tcmod scroll 0 2 - rgbgen wave square 0 1 0 2 - alphagen wave square 0 1 .1 2 - } - - { - map textures/sfx2/launchpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx2/nlaunch2.tga - blendFunc Add - rgbgen wave square 0 1 0 1 - alphagen wave square 0 1 .1 1 - - } - -} -textures/sfx2/blue_launchpad -{ - qer_editorimage textures/sfx2/launchpad03.tga - - { - map textures/sfx2/tread.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 .7 - tcmod scale 1 2 - rgbGen identity - } - { - map textures/sfx2/blaunch.tga - blendFunc Add - tcmod scale 1 .5 - tcmod scroll 0 2 - rgbgen wave square 0 1 0 2 - alphagen wave square 0 1 .1 2 - } - - { - map textures/sfx2/launchpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx2/blaunch2.tga - blendFunc Add - rgbgen wave square 0 1 0 1 - alphagen wave square 0 1 .1 1 - - } - -} -textures/sfx2/red_launchpad -{ - qer_editorimage textures/sfx2/launchpad03.tga - - { - map textures/sfx2/tread.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 .7 - tcmod scale 1 2 - rgbGen identity - } - { - map textures/sfx2/rlaunch.tga - blendFunc Add - tcmod scale 1 .5 - tcmod scroll 0 2 - rgbgen wave square 0 1 0 2 - alphagen wave square 0 1 .1 2 - } - - { - map textures/sfx2/launchpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } - { - map textures/sfx2/rlaunch2.tga - blendFunc Add - rgbgen wave square 0 1 0 1 - alphagen wave square 0 1 .1 1 - - } - -} - - -textures/sfx2/tread2 -{ - - { - map textures/sfx2/tread2.tga - blendFunc GL_ONE GL_ZERO - tcmod scroll 0 1 - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/ntrl_jumpad -{ - qer_editorimage textures/sfx2/jumpad02.tga - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/blue_jumpad -{ - qer_editorimage textures/sfx2/jumpad02.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad -{ - qer_editorimage textures/sfx2/jumpad02.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad02.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/ntrl_jumpad2 -{ - qer_editorimage textures/sfx2/jumpad01.tga - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/blue_jumpad2 -{ - qer_editorimage textures/sfx2/jumpad01.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad2 -{ - qer_editorimage textures/sfx2/jumpad01.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad01.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -///// -textures/sfx2/ntrl_jumpad3 -{ - qer_editorimage textures/sfx2/jumpad03.tga - - { - map textures/sfx2/jumpadn.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadn2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/sfx2/blue_jumpad3 -{ - qer_editorimage textures/sfx2/jumpad03.tga - - { - map textures/sfx2/jumpadb.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadb2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/red_jumpad3 -{ - qer_editorimage textures/sfx2/jumpad03.tga - - { - map textures/sfx2/jumpadr.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - //tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/sfx2/fan01.tga - blendFunc blend - tcmod rotate -311 - rgbGen identity - } - { - clampmap textures/sfx2/jumpadr2.tga - blendfunc Add - tcmod rotate 130 - tcMod stretch sin 1.2 .8 0 1.4 - rgbGen wave square .5 .5 .25 1.4 - } - { - map textures/sfx2/jumpad03.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/sfx2/redgoal2 -{ - surfaceparm nolightmap - //surfaceparm nonsolid - surfaceparm trans - cull twosided - { - map textures/sfx2/redgoal2.tga - tcGen environment - tcmod scale 2 2 - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.5 - } -} - - -textures/sfx2/bluegoal2 -{ - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - cull twosided - { - map textures/sfx2/bluegoal2.tga - tcGen environment - tcmod scale 2 2 - blendfunc GL_ONE GL_ONE - tcMod turb 0 0.25 0 0.5 - } -} -textures/sfx2/swirl_b1 -{ - deformVertexes wave 100 sin 1 2 .1 1 - //q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm nonsolid - cull none - - { - clampmap textures/sfx2/swirl_b1.tga - blendFunc GL_ONE GL_ONE - tcMod rotate -188 - } - { - clampmap textures/sfx2/swirl_b2.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 333 - } - -} -textures/sfx2/swirl_r1 -{ - deformVertexes wave 100 sin 1 2 .1 1 - //q3map_surfacelight 300 - - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - surfaceparm nonsolid - cull none - - { - clampmap textures/sfx2/swirl_r1.tga - blendFunc GL_ONE GL_ONE - tcMod rotate -188 - } - { - clampmap textures/sfx2/swirl_r2.tga - blendFunc GL_ONE GL_ONE - tcMod rotate 333 - } - -} -textures/sfx2/jumportal01 -{ - - - surfaceparm trans - cull none - - { - map textures/sfx2/jumportal01.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/sfx2/jumportal02 -{ - - - surfaceparm trans - cull none - - { - map textures/sfx2/jumportal02.tga - alphaFunc GE128 - depthWrite - rgbGen identity - - } - { - map $lightmap - rgbGen identity - blendFunc GL_DST_COLOR GL_ZERO - depthFunc equal - } -} -textures/sfx2/scrolling_red -{ - qer_editorimage textures/base_light/jaildr1_3.tga - surfaceparm nomarks - q3map_lightimage textures/base_light/jaildr1_3.blend.tga - q3map_surfacelight 1000 - { - map $lightmap - rgbGen identity - } - { - map textures/base_light/jaildr1_3.tga - blendFunc GL_DST_COLOR GL_ZERO - tcMod scroll 0 -.25 - rgbGen identity - } - { - map textures/base_light/jaildr1_3.blend.tga - rgbGen wave sin 0.5 0.5 1 1 - tcMod scroll 0 -.25 - blendfunc GL_ONE GL_ONE - } -} - -textures/sfx2/b_flame1 -{ - qer_editorimage textures/sfx/b_flame1.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - - - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } - -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/skies.shader b/install/installs/Q3Pack/install/missionpack/scripts/skies.shader deleted file mode 100644 index 27c27979..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/skies.shader +++ /dev/null @@ -1,1073 +0,0 @@ -textures/skies/blacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 25 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 90 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/hellsky -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 4 3 3 65 290 75 - q3map_surfacelight 50 - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.05 0 - tcMod scale 2 2 - depthWrite - } -} - -textures/skies/hellsky2 -{ - qer_editorimage textures/skies/dimclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .9 .9 1 70 65 78 - q3map_surfacelight 60 - skyparms - 512 - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.02 0 - tcMod scale 1 1 - depthWrite - } - { - map textures/skies/dimclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.02 0.01 - tcMod scale 3 3 - } - -} - -textures/skies/hellsky2bright -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 1 1 100 220 50 - q3map_surfacelight 120 - - qer_editorimage textures/skies/inteldimredclouds.tga - - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/kc_dm10sky -{ - q3map_lightimage textures/skies/pjbasesky.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - - -} - -textures/skies/kcbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 500 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/killsky -{ - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 3 2 2 70 315 65 - q3map_surfacelight 75 - skyparms - 512 - - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/mkc_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 0.266383 0.274632 0.358662 150 60 80 - q3map_surfacelight 700 - - skyparms half 256 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/nightsky_xian_dm1 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 300 - q3map_sun 1 1 1 100 -41 58 - - qer_editorimage textures/skies/xnight2_up.tga - - - skyparms env/xnight2 - - -} - -textures/skies/nightsky_xian_dm15 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm nolightmap - surfaceparm noimpact - - q3map_surfacelight 900 - q3map_sun 1 1 1 100 -58 58 - skyparms env/xnight2 - - - - -} - -textures/skies/nightsky_xian_dm4 -{ - qer_editorimage textures/skies/xnight2_up.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 1 80 -41 58 - q3map_surfacelight 50 - skyparms env/xnight2 - - -} - -textures/skies/pj_arena2sky -{ - qer_editorimage textures/skies/pjbasesky.tga - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 55 - q3map_surfacelight 100 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_arena4_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 200 165 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf1sky -{ - qer_editorimage textures/skies/pjbasesky - - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 100 350 75 - q3map_surfacelight 150 - - skyparms full 200 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_ctf2_sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 0.266383 0.274632 0.358662 250 90 45 - q3map_surfacelight 100 - - skyparms full 128 - - - { - map textures/skies/bluedimclouds.tga - tcMod scroll 0.015 0.016 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/topclouds.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.012 - tcMod scale 5 5 - } -} - -textures/skies/pj_dm10sky -{ - q3map_lightimage textures/common/white.tga - q3map_lightsubdivide 512 - q3map_globaltexture - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 90 225 55 - q3map_surfacelight 150 - - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } - -} - -textures/skies/pj_dm9sky -{ - qer_editorimage textures/skies/bluetopclouds.tga - q3map_lightimage textures/skies/topclouds.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - - q3map_sun .5 .6 .8 140 165 60 - q3map_surfacelight 80 - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/pjbasesky_arena1_sky -{ - qer_editorimage textures/skies/pjbasesky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 100 - - skyparms - 512 - - - { - map textures/skies/dimclouds.tga - tcMod scroll 0.01 0.01 - tcMod scale 3 3 - depthWrite - } - { - map textures/skies/pjbasesky.tga - blendfunc GL_ONE GL_ONE - tcMod scroll -0.01 -0.01 - tcMod scale 5 5 - } -} - -textures/skies/q3dm0 - -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 60 80 75 - q3map_surfacelight 80 - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/skybox -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/space1_bk.tga - q3map_sun 1 1 1 100 -58 58 - q3map_surfacelight 400 - - skyparms env/space1 - - - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/stars_arena7 -{ - qer_editorimage textures/skies/black_up.tga - - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 10 - q3map_sun .6 .6 .6 30 35 78 - - skyparms env/black - - -} - -textures/skies/tim_dm14 -{ - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun 3 2 2 90 314 60 - q3map_surfacelight 80 - skyparms - 512 - - - //cloudparms 512 full - //lightning - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm14red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - q3map_sun .5 .37 .19 70 314 60 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_dm3_red -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 70 30 70 - - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_hell -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun 1 .77 .77 80 315 70 - q3map_surfacelight 130 - skyparms - 384 - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/tim_km2 -{ - q3map_lightimage textures/skies/stars_red.tga - qer_editorimage textures/skies/killsky_1.tga - surfaceparm noimpact - surfaceparm nomarks - surfaceparm nolightmap - - q3map_sun .5 .37 .19 90 315 40 - q3map_surfacelight 80 - skyparms - 512 - - - { - map textures/skies/killsky_1.tga - tcMod scroll 0.05 .1 - tcMod scale 2 2 - depthWrite - } - { - map textures/skies/killsky_2.tga - blendfunc GL_ONE GL_ONE - tcMod scroll 0.05 0.06 - tcMod scale 3 2 - } -} - -textures/skies/toxicsky -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskydim -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 100 - q3map_sun 1 1 0.5 80 30 70 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_blue -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 70 60 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_ctf1 -//used in tim_ctf1 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 70 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm2 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun .5 .6 .8 100 190 75 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm3 - -{ - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 80 - q3map_sun 1 1 0.5 100 30 60 - - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/toxicskytim_dm4 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 90 120 75 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm5 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_sun 1 .78 .48 90 225 55 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm7 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .5 .6 .8 100 260 50 - q3map_surfacelight 120 - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm8 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun 1 1 0.5 85 220 40 - q3map_surfacelight 120 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/toxicskytim_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_sun .980 .835 .3 100 25 65 - q3map_surfacelight 80 - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xblacksky -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_surfacelight 300 - q3map_lightsubdivide 512 - q3map_sun 1 1 1 32 45 90 - { - map gfx/colors/black.tga - } -} - -textures/skies/xblacksky_dm7 -{ - qer_editorimage textures/skies/blacksky.tga - surfaceparm noimpact - surfaceparm nolightmap - { - map gfx/colors/black.tga - } -} - -textures/skies/xtoxicsky_ctf -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm14 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 800 - q3map_sun 1 1 0.85 100 90 90 - - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - skyparms - 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm3 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_dm9 -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 400 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicsky_q3ctf3 -{ - surfaceparm noimpact - surfaceparm nolightmap - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - q3map_surfacelight 500 - q3map_sun 1 1 0.5 150 30 60 - skyparms - 512 - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} - -textures/skies/xtoxicsky_tourney -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_lightimage textures/skies/toxicsky.tga - qer_editorimage textures/skies/inteldimredclouds.tga - q3map_surfacelight 495 - q3map_sun 1 1 0.5 150 75 60 - skyparms - 512 - - - { - map textures/skies/inteldimclouds.tga - tcMod scroll 0.1 0.1 - tcMod scale 3 2 - depthWrite - } - { - map textures/skies/intelredclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scroll 0.05 0.05 - tcMod scale 3 3 - } -} - -textures/skies/xtoxicskytim_q3dm5 - -{ - surfaceparm noimpact - surfaceparm nolightmap - - q3map_surfacelight 400 - q3map_sun .5 .6 .8 150 30 60 - - - q3map_lightimage textures/common/white.tga - qer_editorimage textures/skies/bluetopclouds.tga - skyparms - 512 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.15 0.15 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/skies2.shader b/install/installs/Q3Pack/install/missionpack/scripts/skies2.shader deleted file mode 100644 index 45ff6f88..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/skies2.shader +++ /dev/null @@ -1,245 +0,0 @@ -textures/skies2/ctf6sky -{ - qer_editorimage textures/skies2/ctf6sky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_sun 0.266383 0.274632 0.358662 150 60 85 - q3map_surfacelight 100 - - skyparms - 512 - - - { - map textures/skies2/ctf6sky2.tga - - tcMod scale 3 3 - tcMod scroll 0.01 0.01 - depthWrite - } - { - map textures/skies2/ctf6sky.tga - - blendfunc Add - tcMod scale 1.2 0.9 - tcMod scroll .013 .002 - - } -} - -textures/skies2/ctf6sky_ter -//sky for mpterra2 -{ - qer_editorimage textures/skies2/ctf6skyb.tga - qer_lightimage textures/skies2/ctf6sky2b.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 512 - q3map_sun 1 1 1 185 180 85 - q3map_surfacelight 300 - skyparms - 512 - - - { - map textures/skies2/ctf6sky2b.tga - - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - depthWrite - } - { - map textures/skies2/ctf6skyb.tga - - blendfunc Add - tcMod scale 1.2 0.9 - tcMod scroll .013 .002 - - } -} - -textures/skies2/nebulax -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - - skyparms textures/skies2/env/nebulax - - - - -} - -textures/skies2/nebula3 -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/proto_sky.tga - q3map_sun .90 .90 .95 80 315 40 - q3map_surfacelight 460 - - skyparms textures/skies2/env/nebula3 - - - - -} - -textures/skies2/x_nebula3 -{ - qer_editorimage textures/skies2/nebula3.tga - q3map_lightsubdivide 512 - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - - q3map_lightimage textures/skies/proto_sky.tga - q3map_sun .90 .90 .95 150 135 50 - q3map_surfacelight 200 - - skyparms textures/skies2/env/nebula3 - - -} - - - -textures/skies2/nebula3halflit -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/proto_sky.tga - q3map_sun .90 .90 .95 80 315 40 - q3map_surfacelight 190 - - skyparms textures/skies2/env/nebula3 - - - - -} - -textures/skies2/nebula3nolit -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - skyparms textures/skies2/env/nebula3 - - - - -} - - -textures/skies2/nebula2 -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .90 .90 .95 80 315 40 - q3map_surfacelight 60 - - skyparms textures/skies2/env/nebula2 - - - -} - -textures/skies2/nebula -{ - qer_editorimage textures/skies2/nebula3.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .75 .37 .19 90 315 40 - q3map_surfacelight 80 - - skyparms textures/skies2/env/nebula - - - - -} - -textures/skies2/hell1 -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun 1 1 1 55 -58 58 - q3map_surfacelight 400 - - skyparms textures/skies2/env/hell1 - - - -} - -textures/skies2/xhell1_nolight -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun 1 1 1 55 -58 58 - - skyparms textures/skies2/env/hell1 - - - -} - - -textures/skies2/hell2 -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .75 .37 .19 90 315 40 - q3map_surfacelight 80 - - skyparms textures/skies2/env/hell2 - - - - -} - -textures/skies2/hell3 -{ - qer_editorimage textures/skies2/hell1.tga - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - q3map_lightimage textures/skies/stars.tga - q3map_sun .75 .37 .19 90 315 40 - q3map_surfacelight 80 - - skyparms textures/skies2/env/hell3 - - - - -} - -textures/skies2/mpterra2 -//used terrain ctf map - -{ - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm sky - - q3map_sun 1 1 1 200 180 85 - q3map_surfacelight 90 - - qer_editorimage textures/skies/toxicbluesky.tga - - skyparms - 1024 - - - { - map textures/skies/bluedimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.0355 0.0355 - depthWrite - } - { - map textures/skies/topclouds.tga - blendFunc GL_ONE GL_ONE - tcMod scale 3 3 - tcMod scroll 0.0125 0.0125 - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/stone2.shader b/install/installs/Q3Pack/install/missionpack/scripts/stone2.shader deleted file mode 100644 index eab89729..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/stone2.shader +++ /dev/null @@ -1,10 +0,0 @@ - -textures/stone2/pjrock5_vertex -{ - surfaceparm nolightmap - qer_editorimage textures/stone/pjrock5.tga - { - map textures/stone/pjrock5.tga - rgbGen vertex - } -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/team.shader b/install/installs/Q3Pack/install/missionpack/scripts/team.shader deleted file mode 100644 index e05bb796..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/team.shader +++ /dev/null @@ -1,140 +0,0 @@ -"team_icon/the fallen_red" -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/thefallen_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -"team_icon/the fallen_blue" -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/thefallen_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/intruders_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/intruders_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/intruders_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/intruders_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/crusaders_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/crusaders_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/crusaders_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/crusaders_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/pagans_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/pagans_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/pagans_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/pagans_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/stroggs_red -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/stroggs_red.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} -team_icon/stroggs_blue -{ - cull none - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - { - map team_icon/stroggs_blue.tga - blendFunc Add - rgbgen wave triangle 0.2 0.5 0 0.2 - - } - -} diff --git a/install/installs/Q3Pack/install/missionpack/scripts/terrain.shader b/install/installs/Q3Pack/install/missionpack/scripts/terrain.shader deleted file mode 100644 index fe729223..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/terrain.shader +++ /dev/null @@ -1,557 +0,0 @@ -// ************************************************* -// * -// * Vertex Lighting Replacement Shaders -// * -// ************************************************* - -textures/terrain/vxmpterra2 - -{ - qer_editorimage textures/stone/pjrock10bc.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock10b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -textures/terrain/vxmpterra1 - -{ - qer_editorimage textures/stone/pjrock12c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - - { - - map textures/stone/pjrock12c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - -} - - -// ********************************************************* - -// ************************************************* -// * -// * MPTerra2 terrain shaders (PaulJ) -// * -// ************************************************* - - -textures/terrain/mpterra2_0 - -{ - qer_editorimage textures/stone/pjrock9b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock9b_2.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1 - -{ - qer_editorimage textures/stone/pjrock12b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock12b_2.tga - rgbGen vertex - tcmod scale 0.1 0.1 - - } - - { - - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_2 -{ - qer_editorimage textures/stone/pjrock10b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - -} - -textures/terrain/mpterra2_0to1 - -{ - qer_editorimage textures/stone/pjrock9b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - - { - map textures/stone/pjrock12b_2.tga - tcmod scale 0.1 0.1 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -textures/terrain/mpterra2_0to2 -{ - qer_editorimage textures/stone/pjrock9b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.05 0.05 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - - } - - -} - -textures/terrain/mpterra2_1to2 -{ - qer_editorimage textures/stone/pjrock12b_2.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - - { - map textures/stone/pjrock12b_2.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.1 0.1 - } - - { - map textures/stone/pjrock10b_2.tga - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - { - map textures/skies2/clouds.tga - blendfunc filter - detail - tcmod scale 0.01 0.01 - tcMod scroll -0.05 0.05 - tcmod transform 1 0 1 1 1 1 - } - - -} - -////////////////////////////////////////////// -// // -// x_mpterra // -// // -////////////////////////////////////////////// - -textures/terrain/vxmpterra3 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -textures/proto2/xproto_0to1 - -{ - qer_editorimage textures/proto2/px01.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - - } - - { - map textures/proto2/px02.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_1to2 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - alphaGen vertex - } - - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - -textures/proto2/xproto_0to2 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } - { - map textures/proto2/px03.tga - rgbGen vertex - alphaGen vertex - tcmod scale .1 .1 - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - - -} - - - -textures/proto2/xproto_0 - -{ - qer_editorimage textures/proto2/px01.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - - - { - map textures/proto2/px01.tga - tcmod scale .1 .1 - rgbGen vertex - } - - - -} - -textures/proto2/xproto_1 - -{ - qer_editorimage textures/proto2/px02.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px02.tga - tcmod scale .1 .1 - rgbGen vertex - } - - - -} - -textures/proto2/xproto_2 - -{ - qer_editorimage textures/proto2/px03.tga - surfaceparm nolightmap - //q3map_novertexshadows - //q3map_forcesunlight - surfaceparm dust - { - map textures/proto2/px03.tga - tcmod scale .1 .1 - rgbGen vertex - } - -} - - - -// ************************************************* -// * -// * MPTerra1 terrain shaders (Tim) -// * -// ************************************************* - -textures/terrain/mpterra1_0 -{ - qer_editorimage textures/stone/pjrock9c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1 -{ - qer_editorimage textures/stone/pjrock12c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - //tcmod transform 1 0 1 1 1 1 - rgbGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_2 -{ - qer_editorimage textures/stone/pjrock10c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock10c.tga - tcmod scale 0.05 0.05 - rgbGen vertex - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to1 -{ - qer_editorimage textures/stone/pjrock9c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock12c.tga - tcmod scale 0.125 0.125 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_0to2 -{ - qer_editorimage textures/stone/pjrock9c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock9c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - //tcmod transform 1 0 1 1 1 1 - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } - -} - -textures/terrain/mpterra1_1to2 -{ - qer_editorimage textures/stone/pjrock12c.tga - surfaceparm nolightmap - q3map_novertexshadows - q3map_forcesunlight - { - map textures/stone/pjrock12c.tga - rgbGen vertex - alphaGen vertex - tcmod scale 0.125 0.125 - } - { - map textures/stone/pjrock10c.tga - //tcmod transform 1 0 1 1 1 1 - tcmod scale 0.05 0.05 - rgbGen vertex - alphaGen vertex - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - } - { - map textures/skies2/clouds2.tga - blendfunc filter - tcmod scale 0.01 0.01 - tcMod scroll -0.1 0.1 - - } -} \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/scripts/tim.shader b/install/installs/Q3Pack/install/missionpack/scripts/tim.shader deleted file mode 100644 index c5c2b3db..00000000 --- a/install/installs/Q3Pack/install/missionpack/scripts/tim.shader +++ /dev/null @@ -1,213 +0,0 @@ -//Bwahahahahhaha - -textures/tim/red_flagbase -{ - qer_editorimage textures/tim/flagbase.tga - - { - map textures/tim/swirl_red.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/tim/swirl_red.tga - blendFunc Add - tcmod rotate 80 - tcMod stretch sin .7 0.5 0 .1 - rgbGen identity - } - { - map textures/tim/flagbase.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/tim/blue_flagbase -{ - qer_editorimage textures/tim/flagbase.tga - - { - map textures/tim/swirl_blue.tga - blendFunc GL_ONE GL_ZERO - tcmod rotate 130 - tcMod stretch sin .7 0.5 0 .2 - rgbGen identity - } - { - map textures/tim/swirl_blue.tga - blendFunc Add - tcmod rotate 80 - tcMod stretch sin .7 0.5 0 .1 - rgbGen identity - } - { - map textures/tim/flagbase.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} -textures/tim/timborder11c -{ - q3map_surfacelight 300 - q3map_lightimage textures/tim/tim11c_pulse1.tga - qer_editorimage textures/base_trim/border11c.tga - - { - map textures/base_trim/border11c.tga - rgbGen identity - } - - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - - { - map textures/base_trim/border11c_light.tga - blendfunc gl_one gl_one - rgbgen wave sin 1 .1 0 5 - } - - - { - map textures/tim/tim11c_pulse1.tga - blendfunc gl_one gl_one - tcmod scale .035 1 - tcmod scroll -0.65 0 - - - } - - -} - -textures/tim/rmetaltechgeomtrn -{ - - - { - map textures/sfx/fire_ctfred.tga - tcmod scroll 0 1 - tcMod turb 0 .25 0 1.6 - tcmod scale 2 2 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/tim/rmetaltechgeomtrn.tga - blendFunc blend - tcmod rotate 30 - tcMod stretch sin .8 0.2 0 .2 - rgbGen identity - } - { - map textures/base_wall/metaltechgeomtrn2.tga - blendFunc blend - tcmod rotate 20 - tcMod stretch sin .8 0.2 0 .1 - rgbGen identity - } - { - map textures/tim/rmetaltechgeomtrn.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} - -textures/tim/redmetalsupport2fline -{ - q3map_surfacelight 100 - q3map_lightimage textures/tim/redmetalsupport2fline_glow.tga - - { - map textures/base_wall/chrome_env.tga - rgbGen identity - tcGen environment - tcmod scale .25 .25 - } - - { - map textures/tim/redmetalsupport2fline.tga - blendFunc blend - rgbGen identity - } - { - map $lightmap - blendfunc filter - rgbGen identity - } - - { - map textures/tim/redmetalsupport2fline_glow.tga - blendFunc add - rgbGen wave sin .5 .5 0 1 - } - - -} -textures/tim/symbol_redlt1 -{ - q3map_lightimage textures/tim/symbol_redlt1_mask.tga - q3map_surfacelight 100 -// light 1 - - { - map $lightmap - rgbGen identity - } - - - { - map textures/tim/symbol_redlt1.tga - blendfunc filter - rgbgen identity - } - - { - map textures/tim/symbol_redlt1_mask.tga - blendfunc add - rgbgen wave sawtooth .2 .05 0 7 - } -} - -textures/tim/rconcrete_ow -{ - - { - map textures/tim/proto_zzztred.tga - tcMod turb 0 .5 0 9.6 - tcmod scale 2 2 - tcmod scroll 9 5 - blendFunc GL_ONE GL_ZERO - rgbGen identity - } - { - map textures/tim/rconcrete_ow.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen identity - } - { - map $lightmap - blendFunc GL_DST_COLOR GL_ONE_MINUS_DST_ALPHA - rgbGen identity - } -} diff --git a/install/installs/Q3Pack/install/missionpack/terrademo-README.txt b/install/installs/Q3Pack/install/missionpack/terrademo-README.txt deleted file mode 100644 index ba17b47c..00000000 --- a/install/installs/Q3Pack/install/missionpack/terrademo-README.txt +++ /dev/null @@ -1,40 +0,0 @@ -Terrain Map Demo for Quake III Arena (ver >= 1.27g) -All included media (c) Id Software -Archive built by qeradiant.com, - thanks for the help to Fubar - Fubar_@btinternet.com -version 2 - 1/9/2001 -===================================================== - -version 2 update: new q3map (patchlevel 2) included in this archive, solves the -shader blending bug on terrain maps. - -This archive contains a complete set of shaders, textures, models needed to -build a small terrain map that will run with a Quake III Arena installation -(version >= 1.27g) - -So far terrain maps have only been seen in Quake III: Team Arena, but the -terrain capabilities are indeed in the Quake III engine and will soon be used in -mods and maps. The aim of this archive is to provide a starting point to do -terrain maps if you don't have Quake III: Team Arena. If you have Quake III: -Team Arena installed and GtkRadiant configured for it, you can use -missionpack/maps/terrademo.map - -If you are going to write your own terrain maps, you will need to redistribute -some of the shaders in your pk3. Keep in mind that a default Quake III Arena -installation will not have common/terrain for example. - -We also include an update to the tree mapobjects, the shaders were missing. If -you use the trees in your maps you need to redistribute those shaders too. - -There is an update to q3map included, if q3map fails to load the alphamap for a -terrain entity, it will exit cleanly instead of crashing. - -Basic setup: - -1) Unzip the archive to your baseq3/ directory, move the new q3map where belongs - -2) In order to compile the sample map correctly you need to add a line with the -new .shader file name in your shaderlist.txt: add "terrademoQ3" at the end the -file. If you don't do that, q3map will simply not see those new shaders. - -3) You can now open terrademoQ3.map and compile it \ No newline at end of file diff --git a/install/installs/Q3Pack/install/missionpack/textures/.svn/entries b/install/installs/Q3Pack/install/missionpack/textures/.svn/entries deleted file mode 100644 index 6b7cb966..00000000 --- a/install/installs/Q3Pack/install/missionpack/textures/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/textures -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -base_wall2 -dir - diff --git a/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/entries b/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/entries deleted file mode 100644 index bfd9744d..00000000 --- a/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/Q3Pack/trunk/install/missionpack/textures/base_wall2 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2006-02-09T00:07:34.157408Z -1 -spog - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -techfloor_kc_blue.tga -file - - - - -2012-04-01T16:51:40.299323Z -b84854f955fc6d41913f3d1c2f18ccb0 -2006-02-09T00:07:34.157408Z -1 -spog -has-props - - - - - - - - - - - - - - - - - - - - -42275 - diff --git a/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/prop-base/techfloor_kc_blue.tga.svn-base b/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/prop-base/techfloor_kc_blue.tga.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/prop-base/techfloor_kc_blue.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/text-base/techfloor_kc_blue.tga.svn-base b/install/installs/Q3Pack/install/missionpack/textures/base_wall2/.svn/text-base/techfloor_kc_blue.tga.svn-base deleted file mode 100644 index 285ff52b2146529bce517dd0b5066e2956b2b221..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42275 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 - - - - - - - - - diff --git a/install/installs/ReactionPack/game/.svn/text-base/synapse.config.svn-base b/install/installs/ReactionPack/game/.svn/text-base/synapse.config.svn-base deleted file mode 100644 index 693ed8d0..00000000 --- a/install/installs/ReactionPack/game/.svn/text-base/synapse.config.svn-base +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - png tga jpg - - - pk3 - - - quake3 - - - mapq3 - - - def - - - quake3 - - - - - - pk3 - - - - - - quake3 - - - pk3 - - - - - quake3 - - - - - quake3 - - - - - quake3 - - - pk3 - - - diff --git a/install/installs/ReactionPack/game/game.xlink b/install/installs/ReactionPack/game/game.xlink deleted file mode 100644 index 9d71d794..00000000 --- a/install/installs/ReactionPack/game/game.xlink +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/install/installs/ReactionPack/game/synapse.config b/install/installs/ReactionPack/game/synapse.config deleted file mode 100644 index 693ed8d0..00000000 --- a/install/installs/ReactionPack/game/synapse.config +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - png tga jpg - - - pk3 - - - quake3 - - - mapq3 - - - def - - - quake3 - - - - - - pk3 - - - - - - quake3 - - - pk3 - - - - - quake3 - - - - - quake3 - - - - - quake3 - - - pk3 - - - diff --git a/install/installs/ReactionPack/install/.svn/entries b/install/installs/ReactionPack/install/.svn/entries deleted file mode 100644 index ebbd74fb..00000000 --- a/install/installs/ReactionPack/install/.svn/entries +++ /dev/null @@ -1,34 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-25T02:40:33.910936Z -66 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -docs -dir - -Boomstick -dir - diff --git a/install/installs/ReactionPack/install/Boomstick/.svn/entries b/install/installs/ReactionPack/install/Boomstick/.svn/entries deleted file mode 100644 index 96f2d496..00000000 --- a/install/installs/ReactionPack/install/Boomstick/.svn/entries +++ /dev/null @@ -1,65 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/Boomstick -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-25T02:40:33.910936Z -66 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -common-tti.pk3 -file - - - - -2012-04-01T16:52:40.063741Z -5b5bc9040dfdc1082876ae59c9fdb9cb -2011-01-25T02:40:33.910936Z -66 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -518829 - -scripts -dir - diff --git a/install/installs/ReactionPack/install/Boomstick/.svn/prop-base/common-tti.pk3.svn-base b/install/installs/ReactionPack/install/Boomstick/.svn/prop-base/common-tti.pk3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/Boomstick/.svn/prop-base/common-tti.pk3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/Boomstick/.svn/text-base/common-tti.pk3.svn-base b/install/installs/ReactionPack/install/Boomstick/.svn/text-base/common-tti.pk3.svn-base deleted file mode 100644 index ca001609ca2d9b80df35262d6492b6687dbe6cac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518829 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 z%0D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 &e! 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 z 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±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 (^7Xd(3uQ%8c6Lg6EaCuZK%`2R?!{c(27zE z3%ip%Z5$Qx9=)oqo9KWfL>EDPIJhQjd9h<5~V95SNY zYJ(4RklZlfQBZK|mg6Kn4~itmd}BLkA8#IRW(x{ZK*FggZA;QBgA9G3h*m9YqjMcw zS?L6sg=_65;h^I z+;DKFoM$KIuJX_s5KTDIp0YRJjFd-4u`_QoXBm69_p^k$S=@d@GSs{pf>f0Qq~Ol)4X%$jqL=HP=WQsLo(P_NV1I8C)k|9VVk=pa^O%I zIQ7j49Uh0lM0otSkQkqLy-|C6b!)Aj!99584UyjT4G<}#a8qQai)UCn{hN~kd1$5|T%=$$1Hlc*iEK>}}dKm|`5U{=oi}urKM?OAQM%hA_X)?|H$#j-csrF*BEvyw2qWMudhN10wY*mp4tu*6c{!v`fbjr+_?+nb7dz12&D7L7E3KLVk)Y$&)n;lNhEp7muUao!9iaqd=& zoAbFB;P?86wUwwsfwvod_;;>aUwigTc_}IFUH%s)FnPe2?J`EbfDd~QL z{T?$Z|Hk`)q@F$BdQpU@E5wAuPe5|u=1^!|;KT4;GKUN{PwU^F@jP8Mv@O*UY5hX< z8CBt@Kk%jK^7jgc7q{iHBCTy+-Ck+%o%%lWG`IuK z0fGI3u)y}q;EO$cG@OYfhqwin9?)+#YiI998`RJNAo%~#Jvjg99&2R}7zJVwkjsDf z|Is~;PXA5!p!_3y{&WAE?(r~J%|!%UhId1}{KeWL?O=w0McabK+wymYx$c7S>?ZAy z#q#v@M7-|t4jAE41pvN`tIEo%%WTNh(~f>9Nh|#uB?p<5t^P8-1qLB})CVl~Pk&3% zB;4~dfdoZ-2n~Q_t&4*MRhckSmR8vu{XPF{a`g8nY;tmuo0~^N!}lE_2!96Yc{<*? z6a?AJ1y^#+Kb4aNG>4y=496tR4+Ag(HcYrSQ3&-NwC}ZiWLDPOlF&|6r^d#=R-g3@ zr$WluNgkE=rlIg;0Z2lQZy0~(+IMdfdpQ`Qh|~<`tdD>zTN8rX9s0P^WoY8z{2esZdPR5VQlSPp;0cXDaHBVOcl{OKZ%Qa@aXK6% zX4IvR4uO$0=oQrAS!2dR!UPW*0zCrnf`d!Y<6AwK|Yzxvm@;#@^>^tvs9C+z}5i<_59r zd{^vkY*yXJ8InkG>~`ZjL%d_0y#T^A>li8?zE$la1f-}r!k zLvRSl}k@4QLGNq7&Ux`F%wOFe}EiCAi}!yA4w0iOUN$-|$} zqZjc3h>a}8|6C1i*a&?#nZYKL-rS{+W{kE$qH^W5s6t3KL%^@5wB)oXz@$Do`?kSM zKa84OtzM6#-H&=Q3&{lx{~?M3V`hnpvlVS605yGA&7s1|`a%8}TqQ+BL>-gvLIZX~ z-)aI@&tJZwh$tiPeNT^SsWs^2zrGqa9}1$mAgk3)VCiDCt(m0#2vwP`5|E6t?$;vi zsyR2q9kNv;eX>hIw&>>#or0;MHSJua0#2|UDgJZoONjeVp?@+EwxN(BEB;eTKiUA4 zvhqssCz7HRHax878QcCy;!Q<{RVN>Ln&y+niPX>+w<1Lb zGZ4@o;B`sOdbE$QmTvhwYdm_`eEd23*ZE2LXmskniB)tYxfGF zD7m6&3VVy4gKi{6=8Wi@^$$1frp@;0UfC{L_tHo>7EDh%Kc!s@HT*VZlAYn5gLSdb z{5i_s+P^B>G_uR@g1Hnlo9OD5YmaTcXqggq%l>Np0R7omK__G$F%q+IzSDKQ(E2p2 z0~hYHQL_3tk+fyJLAn(W%`1r$a4Q@}N$!k=ik3v#2(2vto?)_|MY9izh!ilF@)(Lx zg8(gWe=KQX_!(xrj1i9Uj-g`V5#MybfB)pdK5ILR8sEVx=H73kE${G@$C|pn3^(f% zbso)I*=4?dvUKY*tpbhMC>ofz_ES8skJ+D2CEU;z$hKh}sZx}My5`%Yv~Hpn)(Lt4 z3;=Sq9bU|BrGLxpU{R_Vq*K$3)(+IF*L&pIkw&znTtEK0s)}8hZ~lk!xq^F(smFAoCiGjer2Msyl*O5MA}kjT3JK*8#WUUE3^5V>p8T!@ zYXcjc9JOH2q1$PXYHg6yB9-Ak>FuLXPRe}}D>m7sIX;M?@*2qrTV)w4P?U}!vbhvho{XiEIhT0dVEm9|YeRIEwt9Y8T;B)Nt+?lys zkh4tgA$tXT87*<0C%J`M7GN9Yvl^F6`P)2J_SRiot;A#jMmL*A7mL=-zQI&;@M(3@ zXxjH3D_Ol@#aE+C#dXfp!Jnw_-8S_ETQvcxecEidaQS$xmzJf)kd~kgKkb`Ng)TT9 z5t{wd;u2Oz9lljwg6Qal3OlUGvuLj0L)a0HAsFZuv2d$Y`=e279L7GGc8=X3u~MBj1M!UdOzrH6 zK~@2C5KjZrz+%yb6MxVATO(hCg(fF_?lhNE9RE=)N$yvCXZHNJ)XCWNy8A1q8NU5^ zp;rD6$&B>no)}nm%*jL2YWa+)>C=pGs&&)W6t4(1pFs$3OR~_PEyxgJa==*sT z)0L^oc#MgRFN|AKbp4U5yyH-mOqcW6@J&5VVo zuk+knqawC;yeU$e9Mzt~}Rp(k!^@(y$F!KmYisL4nSu}Eg9rz#?) zMG*>Y8&^L_`;;sIZ@xpsXNZi|uv@FO&U&c`oxds=f2z;cuRqs#c52OTWwi~9yG+ne z4Bt(*P=nfN+GMTPeYDq|>*d4qW4KQI>H0dp=D^$Yjn*?ie*_a#i1|NHk>_A^ycfNbxR>2=6lI@#1AKn zMomZI!w$pnO`@V;Vr*f#1_=1jCT0Klw|z$HHywyyNkw7w5}3)SjZ+{~FeTe9BYWQT z!001zEl66Y9sDdx%Nxnx$%E+FCs6R@Rpax^5W~)>^735;>PMfhz_(|$p!R*Pcy8(= z5^_esm&w>{*Zs|I344mBDj0}kS74yk4-o!7-~l;^(*a13sVNAG3^a&nqzS46cE}CXNY4JdIt5{MJKF`neX(}Yx zrWTvzzMCp%S%&1J=c$!h?E4`iz%!b9H7TlUNQsna563!C2BUl?Lgd6pSfM{(RW9-PtXYx=uqKALzx;%Bf{EIR7P>~c#O(zV|UIVa#;=i7_6|6wP zG0c=a!tHk1^jBuoE_#aj-^j*6s;J;i`HYNP+2N7*OuIZ(C}Z}|afMLu{5+IHA-lYJ z!cLb8T(Jz_g8j1_pR37Xz^!1zRT$_HZE>PE$>m=Mkm|1v7n4cTgf(gV@^U$UIL2c{Jy_r4LujnBFP za*xehuD<(nlsi32D#^T=pGE#xf`HW}%UfvF$?>6?@sQ{XWmM!^EPv-E20p8$?zZTr z12IM|7Mg|`Fz6vZ(TVpKkoY(Ewiee!h~qwom6!bF-?&kPJlc0w>k|9aRCoOpv#*Wa zETlR&tj1cmy9=i!o7pT<9yVz0Ct@*2v)<5+6%R9->MbARk73_{)Qt;n5Kf!)-i>LE}cF0;Ic%G_2&|YdbjK*MU{gMkF2Z-mLrcAh)ENUm9e}CoX0%; zBb`_S0|SiOoHSnw3n%gNOSqzADx8xl`VY`HrdeeV&Co zUWw|3AEA0ZT26JN{_ao*w`|TTu*AWZNt5-w;@8zy($?)oh}mN2PxIkkvh{Tty?6(S zhKk5*qC@w>^>R(l5V~d~;bNTe>^N1{bN;x>+{RUWE}^ZcpCh5lI{J%k8QI|&Jy?uV zj6^QwmFz0rWUb@=J{h`kAlyY*w(wi}Mgn_#$_*^*XCtEhaMwO+k#aDZ zS+YMd6fsc7{jPNa+cQ{C6DEY3ddY?2GSW%81}23USpUuwf8*>0DTJ8 z)a-VJ5Y@_;oa|ToqlZuw8f9ms(yV&9QMeXd?zxaTcC=9JwqsNw9~56rEBh%c zn_#+QXj-x0XqeK;AR$U7yQY&blr!IBmVI&n1*o#1(io>cFYjcM&U|H9kNeZJ>#$Gq zmJOL5BeCSnE14v!Te~Ih6;+6;)g-Fpe6QsSV*IvOH;+`6dDqu@-7zy?>Q-p5{_(<2 z-oUx-b$c4073y(XR?JpI3@NIbBK=lQ?0Az2;+u%-_!AgdDo#6*?2wfzK<;n~WhTrx zt3@{Yh@U>wS(X>{RFg~Vq%Ga%jcKB2{9BvKcXBz%am(GUa)gj6v}QNen1ljdcTdLL zOBPH)J04bChke@=_C|LC6dL*!>Lw2%UDcG~f~x~JHk2gyWjTC#%cBs&n>Letw;k7G zF5fz2j#AjHOOgoJr$1GyF4`mDT@FQSLF^6_U{)Szj!*UAJEeOswJu0=e{J{uHSC~_ zHr9m}^rn1kW9vsJSJ-9s^CVkt*Gc>sOMvF0Xt-F2i*EO*p;&}Ild(|z+n9#E%C&d& z(vspKGM*H{84C8-nrYA}pSz2RP1i}L%90NX|A=}K>Nz6rtU;@UY3$qJ+Nv4zPr8}2 zpadK_QF!ERw5?g{CdY31G@*iVv?GwUdvB7#)(zF<#$3weaJmb#k=r{$$eo{x&@VIQ zcaur8u25$8gZc`ArMS2?4`US3du@rUd1#9V!!dg6Z24gV>_YbfTNH{f*Ys&ZjvKeS zg@0LMT{bM`mu1eu0Qzx|@ z?wy1wk^?H$BSUH7bzF0y4L6PB9MxiRyjwl9=>t%?PUzsUq!(U$zzvrkp6{sT?Sito zQXfzlS3vnp4zMZ+5?U1_1nan!)`rIOi$B5lm$zzn1>Erzn|}USfAt_M0Zh z5|F>C^{n`BLp=8M$|@+TWA^l6s~@(1#NYQqG%F5uzWn&5x4F>=-%Y3(4yht%Sb$}c z?77p?K>4wae@UgMNboku>RB@VSh|@DMb(VE5EpIGw-Z<`&-Kq}aT2Y8_xFv^m~mo8 z3b>gxzs$?VLQ6}_(l}=<=ElY>{O9WFK=|=)qq*}P&Y#OKt16xMTIcT!JG}WX&NDv@ zZx27PPJCdL3{nqXinGmn zMAg3W8ArzIP~@U$ZQS+p-}}NKI?-h{=G{;q3%h@_2ExB)jN3~cVMv&UuN>CpPSVu_Dv^73FI4wEy~PJ2*t`&mX{Yvp&E$fRN)t! zXe)y@^=KXOb3}i)^g*gCsnxD|7@(7Dfd2Co4UkYZ-dQcO45TvCIo86r!Zd#3#cPpN+COmRBkfO??G-|d z+e>*(h&jy#`FYPjk^!6zq*juV0rnav6S|XH=%BT$i;b7A@s$V%-&$g^7~3hjCdnZq zY-3AtzUD<*PM@k~gyE)2e)k}=KyQYjlYMtz7h5OYfqT-U2Py;|3i@@vWf%*7LLqFo zumC%#_>ZTpg5Kvi$cc%G9>HBh3d^KbT9v)7WI|O|zxU;svPx;}iqbX{JFnbL?J_p{ zgpu0@RY*UKQ<3DT5tHcX_^>BrVe`_Tu%7-$D^-h*S`o$>F>(823n0BCmehVmDw?k6 z;j_QwdwAHThoj0An_T4J9pcqBa1ig;FGYA!e7}{UmX0Ce4i>dY5Fe3s!5Im2 z{rr?F*FQQ*6VV+?6HvhM1rl+`Lbus+?(8?V9_u*w?%zX`8dOwO-?pHo)RhaH0_({W z?VaL_$EBx|7q*_C(K_ZjI>XfWhE${*Q>>+h2mQetS^I{|8$)Pw=^Ug0yTtX+Xxv%a z>q2l^JXP$8q9SB{ciCEEs~*eFc)KlsW6T-DekG~_uSYm)_(HJX1S?%FTbiM03N2`9 zxBVROCq6?ZwGO&XNt~=+B>T$KLP4q|g4d`y`e|T(y!&Goqe)>6XTy;kot3s`2)6Ut zeMT!{-6WvqKBeEH-1;ane!2)1@1t^~3bxw7Q4=6T6B4E4DHYZwRIys|QGpFLPDDaO z0}2f51a5D|Jc~Ytn0a5G!L{5BtCU(m^bqfYanrc>coRJXxpmZXh(I*BljMv%Zr7AO zl5uMTt^<`y-RwahbjoHS=~fjn*LZEGKYXQHZyOmyo4-Gvisin3h}Ma4a2mY&T_s{w z>-iy{&S?s|RK6^5Hx>`~uX}{sXn}t4`-Fr&c-T@Hj2AOA5AL@b;4iULrj&Gd#m#p^ zX6=K8+7sxfv&b?JUQ~BI-b;x{v5mg+i*o041{Mp>Yc{+1n`h31dpbOI{G9)d6X2h{ zMOU6=i>Q_%Mou-xcoy55libUft(qElc3*`117kCy=&uj`i4(3NWw$Nv4jxXOr85If zxWyf#BE(<+9dzPSJ0duHrFELS{nK_L&rrz}STxW`# zdwqV4wh#^P&524<%nSSanuR!NK>WL;@H+~P>nb4>)u+|HtrhL z9tT&J&#oD|OuB6~Ijd+5eu&c%GhTd-ny!2`aYF;EEDIehF`8f6ZuphbbclUCXunC6Z5u9h{YMLF~Y%<1ftoX#h{>0%4%pna4MsAqi6waME#hT>=uFo{>iaCW2^)Jl-ZG^=1T9K^mK0hj~mB=W5Yar z4Dxt(pX|EnA%j$Wi*wI0QEwsNVi`5_+!N|Wxhms0T>iRLowkr1f;)3sF|8r($T31q z0PBLPE!CCBbj$XiGdjxteLAdn8BT#$9&`iUD!WPpHch$iRi{tC3wL1Zjvu@ZizmJ! zv<3jPVPXn-M*zqDg@te{m!aQs8MY6l=@&5%OQBDI6AMaNF()NaP=7fF2|1~h?dGDG zOqi%+MIkbZAMA)1825``M@ROANY-2P94psG{EgPdPxkAp6AvDBYUj?22q|~3gs)M%X9w}0|54Abm;Gcp+HgDSwUCr!oLP3FkQX9eQ2LTd7QF?T4#z{ z$e7As`Fyjhd`grm0Tnbi;OR&24^^^wONNdLy;srV*3l6iADPb?i(VDjel5nVDcwKc^HUB9eadQEDy!+XI-cd%vLBDqk$0`i;9+oI%S?xn8DZ;u zIA9?IwH(`&ih3Oby=fUznP}r!9E4d}^@2W5+r7~AXRFQ{l`_-Nojf*E*YNA4VHHVk zpTy+8rQ7ad`3i(H=)sh)Z3rUsNnI~&A7Db>rV@9E<&ZLd{G%LlY7n%eJL2^{hgbbM z>@Yd#?f^k3j4=&iFM3~_E9JiZo162>VR?*!hSb;04Xf7>)g{+t7{dq>40PQ)gBahQ z@X{9BPMIc|9nSv>S+l6YR5nDVDeLDPgG#j$6mDc4ik$Zky<4T?c0=;mi`tJBGFG>P z>~x1<%v7^fW)Wi8# zKcFP7a0kubtOtORaP`jnRV~u@7e>jqYrO-$N-56r7`)X^OR{9JFtPuP5AdkujErV; zA&C@i_|h;by$GRn8-3j~=#w)P$DX4=uTl?7D!=*fGGonNybd_ArIXT-XWg%eGG_>LwuTpqp zn%TJGrl%y3T$$8~mTVnv6_ig}yB0YZQc~4wc8+5i>G;*$=6rld6^ZmAmYRX_yaMgx zncy@$45UsSZyg&dQsMcgoKD@4M6%|&-5>Ma;Rs`(&HJS+l_pfcczoaaE_w`jvq*22aRiIu2 zKvUxspaNW>wC5vb&D0VY5R9UjL7&l@;4$!j5_-IU34MHmdqWB#2na3F|DDh~x>#FU zJN$P-kMS>^|IhvJgx*VCH4hQ}Ftody@}E9DJRsTU5u(mO)r z2LVC62@C>txsL(`QJ+qQ{7G zT~nl)hyhad*kOOsa!?+K-KCsmRVp=LnpVbW!mz(PnVJ2al#DUiLqiushhf)RJW$F= zdajT`BbPBfkSu5imm$RJE`&yRWRx|D6mopXDf{JWf8Oi>p zQ8w)NQWw~t33&}QqI&ip17ZzPF!1ioOO7C8o=Awer|OeeM-++PGA*=b-Hnn82nd{*y;#qbySqT^R#NQ%L8@fwxoK>R?A z1VzOT;KeP#Uz@mm$krI#|3uCJY16i8z{)UFVcA42T*a0EroaL2O5u?Z;3U{8nN&#c zE^|&8UmUjWg$DshOfu~E=JWH4Ct9ND;e_%7a2-92SpccQ8LMN!`K)qLY4QNfS`bpT+)YRYJUc*geZN^fC z{SW?jT&;dNf5lWe;krJpd zf?c&7+g%xOmrb3M?l@v9{-({<-nOw!dBRn&OF_13zz&7|X;IDohVY^o4XV4_ z>ukF+kirRnwGv z4#@M6Q`W4ZhCd7u9IN|*;k5w6nh&{R!w_elD=1IKs_d~0u3o^;@4(M^w5#QZXj5t? z=*=|CZ7)OU9fPmzsWpgWx}IRRhZ@B9N!cZvK+jmCEapbkD*>lBsfb6b8^URSG?|tn zu9eDnwIfHDeOvkJ)HQ}>%ONdiliB)%mIxE+C#WznM8>3T9eiR>ellgLL}5;>1=6kna5$Bpk3|aeI#wI z@~>CN!%hZU)~M1HCw_HwgLrv&nRKPRjr03hSEl33YhlB9nV?mZVtst)U!UbOc@%Mp zc6L#(o?&%tPnI>chS6cAW-Y36PC~0O#U!O9SsUpcY2CaE6LnTBHSX&1;R)|7@66bg$Ks-; zgEW zREbs>SJ_tSwul8pwYz=CTr?8)7M4Gclw4$P-mW8+X_=>x@2gQm!r@pnF!l?5?5ENI z>&@b8HlXD_kf^SXfh_gH@P5o@cLdaoCV4b(5#95vDyW#Oi8izz+;>O_~+9gw=-Xphaw5-xA(Zi^V zhhJa(sV1D7h~X>s_sOMaYJv;MiNK=iR4c?U@&m8zFOsdRBRw zrlz3A^46!cf;H1~1C zV!=?p&hfhaD84CP%kv*^cUCk0;yub3yO? zy#3UbP<`04palw=c1mvmYoOV6ai83p?IE-v;_a zRlt;nHU@v-LBX+w_y^n~mz+yuV2Aj!U#+6weEfRx2m;~TkhIc7Dj5P zOs05bDxVKZ#R7g}L1W#451t|@vncy4?nl=(zL&7+W%&uR*{TrbEGaJGF5!1_>e+-m z*~R$Hn5b$fAcuKXthEJ4I9edZ&H2ui&u|oE>43#bpar z>P@oLxKrejz21K){u)*t>q1U2t9aijjr-k`Pp>ANc_4o_!brC~iz6EkoJ5 zay)W8u;F`ol2I|%E;M&%Pe8ns^v%oe4~#Y%h}fXh4k)po=opDxwtA45@3P##s4$Y0 z2b~^y^8(Nu@&)dg?|tw%2wi)~*lM>V6XAz{i@YfM4oaeO3BjB*fr81lFzqWQJ$GnW zltZ>=yY|j>{dMpO#Ekp_=v%z)!@`MFWhY$zswf1smb#*I_#=hRV#Su9`mwTv)H}Ps zq7=!6{4yWo*!6G1$ym(4Y;8HN$`)x@Nqwq$x*LSj4Mw$)bUzlMDq|a)vSAx5b9i|B z62gU%I))%GVJlLH)7v0l+IcG7zc~zR=y*oH;=7{0Qp9e)V8oI|o@2u{1Jwt5&0~>B z>Mv+E_V<(W{@|s9Uxhc!$IQ^HRVmd@28c0hO4?uj6=9u_cwqVuEx^V%8D{<4@e6cI9P zzbuvOcj?A!e^UMV!b|dxxvKD*~o+VA)~v3 zeFs}TTRD>5B}m`xjRR~$1W^j+tzzA-`-eVyA2SmMOiZ2U?t8Z|Q22%mb}e)p*MNGQ zSJMxN$)@%SRT!`Ea^!M(NyKyU+|L|M&qhXTeYFvH>qZPy1wI>eTww2f9FHbHh>l+?6-|q7} zHV*yF;Gz|pwygpQ650;rVFv>t+65k%g52&y1fjcvpiF^*kY!*r|0kg@uO&fTde#@1 zez;pn^2WQqeELraxI>dr4+lNQBq1vF5HUD@iC$A1q)NqjkuE zQn#*CoQLG*gZKTC)zKwSVK?0MX{Osk@FVVJM3Fn{oSlm}{vZe{)g*G>IXr!g-556% z3fU4yWR@-%+PnSh1FFCTLih^&F~hUi8@FToH*NUOFxUiGrgvT5*O~L5-^_VFO7 zK3HiW2*u1Y9c{#G1V-IOebD!_X!q}Aqf)p`e@T)oL}W-Jc#!AELSu2)qoIt3WzE>KBT)nv)RST0iRid7 zwXI=w6}Q}Bk=jUTPu(USFC{Cc!wg^@`<;M?iKjCU6XS@a21ldbzAX=my~e$R`Gse0QoTjRBZ2hW4uib5g2iEagetUFz~*p{$uxWS)z@oB#rAZP;RAn(0n+bM>58y%6z&IwK*b$G5}7uKeZj`Q+*~k}q+^&+mk< z5dqRjL8oQ{Q@%tt@#lQOF|>a5)fYcSIvTRWp2UNZpbQ{c?%K3=Wr9QFJg6oiD-&v5ALnB(dJb#`22+k$co-e2rau%;`oi-EGl3tKYEeB8|~HARv>l@uE2bE zoy8%%Qe9#<)&E6LQu~D0LJiamfIW{>5Ii>Xq5tl5STZO?y+v3>_U2kIH)0IGv0(8i zNAP=!yo|1?=`z=KNnDEa2115f;GBd>KjaBfA50HQkP zL)HwdDln&BAQf2+x_iKahYw6qha@Slno4(8A`At zyIX!<&SlGbb}kYPZ{CZiTYk5>Tq6pU*5#+YEv0qL4V;fD`sSmYl1PkOF5t zc>6=6DkiN_b|SItRD*Rgv;VVlA}R8~=pQ+%AtE}-hi%X4k8R1ZIfEJ#d$h)@cbytZ zahh8`QCR2eCg1ZFsu_CQfAKRdc)=m^A;hPoBKnf@f*BsvGo&SI0+V$_Y}fYZqY|2L zhZQk`K9Z1qG_b7;$W)4@-{u3ax}6-Px8J?qbc+Z5@`i-%mBB5zyeJid^anZ2G^4SC zvDpe*n(bW(xAe?ns|_j2N*LiLQyJ6{oq|3bA>mh>VhO;^(>7up>rqqJo_Bb1u$fo> z#yjMoZq<#tkHp?_6~HE-5hQollzMGoe}xCHArSL+vq-oThci4Thh0x;c;&ZstX; zO%nPSGGNZE$6ki$bnoz|n3f_OKWja*G#IOh&tZdG|6sO-S9(Zyc~i^e{z+&4BFa0- z;TvMeZ`DgTfX|=kDs5m z4>@i94kHBwK1=NXY(DL)!Y4YHc$%Utq67cu`)Uwv-V7(NI$oqiGv#UHWv}>_25bgd zi9JHJ;l^^~m$CVI?WAEiDKakK-ei-p?{1+NBRy0|QW&<((&7TeiU7VI0gNpyx|YtE zu1CL-70L!RBl~pd%pGAEvnKel?u5P)(@f(rGRH25XtJ>9v5>aqyu)@y^2MXcFw0^l zS2wRS8c_=YN2iQcl3)+Hlb{-Qg+7*>|1JW~c&vYoRbdN`eV~4ruYRu4Q0eJ4KJt6q zio^=cjP8bj|J~8m)s;djJ5 z%j1V+-`H$c^HV{34=Ilkkg0ho09ux~y4^wkb|^{#3t3Y%NMh#6O|_a~Xi@UEk0#fv zEBM0pakLYI{Fl#b<`zmn-j>fM=L;lJ#)_3aI$F|M_21p`+-AUg1lr*gOcwW-n?Z)c zN(d)DrMe4F$;Ebnn3^Bh{taBsBXKX$5~ex88Nno2u)D<)-2)#^PP}DGP+mwRwPFsp zcR->J;={vLd-bHB&4}Vad`hIHp+?;Z&+T``EXQ0x>nDrGAy2{&b&R1SUqmLh4}RK@ z%N3h|JBi_|=GAO}MIZUg0$lCS{-F@^hBdbx9nTIS<+Yv0;0cXwkPVI1K~U%WXimBX zkIk&$KK=1Y8>7|rO0!axgfgW(x-}nns*jgyb@VxO=o?v^%VzN7P3Z2#==fU4W{TfW1VK;kTWNy@^~F%1ua1lxJUh$*ho_d2E334-_p(vrhG z@|uLK-n;}_9jsqqOWubaI?SUBJ|>)rM9M{|PneXv=G`3UYPCAP1nC{{BArt0xGR8J?osEl8 zv;D8RM%vX|Wz#3_&KyBoOODG1!EvH%6-YU+eXHF`*#YMng$lmy9u5pcNEqT~zfqM$ zxI9O^d2Y#79?1otwRI4-YY3eq(0HakY^k@Oow|(KOoTW9kxK+{GMPra4up!Uj*xIe zlP_dp2S~%Ybt3Z)T0e(hvKrYWCJ1M$omGsViXBmyOYPizXQvnzk)I)JQ<5frJ6n61 z?}?jE1n0UZy3B=JU6JEsPPu$2q?+E&NRB0<oH2IYvi{ zg&w0|eWKHb|2f0*QDrtH5*!bT1Xz!J6dZ$667Xu8QJ>o{paWt$!X; zdjPmeSBjti>g{yg_wi8?GHhV>6BKw}hlIRS+CrM`{pyhrgYy@6B+l(Tbl;jj&&giw z^xDZ94;*}s`S-(NBfPdz2`jBc_VasO)UVN*Kkv(=ya91H(c*W+(X5hl&&q0jDy5-3 zjG)ywlDUen8NH3Ibbcm1Z*WVODxI;>RkX)vewV`^Ljs3yLrWXymOFjrdrTu@M7@0g zfNDE=HKj^4XGqyE$aK2H!RTi9HNeveVtLX|MOW8f6m)-4I{T;ol>rMkrnd1~zE7!~ z;>idr@eJ~o%uo*h@yxi#^1w`7?sBC|`1GJnz#+@~N#e&sll@#>k=I!HUd+>-W7>SP zhUQ#3lsBKxLDv?pw7Lw+{5EGGVO3+A6*E2%pUK{~O5pGsD+Y2nS|qs#sM+601n>380`-ai-?ODJkp)@g^h=5x|mc~B-dD-sZG}P*iNYrS4b09PTW{&!MAsxX?bCQ zt{nITT&|Q2JXNrpwKzXNEs!kLr_pCaJWm!wj$${H0vTBk1NJ!vRQ{@33BPn0WYOKO z?X46B+|I%*SN|Cku_3g^aiyi7%>6r!P>o?@EKYVV{fG~93 z{jO@SvZLRaOJp`}Vnm9hNm+0W__h1m2UTl_o@Gz{HU>LDGUBVm(Yhp%XL#ADxw*xt zemTEJyScfE26*z%P0hVHZX5>Otk^MNo$vbz({%1)-!p6VNNOhd^cH8e28g6X?WjrY+KNR3PGn- z^9gQv0mt9n+@q%JX#5f{Vh8{b|jpjsjgB<*e zJt&8Rg`!bDZvoWa_*oxTvXVuM5}*8ItO+BP1s}-nn2+gXlBmDr4|~$inb_td%@0Fz z#gd&rb+TZiMbd28^v}}je20tl+y_*{MT4r zWZe5sKjJ*f48l1+f=0X|>HDiPInv0i9DD3AeR6(sb9Kd6XRrksuVYf4(#co+(c4J8 z;2ILwT}Mu@qhL~j9=ga(%CvG6mU!5)kGHzE!0>>XWRQ$>V;>;_0B2Z7gRK0Yf=gcR zB%x$lI>mXU2=ZIFHVB(!m94D5aESYx*ZhLYE^>f0<`2Zo$ZA%?zA!rLWbYlB9!vrs zQeF>;Zx^#Oj2ND2$&wwz59xuSTEsgQu}S8?@kHQFxV@Y%VS|L7$ubD zn*!)xECFJG9x)Wg{Qtp#80rP{e|t5(yWG{o0B`7I`3H(k0>FQzAfqZ>Cutu3e*jQR z0|XQR0ssgA92Ph}Z4~JfYBT@<(=-489snEwbY*ySb#i5MFJo_QZEtQbab=5aSv^e{Sv^g4cnbgl1n2_*00ig*005=BWlWvT7w&!IZpGc*rMPa~ zi@O(x;{E^|mr}fFf#UA&P@IjsQ{17r!{Psaem|V#OfvUMW+s!|S7z3_e#u0AQISPM zCPD@P08L&_O8p~(|JMe);wb9ryd=Z;gwh z2Nl;@^^*uah^Q%Y+-je}sHGq>tiK^c{exS(Y~n%4G|m7fV*OW2w^wQ?;2}U*n3<{v zp$mZWo<%_fdXzJJI7lMiF^)m$hEU*8s2=wOenmtu4j}Fu3n~J{WuU-WX>=OEZ&<(- zVqv}md|?Gl=>zv?0dUqsx*rr^kW7gS^*aHez_yH(0&IkUib?HgX+W0)z_C*77XX%6 z0Stc@|sZ;$)$R&^NS zjll1t6`gD6|7jzg8{fLTytli%q|gsCFdNnJf3yB$(xdb0@E9Qca)0}`YnvvB%P2?| z_TlfJu^XjAlF3A*Q1i9@IN6tGl=m0XS*m_{^HyCZoE^1KF0oP>G1pv$R8gQr#sS)y z_pjTVEYC2ao1cLiJ5eaV1lAHG3z$1adQ4sSp6z=8xN3Lmont_R0o#OZO?tgwh`q}G zrUk%O@`)}0U@S$$ra4+KHiQTOQon}e@ zU=mkT#)@DNL-=?NDU&JtoH!{@kD5(*k~2EnAFUR25oe4iGsNs(hK?X4SczdoY%|K0 zNGS7YUFujw{PeH~%3e9xPv2=MMj~<4s1y@E%Wp~-8nPj@P21bxi%1q#PH@GOqJVUti*{*4srAx z5+HE*J8-ZK_JL~oS&)(}AhlE#sO5u1HQE(0?NPTDleJ#3pMs=&ka%IeKon+V5^}mq zx++U@B@`qyJXkA8d`K{%YJcddl1daC=-RLz`w7gsI3slBSg031#bL8!`bA3i^U-{Y zlH{Uqjfa-6Ezq3#G$S+fO`ZCPr8JXAj)*#GWaX=U9fCkI3kCCV*lyNt-!Atq@h;_+ z0dkhPxJ$u<#x{fcsGS1g9_Aj;9=v55mxNY+hWdI*t|r#!IDJrMZj*YoT0{vpk4J{U zcnF@nVqs<8&sicHe4BgQ>O=Q7to5H{DydUCGmsNKSy!rAYHLz*0XoF{1q=@{uwTDnY4O#k5~j3WP3_(}JZn2BApw5+IXqYOps zS_`5XS8A-`UnQf(t+7*zG?!AYRhISTM1xqvx>TqnqRhI)NmHyKK<_mQUawE7PgSx& z?RTxoPRAexiUnc4Hw&dbT6wrf(C2=-+VSQ8Jek_lUP;@(i2oUng6M zA?&2NJp6K3K{{Y4PQ4C@-oUwF+-4*$;!$elv^2CYOG!=9Ete}-E0;a#tn_F2++95xlKpE3+>o&TW_S>i$-Io|fHZ49-?^ zD&FwvJa{7UXMfdvb$lwml||KsuScbUUqziD5FYsK;v`JUKD2tNCTY|sE?H>y(=2r> zG@*4`IDcN|hYUuH?V#Zf&5q-s<6u4=JRK#SqVlowd4{@jYY}6Skdlzn(D>MR-uOcL z=S&gKMXrO)gUrRu&1O@5Z+(`glBO0*`MO>GBE9pbj&EW50(ynITKY!yGL>1Cv<=G3?eKnU&BTc2vgf)9h@T*l#j!ph%*5>%u%>z|^=SiJO{%!t0UPTbl zB9_t1N%cts+!|bQ1hoY>GA4eVi}?@Sq#UtZ>rP@$E^+TPVM7@EZL>5oXJxJNty|qf zt|PxkDF#E>QbpM^i3it*J9ib_Z(WSGd}nU6GV3${oRzFrpYxvEo=2?ZjPc|!X6tdg zP4x{+{#DzX7DLJT$zi`)5uhrm8f4vgK+SH!o}g2?SkqkSRd#Q7fiHR|>YB47x+BcD z!L^}hGRD`_JlqUX?Q_aD3EPwmq<;VU?)yFs6oYA@tYM;pB!Uc}pC5exqwJ0q6I`{t zt6M&ki22UU#d4G^LkuYJ49`+^RaA69;Y~SpAUjQn7SVWjk zxLB-nq%P4kXXxYF35MOrm9McET%sZ9HvagKSoMWAnOM zy7CT+Bm!(qRlMIEx;9_Vt|PXywo!Kc@YC3bjhuaQC;r@o72}n%ePR(z5m$;-;ZOc2 zfyq>Y7ejl6?L`}l?DL28k2MwhH1BlelB6LMnaY(Mld^B(X+pY$^;_ z)L|vn-S4ch6Q~n*@mWRQ!G&WE*M_eUZi#MUa-3H!KhsIA3h1QsRkjZ@?i~&8ZG^Hv zLD53q3-do&TRbyT)n(V)Y&3fc&mtDZjf$?qS;bGq4P0Va^WGzla2oASUrTN%E$?sr zI%zdyb+o_1nr(odQkJ@(ivA64d8GkuQ@i2p_D*`0J$0O6wLPRsvNgY3xTV9gcw}N+ zNKCUp^G5SYllOdPz0qv(;oI~%v0uj>&*}WCLC5{8=t$S97L=Cqyw$wrv;1@Yy;xOL z+0jGFv!hX^ilfWf5X=nBD*`oo(_-t~Jn4*xrh420^NB3_5P8>I)`b@<8ZVmGk6(k^ z)Xq{qyGQp(oA+dBf-9aeeid5?v*ezn)}-uqpp2^wnM{q0X9IJCHq|lF>4oDB-xt|c za*SU*!g@Xm*P0`?D@VbzN!C}BF-@hLS zbqGxuUbVPi)vfMf>$K=(R12Co9=jh4za`D84z>Sk&!}oOv~NB4?QHb3x<4Y$=9^f* z>GZk8dtaE(77$tQy!LgvAGp8W#9I$=rGK4(v@d(npI3IMc9`6VpGhoBu1Cy^8N976 zU91J#^?3cho?er^hYt&xd`q~E!;plFOOJzuqlKSj^NR`yY>T_dkk2hIgCC+FOmO;^!p7q@;IPn6&E`3vSlc55GxaA*Zek0KT*zJ~RXX9^XIW z5de5_0Kl;+00^c50KQYA$$$(1Fuuu4NoabnoceqHhpY8;?^d*tu_1{ZN)sx6h^Sr| zDTk|hN};X2?BV61gQKff+g^oSr=6U$R06G#w80ZEPH|s!?>Y-P^Rk-wbsv|h6rKsF z`Fy`P5Y2g(-A_*Ez80DEITnxz+v9z(_#~~CNTa2-D3>UuHb;KT+M^l(yZ{d)7+`Wh z>=Ei8%wKvj;A3bPp$7w;^DzVUFX>|j2)Kgzi|~KF_-VcWri&3o0ijT+yHB)ah=vAL ztrJk1+92mv>9b&e5v2O3Jqr8vQK1#wd<@*)gzk;t0Z8o#jt zuu$~<$Jff~2pD8-kNdVE5wWZ+jhFvT0+F8-6lciaY@Mw3TU*@@25*(C>-hOoQaF&1 zwi(yH)#~b|;7W4}3KD4qooRD2#Z;BErqWbwoP!W4Lqj8ELuEs$fpQck`wEs2Fj%_} zo><;POMp@e4SdffEKEhg5o$5*lT_HyG5C9t!4VULUOe=BQ8_(6nl{n@`~U^N?u?fh z2n`L7B@pnP`b+7FPa@_Yg;}vB0E(22-!=#B}X} zs+;8xocD zVnRpElHz^h4{)D(^Y_!PGW2IV>6qLpQtmuzTr|!SISYRsx>_TX=&KK=KvTY`KVNT7 z6}xS~n1sL*g!2-i%@(P2o>WPr;BEM9^rxmQ!V@%hZiSdohBgwB0W2xLKuP1=#Znio zaO5Z28EpMzH56jerN5mORaHcvm*hj!r7r zP}IgE&`S|n*Idm4LrGB{umSNbKkFZvjbk?m=sQf<3c9L^`C1GK!9=85IJw!8rGI@s zTl|(TQ2e}z0M0=tB^0n5d+ThsQc|FXHDmE>9kTNB?rwQP01`tD3|5;R*1P`QNyiDl z{H?i3Ygs}}HR#CJ$E1|1mOMM-trwUyxZ3{C4kNA`31#xOEF~WswE*D?xUOvOpv7l1 zq=DrjQc36_8Dc!^48(?B=UY)jyC@sXat$+UJwg^eHpz-9zFduc_CDV-G@*A5G3 z&FrW6_%=L;oGI(yTvqz$B*o6&pJ$nqKXeoe+&E?AQ&#ut*jwSFcFhF^5!O}=9%QCj;l9yR+5gva;ihqM|_{Kl>&a&KCvj<y@`8i#t)X+#MQ)_DJDbuO|X~HhS>WZ`O7(|^krqFQG zdtn2(?e}{?Pe*J0PyNistR3gZ*!ebCtP-UGrSTB$bG_t zJvB-tRY_IH$0IXqOq_}rZAGlV89d#q@SeAkx)>)_}A81hc-*XKT+tje&_tv9lxV-`&uO;Ee-dY zs4*`6jRKQQ>g*{%R$e|`wLUl)1WeiRcxKk~seaWe+D#?6!|n&lEJJ zIOp}^SLvf@@z8IZg@Grtvny*pTPmHSqsJ(5azH`n;{Cjk>WR+I#6-nb<)jh-GgP~g zp1YM6eSA09;GR*`!R)P~5(_!vByty}<{^NAGJQL(MTHT>YjSv;m}#w`rKKf=fj*_x zI&6cYkOV{7*)c&N%x#NZb)IK~lYF(P_@=u!y?-SI1n}Xo>>Fdo7nsRv=H>&RmWxRw zIZ;>F)^0B8iJ6(0gm&FFLy4V8bmqZ3)NBTkuF5_+PHV&0EXo=`exNyZJjRZ%m|3W# zIa{c!cavjea>3K;{QRXM6Q3;_zsKLany;iKMcF=1wkXEK!qU*yg#{cR6O*8q>%i&E zo{NZG5s?n5hhip;yo}mAF=%~1?+CFx+)v@H4DS>LhC>hehq*I-D_&o|zx(X{)WJ5l zXe1$7dbhZH{B`bFW^Y$s&Xl+FJU@SLcUh~;f+2R}9H(`%SS^Y8xp`@a8hU=us{W|A zP|@%7YC3|r0==|yy=c~z*C2I|{1b`NG=;ow<#2SO)U2VBdjmeu3|XI>D_D$phOY5z z)=y!Wqvw5UJ;)wsw>>YMSQH|pzy=tYm=5&?ttXTe6*bs4y>~oV5rBVdZj;PmJ412g zBEAi-dWM=Mmf(03S~xc9j3VBEr!7`)>s0M_-8LN~5GXj7WP^`_b?5L%xH7ztODz*U zm;!SqLyNi%VndK~?U1=lw7xnPM;h`o_jsw8`BLy<@iopMnvgvb14B9gl%P|OrF4m>+nyq_wB z`_3)@k=>uxPj-Fy4kPpZ{5U?xm9z|kl6gDCpbhqhMR;*K%z}vRZD{*q^=W!uI=Utd zDBV_9kGP=kH#ZH-_10M6UcwM9{pgWByoMEH7jZqkm$$dKk0zwW*x6NaV1LNu zD>+kPhfGh+%&g7Lt@WNHB>4J+A!nC9zs9ZnZl+}|EZSnu5Xk>)$?e)NiXzl*N15_~ z1t2`ZdBJQ*!e8aWC5E*4{?^n?(SEZ{}6ER~x@ zzFDE#bz({-N`T{Fj|mP2z5rTW@w-NU&65fH1COeTN}JoX$Zh4) zQSuL&b@88dn!54T7q~D0go7;(6%cB2(n+1n=Eeu;2MO1McW1*61R^qlJg?J3R|sMr zzr}uqDa?AeNd<(pp-Hci=v(4wxy!$vu27pw2J;w8wPb>n+3T9?XHta_wR{;Wz<>|9 z5kv!GNCfQ8AV!|5+6#|b%sQx~1mo94YW;`zFu(aJ$9x`{#OB0--wdrCgQVm+-kY6X zrR~D+Ysf%}lRIJ_0sxPpqEn`z5FHRUBTuP_EiX^{Z^Q4xeHnYcQ4x=w)2`QM$}{yB zY6$u-1~R{$&;#uk4Ms6PUiKLZrE_3iri+ zFWPO2Dqlb@Pa5}qQ@A!({6*fuZBouKi{JUOuZ_PL72YaN&>9u!5u*vKW$wQK@@_;(uw>5rQgR__sTMhaGJiIh|m0!C@hL^=_Je<@Paw^~S?n~oYGXFtz(ee`S0)5 z{mG-qnTkjJzM4ingg*DQ`;n1SCIN?(-3?a&>Mz0E+$kof!+M)^@ma=|*Sg1j7|H<_ zSQYUH=G4jOM`)snB!V$#3MG-pXTmWdmxI zP=$X9J%6W4R##8V&(E*m1z>TYi~G=~D3N%C@BdN9H46Z0b$r=-36%a{QmNd}4L!38 zv49U|af}7Y5-H;It2iwoKuv0d?KS<4|5x3$QSoVd20zCM7LdoibZ#|7go4JgnIjSQ zcU*0vrH7s6xt)y)ww<-^%F}PpQdx}6YDXs#E(o}HH0V;1Cw0F` z){Ck^3BIVYjm~4>&(`yNhr!tJT*N9e*j`-IQ;yOtS@smm6c1h zvIqw-O{b)Wo= zf`-*8930lX47QIWc@pm65T|qUh7j zI9}tT_OfUaKovQY#>q!VcZW?QlgJpldUC93%g8XbpPUCO%^2lkfrMgq8sn1?>1R$(NdkZcgCezBzhZ&%7@+d_Q(W5Ch_cTL ztES7n0T3874*<)E2s&UvU$ku+CFL?od0pSnh|uyFQ`df?BnqNHqiNUPPcKbRSdjzzk+a3UYllzsRY92>!%Fht52%Q%W!78LPhc>QdTR%vk@Wi`>#Bt*(y z>e0F}E}p(AyJ3-FDK(z3__pscP-$N)vE;)vk^@Kv6ss{&3MmP?o$zCFs8aFgKHaX_JK?s z0S@V)FYNM}tG5P+ZN@aAxh-reGSPR1avtG6t{4_bA_E#}avCP_Zf8gznjU_1g(v+G z7eHa5m-w&5Y=jfbx3ISrB}{pIVX5S=8g*h7j}p@FhK|aHj)gtE4)|nQOp82_3~KDf z`1e-nk_wMusdG_jX{2q77!qplwd}6T!9?Wt#bqztz!r+XQ>GT~1aJUbGX*jk@S9MO zMFGLo9r=r~qpY|t(FmX`1!xKHoazKX5<^K_AK6&y*&46Y?1#L8Z3 zz9<;c_=NqO&9|76GJo9AF>OPTO?G>wSYD}Z;1xw1otPLx7rnji#h$@oYo!+U(}LYT ziW3Qg5B9`Gy*r@N(NWKud*=y_fu(cIZT{>8G9nKp47ch3e48!O9+$(vys!Wd5dGk# zw)hu%$;ak@IK8waI`9)+tsnfwFu7Mf>-}!k$;5*Z4kV5fcA!&*8mCg$#Q(RacJ1Qc zGG~m1GPI-ZZlD~zz{e@N`QJ2kf}_~iv$f3ieHy z4F}M0AYaGD>|agoLI^870-WKV1j&%-^^Hbo{916EQ};V9eRc2ierK*z*JCuMIny_G zmgdsHROA&z%GGB71IN2LlN4;w7%h5^)#!z}Svxptd_mA-R9VMY+w}Kk#QG`{rH|#^ zTAn8;QWfWrNmIkf{yx4#otYLA3J~#?Z6cg({;%GZ-!L*)lZcu(uq=h6onN@41dBJ6 zF=$Cih3ack0TS@}oZ{;}nWC|^zvAPae(xDM+$76|^!~+?0#Wd{=se=o zTTeQ=J+=KrgbGnZ08SPv?^7Js9$IIQqJJ#Ni#VEN!II!RnlieKp;=&%inE2NY zybx(@61{5I)$s{|1>oGaR^9zJ*lq01$W8njOEU?v+4>XaZ=SE0Vry^zeAn)%aCM5G z+4VGw4Ut79Rnye>YkiLS;Bdd-kQif9IlW*SBn-mDs>PG<<-(#-k9m>L1N8#~(h+ea zCl8+5t0@;<`W?Hu3aFy$Ntl1VMTf;jE{iSc+;o`!Sj3442EGX+tI5WZ`J9}2N!40R zj-6C@-dz^wa923d**G|y{t|Fw*e$2}p67j#g#w54i;aFry=G^KB`Ti1YpJ9mGVZ$@ z|7mD^27GQ;7$%5|J5YNwuc?W5RnugaflTlwNxkJ|3U4y5LgodRzI}+h_iPl8^}69o1Aj z;lXcytf1dF7oz++P(N9+X+Bqi6&gS4Tl)L7Zm?+Evstc;iFy8q*z>8zt;R(5xaJ}r zF5ZerDCX5{FO0(0%j0zw*Tf%Wzkt%lnzg}USQ|jm{0hhdg)?~Zpy9i zYm7YKTI1oJQ`b5&fPy~;6VFMv>stdrf9T=R=XE+)sQ=|UTYx}rsK2O0WKe+^Z(K|$;5wH`d+-1DmZ8(HR zGRXB9S!tTd1K?=EZI^be!hk&$qjZ^2Kw3~{8CPiE2Mw_K+@Tby0$Dw~%Yc8*_{{#Y zH>qmamR#?#Ix*;3R!|YWQx(TdY{3FaE9$XpRD_*dMH5Jo21Hp-Z(FJ335lk0FoUDk zF7q*SZB0jr%^_!@^KzXfFg4{c@60o) zh8_Xg3O~s4dsBswjgJbpyB(azmn2`=$;RQ4C(zy^M#Wg_O{Y*EX%31s zp7a(rSDBC=Smm@jDLG%%3uCE8um} z6lAiRE7P;*N=wtTv=t>Rd$!T}oaNP~9_vIPRMjF0!*g&)fjT3l|$dI_JV9*WCx9?={% z>cU;$!J7OSU-<$J${NzvGfqzRx}>8091d?!qtxbeLJ%H2Df+6*s8?g!%RT8XzjI6O z0DybMJG~?*xNLN7N}AnEX)axO(DG=gwFbFCk$H#-oPCDV`*t=CY#)u0g@t{TnR$$P zoG*1Z6T0DBNVX3B5;qP=_m8z(S+@T-EhD4#_KU#ZU69Ki`Z#j2R=fFb?dpKH+z9e& zrznxzYw61H&REQ3_x-ifQdNhs4f1=QrnU@&6%bqV3JLm9iCVs(t4E~Qz2;C9x$^k8 zFP3mO3<2cce}mGwt-BugGj%=<@PJp&QP9!h0hX6r|3YELdq;D?=7vbf48qe|d0pAlmTZc027k~eVrymcbJwT`Up=Vx z$h{V!^A-`IXA-AKVHZKw>b+`;HcLIaQKdTlGt%-ttpRpvwU1h`#sBSaic$w_;8=RH z9QuW~h<;sDx*6h?BOwc~1(q<-TX%kN--K` zR{n&S()J{uR2&X_RXd%qy{8v<$ful`mX=1Vm{PLfH93(b1oRl{j&R}h-NY{yES^ke zix_U!YUuR;tF<4vkBObt?4_fa>v-Ky`eM=JH6>2-nQ%+W9nU`_xU z6%z+%Zm-F~@zz&7u<~Tn&s#1aAZXcvH*=gWY2@oDsi?VO}DO?H`v>Beu4Lgk0DgYscEfVIKJ1oSYw5 z1Yy;oX@Qp*P|6YQq*qf~qmq)6@nY@%sg(#z;-`1>hgctwikiXQG=u~j6PVbmYnJiJiW4BR&~P8P=y1)3<#GvpSrG#^aQ znM740PD|a~A`o!h9S#ojYO1Zs&@wPEKms5fp{8NwbAD8QhDt_ksgalTIsbKdoM@+( zTTriktmOH;@PjBjCEfBo;0~X%pt7>FWXxF0e%jVMRVdq%Abr?wUF8oA)2Pl%Q)447 zEiF>;Uy&4*&L_q^{^p-8zc2}LNy*4omX=U~4+Q%0Bc-S2Fh%>fpq3U(e!nO@D*~6e zUZZU1qVe7|Ht;)7=3h&D6SK#pX+Eq3&tW6VH&Rjl&!;~d?VAERkBX3B;M8OgZvdA$4v1aj zvP09|-QBr1C#23ZqF~;+FC1NKfBa~c-rZr*C4mehHjY=f4EgQlK+I@VAZIQjE*kNl zAthQCh!o1`0)x_oo^Iee!zEus?D?ytzW(twvq{TI_5f<)Pz>4J%DH=+lth0p4UD*) zT+IwU14DfN@7&tYl(i5S&pX2=nyvoO63_BkD=+&-edNCnmq|?Zykr1uobxhL1R{S* zX+z7wWVf=v+}OE@SisA4II%3vXz1~Ht*oe`8(1xn_T*k+7k8j`y3I2a1}IWFTQPs@ zeZl}Jgn4>cP2(tte+YKs8T%gX-EVGkxF7x#y3n<8WQx7WzbG=H0K{=-v3Sm2)Nn#9 zBa^B~T!yP7UR{mhUuCfEFJgnXx6S7-z8LF& zbxY_ghUl-hb>#N;231x%>ZP)@qyG}~Ui)RTVr=N6XSkXussIBU+uPa3mx#V)bKJ#B12G%t z2)mBQ@@fbKg3sQ?PW$;s(c!B!T+V-Y1Em_p$pS)d`;}pZjtic|eP80l-j+7s-Y}fz zA@(MfRi&NJRnkyULG4Xns|;_0+uiE56kKN>F0o@@4M#oQwy>b#VY~#n`B(+EBShM{ z!ehRaS&e6B+H=v-Bu4UsMXGmAhqX}ih&E+F8xKX!?j-6?kNA83T{Byu-AQ&2#oQOn)geeUXX z(rO7wF=8a+@HzgK=gKTgx#ah-9T%Y-8sGi?%HHYI87HHbBxfFT~ZJe$nxFJ#68@I49HQP*Qg~sovcwX!$*}IAx zN6qh3&CkytXa4uE*Do~wJDj$LOMB~*9a~dIbS3_k0WCp1H-&s)uu z`%S;+Em<6J5_3ypgvf)MU62zkxNwy;}?&}3(Mlr?a1 zaih6aaHLZ#2{ICCCVe!{jsq({{BBEKj0#C${{8gX*@B8kIVok!%m^_TB@z0HJ`okw zpXAJs%>Ahyfgqy>b$}z%3==}ZI;puR4}*Z7u_oXhYnef04+XY79Mx|hvzf4Z6AoDW zq2t>~Nf=T$@kW9}Vr*=2pi2Z8P8ho!mvVQ{E$CAHAxy^%$DBHOm~s8ilC-$#?Khp* z-t=wV_2FN_pFFC8az5{=-y=!%8!kh6$#V@F){4ZL20wgRDf?}v$V4oOxS3uLr*{mx zp7)$} z(q8M>BzPLOE;Bqes6TbSDxZ;HPV$^{lcM6vdxX*CnE>@#o#p<%s0cfZ5b;W@Boy}%2O!bdxp$kJ z?Ug z`Y|@s>#67LV0#=uokiO6`rllPU&v^1{dK zSgV2dy*G)BzLe(L(;5kpUfGLF3|*755s!kS)!ow)n+hnM@_4u)12(w;*#Fe%!NwvX zqd`72R8)8O6y|4K$r_H*#8%`GtiqOvJwo0bCbJE}-B5-u?#FtY2h?dVt z$2mDpX*mp7OT!-ctWT5kp8h@1#HI2W%yZ0ybtqeSpjwf^zCH4At6@Q(Byg5RtrPPq zFfsFC*WiBatawrKm+-?CWt?j0(qgGtxn81z5Sjq2<{egM<0NCl(kM`*R-Aj7uE2>1 zS-%`x2i`+Fi+Rb-c1rr`6%G{J*Z|77IN%G#d=%W);i<9h%o5A7VdwiX*=hRjL67@^ zk0tu?MdR%Z?W6^2d8f~QZ2LJ$>>HjB~ z>}(yJ^sWAzV8Z#Om;N*V7r|7OVJx?0)!HQJUvKZ~8qpzXPkH@2s)wrBQK)T(A~h-D zhHxXelJ>ukc$jv69uADixR}IE5>CdvYn-btg{Y||h=~yh008`GsEPBSYyy8Y32%CJ z-M==p?0|1*3J$;k!qR@KNHu$V83~PWAOwO#r_a ziR_Hz_I1RV*{$KG)smS$-M<`V27;qXLk59$3FfC`dvk|>6Vd4mD<1PCCHfKI(7i%r z#2{h@RP==+_|*b7Na-aYsK0TT-W!ipty*T?TX^r*J1M;6ypvbhL06#pB~tg~_Mk+{ z5s3MJkXaueR(>zvBM2Z=rU0<>W-`~$0+67a;80M1OOb$5waEYIHiu{2=4p#0-g%l}o_lhk) z!slnI!fa;-8&G(Sr8gSS>RglDe zksgCV*{H~0!!kK9iQ@!)#b|l*g*d`*^27HSdI{Zf9(6qoJ$Ub!%OsNzr1@MT=Fml& zZIx+31UluQ*Nx3AS}w#Af|C|YWPdpv*S)?QD$B)WA^khT2nt0}mB}lt-Pdl01V$Lq%i}A!ONUFO>x7>L!BM8K)B7tO>r5Hv zMHM(-ceJ2A&i*Il7x)>Ms*-d ztqZQqcEJ~y$0uf_p{N}VCPUHrP|VQT6&*X5$F*lxRo_^IOiXzS*&YR6coT)ETQ%O>@Q6aKaGY>B!Q^PC)Srjp| zFS=0ep3GM;Q#~ZfEAB1M z+Pl$o#EZ=P?1TwD`JkF3$=bzD42j338Jj&R2yg1`7Py6rXNV80xH)Vz>fLoJb)s1O zo1*{1EyoSjh3knh-(HAY@KRt`VV_Y^HlzNMqavUu;ALj~E6-dPH4l6XKCqP+S1hRVmG=Tz7sE zu+;l9krJO0q4Ig-DS4x6sfnWjBvmP8U!?(V2|lgZp#Z!NyssOy8&{AbUmoTh4!o72 zRrkvB##T@6I3o-MROa_gdkum$h0bU9%U*XTc~>_+}@IXG^uS6I_}TO=-oFd=M2)I3zmgxyc|OuY=+ zzzIta=}l|JeR(2n1LBbg>F}Bu@t8=R)`T?`yWo!XbDOt-`RvTXLq(A~Gywg@0sK1ucQO6|rNu&_WHDEC{V` zUeH;)UD%@)j2fDDB0Kz4zWcGf1_s&mAiAJJoVyME&DIp-3qzBVmNY)6F)gg=rK8;X z4GTouO9j!TRv(jyWk(hIJIp-KHBGggb78y`_A>uYxfYu75*zl)GNhi1f01uB5`z6d z9FyF<$=sS1t9#TWG0JdEOxcje&{Qv+M!x1R#}ws&bv35(F|Q>5)G*~W?l63B<{Nlc zfhXZ%JnRD&L41ENfqY+VvamK)bx0*S46NDIsMMJEEd9KRIvQG*9>@0euVhU^{;>np`Rk~5 zS?p>hPVjWG##d&}BoD$VO4{Pj%fOfJ zz&T#=GJMq~rw?(c;frD4%A$HvUd(39~Ols8qul9)2{0OfJ|%89;jN< zHR3y6u@IRa(%s@hsG-u65;&1UG2CzC)RQAEwEOQ4k6L7ZjsFTipuRMnI#;5hhmzj< zd>h$2a5}a#9O#Nz#0L6~P1xT+`fQ!oeCv{I5pUyIg{)-AntJP4>I|X}WtK{Gd>ipQ z*)GFBv03y?WGmb$D(>jzGSy^Hv8Souwaau#90N&o_6)m8?Tw!e&*^(3>VEH7xQ2;w0Z1l&{7a2mkeyE?QJwQB-RzJ7JX z_HUqAE54$Y&yy~wfq*RZ!yl=68$9$$V<8O_qD_1PdD2&QQq;K>mVrafi1>(n4=Z}% z*nG@4Pu>-bvI06apv#WC%G& z9RTdr9=HkU)8_1T?M=hs2Kuy>rMryh^*V)$UmiE+XAag5f zYWVc}-2U4l3OyD5$BDtON%X_bIeof*p1gn#r|ZQ!=)0VftGsv5)#%9t5nU#Im{wk35#AH26oj~M70#%(>N!cZ!y6EHXlxrrN0~t}lsSg0y^< z9s^OL+;-Y14E&FIcBNFv918@#c>)=_E(1;@uT7UaRoNf!rM)AwDPe%$#E6(`*JNo_ zDg6cp5U4kdl+u{=iefo?M0TMq&e>jWno>)CeyPCiQX_3&KW!nDwP9i2x{=zjFa*iy zy?L{6q~Fz1@dJC9kIbYKTr%T8OpM!YJ-&O9)zy9>=HdG2fhp)kNc;%=%;jUR+NEv! zBW&dLY)eafw&hV=yrJ?2s9?q$nhQV|P2?z}c%9-KsM;T7W$Ef)UOfx2C7Nt&K9IaG z-%`dLkuLkdZ{PVt)*T@jXFxh=5D`UKj!J%9PP}HWs`~=6x92Pt&UnSW0~I{PGn3=H z>n6dkT#(0*!Hv0>~3gSke{C~Q88V+)kVajY%Q8Q z=Fxt-(UNmN|}$buxWaf+St47^ACPW2-h(Y}MuZHV`XX01vOiwXd&zN6gXjfkZJI z+;^Myv6iEQMmb`mk7Q+~OioRR21Hy_)59++(b2}q$;qnn9H~>%!^49n2x6dpC^0i3 z0jUiMX0EWs3!Vzt9xC)sgAXu z(q>UV{2y;HHf>&6nfV$7^yd>=<%-E5z{W|FRuMZJ{mi7*gMt&c?%|awb8(_6JT_Cq z!J34lm(ri)%5ik-;dugWTwK&j?E9-gXjFR%D5w>$z3{oYv3T)cHA7w%RB6=7bN8(dHc_E=ffiL;8 z`q}#v6@I@P+y>dP(^qy@pv$Gdkxv$qQyZqaUp7^+^1TS#xFq!c9tXAfp1<#(pN@# zWMUXUU9UF|xu&Z&_C;&e7S9k+v$JV6Oi~X|U8rt4Jv_QEj=bu8czV&P7R;DoAUBBv z7j_LLB{S@bqcy^r_B-jWwzly2_`KVrfQv;P4^R6%9-vA{{KlM>6@g__tSy1r`pivG zPh~ZpjmAZSnbuW!;0u~HNwF&}N0>6q7XH|UrWLfz^-O`J^lV2?AIVrS83<`Uc_o9f zW_?B@`0&Vc`~4MPobUf0kz-Ta+YBf&fHxJa6Zd2FdLRZ$!CMy@O88`PJ6`LSFWd_tzgI zPXY(qNLpJYp^$H-pfDf^&dRwv`BL@>`|Q++l=N%a#LUJVlBU43XX5GprevKqNk*-t=npmws``UjZ`_c80HktV~z!hze50h0y&eqT_Mc0&GJ33tE1Wl z2M)w@de9Wj@a#Lm4Czhx;WxsqkAuUYxF{J7!OcQ#5Dv<3M4$1|x4Y-@z1CZCaAN#@ z*~Y*MqwynJolCZXP@FQ zIi>kxzEEF`&r=SfM~3t1(A+@1*!xw2$Sp@zRTS%)3(ohsZ)eUJ1kvPz1D0ke8?Sa= zFn90P!Uq;6h;c}W5P7~Zrqci#q@{IcjY>>IZy*f4$CGvBw1e<)jo_7mgG0^0AF)cC zrAPZc?fCq1^J3n1db(KvnwUzMGWeOc$u0Dr9uFakGH)+_xzbjhvuPXo@%jB8#a7tA zz_odf)b2tY!5k=@ADWkH8^*)EQ{T{#I4stSXMLx~yZ!WzQ#*sztSy3_b)`f?M z2Q(mlTQE~OEbpnF2r$ReC3f=-I+@qSTBQ$=&mT|rVtt*`X6*D9GSd<*#h1QGpq}$< zYASjNQdduJ_wdlj)wQMTa))25z!c1yd9ILLDIXt?zIvigg|6yr-rkqZw^eW2Wfea? zgyN*z*(aN`R99*n{U6hO@!qu`0kP}bmNPxb2OFMON^NKn4AvMjoX1lvLdWLx8Hoi^MVWx28D)#-(W`IK_U3!GPiCZQvUw_{BMM`{C22IT!|HJ5oOwfit2PI%W#Rs#pU78{#iLEC%h-7NK5fw zBX+5f_K=LMYSFA80};;P$Gm3ALZ(^0iB(8@KbFSS$cl89#f5!UZ!pe%h+{ue>xCR`-fnc^g(YU3Iu0SRMC?M7yb_1#3|d8l*c<_&UgPOQNI6&= zo9EF)4~H=}whk|-!x!!;5XPc{0a*nkR#Ed|NRq2iHucePPp&TEjB+>@nMy{T2%4uS zWYNF03GB9`eRwuRc$pXCl3R21B^^v%9vfYl;w^(-{G>~5L^&dlv4E<`F(0%wH8r&f z5M{UWnl}~slmz)^K(0dA)_9!j>)Y$=ofrNcp`~0sNHCn=;TX~w!na!3?YIwfu%)vl>1k=L#D9kT3ds-cE4Sy1)9$NU-A+O$;Lw0B&-r&!n8c)XLA}4X zoaJtjyfN49trgYAMoLQ#db+&-^>}o0NJ_hd02ntJ0I3)r6m{K*YlS&6UcPE!V~0FE zJg`klL?(t{&$^b_a-y(P-Mvd-%wf?zp=>C8c^Z;ILtmOFhtPqf{cDP_;07#sY2cZO zl&9Ea=MjV)RApl$*h|}&(sazu^Q^086bKjn(b0w>_a7<24Zfexnem!OnFNNP0 zn4!YiYeT85tl|Pdgi$&loS{rqe&hQQ*Zh#{*DFQMMOI2%7}ILI}e zenm6-%FX#YcIfndRphH4zs3iX+{&oE+)m{qfSP1h2*_C|ySQNrRO;#~wDXn9C~-sf z&@Y%Hyv;A^xP?wJla;R)QcX`|*HF(nlhQnYDMEx?9zawh4#gg*k(!l7iy1jE3=%4k zM2R!Iy}BC4+hI0ku3m$(94aD_k(1+VZ-19UlcFvJJ{t_uV00=kupjYvLe6`{5B*KO z>tq=Wgt{`HZ1+L#0oNKp##u*wik`CUr1p*jmQ^;NQVIThvYs-|HK$bSZG|wN%=*2j z8OlwVS2C!%rDaA#emkpcDImTiJT%cdk}G0431RPjX=)4i(6O$+uq;sJ;>}z6Ksf!*0x^borUu8&)4apCC$OTg~w{0{NrOG zp~zrBFFR-T#YN2org^7U&aR>cYtb*^F^SueQ^l-4T{<45VO!~)icEA?e6IfME&{Xp#lj7bOk{?NYg zTl@p|YGk=@2v>)@z9Z9*Z{*Em#0u?TcQ-dSHnu;A=~VUPJwphY3Yc#_0GtpY-Vy`z>y6jQgR&(_tH=j5MX0^97m+$t$T-euok%%wZJh=Wk#IA z)GuPcz!#tQdF=?=QQ-q30gKg&GjZo-XGRKkEFa07d>@TN5$Ra5^(uKMJKC; zZWoiW9m2}YP}4Q?)iM_AnBn z6Hv1=V(Sp!QEv9QJBT1G0N@ZWhQ4h7?MQ<%14ck7(;X6$HaD{ky(tO-inF?Qh|!9Zdn9 z43&*p30G+(%pXT5X}JQi*l9ykj;0ff0Sn8D?oirLB;poEQ_2XmZshIiQWtrhX8sL0 z0JjuMhb8fz`JgBu{O8_MaVe?Jlkrd(p$xxxQ3Zwjv**i&5?Pbdkg6E>x3|K4vq~|7 z0QRbu9lulksP@G($0ckaYe9(_c>vB3ok$)|5VCEXM)8%tL8FR8#o^Z;j~_pP+qi)% z0?x_96vvU+OzjiaGz2q0nBL*Om;|klF-{#GOexZh&1Pt2#_L-7B9oJluU}wdqjTx zm=fCA!NW9rbZX+mBG!SdI{E z*>>IRQw1;N2jqxT2T$~Za?jhF(bj1#9R|0z*WMD#*`o`<81C$6NsIF(nf%eKJ!VoC z=fU1(H!^JI+YW&$D_2+50tv@;sVtxGZwFKLi30<{uMy?vVMJ*w9?1YdBu2 z%0Jjbna>VEUu_(3Y|7<+Bi|d7U$SqtSrJE^{dzQkXu^>L8wWMm9XNGPA59@cc9Y>a zfY6Q;4@bk$cVDb8#2`{b`Rt$yPLGF^QaYLGwyw`_jS{+r!_10IHdOQ4YfP)pe9|3zKz7{WW&aFy>CBAyQ6hGc-JNNg2t$APg^`Bex*MxmC z%*t>bKirlML`1}D=Qptu#?YAFcuK(o?9WjWKiG`NQ;n>B}HSTHk|-X zL9J>8&$Y;d&>e62iXhtFcaH-f;d|_jI^&hCNt#S?H4QITXRRjLa zz0=chV9M^agwD=SS~{uLahB6;p4%ZL;1H$*dyJrG%Hsy8c4KO)avJRnWofr?wKy|UGU8|O-6GlX1?4qg;Fu9e^9npZVqp0(~ZeutD-y*Du1pwdWW|+xSwXso!4xCo0qKjN)p~d z&W-FK93+L!J@@=mXR?6hYwqYh=B29*)IVsP4ecKHu9kX>XzFMK*_d$UoegH5SA85F z)$<5z`gJL*u@e^t#Pp<~z|w1{YX`S%?st#yA4eg6B^v^qKtx2t%p9|qg-m8x{IiR* z^9tkWzej&Ca6-42dA(+(^V%EB7Ahj5{_GxQ+5J&)ot*l{tlVlV`fd%1OMB9ILX9>z z;ea7qo`3vjNMA8Ho3GP>nxqvHj<7+_;n7{;>W<4W+dkr>1`@w5x8KsGJT4W!Jad}V@iUS?T~f7$PH$q` zCZ?h-&#KW_8WY(jK9w$Iu!KzPJ4#R5v`WLPyUqkf>`IZZ(V)pyD720dH=(Sx;zHAW zF9;=Mg}pEIXnk3ugg-fYhw5um9m_bS68@iIJ`Uz#K~c9`^kL9#z%FprVFZ`{_OpQ# zibcAb$T2EfXi3s|zmc}!1~`*17Y^p~&ZOHc{5#7v#rSTF>KILg z-i=;_ozVHia%P=G11yx5rD7%;r^`ip%6=2-ZNH8$s``8Mqiw)ce8Md|zHg<$VRjR9 z$ap`?)Heu`)V+N}je#C^Y0Qsqvcw%kS#H2RXxT3LsE(>^!Cw|A4N2 z!>#jKcm5q+lyA~a`_4hjuXC~cDSe2SNyVm?o+%EuT|%6*DZ7OZBp=B)Si`JPw+-2S z_=UQRAZPcVav_Ngc8IL@2S%uWl6}(&SL}$ce7chW-#gu4y)hsFZ2O5$!`)2d^QJ7X z0HayLj{cZ(aB>21Sw4hH*2NqgkcoUw#&h}Nr8!O>N+?k#@aI)8TS~Lv-`?7d3TNh1 z4G#~;;0=~~!ZN7xKwjP4(D#R>)Y4}i_MO#nFF&^Q;DNF3#UO#R@WV)oS?_(XR9EO5 zKJb?=>NgEBziT?1j^o18)l+EH*S{21yw7{V=@iN|3PHaBp?g34fuL?yfgz8qYOTjW zSc+8P3ECHl@ZRhrS~b=w1*`xE@_;^Ri*AtFvuE zpfxnC=f<4n0@ujs7Z6m{$PyD5!(oX8D~qtsaIX6;O1WNiOl^=Hshz1fjd2BYo!#fl z&j@fXvo2>QI~Y@hA@Kldl&L1^?)>%7%>8haXm05q7HZGGiG_{U((K7J+?S5#FT1QE zM!y15QbC~9INO=d^43%KQYCeAJ0lqPSTi4&l7c=zT1sSB9Sqo%#X5tfkW(yVJAN%B!BnrWR2V;W`ZG6SO&D$+YHGoD9eJd!zA#@cgIF_Vt`? zS^a;|*n&UGoha<##^GK9O+adl;AJF+V3geV22M(lkdT0X3jOcw>BK13ZTzM}J0hj& z(b4D5Mp|8|MRYfJVAwi>)gBL`{2i#fetQnTkqeqVKhfF=JX@Jc?u*LeZX)Cd$N4$j zZ#tAz(YB4xcm45i+suu=?`s=3BctbSRB{zq{!XRe7+7v;I_05L3h!|)WBX&4D^sXZ zsfu_AiN&#HCmKbm6+>`Rp~{G8iRSL;8feYeO##*;@(U}tVj>b$9n0db<*9{*g{?1-u7L>)qK$q<0SN(td?`lwP<3Comh+`RTt(eVxi+~qpMr%Gr?PEr zC4p!=YbRzAb}lQvMUa}jI>w++!!PG<)yd;It8~h!@_L_0#~sHq5NxEGn|;+bH-SPx z@8eQH`M>$}lWCOoi|4=_B$8rJuQ(|yp$lAk2P)>vQ8Cd~&miF>#rB6rMz?A3&$2(foaWK+yUwCLvjYz>SE%VF;6lhn1B^e^sA$ z%m;#mxv{vUUj_q?c+_9Oa=pisDf|Mu7Sfh_2a<6`TkM>sBA9t?1+B+jhN|-N<`zxA zy6JOBj6H2{j-A@-+TWeLIz6~;a6YT5O=t$nReXk$|a3yEY)a8h{qYv92NT%vj&=Nr##{f0uN zMz4ICYMv;w7zrNg9~k!Cxc5Pl7X_LJnZNMR+Ak<&Nhko<9*p|-CJ6;FJhn(v!*;T4 zlD8LF!ed=2QAI{_i}TvlHAua%bU-aTd`#YJRp$s~8=^`!UGPL2A1p>}y5@Nvu$1$JoGIUdRj-d!C(QfylF6nf3aOYHj?TGVKN+m%^1{c>z6%T_4Yx*gJWXo zdVupGR$~X**%dN>2{u2uKY)OMK3KzOFj=Q|69+(LR00M%{3gd%p{a&1&j$wwRzT4S zU~O1a!)lIR$#*;}b&Oz-^cBVu=-lt8h6M+{HL^n^Nd$S1kILVGHyb=S-cj^umQJCX zmrXCJY(tSJ4Ql{9H3o+wN@{TsKLW;oXoB$HDI&y2`54v+)gJT`v9PeplgB$++YlYp zVghGdokV8_jr=Ve>g)H%Gr8EXJs@G*SYw>%?*iV5N;DVbJ@85Sr?kiVKprta_jz{cm>s+lj_J&e|Q%F_!j? zxUcU9`+!hnKN8!}Ld!9$+8G6DIm(mFOKZ^(B5<!hOO3FI>9%faZ2vILHC%8oFPOp7jcr7Hj(YXm#{&dVKka zLxY2jEqTD96=ZBstWc?7)a5GRef_eX8(9!oxVWG#TKubRIzHkp&PQj)Vj|NM7~_)2 zeH_Hg?HnD6g&yHy{WbWZ`y2U2DhPfp!Q?2^IUD*8+E+|^d3rF`*_MQZt(Ko}cE(=u zXNsr#7A0v;r_M!yfk9-i%*^KDNf9KV3pYv;_Pz)QCvVaA9BY5Pe@@^ppX}T@2-RRF zq_b;~CDqgtzU^GMe7IA6-zm1}&po>7zU=yh@{NSc*)9%HwXurGwDg{758Cj2?XJ%+ zXnodRK5D8v=|mK4=l@EQBfM>9)BS8)8khlkm^I=A*+y$vvrPi%ir`$O^QmTo@L)x%#Ey1m}g z&G|?p14bl{*hI@Ki*vqU>5wA#j( z0JW4z!ppV^?j$S)9?6OPQ7am(qTyz8$;)y(4;PgPT@1@di5csH9UXHds<6JIU1I;) z>e2~01my*2rmpq+V}9AO%6Gt2i{TO>K40Z1c`d=*&?QQ$`h|w3CMS3K7@C+2CsfJ? ztq#=^q597IyRU%%eHJ76{N4_|Aa3$5ADxqL^Y#bAuEnb*p{1c!RZ%rfCnG2CGt~vL zuAaFpWaM^Vp0i#wB)p$L|C__$$>$#pkZG7meyBoOJm84d;hL=f>yG+OvM2zbYM<4FN(OtFItw*50DzH zF*LLS*vu~#VyG{Vnse$}Fsh9E545Bm9D z;M4>X4hhBkbbn6gbnwydhX7hf~{mW+U~cs9es$D{7~V=TaH;HnB_$H3HyaIiPmtF zlHikw4Gle>iUW~3xc>&|YHD^hHZ}E0sS;qhbk7~VxLFJKS{oaKLQchCCKOR=yc5P7 z)9JU`KN+6gg2I7@`=MLI`zyII3(NF>lUeCiB(~Z7>+4u^+;=k(p+-v$hsbJDn3I}4 znXB-jG_g3TsLiyxyA+WUaN>%Y*fv|&FLpVT-Pm0ol451T8oErne5|NA6;bVofHf2; z2B_W}UOI3G)29MsEZ1f;=GGWZmekeFS*u}3mzAC1NRX=^AD5Vg_iFYP3H%j>?sih? zXmhvy3@JPE!YIot%Ylq3{ljW<-a6$z+0-ydRr8GE(puRa7kH+*0qI9}K=U!?jtTl$ zAz^H7j&%)64Old#^Q6pWNOc?ZF<# zjpObOheJd$V5*_oE;Qo5`ef?bjOKoga+VQ8esB>AqL^YJT^7L%pC*cvGo&=d+|Vo& z12?YE&IAM0q!~FzEQk`W{hizKkuVV1)V`e&rq%0D3_zJozmWVZ#7g)ig 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 bK#_Rxd*)|W)(AcU@ORc8q1(4@;J?2CM?(i9 diff --git a/install/installs/ReactionPack/install/Boomstick/common-tti.pk3 b/install/installs/ReactionPack/install/Boomstick/common-tti.pk3 deleted file mode 100644 index ca001609ca2d9b80df35262d6492b6687dbe6cac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518829 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 z%0D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 &e! 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 z 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±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 (^7Xd(3uQ%8c6Lg6EaCuZK%`2R?!{c(27zE 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%0D3_zJozmWVZ#7g)ig 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 bK#_Rxd*)|W)(AcU@ORc8q1(4@;J?2CM?(i9 diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/entries b/install/installs/ReactionPack/install/Boomstick/scripts/.svn/entries deleted file mode 100644 index 214dbb46..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/entries +++ /dev/null @@ -1,164 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/Boomstick/scripts -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-25T02:40:33.910936Z -66 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -shaderlist.txt -file - - - - -2012-04-01T16:52:39.930734Z -2dacd278744e75ce3c66a4de9382f029 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -7 - -reaction.def -file - - - - -2012-04-01T16:52:39.932734Z -2732bbe90e377d94e8e112a868d80169 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -107754 - -default_project.proj -file - - - - -2012-04-01T16:52:39.933734Z -d9f597d2e2532d909b794777937d0883 -2011-01-20T06:27:05.652569Z -65 -rambetter - - - - - - - - - - - - - - - - - - - - - -6514 - -common.shader -file - - - - -2012-04-01T16:52:40.051741Z -95d5c149dd9d06e354ad3631cf018738 -2011-01-25T02:40:33.910936Z -66 -rambetter - - - - - - - - - - - - - - - - - - - - - -14051 - diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/common.shader.svn-base b/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/common.shader.svn-base deleted file mode 100644 index c57ebf20..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/common.shader.svn-base +++ /dev/null @@ -1,818 +0,0 @@ -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip -} - -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm clusterportal -} - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm nodamage -} - -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm donotenter -} - -textures/common/full_clip // silly shader, use weapclip instead -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/hint -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm hint -} - -textures/common/invisible // solid, transparent polygons, casts shadows -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/mirror1.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip - surfaceparm trans -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nolightmap - surfaceparm nodraw -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm nodrop -} - - -textures/common/noimpact -{ - qer_editorimage textures/common/nolightmap.tga - surfaceparm noimpact -} - -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm origin -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - tcMod turb 0 0.25 0 0.05 - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks -} - -textures/common/metalclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - -// ydnar: antiportal works like hint, but supresses portals -// add this to your common.shader file - -textures/common/antiportal -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm antiportal -} - -// ydnar: skip works like quake 2 hint: it doesn't generate bsp splits -// use on sides of hint brushes where you don't want bsp splits or portals -// add this to your common.shader file - -textures/common/skip -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm skip -} - -// alpha fade shaders - -textures/common/alpha_000 // primary texture only -{ - q3map_alphaMod volume - q3map_alphaMod set 0 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_025 -{ - q3map_alphaMod volume - q3map_alphaMod set 0.25 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_050 // perfect mix of both primary and secondary -{ - q3map_alphaMod volume - q3map_alphaMod set 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_075 -{ - q3map_alphaMod volume - q3map_alphaMod set 0.75 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_085 -{ - q3map_alphaMod volume - q3map_alphaMod set 0.85 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_100 // secondary texture only -{ - q3map_alphaMod volume - q3map_alphaMod set 1.0 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -// -// reaction -// - -textures/common/ladderclip -{ - qer_trans 0.5 - surfaceparm playerclip - surfaceparm ladder - surfaceparm nodraw - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm nonsolid -} - -// markerclip for showing CTB markers on terrain - -textures/common/markerclip -{ - surfaceparm trans - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -// custom player clips - -textures/common/clip_gravel -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_gravel -} - -textures/common/clip_wood -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_wood -} - -textures/common/clip_carpet -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_carpet -} - -textures/common/clip_metal2 -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_metal2 -} - -textures/common/clip_grass -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_grass -} - -textures/common/clip_snow -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_snow -} - -textures/common/clip_mud -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_mud -} - -textures/common/clip_wood2 -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_wood2 -} - -textures/common/clip_metalsteps -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/clip_hardmetal -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_hardmetal -} - -textures/common/clip_leaves -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_leaves -} - -textures/common/clip_cement -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_cement -} - -textures/common/clip_marble -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_marble -} - -textures/common/clip_snow2 -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_snow2 -} - -textures/common/clip_hardsteps -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_hardsteps -} - -textures/common/clip_sand -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_sand -} - -// custon weapon clips - -textures/common/weap_gravel -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_gravel.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_gravel -} - -textures/common/weap_wood -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_wood.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_wood -} - -textures/common/weap_carpet -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_carpet.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_carpet -} - -textures/common/weap_metal2 -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_metal2.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_metal2 -} - -textures/common/weap_glass -{ - qer_trans 0.3 - qer_editorimage textures/common/weap_glass.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_glass -} - -textures/common/weap_grass -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_grass.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_grass -} - -textures/common/weap_snow -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_snow.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_snow -} - -textures/common/weap_mud -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_mud.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_mud -} - -textures/common/weap_wood2 -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_wood2.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_wood2 -} - -textures/common/weap_metalsteps -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_metalsteps.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm metalsteps -} - -textures/common/weap_hardmetal -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_hardmetal.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_hardmetal -} - -textures/common/weap_leaves -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_leaves.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_leaves -} - -textures/common/weap_cement -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_cement.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_cement -} - -textures/common/weap_marble -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_marble.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_marble -} - -textures/common/weap_snow2 -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_snow2.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_snow2 -} - -textures/common/weap_hardsteps -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_hardsteps.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_hardsteps -} - -textures/common/weap_sand -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_sand.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_sand -} diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/default_project.proj.svn-base b/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/default_project.proj.svn-base deleted file mode 100644 index f8cc11c3..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/default_project.proj.svn-base +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/reaction.def.svn-base b/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/reaction.def.svn-base deleted file mode 100644 index 487bbc0c..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/reaction.def.svn-base +++ /dev/null @@ -1,1296 +0,0 @@ -// Reaction entity definition file -// Maintained by TTI: tti@rq3.com -// Website: http://www.rq3.com - -//============================================================================= - -Q3MAP2 - -//============================================================================= - -/*QUAKED _decal (0 .5 .8) ? -This is not an entity as such, it never reaches the game. It is strictly an editor utility to project decals surfaces over world brushes --------- KEYS -------- -target : The name of the entity targetted at for projection. --------- NOTES -------- -Compiler-only entity that specifies a decal to be projected. Should contain 1 or more patch meshes (curves) and target an info_null entity. The distance between the center of the _decal entity and the target is the axis and distance of projection.*/ - -//============================================================================= - -FUNC_* ENTITIES - -//============================================================================= - -/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS -Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked. --------- KEYS -------- -speed : Amount of time in seconds for one complete oscillation cycle (default 4). -height : sets the amount of travel of the oscillation movement (default 32). -phase : sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav - See Notes). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of sound and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will bob along the X axis. -Y_AXIS : entity will bob along the Y axis. --------- NOTES -------- -In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_breakable (0 .5 .8) ? CHIPPABLE UNBREAKABLE EXPLOSIVE NO_KICK -Breakable object entity that breaks, chips or explodes when damaged. --------- KEYS -------- -health : determines the strength of the breakable entity (default 5). -id : a unique identification. Each type of breakable in a given map needs to have a separate id. Valid values are 0 through 63. -type : type of breakable. See notes below. -type_id : alternate key indicating a breakable type defined in a different entity (another breakable or the worldspawn). -amount : sets the number of fragments to generate when the entity breaks. 0 ~ 10 pieces; 1 ~ 25 pieces; 2 ~ 50 pieces; 3 ~ lots of pieces (default 0). -force : sets the force at which the fragments scatter (default 7). Reasonable values are 2 to 12. -lift : sets the magnitude of the additional vertical force of the fragments (default 5). Reasonable values are 0 to 20. -damage : sets the amount of damage dealt to nearby players if the entity is made to be explosive. Default is grenade damage (default 170). -damage_radius : sets the maximum distance (in units) from the explosion players will take damage (default 340). -target : all entities with a matching targetname will be triggered when the entity is broken or exploded (not chipped or damaged). -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetname : if set, activating an entity with a matching target key will make the entity explode. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -CHIPPABLE : pieces will spawn when the entity is shot, but the entity will not be destroyed until the health of the entity is surpassed. -UNBREAKABLE : entity will never break. To make the entity chip, but never break, check the first two spawnflags. To make the entity chip and eventually break, only set the first spawnflag. -EXPLOSIVE : entity will explode. -NO_KICK : players will not be able to kick the entity. --------- NOTES -------- -Breakables are defined in sets by the 'type' key (e.g. type : glass, type : wood). Each set of unique keys used in a map must be given a unique id number (0-63; max 64 per map; no default value). Two different breakable entities with the same keys should have the same id. If two different breakable entities differ in type, force or lift they require separate id numbers. -Breakable types can also be defined in the worldspawn and used by their corresponding id's through the "type_id" key. See the worldspawn entity info for more details*/ - -//============================================================================= - -/*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. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -targetname : if set, activating an entity with a matching target key will trigger the button. -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 : if set to a non-zero value, the button must be damaged to operate. The actual value assigned to "health" is ignored. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -sound: path/name of .wav file to play (eg: sound/mapname/soundname.wav) (default sound/movers/button.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED func_door (0 .5 .8) ? START_OPEN CRUSHER AUTO_OPEN TOGGLE -Normal sliding door entity. By default, the door will not activate when player walks close to it. --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately). -lip : lip remaining at end of move (default 8). -target : all entities with a matching targetname will be triggered when the entity is activated from its starting position. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -targetname : if set, another entity with a matching target key is required to activate the door. -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -health : if set to a non-zero value, the door must be damaged to operate. The actual value assigned to "health" is ignored. -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -activatename : used in order to allow target_activate entities targeting this trigger to activate/deactivate it -inactive : indicates that the door should start inactive. It can be activated by target_activate entities that have a "target" matching the "activatename" field of the entity -soundinactive : sound to be played when trying to open the door while it is inactive -targetinactive : target(s) to be fired when trying to open the door while it is inactive -team: assign the same team name to multiple regular doors that should operate together. Do not team with a rotating door. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (see notes). -soundstart : path to sound file to play when door starts to open (eg: sound/mapname/soundname.wav) (default sound/movers/door_start.wav). -soundstop : path to sound file to play when door comes to a stop (eg: sound/mapname/soundname.wav) (default sound/movers/door_stop.wav). -soundmove : path to sound file to play when door is moving (eg: sound/mapname/soundname.wav) (default sound/misc/silence.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging the player until he dies or gets out of the way. -AUTO_OPEN : the door will open automatically when approached by a player; 'opendoor' will not be necessary. -TOGGLE : wait in both the start and end states for a trigger event; the door will stay open until closed by another 'opendoor'. --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN CRUSHER AUTO_OPEN TOGGLE X_AXIS Y_AXIS LOOK OPEN_AWAY -This is the rotating door entity. Just as the name suggests it's a door that rotates. --------- KEYS -------- -distance : determines how many degrees the door will open (default 90). -speed : determines how fast the door will open (degrees/second) (default 90). -wait : number of seconds before door returns (default 2, -1 = return immediately). -reach : max distance the door can be opened from. Value has to be less than or equal to 100. Generally used only in special situations (e.g. lockers and cabinets). -target : all entities with a matching targetname will be triggered when the entity is activated from its starting position. -targetname : if set, another entity with a matching target key is required to activate the door. -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -team: assign the same team name to multiple rotating doors that should operate together. Do not team with a regular door. -soundstart : path to sound file to play when door starts to open (eg: sound/mapname/soundname.wav) (default sound/movers/rdoor_stop.wav). -soundstop : path to sound file to play when door comes to a stop (eg: sound/mapname/soundname.wav) (default sound/misc/silence.wav). -soundmove : path to sound file to play when door is moving (eg: sound/mapname/soundname.wav) (default sound/movers/rdoor_move.wav). -health : if set to a non-zero value, the rotating door must be damaged to operate. The actual value assigned to "health" is ignored. -activatename : used in order to allow target_activate entities targeting this trigger to activate/deactivate it -inactive : indicates that the door should start inactive. It can be activated by target_activate entities that have a "target" matching the "activatename" field of the entity -soundInactive : sound to be played when trying to open the door while it is inactive -targetInactive : target(s) to be fired when trying to open the door while it is inactive -light : constantLight color of .md3 model included with entity (default 0). -color : constantLight color of .md3 model included with entity (defalt 1 1 1). -model2: path/name of model to include. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging the player until he dies or gets out of the way. -AUTO_OPEN : the door will open automatically when approached by a player; 'opendoor' will not be necessary. -TOGGLE : wait in both the start and end states for a trigger event; the door will stay open until closed by another 'opendoor'. -X_AXIS : open on the X-axis instead of the Z-axis -Y_AXIS : open on the Y-axis instead of the Z-axis -LOOK : Door will only open if you look at it when pressing 'opendoor'. -OPEN_AWAY : Door will always open away from the player. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of the origin brush will be the point around which the door rotates. It will rotate around the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_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. --------- KEYS -------- -alphamap : this is the path/name for the art file used to guide the mapping of textures on the terrain surface. -layers : this integer value is the number unique root shaders that will be use on the terrain. -shader : this is the path to the metashader used to assign textures to the terrain entity. -terrain : this is an on/off flag. When set to 1, the entity becomes a terrain entity. --------- Q3MAP2 KEYS -------- -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.*/ - -//============================================================================= - -/*QUAKED func_pendulum (0 .5 .8) ? -Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum pushes the player. --------- KEYS -------- -angle : angle offset of axis of rotation from default X axis (default 0). -speed : angle of swing arc in either direction from initial position (default 30). -phase : sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_plat (0 .5 .8) ? -Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. --------- KEYS -------- -speed : determines how fast the plat moves (default 150). -lip : lip remaining at end of move (default 16). Has no effect if "height" is set. -height : if set, this will determine the total amount of vertical travel of the plat. -dmg : damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked. -target : all entities with a matching targetname will be triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetname : if set, another entity with a matching target key will raise the plat each time it is activated. The plat raises and comes back down a second later if no player is on it. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -soundstart : path to sound file to play when door starts to open (eg: sound/mapname/soundname.wav) (default sound/movers/plat_start.wav). -soundstop : path to sound file to play when door comes to a stop (eg: sound/mapname/soundname.wav) (default sound/movers/plat_stop.wav). -soundmove : path to sound file to play when door is moving (eg: sound/mapname/soundname.wav) (default sound/movers/plat_move.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip.*/ - -//============================================================================= - -/*QUAKED func_pressure (0 .5 .8) ? -Solid entity that spews steam, flames, or water when shot. --------- KEYS -------- -type : sets the appearance of the emission. Options are 'steam', 'air', or 'flame' (default steam). -speed : the speed at which the substance shoots out (default 200). -target : all entities with a matching targetname will be triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. --------- NOTES -------- -The location and direction of the emission is a function of how the entity is shot and can not be set by the mapper. In using a func_pressure to target something, have it go through an intermediary entity that has a wait key (like a func_button).*/ - -//============================================================================= - -/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS -Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable. --------- KEYS -------- -speed : determines how fast entity rotates (default 100). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will rotate along the X axis. -Y_AXIS : entity will rotate along the Y axis. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_static (0 .5 .8) ? START_OFF -Static non-solid bspmodel. Can be used for conditional walls and models. --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/mailbox/mailbox.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -targetname : if set, activating an entity with a matching target key can make entity disappear from the game (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OFF : entity will start in the off position. --------- NOTES -------- -When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: it will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static. - -By default, when activated a visible func_static will be shown and an invisible one will be hidden. To alter this behaviour, you can use a "pathtarget" key for the entity that points to the func_static. Possible values are: -- "on" - will always show the targeted entity -- "off" - will always hide the targeted entity -Any other value for "pathtarget" will make the func_train take the default action. - -Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types.*/ - -//============================================================================= - -/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON -Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off. --------- KEYS -------- -wait : delay in seconds between each triggering of its targets (default 1). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -target : this points to the entities to trigger. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetname : activating an entity with a matching target key will toggle the timer on/off. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_ON : timer will start on in the game and continuously fire its targets. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED func_train (0 .5 .8) ? -Trains are moving solids that follow a string of path_corner entities. They require an origin brush (see Notes). --------- KEYS -------- -speed : speed of displacement of train (default 100 or overridden by speed value of path). -target : this points to the first path_corner of the path which is also the spawn location of the train's origin. -targetname : the name of the entity. This key must be set in order to make the entity behave like an elevator. -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -dmg : damage to inflict on player when he blocks operation of the train (default 2). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Trains will start on in the game unless the path_corner they start on has a wait of "-1". -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.*/ - -//============================================================================= - -INFO_* ENTITIES - -//============================================================================= - -/*QUAKED info_camp (0 .5 0) (-8 -8 -8) (8 8 8) -This atttracts bots which have a camping preference in their AI characteristics. It should be placed at least 32 units away from any brush surface. --------- KEYS -------- -range : number of units that the bot can move away from camp entity while camping on it. -weight : number that is compared against the weight assigned to all the other camp spots in the map to determine if a bot chooses to camp there. The value is normalized against all other weight values. --------- NOTES -------- -Examples of bots which have a high camping preference are: Razor, Tank Jr., Grunt, Patriot and Doom. Examples of bots which have a low camping preference are: Klesk, Mynx, Sarge, Keel and Xaero.*/ - -//============================================================================= - -/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_player_deathmatch (1 0 0) (-16 -16 -24) (16 16 32) INITIAL -Normal player spawning location for Q3A levels. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. Does not apply to bots. -target : this can point at a target_give entity for respawn freebies. -nobots : when set to 1, bots will never use this spawn point to respawn in the game. -nohumans : when set to 1, human players will never use this spawn point to respawn in the game. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -INITIAL : makes the spawnpoint the initial place for the player to spawn at the beginning of the game.*/ - -//============================================================================= - -/*QUAKED info_player_intermission (1 0 1) (-16 -16 -16) (16 16 16) -Camera for the map intermission / scoreboard at the end of a map. --------- KEYS -------- -angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0). -target : point this to an info_notnull or target_position entity to set the camera's pointing angles. --------- NOTES -------- -Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level.*/ - -//============================================================================= - -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Player spawn location. Works the same as info_player_deathmatch. Also acts as the starting location for Radiant sessions. Only one of these should be placed in each map. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -ITEM_* ENTITIES - -//============================================================================= - -/*QUAKED item_botroam (1 0.5 0) (-8 -8 -8) (8 8 8) SUSPENDED -Game Function: An invisible entity which attracts a bot to it. Use to move bots to parts of a map that might otherwise not be used. --------- KEYS -------- -weight: non-zero floating point value, most often in the range 0 to 400. (Higher values are allowed but keep in mind that the bot should also be attracted to normal items. Don't make the weight value too high. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The item_botroam entity can be used when a bot does not roam the whole level or prefers to go to only specific areas. This (invisible) item can be placed in a map just like regular items. Nobody can actually pick up the item it's only used to attract bots to certain places of the map. The value is the weight of the roam_item is relative to the weight assigned other items in the map (each bot has its own weights). The bot character specific item weights are stored with the bot characters AI files ("botname"_i.c for items and "botname"_w.c for weapons) in the botfiles/bots/ sub-folder in the .pk3 file.*/ - -//============================================================================= - -LIGHT_* ENTITIES - -//============================================================================= - -/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE NOGRIDLIGHT -Non-displayed light entity. --------- KEYS -------- -light : value of light intensity (default 300). -_color : weighted RGB value of light color (default white - 1 1 1). -target : point this to an target_position, info_null or info_notnull to create a spotlight effect. -radius : sets radius of light cone for spotlights (default 64). Light must target a pointing entity. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : light falloff will be linear instead of inverse square of distance from source. -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT :Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE NOGRIDLIGHT -Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -light : value of light intensity (default 300). -_color : weighted RGB value of light color (default white - 1 1 1). -target : point this to an target_position, info_null or info_notnull to create a spotlight effect. -radius : sets radius of light cone for spotlights (default 64). Light must target a pointing entity. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : light falloff will be linear instead of inverse square of distance from source. -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT :Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -/*QUAKED light_d (0 .5 0) (-8 -8 -8) (8 8 8) ADDITIVE FLICKER PULSE -Dynamic light entity. Not recommended. Use sparingly. --------- KEYS -------- -light : value of light intensity (default 300). -_color : weighted RGB value of light color (default white - 1 1 1). --------- SPAWNFLAGS -------- -ADDITIVE : Use additive instead of multiplicative dynamic lighting. -FLICKER : Intensity is slightly random. -PULSE : Smooth sine function.*/ - -//============================================================================= - -MISC_* ENTITIES - -//============================================================================= - -/*QUAKED misc_lens_flare (1 .5 .25) (-8 -8 -8) (8 8 8) -Entity for a lens flare. --------- KEYS -------- -alphamax : normalized value that determines the variety of maximum opacity of each flare sprite. -alphamin : normalized value that determines the variety of minimum opacity of each flare sprite. -count : " number of flare sprites. If set to 0, only the sun sprite is displayed. -sizemax : value that determines the variety of maximum size of each flare sprite. -sizemin : value that determines the variety of minimum size of each flare sprite. -sunalpha : normalized value that determines the opacity of the sun sprite. -sunsize : value that determines the size of the sun sprite. -target : point this to a target_position entity.*/ - -//============================================================================= - -/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) SOLID LIGHTMAP -Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported. --------- KEYS -------- -angle: direction in which model will be oriented. -model : path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3). --------- Q3MAP2 KEYS -------- -angles : Individual control of PITCH, YAW, and ROLL (default 0 0 0). -modelscale : Floating-point value used to scale a model up or down (default 1.0). -modelscale_vec : Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0). -_remap : Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new". If you need to remap more than one shader, use _remap01, _remap02, etc. -target : Used to attach the misc_model to a brush entity, where its "targetname" key is the same value. -_lightmapscale : Floating point value scaling the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0). -_castshadows;_cs : 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;_rs : 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. --------- SPAWNFLAGS -------- -SOLID : Assigns q3map_clipModel to any shaders used by the model. -LIGHTMAP : Assigns q3map_forceMeta to any shaders used by the model.*/ - -//============================================================================= - -/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE NOROTATE -Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle. -target : point this to a target_position entity to set the camera's pointing direction. -targetname : a misc_portal_surface portal surface indicator must point to this. If this is one camera out of a sequence of camera angles, the targetname should be the target key of the misc_portal_surface appended with a #, where # is the order in which the cameras cycle (i.e. targetname1, targetname2, etc..). -roll: roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SLOWROTATE : makes the portal camera rotate slowly along the roll axis. -FASTROTATE : makes the portal camera rotate faster along the roll axis. -NOROTATE : removes the rolling motion from the portal camera. --------- NOTES -------- -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.*/ - -//============================================================================= - -/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8) CYCLE -Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera(s) that this entity targets. Also used for mirrors (see Notes). --------- KEYS -------- -target : point this to a misc_portal_camera that "sees" the view you want to display on the portal. If using multiple cameras, the targetnames for the misc_portal_cameras will need to be this name plus #, where # is the order in which the cameras will be cycled. -targetname : triggering this target will cycle through misc_portal_cameras if they are set to CYCLE (spawnflag 1). -count : number of misc_portal_cameras to cycle through. Only used when CYCLE (spawnflag 1) is on. Minimum value is 2 (default 2). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -CYCLE : indicates the surface will be used to cycle through multiple camera angles (generated by misc_portal_camera entities). --------- NOTES -------- -The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.*/ - -//============================================================================= - -/*QUAKED misc_sky_portal (.1 .3 .8) (-8 -8 -8) (8 8 8) -Entity for making sky portals. --------- KEYS -------- -target : point this to a target_position entity that is in the "sky" room. -targetname : a misc_sky_portal portal surface indicator must point to this. --------- NOTES -------- -Make the room that should be the sky. Set "skyportalent" to 1 for ALL the entities inside that room. Then add a target_position that will be the origin of the "camera." Then in the accessible parts of the level, add misc_sky_portal entities that target the target_position. In order for the sky portal entities to be rendered properly, the player must have a misc_sky_portal entity in his PVS ALL THE TIME. Also, replace all the sky surfaces with caulk (or anything that doesn't get drawn by the game) in order to be able to see the sky portal.*/ - -//============================================================================= - -/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16) -Teleport destination location point for trigger_teleporter entities. --------- KEYS -------- -angle : direction in which player will look when teleported. -targetname : make the trigger_teleporter point to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -PATH_* ENTITIES - -//============================================================================= - -/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) ROTATE -Path corner entity that func_trains can be made to follow. --------- KEYS -------- -target : point to next path_corner in the path. Must be set for elevators as well. -rotate: 3 values specifying the amount the func_train should rotate while moving from this path_corner to its target. Format is "pitch yaw roll" -targetname : the name of the entity; the previous path_corner in the path points to this. If being used for an elevator, the pathtarget key of the entity triggering the move points to this key. -speed : speed of func_train while moving to the next path corner. This will override the speed value of the train. -wait : number of seconds func_train will pause on path corner before moving to next path corner. Setting this key to -1 will make the train stop on the path corner (default 0). -sound: path/name of .wav file to play (default silence). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -ROTATE: if set, the train will also rotate while moving from this path_corner to its target. A "rotate" key must also be included --------- NOTES -------- -In order to turn a func_train into a working elevator, the path corners must have the wait key set to -1. To get the train to move again, use the pathtarget key from a separate triggering entity pointing to another path corner.*/ - -//============================================================================= - -TARGET_* ENTITIES - -//============================================================================= - -/*QUAKED target_activate (.3 .3 .4) (-8 -8 -8) (8 8 8) -Activates/deactivates other entities, like doors or triggers. --------- KEYS -------- -target : this must match the "activatename" field of the entities you want to activate/deactivate -pathtarget : if set to "on", the entity will always activate its targets; if set to "off", it'll always deactivate them; if set to anything else, the entity will toggle its targets active/inactive. --------- NOTES -------- -If you want an entity to be inactive when the level is started set its "inactive" key to 1.*/ - -//============================================================================= - -/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8) -Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -wait : delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1). -delay : same as wait? replaces it? WTF?...I'm confused now. -random : random time variance in seconds added or subtracted from the delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = delay - random) (max delay = delay + random). -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED target_give (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to give ammo, weapons, health or items to the player who activates it. --------- KEYS -------- -target : this points to the item(s) to give when activated. -targetname : activating trigger or spawn entity points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -There are 2 ways to use this entity. -a) automatically give items to players when they spawn in the game: make a spawn location entity like info_player_deathmatch or CTF respawn points target this entity, then make it target the item(s) to give to the player upon respawn. -b) give items to players during the game: make a trigger_multiple target this entity, then make it target the item(s) to give to the player when the trigger is touched.*/ - -//============================================================================= - -/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8) -This will kill the player who activates the trigger that fires this target. --------- KEYS -------- -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8) -Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used. --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. - 0 : white (default) - 1 : red - 2 : green - 3 : yellow - 4 : blue - 5 : cyan - 6 : magenta - 7 : white -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) -Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular. --------- KEYS -------- -targetname : the entity that requires an aiming direction points to this. -portalspeed : when this key is used with a sky portal, these 3 values indicate how much the sky portal should move in the player's view. Default is "0 0 0" - static portals. A good value would be "0.025 0.025 0.025" (similar to kibuye) or "0.025 0.025 0" (the latter would disable vertical portal movement). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.*/ - -//============================================================================= - -/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) REDTEAM BLUETEAM PRIVATE -This will print a message on the center of the screen when triggered. By default, all the clients will see the message. --------- KEYS -------- -message : text string to print on screen. -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -REDTEAM : only the red team players will see the message. -BLUETEAM : only the blue team players will see the message. -PRIVATE : only the player that activates the target will see the message.*/ - -//============================================================================= - -/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) - -This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply. -speed : speed of push (default 1000). Has no effect if entity targets an aiming entity. -targetname : the activating trigger points to this. Push originates from the location of the trigger. -target : this points to the aiming entity to which the player will jump. -sound: path/name of .wav file to play. Defaults to silence (sound/misc/silence.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.*/ - -//============================================================================= - -/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM -This can only be activated by other triggers which will cause it in turn to activate its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -RED_ONLY : only red team players can activate trigger. -BLUE_ONLY : only red team players can activate trigger. -RANDOM : one one of the targeted entities will be triggered at random. --------- NOTES -------- -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR NOPVS -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. -NOPVS : by default, looping sounds are only played while in the player's PVS. Checking this spawnflag will make the sound play no matter if it's in the PVS or not. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8) -Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events. --------- KEYS -------- -targetname : activating trigger points to this. -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -TEAM_* ENTITIES - -//============================================================================= - -/*QUAKED team_CTF_blueflag (.15 .15 .15) (-16 -16 -16) (16 16 16) -Black briefcase for CTB games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/cases/b_case.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_blueplayer (.15 .15 .15) (-16 -16 -24) (16 16 32) -Initial Black team spawning position for CTB games. This is where players spawn when they join the Black team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_bluespawn (.15 .15 .15) (-16 -16 -24) (16 16 32) -Black team respawning position for CTB games. This is where Black team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redflag (.9 .9 .9) (-16 -16 -16) (16 16 16) -Silver briefcase for CTB games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/cases/s_case.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_redplayer (.9 .9 .9) (-16 -16 -24) (16 16 32) -Initial Silver team spawning position for CTB games. This is where players spawn when they join the Silver team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redspawn (.9 .9 .9) (-16 -16 -24) (16 16 32) -Silver team respawning position for CTB games. This is where Silver team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -TRIGGER_* ENTITIES - -//============================================================================= - -/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8) -Automatic trigger. It will fire the entities it targets as soon as it spawns in the game. --------- KEYS -------- -target : this points to the entity to activate. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF TOGGLE SILENT NO_PROTECTION SLOW -Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt. --------- KEYS -------- -dmg : number of points of damage inflicted to player per server frame (default 5 - integer values only). -message : text string to print on screen. Default is "was in the wrong place". -targetname : activating trigger points to this. If no targetname is set, the entity can not be toggled. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OFF : entity will start in the off position. Only useful with TOGGLE spawnflag. -TOGGLE : wait in both the on and off states for a trigger event. -SILENT : supresses the sizzling sound while player is being hurt. -NO_PROTECTION : not used in Reaction. -SLOW : changes the damage rate to once per second. --------- NOTES -------- -Triggering a trigger_hurt will have no effect if the TOGGLE spawnflag is not set.*/ - -//============================================================================= - -/*QUAKED trigger_multiple (.5 .5 .5) ? OPEN_DOOR -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetInactive : if the trigger_multiple is set to inactive state by a target_activate entity, it can be set to fire other target instead of doing nothing. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -targetname : activating trigger points to this. -activatename : used in order to allow target_activate entities targeting this trigger to activate/deactivate it -inactive : indicates that the trigger should start inactive. It can be activated by target_activate entities that have a "target" matching the "activatename" field of the trigger -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -OPEN_DOOR : must be manually activated by pressing 'opendoor'. --------- NOTES -------- -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName. -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED trigger_push (.5 .5 .5) BOT_ONLY -This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted. --------- KEYS -------- -target : this points to the target_position to which the player will jump. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -sound: path/name of .wav file to play. Defaults to silence (sound/misc/silence.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -BOT_ONLY : only bots will use this entity. --------- NOTES -------- -To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.*/ - -//============================================================================= - -/*QUAKED trigger_teleport (.5 .5 .5) ? -Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events. --------- KEYS -------- -target : this must point to a misc_teleporter_dest entity. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -WORLDSPAWN ENTITY - -//============================================================================= - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -ambient : adds a constant value to overall lighting. High values are not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color. -_rq3_fog_color : if set, the game will fill the screen with this color before drawing the actual scene. Useful for replacing the q3map2 foghulls -vertexremapshader : sets a shader to be used in vertex light mode instead of a normal shader. Value : normal_shader;vertex_shader (note the semi-colon). As many shaders can be remapped as needed by using the key. However, if more than one shader is remapped in a map, each one must have a unique identifier … either a number or a letter after the Key word, as shown by “vertexremapshaderX”, where X is a number or any character set. Examples, vertexremapshader01, vertexremapshader02, vertexremapshaderA, vertexremapshaderB, etc. -gravity : gravity of level (default is normal gravity: 800). -gridsize : granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps. -_blocksize : q3map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Default _blocksize value is 1024. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density. --------- Q3MAP2 KEYS -------- -_minlight : raises ambient light only where it's less than the minlight value (dark areas) and leaves the rest of your map alone. -_minvertexlight : (see above) -_mingridlight : Minimum lightgrid (dynamic entity lighting) levelwide. -_keeplights : Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase. -_noshadersun : shader suns still work, but this is a method to override/do_not_use shader suns, and only use entity suns. I.e., supresses q3map_sun in your sky shaders. -_farplanedist : Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps. -_foghull : Shader to use for "fog hull." Foghull shader should be a sky shader. Omit the "textures/" prefix. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). Can be overridden in func_group (or other entities). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. Overridable in entities. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- RQ3 KEYS -------- -numbreakabletypes : the number of breakable types to be defined in the worldspawn (0 by default) -b#i_type (where #i is a number between 0 and numbreakabletypes - 1, e.g. "b3_type". These are the id's of the breakable types) : breakable type #i (e.g. "glass", "wood_mahogany" etc.) -b#i_force, b#i_lift : the same as the "force" and "lift" keys from func_breakables. These two are optional, unlike the "b#i_type" key. If the "b#i_type" key is ommitted, then the code will skip to the next breakable definition (if there is one). -atmosphere : The supported atmospheric effects are 'rain' and 'snow'. The format string is something like: T=RAIN,B=5 10,C=0.5,G=0.5 2,BV=0,GV=0 100,W=1 2,D=300 - -The type must always come first (T=RAIN). The fields are as follows: - -Key Default Description: -T RAIN Type of effect (supports 'rain' or 'snow') -B 5 10 Base times (X seconds, or between X and Y seconds) -C 1 1 Time to move from base to gust (X seconds, or between X and Y seconds) -G 0 2 Gust times (X seconds, or between X and Y seconds) -BV 0 100 Base vector (x and y units/sec). -GV 0 100 Gust vector (x and y units/sec). -W 1 2 Weight of drops (X, or from X to Y depending on base/gust position) -S 1 1 Water and Splash shader. This are two boolean values, the first enables impactshaders on water (0 = off, 1 = on), the second on land. -D 300 300 Number of drops (X, or from X to Y depending on base/gust position)*/ - -//============================================================================= - -RQ3AMMO_* ENTITIES - -//============================================================================= - -/*QUAKED RQ3ammo_m4 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -M4 ammo. Gives the player 1 clip by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/m4.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_mk23 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -MK23 pistol ammo. Gives the player 1 clip by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/mk23.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_mp5 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -MP5 ammo. Gives the player 1 clip by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/mp5.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_shells (.3 .3 1) (-8 -4 -6) (8 12 10) SUSPENDED -M3 & HC ammo. Gives the player 1 box of 7 shells by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/m3.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_ssg3000 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -SSG3000 ammo. Gives the player 1 box of 6 rounds by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/ssg3000.md3"*/ - -//============================================================================= - -RQ3WEAPON_* ENTITIES - -//============================================================================= - -/*QUAKED RQ3weapon_grenade (1 0 .5) (-8 -8 -8) (8 8 8) SUSPENDED -Grenade. Gives the player 1 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grenade/grenade.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_handcannon (1 0 .5) (-6 -6 -6) (16 6 6) SUSPENDED -Handcannon. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/handcannon/handcannon.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_knife (1 0 .5) (-6 -4 -4) (6 4 12) SUSPENDED -Knife. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/knife/knife.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_m3 (1 0 .5) (-16 -8 -8) (28 8 4) SUSPENDED -M3 Shotgun. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/m3/m3.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_m4 (1 0 .5) (-12 -8 -8) (20 8 8) SUSPENDED -M4. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/m4/m4.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_mp5 (1 0 .5) (-16 -8 -8) (16 8 8) SUSPENDED -MP5. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/mp5/mp5.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_pistol (1 0 .5) (-8 -4 -6) (8 4 6) SUSPENDED -MK23 Pistol. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\mk23\mk23.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_ssg3000 (1 0 .5) (-16 -8 -6) (32 8 6) SUSPENDED -SSG3000 Sniper Rifle. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/ssg3000/ssg3000.md3"*/ - -//============================================================================= - -//General Notes: -//The alias, attachto, targetShaderName and targetShaderNewName keys work for every entity that has a target key. For the sake of brevity, these keys were only added to entities where these keys would be commonly used. diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/shaderlist.txt.svn-base b/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/shaderlist.txt.svn-base deleted file mode 100644 index 30e1159c..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/.svn/text-base/shaderlist.txt.svn-base +++ /dev/null @@ -1 +0,0 @@ -common diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/common.shader b/install/installs/ReactionPack/install/Boomstick/scripts/common.shader deleted file mode 100644 index c57ebf20..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/common.shader +++ /dev/null @@ -1,818 +0,0 @@ -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip -} - -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm clusterportal -} - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm nodamage -} - -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm donotenter -} - -textures/common/full_clip // silly shader, use weapclip instead -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/hint -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm hint -} - -textures/common/invisible // solid, transparent polygons, casts shadows -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/mirror1.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip - surfaceparm trans -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nolightmap - surfaceparm nodraw -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm nodrop -} - - -textures/common/noimpact -{ - qer_editorimage textures/common/nolightmap.tga - surfaceparm noimpact -} - -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm origin -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - tcMod turb 0 0.25 0 0.05 - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks -} - -textures/common/metalclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - -// ydnar: antiportal works like hint, but supresses portals -// add this to your common.shader file - -textures/common/antiportal -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm antiportal -} - -// ydnar: skip works like quake 2 hint: it doesn't generate bsp splits -// use on sides of hint brushes where you don't want bsp splits or portals -// add this to your common.shader file - -textures/common/skip -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm skip -} - -// alpha fade shaders - -textures/common/alpha_000 // primary texture only -{ - q3map_alphaMod volume - q3map_alphaMod set 0 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_025 -{ - q3map_alphaMod volume - q3map_alphaMod set 0.25 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_050 // perfect mix of both primary and secondary -{ - q3map_alphaMod volume - q3map_alphaMod set 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_075 -{ - q3map_alphaMod volume - q3map_alphaMod set 0.75 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_085 -{ - q3map_alphaMod volume - q3map_alphaMod set 0.85 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -textures/common/alpha_100 // secondary texture only -{ - q3map_alphaMod volume - q3map_alphaMod set 1.0 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - qer_trans 0.75 -} - -// -// reaction -// - -textures/common/ladderclip -{ - qer_trans 0.5 - surfaceparm playerclip - surfaceparm ladder - surfaceparm nodraw - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm nonsolid -} - -// markerclip for showing CTB markers on terrain - -textures/common/markerclip -{ - surfaceparm trans - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -// custom player clips - -textures/common/clip_gravel -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_gravel -} - -textures/common/clip_wood -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_wood -} - -textures/common/clip_carpet -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_carpet -} - -textures/common/clip_metal2 -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_metal2 -} - -textures/common/clip_grass -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_grass -} - -textures/common/clip_snow -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_snow -} - -textures/common/clip_mud -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_mud -} - -textures/common/clip_wood2 -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_wood2 -} - -textures/common/clip_metalsteps -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/clip_hardmetal -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_hardmetal -} - -textures/common/clip_leaves -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_leaves -} - -textures/common/clip_cement -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_cement -} - -textures/common/clip_marble -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_marble -} - -textures/common/clip_snow2 -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_snow2 -} - -textures/common/clip_hardsteps -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_hardsteps -} - -textures/common/clip_sand -{ - qer_trans 0.4 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm rq3_sand -} - -// custon weapon clips - -textures/common/weap_gravel -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_gravel.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_gravel -} - -textures/common/weap_wood -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_wood.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_wood -} - -textures/common/weap_carpet -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_carpet.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_carpet -} - -textures/common/weap_metal2 -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_metal2.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_metal2 -} - -textures/common/weap_glass -{ - qer_trans 0.3 - qer_editorimage textures/common/weap_glass.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_glass -} - -textures/common/weap_grass -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_grass.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_grass -} - -textures/common/weap_snow -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_snow.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_snow -} - -textures/common/weap_mud -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_mud.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_mud -} - -textures/common/weap_wood2 -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_wood2.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_wood2 -} - -textures/common/weap_metalsteps -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_metalsteps.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm metalsteps -} - -textures/common/weap_hardmetal -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_hardmetal.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_hardmetal -} - -textures/common/weap_leaves -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_leaves.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_leaves -} - -textures/common/weap_cement -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_cement.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_cement -} - -textures/common/weap_marble -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_marble.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_marble -} - -textures/common/weap_snow2 -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_snow2.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_snow2 -} - -textures/common/weap_hardsteps -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_hardsteps.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_hardsteps -} - -textures/common/weap_sand -{ - qer_trans 0.6 - qer_editorimage textures/common/clip_sand.png - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm rq3_sand -} diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/default_project.proj b/install/installs/ReactionPack/install/Boomstick/scripts/default_project.proj deleted file mode 100644 index f8cc11c3..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/default_project.proj +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/reaction.def b/install/installs/ReactionPack/install/Boomstick/scripts/reaction.def deleted file mode 100644 index 487bbc0c..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/reaction.def +++ /dev/null @@ -1,1296 +0,0 @@ -// Reaction entity definition file -// Maintained by TTI: tti@rq3.com -// Website: http://www.rq3.com - -//============================================================================= - -Q3MAP2 - -//============================================================================= - -/*QUAKED _decal (0 .5 .8) ? -This is not an entity as such, it never reaches the game. It is strictly an editor utility to project decals surfaces over world brushes --------- KEYS -------- -target : The name of the entity targetted at for projection. --------- NOTES -------- -Compiler-only entity that specifies a decal to be projected. Should contain 1 or more patch meshes (curves) and target an info_null entity. The distance between the center of the _decal entity and the target is the axis and distance of projection.*/ - -//============================================================================= - -FUNC_* ENTITIES - -//============================================================================= - -/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS -Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked. --------- KEYS -------- -speed : Amount of time in seconds for one complete oscillation cycle (default 4). -height : sets the amount of travel of the oscillation movement (default 32). -phase : sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav - See Notes). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of sound and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will bob along the X axis. -Y_AXIS : entity will bob along the Y axis. --------- NOTES -------- -In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_breakable (0 .5 .8) ? CHIPPABLE UNBREAKABLE EXPLOSIVE NO_KICK -Breakable object entity that breaks, chips or explodes when damaged. --------- KEYS -------- -health : determines the strength of the breakable entity (default 5). -id : a unique identification. Each type of breakable in a given map needs to have a separate id. Valid values are 0 through 63. -type : type of breakable. See notes below. -type_id : alternate key indicating a breakable type defined in a different entity (another breakable or the worldspawn). -amount : sets the number of fragments to generate when the entity breaks. 0 ~ 10 pieces; 1 ~ 25 pieces; 2 ~ 50 pieces; 3 ~ lots of pieces (default 0). -force : sets the force at which the fragments scatter (default 7). Reasonable values are 2 to 12. -lift : sets the magnitude of the additional vertical force of the fragments (default 5). Reasonable values are 0 to 20. -damage : sets the amount of damage dealt to nearby players if the entity is made to be explosive. Default is grenade damage (default 170). -damage_radius : sets the maximum distance (in units) from the explosion players will take damage (default 340). -target : all entities with a matching targetname will be triggered when the entity is broken or exploded (not chipped or damaged). -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetname : if set, activating an entity with a matching target key will make the entity explode. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -CHIPPABLE : pieces will spawn when the entity is shot, but the entity will not be destroyed until the health of the entity is surpassed. -UNBREAKABLE : entity will never break. To make the entity chip, but never break, check the first two spawnflags. To make the entity chip and eventually break, only set the first spawnflag. -EXPLOSIVE : entity will explode. -NO_KICK : players will not be able to kick the entity. --------- NOTES -------- -Breakables are defined in sets by the 'type' key (e.g. type : glass, type : wood). Each set of unique keys used in a map must be given a unique id number (0-63; max 64 per map; no default value). Two different breakable entities with the same keys should have the same id. If two different breakable entities differ in type, force or lift they require separate id numbers. -Breakable types can also be defined in the worldspawn and used by their corresponding id's through the "type_id" key. See the worldspawn entity info for more details*/ - -//============================================================================= - -/*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. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -targetname : if set, activating an entity with a matching target key will trigger the button. -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 : if set to a non-zero value, the button must be damaged to operate. The actual value assigned to "health" is ignored. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -sound: path/name of .wav file to play (eg: sound/mapname/soundname.wav) (default sound/movers/button.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED func_door (0 .5 .8) ? START_OPEN CRUSHER AUTO_OPEN TOGGLE -Normal sliding door entity. By default, the door will not activate when player walks close to it. --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately). -lip : lip remaining at end of move (default 8). -target : all entities with a matching targetname will be triggered when the entity is activated from its starting position. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -targetname : if set, another entity with a matching target key is required to activate the door. -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -health : if set to a non-zero value, the door must be damaged to operate. The actual value assigned to "health" is ignored. -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -activatename : used in order to allow target_activate entities targeting this trigger to activate/deactivate it -inactive : indicates that the door should start inactive. It can be activated by target_activate entities that have a "target" matching the "activatename" field of the entity -soundinactive : sound to be played when trying to open the door while it is inactive -targetinactive : target(s) to be fired when trying to open the door while it is inactive -team: assign the same team name to multiple regular doors that should operate together. Do not team with a rotating door. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (see notes). -soundstart : path to sound file to play when door starts to open (eg: sound/mapname/soundname.wav) (default sound/movers/door_start.wav). -soundstop : path to sound file to play when door comes to a stop (eg: sound/mapname/soundname.wav) (default sound/movers/door_stop.wav). -soundmove : path to sound file to play when door is moving (eg: sound/mapname/soundname.wav) (default sound/misc/silence.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging the player until he dies or gets out of the way. -AUTO_OPEN : the door will open automatically when approached by a player; 'opendoor' will not be necessary. -TOGGLE : wait in both the start and end states for a trigger event; the door will stay open until closed by another 'opendoor'. --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN CRUSHER AUTO_OPEN TOGGLE X_AXIS Y_AXIS LOOK OPEN_AWAY -This is the rotating door entity. Just as the name suggests it's a door that rotates. --------- KEYS -------- -distance : determines how many degrees the door will open (default 90). -speed : determines how fast the door will open (degrees/second) (default 90). -wait : number of seconds before door returns (default 2, -1 = return immediately). -reach : max distance the door can be opened from. Value has to be less than or equal to 100. Generally used only in special situations (e.g. lockers and cabinets). -target : all entities with a matching targetname will be triggered when the entity is activated from its starting position. -targetname : if set, another entity with a matching target key is required to activate the door. -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -team: assign the same team name to multiple rotating doors that should operate together. Do not team with a regular door. -soundstart : path to sound file to play when door starts to open (eg: sound/mapname/soundname.wav) (default sound/movers/rdoor_stop.wav). -soundstop : path to sound file to play when door comes to a stop (eg: sound/mapname/soundname.wav) (default sound/misc/silence.wav). -soundmove : path to sound file to play when door is moving (eg: sound/mapname/soundname.wav) (default sound/movers/rdoor_move.wav). -health : if set to a non-zero value, the rotating door must be damaged to operate. The actual value assigned to "health" is ignored. -activatename : used in order to allow target_activate entities targeting this trigger to activate/deactivate it -inactive : indicates that the door should start inactive. It can be activated by target_activate entities that have a "target" matching the "activatename" field of the entity -soundInactive : sound to be played when trying to open the door while it is inactive -targetInactive : target(s) to be fired when trying to open the door while it is inactive -light : constantLight color of .md3 model included with entity (default 0). -color : constantLight color of .md3 model included with entity (defalt 1 1 1). -model2: path/name of model to include. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging the player until he dies or gets out of the way. -AUTO_OPEN : the door will open automatically when approached by a player; 'opendoor' will not be necessary. -TOGGLE : wait in both the start and end states for a trigger event; the door will stay open until closed by another 'opendoor'. -X_AXIS : open on the X-axis instead of the Z-axis -Y_AXIS : open on the Y-axis instead of the Z-axis -LOOK : Door will only open if you look at it when pressing 'opendoor'. -OPEN_AWAY : Door will always open away from the player. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of the origin brush will be the point around which the door rotates. It will rotate around the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_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. --------- KEYS -------- -alphamap : this is the path/name for the art file used to guide the mapping of textures on the terrain surface. -layers : this integer value is the number unique root shaders that will be use on the terrain. -shader : this is the path to the metashader used to assign textures to the terrain entity. -terrain : this is an on/off flag. When set to 1, the entity becomes a terrain entity. --------- Q3MAP2 KEYS -------- -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.*/ - -//============================================================================= - -/*QUAKED func_pendulum (0 .5 .8) ? -Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum pushes the player. --------- KEYS -------- -angle : angle offset of axis of rotation from default X axis (default 0). -speed : angle of swing arc in either direction from initial position (default 30). -phase : sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_plat (0 .5 .8) ? -Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. --------- KEYS -------- -speed : determines how fast the plat moves (default 150). -lip : lip remaining at end of move (default 16). Has no effect if "height" is set. -height : if set, this will determine the total amount of vertical travel of the plat. -dmg : damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked. -target : all entities with a matching targetname will be triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetname : if set, another entity with a matching target key will raise the plat each time it is activated. The plat raises and comes back down a second later if no player is on it. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -soundstart : path to sound file to play when door starts to open (eg: sound/mapname/soundname.wav) (default sound/movers/plat_start.wav). -soundstop : path to sound file to play when door comes to a stop (eg: sound/mapname/soundname.wav) (default sound/movers/plat_stop.wav). -soundmove : path to sound file to play when door is moving (eg: sound/mapname/soundname.wav) (default sound/movers/plat_move.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip.*/ - -//============================================================================= - -/*QUAKED func_pressure (0 .5 .8) ? -Solid entity that spews steam, flames, or water when shot. --------- KEYS -------- -type : sets the appearance of the emission. Options are 'steam', 'air', or 'flame' (default steam). -speed : the speed at which the substance shoots out (default 200). -target : all entities with a matching targetname will be triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. --------- NOTES -------- -The location and direction of the emission is a function of how the entity is shot and can not be set by the mapper. In using a func_pressure to target something, have it go through an intermediary entity that has a wait key (like a func_button).*/ - -//============================================================================= - -/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS -Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable. --------- KEYS -------- -speed : determines how fast entity rotates (default 100). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will rotate along the X axis. -Y_AXIS : entity will rotate along the Y axis. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ - -//============================================================================= - -/*QUAKED func_static (0 .5 .8) ? START_OFF -Static non-solid bspmodel. Can be used for conditional walls and models. --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/mailbox/mailbox.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -targetname : if set, activating an entity with a matching target key can make entity disappear from the game (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OFF : entity will start in the off position. --------- NOTES -------- -When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: it will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static. - -By default, when activated a visible func_static will be shown and an invisible one will be hidden. To alter this behaviour, you can use a "pathtarget" key for the entity that points to the func_static. Possible values are: -- "on" - will always show the targeted entity -- "off" - will always hide the targeted entity -Any other value for "pathtarget" will make the func_train take the default action. - -Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types.*/ - -//============================================================================= - -/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON -Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off. --------- KEYS -------- -wait : delay in seconds between each triggering of its targets (default 1). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -target : this points to the entities to trigger. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetname : activating an entity with a matching target key will toggle the timer on/off. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_ON : timer will start on in the game and continuously fire its targets. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED func_train (0 .5 .8) ? -Trains are moving solids that follow a string of path_corner entities. They require an origin brush (see Notes). --------- KEYS -------- -speed : speed of displacement of train (default 100 or overridden by speed value of path). -target : this points to the first path_corner of the path which is also the spawn location of the train's origin. -targetname : the name of the entity. This key must be set in order to make the entity behave like an elevator. -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -dmg : damage to inflict on player when he blocks operation of the train (default 2). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Trains will start on in the game unless the path_corner they start on has a wait of "-1". -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.*/ - -//============================================================================= - -INFO_* ENTITIES - -//============================================================================= - -/*QUAKED info_camp (0 .5 0) (-8 -8 -8) (8 8 8) -This atttracts bots which have a camping preference in their AI characteristics. It should be placed at least 32 units away from any brush surface. --------- KEYS -------- -range : number of units that the bot can move away from camp entity while camping on it. -weight : number that is compared against the weight assigned to all the other camp spots in the map to determine if a bot chooses to camp there. The value is normalized against all other weight values. --------- NOTES -------- -Examples of bots which have a high camping preference are: Razor, Tank Jr., Grunt, Patriot and Doom. Examples of bots which have a low camping preference are: Klesk, Mynx, Sarge, Keel and Xaero.*/ - -//============================================================================= - -/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_player_deathmatch (1 0 0) (-16 -16 -24) (16 16 32) INITIAL -Normal player spawning location for Q3A levels. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. Does not apply to bots. -target : this can point at a target_give entity for respawn freebies. -nobots : when set to 1, bots will never use this spawn point to respawn in the game. -nohumans : when set to 1, human players will never use this spawn point to respawn in the game. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -INITIAL : makes the spawnpoint the initial place for the player to spawn at the beginning of the game.*/ - -//============================================================================= - -/*QUAKED info_player_intermission (1 0 1) (-16 -16 -16) (16 16 16) -Camera for the map intermission / scoreboard at the end of a map. --------- KEYS -------- -angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0). -target : point this to an info_notnull or target_position entity to set the camera's pointing angles. --------- NOTES -------- -Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level.*/ - -//============================================================================= - -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Player spawn location. Works the same as info_player_deathmatch. Also acts as the starting location for Radiant sessions. Only one of these should be placed in each map. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -ITEM_* ENTITIES - -//============================================================================= - -/*QUAKED item_botroam (1 0.5 0) (-8 -8 -8) (8 8 8) SUSPENDED -Game Function: An invisible entity which attracts a bot to it. Use to move bots to parts of a map that might otherwise not be used. --------- KEYS -------- -weight: non-zero floating point value, most often in the range 0 to 400. (Higher values are allowed but keep in mind that the bot should also be attracted to normal items. Don't make the weight value too high. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The item_botroam entity can be used when a bot does not roam the whole level or prefers to go to only specific areas. This (invisible) item can be placed in a map just like regular items. Nobody can actually pick up the item it's only used to attract bots to certain places of the map. The value is the weight of the roam_item is relative to the weight assigned other items in the map (each bot has its own weights). The bot character specific item weights are stored with the bot characters AI files ("botname"_i.c for items and "botname"_w.c for weapons) in the botfiles/bots/ sub-folder in the .pk3 file.*/ - -//============================================================================= - -LIGHT_* ENTITIES - -//============================================================================= - -/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE NOGRIDLIGHT -Non-displayed light entity. --------- KEYS -------- -light : value of light intensity (default 300). -_color : weighted RGB value of light color (default white - 1 1 1). -target : point this to an target_position, info_null or info_notnull to create a spotlight effect. -radius : sets radius of light cone for spotlights (default 64). Light must target a pointing entity. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : light falloff will be linear instead of inverse square of distance from source. -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT :Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE NOGRIDLIGHT -Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -light : value of light intensity (default 300). -_color : weighted RGB value of light color (default white - 1 1 1). -target : point this to an target_position, info_null or info_notnull to create a spotlight effect. -radius : sets radius of light cone for spotlights (default 64). Light must target a pointing entity. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : light falloff will be linear instead of inverse square of distance from source. -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT :Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -/*QUAKED light_d (0 .5 0) (-8 -8 -8) (8 8 8) ADDITIVE FLICKER PULSE -Dynamic light entity. Not recommended. Use sparingly. --------- KEYS -------- -light : value of light intensity (default 300). -_color : weighted RGB value of light color (default white - 1 1 1). --------- SPAWNFLAGS -------- -ADDITIVE : Use additive instead of multiplicative dynamic lighting. -FLICKER : Intensity is slightly random. -PULSE : Smooth sine function.*/ - -//============================================================================= - -MISC_* ENTITIES - -//============================================================================= - -/*QUAKED misc_lens_flare (1 .5 .25) (-8 -8 -8) (8 8 8) -Entity for a lens flare. --------- KEYS -------- -alphamax : normalized value that determines the variety of maximum opacity of each flare sprite. -alphamin : normalized value that determines the variety of minimum opacity of each flare sprite. -count : " number of flare sprites. If set to 0, only the sun sprite is displayed. -sizemax : value that determines the variety of maximum size of each flare sprite. -sizemin : value that determines the variety of minimum size of each flare sprite. -sunalpha : normalized value that determines the opacity of the sun sprite. -sunsize : value that determines the size of the sun sprite. -target : point this to a target_position entity.*/ - -//============================================================================= - -/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) SOLID LIGHTMAP -Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported. --------- KEYS -------- -angle: direction in which model will be oriented. -model : path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3). --------- Q3MAP2 KEYS -------- -angles : Individual control of PITCH, YAW, and ROLL (default 0 0 0). -modelscale : Floating-point value used to scale a model up or down (default 1.0). -modelscale_vec : Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0). -_remap : Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new". If you need to remap more than one shader, use _remap01, _remap02, etc. -target : Used to attach the misc_model to a brush entity, where its "targetname" key is the same value. -_lightmapscale : Floating point value scaling the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0). -_castshadows;_cs : 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;_rs : 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. --------- SPAWNFLAGS -------- -SOLID : Assigns q3map_clipModel to any shaders used by the model. -LIGHTMAP : Assigns q3map_forceMeta to any shaders used by the model.*/ - -//============================================================================= - -/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE NOROTATE -Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle. -target : point this to a target_position entity to set the camera's pointing direction. -targetname : a misc_portal_surface portal surface indicator must point to this. If this is one camera out of a sequence of camera angles, the targetname should be the target key of the misc_portal_surface appended with a #, where # is the order in which the cameras cycle (i.e. targetname1, targetname2, etc..). -roll: roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SLOWROTATE : makes the portal camera rotate slowly along the roll axis. -FASTROTATE : makes the portal camera rotate faster along the roll axis. -NOROTATE : removes the rolling motion from the portal camera. --------- NOTES -------- -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.*/ - -//============================================================================= - -/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8) CYCLE -Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera(s) that this entity targets. Also used for mirrors (see Notes). --------- KEYS -------- -target : point this to a misc_portal_camera that "sees" the view you want to display on the portal. If using multiple cameras, the targetnames for the misc_portal_cameras will need to be this name plus #, where # is the order in which the cameras will be cycled. -targetname : triggering this target will cycle through misc_portal_cameras if they are set to CYCLE (spawnflag 1). -count : number of misc_portal_cameras to cycle through. Only used when CYCLE (spawnflag 1) is on. Minimum value is 2 (default 2). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -CYCLE : indicates the surface will be used to cycle through multiple camera angles (generated by misc_portal_camera entities). --------- NOTES -------- -The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.*/ - -//============================================================================= - -/*QUAKED misc_sky_portal (.1 .3 .8) (-8 -8 -8) (8 8 8) -Entity for making sky portals. --------- KEYS -------- -target : point this to a target_position entity that is in the "sky" room. -targetname : a misc_sky_portal portal surface indicator must point to this. --------- NOTES -------- -Make the room that should be the sky. Set "skyportalent" to 1 for ALL the entities inside that room. Then add a target_position that will be the origin of the "camera." Then in the accessible parts of the level, add misc_sky_portal entities that target the target_position. In order for the sky portal entities to be rendered properly, the player must have a misc_sky_portal entity in his PVS ALL THE TIME. Also, replace all the sky surfaces with caulk (or anything that doesn't get drawn by the game) in order to be able to see the sky portal.*/ - -//============================================================================= - -/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16) -Teleport destination location point for trigger_teleporter entities. --------- KEYS -------- -angle : direction in which player will look when teleported. -targetname : make the trigger_teleporter point to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -PATH_* ENTITIES - -//============================================================================= - -/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) ROTATE -Path corner entity that func_trains can be made to follow. --------- KEYS -------- -target : point to next path_corner in the path. Must be set for elevators as well. -rotate: 3 values specifying the amount the func_train should rotate while moving from this path_corner to its target. Format is "pitch yaw roll" -targetname : the name of the entity; the previous path_corner in the path points to this. If being used for an elevator, the pathtarget key of the entity triggering the move points to this key. -speed : speed of func_train while moving to the next path corner. This will override the speed value of the train. -wait : number of seconds func_train will pause on path corner before moving to next path corner. Setting this key to -1 will make the train stop on the path corner (default 0). -sound: path/name of .wav file to play (default silence). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -ROTATE: if set, the train will also rotate while moving from this path_corner to its target. A "rotate" key must also be included --------- NOTES -------- -In order to turn a func_train into a working elevator, the path corners must have the wait key set to -1. To get the train to move again, use the pathtarget key from a separate triggering entity pointing to another path corner.*/ - -//============================================================================= - -TARGET_* ENTITIES - -//============================================================================= - -/*QUAKED target_activate (.3 .3 .4) (-8 -8 -8) (8 8 8) -Activates/deactivates other entities, like doors or triggers. --------- KEYS -------- -target : this must match the "activatename" field of the entities you want to activate/deactivate -pathtarget : if set to "on", the entity will always activate its targets; if set to "off", it'll always deactivate them; if set to anything else, the entity will toggle its targets active/inactive. --------- NOTES -------- -If you want an entity to be inactive when the level is started set its "inactive" key to 1.*/ - -//============================================================================= - -/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8) -Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -wait : delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1). -delay : same as wait? replaces it? WTF?...I'm confused now. -random : random time variance in seconds added or subtracted from the delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = delay - random) (max delay = delay + random). -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED target_give (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to give ammo, weapons, health or items to the player who activates it. --------- KEYS -------- -target : this points to the item(s) to give when activated. -targetname : activating trigger or spawn entity points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -There are 2 ways to use this entity. -a) automatically give items to players when they spawn in the game: make a spawn location entity like info_player_deathmatch or CTF respawn points target this entity, then make it target the item(s) to give to the player upon respawn. -b) give items to players during the game: make a trigger_multiple target this entity, then make it target the item(s) to give to the player when the trigger is touched.*/ - -//============================================================================= - -/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8) -This will kill the player who activates the trigger that fires this target. --------- KEYS -------- -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8) -Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used. --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. - 0 : white (default) - 1 : red - 2 : green - 3 : yellow - 4 : blue - 5 : cyan - 6 : magenta - 7 : white -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) -Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular. --------- KEYS -------- -targetname : the entity that requires an aiming direction points to this. -portalspeed : when this key is used with a sky portal, these 3 values indicate how much the sky portal should move in the player's view. Default is "0 0 0" - static portals. A good value would be "0.025 0.025 0.025" (similar to kibuye) or "0.025 0.025 0" (the latter would disable vertical portal movement). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.*/ - -//============================================================================= - -/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) REDTEAM BLUETEAM PRIVATE -This will print a message on the center of the screen when triggered. By default, all the clients will see the message. --------- KEYS -------- -message : text string to print on screen. -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -REDTEAM : only the red team players will see the message. -BLUETEAM : only the blue team players will see the message. -PRIVATE : only the player that activates the target will see the message.*/ - -//============================================================================= - -/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) - -This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply. -speed : speed of push (default 1000). Has no effect if entity targets an aiming entity. -targetname : the activating trigger points to this. Push originates from the location of the trigger. -target : this points to the aiming entity to which the player will jump. -sound: path/name of .wav file to play. Defaults to silence (sound/misc/silence.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.*/ - -//============================================================================= - -/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM -This can only be activated by other triggers which will cause it in turn to activate its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -RED_ONLY : only red team players can activate trigger. -BLUE_ONLY : only red team players can activate trigger. -RANDOM : one one of the targeted entities will be triggered at random. --------- NOTES -------- -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName.*/ - -//============================================================================= - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR NOPVS -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. -NOPVS : by default, looping sounds are only played while in the player's PVS. Checking this spawnflag will make the sound play no matter if it's in the PVS or not. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8) -Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events. --------- KEYS -------- -targetname : activating trigger points to this. -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -TEAM_* ENTITIES - -//============================================================================= - -/*QUAKED team_CTF_blueflag (.15 .15 .15) (-16 -16 -16) (16 16 16) -Black briefcase for CTB games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/cases/b_case.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_blueplayer (.15 .15 .15) (-16 -16 -24) (16 16 32) -Initial Black team spawning position for CTB games. This is where players spawn when they join the Black team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_bluespawn (.15 .15 .15) (-16 -16 -24) (16 16 32) -Black team respawning position for CTB games. This is where Black team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redflag (.9 .9 .9) (-16 -16 -16) (16 16 16) -Silver briefcase for CTB games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/cases/s_case.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_redplayer (.9 .9 .9) (-16 -16 -24) (16 16 32) -Initial Silver team spawning position for CTB games. This is where players spawn when they join the Silver team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redspawn (.9 .9 .9) (-16 -16 -24) (16 16 32) -Silver team respawning position for CTB games. This is where Silver team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -TRIGGER_* ENTITIES - -//============================================================================= - -/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8) -Automatic trigger. It will fire the entities it targets as soon as it spawns in the game. --------- KEYS -------- -target : this points to the entity to activate. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF TOGGLE SILENT NO_PROTECTION SLOW -Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt. --------- KEYS -------- -dmg : number of points of damage inflicted to player per server frame (default 5 - integer values only). -message : text string to print on screen. Default is "was in the wrong place". -targetname : activating trigger points to this. If no targetname is set, the entity can not be toggled. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OFF : entity will start in the off position. Only useful with TOGGLE spawnflag. -TOGGLE : wait in both the on and off states for a trigger event. -SILENT : supresses the sizzling sound while player is being hurt. -NO_PROTECTION : not used in Reaction. -SLOW : changes the damage rate to once per second. --------- NOTES -------- -Triggering a trigger_hurt will have no effect if the TOGGLE spawnflag is not set.*/ - -//============================================================================= - -/*QUAKED trigger_multiple (.5 .5 .5) ? OPEN_DOOR -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetInactive : if the trigger_multiple is set to inactive state by a target_activate entity, it can be set to fire other target instead of doing nothing. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -targetShaderName: the original shader in a shader swap (see notes). -targetShaderNewName: new shader in a shader swap (see notes). -targetname : activating trigger points to this. -activatename : used in order to allow target_activate entities targeting this trigger to activate/deactivate it -inactive : indicates that the trigger should start inactive. It can be activated by target_activate entities that have a "target" matching the "activatename" field of the trigger -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -alias : alternate way to attach other entities to this one. Use this when targetname is reserved for other purposes. -attachto : if set, this entity will be attached to another entity with a matching TARGET or ALIAS. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -OPEN_DOOR : must be manually activated by pressing 'opendoor'. --------- NOTES -------- -To initiate a shader swap, use the targetShaderName key with the original shader path as the argument. Note this is always the original shader, not the current shader. Use the targetShaderNewName key with the path to the replacement shader as the argument. The shader swap will affect every surface in the map that was originally showing the shader specified as the targetShaderName. -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED trigger_push (.5 .5 .5) BOT_ONLY -This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted. --------- KEYS -------- -target : this points to the target_position to which the player will jump. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -sound: path/name of .wav file to play. Defaults to silence (sound/misc/silence.wav). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -BOT_ONLY : only bots will use this entity. --------- NOTES -------- -To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.*/ - -//============================================================================= - -/*QUAKED trigger_teleport (.5 .5 .5) ? -Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events. --------- KEYS -------- -target : this must point to a misc_teleporter_dest entity. -pathtarget : will send a func_train to the path corner this key points to. Must be used in conjunction with the target key pointing to the targetname of the func_train. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -WORLDSPAWN ENTITY - -//============================================================================= - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -ambient : adds a constant value to overall lighting. High values are not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color. -_rq3_fog_color : if set, the game will fill the screen with this color before drawing the actual scene. Useful for replacing the q3map2 foghulls -vertexremapshader : sets a shader to be used in vertex light mode instead of a normal shader. Value : normal_shader;vertex_shader (note the semi-colon). As many shaders can be remapped as needed by using the key. However, if more than one shader is remapped in a map, each one must have a unique identifier … either a number or a letter after the Key word, as shown by “vertexremapshaderX”, where X is a number or any character set. Examples, vertexremapshader01, vertexremapshader02, vertexremapshaderA, vertexremapshaderB, etc. -gravity : gravity of level (default is normal gravity: 800). -gridsize : granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps. -_blocksize : q3map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Default _blocksize value is 1024. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density. --------- Q3MAP2 KEYS -------- -_minlight : raises ambient light only where it's less than the minlight value (dark areas) and leaves the rest of your map alone. -_minvertexlight : (see above) -_mingridlight : Minimum lightgrid (dynamic entity lighting) levelwide. -_keeplights : Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase. -_noshadersun : shader suns still work, but this is a method to override/do_not_use shader suns, and only use entity suns. I.e., supresses q3map_sun in your sky shaders. -_farplanedist : Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps. -_foghull : Shader to use for "fog hull." Foghull shader should be a sky shader. Omit the "textures/" prefix. -_lightmapscale : sets the sample size of the lightmap. A value of 1 (default) will create 16x16 pixel samples. A higher value generates smaller samples (for example a value of 2 will create 8x8 samples). Can be overridden in func_group (or other entities). -_castshadows;_cs : 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;_rs : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. Overridable in entities. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap;alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers;layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader;shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- RQ3 KEYS -------- -numbreakabletypes : the number of breakable types to be defined in the worldspawn (0 by default) -b#i_type (where #i is a number between 0 and numbreakabletypes - 1, e.g. "b3_type". These are the id's of the breakable types) : breakable type #i (e.g. "glass", "wood_mahogany" etc.) -b#i_force, b#i_lift : the same as the "force" and "lift" keys from func_breakables. These two are optional, unlike the "b#i_type" key. If the "b#i_type" key is ommitted, then the code will skip to the next breakable definition (if there is one). -atmosphere : The supported atmospheric effects are 'rain' and 'snow'. The format string is something like: T=RAIN,B=5 10,C=0.5,G=0.5 2,BV=0,GV=0 100,W=1 2,D=300 - -The type must always come first (T=RAIN). The fields are as follows: - -Key Default Description: -T RAIN Type of effect (supports 'rain' or 'snow') -B 5 10 Base times (X seconds, or between X and Y seconds) -C 1 1 Time to move from base to gust (X seconds, or between X and Y seconds) -G 0 2 Gust times (X seconds, or between X and Y seconds) -BV 0 100 Base vector (x and y units/sec). -GV 0 100 Gust vector (x and y units/sec). -W 1 2 Weight of drops (X, or from X to Y depending on base/gust position) -S 1 1 Water and Splash shader. This are two boolean values, the first enables impactshaders on water (0 = off, 1 = on), the second on land. -D 300 300 Number of drops (X, or from X to Y depending on base/gust position)*/ - -//============================================================================= - -RQ3AMMO_* ENTITIES - -//============================================================================= - -/*QUAKED RQ3ammo_m4 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -M4 ammo. Gives the player 1 clip by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/m4.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_mk23 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -MK23 pistol ammo. Gives the player 1 clip by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/mk23.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_mp5 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -MP5 ammo. Gives the player 1 clip by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/mp5.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_shells (.3 .3 1) (-8 -4 -6) (8 12 10) SUSPENDED -M3 & HC ammo. Gives the player 1 box of 7 shells by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/m3.md3"*/ - -//============================================================================= - -/*QUAKED RQ3ammo_ssg3000 (.3 .3 1) (-8 -8 -8) (8 8 8) SUSPENDED -SSG3000 ammo. Gives the player 1 box of 6 rounds by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/ammo/ssg3000.md3"*/ - -//============================================================================= - -RQ3WEAPON_* ENTITIES - -//============================================================================= - -/*QUAKED RQ3weapon_grenade (1 0 .5) (-8 -8 -8) (8 8 8) SUSPENDED -Grenade. Gives the player 1 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grenade/grenade.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_handcannon (1 0 .5) (-6 -6 -6) (16 6 6) SUSPENDED -Handcannon. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/handcannon/handcannon.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_knife (1 0 .5) (-6 -4 -4) (6 4 12) SUSPENDED -Knife. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/knife/knife.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_m3 (1 0 .5) (-16 -8 -8) (28 8 4) SUSPENDED -M3 Shotgun. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/m3/m3.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_m4 (1 0 .5) (-12 -8 -8) (20 8 8) SUSPENDED -M4. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/m4/m4.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_mp5 (1 0 .5) (-16 -8 -8) (16 8 8) SUSPENDED -MP5. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/mp5/mp5.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_pistol (1 0 .5) (-8 -4 -6) (8 4 6) SUSPENDED -MK23 Pistol. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\mk23\mk23.md3"*/ - -//============================================================================= - -/*QUAKED RQ3weapon_ssg3000 (1 0 .5) (-16 -8 -6) (32 8 6) SUSPENDED -SSG3000 Sniper Rifle. --------- KEYS -------- -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- - --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/ssg3000/ssg3000.md3"*/ - -//============================================================================= - -//General Notes: -//The alias, attachto, targetShaderName and targetShaderNewName keys work for every entity that has a target key. For the sake of brevity, these keys were only added to entities where these keys would be commonly used. diff --git a/install/installs/ReactionPack/install/Boomstick/scripts/shaderlist.txt b/install/installs/ReactionPack/install/Boomstick/scripts/shaderlist.txt deleted file mode 100644 index 30e1159c..00000000 --- a/install/installs/ReactionPack/install/Boomstick/scripts/shaderlist.txt +++ /dev/null @@ -1 +0,0 @@ -common diff --git a/install/installs/ReactionPack/install/docs/.svn/entries b/install/installs/ReactionPack/install/docs/.svn/entries deleted file mode 100644 index 359cb78a..00000000 --- a/install/installs/ReactionPack/install/docs/.svn/entries +++ /dev/null @@ -1,43 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -Terrain_Manual -dir - -Compile_Manual -dir - -Q3Map2Shader_Manual -dir - -Q3AShader_Manual -dir - -Model_Manual -dir - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/entries b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/entries deleted file mode 100644 index 09f1dab0..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/entries +++ /dev/null @@ -1,232 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Compile_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -cfgq3.c -file - - - - -2012-04-01T16:52:31.162232Z -e485c4968a3071fa9d196adf2f0c83bd -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2821 - -q3map.html -file - - - - -2012-04-01T16:52:31.163232Z -169a414d6278cdf4fb68517e879f590b -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -19245 - -bspc.txt -file - - - - -2012-04-01T16:52:31.267238Z -169fe629ad636bc05089640c08588721 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -24159 - -modelskins.txt -file - - - - -2012-04-01T16:52:31.277239Z -c6853fe837e5ef1407f155feaa026562 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2092 - -headskins.txt -file - - - - -2012-04-01T16:52:31.279239Z -239c66cae6f6c941fb1c4f7419cfec2b -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1922 - -index.html -file - - - - -2012-04-01T16:52:31.280239Z -f5e15cf6813f6d489fa54b565588c075 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1658 - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/bspc.txt.svn-base b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/bspc.txt.svn-base deleted file mode 100644 index 0547b97b..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/bspc.txt.svn-base +++ /dev/null @@ -1,565 +0,0 @@ - - -Title: BSP Converter -Version: 2.1h -Date: 2001-03-28 -Author: Mr. Elusive - - -Description ------------ - -The BSPC tool is used to create AAS files from BSP files. -An AAS file is a file with areas used by the Quake III Arena bot in order -to navigate and understand a map. The Quake III Arena maps are stored in -BSP files. - - -Usage ------ - -bspc [- [- ...]] - -Example 1: bspc -bsp2aas d:\quake3\baseq3\maps\mymap?.bsp -Example 2: bspc -bsp2aas d:\quake3\baseq3\pak0.pk3\maps/q3dm*.bsp - -Switches: - bsp2aas <[pakfilter/]filter.bsp> = convert BSP to AAS - reach = compute reachability & clusters - cluster = compute clusters - aasopt = optimize aas file - output = set output path - threads = set number of threads to X - cfg = use this cfg file - optimize = enable optimization - noverbose = disable verbose output - breadthfirst = breadth first bsp building - nobrushmerge = don't merge brushes - freetree = free the bsp tree - nocsg = disables brush chopping - forcesidesvisible = force all sides to be visible - grapplereach = calculate grapple reachabilities - - -Several metacharacter may be used in the filter and pakfilter. - -* match any string of zero or more characters -? match any single character -[abc...] match any of the enclosed characters; a hyphen can - be used to specify a range (e.g. a-z, A-Z, 0-9) - -.pk3 files are accessed as if they are normal folders. For instance -use "d:\quake3\baseq3\pak0.pk3\maps/q3dm1.bsp" to access the -map q3dm1.bsp from the pak0.pk3 file. - -Multiple files may be listed after the switches bsp2map, bsp2aas, reach, -cluster and aasopt. - -If a BSP file is being converted to an AAS file and no output path -is entered on the command-line then the AAS file will automatically -be stored in the same folder as the BSP file. However if the BSP file -was stored in a .pk3 file then the AAS file will be stored in a folder -with the name 'maps' outside the .pk3 file. - - -Updating entity lump --------------------- - -If an AAS file is already available for a BSP file and you ONLY change -the entities inside this BSP file then you only have to recalculate the -reachabilities. This way you can move items, platforms etc. around -without the need to recalculate the whole AAS file which can save quite -some compile time. You can recalculate the reachabilities as follows: - -bspc -reach mymap.bsp - -Where mymap.bsp is the BSP file. The mymap.aas file has to be in the -same folder as mymap.bsp or should be in the output folder specified -with the -output option. - -Keep in mind that as soon as ANY geometry in the map changes the whole -AAS file HAS to be recalculated in order to play with bots. - -NOTE: -reach does not work on optimized .AAS files! -NOTE: don't use -reach when moving the position of doors. - - -Leaks ------ - -Just like there can be vis leaks in a map there can also be clipping -leaks. Two things can be wrong when the BSPC tool outputs that a map -leaks. - -1. There are no entities in the map at all, or all entities that are -actually in the map are placed in solid. In this case the BSPC tool -outputs "WARNING: no entities inside". (At least a player start entity -is needed to load a map.) - -2. There is a spot in the map where players can go outside the map -into the void. This is bad, players should never be able to fall out -of a level. In this case the BSPC tool outputs "WARNING: entity -reached from outside". The BSPC tool also writes a mymap.lin file -that can be loaded in the Q3Radiant editor to show lines that go -through the actual leak. - -Make sure the .lin file is stored in the same folder as where q3radiant -stores the .bsp file. Load the map in q3radiant and use the -menu -> File -> Pointfile... to load the .lin file. A thick red line -will be shown in the map. Follow this line to find the leak. - - -Map bounds ----------- - -Currently a map should be within the bounds (-65536, -65536, -65536) - -(65536, 65536, 65536) for the bspc tool to compile. These are the same -limits the q3map tool has. - - -Physics -------- - -The player bounding box is a 30 units by 30 units square with a height -of 56 units. If we assume 1.75 meters being the average height of a human -and a player in Quake III Arena being 56 units high we get 32 units = 1 meter. - -Maximum step height of a player is 18 units (just keep steps 16 units or -lower). - -The maximum water jump height for bots has been set to 18 units. (height -difference between water surface and the floor jumping onto). If the -waterjump height is made higher human players will have a hard time getting -out of the water. - -With normal gravity and without the quad the maximum rocket jump height is -around 280 units (you can sometimes jump a few units higher but this is a -safe value for reference). - -The maximum height for barriers the bots will jump on is 32 units. - -Some math to calculate some other values of interest: - -gravity = 800; -jump velocity = 270; -max vertical rocketjump velocity = 670; -max run velocity = 320; -max step height = 18; - -max jump height = 0.5 * gravity * (jumpvelocity/gravity)*(jumpvelocity/gravity); -max jump height = 45 units; -NOTE: even though this is the mathematical maximum jump height always keep -the the 32 units maximum barrier height for bots in mind when building maps. - -maximum horizontal jump distance over a gap from one spot to another both -at the same height: - -t = sqrt((maxjumpheight + maxstep) / (0.5 * gravity)); -t = 0.3986 seconds; -dist = maxrunvelocity * (t + jumpvelocity / gravity); -dist = 235 units; -Because players use a bounding box we can jump a full bounding box width -furter in the ideal case. (15 units at the jump start and 15 at the -landing place). -235 + 15 + 15 = 265 units. -Again this is the mathematical maximum which players can only reach under -ideal circumstances. - - -Optimizing a map for bspc -------------------------- - -Hint brushes have no effect on the bspc tool. Only solid, clip, liquid, -cluster portal and do not enter brushes are used by the bspc tool. - -The bspc tool outputs how many areas are created for a map. Less areas -is better. Often the number of areas can be reduced by adding additional -clip brushes. By adding these additional clip brushes the complexity -of the geometry used for collision can be reduced. Do not add clip -brushes in front of the complex geometry but get the complex shaped -geometry contained within these clip brushes. Things that should be -contained within clip brushes are small or complex shaped (often detail) -brushes and complex and twisted curves, but also more regular curves -can be placed within a clip brush. When containing a curve within a -clip brush it's preferred to place the whole curve within the clip -brush (not just part of the curve). -Note: you can make brushes or curves non-solid when they are contained -within *full* clip or *weap* clip brushes to speed up bspc calculations. - -Always try to align your geometry to the grids. Always use the largest -grid possible for alignment of your geometry. Also try to align the -back sides of brushes which may not be visible. The more brush sides -are aligned the better. This will also speed up bspc calculations. - -Align adjacent brushes as much as possible. Make sure no tiny faces are -created due to badly aligned brushes. - -Quite often there are places in a map that are visible to players -but that players can never get to. Players would be able to walk around there -but since players can never reach such places they will never actually -move around there. If players are never able to get to such places -it's better to put a large clip brush which encloses that whole space. -This will also speed up bspc calculations and reduce the number of areas -created by the bspc tool. - -Note: the number of areas relative to the map size tells something about -the navigation complexity for players in general (also human players). -Reducing the collision complexity for bots also makes the map easier to -navigate for human players - - -func_plat and func_bobbing --------------------------- - -When func_plat or func_bobbing entities are placed in a map the bots will -use them if possible. The bots assume they can stand on top of the bounding -box of the model used for the func_plat or func_bobbing entity. As a result -creating complex shaped func_plat or func_bobbing models is mostly a bad -idea. You have to make sure the bots (and players) can actually stand -everywhere ontop of the bounding box of the model. - - -Cluster Portals ---------------- - -A map is divided into areas. Several of these areas can be grouped together -to create a cluster. The clusters are seperated by cluster portals which are -areas themselves. One of the things the bot uses these clusters for is a -multi-level routing algorithm. When a map is efficiently divided up into -clusters bot calculations will be faster. - -several things to take into account: - -- The BSPC tool tries to create cluster portals automatically but additional - cluster portals can be created by placing "clusterportal" brushes. -- Cluster portals are manually created by placing "clusterportal" brushes - inside the map. -- Cluster portal brushes are a tool to optimize a map for CPU usage by the - bots. They are not needed for the bots to operate correctly. -- The "clusterportal" brushes should not be used outside the world hull. -- The cluster portals do not have any effect on vis. -- If a door is already sealed with an areaportal brush, a clusterportal is - not necessary there. (area portals are also used as cluster portals). -- Just like the area portals, the cluster portals must seal a space off - entirely from other areas. -- The cluster portal areas should seal off a cluster in a way that the only - path towards another cluster is through a cluster portal area. -- Only create cluster portals where people can walk or swim through. -- Don't create cluster portals in gaps in the floor. (people would fall through) -- If you have two sealed off clusters and you add a teleporter between them - then the two clusters will be merged again because of the teleporter. -- Cluster portals must seperate no more and no less than two (2) clusters. -- Try to create clusters with all the same number of 'reachability' areas. - for instance if the map has 5400 areas try to create 10 clusters with 540 - areas each, or 12 clusters with 450 areas each, etc. The BSPC tool lists - the number of reachability areas in each cluster. - With Q3A version 1.25 and up you can use /set bot_testclusters 1 on the - console and the area number and cluster number you're in will be printed - on the screen. These cluster number correspond to the cluster numbers - the BSPC tool prints. -- Minimize the number of clusters with only a few (less than 10) areas. -- When adding "cluster portal" brushes try to place them in places with - minimal geometric complexity. For instance place them inside convex door - openings or small hallways (not infront of door openings). Ideally the shape - of the face through which a player walks or swims into the cluster portal - is the same as the shape of the face through which a player leaves the - cluster portal. Also ideally the open space inside the cluster portal - brush is convex. -- Make cluster portals about 16 or 32 units thick or align them with - adjacent geometry. Don't make them too thick though. -- Minimize the total number of cluster portal areas at all times. The more - cluster portal areas you have the more CPU the bots need. -- Items have no effect at all on the creation of areas or clusters. - The same goes for item_botroam. - - -Do Not Enter areas ------------------- - -When bot navigation problems show up or you want to make sure a bot never tries -to go to a certain place "do not enter" brushes can be used. - -several things to take into account: - -- The "do not enter" brushes should not be used outside the world hull. -- The "do not enter" brush is Not a clip brush for the bot. -- The "do not enter" brush is a tool of last resort. Do not use it unless - there are serious navigation problems. -- The number of "do not enter" brushes should be minimized because these - brushes create additional areas for the bots. -- The "do not enter" brush will create a New area that the bot will try to - avoid. However if the bot somehow ends up in a "do not enter" area or there - is a valid goal inside the "do not enter" area then the bot is allowed to - go into and out of that area. So if the bot somehow gets in a "do not enter" - area the bot will be able to get out. - - -Bot roaming ------------ - -The item_botroam entity can be used when a bot does not roam the whole level -or prefers to go to only specific areas. This (invisible) item can be placed -in a map just like regular items. Nobody can actually pick up the item it's -only used to attract bots to certain places of the map. The item_botroam has -a key "origin". The value is set by Q3Radiant automatically. The item_botroam -also has a key "weight". The value is the weight of the roam item and is -relative to the weight of other items in the map. The bot character specific -item weights are stored with the bot characters in the botfiles/bots/ sub-folder -in the .pk3 file. The value of the weight is a non-zero floating point value, -most often in the range 0 to 400. (Higher values are allowed but keep in mind -that the bot should also still go for normal items, so don't make the -item_botroam weight to high.) - -When a bot should never go for a specific item the key "notbot" with value "1" -can be used for that item. This key with value can be used for every available -item in Quake III Arena. - -The suspended flag can be used on all items (item_botroam included). -However keep in mind that when a suspended item is not anywhere near the -ground the bot will ONLY try to go for this suspended item using jump pads. - - -Team based entities -------------------- - -You can use the "bot_notteam" entity key with value "1" or "2" on teleporters -(trigger_teleport or trigger_multiple pointing at a target_teleporter), -elevators (func_plat), cyclic movers (func_bobbing), jumppads (trigger_push) -and areas that hurt the player (trigger_hurt). -When "notteam" is set to "1" only bots using the travel flag TFL_NOTTEAM1 will -use the entity or move through the area. When "bot_notteam" is set to "2" only -bots using the travel flag TFL_NOTTEAM2 will use the entity or move through the -area. These travel flags can be used in the game source code. Using this entity -key also only has effect if the mod the map is being made for supports team based -navigation for bots. - - -Testing AAS files ------------------ - -One of the easiest ways to test the AAS file is to load the map in -Quake3 in teamplay mode (type /set g_gametype 3 on the console before -loading the map). Enter a team and add a bot to your team. Use the -team order menu (by default bound to the key F3) to command the bot -to follow you. Walk around the map and see if the bot is able to -follow you everywhere. - -Map bugs can sometimes cause certain places in the map to show up -'solid' in the AAS file. The bots cannot travel through these 'solid' -areas. To test for these 'solid' places set the cvar bot_testsolid -to 1 on the console. (type /set bot_testsolid 1) The map has to be -started with devmap instead of map before the cvar bot_testsolid can -be set. When the cvar is set to 1 then either "empty area" or -"SOLID area" will be printed on the screen while traveling through a map. -Several map bugs can cause these 'solid' places in the AAS file. -- Sometimes microscopic brushes are left over after a brush CSG. Search - for such brushes in the problem area and delete them. -- Tiny brush faces (not curves) can also cause problems. Due to vertex - snapping in the q3map tool those tiny brush faces can be snapped out - of existence. Such faces will not show up in Quake3 and you'll see - tiny peek holes or slits where you can view through the geometry. - Allign vertexes of and edges of adjacent brushes to remove and avoid - such tiny faces. Placing a clip brush in front of the face that is - snapped out of existence will also remove the 'solid' area but ofcourse - it's much better to remove the peek holes and slits. -- Another cause could be a brush with a collapsed side. Check how many - sides a brush has and how many sides actually have a surface. Rebuild - brushes with collapsed sides. -- All faces contained within liquid brushes using a shader without - "surfaceparm trans" set will be removed. Those contained surfaces will - not be visible and can cause the liquid to appear "solid" in the AAS file. - -If you insist creating an AAS file for a map with bugs then the option --forcesidesvisible can be used. This should fix all the problems with areas -showing up solid in the AAS file. However creating an AAS file with this -option takes a lot longer (often more than twice the normal compile time). - -Clusters can be tested with the cvar bot_testclusters. -(type "/set bot_testclusters 1" on the console) - -Jumppads can also be tested. Type the following on the Quake3 console -before loading your map: - -/set bot_maxdebugpolys 1024 -/set bot_visualizejumppads 1 -/set bot_forcereachability 1 - -Now load the map. A counter will be shown and goes from 0% to 100%. -When the counter has reached 100% type /set bot_debug 1 and -/set r_debugSurface 2 on the console. For every jumppad the -default arch of travel (without using air control) will be visualized. -This only works if your .aas file is not optimized. - - -Error messages --------------- - -Level designers should not worry too much about the following messages and/or warnings. The things reported are non fatal and won't cause any major problems. Some of the messages are just debug left overs. - -"AAS_CheckArea: area %d face %d is flipped\n" -"AAS_CheckArea: area %d center is %f %f %f\n" -"AAS_CheckFaceWindingPlane: face %d winding plane unequal to face plane\r\n" -"AAS_CheckFaceWindingPlane: face %d winding reversed\r\n" -"area %d face %d flipped: front area %d, back area %d\n" -"area %d face %d is tiny\r\n" -"face %d and %d, same front and back area but flipped planes\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_SplitArea: back area without faces\n" -"gsubdiv: area %d has a tiny winding\r\n" -"AAS_TestSplitPlane: tried face plane as splitter\n" -"found %d epsilon faces trying to split area %d\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_GetFace: face %d had degenerate edge %d-%d\r\n" -"AAS_GetFace: face %d was tiny\r\n" -"WARNING: huge winding\n" -"bogus brush after clip" -"split removed brush" -"split not on both sides" -"two tiny brushes\r\n" -"possible portal: %d\r\n" -"portal %d: area %d\r\n" -"WARNING: CM_GridPlane unresolvable\n" -"WARNING: CM_AddFacetBevels... invalid bevel\n" -"WARNING: CM_SetBorderInward: mixed plane sides\n" -"WARNING: bevel plane already used\n" -"trigger_multiple model = \"%s\"\n" -"trigger_teleport model = \"%s\"\n" -"found a trigger_push with velocity %f %f %f\n" -"AAS_TraceBoundingBox: stack overflow\n" -"AAS_TraceAreas: stack overflow\n" -"AAS_LinkEntity: stack overflow\n" -"MergeWindings: degenerate edge on winding %f %f %f\n" -"Warning: MergeWindings: front to back found twice\n" -"FindPlaneSeperatingWindings: winding1 non-convex\r\n" -"FindPlaneSeperatingWindings: winding2 non-convex\r\n" - - -When one of the following messages, errors or warnings is found then there is often something to be fixed. - -"WARNING! HashVec: point %f %f %f outside valid range\n" -"This should never happen!\n" - While storing the AAS file some vertex was found outside the valid map bounds. When this happens some part of the map is likely to have badly aligned brushes or weird shaped curves. Clipping off or rebuilding complex shapes often helps. -"trigger_push start solid\n" - The trigger_push start point is in solid. Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_push without target entity %s\n" - Could not find the target entity of the trigger_push with the target field %s. -"trigger_push without time\n" - trigger_push entity found without "time" field. -"trigger_multiple not in any jump pad area\n" -"trigger_push not in any jump pad area\n" - A trigger_push entity was found not to be in any valid jumppad area. (the message states trigger_multiple but it should have been trigger_push) Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_multiple at %1.0f %1.0f %1.0f without target\n" - A trigger multiple was found at the given coordinates without a "target" field. -"target_teleporter without target\n" - A target_teleporter entity was found without target field. -"trigger_teleport at %1.0f %1.0f %1.0f without target\n" - A trigger_teleport entity was found at the given coordinates without "target" field. -"teleporter without misc_teleporter_dest (%s)\n" - The destination of a teleporter with target field %s could not be found. -"teleporter destination (%s) without origin\n" - A teleporter destination with the target name %s was found without origin field. -"teleporter destination (%s) in solid\n" - A teleporter destination with the targetname %s was found to be in solid. -"teleported into slime or lava at dest %s\n" - A player would be pushed into slime or lave at the teleporter destination with the targetname %s. -"trigger_multiple not in any area\n" - A teleporter trigger was found not to be in any valid area. Try moving the trigger around a bit. -"func_plat without model\n" - A func_plat entity was found without model field. -"func_plat with invalid model number\n" - A func_plat entity was found with the model field set to some invalid number. -"func_bobbing without model\n" - A func_bobbing entity was found without model field. -"func_bobbing with invalid model number\n" - A func_bobbing entity was found with the model field set to some invalid number. -"%s in solid at (%1.1f %1.1f %1.1f)\n" - An item with classname %s was found to be in solid at the given coordinates. -"empty aas link heap\n" - Some part of the map has some rather complex clipping. Reduce the geometric complexity or use clip brushes to reduce the clipping complexity. -"too many entities in BSP file\n" - There are too many entities in the bsp file. -"error opening %s\n" - Could not create a new AAS file. Hard disk might be full. -"error writing lump %s\n" - Could not write an AAS lump to file. Hard disk might be full. - - - -Version Changes ---------------- - -2.1h (2001-03-28) - -- fixed crash bug - -2.1g (2001-02-18) - -- added bot_notteam support on trigger_hurt entities - - -2.1f (2001-02-06) - -- added some AAS statistics -- don't flood through faces when creating clusters - - -2.1e (2001-01-10) - -- fix map size limitation - - -2.1d (2000-12-17) - -- renamed "notteam" to "bot_notteam" - - -2.1c (2000-11-02) - -- added fs_maxfallheight -- compiled with larger map size bounds - - -2.1b (2000-09-15) - -- fixed cfg file loading - - -2.1 (2000-06-28) - -- added model numbers for AREACONTENTS_MOVER -- added team based func_plat, func_bobbing, trigger_teleport and trigger_push reachabilities - - -2.0 (2000-06-21) - -- fixed swim reachabilities -- fixed some reachabilities through cluster portals -- fixed jump reachabilities -- changed some start travel times -- added travel time settings to cfg - - -1.9 (2000-03-27) - -- fixed func_bobbing entities with origin brush - - -1.8 (2000-01-14) - -- fixed trigger_teleport bug. -- increased max map bounds to (-8192, -8192, -8192)-(8192, 8192, 8192) -- increased max points on winding -- made "HashVec: point x y z outside valid range" non-fatal -- fixed rocket jump reachabilities -- added force sides visible option -- increased simulated stack size for area traces - - -1.7 (1999-12-22) - -- fixed ducked bounding box size -- fixed sv_maxsteepness being zero in aas configuration -- AAS files are now automatically stored in BSP file folder -- fixed crash bug caused by overflow of a simulated stack diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base deleted file mode 100644 index 47e43c80..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/cfgq3.c.svn-base +++ /dev/null @@ -1,78 +0,0 @@ -//=========================================================================== -// BSPC configuration file -// Quake3 -//=========================================================================== - -#define PRESENCE_NONE 1 -#define PRESENCE_NORMAL 2 -#define PRESENCE_CROUCH 4 - -// more bounding boxes can be added if required -// always minimize the number of bounding boxes listed here to reduce AAS file size -// for instance if players cannot crouch then it's good to remove the bbox definition for it - -//bounding box when running/walking -bbox //30x30x56 -{ - presencetype PRESENCE_NORMAL - flags 0x0000 - mins {-15, -15, -24} - maxs {15, 15, 32} -} - -// bounding box when crouched -bbox //30x30x40 -{ - presencetype PRESENCE_CROUCH - flags 0x0001 - mins {-15, -15, -24} - maxs {15, 15, 16} -} - -// do not forget settings as they might not be defaulted correctly when this cfg is used -settings -{ - // physics settings - phys_gravitydirection {0, 0, -1} // direction of gravity - phys_friction 6 // friction - phys_stopspeed 100 // stop speed - phys_gravity 800 // gravity - phys_waterfriction 1 // friction in water - phys_watergravity 400 // gravity in water - phys_maxvelocity 320 // maximum run speed - phys_maxwalkvelocity 320 // maximum walk speed (set for running) - phys_maxcrouchvelocity 100 // maximum crouch speed - phys_maxswimvelocity 150 // maximum swim speed - phys_walkaccelerate 100 // acceleration for walking - phys_airaccelerate 0 // acceleration flying through the air - phys_swimaccelerate 0 // acceleration for swimming - phys_maxstep 18 // maximum step height - phys_maxsteepness 0.7 // maximum floor steepness a player can walk on - phys_maxwaterjump 19 // maximum height for an out of water jump - phys_maxbarrier 33 // maximum barrier a player can jump onto - phys_jumpvel 270 // jump velocity - phys_falldelta5 40 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - phys_falldelta10 60 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - // reachability settings - // the following are all additional travel times added - // for certain reachabilities in 1/100th of a second - rs_waterjump 400 - rs_teleport 50 - rs_barrierjump 100 - rs_startcrouch 300 - rs_startgrapple 500 - rs_startwalkoffledge 70 - rs_startjump 300 - rs_rocketjump 500 - rs_bfgjump 500 - rs_jumppad 250 - rs_aircontrolledjumppad 300 - rs_funcbob 300 - rs_startelevator 50 - rs_falldamage5 300 // avoid getting 5 damage - rs_falldamage10 500 // avoid getting 10 damage - // if != 0 then this is the maximum fall height a reachability can be created for - rs_maxfallheight 0 - // maximum height a bot may fall down when jumping to some location - rs_maxjumpfallheight 450 -} diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base deleted file mode 100644 index bf45f9f5..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/headskins.txt.svn-base +++ /dev/null @@ -1,75 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -headmodel = *callisto/lily - -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - -------------------------------------------------- -headmodel = callisto/lily - -models/players/callisto/lily/head_default.skin -models/players/callisto/head_lily.skin -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red - -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red - -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red -teamName = Stroggs - -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red -teamName = Stroggs - -models/players/callisto/lily/Stroggs/head_red.skin -models/players/callisto/Stroggs/head_red.skin -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base deleted file mode 100644 index 6b8d7197..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/index.html.svn-base +++ /dev/null @@ -1,65 +0,0 @@ - - - - - Compiling Manual - - - - - - - -

- - - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base deleted file mode 100644 index b0f4a011..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/modelskins.txt.svn-base +++ /dev/null @@ -1,73 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -model = hunter/harpy - - -legs: - models/players/hunter/lower_harpy_default.skin - models/players/hunter/lower_harpy.skin - models/players/characters/james/lower_harpy_default.skin - models/players/characters/james/lower_harpy.skin -torso: - models/players/hunter/upper_harpy_default.skin - models/players/hunter/upper_harpy.skin - models/players/characters/hunter/upper_harpy_default.skin - models/players/characters/hunter/upper_harpy.skin - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_model = hunter/harpy -team = red - -legs: - models/players/hunter/lower_harpy_red.skin - models/players/hunter/lower_red.skin - models/players/characters/hunter/lower_harpy_red.skin - models/players/characters/hunter/lower_red.skin -torso: - models/players/hunter/upper_harpy_red.skin - models/players/hunter/upper_red.skin - models/players/characters/hunter/upper_harpy_red.skin - models/players/characters/hunter/upper_red.skin - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_model = james/badass -team = red -teamName = Stroggs - -legs: - models/players/james/Stroggs/lower_badass_red.skin - models/players/james/Stroggs/lower_red.skin - models/players/james/lower_badass_red.skin - models/players/james/lower_red.skin - models/players/characters/james/Stroggs/lower_badass_red.skin - models/players/characters/james/Stroggs/lower_red.skin - models/players/characters/james/lower_badass_red.skin - models/players/characters/james/lower_red.skin -torso: - models/players/james/Stroggs/upper_badass_red.skin - models/players/james/Stroggs/upper_red.skin - models/players/james/upper_badass_red.skin - models/players/james/upper_red.skin - models/players/characters/james/Stroggs/upper_badass_red.skin - models/players/characters/james/Stroggs/upper_red.skin - models/players/characters/james/upper_badass_red.skin - models/players/characters/james/upper_red.skin - - - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base b/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base deleted file mode 100644 index 1b84545a..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/.svn/text-base/q3map.html.svn-base +++ /dev/null @@ -1,410 +0,0 @@ - - - - - Q3Map Manual - - - - - -

Q3map Manual

- -
- - - - -
-

q3map command line switches:

-
-q3map
------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--glview
-	Write a .gl file of the bsp tree for debugging.
--v
-	Output verbose information.
--draw
-	Enable realtime debug drawing output.
--nowater
-	Water, slime and lava brushes are not compiled and won't show up when running the map in Quake.
--noopt
-	unused.
--nofill
-	unused.
--nodetail
-	Detail brushes are not compiled and won't show up when running the map in Quake.
--fulldetail
-	Detail brushes will be treated as normal brushes.
--onlyents
-	Only change the entities in a .bsp using a .ent file.
--onlytextures
-	Only change the textures in a .bsp file.
--micro
-	unused.
--nofog
-	Visible surfaces that cross fog boundaries will not be split along the bound.
-	This can cause visually incorrect fog in the map.
--nosubdivide
-	Visible surfaces are not subdivided as required by shader tesselation.
-	The shader parameter "tesssize" sets the tesselation of a surface.
--leaktest
-	Only test the map for leaks. If a leak is found the compilation is stopped.
--verboseentities
-	Output verbose information about entity sub-models.
--nocurves
-	Curves are not compiled and won't show up when running the map in Quake.
--notjunc
-	T-junctions are not fixed. This can cause tiny slits where a surface meets halfway another surface.
--expand
-	Expands all the brush planes and saves a new map out to allow visual inspection of the clipping bevels
--tmpout
-	Output files to a folder called "tmp".
--fakemap
-	Write out a fakemap.map This map will contain a worldspawn entity with all the world brushes.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--custinfoparms
-	Will enable custom surface flags (see below)
-
-q3map -vis
-----------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--fast
-	Only calculate a very loose visiblity list. It doesn't take much time to
-	calculate but a lot more polygons will be drawn by the Q3 engine than necesary.
--merge
-	Merge bsp leaves before calculating the visibility list. This will speed up
-	the vis calculations but mostly more polygons will be drawn by the Q3 engine
-	than necesary.
--nopassage
-	Disable the passage visibility algorithm. The passage vis is faster and a bit more
-	tight than the old algorithm.
--level
-	unused.
--v
-	Output verbose information.
--nosort
-	Don't sort the portals on complexity. Sorting mostly speeds up visibility calculations
-	because more complex portals can use information from less complex portals.
--saveprt
-	Don't delete the .prt file after creating the visibility list.
--tmpin <path>
-	Input files will be read from a folder called "tmp".
--tmpout <path>
-	Output files will be written to a folder called "tmp".
-
-
-q3map -light
-------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--bounce <N> [NEW]
-	Enable radiosity calculation. Rediffuses the light emitted onto surfaces N
-	times. Will write out the BSP after every pass, so it can be cancelled.
-	Light reflected is the lightmap/vertex * texture color, subsampled to a certain
-	granularity across every lit surface. Use q3map_lightimage in a shader
-	to override the reflected color.
--bouncegrid [NEW]
-	Radiosity affects lightgrid (entity lighting).
--fast [NEW]
-	Enables light envelopes for area lights, speeding light up by 50x or more on
-	some maps. Has the side effect of dimmer maps with large numbers of dim surface
-	lights.
--fastgrid [NEW]
-	Same as fast, but only for lightgrid calculation.
--fastbounce [NEW]
-	Enables fast for radiosity passes only.
--cheap [NEW]
-	Stop calculating light at a sample when it exceeds (255, 255, 255). This may
-	produce odd artifacts on maps with lots of saturated colored lighting. Also,
-	do not use -cheap with radiosity if you wish to preserve all light emitted.
--cheapgrid [NEW]
-	Same as cheap, but only for lightgrid calculation.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--notrace
-	No light tracing is performed. As a result no shadows will be casted.
--patchshadows
-	Enable patches casting shadows.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--smooth [NEW]
-	Smart version of -extra. Only subsamples lightmap pixels that are shadowed.
-	Produces results comparable to -extra in roughly 1/3 the time. Can also be
-	used with -extra or -extrawide for 16- or 48-tap sampling respectively
-	(smoother shadows).
--extra
-	Take four samples per lightmap pixel and store the average light value of these
-	four samples for the actual lightmap pixel.
-	This super sampling is used for anti-aliasing.
--extrawide
-	Just like -extra four samples per lightmap pixel are calculated. However the
-	average of 12 samples is stored per lightmap pixel.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--border
-	Create a debugging border around the lightmap.
--v
-	Output verbose information.
--nosurf
-	Disables surface tracing (detail brushes and patches) for shadow calculation.
--dump
-	Dumps prefab files when used with radiosity for each bounce.
-
-
-q3map -vlight
--------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--nostitching
-	No polygon stitching before lighting.
--noalphashading
-	Don't use alpha shading at all.
--nocolorshading
-	Don't use colored alpha shading. The alpha channel will be used as if it were binary.
-	The light goes through or not and does not change color.
--tracelight
-	Use the "-light" light algorithm for all surface unless a surface
-	uses a shader with the shader option "q3map_vlight".
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--v
-	Output verbose information.
-
- - - -

The q3map options are a subset of the shader instructions that require -recompiling of the map.

- -

q3map_bounce <fraction>

-

      [NEW] -Specify a number between 0 and 1.0 (or higher) to scale the amount of light reflected in radiosity passes. -Default: 1.0

- -

q3map_nofast

-

      [NEW] -Surfaces that emit light with this shader parameter will disable -fast optimisation. Useful for -large areas of dim sky where you want all the dim light to reach all surfaces.

- -

q3map_tracelight

-

      [NEW] Surfaces using a shader with this option will always be lit with the -original "-light" light algorithm. Patches will not cast shadows on -this surface unless the shader option q3map_patchshadows is used.

-

q3map_patchshadows

-

      [NEW] When this option is used in conjunction with the original (-light) -lighting algorithm, surfaces with textures modified by this option will will -show shadows cast by curve patches (under normal circumstances, curve patches do -not cast shadows).

-

q3map_vertexshadows

-

      [NEW] By default, no shadows are cast on vertex-only lit surfaces (see -surfaceparm pointlight). Also when running Quake III Arena in vertex  lighting -mode, no shadows are cast upon any surfaces (shadows are part of the light map). -When using this shader option shadows *will* be cast on the surface when vertex -lit. However sharp shadow edges won't be seen on the surface because light -values are only calculated at the vertexes.

-

q3map_novertexshadows

-

      [NEW] Shaders used for misc_models and terrain can now use -q3map_novertexshadows to disable shadows to be cast at the vertex lit surfaces. -Shadows being cast at small misc_model objects often makes sense. However -shadows on large vertex lit terrain surfaces often look bad. By default no -shadows are cast at forced vertex list surfaces ( shaders with "pointlight" -).

-

q3map_forcesunlight

-

      [NEW] No sunlight is cast at vertex lit md3 models and terrain by default. -Using this option sunlight (overbright bits created by q3map_sun option) will be -cast on these surfaces.

-

q3map_vertexscale <scale>

-

      [NEW] The light value at the vertexes of a surface using a shader with this -option is multiplied by the scale value. This is a way to lighten or darken a -vertex light only surface in comparison to other, light-map lit surfaces around -it.

-

q3map_notjunc

-

      [NEW] Surfaces modified by a shader with this option are not used for -tjunction fixing.

-

q3map_vlight

-

      [NEW] Surfaces modified by a shader with this option will always be lit with -the "-vlight" algorithm when q3map is used with the options "-vlight --tracelight".

-

q3map_lightmapsamplesize <S>

-

      [NEW] Surfaces using a shader with this shader option will use lightmaps with -pixel size SxS. This option can be used to produce high resolution shadows on -certain surfaces or can be used to reduce the size of lightmap data where high -resolution shadows are not required.

-

q3map_lightimage <image>

-

      Image to use for the light color of a surface light instead of the image(s) -used by the shader. Color is averaged from the texture. Texture must be the same -size as the base image map.

-

q3map_surfacelight <value>

-

Sets the amount of light this surface emits.

-

q3map_lightsubdivide <value>

-

      A surface light is subdivided into a bunch of point lights for the actual -lighting of the world. This parameter controls the space between those point -lights. Default value is 120.

-

q3map_backsplash <percent> <distance>

-

      A surface light is also lit by itself using back splash point lights with a -lower intensity. The <percent> parameter specifies the intensity -percentage they use from the q3map_surfacelight <value> parameter. The -<distance> parameter controls the distance of these back splash lights -from the surface. You can set the <percent> to zero or a negative value to -disable the back splash lights.

-

      q3map_globaltexture

-

When this option is set the texture is not aligned to the world.

-

      q3map_backshader <shader>

-

<shader> is the path/name of the shader or texture to be used at the -back side of the surface.

-

      q3map_flare <shader>

-

Creates a flare using the specified <shader> at the center of the -surface using a shader with this option.

-

      light <value>

-

Old style flare specification always using the shader "flareshader". -The <value> parameter is unused.

-

      q3map_sun <red> <green> <blue> <intensity> -<degrees> <elevation>

-

Color will be normalized, so it doesn't matter what range you use. The -intensity falls off with angle but not distance. A value of 100 is a fairly -bright sun.

-

      degree of 0 = from the east, 90 = north, etc.

-

      elevation of 0 = sunrise/set, 90 = noon

-

      surfaceparm pointlight

-

Surfaces using a shader with this parameter will always be vertex lit

-

This option can be used to reduce the lightmap data. Often used on surfaces

-

that don't need any shadows.

- - -

Surfaceparm dust

-

If a player lands (jumps onto) on a surfaces using a shader with this -parameter, a put of dust will appear at the player’s feet. Note that the -worldspawn entity of that map must have an enableDust key set to a value of 1. -Note: This surfaceflag has been replaced by "surfaceparm woodsteps" in -Return to Castle Wolfenstien.

- - -

Custom surfaceparms

-
-

With the new q3map tool you can add custom surface parameters for mods -without the need to recompile the q3map tool. These custom surfaceparms are -stored in a file called ‘custinfoparms.txt’ in the folder scripts/. An -example of this file with the new surfaceparm treacle and surfaceparm grass is -shown below.

-

// Custom Infoparms File
-// Custom Contentsflags
-{
-treacle 0x4000
-}
-// Custom Surfaceflags
-{
-grass 0x80000
-}

-

 

- -

NOTE: For linux users, when using the -custinfoparms parameter q3map -first looks in your homedir, and only if it doesn't find a custinfoparms.txt -there, it uses the one stored in the

-

quake3 install dir (usually /usr/local/games).

-

 

-
-

Content Flags

-
-

Contents flags are flags similar to CONTENTS_FOG in the original Q3A. These -flags define the contents of volumes inside the game (for instance lava, fog, -water, etc.).

-

If you look in the source file game/surfaceflags.h, it has defines for all -contents flags. The define is split into a name and a hexadecimal value, for -instance CONTENTS_PLAYERCLIP 0x10000. These hexadecimal values are powers of 2 -and can be ored together (binary) to form a bit mask. Up to 32 contents flags -can be ored together this way.

- -

Example: creating a volume with treacle.

-

The following outlines how a custom contents flag can be added and used in a -mod. First open the ‘custinfoparms.txt’ file and add ‘treacle 0x4000’ -to the Custom Contentsflags section as shown in the example file above (0x4000 -is one of the unused values available for custom use). Next write a shader -script which uses ‘surfaceparm treacle’. Apply this new shader to all sides -of a brush in a test map. When you compile the map, add the -custinfoparms -parameter to the command line following q3map.

-

Next, add CONTENTS_TREACLE 0x4000 to the source file game/surfaceflags.h in -your mod. Now you can call the point contents function. If the point is inside -the brush with the shader using the ‘surfaceparm treacle’ then the point -contents call will return a bit mask with CONTENTS_TREACLE set. This can for -instance be used to slow down player movement when a player is inside such a -brush.

-

 

-
-

Surface Flags

-
-

The surface flags are texture properties that often affect entities in -contact with surfaces using such flags. The ‘surfaceparm metalsteps’ -parameter from Q3A is a good example.

-

If you look in the source file game/surfaceflags.h, it has defines for all -surface flags. The define is split into a name and a hexadecimal value, for -instance SURF_NODAMAGE 0x1. These hexadecimal values are powers of 2 and can be -ored together (binary) to form a bit mask. Up to 32 surface flags can be ored -together this way.

- -

Example: Making ‘footsteps on grass’ sounds

-

The following outlines how a custom surface flag can be added and used in a -mod. First open up the ‘custinfoparms.txt’ file and add 'grass 0x80000' to -the Custom Surfaceflags section as shown in the example file above (0x80000 is -the first available unused value in surfaceflags.h for surface flags). Next -write a shader script which uses a grass image and has 'surfaceparm grass’. -Create a test map with the grass shader covering the ground surface. When you -compile the map, add the -custinfoparms parameter to the command line following -q3map.

-

Next, add SURF_GRASS 0x80000 to the source file game/surfaceflags.h in your -mod. Now you'll be able to execute a trace and the trace information will be -returned in the trace_t structure. If the trace hits a surface with the grass -surfaceparm then the SURF_GRASS flag will be set in trace_t->surfaceFlags. -Such a trace can be used to trigger playing a sound of a person stepping on -grass. For a reference example, see the existing metal steps in the game code.

-

 

-
-

 

- -
- - - -

 

-
-
-

 

-

 

-

-27-

- - - - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/bspc.txt b/install/installs/ReactionPack/install/docs/Compile_Manual/bspc.txt deleted file mode 100644 index 0547b97b..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/bspc.txt +++ /dev/null @@ -1,565 +0,0 @@ - - -Title: BSP Converter -Version: 2.1h -Date: 2001-03-28 -Author: Mr. Elusive - - -Description ------------ - -The BSPC tool is used to create AAS files from BSP files. -An AAS file is a file with areas used by the Quake III Arena bot in order -to navigate and understand a map. The Quake III Arena maps are stored in -BSP files. - - -Usage ------ - -bspc [- [- ...]] - -Example 1: bspc -bsp2aas d:\quake3\baseq3\maps\mymap?.bsp -Example 2: bspc -bsp2aas d:\quake3\baseq3\pak0.pk3\maps/q3dm*.bsp - -Switches: - bsp2aas <[pakfilter/]filter.bsp> = convert BSP to AAS - reach = compute reachability & clusters - cluster = compute clusters - aasopt = optimize aas file - output = set output path - threads = set number of threads to X - cfg = use this cfg file - optimize = enable optimization - noverbose = disable verbose output - breadthfirst = breadth first bsp building - nobrushmerge = don't merge brushes - freetree = free the bsp tree - nocsg = disables brush chopping - forcesidesvisible = force all sides to be visible - grapplereach = calculate grapple reachabilities - - -Several metacharacter may be used in the filter and pakfilter. - -* match any string of zero or more characters -? match any single character -[abc...] match any of the enclosed characters; a hyphen can - be used to specify a range (e.g. a-z, A-Z, 0-9) - -.pk3 files are accessed as if they are normal folders. For instance -use "d:\quake3\baseq3\pak0.pk3\maps/q3dm1.bsp" to access the -map q3dm1.bsp from the pak0.pk3 file. - -Multiple files may be listed after the switches bsp2map, bsp2aas, reach, -cluster and aasopt. - -If a BSP file is being converted to an AAS file and no output path -is entered on the command-line then the AAS file will automatically -be stored in the same folder as the BSP file. However if the BSP file -was stored in a .pk3 file then the AAS file will be stored in a folder -with the name 'maps' outside the .pk3 file. - - -Updating entity lump --------------------- - -If an AAS file is already available for a BSP file and you ONLY change -the entities inside this BSP file then you only have to recalculate the -reachabilities. This way you can move items, platforms etc. around -without the need to recalculate the whole AAS file which can save quite -some compile time. You can recalculate the reachabilities as follows: - -bspc -reach mymap.bsp - -Where mymap.bsp is the BSP file. The mymap.aas file has to be in the -same folder as mymap.bsp or should be in the output folder specified -with the -output option. - -Keep in mind that as soon as ANY geometry in the map changes the whole -AAS file HAS to be recalculated in order to play with bots. - -NOTE: -reach does not work on optimized .AAS files! -NOTE: don't use -reach when moving the position of doors. - - -Leaks ------ - -Just like there can be vis leaks in a map there can also be clipping -leaks. Two things can be wrong when the BSPC tool outputs that a map -leaks. - -1. There are no entities in the map at all, or all entities that are -actually in the map are placed in solid. In this case the BSPC tool -outputs "WARNING: no entities inside". (At least a player start entity -is needed to load a map.) - -2. There is a spot in the map where players can go outside the map -into the void. This is bad, players should never be able to fall out -of a level. In this case the BSPC tool outputs "WARNING: entity -reached from outside". The BSPC tool also writes a mymap.lin file -that can be loaded in the Q3Radiant editor to show lines that go -through the actual leak. - -Make sure the .lin file is stored in the same folder as where q3radiant -stores the .bsp file. Load the map in q3radiant and use the -menu -> File -> Pointfile... to load the .lin file. A thick red line -will be shown in the map. Follow this line to find the leak. - - -Map bounds ----------- - -Currently a map should be within the bounds (-65536, -65536, -65536) - -(65536, 65536, 65536) for the bspc tool to compile. These are the same -limits the q3map tool has. - - -Physics -------- - -The player bounding box is a 30 units by 30 units square with a height -of 56 units. If we assume 1.75 meters being the average height of a human -and a player in Quake III Arena being 56 units high we get 32 units = 1 meter. - -Maximum step height of a player is 18 units (just keep steps 16 units or -lower). - -The maximum water jump height for bots has been set to 18 units. (height -difference between water surface and the floor jumping onto). If the -waterjump height is made higher human players will have a hard time getting -out of the water. - -With normal gravity and without the quad the maximum rocket jump height is -around 280 units (you can sometimes jump a few units higher but this is a -safe value for reference). - -The maximum height for barriers the bots will jump on is 32 units. - -Some math to calculate some other values of interest: - -gravity = 800; -jump velocity = 270; -max vertical rocketjump velocity = 670; -max run velocity = 320; -max step height = 18; - -max jump height = 0.5 * gravity * (jumpvelocity/gravity)*(jumpvelocity/gravity); -max jump height = 45 units; -NOTE: even though this is the mathematical maximum jump height always keep -the the 32 units maximum barrier height for bots in mind when building maps. - -maximum horizontal jump distance over a gap from one spot to another both -at the same height: - -t = sqrt((maxjumpheight + maxstep) / (0.5 * gravity)); -t = 0.3986 seconds; -dist = maxrunvelocity * (t + jumpvelocity / gravity); -dist = 235 units; -Because players use a bounding box we can jump a full bounding box width -furter in the ideal case. (15 units at the jump start and 15 at the -landing place). -235 + 15 + 15 = 265 units. -Again this is the mathematical maximum which players can only reach under -ideal circumstances. - - -Optimizing a map for bspc -------------------------- - -Hint brushes have no effect on the bspc tool. Only solid, clip, liquid, -cluster portal and do not enter brushes are used by the bspc tool. - -The bspc tool outputs how many areas are created for a map. Less areas -is better. Often the number of areas can be reduced by adding additional -clip brushes. By adding these additional clip brushes the complexity -of the geometry used for collision can be reduced. Do not add clip -brushes in front of the complex geometry but get the complex shaped -geometry contained within these clip brushes. Things that should be -contained within clip brushes are small or complex shaped (often detail) -brushes and complex and twisted curves, but also more regular curves -can be placed within a clip brush. When containing a curve within a -clip brush it's preferred to place the whole curve within the clip -brush (not just part of the curve). -Note: you can make brushes or curves non-solid when they are contained -within *full* clip or *weap* clip brushes to speed up bspc calculations. - -Always try to align your geometry to the grids. Always use the largest -grid possible for alignment of your geometry. Also try to align the -back sides of brushes which may not be visible. The more brush sides -are aligned the better. This will also speed up bspc calculations. - -Align adjacent brushes as much as possible. Make sure no tiny faces are -created due to badly aligned brushes. - -Quite often there are places in a map that are visible to players -but that players can never get to. Players would be able to walk around there -but since players can never reach such places they will never actually -move around there. If players are never able to get to such places -it's better to put a large clip brush which encloses that whole space. -This will also speed up bspc calculations and reduce the number of areas -created by the bspc tool. - -Note: the number of areas relative to the map size tells something about -the navigation complexity for players in general (also human players). -Reducing the collision complexity for bots also makes the map easier to -navigate for human players - - -func_plat and func_bobbing --------------------------- - -When func_plat or func_bobbing entities are placed in a map the bots will -use them if possible. The bots assume they can stand on top of the bounding -box of the model used for the func_plat or func_bobbing entity. As a result -creating complex shaped func_plat or func_bobbing models is mostly a bad -idea. You have to make sure the bots (and players) can actually stand -everywhere ontop of the bounding box of the model. - - -Cluster Portals ---------------- - -A map is divided into areas. Several of these areas can be grouped together -to create a cluster. The clusters are seperated by cluster portals which are -areas themselves. One of the things the bot uses these clusters for is a -multi-level routing algorithm. When a map is efficiently divided up into -clusters bot calculations will be faster. - -several things to take into account: - -- The BSPC tool tries to create cluster portals automatically but additional - cluster portals can be created by placing "clusterportal" brushes. -- Cluster portals are manually created by placing "clusterportal" brushes - inside the map. -- Cluster portal brushes are a tool to optimize a map for CPU usage by the - bots. They are not needed for the bots to operate correctly. -- The "clusterportal" brushes should not be used outside the world hull. -- The cluster portals do not have any effect on vis. -- If a door is already sealed with an areaportal brush, a clusterportal is - not necessary there. (area portals are also used as cluster portals). -- Just like the area portals, the cluster portals must seal a space off - entirely from other areas. -- The cluster portal areas should seal off a cluster in a way that the only - path towards another cluster is through a cluster portal area. -- Only create cluster portals where people can walk or swim through. -- Don't create cluster portals in gaps in the floor. (people would fall through) -- If you have two sealed off clusters and you add a teleporter between them - then the two clusters will be merged again because of the teleporter. -- Cluster portals must seperate no more and no less than two (2) clusters. -- Try to create clusters with all the same number of 'reachability' areas. - for instance if the map has 5400 areas try to create 10 clusters with 540 - areas each, or 12 clusters with 450 areas each, etc. The BSPC tool lists - the number of reachability areas in each cluster. - With Q3A version 1.25 and up you can use /set bot_testclusters 1 on the - console and the area number and cluster number you're in will be printed - on the screen. These cluster number correspond to the cluster numbers - the BSPC tool prints. -- Minimize the number of clusters with only a few (less than 10) areas. -- When adding "cluster portal" brushes try to place them in places with - minimal geometric complexity. For instance place them inside convex door - openings or small hallways (not infront of door openings). Ideally the shape - of the face through which a player walks or swims into the cluster portal - is the same as the shape of the face through which a player leaves the - cluster portal. Also ideally the open space inside the cluster portal - brush is convex. -- Make cluster portals about 16 or 32 units thick or align them with - adjacent geometry. Don't make them too thick though. -- Minimize the total number of cluster portal areas at all times. The more - cluster portal areas you have the more CPU the bots need. -- Items have no effect at all on the creation of areas or clusters. - The same goes for item_botroam. - - -Do Not Enter areas ------------------- - -When bot navigation problems show up or you want to make sure a bot never tries -to go to a certain place "do not enter" brushes can be used. - -several things to take into account: - -- The "do not enter" brushes should not be used outside the world hull. -- The "do not enter" brush is Not a clip brush for the bot. -- The "do not enter" brush is a tool of last resort. Do not use it unless - there are serious navigation problems. -- The number of "do not enter" brushes should be minimized because these - brushes create additional areas for the bots. -- The "do not enter" brush will create a New area that the bot will try to - avoid. However if the bot somehow ends up in a "do not enter" area or there - is a valid goal inside the "do not enter" area then the bot is allowed to - go into and out of that area. So if the bot somehow gets in a "do not enter" - area the bot will be able to get out. - - -Bot roaming ------------ - -The item_botroam entity can be used when a bot does not roam the whole level -or prefers to go to only specific areas. This (invisible) item can be placed -in a map just like regular items. Nobody can actually pick up the item it's -only used to attract bots to certain places of the map. The item_botroam has -a key "origin". The value is set by Q3Radiant automatically. The item_botroam -also has a key "weight". The value is the weight of the roam item and is -relative to the weight of other items in the map. The bot character specific -item weights are stored with the bot characters in the botfiles/bots/ sub-folder -in the .pk3 file. The value of the weight is a non-zero floating point value, -most often in the range 0 to 400. (Higher values are allowed but keep in mind -that the bot should also still go for normal items, so don't make the -item_botroam weight to high.) - -When a bot should never go for a specific item the key "notbot" with value "1" -can be used for that item. This key with value can be used for every available -item in Quake III Arena. - -The suspended flag can be used on all items (item_botroam included). -However keep in mind that when a suspended item is not anywhere near the -ground the bot will ONLY try to go for this suspended item using jump pads. - - -Team based entities -------------------- - -You can use the "bot_notteam" entity key with value "1" or "2" on teleporters -(trigger_teleport or trigger_multiple pointing at a target_teleporter), -elevators (func_plat), cyclic movers (func_bobbing), jumppads (trigger_push) -and areas that hurt the player (trigger_hurt). -When "notteam" is set to "1" only bots using the travel flag TFL_NOTTEAM1 will -use the entity or move through the area. When "bot_notteam" is set to "2" only -bots using the travel flag TFL_NOTTEAM2 will use the entity or move through the -area. These travel flags can be used in the game source code. Using this entity -key also only has effect if the mod the map is being made for supports team based -navigation for bots. - - -Testing AAS files ------------------ - -One of the easiest ways to test the AAS file is to load the map in -Quake3 in teamplay mode (type /set g_gametype 3 on the console before -loading the map). Enter a team and add a bot to your team. Use the -team order menu (by default bound to the key F3) to command the bot -to follow you. Walk around the map and see if the bot is able to -follow you everywhere. - -Map bugs can sometimes cause certain places in the map to show up -'solid' in the AAS file. The bots cannot travel through these 'solid' -areas. To test for these 'solid' places set the cvar bot_testsolid -to 1 on the console. (type /set bot_testsolid 1) The map has to be -started with devmap instead of map before the cvar bot_testsolid can -be set. When the cvar is set to 1 then either "empty area" or -"SOLID area" will be printed on the screen while traveling through a map. -Several map bugs can cause these 'solid' places in the AAS file. -- Sometimes microscopic brushes are left over after a brush CSG. Search - for such brushes in the problem area and delete them. -- Tiny brush faces (not curves) can also cause problems. Due to vertex - snapping in the q3map tool those tiny brush faces can be snapped out - of existence. Such faces will not show up in Quake3 and you'll see - tiny peek holes or slits where you can view through the geometry. - Allign vertexes of and edges of adjacent brushes to remove and avoid - such tiny faces. Placing a clip brush in front of the face that is - snapped out of existence will also remove the 'solid' area but ofcourse - it's much better to remove the peek holes and slits. -- Another cause could be a brush with a collapsed side. Check how many - sides a brush has and how many sides actually have a surface. Rebuild - brushes with collapsed sides. -- All faces contained within liquid brushes using a shader without - "surfaceparm trans" set will be removed. Those contained surfaces will - not be visible and can cause the liquid to appear "solid" in the AAS file. - -If you insist creating an AAS file for a map with bugs then the option --forcesidesvisible can be used. This should fix all the problems with areas -showing up solid in the AAS file. However creating an AAS file with this -option takes a lot longer (often more than twice the normal compile time). - -Clusters can be tested with the cvar bot_testclusters. -(type "/set bot_testclusters 1" on the console) - -Jumppads can also be tested. Type the following on the Quake3 console -before loading your map: - -/set bot_maxdebugpolys 1024 -/set bot_visualizejumppads 1 -/set bot_forcereachability 1 - -Now load the map. A counter will be shown and goes from 0% to 100%. -When the counter has reached 100% type /set bot_debug 1 and -/set r_debugSurface 2 on the console. For every jumppad the -default arch of travel (without using air control) will be visualized. -This only works if your .aas file is not optimized. - - -Error messages --------------- - -Level designers should not worry too much about the following messages and/or warnings. The things reported are non fatal and won't cause any major problems. Some of the messages are just debug left overs. - -"AAS_CheckArea: area %d face %d is flipped\n" -"AAS_CheckArea: area %d center is %f %f %f\n" -"AAS_CheckFaceWindingPlane: face %d winding plane unequal to face plane\r\n" -"AAS_CheckFaceWindingPlane: face %d winding reversed\r\n" -"area %d face %d flipped: front area %d, back area %d\n" -"area %d face %d is tiny\r\n" -"face %d and %d, same front and back area but flipped planes\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitFace: tiny back face\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_SplitArea: back area without faces\n" -"gsubdiv: area %d has a tiny winding\r\n" -"AAS_TestSplitPlane: tried face plane as splitter\n" -"found %d epsilon faces trying to split area %d\r\n" -"AAS_SplitArea: front area without faces\n" -"AAS_GetFace: face %d had degenerate edge %d-%d\r\n" -"AAS_GetFace: face %d was tiny\r\n" -"WARNING: huge winding\n" -"bogus brush after clip" -"split removed brush" -"split not on both sides" -"two tiny brushes\r\n" -"possible portal: %d\r\n" -"portal %d: area %d\r\n" -"WARNING: CM_GridPlane unresolvable\n" -"WARNING: CM_AddFacetBevels... invalid bevel\n" -"WARNING: CM_SetBorderInward: mixed plane sides\n" -"WARNING: bevel plane already used\n" -"trigger_multiple model = \"%s\"\n" -"trigger_teleport model = \"%s\"\n" -"found a trigger_push with velocity %f %f %f\n" -"AAS_TraceBoundingBox: stack overflow\n" -"AAS_TraceAreas: stack overflow\n" -"AAS_LinkEntity: stack overflow\n" -"MergeWindings: degenerate edge on winding %f %f %f\n" -"Warning: MergeWindings: front to back found twice\n" -"FindPlaneSeperatingWindings: winding1 non-convex\r\n" -"FindPlaneSeperatingWindings: winding2 non-convex\r\n" - - -When one of the following messages, errors or warnings is found then there is often something to be fixed. - -"WARNING! HashVec: point %f %f %f outside valid range\n" -"This should never happen!\n" - While storing the AAS file some vertex was found outside the valid map bounds. When this happens some part of the map is likely to have badly aligned brushes or weird shaped curves. Clipping off or rebuilding complex shapes often helps. -"trigger_push start solid\n" - The trigger_push start point is in solid. Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_push without target entity %s\n" - Could not find the target entity of the trigger_push with the target field %s. -"trigger_push without time\n" - trigger_push entity found without "time" field. -"trigger_multiple not in any jump pad area\n" -"trigger_push not in any jump pad area\n" - A trigger_push entity was found not to be in any valid jumppad area. (the message states trigger_multiple but it should have been trigger_push) Try making the trigger_push brush a bit larger or move it around a bit. -"trigger_multiple at %1.0f %1.0f %1.0f without target\n" - A trigger multiple was found at the given coordinates without a "target" field. -"target_teleporter without target\n" - A target_teleporter entity was found without target field. -"trigger_teleport at %1.0f %1.0f %1.0f without target\n" - A trigger_teleport entity was found at the given coordinates without "target" field. -"teleporter without misc_teleporter_dest (%s)\n" - The destination of a teleporter with target field %s could not be found. -"teleporter destination (%s) without origin\n" - A teleporter destination with the target name %s was found without origin field. -"teleporter destination (%s) in solid\n" - A teleporter destination with the targetname %s was found to be in solid. -"teleported into slime or lava at dest %s\n" - A player would be pushed into slime or lave at the teleporter destination with the targetname %s. -"trigger_multiple not in any area\n" - A teleporter trigger was found not to be in any valid area. Try moving the trigger around a bit. -"func_plat without model\n" - A func_plat entity was found without model field. -"func_plat with invalid model number\n" - A func_plat entity was found with the model field set to some invalid number. -"func_bobbing without model\n" - A func_bobbing entity was found without model field. -"func_bobbing with invalid model number\n" - A func_bobbing entity was found with the model field set to some invalid number. -"%s in solid at (%1.1f %1.1f %1.1f)\n" - An item with classname %s was found to be in solid at the given coordinates. -"empty aas link heap\n" - Some part of the map has some rather complex clipping. Reduce the geometric complexity or use clip brushes to reduce the clipping complexity. -"too many entities in BSP file\n" - There are too many entities in the bsp file. -"error opening %s\n" - Could not create a new AAS file. Hard disk might be full. -"error writing lump %s\n" - Could not write an AAS lump to file. Hard disk might be full. - - - -Version Changes ---------------- - -2.1h (2001-03-28) - -- fixed crash bug - -2.1g (2001-02-18) - -- added bot_notteam support on trigger_hurt entities - - -2.1f (2001-02-06) - -- added some AAS statistics -- don't flood through faces when creating clusters - - -2.1e (2001-01-10) - -- fix map size limitation - - -2.1d (2000-12-17) - -- renamed "notteam" to "bot_notteam" - - -2.1c (2000-11-02) - -- added fs_maxfallheight -- compiled with larger map size bounds - - -2.1b (2000-09-15) - -- fixed cfg file loading - - -2.1 (2000-06-28) - -- added model numbers for AREACONTENTS_MOVER -- added team based func_plat, func_bobbing, trigger_teleport and trigger_push reachabilities - - -2.0 (2000-06-21) - -- fixed swim reachabilities -- fixed some reachabilities through cluster portals -- fixed jump reachabilities -- changed some start travel times -- added travel time settings to cfg - - -1.9 (2000-03-27) - -- fixed func_bobbing entities with origin brush - - -1.8 (2000-01-14) - -- fixed trigger_teleport bug. -- increased max map bounds to (-8192, -8192, -8192)-(8192, 8192, 8192) -- increased max points on winding -- made "HashVec: point x y z outside valid range" non-fatal -- fixed rocket jump reachabilities -- added force sides visible option -- increased simulated stack size for area traces - - -1.7 (1999-12-22) - -- fixed ducked bounding box size -- fixed sv_maxsteepness being zero in aas configuration -- AAS files are now automatically stored in BSP file folder -- fixed crash bug caused by overflow of a simulated stack diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/cfgq3.c b/install/installs/ReactionPack/install/docs/Compile_Manual/cfgq3.c deleted file mode 100644 index 47e43c80..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/cfgq3.c +++ /dev/null @@ -1,78 +0,0 @@ -//=========================================================================== -// BSPC configuration file -// Quake3 -//=========================================================================== - -#define PRESENCE_NONE 1 -#define PRESENCE_NORMAL 2 -#define PRESENCE_CROUCH 4 - -// more bounding boxes can be added if required -// always minimize the number of bounding boxes listed here to reduce AAS file size -// for instance if players cannot crouch then it's good to remove the bbox definition for it - -//bounding box when running/walking -bbox //30x30x56 -{ - presencetype PRESENCE_NORMAL - flags 0x0000 - mins {-15, -15, -24} - maxs {15, 15, 32} -} - -// bounding box when crouched -bbox //30x30x40 -{ - presencetype PRESENCE_CROUCH - flags 0x0001 - mins {-15, -15, -24} - maxs {15, 15, 16} -} - -// do not forget settings as they might not be defaulted correctly when this cfg is used -settings -{ - // physics settings - phys_gravitydirection {0, 0, -1} // direction of gravity - phys_friction 6 // friction - phys_stopspeed 100 // stop speed - phys_gravity 800 // gravity - phys_waterfriction 1 // friction in water - phys_watergravity 400 // gravity in water - phys_maxvelocity 320 // maximum run speed - phys_maxwalkvelocity 320 // maximum walk speed (set for running) - phys_maxcrouchvelocity 100 // maximum crouch speed - phys_maxswimvelocity 150 // maximum swim speed - phys_walkaccelerate 100 // acceleration for walking - phys_airaccelerate 0 // acceleration flying through the air - phys_swimaccelerate 0 // acceleration for swimming - phys_maxstep 18 // maximum step height - phys_maxsteepness 0.7 // maximum floor steepness a player can walk on - phys_maxwaterjump 19 // maximum height for an out of water jump - phys_maxbarrier 33 // maximum barrier a player can jump onto - phys_jumpvel 270 // jump velocity - phys_falldelta5 40 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - phys_falldelta10 60 // falling delta for 5 damage ( see PM_CrashLand in game/bg_pmove.c ) - // reachability settings - // the following are all additional travel times added - // for certain reachabilities in 1/100th of a second - rs_waterjump 400 - rs_teleport 50 - rs_barrierjump 100 - rs_startcrouch 300 - rs_startgrapple 500 - rs_startwalkoffledge 70 - rs_startjump 300 - rs_rocketjump 500 - rs_bfgjump 500 - rs_jumppad 250 - rs_aircontrolledjumppad 300 - rs_funcbob 300 - rs_startelevator 50 - rs_falldamage5 300 // avoid getting 5 damage - rs_falldamage10 500 // avoid getting 10 damage - // if != 0 then this is the maximum fall height a reachability can be created for - rs_maxfallheight 0 - // maximum height a bot may fall down when jumping to some location - rs_maxjumpfallheight 450 -} diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/headskins.txt b/install/installs/ReactionPack/install/docs/Compile_Manual/headskins.txt deleted file mode 100644 index bf45f9f5..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/headskins.txt +++ /dev/null @@ -1,75 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -headmodel = *callisto/lily - -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - -------------------------------------------------- -headmodel = callisto/lily - -models/players/callisto/lily/head_default.skin -models/players/callisto/head_lily.skin -models/players/heads/callisto/lily/head_default.skin -models/players/heads/callisto/head_lily.skin - - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red - -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red - -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_headmodel = *callisto/lily -team = red -teamName = Stroggs - -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin - - -------------------------------------------------- -team_headmodel = callisto/lily -team = red -teamName = Stroggs - -models/players/callisto/lily/Stroggs/head_red.skin -models/players/callisto/Stroggs/head_red.skin -models/players/callisto/lily/head_red.skin -models/players/callisto/head_red.skin -models/players/heads/callisto/lily/Stroggs/head_red.skin -models/players/heads/callisto/Stroggs/head_red.skin -models/players/heads/callisto/lily/head_red.skin -models/players/heads/callisto/head_red.skin diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/index.html b/install/installs/ReactionPack/install/docs/Compile_Manual/index.html deleted file mode 100644 index 6b8d7197..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/index.html +++ /dev/null @@ -1,65 +0,0 @@ - - - - - Compiling Manual - - - - - - - -
-
-
- - -
-

Compiling Manual, q3map & bspc help

-
-
- -

- Table of Contents -

    - · - Q3Map Documentation - -
    · - BSPC Documentation - -
    . - BSPC Configuration file - -
    . - modelskins: Q3 and TA search order for model skins - -
    . - headskins: Q3 and TA search order for head skins - -
-

- -
- - -
- Last updated: Jan 21, 2002   -
-
- -
-
- - - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/modelskins.txt b/install/installs/ReactionPack/install/docs/Compile_Manual/modelskins.txt deleted file mode 100644 index b0f4a011..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/modelskins.txt +++ /dev/null @@ -1,73 +0,0 @@ -search orders with different settings - - -===================== -NON-TEAMPLAY -===================== - -------------------------------------------------- -model = hunter/harpy - - -legs: - models/players/hunter/lower_harpy_default.skin - models/players/hunter/lower_harpy.skin - models/players/characters/james/lower_harpy_default.skin - models/players/characters/james/lower_harpy.skin -torso: - models/players/hunter/upper_harpy_default.skin - models/players/hunter/upper_harpy.skin - models/players/characters/hunter/upper_harpy_default.skin - models/players/characters/hunter/upper_harpy.skin - - -===================== -Q3 TEAMPLAY -===================== - -------------------------------------------------- -team_model = hunter/harpy -team = red - -legs: - models/players/hunter/lower_harpy_red.skin - models/players/hunter/lower_red.skin - models/players/characters/hunter/lower_harpy_red.skin - models/players/characters/hunter/lower_red.skin -torso: - models/players/hunter/upper_harpy_red.skin - models/players/hunter/upper_red.skin - models/players/characters/hunter/upper_harpy_red.skin - models/players/characters/hunter/upper_red.skin - - -===================== -TA TEAMPLAY -===================== - -------------------------------------------------- -team_model = james/badass -team = red -teamName = Stroggs - -legs: - models/players/james/Stroggs/lower_badass_red.skin - models/players/james/Stroggs/lower_red.skin - models/players/james/lower_badass_red.skin - models/players/james/lower_red.skin - models/players/characters/james/Stroggs/lower_badass_red.skin - models/players/characters/james/Stroggs/lower_red.skin - models/players/characters/james/lower_badass_red.skin - models/players/characters/james/lower_red.skin -torso: - models/players/james/Stroggs/upper_badass_red.skin - models/players/james/Stroggs/upper_red.skin - models/players/james/upper_badass_red.skin - models/players/james/upper_red.skin - models/players/characters/james/Stroggs/upper_badass_red.skin - models/players/characters/james/Stroggs/upper_red.skin - models/players/characters/james/upper_badass_red.skin - models/players/characters/james/upper_red.skin - - - diff --git a/install/installs/ReactionPack/install/docs/Compile_Manual/q3map.html b/install/installs/ReactionPack/install/docs/Compile_Manual/q3map.html deleted file mode 100644 index 1b84545a..00000000 --- a/install/installs/ReactionPack/install/docs/Compile_Manual/q3map.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - Q3Map Manual - - - - - -

Q3map Manual

- -
- - - - -
-

q3map command line switches:

-
-q3map
------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--glview
-	Write a .gl file of the bsp tree for debugging.
--v
-	Output verbose information.
--draw
-	Enable realtime debug drawing output.
--nowater
-	Water, slime and lava brushes are not compiled and won't show up when running the map in Quake.
--noopt
-	unused.
--nofill
-	unused.
--nodetail
-	Detail brushes are not compiled and won't show up when running the map in Quake.
--fulldetail
-	Detail brushes will be treated as normal brushes.
--onlyents
-	Only change the entities in a .bsp using a .ent file.
--onlytextures
-	Only change the textures in a .bsp file.
--micro
-	unused.
--nofog
-	Visible surfaces that cross fog boundaries will not be split along the bound.
-	This can cause visually incorrect fog in the map.
--nosubdivide
-	Visible surfaces are not subdivided as required by shader tesselation.
-	The shader parameter "tesssize" sets the tesselation of a surface.
--leaktest
-	Only test the map for leaks. If a leak is found the compilation is stopped.
--verboseentities
-	Output verbose information about entity sub-models.
--nocurves
-	Curves are not compiled and won't show up when running the map in Quake.
--notjunc
-	T-junctions are not fixed. This can cause tiny slits where a surface meets halfway another surface.
--expand
-	Expands all the brush planes and saves a new map out to allow visual inspection of the clipping bevels
--tmpout
-	Output files to a folder called "tmp".
--fakemap
-	Write out a fakemap.map This map will contain a worldspawn entity with all the world brushes.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--custinfoparms
-	Will enable custom surface flags (see below)
-
-q3map -vis
-----------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--fast
-	Only calculate a very loose visiblity list. It doesn't take much time to
-	calculate but a lot more polygons will be drawn by the Q3 engine than necesary.
--merge
-	Merge bsp leaves before calculating the visibility list. This will speed up
-	the vis calculations but mostly more polygons will be drawn by the Q3 engine
-	than necesary.
--nopassage
-	Disable the passage visibility algorithm. The passage vis is faster and a bit more
-	tight than the old algorithm.
--level
-	unused.
--v
-	Output verbose information.
--nosort
-	Don't sort the portals on complexity. Sorting mostly speeds up visibility calculations
-	because more complex portals can use information from less complex portals.
--saveprt
-	Don't delete the .prt file after creating the visibility list.
--tmpin <path>
-	Input files will be read from a folder called "tmp".
--tmpout <path>
-	Output files will be written to a folder called "tmp".
-
-
-q3map -light
-------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--bounce <N> [NEW]
-	Enable radiosity calculation. Rediffuses the light emitted onto surfaces N
-	times. Will write out the BSP after every pass, so it can be cancelled.
-	Light reflected is the lightmap/vertex * texture color, subsampled to a certain
-	granularity across every lit surface. Use q3map_lightimage in a shader
-	to override the reflected color.
--bouncegrid [NEW]
-	Radiosity affects lightgrid (entity lighting).
--fast [NEW]
-	Enables light envelopes for area lights, speeding light up by 50x or more on
-	some maps. Has the side effect of dimmer maps with large numbers of dim surface
-	lights.
--fastgrid [NEW]
-	Same as fast, but only for lightgrid calculation.
--fastbounce [NEW]
-	Enables fast for radiosity passes only.
--cheap [NEW]
-	Stop calculating light at a sample when it exceeds (255, 255, 255). This may
-	produce odd artifacts on maps with lots of saturated colored lighting. Also,
-	do not use -cheap with radiosity if you wish to preserve all light emitted.
--cheapgrid [NEW]
-	Same as cheap, but only for lightgrid calculation.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--notrace
-	No light tracing is performed. As a result no shadows will be casted.
--patchshadows
-	Enable patches casting shadows.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--smooth [NEW]
-	Smart version of -extra. Only subsamples lightmap pixels that are shadowed.
-	Produces results comparable to -extra in roughly 1/3 the time. Can also be
-	used with -extra or -extrawide for 16- or 48-tap sampling respectively
-	(smoother shadows).
--extra
-	Take four samples per lightmap pixel and store the average light value of these
-	four samples for the actual lightmap pixel.
-	This super sampling is used for anti-aliasing.
--extrawide
-	Just like -extra four samples per lightmap pixel are calculated. However the
-	average of 12 samples is stored per lightmap pixel.
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--border
-	Create a debugging border around the lightmap.
--v
-	Output verbose information.
--nosurf
-	Disables surface tracing (detail brushes and patches) for shadow calculation.
--dump
-	Dumps prefab files when used with radiosity for each bounce.
-
-
-q3map -vlight
--------------
-
--threads <number>
-	Number of threads used to compile the map. For the fastest compile
-	times the number of threads is set to the number of system processors.
--area <scale>
-	This scales the light intensity of area lights.
--point <scale>
-	This scales the light intensity of point lights.
--novertex
-	Don't calculate vertex lighting.
--nogrid
-	Don't calculate light grid for dynamic model lighting.
--nostitching
-	No polygon stitching before lighting.
--noalphashading
-	Don't use alpha shading at all.
--nocolorshading
-	Don't use colored alpha shading. The alpha channel will be used as if it were binary.
-	The light goes through or not and does not change color.
--tracelight
-	Use the "-light" light algorithm for all surface unless a surface
-	uses a shader with the shader option "q3map_vlight".
--samplesize <N>
-	Set the lightmap pixel size to NxN units. Default 16x16.
--v
-	Output verbose information.
-
- - - -

The q3map options are a subset of the shader instructions that require -recompiling of the map.

- -

q3map_bounce <fraction>

-

      [NEW] -Specify a number between 0 and 1.0 (or higher) to scale the amount of light reflected in radiosity passes. -Default: 1.0

- -

q3map_nofast

-

      [NEW] -Surfaces that emit light with this shader parameter will disable -fast optimisation. Useful for -large areas of dim sky where you want all the dim light to reach all surfaces.

- -

q3map_tracelight

-

      [NEW] Surfaces using a shader with this option will always be lit with the -original "-light" light algorithm. Patches will not cast shadows on -this surface unless the shader option q3map_patchshadows is used.

-

q3map_patchshadows

-

      [NEW] When this option is used in conjunction with the original (-light) -lighting algorithm, surfaces with textures modified by this option will will -show shadows cast by curve patches (under normal circumstances, curve patches do -not cast shadows).

-

q3map_vertexshadows

-

      [NEW] By default, no shadows are cast on vertex-only lit surfaces (see -surfaceparm pointlight). Also when running Quake III Arena in vertex  lighting -mode, no shadows are cast upon any surfaces (shadows are part of the light map). -When using this shader option shadows *will* be cast on the surface when vertex -lit. However sharp shadow edges won't be seen on the surface because light -values are only calculated at the vertexes.

-

q3map_novertexshadows

-

      [NEW] Shaders used for misc_models and terrain can now use -q3map_novertexshadows to disable shadows to be cast at the vertex lit surfaces. -Shadows being cast at small misc_model objects often makes sense. However -shadows on large vertex lit terrain surfaces often look bad. By default no -shadows are cast at forced vertex list surfaces ( shaders with "pointlight" -).

-

q3map_forcesunlight

-

      [NEW] No sunlight is cast at vertex lit md3 models and terrain by default. -Using this option sunlight (overbright bits created by q3map_sun option) will be -cast on these surfaces.

-

q3map_vertexscale <scale>

-

      [NEW] The light value at the vertexes of a surface using a shader with this -option is multiplied by the scale value. This is a way to lighten or darken a -vertex light only surface in comparison to other, light-map lit surfaces around -it.

-

q3map_notjunc

-

      [NEW] Surfaces modified by a shader with this option are not used for -tjunction fixing.

-

q3map_vlight

-

      [NEW] Surfaces modified by a shader with this option will always be lit with -the "-vlight" algorithm when q3map is used with the options "-vlight --tracelight".

-

q3map_lightmapsamplesize <S>

-

      [NEW] Surfaces using a shader with this shader option will use lightmaps with -pixel size SxS. This option can be used to produce high resolution shadows on -certain surfaces or can be used to reduce the size of lightmap data where high -resolution shadows are not required.

-

q3map_lightimage <image>

-

      Image to use for the light color of a surface light instead of the image(s) -used by the shader. Color is averaged from the texture. Texture must be the same -size as the base image map.

-

q3map_surfacelight <value>

-

Sets the amount of light this surface emits.

-

q3map_lightsubdivide <value>

-

      A surface light is subdivided into a bunch of point lights for the actual -lighting of the world. This parameter controls the space between those point -lights. Default value is 120.

-

q3map_backsplash <percent> <distance>

-

      A surface light is also lit by itself using back splash point lights with a -lower intensity. The <percent> parameter specifies the intensity -percentage they use from the q3map_surfacelight <value> parameter. The -<distance> parameter controls the distance of these back splash lights -from the surface. You can set the <percent> to zero or a negative value to -disable the back splash lights.

-

      q3map_globaltexture

-

When this option is set the texture is not aligned to the world.

-

      q3map_backshader <shader>

-

<shader> is the path/name of the shader or texture to be used at the -back side of the surface.

-

      q3map_flare <shader>

-

Creates a flare using the specified <shader> at the center of the -surface using a shader with this option.

-

      light <value>

-

Old style flare specification always using the shader "flareshader". -The <value> parameter is unused.

-

      q3map_sun <red> <green> <blue> <intensity> -<degrees> <elevation>

-

Color will be normalized, so it doesn't matter what range you use. The -intensity falls off with angle but not distance. A value of 100 is a fairly -bright sun.

-

      degree of 0 = from the east, 90 = north, etc.

-

      elevation of 0 = sunrise/set, 90 = noon

-

      surfaceparm pointlight

-

Surfaces using a shader with this parameter will always be vertex lit

-

This option can be used to reduce the lightmap data. Often used on surfaces

-

that don't need any shadows.

- - -

Surfaceparm dust

-

If a player lands (jumps onto) on a surfaces using a shader with this -parameter, a put of dust will appear at the player’s feet. Note that the -worldspawn entity of that map must have an enableDust key set to a value of 1. -Note: This surfaceflag has been replaced by "surfaceparm woodsteps" in -Return to Castle Wolfenstien.

- - -

Custom surfaceparms

-
-

With the new q3map tool you can add custom surface parameters for mods -without the need to recompile the q3map tool. These custom surfaceparms are -stored in a file called ‘custinfoparms.txt’ in the folder scripts/. An -example of this file with the new surfaceparm treacle and surfaceparm grass is -shown below.

-

// Custom Infoparms File
-// Custom Contentsflags
-{
-treacle 0x4000
-}
-// Custom Surfaceflags
-{
-grass 0x80000
-}

-

 

- -

NOTE: For linux users, when using the -custinfoparms parameter q3map -first looks in your homedir, and only if it doesn't find a custinfoparms.txt -there, it uses the one stored in the

-

quake3 install dir (usually /usr/local/games).

-

 

-
-

Content Flags

-
-

Contents flags are flags similar to CONTENTS_FOG in the original Q3A. These -flags define the contents of volumes inside the game (for instance lava, fog, -water, etc.).

-

If you look in the source file game/surfaceflags.h, it has defines for all -contents flags. The define is split into a name and a hexadecimal value, for -instance CONTENTS_PLAYERCLIP 0x10000. These hexadecimal values are powers of 2 -and can be ored together (binary) to form a bit mask. Up to 32 contents flags -can be ored together this way.

- -

Example: creating a volume with treacle.

-

The following outlines how a custom contents flag can be added and used in a -mod. First open the ‘custinfoparms.txt’ file and add ‘treacle 0x4000’ -to the Custom Contentsflags section as shown in the example file above (0x4000 -is one of the unused values available for custom use). Next write a shader -script which uses ‘surfaceparm treacle’. Apply this new shader to all sides -of a brush in a test map. When you compile the map, add the -custinfoparms -parameter to the command line following q3map.

-

Next, add CONTENTS_TREACLE 0x4000 to the source file game/surfaceflags.h in -your mod. Now you can call the point contents function. If the point is inside -the brush with the shader using the ‘surfaceparm treacle’ then the point -contents call will return a bit mask with CONTENTS_TREACLE set. This can for -instance be used to slow down player movement when a player is inside such a -brush.

-

 

-
-

Surface Flags

-
-

The surface flags are texture properties that often affect entities in -contact with surfaces using such flags. The ‘surfaceparm metalsteps’ -parameter from Q3A is a good example.

-

If you look in the source file game/surfaceflags.h, it has defines for all -surface flags. The define is split into a name and a hexadecimal value, for -instance SURF_NODAMAGE 0x1. These hexadecimal values are powers of 2 and can be -ored together (binary) to form a bit mask. Up to 32 surface flags can be ored -together this way.

- -

Example: Making ‘footsteps on grass’ sounds

-

The following outlines how a custom surface flag can be added and used in a -mod. First open up the ‘custinfoparms.txt’ file and add 'grass 0x80000' to -the Custom Surfaceflags section as shown in the example file above (0x80000 is -the first available unused value in surfaceflags.h for surface flags). Next -write a shader script which uses a grass image and has 'surfaceparm grass’. -Create a test map with the grass shader covering the ground surface. When you -compile the map, add the -custinfoparms parameter to the command line following -q3map.

-

Next, add SURF_GRASS 0x80000 to the source file game/surfaceflags.h in your -mod. Now you'll be able to execute a trace and the trace information will be -returned in the trace_t structure. If the trace hits a surface with the grass -surfaceparm then the SURF_GRASS flag will be set in trace_t->surfaceFlags. -Such a trace can be used to trigger playing a sound of a person stepping on -grass. For a reference example, see the existing metal steps in the game code.

-

 

-
-

 

- -
- - - -

 

-
-
-

 

-

 

-

-27-

- - - - diff --git a/install/installs/ReactionPack/install/docs/Model_Manual/.svn/entries b/install/installs/ReactionPack/install/docs/Model_Manual/.svn/entries deleted file mode 100644 index 603461d0..00000000 --- a/install/installs/ReactionPack/install/docs/Model_Manual/.svn/entries +++ /dev/null @@ -1,65 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Model_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -styles -dir - -model_manual.htm -file - - - - -2012-04-01T16:52:35.807498Z -3c6cafe924ffd55fc17a3be3c66e6e63 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -18107 - diff --git a/install/installs/ReactionPack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base b/install/installs/ReactionPack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base deleted file mode 100644 index 6735fa78..00000000 --- a/install/installs/ReactionPack/install/docs/Model_Manual/.svn/text-base/model_manual.htm.svn-base +++ /dev/null @@ -1,217 +0,0 @@ - - - -Q3A Player Characters: Putting them in the Game - - - -
-

Putting New Models in Quake III Arena

- -Based on original notes by Paul Steed - -

Edited by Paul Jaquays
-

Edited 12/22/99 by ps
-

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version
-

-
-The purpose of this document is to explain how to set up a model for Quake 3 Arena, create the necessary animation and conversion files, and then export it into the MD3 format required by the game. It is intended to be informative only and not a tutorial on building or animating models. - -

The player models for Quake III Arena were built using the commercial modeling software, 3D Studio Max R2.5 (3ds Max) by -Kinetix. These models were then animated using Physique and Biped, components of a plugin for 3dsMax called Character Studio -(also by Kinetix). The following instructions assume that you will model and animate with 3dsMax and Character Studio. - -

1. Setting up the Files

-Begin in your Quake3 directory. If you don't have one already, create a baseq3 directory. Inside the baseq3 directory, create a models directory. Inside the models directory, create a players directory. Inside the players directory, create a directory with the name of your model (we will use [character] in this document to represent information requiring the name of the model). It is generally a good idea to create a 'work' directory under [character] so that the [character] directory itself remains uncluttered. Place all versions of your model and temp textures here, saving the [character] directory purely for the finished model files. - -

2. Building and Naming the Mesh

-The mesh should be built keeping in mind the game engine needs three distinct body part grouping: the head, the upper body, and the lower body. These groupings can consist of different parts or sub-objects, but keep in mind too many sub-objects does impact performance and game play speed. A good rule of thumb is to consolidate your objects (i.e. attach them to each other) as long as they remain a part of a major group. For example, you decide to create a character that has its arms as separate objects for easier animation. Unless the arms or torso has different textures assigned to them go ahead and attach the arms to the torso. It may be more difficult to assign the vertices to the biped skeleton later on, but the efficiency of the model is much better. However, if you must keep the limbs detached for unique shader assignment then keep the following naming conventions in mind: - -

2.1 Head Geometry

-All head geometry needs to begin with lower case 'H_' (h_head, h_glasses, h_hat, etc...). Keep in mind that the head has no -animations itself other than to respond to player mouse-look input. - -

2.2 Upper Body Geometry

-All upper body geometry needs to begin with lower case 'U_' (u_torso, u_arms, u_abdomen, etc.) This is your model's torso and arms. The individual animations for the upper body are listed below. - -

2.3 Lower Body Geometry

-All lower body geometry begins with lower case 'L_' (l_hips, l_legs, l_lfoot, l_rfoot, etc...). This is your model's buttocks, legs and feet. The individual animations for the upper body are listed below. - -

2.4 Tags

-Tags are connection points for other model parts and represent the limited hierarchical system of the game. They include links between the three character body parts and the weapons. Keep in mind that these tags are representations of geometry so they can be animated to represent that geometry. For example, tag_head represents the head, tag_torso represents the torso and tag_weapon represents the weapon. This is important to understand since for example, any time the character is performing a locomotive animation, the upper body can and will animate independently of the lower body, using the relative position of the tag as a base or 'home' position. The tags for the body parts and weapons are named tag_weapon, tag_torso and tag_head. - -

3. Texturing

-Once you finish building your character go ahead and attach it to your biped and do some basic test animations to make certain the mesh doesn't deform in weird ways. Turn edges, ad faces, whatever you need to do to make sure that while animating, the character retains its mesh integrity. Handing the mesh over to another artist to assign UVW's or assigning and texturing yourself without testing the animation integrity of the mesh is very risky. Major modifications after UV assignment can cost you valuable time resulting in re-assigning not just the UV's, but re-attaching the mesh to your biped as well. Once your model is ready, go ahead and apply the texture to it. Typically the textures used in Q3A consist of one 256 x 256 texture for the body and one 128 x 128 texture for the head. Keep in mind that it's best to consolidate your texture on a single page rather than break it up into smaller pages. Also some video cards cannot process a texture size larger than 256, so making a high-rez 1024 x 512 texture just won't be seen since the card will knock it down to -256 x 128 to digest it. - -

4. Set Up for Animation

-Once the character is textured or skinned, bring the mesh back into 3dsMax (2.5) and attach it to an adjusted Biped using the Character Studio plug-in. As a rule of thumb, it's always better to just assign the mesh to the biped using the default -settings and then manually assign vertices to appropriate skeletal 'limbs'. - -

5. Animation

-When animating the character, keep all animations in one file. It's crucial that the animations adhere to a specific order that pertains to the separate body parts as this supports our current tag system. - -

Basically the order of animations goes: full body (animations that combine both upper and lower), upper body, and lower body. Each character file has the following animations in them and for now that's all the modeler is allowed. The division is basically death (all body parts), extraneous upper body, and dedicated locomotive animations. That way all the upper body animations can be performed at any time, separate from whatever it is that that lower body animations may be doing. There is a set number of animation types which are (in order): - -

  • death1 (approx. 30 frames) -
  • death2 (approx. 30 frames) -
  • death3 (approx. 30 frames) - -

  • taunt (approx. 45 frames) -
  • weapon attack (exactly 6 frames) -
  • melee attack (exactly 6 frames) -
  • change weapon (exactly 9 frames) -
  • weapon idle (exactly 1 frame) -
  • melee idle (exactly 1 frame) - -

  • crouched walk (approx. 10 frames) -
  • walk (approx. 15 frames) -
  • run (approx. 12 frames) -
  • backpedal (approx. 10 frames) -
  • swim (approx. 10 frames) -
  • jump forward (approx. 10 frames) -
  • jump forward-land (approx. 6 frames) -
  • jump backward (approx. 10 frames) -
  • jump backward-land (approx. 6 frames) -
  • standing idle (approx. 10 frames) -
  • crouched idle (approx. 10 frames) -
  • turn in place (approx. 8 frames)
- -

A good rule of thumb is to create an idle pose at the frame right after the final death frame. Keep this pose for the -entire lower body and center of mass of the biped up through melee idle frame since any animation by the lower body during these frames will not register during the grab process. Similarly, once the animations for the lower body start, copy the pose for the upper body at the weapon idle frame to the first frame of the crouched walk animation and don't animate the upper body at all after that frame. This allows you to more closely approximate what happens during the game where the upper body is basically just along for the ride as the lower body carries it along via the tag_torso. - -

Keep in mind that an animation.cfg has to be generated for each character that is a direct reflection of your animation file above. - -

6. Setting up Tags

-After the modeler is satisfied with the animations for the character, it's time to bring in the tags that up until now, have -kept in a separate file. This is milestone mark that lets the modeler know that the character is nearly complete. 'Merge' -the tags into your scene. Turn off 'inherit scale' for the tags under the hierarchy/link command panel in Max. Then, -assign a Physique modifier (Character Studio), linking them to specific areas in the biped: - -

tag_torso is linked to the Biped 'pelvis' -
tag_head is linked to the Biped 'head'. -
tag_weapon is linked to the right 'hand'. - -

6.1 Animate Body Tags

-Now, go in and actually animate the tag_torso so that it matches the default position (established previously at -approximately the standing idle frame- from the top view it looks like a perfect 90 degree triangle with the base half as wide as the length, pointing forward) when appropriate. "Appropriate" means that as the character goes through the lower body animations, if the triangle is pointing anywhere else but forward, the upper body will point that way as well since to the code the upper body IS the tag. This works out to the modeler's advantage, though because even if the upper body LOOKS crazy in the animation you simply rely on the tag representation to compensate for it. - -

6.2 Handling Weapon Tags

-Tag_weapon is a bit different. Basically there is no difference between view model weapons (the weapon as seen by the player when it is in use by his or another player) and the world model weapons (weapons as they are found rotating in the maps) in Quake III Arena. However, for visually clarity and identification, they are doubled in scale when they become seen as world models. They are the same object. This reduces the number of models needed the game and creates an overall more efficient system. Unfortunately a drawback to the system is that there can be only one firing animation for the character. Thusly all weapons need to fit within the grip of the character regardless of size or geometry. This also makes it impossible to see hands on your weapons or otherwise perform vertex animation on the weapons other than barrel rotations vis the tag system (tag_barrel). -

Since the placement is always the same for the character's hands on the weapons , create the animations to the point where it begins the weapon attack sequence. Then merge one of the weapon models into the character file as a guide. The weapons have a nested triangle of same dimensions as the tag_head and tag_torso triangles (each weapon in the game has this triangle saved with it. Move the weapon into a horizontal firing position (using the side view) to about where the character would be holding the weapon correctly. Then move the character's hands into the appropriate position and link the weapon to the character's right hand. - -

When you get to the point where you bring in the tags, make a snapshot of the weapon, hide the original and simply delete all the vertices and faces of the copy of the weapon object except for the nested triangle. Rename it tag_weapon, turn off the 'inherit scale' attributes (very important), and assign Physique to it (linking it to the 'right hand' of the biped) and voila. Ready to export. - -

Level of Detail

-Each of the Quake III Arena player characters have a base model and two lower polygon versions of the model (to help with speed issues). For use in the game, the three levels of detail are file formatted as follows: - -

- - - - - - - - - - - - -
[character].[file extension]This is the highest detail model for close up viewing
[character]_1.[file extension]This is a slightly lower polygon model for mid distance viewing
[character]_2.[file extension]This is the lowest polygon model for long distance viewing.
- -

Level of detail means you need to make three versions of your model to get the best performance during gameplay. Each -version needs to have the same textures assigned and same animations assigned to them in order to work in the game. The -numbers you need to shoot for are 800 faces for the highest level, 500 faces for next level and 300 for the lowest level. This works out roughly to be a 60% drop in each LOD, but your numbers will vary in order to maintain mesh integrity. Most LOD's created in Q3A were done with the plugin called MRM (multiple resolution mesh) by Intel. The stock Optimize modifier or manual optimization techniques can be applied. - -

8. Exporting

-Once the tags are in place (also with the Physique modifier attached to them) the model is ready to export to an ase(ascii) -file. To make the models available for use in Quake III Arena, the model was exported to a native 3dsMax ASCII format -file called an '.ase' file. This export option in Max has several check boxes to tweak and then just exports the character -with its animation data (via Character Studio) to a huge ase/ascii file. Under 'Output Options' make sure the 'Mesh Definition', 'Materials', 'Transform Animation Keys', and 'Animated Mesh' boxes are checked. Under 'Mesh Options' and 'Object Types' make sure 'Mapping Coordinates' and 'Geometric' are the only boxes checked, respectively and let it run. Your 'Time Configuration' must reflect a '0' starting point up through the last frame of your animation. The native Max exporter will rely on the time configuration as a guide on which frames to actually grab during the conversion process. Of course there will be better exporters available in the future…this is just how it was done for the characters in Q3A. - -

9. Animation Config File

-The character's animations are controlled by an 'animation.cfg' file where the model maker specifies reference frames and frame rates. The animation.cfg file is a text file (originally created with MS Excel) which contains the frame and animation sequence data. Place this in the model's directory. Note, when the modeler is testing the model in Quake III Arena, changes to the animation.cfg can be made without having to re-grab the model…just do a 'vid_restart' at the cvar command line -prompt. - -

Edit an animation.cfg file which matches the frame/animation sequences and place it in the character's directory. Each animation can have different frame rates that the modeler can tweak, save out in the animation.cfg, hit 'vid_restart' to see the change right away in the game (no need to re-grab the model). The file for visor is shown here below in it's entirety. You may clip this portion of the file out and use it as the basis for your own animation files. - -

-////////////////////////////////////////////////////////////////////////////////
-
-// animation config file
-
-sex		m
-
-headoffset	0 0 0
-footsteps	normal
-
-// first frame, num frames, looping frames, frames per second
-
-0	30	0	25	// BOTH_DEATH1
-29	1	0	25	// BOTH_DEAD1
-30	30	0	25	// BOTH_DEATH2
-59	1	0	25	// BOTH_DEAD2
-60	30	0	25	// BOTH_DEATH3
-89	1	0	25	// BOTH_DEAD3
-90	40	0	20	// TORSO_GESTURE
-130	6	0	15	// TORSO_ATTACK (MUST NOT CHANGE -- hand animation is synced to this)
-136	6	0	15	// TORSO_ATTACK2 (MUST NOT CHANGE -- hand animation is synced to this)
-142	5	0	20	// TORSO_DROP (MUST NOT CHANGE -- hand animation is synced to this)
-147	4	0	20	// TORSO_RAISE (MUST NOT CHANGE -- hand animation is synced to this)
-151	1	0	15	// TORSO_STAND
-152	1	0	15	// TORSO_STAND2
-153	8	8	20	// LEGS_WALKCR
-161	12	12	20	// LEGS_WALK
-173	9	9	18	// LEGS_RUN
-182	10	10	20	// LEGS_BACK
-192	10	10	15	// LEGS_SWIM
-202	8	0	15	// LEGS_JUMP
-210	1	0	15	// LEGS_LAND
-211	8	0	15	// LEGS_JUMPB
-219	1	0	15	// LEGS_LANDB
-220	10	10	15	// LEGS_IDLE
-230	10	10	15	// LEGS_IDLECR
-240	7	7	15	// LEGS_TURN
-
-//////////////////////////////////////////////////////////////////
- -

10. The Conversion Process

- -The models need to be run through id's custom md3 conversion/'grabber' program. The program uses the information in the Quake Data text file ([filename].qdt) to grab and convert the 3dsMax files. - -

10.1 The Conversion File

- -Create a "Quake Data" text file for the model with the extension ".qdt". The contents for our [character].qdt file would read something like: - -

$asecanimconvert models/players/[character]/[character].ase -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_1.ase -lod 1 -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_2.ase -lod 2 -playerparms 92 155 - -

-This is the grabber program executable. - -

- -This is the path to the model's .ase file. The program looks for files starting in your Quake3\baseq3 directory. - -

-This tells the converter that this is the first level of reduced detail for the model. The value "-lod 2" is for the second, -or lowest level of detail for the model. - -

-This tells the converter which frame the upper body anims only start (first value) and which frame the lower body only anims start (second value). The numbers here are only used as examples - -

10.2 Run the Conversion

-When the qdt file is set up correctly, run the grabber by opening MSDOS command prompt, going to the quake3 directory -containing the model files and typing in 'q3data [character].qdt' - -

11. Review the Model

-Load up Quake 3 Arena. Go to map Q3DM0 (or any map containing a mirror). Bring down the console and type "\model -[character name]". Hit your Show Score key (default is TAB). You should see your new model here. Tweak the frame rates in -your animation.cfg file and save them. Type in "\vid_restart" on the console and hit enter to see the changes. - - - - - diff --git a/install/installs/ReactionPack/install/docs/Model_Manual/model_manual.htm b/install/installs/ReactionPack/install/docs/Model_Manual/model_manual.htm deleted file mode 100644 index 6735fa78..00000000 --- a/install/installs/ReactionPack/install/docs/Model_Manual/model_manual.htm +++ /dev/null @@ -1,217 +0,0 @@ - - - -Q3A Player Characters: Putting them in the Game - - - -
-

Putting New Models in Quake III Arena

- -Based on original notes by Paul Steed - -

Edited by Paul Jaquays
-

Edited 12/22/99 by ps
-

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version
-

-
-The purpose of this document is to explain how to set up a model for Quake 3 Arena, create the necessary animation and conversion files, and then export it into the MD3 format required by the game. It is intended to be informative only and not a tutorial on building or animating models. - -

The player models for Quake III Arena were built using the commercial modeling software, 3D Studio Max R2.5 (3ds Max) by -Kinetix. These models were then animated using Physique and Biped, components of a plugin for 3dsMax called Character Studio -(also by Kinetix). The following instructions assume that you will model and animate with 3dsMax and Character Studio. - -

1. Setting up the Files

-Begin in your Quake3 directory. If you don't have one already, create a baseq3 directory. Inside the baseq3 directory, create a models directory. Inside the models directory, create a players directory. Inside the players directory, create a directory with the name of your model (we will use [character] in this document to represent information requiring the name of the model). It is generally a good idea to create a 'work' directory under [character] so that the [character] directory itself remains uncluttered. Place all versions of your model and temp textures here, saving the [character] directory purely for the finished model files. - -

2. Building and Naming the Mesh

-The mesh should be built keeping in mind the game engine needs three distinct body part grouping: the head, the upper body, and the lower body. These groupings can consist of different parts or sub-objects, but keep in mind too many sub-objects does impact performance and game play speed. A good rule of thumb is to consolidate your objects (i.e. attach them to each other) as long as they remain a part of a major group. For example, you decide to create a character that has its arms as separate objects for easier animation. Unless the arms or torso has different textures assigned to them go ahead and attach the arms to the torso. It may be more difficult to assign the vertices to the biped skeleton later on, but the efficiency of the model is much better. However, if you must keep the limbs detached for unique shader assignment then keep the following naming conventions in mind: - -

2.1 Head Geometry

-All head geometry needs to begin with lower case 'H_' (h_head, h_glasses, h_hat, etc...). Keep in mind that the head has no -animations itself other than to respond to player mouse-look input. - -

2.2 Upper Body Geometry

-All upper body geometry needs to begin with lower case 'U_' (u_torso, u_arms, u_abdomen, etc.) This is your model's torso and arms. The individual animations for the upper body are listed below. - -

2.3 Lower Body Geometry

-All lower body geometry begins with lower case 'L_' (l_hips, l_legs, l_lfoot, l_rfoot, etc...). This is your model's buttocks, legs and feet. The individual animations for the upper body are listed below. - -

2.4 Tags

-Tags are connection points for other model parts and represent the limited hierarchical system of the game. They include links between the three character body parts and the weapons. Keep in mind that these tags are representations of geometry so they can be animated to represent that geometry. For example, tag_head represents the head, tag_torso represents the torso and tag_weapon represents the weapon. This is important to understand since for example, any time the character is performing a locomotive animation, the upper body can and will animate independently of the lower body, using the relative position of the tag as a base or 'home' position. The tags for the body parts and weapons are named tag_weapon, tag_torso and tag_head. - -

3. Texturing

-Once you finish building your character go ahead and attach it to your biped and do some basic test animations to make certain the mesh doesn't deform in weird ways. Turn edges, ad faces, whatever you need to do to make sure that while animating, the character retains its mesh integrity. Handing the mesh over to another artist to assign UVW's or assigning and texturing yourself without testing the animation integrity of the mesh is very risky. Major modifications after UV assignment can cost you valuable time resulting in re-assigning not just the UV's, but re-attaching the mesh to your biped as well. Once your model is ready, go ahead and apply the texture to it. Typically the textures used in Q3A consist of one 256 x 256 texture for the body and one 128 x 128 texture for the head. Keep in mind that it's best to consolidate your texture on a single page rather than break it up into smaller pages. Also some video cards cannot process a texture size larger than 256, so making a high-rez 1024 x 512 texture just won't be seen since the card will knock it down to -256 x 128 to digest it. - -

4. Set Up for Animation

-Once the character is textured or skinned, bring the mesh back into 3dsMax (2.5) and attach it to an adjusted Biped using the Character Studio plug-in. As a rule of thumb, it's always better to just assign the mesh to the biped using the default -settings and then manually assign vertices to appropriate skeletal 'limbs'. - -

5. Animation

-When animating the character, keep all animations in one file. It's crucial that the animations adhere to a specific order that pertains to the separate body parts as this supports our current tag system. - -

Basically the order of animations goes: full body (animations that combine both upper and lower), upper body, and lower body. Each character file has the following animations in them and for now that's all the modeler is allowed. The division is basically death (all body parts), extraneous upper body, and dedicated locomotive animations. That way all the upper body animations can be performed at any time, separate from whatever it is that that lower body animations may be doing. There is a set number of animation types which are (in order): - -

  • death1 (approx. 30 frames) -
  • death2 (approx. 30 frames) -
  • death3 (approx. 30 frames) - -

  • taunt (approx. 45 frames) -
  • weapon attack (exactly 6 frames) -
  • melee attack (exactly 6 frames) -
  • change weapon (exactly 9 frames) -
  • weapon idle (exactly 1 frame) -
  • melee idle (exactly 1 frame) - -

  • crouched walk (approx. 10 frames) -
  • walk (approx. 15 frames) -
  • run (approx. 12 frames) -
  • backpedal (approx. 10 frames) -
  • swim (approx. 10 frames) -
  • jump forward (approx. 10 frames) -
  • jump forward-land (approx. 6 frames) -
  • jump backward (approx. 10 frames) -
  • jump backward-land (approx. 6 frames) -
  • standing idle (approx. 10 frames) -
  • crouched idle (approx. 10 frames) -
  • turn in place (approx. 8 frames)
- -

A good rule of thumb is to create an idle pose at the frame right after the final death frame. Keep this pose for the -entire lower body and center of mass of the biped up through melee idle frame since any animation by the lower body during these frames will not register during the grab process. Similarly, once the animations for the lower body start, copy the pose for the upper body at the weapon idle frame to the first frame of the crouched walk animation and don't animate the upper body at all after that frame. This allows you to more closely approximate what happens during the game where the upper body is basically just along for the ride as the lower body carries it along via the tag_torso. - -

Keep in mind that an animation.cfg has to be generated for each character that is a direct reflection of your animation file above. - -

6. Setting up Tags

-After the modeler is satisfied with the animations for the character, it's time to bring in the tags that up until now, have -kept in a separate file. This is milestone mark that lets the modeler know that the character is nearly complete. 'Merge' -the tags into your scene. Turn off 'inherit scale' for the tags under the hierarchy/link command panel in Max. Then, -assign a Physique modifier (Character Studio), linking them to specific areas in the biped: - -

tag_torso is linked to the Biped 'pelvis' -
tag_head is linked to the Biped 'head'. -
tag_weapon is linked to the right 'hand'. - -

6.1 Animate Body Tags

-Now, go in and actually animate the tag_torso so that it matches the default position (established previously at -approximately the standing idle frame- from the top view it looks like a perfect 90 degree triangle with the base half as wide as the length, pointing forward) when appropriate. "Appropriate" means that as the character goes through the lower body animations, if the triangle is pointing anywhere else but forward, the upper body will point that way as well since to the code the upper body IS the tag. This works out to the modeler's advantage, though because even if the upper body LOOKS crazy in the animation you simply rely on the tag representation to compensate for it. - -

6.2 Handling Weapon Tags

-Tag_weapon is a bit different. Basically there is no difference between view model weapons (the weapon as seen by the player when it is in use by his or another player) and the world model weapons (weapons as they are found rotating in the maps) in Quake III Arena. However, for visually clarity and identification, they are doubled in scale when they become seen as world models. They are the same object. This reduces the number of models needed the game and creates an overall more efficient system. Unfortunately a drawback to the system is that there can be only one firing animation for the character. Thusly all weapons need to fit within the grip of the character regardless of size or geometry. This also makes it impossible to see hands on your weapons or otherwise perform vertex animation on the weapons other than barrel rotations vis the tag system (tag_barrel). -

Since the placement is always the same for the character's hands on the weapons , create the animations to the point where it begins the weapon attack sequence. Then merge one of the weapon models into the character file as a guide. The weapons have a nested triangle of same dimensions as the tag_head and tag_torso triangles (each weapon in the game has this triangle saved with it. Move the weapon into a horizontal firing position (using the side view) to about where the character would be holding the weapon correctly. Then move the character's hands into the appropriate position and link the weapon to the character's right hand. - -

When you get to the point where you bring in the tags, make a snapshot of the weapon, hide the original and simply delete all the vertices and faces of the copy of the weapon object except for the nested triangle. Rename it tag_weapon, turn off the 'inherit scale' attributes (very important), and assign Physique to it (linking it to the 'right hand' of the biped) and voila. Ready to export. - -

Level of Detail

-Each of the Quake III Arena player characters have a base model and two lower polygon versions of the model (to help with speed issues). For use in the game, the three levels of detail are file formatted as follows: - -

- - - - - - - - - - - - -
[character].[file extension]This is the highest detail model for close up viewing
[character]_1.[file extension]This is a slightly lower polygon model for mid distance viewing
[character]_2.[file extension]This is the lowest polygon model for long distance viewing.
- -

Level of detail means you need to make three versions of your model to get the best performance during gameplay. Each -version needs to have the same textures assigned and same animations assigned to them in order to work in the game. The -numbers you need to shoot for are 800 faces for the highest level, 500 faces for next level and 300 for the lowest level. This works out roughly to be a 60% drop in each LOD, but your numbers will vary in order to maintain mesh integrity. Most LOD's created in Q3A were done with the plugin called MRM (multiple resolution mesh) by Intel. The stock Optimize modifier or manual optimization techniques can be applied. - -

8. Exporting

-Once the tags are in place (also with the Physique modifier attached to them) the model is ready to export to an ase(ascii) -file. To make the models available for use in Quake III Arena, the model was exported to a native 3dsMax ASCII format -file called an '.ase' file. This export option in Max has several check boxes to tweak and then just exports the character -with its animation data (via Character Studio) to a huge ase/ascii file. Under 'Output Options' make sure the 'Mesh Definition', 'Materials', 'Transform Animation Keys', and 'Animated Mesh' boxes are checked. Under 'Mesh Options' and 'Object Types' make sure 'Mapping Coordinates' and 'Geometric' are the only boxes checked, respectively and let it run. Your 'Time Configuration' must reflect a '0' starting point up through the last frame of your animation. The native Max exporter will rely on the time configuration as a guide on which frames to actually grab during the conversion process. Of course there will be better exporters available in the future…this is just how it was done for the characters in Q3A. - -

9. Animation Config File

-The character's animations are controlled by an 'animation.cfg' file where the model maker specifies reference frames and frame rates. The animation.cfg file is a text file (originally created with MS Excel) which contains the frame and animation sequence data. Place this in the model's directory. Note, when the modeler is testing the model in Quake III Arena, changes to the animation.cfg can be made without having to re-grab the model…just do a 'vid_restart' at the cvar command line -prompt. - -

Edit an animation.cfg file which matches the frame/animation sequences and place it in the character's directory. Each animation can have different frame rates that the modeler can tweak, save out in the animation.cfg, hit 'vid_restart' to see the change right away in the game (no need to re-grab the model). The file for visor is shown here below in it's entirety. You may clip this portion of the file out and use it as the basis for your own animation files. - -

-////////////////////////////////////////////////////////////////////////////////
-
-// animation config file
-
-sex		m
-
-headoffset	0 0 0
-footsteps	normal
-
-// first frame, num frames, looping frames, frames per second
-
-0	30	0	25	// BOTH_DEATH1
-29	1	0	25	// BOTH_DEAD1
-30	30	0	25	// BOTH_DEATH2
-59	1	0	25	// BOTH_DEAD2
-60	30	0	25	// BOTH_DEATH3
-89	1	0	25	// BOTH_DEAD3
-90	40	0	20	// TORSO_GESTURE
-130	6	0	15	// TORSO_ATTACK (MUST NOT CHANGE -- hand animation is synced to this)
-136	6	0	15	// TORSO_ATTACK2 (MUST NOT CHANGE -- hand animation is synced to this)
-142	5	0	20	// TORSO_DROP (MUST NOT CHANGE -- hand animation is synced to this)
-147	4	0	20	// TORSO_RAISE (MUST NOT CHANGE -- hand animation is synced to this)
-151	1	0	15	// TORSO_STAND
-152	1	0	15	// TORSO_STAND2
-153	8	8	20	// LEGS_WALKCR
-161	12	12	20	// LEGS_WALK
-173	9	9	18	// LEGS_RUN
-182	10	10	20	// LEGS_BACK
-192	10	10	15	// LEGS_SWIM
-202	8	0	15	// LEGS_JUMP
-210	1	0	15	// LEGS_LAND
-211	8	0	15	// LEGS_JUMPB
-219	1	0	15	// LEGS_LANDB
-220	10	10	15	// LEGS_IDLE
-230	10	10	15	// LEGS_IDLECR
-240	7	7	15	// LEGS_TURN
-
-//////////////////////////////////////////////////////////////////
- -

10. The Conversion Process

- -The models need to be run through id's custom md3 conversion/'grabber' program. The program uses the information in the Quake Data text file ([filename].qdt) to grab and convert the 3dsMax files. - -

10.1 The Conversion File

- -Create a "Quake Data" text file for the model with the extension ".qdt". The contents for our [character].qdt file would read something like: - -

$asecanimconvert models/players/[character]/[character].ase -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_1.ase -lod 1 -playerparms 92 155 -
$asecanimconvert models/players/[character]/[character]_2.ase -lod 2 -playerparms 92 155 - -

-This is the grabber program executable. - -

- -This is the path to the model's .ase file. The program looks for files starting in your Quake3\baseq3 directory. - -

-This tells the converter that this is the first level of reduced detail for the model. The value "-lod 2" is for the second, -or lowest level of detail for the model. - -

-This tells the converter which frame the upper body anims only start (first value) and which frame the lower body only anims start (second value). The numbers here are only used as examples - -
1 Preface: Making Your Own Shaders -
2 Introduction - - -3 General Shader Keywords - - -4 Q3MAP Specific Shader Keywords - - -5 Editor specific shader instructions - - -6 Stage Specific Keywords - - -7 Notes on Alpha Channels -
8 Troubleshooting Shaders -
9 Creating New Textures - -
Appendix A: targetShaderName and targetNewShaderName - - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/entries deleted file mode 100644 index d2512736..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/appendix -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -appA.html -file - - - - -2012-04-01T16:52:34.237408Z -71f8804da845b07160a6dfdf70b67936 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1689 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base deleted file mode 100644 index a20c61a3..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/.svn/text-base/appA.html.svn-base +++ /dev/null @@ -1,60 +0,0 @@ - - -Quake III Arena Shader Manual: Appendix A - - - -

Q3Radiant Shader Manual

- -TTimo
-2001.31.08
-
-
-

Appendix A: usage of targetShaderName and targetShaderNewName

- -

-The targetShaderName and targetShaderNewName keys can be used with any entity -that supports the target key (the entity instance does not actually have to use -the target key for these new keys to work). If both are defined, then when the -entity decides to activate its targets, all shaders/textures in the map that -were originally the same name as the targetShaderName value, will be changed to -the targetShaderNewName value. -

- -

-For example this would make it look like the red light shader is "turning on": -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_on" -

- -

-And this would turn it back off: -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_off" -

- -

-Note that the ORIGINAL shader name is used in both instances, not whatever it -happens to be currently. Also, of course, this will happen globally. If the -mapper wanted to affect only a certain set of red lights, he/she would need to -make a unique shader name to be used with that set. -

- -

-The code that supports these keys is in G_UseTargets in g_utils.c. -

- -

-For more information, see this thread:
- -http://www.quake3world.com/ubb/Forum6/HTML/014812.html#9 - -

- - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/appA.html b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/appA.html deleted file mode 100644 index a20c61a3..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/appendix/appA.html +++ /dev/null @@ -1,60 +0,0 @@ - - -Quake III Arena Shader Manual: Appendix A - - - -

Q3Radiant Shader Manual

- -TTimo
-2001.31.08
-
-
-

Appendix A: usage of targetShaderName and targetShaderNewName

- -

-The targetShaderName and targetShaderNewName keys can be used with any entity -that supports the target key (the entity instance does not actually have to use -the target key for these new keys to work). If both are defined, then when the -entity decides to activate its targets, all shaders/textures in the map that -were originally the same name as the targetShaderName value, will be changed to -the targetShaderNewName value. -

- -

-For example this would make it look like the red light shader is "turning on": -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_on" -

- -

-And this would turn it back off: -

- -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_off" -

- -

-Note that the ORIGINAL shader name is used in both instances, not whatever it -happens to be currently. Also, of course, this will happen globally. If the -mapper wanted to affect only a certain set of red lights, he/she would need to -make a unique shader name to be used with that set. -

- -

-The code that supports these keys is in G_UseTargets in g_utils.c. -

- -

-For more information, see this thread:
- -http://www.quake3world.com/ubb/Forum6/HTML/014812.html#9 - -

- - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/entries deleted file mode 100644 index fade30fb..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/ch01 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg1_1.htm -file - - - - -2012-04-01T16:52:34.580428Z -e605a774d4b228fb70925c0a8af4646b -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -13533 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base deleted file mode 100644 index 9f0fd794..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/.svn/text-base/pg1_1.htm.svn-base +++ /dev/null @@ -1,126 +0,0 @@ - - -Quake III Arena Shader Manual: Introduction - - - -

Q3Radiant Shader Manual

-
-

1 Preface: Making Your Own Shaders

- -The Manual for the Q3Radiant editor program contains a section called Creating New Assets that has the necessary information for setting up the files to create your own custom Quake III Arena shaders. It is recommended that you study the scripts in this document and in the individual shader scripts. Pay careful attention to syntax and punctuation. This is where you are most likely to make mistakes. - -

2 Introduction

- -The graphic engine for QuakeIII Arena has taken a step forward by putting much more direct control over the surface -qualities of textures into the hands of designers and artists. In writing this manual, we have tried to define the -concepts and tools that are used to modify textures in a way that, it is hoped, will be graspable by users who already have basic knowledge ofcomputer graphics but are not necessarily computer programmers. It is not a tutorial, nor was it intended to be one. - -

2.1 What is a Shader?

- -Shaders are short text scripts that define the properties of a surface as it appears and functions in a game world (or compatible editing tool). By convention, the documents that contain these scripts usually has the same name as the texture set which contains the textures being modified (e.g; base, hell, castle, etc,). Several specific script documents have also been created to handle special cases, like liquids, sky and special effects. - -

For Quake III Arena,Shader scripts are located in quake3/baseq3/scripts. - -

A Quake III Arena shader file consists of a series of surface attribute and rendering instructions formatted -within braces ("{" and "}"). Below you can see a simple example of syntaxand format for a single process, including the -Q3MAP keywords or "SurfaceParameters", which follow the first bracket and a single bracketed "stage": - -

textures/liquids/lava
-	{
-	deformVertexes wave sin 0 3 0 0.1
-	tessSize 64
-	{
-	map textures/common/lava.tga
-	}
-}
-
- -

2.2 Shader Name & File Conventions

-The first line is the shader name. Shader names can be up to 63 characters long. The names are often a mirror of -a pathname to a .tga file without the extension or base dir (/quake3/baseq3 in ourcase), but they do not need to be. - -

Shaders that are only going to be referenced by the gamecode, not modeling tools, often are just a single world, -like"projectionShadow" or "viewBlood". - -

Shaders that are used on characters or other polygon models need to mirror a .tga file, which allows the modelers to build with normal textures, then have the special effects show up when the model is loaded into the game. - -

Shaders that are placed on surfaces in the map editor commonly mirror a .tga file, but the "qer_editorimage" shader parameter canforce the editor to use an arbitrary image for display. - -

Shader pathnames have a case sensitivity issue - on windows, they aren't case sensitive, but on unix they are. Try to always use lowercase for filenames, and always use forward slashes "/" for directory separators. - -

2.3 Shader Types

-The keywords that affect shaders are divided into two classes. The first class of keywords are global parameters. Some global parameters ("surfaceparms." And all "q3map_" keywords) are processed by Q3MAP, and change physical attributes of the surface that uses the shader. These attributes can affect the player. To see changes in these -parameters one must re-bsp the map. - -

The remaining global keywords, and all Stage Specific Keywords are processed by the renderer. They are appearance changes -only and have no effect on game play or game mechanics. Changes to any of these attributes will take effect as soon as the game goes to another level or vid_restarts (type command vid_restart in the game console). - -

Shader keywords are notcase sensitive. - -

IMPORTANT NOTE: some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined in this section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

2.4 Key Concepts

- -Ideally, a designer or artist who is manipulating textures with shader files has a basic understanding of wave forms and knows about mixing colored light (high school physics sort of stuff). If not, there are some concepts you need to have a -grasp on to make shaders work for you. - -

2.4.1 Surface Effects vs. Content Effects vs. Deformation Effects
-Shaders not only modify the visible aspect of textures on a geometry brush, curve, patch or mesh model, but they can also have an effect on both the content, "shape," and apparent movement of those things. A surface effect does nothing to modify -the shape or content of the brush. Surface effects include glows, transparencies and rgb (red, green, blue) value -changes. Content shaders affect the way the brush operates in the game world. Examples include water, fog, nonsolid, and -structural. Deformation effects change the actual shape of the affected brush or curve, and may make it appear to move. - -

2.4.2 Power Has a Price
-The shader script gives the designer, artist and programmer a great deal of easily accessible power over the appearance of -and potential special effects that may be applied to surfaces in the gameworld. But it is power that comes with a price tag -attached, and the cost is measured in performance speed. Each shader phase that affects the appearance of a texture causes the Q3:Aengine to make another processing pass and redraw the world. Think of it as if you were adding all -the shader-affected triangles to the total r_speed count for each stage in the shader script. A shader-manipulated texture that is seen through another shader-manipulated texture (e.g. a light in fog) has the effect of adding the total number of passes together for the affected triangles. A light that required two passes seen through a fog that requires one pass will be treated as having to redraw that part of the world three times. - -

2.4.3 RGB Color
- -RGB means "Red, Green, Blue."Mixing red, green and blue light in differing intensities creates the colors in computers and television monitors. This is called additive color (as opposed to the mixing of pigments in paint or colored ink in the printing process, which is subtractive color). In Quake III Arena and most higher-end computer art programs (and the color selector in Windows), the intensities ofthe individual Red, Green and Blue components are expressed as number values. When mixed together on a screen, number values of equal intensity in each component color create a completely neutral (gray) color. The lower the number value (towards 0), the darker the shade. The higher the value, the lighter the shade or the more saturated the color until it reaches a maximum value of 255 (in the art programs). All colors possible on the computer can be expressed as a formula of three numbers. The value for complete black is 0 0 0. The value for complete white is 255 255 255. However, the QuakeIII Arena graphics engine requires that the color range be "normalized" into a range between 0.0 and 1.0. - -

2.4.4 Normalization: a Scale of 0 to 1
-The mathematics in Quake III Arena use a scale of 0.0 to 1.0 instead of 0 to 255. Most computer art programs that can express RGB values as numbers use the 0 to 255 scale. To convert numbers, divide each of the artprogram's values for the component colors by 255. The resulting three values are your Quake III Arena formula for that color component. The same holds true for texture coordinates. - -

2.4.5 Texture Sizes
-TGA texture files are measured in pixels (picture elements). Textures are measured in powers of 2, with 16 x16 pixels being the smallest (typically) texture in use. Most will be larger. Textures need not be square, so long as both dimensions are powers of 2. Examples include: 32x256, 16x32, 128x16. - -

2.4.6 Color Math
- -In Quake III Arena , colors are changed by mathematical equations worked on the textures by way ofthe scripts or -"programlets" in the shader file. An equation that adds to or multiplies the number values in atexture causes it to become -darker. Equations that subtract from or modulate number values in a texture cause it to become lighter. Either equation can change the hue and saturation of a color. - -

2.4.7 Measurements
- -The measurements used in the shaders are in either game units, color units, or texture units. - -

· Game unit: A game unit is used by deformations to specify sizes relative to the world. Game units are the same scale we have had since way back in the Wolfensteindays - 8 units equals one foot. The default texture scale used by the Q3Radiant map editor results in two texels for each game unit, but that can be freely changed. - -

· Color units: Colors scale the values generated by the texture units to produce lighting effects. A value of 0.0 will be completely black, and a value of 1.0 will leave the texture unchanged. Colors are sometimes specified with a single value to be used across all red, green,and blue channels, or sometimes as separate values for each channel. - -

· Texture units: This is the normalized (see above) dimensions of the original texture image (or a previously modified texture at a given stage in the shader pipeline). A full texture, regardless of its original size in texels, has a normalized measurement of 1.0 x 1.0. For normal repeating textures, it is possible to have value greater than 1.0 or less than 0.0, resulting in repeating of the texture. The coordinates are usually assigned by the level editor or -modeling tools, but you still need to be aware of this for scrolling or turbulent movement of the texture at runtime. - -

2.4.8 Waveform Functions
-Many of the shader functions use waveforms to modulate measurements over time. Where appropriate, additional information is provided with wave modulated keyword functions to describe the effect of a particular waveform on that process. Currently there are five waveforms in use in Q3A shaders: - -

Sin: Sin standsfor sine wave, a regular smoothly flowing wave ranging from -1 to 1. -
Triangle: Triangle is a wave with a sharp ascent and a sharp decay, ranging from 0 to 1.It will make a choppy looking wave forms. -
Square: A squarewave simply switches from -1 to 1 with no in-between. -
Sawtooth: In the sawtooth wave, the ascent is like a triangle wave from 0 to 1, but the decay cuts off sharply back to 0. -
Inversesawtooth: This is the reverse of the sawtooth… instant ascent to the peak value (1), then a triangle wave descent to the valley value (0). The phase on this goes from 1.0 to 0.0 instead of 0.0 to 1.0. This wave is particularly usefulfor additive cross-fades. - -

Waveforms all have thefollowing properties: -
<base> Where the wave form begins. Amplitude is measured from this base value. -
<amplitude> This is the height of the wave created, measured from the base. You will probably need to test and tweak this value to get it correct for each new shader stage. The greater the amplitude, the higher the wave peaks and the deeper the valleys. -
<phase> This is a normalized value between 0.0 and 1.0. Changing phase to a non-zero value affects the point on the wave at which the wave form initially begins to be plotted. Example: In Sin or Triangle wave, a phase of 0.25 means it begins one fourth (25%) of the way along the curve, or more simply put, it begins at the peak of the wave. A phaseof 0.5 would begin at the point the wave re-crosses the base line. A phase of 0.75 would be at the lowest point of the valley. If only one wave form is being used in a shader, a phase shift will probably not be noticed and phase should have a value of zero (0). However, including two or more stages of the same process in a single shader, but with the phases shifted can be used to create interesting visual effects. Example: using rgbGen in two stages with different colors and a 0.5 difference in phase would cause the manipulated texture to modulate between two distinct colors. Phase changes can also be used when you have two uses of the same effect near each other, and you don't want them to be synchronized. You would write a separate shader for each, changing only the phase value. -
<freq>Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of 1 -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm deleted file mode 100644 index 9f0fd794..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch01/pg1_1.htm +++ /dev/null @@ -1,126 +0,0 @@ - - -Quake III Arena Shader Manual: Introduction - - - -

Q3Radiant Shader Manual

-
-

1 Preface: Making Your Own Shaders

- -The Manual for the Q3Radiant editor program contains a section called Creating New Assets that has the necessary information for setting up the files to create your own custom Quake III Arena shaders. It is recommended that you study the scripts in this document and in the individual shader scripts. Pay careful attention to syntax and punctuation. This is where you are most likely to make mistakes. - -

2 Introduction

- -The graphic engine for QuakeIII Arena has taken a step forward by putting much more direct control over the surface -qualities of textures into the hands of designers and artists. In writing this manual, we have tried to define the -concepts and tools that are used to modify textures in a way that, it is hoped, will be graspable by users who already have basic knowledge ofcomputer graphics but are not necessarily computer programmers. It is not a tutorial, nor was it intended to be one. - -

2.1 What is a Shader?

- -Shaders are short text scripts that define the properties of a surface as it appears and functions in a game world (or compatible editing tool). By convention, the documents that contain these scripts usually has the same name as the texture set which contains the textures being modified (e.g; base, hell, castle, etc,). Several specific script documents have also been created to handle special cases, like liquids, sky and special effects. - -

For Quake III Arena,Shader scripts are located in quake3/baseq3/scripts. - -

A Quake III Arena shader file consists of a series of surface attribute and rendering instructions formatted -within braces ("{" and "}"). Below you can see a simple example of syntaxand format for a single process, including the -Q3MAP keywords or "SurfaceParameters", which follow the first bracket and a single bracketed "stage": - -

textures/liquids/lava
-	{
-	deformVertexes wave sin 0 3 0 0.1
-	tessSize 64
-	{
-	map textures/common/lava.tga
-	}
-}
-
- -

2.2 Shader Name & File Conventions

-The first line is the shader name. Shader names can be up to 63 characters long. The names are often a mirror of -a pathname to a .tga file without the extension or base dir (/quake3/baseq3 in ourcase), but they do not need to be. - -

Shaders that are only going to be referenced by the gamecode, not modeling tools, often are just a single world, -like"projectionShadow" or "viewBlood". - -

Shaders that are used on characters or other polygon models need to mirror a .tga file, which allows the modelers to build with normal textures, then have the special effects show up when the model is loaded into the game. - -

Shaders that are placed on surfaces in the map editor commonly mirror a .tga file, but the "qer_editorimage" shader parameter canforce the editor to use an arbitrary image for display. - -

Shader pathnames have a case sensitivity issue - on windows, they aren't case sensitive, but on unix they are. Try to always use lowercase for filenames, and always use forward slashes "/" for directory separators. - -

2.3 Shader Types

-The keywords that affect shaders are divided into two classes. The first class of keywords are global parameters. Some global parameters ("surfaceparms." And all "q3map_" keywords) are processed by Q3MAP, and change physical attributes of the surface that uses the shader. These attributes can affect the player. To see changes in these -parameters one must re-bsp the map. - -

The remaining global keywords, and all Stage Specific Keywords are processed by the renderer. They are appearance changes -only and have no effect on game play or game mechanics. Changes to any of these attributes will take effect as soon as the game goes to another level or vid_restarts (type command vid_restart in the game console). - -

Shader keywords are notcase sensitive. - -

IMPORTANT NOTE: some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined in this section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

2.4 Key Concepts

- -Ideally, a designer or artist who is manipulating textures with shader files has a basic understanding of wave forms and knows about mixing colored light (high school physics sort of stuff). If not, there are some concepts you need to have a -grasp on to make shaders work for you. - -

2.4.1 Surface Effects vs. Content Effects vs. Deformation Effects
-Shaders not only modify the visible aspect of textures on a geometry brush, curve, patch or mesh model, but they can also have an effect on both the content, "shape," and apparent movement of those things. A surface effect does nothing to modify -the shape or content of the brush. Surface effects include glows, transparencies and rgb (red, green, blue) value -changes. Content shaders affect the way the brush operates in the game world. Examples include water, fog, nonsolid, and -structural. Deformation effects change the actual shape of the affected brush or curve, and may make it appear to move. - -

2.4.2 Power Has a Price
-The shader script gives the designer, artist and programmer a great deal of easily accessible power over the appearance of -and potential special effects that may be applied to surfaces in the gameworld. But it is power that comes with a price tag -attached, and the cost is measured in performance speed. Each shader phase that affects the appearance of a texture causes the Q3:Aengine to make another processing pass and redraw the world. Think of it as if you were adding all -the shader-affected triangles to the total r_speed count for each stage in the shader script. A shader-manipulated texture that is seen through another shader-manipulated texture (e.g. a light in fog) has the effect of adding the total number of passes together for the affected triangles. A light that required two passes seen through a fog that requires one pass will be treated as having to redraw that part of the world three times. - -

2.4.3 RGB Color
- -RGB means "Red, Green, Blue."Mixing red, green and blue light in differing intensities creates the colors in computers and television monitors. This is called additive color (as opposed to the mixing of pigments in paint or colored ink in the printing process, which is subtractive color). In Quake III Arena and most higher-end computer art programs (and the color selector in Windows), the intensities ofthe individual Red, Green and Blue components are expressed as number values. When mixed together on a screen, number values of equal intensity in each component color create a completely neutral (gray) color. The lower the number value (towards 0), the darker the shade. The higher the value, the lighter the shade or the more saturated the color until it reaches a maximum value of 255 (in the art programs). All colors possible on the computer can be expressed as a formula of three numbers. The value for complete black is 0 0 0. The value for complete white is 255 255 255. However, the QuakeIII Arena graphics engine requires that the color range be "normalized" into a range between 0.0 and 1.0. - -

2.4.4 Normalization: a Scale of 0 to 1
-The mathematics in Quake III Arena use a scale of 0.0 to 1.0 instead of 0 to 255. Most computer art programs that can express RGB values as numbers use the 0 to 255 scale. To convert numbers, divide each of the artprogram's values for the component colors by 255. The resulting three values are your Quake III Arena formula for that color component. The same holds true for texture coordinates. - -

2.4.5 Texture Sizes
-TGA texture files are measured in pixels (picture elements). Textures are measured in powers of 2, with 16 x16 pixels being the smallest (typically) texture in use. Most will be larger. Textures need not be square, so long as both dimensions are powers of 2. Examples include: 32x256, 16x32, 128x16. - -

2.4.6 Color Math
- -In Quake III Arena , colors are changed by mathematical equations worked on the textures by way ofthe scripts or -"programlets" in the shader file. An equation that adds to or multiplies the number values in atexture causes it to become -darker. Equations that subtract from or modulate number values in a texture cause it to become lighter. Either equation can change the hue and saturation of a color. - -

2.4.7 Measurements
- -The measurements used in the shaders are in either game units, color units, or texture units. - -

· Game unit: A game unit is used by deformations to specify sizes relative to the world. Game units are the same scale we have had since way back in the Wolfensteindays - 8 units equals one foot. The default texture scale used by the Q3Radiant map editor results in two texels for each game unit, but that can be freely changed. - -

· Color units: Colors scale the values generated by the texture units to produce lighting effects. A value of 0.0 will be completely black, and a value of 1.0 will leave the texture unchanged. Colors are sometimes specified with a single value to be used across all red, green,and blue channels, or sometimes as separate values for each channel. - -

· Texture units: This is the normalized (see above) dimensions of the original texture image (or a previously modified texture at a given stage in the shader pipeline). A full texture, regardless of its original size in texels, has a normalized measurement of 1.0 x 1.0. For normal repeating textures, it is possible to have value greater than 1.0 or less than 0.0, resulting in repeating of the texture. The coordinates are usually assigned by the level editor or -modeling tools, but you still need to be aware of this for scrolling or turbulent movement of the texture at runtime. - -

2.4.8 Waveform Functions
-Many of the shader functions use waveforms to modulate measurements over time. Where appropriate, additional information is provided with wave modulated keyword functions to describe the effect of a particular waveform on that process. Currently there are five waveforms in use in Q3A shaders: - -

Sin: Sin standsfor sine wave, a regular smoothly flowing wave ranging from -1 to 1. -
Triangle: Triangle is a wave with a sharp ascent and a sharp decay, ranging from 0 to 1.It will make a choppy looking wave forms. -
Square: A squarewave simply switches from -1 to 1 with no in-between. -
Sawtooth: In the sawtooth wave, the ascent is like a triangle wave from 0 to 1, but the decay cuts off sharply back to 0. -
Inversesawtooth: This is the reverse of the sawtooth… instant ascent to the peak value (1), then a triangle wave descent to the valley value (0). The phase on this goes from 1.0 to 0.0 instead of 0.0 to 1.0. This wave is particularly usefulfor additive cross-fades. - -

Waveforms all have thefollowing properties: -
<base> Where the wave form begins. Amplitude is measured from this base value. -
<amplitude> This is the height of the wave created, measured from the base. You will probably need to test and tweak this value to get it correct for each new shader stage. The greater the amplitude, the higher the wave peaks and the deeper the valleys. -
<phase> This is a normalized value between 0.0 and 1.0. Changing phase to a non-zero value affects the point on the wave at which the wave form initially begins to be plotted. Example: In Sin or Triangle wave, a phase of 0.25 means it begins one fourth (25%) of the way along the curve, or more simply put, it begins at the peak of the wave. A phaseof 0.5 would begin at the point the wave re-crosses the base line. A phase of 0.75 would be at the lowest point of the valley. If only one wave form is being used in a shader, a phase shift will probably not be noticed and phase should have a value of zero (0). However, including two or more stages of the same process in a single shader, but with the phases shifted can be used to create interesting visual effects. Example: using rgbGen in two stages with different colors and a 0.5 difference in phase would cause the manipulated texture to modulate between two distinct colors. Phase changes can also be used when you have two uses of the same effect near each other, and you don't want them to be synchronized. You would write a separate shader for each, changing only the phase value. -
<freq>Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of 1 -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/entries deleted file mode 100644 index cc0841e3..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/ch02 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg2_1.htm -file - - - - -2012-04-01T16:52:34.807441Z -000690185532902146a8ac7d9c474305 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -16335 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base deleted file mode 100644 index 369f1457..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/.svn/text-base/pg2_1.htm.svn-base +++ /dev/null @@ -1,222 +0,0 @@ - - -Quake III Arena Shader Manual: General Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

3 General Shader Keywords

-IMPORTANT NOTE: Once again, be aware that some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined inthis section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

These Keywords are global to a shader and affect all stages. They are also ignored by Q3MAP. - -

3.1 skyParms <farbox> <cloudheight> <nearbox>

- -Specifies how to use the surface as a sky, including an optional far box (stars, moon, etc), optional cloud layers with any shader attributes, and an optional near box (mountains in front of the clouds, etc). - -

<farbox> Specifies a set of files to use as an environment box behind all cloudlayers. Specify "-" for no -farbox, or a file base name. A base name of "env/test" would look for files "env/test_rt.tga", "env/test_lf.tga", -"env/test_ft.tga", "env/test_bk.tga", "env/test_up.tga", "env/test_dn.tga" to use as the right / left / front / back / up / -down sides. - -
<cloudheight> controls apparent curvature of the cloud layers - lower numbers mean more curvature (and thus more distortion at the horizons). Higher height values create "flatter" skies with less horizon distortion. Think of height -as the radius of a sphere on which the clouds are mapped. Good ranges are 64 to 256. The default value is 128. - -
<nearbox> Specified as farbox, to be alpha blended ontop of the clouds. This has not be tested in a long time, so it probably doesn't actually work. Set to "-" to ignore. - -

Design Notes: - -
  • If you are making a map where the sky is seen by looking up most of the time, use a lower cloudheight value. Under those circumstances the tighter curve looks more dynamic. If you are making a map where the sky is seen by looking out windows most of the time or has a map area that is open to the sky on one or more sides, use a higher height to make the clouds seem more natural. - -
  • It is possible to create a sky with up to 8 cloudlayers, but that also means 8 processing passes and a potentially large processing hit. - -
  • Be aware that the skybox does not wrap around the entire world. The "floor" or bottom face of the skybox is not drawn by the game. If a player in the game can see that face, they will see the "hall of mirrors" effect.
- -

Example: Sky script - -

textures/skies/xtoxicsky_dm9
-{
-	qer_editorimage textures/skies/toxicsky.tga
-	surfaceparm noimpact
-	surfaceparm nolightmap
-q3map_globaltexture
-q3map_lightsubdivide 256
-	q3map_surfacelight 400
-	surfaceparm sky
-	q3map_sun 1 1 0.5 150 30 60
-	skyparms full 512 -
-	{
-		map textures/skies/inteldimclouds.tga
-		tcMod scroll 0.1 0.1
-		tcMod scale 3 2
-	}
-	{
-		map textures/skies/intelredclouds.tga
-		blendFunc add
-		tcMod scroll 0.05 0.05
-		tcMod scale 3 3
-	}
-}
-
- -

3.2 cull <side>

-Every surface of a polygon has two sides, a front and a back. Typically, we only see the front or "out" side. For -example, a solid block you only show the front side. In many applications we see both. For example, in water, you can see both front and a back. The same is true for things like grates and screens. - -

To "cull" means to remove. The value parameter determines the type of face culling to apply. The default value is cull front if this keyword is not specified. However for items that should be inverted then the value back should be used. To disable culling, the value disable ornone should be used. Only one cull instruction can be set -for the shader. - -

3.2.1 cull front
- -The front or "outside" of the polygon is not drawn in the world. This is the default value. It is used if the keyword "cull " appears in the content instructions without a <side>value or if the keyword cull does not appear at all in the shader. - -

3.2.2 cull back
- -Cull back removes the back or "inside" of a polygon from being drawn in the world. - -

3.2.3 cull disable, cull none
-Neither side of the polygon is removed. Both sides are drawn in the game. Very useful for making panels or barriers that -have no depth, such as grates, screens, metal wire fences and so on and for liquid volumes that the player can see from within. Also used for energy fields, sprites, and weapon effects (e.g. plasma). - -

Design Notes: For things like grates and screens, put the texture with the cull none property on one face only. On the other faces, use a non-drawing texture.
- -

3.3 deformVertexes

- -This function performs a general deformation on the surface's vertexes, changing the actual shape of the surface before drawing the shader passes. You can stack multiple deformVertexes commands to modify positions in more complex ways, making an object move in two dimensions, for instance. - -

3.3.1 -deformVertexes wave <div> <func> -<base><amplitude> <phase> <freq>
- -Designed for water surfaces, modifying the values differently at each point. It accepts the standard wave functions of the type sin,triangle, square, sawtooth orinversesawtooth . The "div" parameter is used to -control the wave "spread" - a value equal to the tessSizeof the surface is a good default value (tessSize is subdivision size, in game units, used for the shader when seen in the game world). - -

3.3.2 -deformVertexes normal <div> <func> -<base><amplitude ~0.1-~0.5> <frequency -~1.0-~4.0>
- -This deformation affects the normals of a vertex without actually moving it, which will effect later shader options like -lighting and especially environment mapping. If the shader stages don't use normals in any of their calculations, there will -be novisible effect. - -

Design Notes: Putting values of 0.1 to 0.5 in Amplitude and 1.0 to 4.0 in the Frequency can produce some satisfying results. Some things that have been done with it: A small fluttering bat, falling leaves, rain, flags.
- -

3.3.3 -deformVertexes bulge <bulgeWidth> -<bulgeHeight><bulgeSpeed>
- -This forces a bulge to move along the given s and t directions. Designed for use on curved pipes. - -

Specific parameter definitions for deform keywords: - -
<div> This is roughly defined as the size of the waves that occur. It is measured in game units. Smaller -values create agreater density of smaller wave forms occurring in a given area. Larger values create a lesser density of waves, or otherwise put, the appearance of larger waves. To look correct this value should closely correspond to the value (in pixels) set for tessSize (tessellation size) of the texture. A value of 100.0 is a good default value (which means your tessSize should be close to that for things tolook "wavelike"). - -
<func> This is the type of wave form being created. Sin stands for sine wave, a regular smoothly flowing -wave. Triangle is a wave with a sharp ascent and a sharp decay. It will make a choppy looking wave forms. A square -wave is simply on or off for the period of the frequency with no in between. The sawtooth wave has the ascent of a triangle wave, but has the decay cut off sharply like a square wave. An inversesawtooth wave reverses this. - -
<base> This is the distance, in game units that the apparent surface of the texture is displaced from the -actual surface of the brush as placed in the editor. Apositive value appears above the brush surface. A negative value appears below the brush surface. An example of thisis the Quad effect, which essentially is a shell with a positive base value to stand it away from the model surface and a 0 (zero) value for amplitude. - -
<amplitude> The distance that the deformation moves away from the base value. See Wave Forms in the introduction for a description of amplitude. - -
<phase> SeeWave Forms in the introduction for a description of phase) -
<frequency> See Wave Forms in the introduction for a description of frequency) - -

Design Note: The div and amplitude parameters, when used in conjunction with liquid volumes like water should take into consideration how much the water will be moving. A large ocean area would have have massive swells (big div values) that rose and fell dramatically (big amplitude values). While a small, quiet pool may move very little.
- -

3.3.4 -deformVertexes move<x> <y> <z> <func> -<base> <amplitude> <phase> <freq>
- -This keyword is used to make a brush, curve patch or md3model appear to move together as a unit. The <x> <y> -and <z> values are the distance and direction in game units the object appears to move relative to it's point of origin in the map. - -

The <func> <base> <amplitude><phase> and <freq> values are the same as found in other wave -form manipulations. - -

The product of the function modifies the values x, y, and z.Therefore, if you have an amplitude of 5 and an x value of 2, the object will travel 10 units from its point of origin along the x axis. This results in a total of 20 units of motion along the x axis, since the amplitude is the variation both above and below the base. - -

It must be noted that an object made with this shader does not actually change position, it only appears to. - -

Design Note: If an object is made up of surfaces with different shaders, all must have matching deformVertexes move values or the object will appear to tear itself apart.
- -

3.3.5 -DeformVertexes autosprite
- -This function can be used to make any given triangle quad (pair of triangles that form a square rectangle) automatically behave like a sprite without having to make it a separate entity. This means that the "sprite" on which the texture is placed will rotate to always appear at right angles to the player's view as a sprite would. Any four-sided brush side, flat patch, or pair of triangles in an .md3 model can have the autosprite effect on it. The brush face containing a texture with this shader keyword must besquare. - -

Design Note :This is best used on objects that would appear the same regardless of viewing angle. An example might be a glowing light flare.
- -

3.3.6 -DeformVertexes autosprite2
- -Is a slightly modified "sprite" that only rotates around the middle of its longest axis. This allows you to make a -pillar of fire that you can walk around, or an energy beam stretched across the room. - -

3.4 fogparms <red -value> <green value> <bluevalue> <distance to -Opaque>

- -

Note: you must also specify "surfaceparm fog" to cause q3map to identify the surfaces inside the volume. Fogparms only -describes how to render the fog on the surfaces. - -

<red value> <green value> <blue value> These are normalized values. A good computer art program should give you the RGB values for a color. To obtain the values that define fog color for Quake III Arena, divide the desired color's Red, Green and Blue values by 255 to obtain three normalized numbers within the 0.0 to 1.0 range. - -
<distance toopaque> This is the distance, in game units, until the fog becomes totally opaque, as measured from the point of view of the observer. By making the height of the fog brush shorter than the distance to opaque, the apparent density of the fog can be reduced (because it never reaches the depth at which full opacity occurs). - -

  • The fog volume can only have one surface visible (from outside the fog). -
  • Fog must be made of one brush. It cannot be made of adjacent brushes. -
  • Fog brushes must be axial. This means that only square or rectangular brushes may contain fog, and those must have their edges drawn along the axes of the map grid (all 90 degree angles). -
- -

Design Notes: - -
  • If a water texture contains a fog parameter, it must be treated as if it were a fog texture when in use. -
  • If a room is to be filled completely with a fog volume,it can only be entered through one surface (and still have the fog function correctly). -
  • Additional shader passes may be placed on a fog brush, as with other brushes.
- -

3.5 nopicmip

-This causes the texture to ignore user-set values for the r_picmip cvar command. The image will always be high -resolution. Example: Used to keep images and text in the heads up display from blurring when user optimizes the game graphics. - -

3.6 nomipmaps

-This implies nopicmip, but also prevents the generation of any lower resolution mipmaps for use by the 3d card. This will -cause the texture to alias when it gets smaller, but there are some cases where you would rather have this than a blurry image. Sometimes thin slivers of triangles force things to very low mipmap levels, which leave a few constant pixels on otherwise scrolling special effects. - -

3.7 polygonOffset

-Surfaces rendered with the polygonOffset keyword are rendered slightly off the polygon's surface. This is typically -used for wall markings and "decals." The distance between the offset and the polygon is fixed. It is not a variable in QuakeIII Arena. - -

3.8 portal

-Specifies that this texture is the surface for a portal or mirror. In the game map, a portal entity must be placed directly in front of the texture (within 64 game units). All this does is set "sortportal", so it isn't needed if you specify -that explicitly. - -

3.9 sort <value>

-Use this keyword to fine-tune the depth sorting of shaders as they are compared against other shaders in the game world. The -basic concept is that if there is a question or a problem with shaders drawing in the wrong order against each other, this allows the designer to create a hierarchy ofwhich shader draws in what order. - -

The default behavior is to put all blended shaders in sort "additive" and all other shaders in sort "opaque", so you only -need to specify this when you are trying to work around a sorting problem with multiple transparent surfaces in a scene. - -

The value here can be either a numerical value or one of the keywords in the following list (listed in order of ascending priority): - -

    portal (1): This surface is a portal, it draws over every other shader seen inside the portal, but before anything in the main view. - -
    Sky (2): Typically, the sky is the farthest surface in the game world. Drawing this after other opaque surfaces can be an optimization on some cards. This currently has the wrong value for this purpose, so it doesn't do much of anything. - -
    Opaque (3):This surface is opaque (rarely needed since this is the default with noblendfunc) - -
    Banner (6) :Transparent, but very close to walls. - -
    Underwater (8): Draw behind normal transparent surfaces. - -
    Additive (9): normal transparent surface (default for shaders with blendfuncs) -
    nearest (16):this shader should always sort closest to the viewer, e.g. muzzle flashes and blend blobs
-

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm deleted file mode 100644 index 369f1457..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch02/pg2_1.htm +++ /dev/null @@ -1,222 +0,0 @@ - - -Quake III Arena Shader Manual: General Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

3 General Shader Keywords

-IMPORTANT NOTE: Once again, be aware that some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined inthis section) at the very beginning of the shader and to place shader stages at the end (see various examples). - -

These Keywords are global to a shader and affect all stages. They are also ignored by Q3MAP. - -

3.1 skyParms <farbox> <cloudheight> <nearbox>

- -Specifies how to use the surface as a sky, including an optional far box (stars, moon, etc), optional cloud layers with any shader attributes, and an optional near box (mountains in front of the clouds, etc). - -

<farbox> Specifies a set of files to use as an environment box behind all cloudlayers. Specify "-" for no -farbox, or a file base name. A base name of "env/test" would look for files "env/test_rt.tga", "env/test_lf.tga", -"env/test_ft.tga", "env/test_bk.tga", "env/test_up.tga", "env/test_dn.tga" to use as the right / left / front / back / up / -down sides. - -
<cloudheight> controls apparent curvature of the cloud layers - lower numbers mean more curvature (and thus more distortion at the horizons). Higher height values create "flatter" skies with less horizon distortion. Think of height -as the radius of a sphere on which the clouds are mapped. Good ranges are 64 to 256. The default value is 128. - -
<nearbox> Specified as farbox, to be alpha blended ontop of the clouds. This has not be tested in a long time, so it probably doesn't actually work. Set to "-" to ignore. - -

Design Notes: - -
  • If you are making a map where the sky is seen by looking up most of the time, use a lower cloudheight value. Under those circumstances the tighter curve looks more dynamic. If you are making a map where the sky is seen by looking out windows most of the time or has a map area that is open to the sky on one or more sides, use a higher height to make the clouds seem more natural. - -
  • It is possible to create a sky with up to 8 cloudlayers, but that also means 8 processing passes and a potentially large processing hit. - -
  • Be aware that the skybox does not wrap around the entire world. The "floor" or bottom face of the skybox is not drawn by the game. If a player in the game can see that face, they will see the "hall of mirrors" effect.
- -

Example: Sky script - -

textures/skies/xtoxicsky_dm9
-{
-	qer_editorimage textures/skies/toxicsky.tga
-	surfaceparm noimpact
-	surfaceparm nolightmap
-q3map_globaltexture
-q3map_lightsubdivide 256
-	q3map_surfacelight 400
-	surfaceparm sky
-	q3map_sun 1 1 0.5 150 30 60
-	skyparms full 512 -
-	{
-		map textures/skies/inteldimclouds.tga
-		tcMod scroll 0.1 0.1
-		tcMod scale 3 2
-	}
-	{
-		map textures/skies/intelredclouds.tga
-		blendFunc add
-		tcMod scroll 0.05 0.05
-		tcMod scale 3 3
-	}
-}
-
- -

3.2 cull <side>

-Every surface of a polygon has two sides, a front and a back. Typically, we only see the front or "out" side. For -example, a solid block you only show the front side. In many applications we see both. For example, in water, you can see both front and a back. The same is true for things like grates and screens. - -

To "cull" means to remove. The value parameter determines the type of face culling to apply. The default value is cull front if this keyword is not specified. However for items that should be inverted then the value back should be used. To disable culling, the value disable ornone should be used. Only one cull instruction can be set -for the shader. - -

3.2.1 cull front
- -The front or "outside" of the polygon is not drawn in the world. This is the default value. It is used if the keyword "cull " appears in the content instructions without a <side>value or if the keyword cull does not appear at all in the shader. - -

3.2.2 cull back
- -Cull back removes the back or "inside" of a polygon from being drawn in the world. - -

3.2.3 cull disable, cull none
-Neither side of the polygon is removed. Both sides are drawn in the game. Very useful for making panels or barriers that -have no depth, such as grates, screens, metal wire fences and so on and for liquid volumes that the player can see from within. Also used for energy fields, sprites, and weapon effects (e.g. plasma). - -

Design Notes: For things like grates and screens, put the texture with the cull none property on one face only. On the other faces, use a non-drawing texture.
- -

3.3 deformVertexes

- -This function performs a general deformation on the surface's vertexes, changing the actual shape of the surface before drawing the shader passes. You can stack multiple deformVertexes commands to modify positions in more complex ways, making an object move in two dimensions, for instance. - -

3.3.1 -deformVertexes wave <div> <func> -<base><amplitude> <phase> <freq>
- -Designed for water surfaces, modifying the values differently at each point. It accepts the standard wave functions of the type sin,triangle, square, sawtooth orinversesawtooth . The "div" parameter is used to -control the wave "spread" - a value equal to the tessSizeof the surface is a good default value (tessSize is subdivision size, in game units, used for the shader when seen in the game world). - -

3.3.2 -deformVertexes normal <div> <func> -<base><amplitude ~0.1-~0.5> <frequency -~1.0-~4.0>
- -This deformation affects the normals of a vertex without actually moving it, which will effect later shader options like -lighting and especially environment mapping. If the shader stages don't use normals in any of their calculations, there will -be novisible effect. - -

Design Notes: Putting values of 0.1 to 0.5 in Amplitude and 1.0 to 4.0 in the Frequency can produce some satisfying results. Some things that have been done with it: A small fluttering bat, falling leaves, rain, flags.
- -

3.3.3 -deformVertexes bulge <bulgeWidth> -<bulgeHeight><bulgeSpeed>
- -This forces a bulge to move along the given s and t directions. Designed for use on curved pipes. - -

Specific parameter definitions for deform keywords: - -
<div> This is roughly defined as the size of the waves that occur. It is measured in game units. Smaller -values create agreater density of smaller wave forms occurring in a given area. Larger values create a lesser density of waves, or otherwise put, the appearance of larger waves. To look correct this value should closely correspond to the value (in pixels) set for tessSize (tessellation size) of the texture. A value of 100.0 is a good default value (which means your tessSize should be close to that for things tolook "wavelike"). - -
<func> This is the type of wave form being created. Sin stands for sine wave, a regular smoothly flowing -wave. Triangle is a wave with a sharp ascent and a sharp decay. It will make a choppy looking wave forms. A square -wave is simply on or off for the period of the frequency with no in between. The sawtooth wave has the ascent of a triangle wave, but has the decay cut off sharply like a square wave. An inversesawtooth wave reverses this. - -
<base> This is the distance, in game units that the apparent surface of the texture is displaced from the -actual surface of the brush as placed in the editor. Apositive value appears above the brush surface. A negative value appears below the brush surface. An example of thisis the Quad effect, which essentially is a shell with a positive base value to stand it away from the model surface and a 0 (zero) value for amplitude. - -
<amplitude> The distance that the deformation moves away from the base value. See Wave Forms in the introduction for a description of amplitude. - -
<phase> SeeWave Forms in the introduction for a description of phase) -
<frequency> See Wave Forms in the introduction for a description of frequency) - -

Design Note: The div and amplitude parameters, when used in conjunction with liquid volumes like water should take into consideration how much the water will be moving. A large ocean area would have have massive swells (big div values) that rose and fell dramatically (big amplitude values). While a small, quiet pool may move very little.
- -

3.3.4 -deformVertexes move<x> <y> <z> <func> -<base> <amplitude> <phase> <freq>
- -This keyword is used to make a brush, curve patch or md3model appear to move together as a unit. The <x> <y> -and <z> values are the distance and direction in game units the object appears to move relative to it's point of origin in the map. - -

The <func> <base> <amplitude><phase> and <freq> values are the same as found in other wave -form manipulations. - -

The product of the function modifies the values x, y, and z.Therefore, if you have an amplitude of 5 and an x value of 2, the object will travel 10 units from its point of origin along the x axis. This results in a total of 20 units of motion along the x axis, since the amplitude is the variation both above and below the base. - -

It must be noted that an object made with this shader does not actually change position, it only appears to. - -

Design Note: If an object is made up of surfaces with different shaders, all must have matching deformVertexes move values or the object will appear to tear itself apart.
- -

3.3.5 -DeformVertexes autosprite
- -This function can be used to make any given triangle quad (pair of triangles that form a square rectangle) automatically behave like a sprite without having to make it a separate entity. This means that the "sprite" on which the texture is placed will rotate to always appear at right angles to the player's view as a sprite would. Any four-sided brush side, flat patch, or pair of triangles in an .md3 model can have the autosprite effect on it. The brush face containing a texture with this shader keyword must besquare. - -

Design Note :This is best used on objects that would appear the same regardless of viewing angle. An example might be a glowing light flare.
- -

3.3.6 -DeformVertexes autosprite2
- -Is a slightly modified "sprite" that only rotates around the middle of its longest axis. This allows you to make a -pillar of fire that you can walk around, or an energy beam stretched across the room. - -

3.4 fogparms <red -value> <green value> <bluevalue> <distance to -Opaque>

- -

Note: you must also specify "surfaceparm fog" to cause q3map to identify the surfaces inside the volume. Fogparms only -describes how to render the fog on the surfaces. - -

<red value> <green value> <blue value> These are normalized values. A good computer art program should give you the RGB values for a color. To obtain the values that define fog color for Quake III Arena, divide the desired color's Red, Green and Blue values by 255 to obtain three normalized numbers within the 0.0 to 1.0 range. - -
<distance toopaque> This is the distance, in game units, until the fog becomes totally opaque, as measured from the point of view of the observer. By making the height of the fog brush shorter than the distance to opaque, the apparent density of the fog can be reduced (because it never reaches the depth at which full opacity occurs). - -

  • The fog volume can only have one surface visible (from outside the fog). -
  • Fog must be made of one brush. It cannot be made of adjacent brushes. -
  • Fog brushes must be axial. This means that only square or rectangular brushes may contain fog, and those must have their edges drawn along the axes of the map grid (all 90 degree angles). -
- -

Design Notes: - -
  • If a water texture contains a fog parameter, it must be treated as if it were a fog texture when in use. -
  • If a room is to be filled completely with a fog volume,it can only be entered through one surface (and still have the fog function correctly). -
  • Additional shader passes may be placed on a fog brush, as with other brushes.
- -

3.5 nopicmip

-This causes the texture to ignore user-set values for the r_picmip cvar command. The image will always be high -resolution. Example: Used to keep images and text in the heads up display from blurring when user optimizes the game graphics. - -

3.6 nomipmaps

-This implies nopicmip, but also prevents the generation of any lower resolution mipmaps for use by the 3d card. This will -cause the texture to alias when it gets smaller, but there are some cases where you would rather have this than a blurry image. Sometimes thin slivers of triangles force things to very low mipmap levels, which leave a few constant pixels on otherwise scrolling special effects. - -

3.7 polygonOffset

-Surfaces rendered with the polygonOffset keyword are rendered slightly off the polygon's surface. This is typically -used for wall markings and "decals." The distance between the offset and the polygon is fixed. It is not a variable in QuakeIII Arena. - -

3.8 portal

-Specifies that this texture is the surface for a portal or mirror. In the game map, a portal entity must be placed directly in front of the texture (within 64 game units). All this does is set "sortportal", so it isn't needed if you specify -that explicitly. - -

3.9 sort <value>

-Use this keyword to fine-tune the depth sorting of shaders as they are compared against other shaders in the game world. The -basic concept is that if there is a question or a problem with shaders drawing in the wrong order against each other, this allows the designer to create a hierarchy ofwhich shader draws in what order. - -

The default behavior is to put all blended shaders in sort "additive" and all other shaders in sort "opaque", so you only -need to specify this when you are trying to work around a sorting problem with multiple transparent surfaces in a scene. - -

The value here can be either a numerical value or one of the keywords in the following list (listed in order of ascending priority): - -

    portal (1): This surface is a portal, it draws over every other shader seen inside the portal, but before anything in the main view. - -
    Sky (2): Typically, the sky is the farthest surface in the game world. Drawing this after other opaque surfaces can be an optimization on some cards. This currently has the wrong value for this purpose, so it doesn't do much of anything. - -
    Opaque (3):This surface is opaque (rarely needed since this is the default with noblendfunc) - -
    Banner (6) :Transparent, but very close to walls. - -
    Underwater (8): Draw behind normal transparent surfaces. - -
    Additive (9): normal transparent surface (default for shaders with blendfuncs) -
    nearest (16):this shader should always sort closest to the viewer, e.g. muzzle flashes and blend blobs
-

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/entries deleted file mode 100644 index 888ad355..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/ch03 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg3_1.htm -file - - - - -2012-04-01T16:52:35.235465Z -577330f6718c5e9d2a8edc967ca8b3d3 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -13832 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base deleted file mode 100644 index 57a8ea90..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/.svn/text-base/pg3_1.htm.svn-base +++ /dev/null @@ -1,197 +0,0 @@ - - -Quake III Arena Shader Manual: Specific Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

4 Q3MAP Specific Shader Keywords

-These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader. - -

4.1 tessSize <amount>

-For consistency's sake, this really should have been called q3map_tessSize. But it wasn't. The tessSize shader controls -the tessellation size (how finely a surface is chopped up in to triangles), in game units, of the surface. This is only -applicable to solid brushes, not curves, and is generally only used on surfaces that are flagged with the deformVertexes keyword. Abuse of this can create a huge number of triangles. This happens during q3map processing, so maps must be reprocessed for changes to take effect. - -

Design Note: It can also be used on tesselating surfaces to make sure that tesselations arelarge, and thus, less costly in terms of triangles created.
- -

4.2 q3map_backshader <shadername>

-This allows a brush to use a different shader when you are inside it looking out. By way of example, this would allow a water brush (or other) surfaces to have a different sort order (see sort above) or appearance when seen from the inside. - -

4.3 q3map_globaltexture

-Use this shader in the global keyword commands whenever the tcMod scale function is used in one of the later render stages. Many problems with getting shader effects to work across multiple adjacent brushes are a result of the way q3map optimizes texture precision. This option resolves that, but at the expense of some precision of the textures when they are far away from the origin of the map. - -

4.4 q3map_sun <red> <green> <blue> <intensity> <degrees> <elevation>

-This keyword in a sky shader will create the illusion of light cast into a map by a single, infinitely distance light source (sun, moon, hellish fire, etc.). This is only processed during the lighting phase of q3map. - -

<red><green> <blue> Color is described by three normalized rgbvalues. Color will be normalized to a 0.0 to 1.0 range, so it doesn't matter what range you use. - -
<intensity> is the brightness of the generated light. A value of 100 is a fairly bright sun. The -intensity of the light falls off with angle but not distance. - -
<degrees> is the angle relative to the directions on the map file. A setting of 0 degrees equals east. 90 -isnorth, 180 is west and 270 is south. - -
<elevation> is the distance, measured in degrees from the horizon (z value of zero in the map file). An -elevation of 0 is sunrise/sunset. An elevation of 90 is noon. - -

DESIGN NOTE: Sky shaders should probably still have aq3map_surfacelight value. The "sun" gives a strong directional light, but doesn't necessarily give the fill light needed to soften and illuminate shadows. Skies with clouds should probably have a weaker q3map_sunvalue and a higher q3map_surfacelight value. Heavy clouds diffuse light and weaken shadows. The opposite is true of a cloudless or nearly cloudless sky. Insuch cases, the "sun" or "moon" will cast stronger, shadows that have a greater degree of contrast. - -

Design Trick: Not certain what color formula you want to use for the sun's light? Try this. Create a light entity. Use the Q3Radiant editor's color selection tools to pick a color. The light's _color key's value will be the normalized RGB formula. Copy it from the value line in the editor (CTRL+c) and paste it into your shader.

- -

4.5 q3map_surfaceLight <light value>

- -The texture gives off light equal to the <light value> set for it. The relative surface area of the texture in the world affects the actual amount of light that appears to be radiated. To give off what appears to be the same amount -of light, a smaller texture must be significantly brighter than a larger texture. Unless the qer_lightimage keyword is used to select a different source for the texture's light color information, the color of the light will be the averaged color of the texture. - -

4.6 q3map_lightimage <texturepath/texturename>

-The keyword q3map_lightimage generates lighting from the average color of the TGA image specified by the -q3map_lightimage. - -

The keyword sequence for generating light on a q3map_surfacelight should be ordered as follows: - -

  1. q3map_lightimage ; (the texture providing the light and the color of the light) -
  2. qer_editorimage ; (the editor-only image used to select the source map for the texture) -
  3. the average color of the light emitted from the shader is calculated from the lightimage.)
- -

The reason q3map_lightimageis specified for the light in the example below, is because the blend map is predominantly yellow, and the designer wanted more yellow light to be emitted from the light. - -

Example: Taking light from another source texture - -

-textures/eerie/ironcrosslt2_10000
-{
-q3map_lightimagetextures/gothic_light/ironcrosslt2.blend.tga
-// this TGA is the source for the color of the blended light
-
-qer_editorimagetextures/gothic_light/ironcrosslt2.tga
-//base TGA (used because the shader is used with several
-// different light values
-
-q3map_surfacelight 10000
-//emitted light value of10,000
-
-{
-map $lightmap
-//source texture is affected by the lightmap
-rgbGen identity
-// this command handles the overbright bits created by "sunlight"
-// in the game
-}
-{
-maptextures/gothic_light/ironcrosslt2.tga
-blendFunc filter
-rgbGen identity
-}
-{
-maptextures/gothic_light/ironcrosslt2.blend.tga
-blendFunc add
-}
-}
-
- -

4.7 q3map_lightsubdivide <value>

-This allows the user to define how large, or small to make the subdivisions (triangles) in a textured surface, particularly aimed at light-emitting textures like skies. It defaults to 120 game units, but can be made larger (256 or 512) for sky boxes or smaller for light surfaces at the bottoms of cracks. This can be a dominant factor in processing time for q3map lighting. - -

4.8 surfaceparm <parm>

- -

All surfaceparm keywords are preceded by the word surfaceparm as follows: surfaceparm fogor surfaceparm noimpact. - -

4.8.1 alphashadow
-This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the q3map process to use the texture's alpha channel as a mask for casting static shadows in the game world. - -

Design Note: Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows.
- -

4.8.2 areaportal
-A brush marked with this keyword functions as an area portal, a break in the Q3MAP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing -surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the -areaportal. - -

4.8.3 clusterportal
-A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It -is typically placed in locations that are natural breaks in a map, such a sentrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the areaportal. - -

4.8.4 donotenter
-Read as "do not enter." Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect -non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features. - -

4.8.5 flesh
-This will cue different sounds (in a similar manner to metalsteps) and cause blood to appear instead of bullet impact flashes. - -

4.8.6 fog
-Fog defines the brush as being a "fog" brush. This is a Q3MAP function that chops and identifies all geometry inside the -brush. The General shader keyword fogparms must also be specified to tell how to draw the fog. - -

4.8.7 lava
- -

Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush. - -

4.8.8 metalsteps
-The player sounds as if he is walking on clanging metal steps or gratings. Other than specifiying flesh, metalsteps, nosteps, or default (i.e. specify nothing) it is currently not possible for a designer to create or assign a specific sound routine to a texture. Note: If no sound is set for a texture, then the default footsteps sound routines are heard. - -

4.8.9 nodamage
-The player takes no damage if he falls onto a texture with this surfaceparm - -

4.8.10 nodlight
-Read as "No DeeLight". A texture containing this parameter will not be affected or lit by dynamic lights, such as -weapon effects. And example in Quake III Arena would be solid lava. - -

4.8.11 nodraw
-A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin -brushes, and so on. - -

4.8.12 nodrop
-When a player dies inside a volume (brush) marked nodrop, no weapon is dropped. The intend use isfor "Pits of Death." Have a kill trigger inside a nodrop volume, and when the players die here, they won't drop their weapons. The intent is to prevent unnecessary polygon pileups on the floors of pits. - -

4.8.13 noimpact
-World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks -will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave -marks. - -

4.8.14 nomarks
-Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. -This is useful to keep lights from being temporarily obscured by battle damage. - -

Design Note: Use this on any surface with a deformVertexes keyword. Otherwise, the marks will appear on the unmodified surface location of the texture with the surface wriggles and squirms through the marks.
- -

4.8.15 nolightmap
-This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not -require the addition of an rgbGen identity keyword in that stage. - -

4.8.16 nosteps
-The player makes no sound when walking on this texture. - -

4.8.17 nonsolid
-This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to -triggers, hint brushes and similar brushes. This affects the content of a brush. - -

4.8.18 origin
-Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be -rectangular (or square). The origin point is the exact center of the origin brush. - -

4.8.19 playerclip
-Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked -playerclip. The intended use for this is to block the player but not block projectiles like rockets. - -

4.8.20 slick
-This surfaceparm included in a texture should give it significantly reduced friction. - -

4.8.21 slime
-Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush. - -

4.8.22 structural
-This surface attribute causes a brush to be seen by the Q3MAP process as a possible break-point in a BSP tree. It is used -as a part of the shader for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by -default, structural, so you shouldn't need to specify this. - -

4.8.23 trans
-Tells q3map that pre-computed visibility should not be blocked by this surface. Generally, any shaders that have blendfuncs -should be marked as surfaceparm trans. - -

4.8.24 water
-Assigns to the texture the game properties for water. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm deleted file mode 100644 index 57a8ea90..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch03/pg3_1.htm +++ /dev/null @@ -1,197 +0,0 @@ - - -Quake III Arena Shader Manual: Specific Shader Keywords - - - -

Q3Radiant Shader Manual

-
-

4 Q3MAP Specific Shader Keywords

-These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader. - -

4.1 tessSize <amount>

-For consistency's sake, this really should have been called q3map_tessSize. But it wasn't. The tessSize shader controls -the tessellation size (how finely a surface is chopped up in to triangles), in game units, of the surface. This is only -applicable to solid brushes, not curves, and is generally only used on surfaces that are flagged with the deformVertexes keyword. Abuse of this can create a huge number of triangles. This happens during q3map processing, so maps must be reprocessed for changes to take effect. - -

Design Note: It can also be used on tesselating surfaces to make sure that tesselations arelarge, and thus, less costly in terms of triangles created.
- -

4.2 q3map_backshader <shadername>

-This allows a brush to use a different shader when you are inside it looking out. By way of example, this would allow a water brush (or other) surfaces to have a different sort order (see sort above) or appearance when seen from the inside. - -

4.3 q3map_globaltexture

-Use this shader in the global keyword commands whenever the tcMod scale function is used in one of the later render stages. Many problems with getting shader effects to work across multiple adjacent brushes are a result of the way q3map optimizes texture precision. This option resolves that, but at the expense of some precision of the textures when they are far away from the origin of the map. - -

4.4 q3map_sun <red> <green> <blue> <intensity> <degrees> <elevation>

-This keyword in a sky shader will create the illusion of light cast into a map by a single, infinitely distance light source (sun, moon, hellish fire, etc.). This is only processed during the lighting phase of q3map. - -

<red><green> <blue> Color is described by three normalized rgbvalues. Color will be normalized to a 0.0 to 1.0 range, so it doesn't matter what range you use. - -
<intensity> is the brightness of the generated light. A value of 100 is a fairly bright sun. The -intensity of the light falls off with angle but not distance. - -
<degrees> is the angle relative to the directions on the map file. A setting of 0 degrees equals east. 90 -isnorth, 180 is west and 270 is south. - -
<elevation> is the distance, measured in degrees from the horizon (z value of zero in the map file). An -elevation of 0 is sunrise/sunset. An elevation of 90 is noon. - -

DESIGN NOTE: Sky shaders should probably still have aq3map_surfacelight value. The "sun" gives a strong directional light, but doesn't necessarily give the fill light needed to soften and illuminate shadows. Skies with clouds should probably have a weaker q3map_sunvalue and a higher q3map_surfacelight value. Heavy clouds diffuse light and weaken shadows. The opposite is true of a cloudless or nearly cloudless sky. Insuch cases, the "sun" or "moon" will cast stronger, shadows that have a greater degree of contrast. - -

Design Trick: Not certain what color formula you want to use for the sun's light? Try this. Create a light entity. Use the Q3Radiant editor's color selection tools to pick a color. The light's _color key's value will be the normalized RGB formula. Copy it from the value line in the editor (CTRL+c) and paste it into your shader.

- -

4.5 q3map_surfaceLight <light value>

- -The texture gives off light equal to the <light value> set for it. The relative surface area of the texture in the world affects the actual amount of light that appears to be radiated. To give off what appears to be the same amount -of light, a smaller texture must be significantly brighter than a larger texture. Unless the qer_lightimage keyword is used to select a different source for the texture's light color information, the color of the light will be the averaged color of the texture. - -

4.6 q3map_lightimage <texturepath/texturename>

-The keyword q3map_lightimage generates lighting from the average color of the TGA image specified by the -q3map_lightimage. - -

The keyword sequence for generating light on a q3map_surfacelight should be ordered as follows: - -

  1. q3map_lightimage ; (the texture providing the light and the color of the light) -
  2. qer_editorimage ; (the editor-only image used to select the source map for the texture) -
  3. the average color of the light emitted from the shader is calculated from the lightimage.)
- -

The reason q3map_lightimageis specified for the light in the example below, is because the blend map is predominantly yellow, and the designer wanted more yellow light to be emitted from the light. - -

Example: Taking light from another source texture - -

-textures/eerie/ironcrosslt2_10000
-{
-q3map_lightimagetextures/gothic_light/ironcrosslt2.blend.tga
-// this TGA is the source for the color of the blended light
-
-qer_editorimagetextures/gothic_light/ironcrosslt2.tga
-//base TGA (used because the shader is used with several
-// different light values
-
-q3map_surfacelight 10000
-//emitted light value of10,000
-
-{
-map $lightmap
-//source texture is affected by the lightmap
-rgbGen identity
-// this command handles the overbright bits created by "sunlight"
-// in the game
-}
-{
-maptextures/gothic_light/ironcrosslt2.tga
-blendFunc filter
-rgbGen identity
-}
-{
-maptextures/gothic_light/ironcrosslt2.blend.tga
-blendFunc add
-}
-}
-
- -

4.7 q3map_lightsubdivide <value>

-This allows the user to define how large, or small to make the subdivisions (triangles) in a textured surface, particularly aimed at light-emitting textures like skies. It defaults to 120 game units, but can be made larger (256 or 512) for sky boxes or smaller for light surfaces at the bottoms of cracks. This can be a dominant factor in processing time for q3map lighting. - -

4.8 surfaceparm <parm>

- -

All surfaceparm keywords are preceded by the word surfaceparm as follows: surfaceparm fogor surfaceparm noimpact. - -

4.8.1 alphashadow
-This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the q3map process to use the texture's alpha channel as a mask for casting static shadows in the game world. - -

Design Note: Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows.
- -

4.8.2 areaportal
-A brush marked with this keyword functions as an area portal, a break in the Q3MAP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing -surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the -areaportal. - -

4.8.3 clusterportal
-A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It -is typically placed in locations that are natural breaks in a map, such a sentrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the areaportal. - -

4.8.4 donotenter
-Read as "do not enter." Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect -non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features. - -

4.8.5 flesh
-This will cue different sounds (in a similar manner to metalsteps) and cause blood to appear instead of bullet impact flashes. - -

4.8.6 fog
-Fog defines the brush as being a "fog" brush. This is a Q3MAP function that chops and identifies all geometry inside the -brush. The General shader keyword fogparms must also be specified to tell how to draw the fog. - -

4.8.7 lava
- -

Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush. - -

4.8.8 metalsteps
-The player sounds as if he is walking on clanging metal steps or gratings. Other than specifiying flesh, metalsteps, nosteps, or default (i.e. specify nothing) it is currently not possible for a designer to create or assign a specific sound routine to a texture. Note: If no sound is set for a texture, then the default footsteps sound routines are heard. - -

4.8.9 nodamage
-The player takes no damage if he falls onto a texture with this surfaceparm - -

4.8.10 nodlight
-Read as "No DeeLight". A texture containing this parameter will not be affected or lit by dynamic lights, such as -weapon effects. And example in Quake III Arena would be solid lava. - -

4.8.11 nodraw
-A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin -brushes, and so on. - -

4.8.12 nodrop
-When a player dies inside a volume (brush) marked nodrop, no weapon is dropped. The intend use isfor "Pits of Death." Have a kill trigger inside a nodrop volume, and when the players die here, they won't drop their weapons. The intent is to prevent unnecessary polygon pileups on the floors of pits. - -

4.8.13 noimpact
-World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks -will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave -marks. - -

4.8.14 nomarks
-Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. -This is useful to keep lights from being temporarily obscured by battle damage. - -

Design Note: Use this on any surface with a deformVertexes keyword. Otherwise, the marks will appear on the unmodified surface location of the texture with the surface wriggles and squirms through the marks.
- -

4.8.15 nolightmap
-This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not -require the addition of an rgbGen identity keyword in that stage. - -

4.8.16 nosteps
-The player makes no sound when walking on this texture. - -

4.8.17 nonsolid
-This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to -triggers, hint brushes and similar brushes. This affects the content of a brush. - -

4.8.18 origin
-Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be -rectangular (or square). The origin point is the exact center of the origin brush. - -

4.8.19 playerclip
-Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked -playerclip. The intended use for this is to block the player but not block projectiles like rockets. - -

4.8.20 slick
-This surfaceparm included in a texture should give it significantly reduced friction. - -

4.8.21 slime
-Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush. - -

4.8.22 structural
-This surface attribute causes a brush to be seen by the Q3MAP process as a possible break-point in a BSP tree. It is used -as a part of the shader for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by -default, structural, so you shouldn't need to specify this. - -

4.8.23 trans
-Tells q3map that pre-computed visibility should not be blocked by this surface. Generally, any shaders that have blendfuncs -should be marked as surfaceparm trans. - -

4.8.24 water
-Assigns to the texture the game properties for water. -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/entries deleted file mode 100644 index 66fcf20f..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/ch04 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg4_1.htm -file - - - - -2012-04-01T16:52:35.439477Z -41ea0bf8d0b205ba8fdfecb0e3df4e16 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -3166 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base deleted file mode 100644 index 52ce0ef5..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/.svn/text-base/pg4_1.htm.svn-base +++ /dev/null @@ -1,64 +0,0 @@ - - -Quake III Arena Shader Manual: Editor Specific Shader Instructions - - - -

Q3Radiant Shader Manual

-
-

5 Editor specific shader instructions

-These instructions only affect the texture when it is seen in the Q3Radiant editor. They should be grouped with the surface -parameters but ahead of them in sequence. - -

5.1 qer_editorimage <texture path/texturename>

-This keyword creates a shader name in memory, but in the editor, it displays the TGA art image specified in qer_editorimage (in the example below this is textures/eerie/lavahell.tga). - -

The editor maps a texture using the size attributes of the TGA file used for the editor image. When that editor image represents a shader, any texture used in any of the shader stages will be scaled up or down to the dimensions of the editor image. If a 128x128 pixel image is used to represent the shader in the editor, then a 256x256 image used in a later stage will be shrunk to fit. A 64x64 image would be stretched to fit. Be sure to check this on bouncy, acceleration, and power-uppads placed on surfaces other than 256 x 256. Use tcMod scale to change the size of the stretched -texture. Rememberthat tcMod scale 0.5 0.5 will double your image, while tcMod scale 2 2will halve it. - -

Design Notes: The base_light and gothic_light shaders contain numerous uses of this. It can be very useful for making different light styles (mostly to change the light brightnesses) without having to create a new piece of TGA art for each new shader.
- - -

textures/liquids/lavahell2//path and name of new texture
-{
-qer_editorimagetextures/eerie/lavahell.tga
-//based on this
-qer_nocarve
-//cannot be cut by CSG subtract
-surfaceparm noimpact
-//projectiles do not hitit
-surfaceparm lava
-//has the game properties of lava
-surfaceparm nolightmap
-//environment lighting does not affect
-q3map_surfacelight 3000
-//light is emitted
-tessSize 256
-//relatively large triangles
-cull disable
-//no sides are removed
-deformVertexes wave 100sin 5 5 .5 0.02
-fogparms 0.85191420.309723 0.0 128 128
-{
-maptextures/eerie/lavahell.tga
-//base texture artwork
-tcMod turb .25 0.2 1 0.02
-//texture is subjected to turbulence
-tcMod scroll 0.1 0.1
-//the turbulence is scrolled
-}
-}
-
- -

5.2 qer_nocarve

-A brush marked with this instruction will not be affected by CSG subtract functions. It is especially useful for water and fog textures. - -

5.3 qer_trans <value>

-This parameter defines the percentage of transparency that a brush will have when seen in the editor (no effect on game -rendering a tall). It can have a positive value between 0 and 1. The higher the value, the less transparent the texture. -Example: qer_trans 0.2 means the brush is 20% opaque and nearly invisible. - -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm deleted file mode 100644 index 52ce0ef5..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch04/pg4_1.htm +++ /dev/null @@ -1,64 +0,0 @@ - - -Quake III Arena Shader Manual: Editor Specific Shader Instructions - - - -

Q3Radiant Shader Manual

-
-

5 Editor specific shader instructions

-These instructions only affect the texture when it is seen in the Q3Radiant editor. They should be grouped with the surface -parameters but ahead of them in sequence. - -

5.1 qer_editorimage <texture path/texturename>

-This keyword creates a shader name in memory, but in the editor, it displays the TGA art image specified in qer_editorimage (in the example below this is textures/eerie/lavahell.tga). - -

The editor maps a texture using the size attributes of the TGA file used for the editor image. When that editor image represents a shader, any texture used in any of the shader stages will be scaled up or down to the dimensions of the editor image. If a 128x128 pixel image is used to represent the shader in the editor, then a 256x256 image used in a later stage will be shrunk to fit. A 64x64 image would be stretched to fit. Be sure to check this on bouncy, acceleration, and power-uppads placed on surfaces other than 256 x 256. Use tcMod scale to change the size of the stretched -texture. Rememberthat tcMod scale 0.5 0.5 will double your image, while tcMod scale 2 2will halve it. - -

Design Notes: The base_light and gothic_light shaders contain numerous uses of this. It can be very useful for making different light styles (mostly to change the light brightnesses) without having to create a new piece of TGA art for each new shader.
- - -

textures/liquids/lavahell2//path and name of new texture
-{
-qer_editorimagetextures/eerie/lavahell.tga
-//based on this
-qer_nocarve
-//cannot be cut by CSG subtract
-surfaceparm noimpact
-//projectiles do not hitit
-surfaceparm lava
-//has the game properties of lava
-surfaceparm nolightmap
-//environment lighting does not affect
-q3map_surfacelight 3000
-//light is emitted
-tessSize 256
-//relatively large triangles
-cull disable
-//no sides are removed
-deformVertexes wave 100sin 5 5 .5 0.02
-fogparms 0.85191420.309723 0.0 128 128
-{
-maptextures/eerie/lavahell.tga
-//base texture artwork
-tcMod turb .25 0.2 1 0.02
-//texture is subjected to turbulence
-tcMod scroll 0.1 0.1
-//the turbulence is scrolled
-}
-}
-
- -

5.2 qer_nocarve

-A brush marked with this instruction will not be affected by CSG subtract functions. It is especially useful for water and fog textures. - -

5.3 qer_trans <value>

-This parameter defines the percentage of transparency that a brush will have when seen in the editor (no effect on game -rendering a tall). It can have a positive value between 0 and 1. The higher the value, the less transparent the texture. -Example: qer_trans 0.2 means the brush is 20% opaque and nearly invisible. - -

Back | Home | Next - - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/entries deleted file mode 100644 index 44840f79..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/ch05 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg5_1.htm -file - - - - -2012-04-01T16:52:33.787382Z -abfc75962bf328819b335840b1f36feb -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -32441 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base deleted file mode 100644 index c6748c1d..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/.svn/text-base/pg5_1.htm.svn-base +++ /dev/null @@ -1,483 +0,0 @@ - - -Quake III Arena Shader Manual: Stage Specific Keywords - - - -

Q3Radiant Shader Manual

-
-

6 Stage Specific Keywords

-Stage specifications only affect rendering. Changing any keywords or values within a stage will usually take effect as soon -as a vid_restart is executed. Q3MAP ignores stage specific keywords entirely. - -

A stage can specify a texture map, a color function, an alpha function, a texture coordinate function, a blend function, and a few other rasterization options. - -

6.1 Texture map specification

-
6.1.1 map <texturepath/texturename>
-Specifies the source texture map (a 24 or 32-bit TGA file) used for this stage. The texture may or may not contain alpha -channel information. The special keywords $lightmap and $whiteimage may be substituted in lieu of an actual -texture map name. In those cases, the texture named in the first line of the shader becomes the texture that supplies the light mapping data for the process. - -

$lightmap
-This is the overall lightmap for the game world. It is calculated during the Q3MAP process. It is the initial color -data found in the framebuffer. Note: due to the use of overbright bits in light calculation, the keyword rgbGen -identity must accompany all $lightmap instructions. - -

$whiteimage
-This is used for specular lighting on MD3 models. This is a white image generated internally by the game. This image can -be used in lieu of $lightmap or an actual texture map if, for example, you wish for the vertex colors to come -through unaltered. - -

6.1.2 Clampmap <texturepath>
-Dictates that this stage should clamp texture coordinates instead of wrapping them. During a stretch function, the area, -which the texture must cover during a wave cycle, enlarges and decreases. Instead of repeating a texture multiple times -during enlargement (or seeing only a portion of the texture during shrinking) the texture dimensions increase or contract accordingly. This is only relevant when using something like deformTexCoordParms to stretch/compress texture coordinates for a specific special effect. Remember that the Quake III Arena engine normalizes all texture coordinates (regardless of actual texture size) into a scale of 0.0 to1.0. - -

Proper Alignment: When using clampTexCoords make sure the texture is properly aligned on the brush. The -clampTexCoords function keeps the image from tiling. However, the editor doesn't represent this properly and shows a tiled image. Therefore, what appears to be the correct position may be offset. This is very apparent onanything with a tcMod rotate and clampTexCoords function. - -

AvoidingDistortion: When seen at a given distance (which can vary, depending onhardware and the size of the texture), the compression phase of a stretchfunction will cause a "cross"-like visual artifact to form on the modified texture due to the way that textures are reduced. This occurs because the texture undergoing modification lacks sufficient "empty space" around the displayed (non-black) part of the texture (see figure 2a). To compensate for this, make the non-zero portion of the texture substantially smaller (50% of maximum stretched size -- see figure 2b)than the dimensions of the texture. Then, write a scaling function (tcScale) into the appropriate shader phase, to enlarge the image to the desired proportion. - -

The shaders for the bouncy pads (in the sfx.shader file) show the stretch function in use, including the scaling of the -stretched texture: - -

Example: UsingclampTexCoords to control a stretching texture - -

-textures/sfx/metalbridge06_bounce
-{
-	//q3map_surfacelight 2000
-	surfaceparm nodamage
-	q3map_lightimage textures/sfx/jumppadsmall.tga
-	q3map_surfacelight 400
-	{
-		map textures/sfx/metalbridge06_bounce.tga
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendfunc gl_dst_color gl_zero
-	}
-	{
-		map textures/sfx/bouncepad01b_layer1.tga
-		blendfunc gl_one gl_one
-		rgbGen wave sin .5 .5 0 1.5
-	}
-	{
-		clampmap textures/sfx/jumppadsmall.tga
-		blendfunc gl_one gl_one
-		tcMod stretch sin 1.2 .8 0 1.5
-		rgbGen wave square .5 .5 .25 1.5
-	}
-	// END
-}
-
- -

- -

6.1.3 AnimMap <frequency> <texture1> … <texture8>
-The surfaces in the game can be animated by displaying asequence of 1 to 8 frames (separate texture maps). These animations -are affected by other keyword effects in the same and later shader stages. - -

<Frequency>: the number of times that the animation cycle will repeat within a one second time period. The -larger the value, the more repeats within a second. Animations that should last for more than a second need to be expressed as decimal values. - -
<texture1> …<texture8>: the texture path/texture name for each animation frame must be -explicitly listed. Up to eight frames (eight separate .tga files) can be used to make an animated sequence. Each frame is -displayed for an equal subdivision of the frequency value. - -

Example: AnimMap 0.25 animMap 10textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tgatextures/sfx/b_flame4.tga would be a 4 frame animated sequence, calling each frame in sequence over a cycle length of 4 seconds. Each frame would be displayed for 1 second before the next one is displayed. The cycle repeats after the last frame in sequence is shown. - -

Design Notes: To make a texture image appear for an unequal (longer) amount of time (compared to other frames), repeat that frame more than once in the sequence.
- -

textures/sfx/flameanim_blue
-{
-
-	//	*************************************************
-	//	*	Blue Flame				*
-	//	*	July 20, 1999 Surface Light 1800 	*
-	//	*	Please Comment Changes			*
-	//	*************************************************
-	qer_editorimage textures/sfx/b_flame7.tga
-	q3map_lightimage textures/sfx/b_flame7.tga
-	surfaceparm trans
-	surfaceparm nomarks
-	surfaceparm nolightmap
-	cull none
-	q3map_surfacelight 1800
-	// texture changed to blue flame.... PAJ
-	{
-		animMap 10 textures/sfx/b_flame1.tgatextures/sfx/b_flame2.tga
-textures/sfx/b_flame3.tga textures/sfx/b_flame4.tgatextures/sfx/b_flame5.tga
-textures/sfx/b_flame6.tga textures/sfx/b_flame7.tgatextures/sfx/b_flame8.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave inverseSawtooth 0 1 0 10
-
-	}
-	{
-		animMap 10 textures/sfx/b_flame2.tgatextures/sfx/b_flame3.tga
-textures/sfx/b_flame4.tga textures/sfx/b_flame5.tgatextures/sfx/b_flame6.tga
-textures/sfx/b_flame7.tga textures/sfx/b_flame8.tgatextures/sfx/b_flame1.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sawtooth 0 1 0 10
-	}
-	{
-		map textures/sfx/b_flameball.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sin .6 .2 0 .6
-	}
-}
-
- -

6.2 Blend Functions

-Blend functions are the keyword commands that tell the Quake III Arena graphic engine's renderer how graphic layers are to be mixed together. - -

6.2.1 Simplified blend functions:
-The most common blend functions are set up here as simple commands, and should be used unless you really know what you are -doing. - -

6.2.1.1 blendfunc add -
This is a shorthand command for blendfunc gl_one gl_one. Effects like fire and energy are additive. - -

6.2.1.2 blendfunc filter -
This is a shorthand command that can be substituted for either blendfunc gl_dst_color gl_zero or blendfunc gl_zero gl_src_color. A filter will always result in darker pixels than what is behind it, but it can also remove color selectively. Lightmaps are filters. - -

6.2.1.3 blendfunc blend -
Shorthand for blendfunc gl_src_alphagl_one_minus_src_alpha. This is conventional transparency, where part of the background is mixed with part of the texture. - -

6.2.2 Explicit blend functions:
-Getting a handle on this concept is absolutely key to understanding all shader manipulation of graphics. - -

BlendFunc or "Blend Function" is the equation at the core of processing shader graphics. The formula reads as follows: - -

[Source *<srcBlend>] + [Destination * -<dstBlend>] - -

Source is usually the RGB color data in a texture TGA file (remember it's all numbers) modified by any rgbgen and alphagen. In the shader, the source is generally identified by command MAP, followed by the name of the image. - -

Destination is the color data currently existing in the frame buffer. - -

Rather than think of the entire texture as a whole, it maybe easier to think of the number values that correspond to a single pixel, because that is essentially what the computer is processing … one pixel of the bit map at a time. - -

The process for calculating the final look of a texture in place in the game world begins with the precalculated lightmap for the area where the texture will be located. This data is in the frame buffer. That is to say, it is the initial data in the Destination. In an unmanipulated texture (i.e. one without a special shader script), color information from the texture is combined with the lightmap. In a shader-modified texture, the $lightmap stage must be present for the lightmap to be included in the calculation of the final texture appearance. - -

Each pass or "stage" of blending is combined (in a cumulative manner) with the color data passed onto it by the -previous stage. How that data combines together depends on the values chosen for the Source Blends and Destination Blends at each stage. Remember it's numbers that are being mathematically combined together that are ultimately interpreted as colors. - -

A general rule is that any Source Blend other than GL_ONE (or GL_SRC_ALPHA where the alpha channel is entirely white) will cause the Source to become darker. - -

6.2.3 Source Blend <srcBlend>
-The following values are valid for the Source Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Source, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Source, all RGB data in the Source becomes Zero (essentially black). - -
GL_DST_COLOR This is the value of color data currently in the Destination (frame buffer). The value of that information depends on the information supplied by previous stages. - -
GL_ONE_MINUS_DST_COLOR This is nearly the same as GL_DST_COLOR except that the value for each component color -is inverted by subtracting it from one. (,i.e. R = 1.0 - DST.R, G = 1.0 - DST.G, B = 1.0 - DST.B, etc.) - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (for a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one.(i.e. A=1.0 - SRC.A) - -

6.2.4 Destination Blend <dstBlend>
-The following values are valid for the Destination Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Destination, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Destination,all RGB data in the Destinationbecomes Zero (essentially black). - -
GL_SRC_COLOR This is the value of color data currently in the Source (which is the texture being manipulated here). - -
GL_ONE_MINUS_SRC_COLOR This is the value of color data currently in Source, but subtracted from one(i.e. -inverted). - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (four a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A). - -

Doing the Math: The Final Result - -
The product of the Source side of the equation is added to the product of the Destination side of the equation. The sum is then placed into the frame buffer to become the Destination information for the next stage. Ultimately, the equation creates a modified color value that is used by other functions to define what happens in the texture when it is displayed in the game world. - -

6.2.5 Default Blend Function
-If no blendFunc is specified then no blending will take place. A warning is generated if any stage after the first stage does not have a blendFunc specified. - -

6.2.6 Technical Information/Limitations Regarding Blend Modes:
-The Riva 128 graphics card supports ONLY the following blendmodes: - -

GL_ONE, GL_ONE -
GL_DST_COLOR, GL_ZERO - -
GL_ZERO, GL_SRC_COLOR - -
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA - -
GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA - -

Cards running in 16 bit color cannot use any GL_DST_ALPHA blends. - -

6.3 rgbGen <func>

-There are two color sources for any given shader, the texture file and the vertex colors. Output at any given time will be equal to TEXTURE multiplied by VERTEXCOLOR. Most of the time VERTEXCOLORwill default to white (which is a normalized value of 1.0), so output will be TEXTURE (this usually lands in the Sourceside of the shader equation). Sometimes you do the opposite and use TEXTURE = WHITE, but this is only commonly used when doing specular lighting on entities (i.e. shaders that level designers will probably never create - -

The most common reason to use rgbGen is to pulsate something. This means that the VERTEXCOLOR will oscillate between two -values, and that value will be multiplied (darkening) the texture. - -

If no rgbGen is specified, either "identityLighting" or"identity" will be selected, depending on which blend modes are -used. - -

Valid <func> parameters are wave, identity, identityLighting, entity, oneMinusEntity, fromVertex, and -lightingDiffuse. - -

6.3.1 RgbGen identityLighting
-Colors will be (1.0,1.0,1.0) if running without overbright bits (NT, linux, windowed modes), or (0.5, 0.5, 0.5) if running -with overbright. Overbright allows a greater color range at the expense of a loss of precision. Additive and blended stages -will get this by default. - -

6.3.2 rgbGen identity
-Colors are assumed to be all white (1.0,1.0,1.0). All filters stages (lightmaps, etc) will get this by default. - -

6.3.3 rgbGen wave <func> <base> <amp><phase> <freq>
-Colors are generated using the specified waveform. An affected texture with become darker and lighter, but will not change -hue. Hue stays constant. Note that the rgb values for color will not go below 0 (black) orabove 1 (white). Valid waveforms are sin, triangle, square, sawtooth and inversesawtooth. - -

<func> Waveforms and their effects: - -
Sin: color flows smoothly through changes. - -
Triangle: color changes at a constant rate and spends noappreciable time at peaks and valleys. - -
Square: color alternates instantly between its peak and valley values. - -
Sawtooth: With a positive frequency value, the color changes at aconstant rate to the peak then instantly drops to its valley value. - -
Inversesawtooth: An inverse sawtooth wave will reverse this, making the ascent immediate (like a square wave) and the decay fall off like a triangle wave. - -
<base> Baseline value. The initial RGB formula of a color (normalilzed). - -
<amp> Amplitude. This is the degree of change from the baseline value. In some cases you will want -values outside the 0.0 to 1.0 range, but it will induce clamping (holding at the maximum or minimum value for a time period) -instead of continuous change. - -
<phase> See the explanation for phase under the waveforms heading of Key Concepts. - -
<freq> Frequency. This is a value (NOT normalized) that indicates peaks per second. - -

6.3.4 RgbGen entity
-Colors are grabbed from the entity's modulate field. This isused for things like explosions. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.5 rgbGen oneMinusEntity
-Colors are grabbed from 1.0 minus the entity's modulate field. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.6 rgbGen Vertex
-Colors are filled in directly by the data from the map or model files. - -

Design Note: rgbGen vertex should be used when you want the RGB values to be computed for a static model (i.e. mapobject) in the world using precomputed static lighting from Q3BSP. This would be used on things like -the gargoyles, the portal frame, skulls, and other decorative MD3s put into the Quake III Arena world.
- -

6.3.7 rgbGen oneMinusVertex
-As rgbGen vertex, but inverted. - -

Design Note: This keyword would probably not be used by a level designer
- -

6.3.8 rgbGen lightingDiffuse
-Colors are computed using a standard diffuse lighting equation. It uses the vertex normals to illuminate the object correctly. - -

Design Note: -rgbGen lightingDiffuse is used when you want the RGB values to be computed for a dynamic model (i.e. non-map object) in the world using regular in-game lighting. For example, you would specify on shaders for items, characters, weapons, etc.
- -

6.4 AlphaGen <func>

-The alpha channel can be specified like the rgbchannels. If not specified, it defaults to 1.0. - -

6.4.1 AlphaGen portal
-This rendering stage keyword is used in conjunction with the surface parameter keyword portal. The function -accomplishes the "fade" that causes the scene in the portal to fade from view. Specifically, it means "Generate alpha values -based on the distance from the viewer to the portal." Use alphaGen portal on the last rendering pass. - -

6.5 tcGen <coordinate source>

-Specifies how texture coordinates are generated and where they come from. Valid functions are base,lightmap and environment. - -

<base> = base texture coordinates from the original art. -
<lightmap> = lightmap texture coordinates -
<environment> = Make this object environment mapped. - -

6.5.1 tcGen vector (<sx> <sy> <sz>) -(<tx><ty> <tz>)
-New texcoord generation by world projection. This allows you to project a texture onto a surface in a fixed way, regardless of its orientation. - -

S coordinates correspond to the "x" coordinates on the texture itself. - -
T coordinates correspond to the "y" coordinates on the texture itself. - -

The measurements are in game units. - -

- -

Example: tcGen vector (0.01 0 0) (0 0.01 0) -
This would project a texture with a repeat every 100 units across the X/Y plane. - -

6.6 tcMod <func> <…>

-Specifies how texture coordinates are modified after they are generated. The valid functions for tcMod are rotate, -scale,scroll, stretch and transform. Transform is a function generally reserved for use by programmers who suggest that designers leave it alone. When using multiple tcMod functions during a stage, place the scroll command last in order, because it performs a mod operation to save precision, and that can disturb other operations. Texture coordinates are modified in the order in which tcMods are specified. In otherwords, if you see: - -

tcMod scale 0.5 0.5 -
tcMod scroll 1 1 - -

Then the texture coordinates will be scaled then scrolled. - -

6.6.1 tcMod rotate <degrees per per second>
-This keyword causes the texture coordinates to rotate. The value is expressed in degrees rotated each second. A positive value means clockwise rotation. A negative value means counterclockwise rotation. For example "tcMod rotate 5" would -rotate texture coordinates 5 degrees each second in a clockwise direction. The texture rotates around the center -point of the texture map, so you are rotating a texture with a single repetition, be careful to center it on the brush (unless off-center rotation is desired). - -

6.6.2 tcMod scale <sScale> <tScale>
-Resizes (enlarges or shrinks) the texture coordinates bymultiplying them against the given factors of <sScale> -and <tScale). The values "s" and "t"conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The values for sScale and tScale are NOT normalized. This means that a value greater than 1.0 will increase the size of thetexture. A positive value less than one will reduce the texture to a fraction of its size and cause it to repeat within the same area as the original texture (Note: see clampTexCoords for ways to control this).; - -

Example: tcMod scale 0.5 2 would cause the texture to repeat twice along its width, but expand to twice its height (in which case half of the texture would be seen in the same area as the original) - -

6.6.3 tcMod scroll <sSpeed> <tSpeed>
-Scrolls the texture coordinates with the given speeds. The values "s" and "t" conform to the "x" and "y" values -(respectively) as they are found in the original textureTGA. The scroll speed is measured in "textures" per second. A "texture" is the dimension of the texture being modified and includes any previous shader modifications to the original TGA). A negative s value would scroll the texture to the left. A negative t value would scroll the texture down. - -

Example: tcMod scroll 0.5 -0.5 moves the texture down and right (relative to the TGA files original coordinates) at the rate of a half texture each second of travel. - -

This should be the LAST tcMod in a stage. Otherwise there maybe popping or snapping visual effects in some shaders. - -

6.6.4 tcMod stretch <func> <base> -<amplitude><phase> <frequency>
- -Stretches the texture coordinates with the given function. Stretching is defined as stretching the texture coordinate away from the center of the polygon and then compressing it towards the center of the polygon. - -

<base>: A base value of one is the original dimension of the texture when it reaches the stretch stage. -Inserting other values positive or negative in this variable will produce unknown effects. - -
<amplitude>: This is the measurement of distance the texture will stretch from the base size. It is -measured, like scroll, in textures. A value of 1 here will double the size of the texture at its peak. - -
<phase>: See the explanation for phase under the deform vertexes keyword. - -
<frequency>: this is wave peaks per second. - -
Wave Functions <func> - -
Sin wave: the texture expands smoothly to its peak dimension and then shrinks smoothly to its valley dimension in a flowing manner. - -
Triangle wave: The textures stretch at a constant rate and spend no appreciable time at the peak or valley points. - -
Square wave: The texture is shown at its peak for the duration of the frequency and then at its valley for the -duration of the frequency. - -
Sawtooth: the texture stretches like a triangle wave until it reaches a peak, then instantly drops to the valley, as in a square wave. - -
Inversesawtooth: this is the reverse of the sawtooth wave. - -

6.6.5 tcMod <transform> <m00> <m01> <m10><m11> <t0> <t1>
-Transforms each texture coordinate as follows: - -

S' = s * m00 + t * m10 + t0 - -
T' = s * m01 + t * m11 + t1 - -

This is for use by programmers. - -

6.6.6 tcMod turb <base> <amplitude> -<phase><freq>
- -

Applies turbulence to the texture coordinate. Turbulence is a back and forth churning and swirling effect on the texture. - -

The parameters for this shader are defined as follows: - - -

<base> Currently undefined. - -
<amplitude> This is essentially the intensity of the disturbance or twisting and squiggling of the texture. - -
<phase> See the explanation for phase under the deformvertexes keyword. - -
<freq> Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of one -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. - -

6.7 depthFunc <func>

-This controls the depth comparison function used while rendering. The default is "lequal" (Less than or equal to) -where any surface that is at the same depth or closer of an existing surface is drawn. This is used for textures with -transparency or translucency. Under some circumstances you may wish to use "equal", e.g. for light-mapped grates that are alpha tested (it is also used for mirrors). - -

6.8 depthWrite

-By default, writes to the depth buffer when depthFunc passes will happen for opaque surfaces and not for translucent surfaces. Blended surfaces can have the depth writes forced with this function. - -

6.9 Detail

-This feature was not used in Quake III Arena maps, but should still function. -Designates this stage as a detail texture stage, which means that if the c_var, r_detailtextures, is set to 0 then this stage will be ignored (detail will not be displayed). This keyword, by itself, does not affect rendering at all. If you do put in a detail texture, it has to conform to very specific rules. Specifically, the blendFunc: - -

blendFuncGL_DST_COLOR GL_SRC_COLOR - -

This is also the simple blend function: blendfuncfilter - -

And the average intensity of the detail texture itself must be around 127. - -

Detail is used to blend fine pixel detail back into a base texture whose scale has been increased significantly. When detail iswritten into a set of stage instructions, it allows the stage to be disabled by the c_var console command setting "r_detailtextures 0". - -

A texture whose scale has been increased beyond a 1:1 ratio tends not to have very high frequency content. In other words, one texel can cover a lot of real estate. Frequency is also known as "detail." Lack of detail can appear acceptable if the player never has the opportunity to see the texture at close range. But seen close up, such textures look glaringly wrong within the sharp detail of the Quake III Arena environment. A detail texture solves this problem by taking a noisy "detail" pattern (a tiling texture that appears to have a great deal of surface roughness) and applying it to the base texture at a very densely packed scale (that is, reduced from its normal size). This is done programmatically in the -shader, and does not require modification of the base texture. Note that if the detail texture is the same size and scale as the base texture that you may as well just add the detail directly to the base texture. The theory is that the detail texture's scale will be so high compared to the base texture (e.g.; 9 detail texels fitting into 1 base texel) that it is literally impossible to fit that detail into the base texture directly. - -

For this to work, the rules are as follows: - -

    - -
  1. the lightmap must be rendered first. This is because the subsequent detail texture will be modifying the lightmap in the framebuffer directly; -
  2. the detail texture must be rendered next since it modifies the lightmap in the framebuffer; -
  3. the base texture must be rendered last; -
  4. the detail texture MUST have a mean intensity around 127-129. If it does not then it will modify the displayed texture's perceived brightness in the world; -
  5. the detail shader stage MUSThave the "detail" keyword or it will not be disabled if the user uses the "r_detailtextures 0" setting; -
  6. the detail stage MUST use "blendFunc GL_DST_COLOR GL_SRC_COLOR". Any other BlendFunc will cause mismatches in brightness between detail and non-detail views.; -
  7. the detail stage should scale its textures by some amount (usually between 3 and 12) using "tcMod" to control density. This roughly corresponds to coarseness. A very large number, such as 12, will give very fine detail, however that detail will disappear VERY quickly as the viewer moves away fromthe wall since it will be MIP mapped away. A very small number, e.g. 3, gives diminishing returns since not enough is brought in when the user gets very close. I'm currently using values between 6 and 9.5. You should use non-integral numbers as much as possible to avoid seeing repeating patterns. -
  8. detail textures add one pass of overdraw, so there is a definite performance hit . -
  9. detail textures can be shared, so designers may wish to define only a very small handful of detail textures for common surfaces such as rocks, etc.
- -

An example (non-existent) detailshader is as follows: -

Example: Texture with Detail - -

-textures/bwhtest/foo
-{
-// draw the lightmap first
-{
-map $lightmap
-rgbGen identity
-}
-// modify the lightmap in the framebuffer by
-// a highly compressed detail texture
-{
-map textures/details/detail01.tga
-blendFunc GL_DST_COLOR GL_SRC_COLOR
-// YOU MUST USE THIS!!
-detail
-// for the detail to be disabled, this must be present
-tcMod scale 9.1 9.2
-}
-// now slap on the base texture
-{
-map textures/castle/blocks11b.tga
-blendFunc filter
-}
-}
-
- -

6.10 alphaFunc <func>

-Determines the alpha test function used when rendering this map. Valid values are GT0, LT128, and GE128. These -correspond to "GREATER THAN 0", "LESS THAN 128", and "GREATER THAN OR EQUAL TO 128". This function is used when determining if a pixel should be written to the framebuffer. For example, if GT0 is specified, the only the portions of the texture map with corresponding alpha values greater than zero will be written to the framebuffer. By default alpha testing is disabled. - -

Both alpha testing and normal alpha blending can be used to get textures that have see-through parts. The difference is that alphaFunc is an all-or-nothing test, while blending smoothly blends between opaque and translucent at pixel edges. Alpha test can also be used with depthwrite, allowing other effects to be conditionally layered on top of just the opaque pixels by setting depthFunc to equal. - -

Back | Home | Next - - - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm deleted file mode 100644 index c6748c1d..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch05/pg5_1.htm +++ /dev/null @@ -1,483 +0,0 @@ - - -Quake III Arena Shader Manual: Stage Specific Keywords - - - -

Q3Radiant Shader Manual

-
-

6 Stage Specific Keywords

-Stage specifications only affect rendering. Changing any keywords or values within a stage will usually take effect as soon -as a vid_restart is executed. Q3MAP ignores stage specific keywords entirely. - -

A stage can specify a texture map, a color function, an alpha function, a texture coordinate function, a blend function, and a few other rasterization options. - -

6.1 Texture map specification

-
6.1.1 map <texturepath/texturename>
-Specifies the source texture map (a 24 or 32-bit TGA file) used for this stage. The texture may or may not contain alpha -channel information. The special keywords $lightmap and $whiteimage may be substituted in lieu of an actual -texture map name. In those cases, the texture named in the first line of the shader becomes the texture that supplies the light mapping data for the process. - -

$lightmap
-This is the overall lightmap for the game world. It is calculated during the Q3MAP process. It is the initial color -data found in the framebuffer. Note: due to the use of overbright bits in light calculation, the keyword rgbGen -identity must accompany all $lightmap instructions. - -

$whiteimage
-This is used for specular lighting on MD3 models. This is a white image generated internally by the game. This image can -be used in lieu of $lightmap or an actual texture map if, for example, you wish for the vertex colors to come -through unaltered. - -

6.1.2 Clampmap <texturepath>
-Dictates that this stage should clamp texture coordinates instead of wrapping them. During a stretch function, the area, -which the texture must cover during a wave cycle, enlarges and decreases. Instead of repeating a texture multiple times -during enlargement (or seeing only a portion of the texture during shrinking) the texture dimensions increase or contract accordingly. This is only relevant when using something like deformTexCoordParms to stretch/compress texture coordinates for a specific special effect. Remember that the Quake III Arena engine normalizes all texture coordinates (regardless of actual texture size) into a scale of 0.0 to1.0. - -

Proper Alignment: When using clampTexCoords make sure the texture is properly aligned on the brush. The -clampTexCoords function keeps the image from tiling. However, the editor doesn't represent this properly and shows a tiled image. Therefore, what appears to be the correct position may be offset. This is very apparent onanything with a tcMod rotate and clampTexCoords function. - -

AvoidingDistortion: When seen at a given distance (which can vary, depending onhardware and the size of the texture), the compression phase of a stretchfunction will cause a "cross"-like visual artifact to form on the modified texture due to the way that textures are reduced. This occurs because the texture undergoing modification lacks sufficient "empty space" around the displayed (non-black) part of the texture (see figure 2a). To compensate for this, make the non-zero portion of the texture substantially smaller (50% of maximum stretched size -- see figure 2b)than the dimensions of the texture. Then, write a scaling function (tcScale) into the appropriate shader phase, to enlarge the image to the desired proportion. - -

The shaders for the bouncy pads (in the sfx.shader file) show the stretch function in use, including the scaling of the -stretched texture: - -

Example: UsingclampTexCoords to control a stretching texture - -

-textures/sfx/metalbridge06_bounce
-{
-	//q3map_surfacelight 2000
-	surfaceparm nodamage
-	q3map_lightimage textures/sfx/jumppadsmall.tga
-	q3map_surfacelight 400
-	{
-		map textures/sfx/metalbridge06_bounce.tga
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendfunc gl_dst_color gl_zero
-	}
-	{
-		map textures/sfx/bouncepad01b_layer1.tga
-		blendfunc gl_one gl_one
-		rgbGen wave sin .5 .5 0 1.5
-	}
-	{
-		clampmap textures/sfx/jumppadsmall.tga
-		blendfunc gl_one gl_one
-		tcMod stretch sin 1.2 .8 0 1.5
-		rgbGen wave square .5 .5 .25 1.5
-	}
-	// END
-}
-
- -

- -

6.1.3 AnimMap <frequency> <texture1> … <texture8>
-The surfaces in the game can be animated by displaying asequence of 1 to 8 frames (separate texture maps). These animations -are affected by other keyword effects in the same and later shader stages. - -

<Frequency>: the number of times that the animation cycle will repeat within a one second time period. The -larger the value, the more repeats within a second. Animations that should last for more than a second need to be expressed as decimal values. - -
<texture1> …<texture8>: the texture path/texture name for each animation frame must be -explicitly listed. Up to eight frames (eight separate .tga files) can be used to make an animated sequence. Each frame is -displayed for an equal subdivision of the frequency value. - -

Example: AnimMap 0.25 animMap 10textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tgatextures/sfx/b_flame4.tga would be a 4 frame animated sequence, calling each frame in sequence over a cycle length of 4 seconds. Each frame would be displayed for 1 second before the next one is displayed. The cycle repeats after the last frame in sequence is shown. - -

Design Notes: To make a texture image appear for an unequal (longer) amount of time (compared to other frames), repeat that frame more than once in the sequence.
- -

textures/sfx/flameanim_blue
-{
-
-	//	*************************************************
-	//	*	Blue Flame				*
-	//	*	July 20, 1999 Surface Light 1800 	*
-	//	*	Please Comment Changes			*
-	//	*************************************************
-	qer_editorimage textures/sfx/b_flame7.tga
-	q3map_lightimage textures/sfx/b_flame7.tga
-	surfaceparm trans
-	surfaceparm nomarks
-	surfaceparm nolightmap
-	cull none
-	q3map_surfacelight 1800
-	// texture changed to blue flame.... PAJ
-	{
-		animMap 10 textures/sfx/b_flame1.tgatextures/sfx/b_flame2.tga
-textures/sfx/b_flame3.tga textures/sfx/b_flame4.tgatextures/sfx/b_flame5.tga
-textures/sfx/b_flame6.tga textures/sfx/b_flame7.tgatextures/sfx/b_flame8.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave inverseSawtooth 0 1 0 10
-
-	}
-	{
-		animMap 10 textures/sfx/b_flame2.tgatextures/sfx/b_flame3.tga
-textures/sfx/b_flame4.tga textures/sfx/b_flame5.tgatextures/sfx/b_flame6.tga
-textures/sfx/b_flame7.tga textures/sfx/b_flame8.tgatextures/sfx/b_flame1.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sawtooth 0 1 0 10
-	}
-	{
-		map textures/sfx/b_flameball.tga
-		blendFunc GL_ONE GL_ONE
-		rgbGen wave sin .6 .2 0 .6
-	}
-}
-
- -

6.2 Blend Functions

-Blend functions are the keyword commands that tell the Quake III Arena graphic engine's renderer how graphic layers are to be mixed together. - -

6.2.1 Simplified blend functions:
-The most common blend functions are set up here as simple commands, and should be used unless you really know what you are -doing. - -

6.2.1.1 blendfunc add -
This is a shorthand command for blendfunc gl_one gl_one. Effects like fire and energy are additive. - -

6.2.1.2 blendfunc filter -
This is a shorthand command that can be substituted for either blendfunc gl_dst_color gl_zero or blendfunc gl_zero gl_src_color. A filter will always result in darker pixels than what is behind it, but it can also remove color selectively. Lightmaps are filters. - -

6.2.1.3 blendfunc blend -
Shorthand for blendfunc gl_src_alphagl_one_minus_src_alpha. This is conventional transparency, where part of the background is mixed with part of the texture. - -

6.2.2 Explicit blend functions:
-Getting a handle on this concept is absolutely key to understanding all shader manipulation of graphics. - -

BlendFunc or "Blend Function" is the equation at the core of processing shader graphics. The formula reads as follows: - -

[Source *<srcBlend>] + [Destination * -<dstBlend>] - -

Source is usually the RGB color data in a texture TGA file (remember it's all numbers) modified by any rgbgen and alphagen. In the shader, the source is generally identified by command MAP, followed by the name of the image. - -

Destination is the color data currently existing in the frame buffer. - -

Rather than think of the entire texture as a whole, it maybe easier to think of the number values that correspond to a single pixel, because that is essentially what the computer is processing … one pixel of the bit map at a time. - -

The process for calculating the final look of a texture in place in the game world begins with the precalculated lightmap for the area where the texture will be located. This data is in the frame buffer. That is to say, it is the initial data in the Destination. In an unmanipulated texture (i.e. one without a special shader script), color information from the texture is combined with the lightmap. In a shader-modified texture, the $lightmap stage must be present for the lightmap to be included in the calculation of the final texture appearance. - -

Each pass or "stage" of blending is combined (in a cumulative manner) with the color data passed onto it by the -previous stage. How that data combines together depends on the values chosen for the Source Blends and Destination Blends at each stage. Remember it's numbers that are being mathematically combined together that are ultimately interpreted as colors. - -

A general rule is that any Source Blend other than GL_ONE (or GL_SRC_ALPHA where the alpha channel is entirely white) will cause the Source to become darker. - -

6.2.3 Source Blend <srcBlend>
-The following values are valid for the Source Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Source, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Source, all RGB data in the Source becomes Zero (essentially black). - -
GL_DST_COLOR This is the value of color data currently in the Destination (frame buffer). The value of that information depends on the information supplied by previous stages. - -
GL_ONE_MINUS_DST_COLOR This is nearly the same as GL_DST_COLOR except that the value for each component color -is inverted by subtracting it from one. (,i.e. R = 1.0 - DST.R, G = 1.0 - DST.G, B = 1.0 - DST.B, etc.) - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (for a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one.(i.e. A=1.0 - SRC.A) - -

6.2.4 Destination Blend <dstBlend>
-The following values are valid for the Destination Blend part of the equation. - -

GL_ONE This is the value 1. When multiplied by the Destination, the value stays the same the value of the color information does not change. - -
GL_ZERO This is the value 0. When multiplied by the Destination,all RGB data in the Destinationbecomes Zero (essentially black). - -
GL_SRC_COLOR This is the value of color data currently in the Source (which is the texture being manipulated here). - -
GL_ONE_MINUS_SRC_COLOR This is the value of color data currently in Source, but subtracted from one(i.e. -inverted). - -
GL_SRC_ALPHA The TGA file being used for the Source data must have an alpha channel in addition to its RGB channels (four a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the Source. - -
GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A). - -

Doing the Math: The Final Result - -
The product of the Source side of the equation is added to the product of the Destination side of the equation. The sum is then placed into the frame buffer to become the Destination information for the next stage. Ultimately, the equation creates a modified color value that is used by other functions to define what happens in the texture when it is displayed in the game world. - -

6.2.5 Default Blend Function
-If no blendFunc is specified then no blending will take place. A warning is generated if any stage after the first stage does not have a blendFunc specified. - -

6.2.6 Technical Information/Limitations Regarding Blend Modes:
-The Riva 128 graphics card supports ONLY the following blendmodes: - -

GL_ONE, GL_ONE -
GL_DST_COLOR, GL_ZERO - -
GL_ZERO, GL_SRC_COLOR - -
GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA - -
GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA - -

Cards running in 16 bit color cannot use any GL_DST_ALPHA blends. - -

6.3 rgbGen <func>

-There are two color sources for any given shader, the texture file and the vertex colors. Output at any given time will be equal to TEXTURE multiplied by VERTEXCOLOR. Most of the time VERTEXCOLORwill default to white (which is a normalized value of 1.0), so output will be TEXTURE (this usually lands in the Sourceside of the shader equation). Sometimes you do the opposite and use TEXTURE = WHITE, but this is only commonly used when doing specular lighting on entities (i.e. shaders that level designers will probably never create - -

The most common reason to use rgbGen is to pulsate something. This means that the VERTEXCOLOR will oscillate between two -values, and that value will be multiplied (darkening) the texture. - -

If no rgbGen is specified, either "identityLighting" or"identity" will be selected, depending on which blend modes are -used. - -

Valid <func> parameters are wave, identity, identityLighting, entity, oneMinusEntity, fromVertex, and -lightingDiffuse. - -

6.3.1 RgbGen identityLighting
-Colors will be (1.0,1.0,1.0) if running without overbright bits (NT, linux, windowed modes), or (0.5, 0.5, 0.5) if running -with overbright. Overbright allows a greater color range at the expense of a loss of precision. Additive and blended stages -will get this by default. - -

6.3.2 rgbGen identity
-Colors are assumed to be all white (1.0,1.0,1.0). All filters stages (lightmaps, etc) will get this by default. - -

6.3.3 rgbGen wave <func> <base> <amp><phase> <freq>
-Colors are generated using the specified waveform. An affected texture with become darker and lighter, but will not change -hue. Hue stays constant. Note that the rgb values for color will not go below 0 (black) orabove 1 (white). Valid waveforms are sin, triangle, square, sawtooth and inversesawtooth. - -

<func> Waveforms and their effects: - -
Sin: color flows smoothly through changes. - -
Triangle: color changes at a constant rate and spends noappreciable time at peaks and valleys. - -
Square: color alternates instantly between its peak and valley values. - -
Sawtooth: With a positive frequency value, the color changes at aconstant rate to the peak then instantly drops to its valley value. - -
Inversesawtooth: An inverse sawtooth wave will reverse this, making the ascent immediate (like a square wave) and the decay fall off like a triangle wave. - -
<base> Baseline value. The initial RGB formula of a color (normalilzed). - -
<amp> Amplitude. This is the degree of change from the baseline value. In some cases you will want -values outside the 0.0 to 1.0 range, but it will induce clamping (holding at the maximum or minimum value for a time period) -instead of continuous change. - -
<phase> See the explanation for phase under the waveforms heading of Key Concepts. - -
<freq> Frequency. This is a value (NOT normalized) that indicates peaks per second. - -

6.3.4 RgbGen entity
-Colors are grabbed from the entity's modulate field. This isused for things like explosions. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.5 rgbGen oneMinusEntity
-Colors are grabbed from 1.0 minus the entity's modulate field. - -

Design Note: This keyword would probably not be used by a level designer.
- -

6.3.6 rgbGen Vertex
-Colors are filled in directly by the data from the map or model files. - -

Design Note: rgbGen vertex should be used when you want the RGB values to be computed for a static model (i.e. mapobject) in the world using precomputed static lighting from Q3BSP. This would be used on things like -the gargoyles, the portal frame, skulls, and other decorative MD3s put into the Quake III Arena world.
- -

6.3.7 rgbGen oneMinusVertex
-As rgbGen vertex, but inverted. - -

Design Note: This keyword would probably not be used by a level designer
- -

6.3.8 rgbGen lightingDiffuse
-Colors are computed using a standard diffuse lighting equation. It uses the vertex normals to illuminate the object correctly. - -

Design Note: -rgbGen lightingDiffuse is used when you want the RGB values to be computed for a dynamic model (i.e. non-map object) in the world using regular in-game lighting. For example, you would specify on shaders for items, characters, weapons, etc.
- -

6.4 AlphaGen <func>

-The alpha channel can be specified like the rgbchannels. If not specified, it defaults to 1.0. - -

6.4.1 AlphaGen portal
-This rendering stage keyword is used in conjunction with the surface parameter keyword portal. The function -accomplishes the "fade" that causes the scene in the portal to fade from view. Specifically, it means "Generate alpha values -based on the distance from the viewer to the portal." Use alphaGen portal on the last rendering pass. - -

6.5 tcGen <coordinate source>

-Specifies how texture coordinates are generated and where they come from. Valid functions are base,lightmap and environment. - -

<base> = base texture coordinates from the original art. -
<lightmap> = lightmap texture coordinates -
<environment> = Make this object environment mapped. - -

6.5.1 tcGen vector (<sx> <sy> <sz>) -(<tx><ty> <tz>)
-New texcoord generation by world projection. This allows you to project a texture onto a surface in a fixed way, regardless of its orientation. - -

S coordinates correspond to the "x" coordinates on the texture itself. - -
T coordinates correspond to the "y" coordinates on the texture itself. - -

The measurements are in game units. - -

- -

Example: tcGen vector (0.01 0 0) (0 0.01 0) -
This would project a texture with a repeat every 100 units across the X/Y plane. - -

6.6 tcMod <func> <…>

-Specifies how texture coordinates are modified after they are generated. The valid functions for tcMod are rotate, -scale,scroll, stretch and transform. Transform is a function generally reserved for use by programmers who suggest that designers leave it alone. When using multiple tcMod functions during a stage, place the scroll command last in order, because it performs a mod operation to save precision, and that can disturb other operations. Texture coordinates are modified in the order in which tcMods are specified. In otherwords, if you see: - -

tcMod scale 0.5 0.5 -
tcMod scroll 1 1 - -

Then the texture coordinates will be scaled then scrolled. - -

6.6.1 tcMod rotate <degrees per per second>
-This keyword causes the texture coordinates to rotate. The value is expressed in degrees rotated each second. A positive value means clockwise rotation. A negative value means counterclockwise rotation. For example "tcMod rotate 5" would -rotate texture coordinates 5 degrees each second in a clockwise direction. The texture rotates around the center -point of the texture map, so you are rotating a texture with a single repetition, be careful to center it on the brush (unless off-center rotation is desired). - -

6.6.2 tcMod scale <sScale> <tScale>
-Resizes (enlarges or shrinks) the texture coordinates bymultiplying them against the given factors of <sScale> -and <tScale). The values "s" and "t"conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The values for sScale and tScale are NOT normalized. This means that a value greater than 1.0 will increase the size of thetexture. A positive value less than one will reduce the texture to a fraction of its size and cause it to repeat within the same area as the original texture (Note: see clampTexCoords for ways to control this).; - -

Example: tcMod scale 0.5 2 would cause the texture to repeat twice along its width, but expand to twice its height (in which case half of the texture would be seen in the same area as the original) - -

6.6.3 tcMod scroll <sSpeed> <tSpeed>
-Scrolls the texture coordinates with the given speeds. The values "s" and "t" conform to the "x" and "y" values -(respectively) as they are found in the original textureTGA. The scroll speed is measured in "textures" per second. A "texture" is the dimension of the texture being modified and includes any previous shader modifications to the original TGA). A negative s value would scroll the texture to the left. A negative t value would scroll the texture down. - -

Example: tcMod scroll 0.5 -0.5 moves the texture down and right (relative to the TGA files original coordinates) at the rate of a half texture each second of travel. - -

This should be the LAST tcMod in a stage. Otherwise there maybe popping or snapping visual effects in some shaders. - -

6.6.4 tcMod stretch <func> <base> -<amplitude><phase> <frequency>
- -Stretches the texture coordinates with the given function. Stretching is defined as stretching the texture coordinate away from the center of the polygon and then compressing it towards the center of the polygon. - -

<base>: A base value of one is the original dimension of the texture when it reaches the stretch stage. -Inserting other values positive or negative in this variable will produce unknown effects. - -
<amplitude>: This is the measurement of distance the texture will stretch from the base size. It is -measured, like scroll, in textures. A value of 1 here will double the size of the texture at its peak. - -
<phase>: See the explanation for phase under the deform vertexes keyword. - -
<frequency>: this is wave peaks per second. - -
Wave Functions <func> - -
Sin wave: the texture expands smoothly to its peak dimension and then shrinks smoothly to its valley dimension in a flowing manner. - -
Triangle wave: The textures stretch at a constant rate and spend no appreciable time at the peak or valley points. - -
Square wave: The texture is shown at its peak for the duration of the frequency and then at its valley for the -duration of the frequency. - -
Sawtooth: the texture stretches like a triangle wave until it reaches a peak, then instantly drops to the valley, as in a square wave. - -
Inversesawtooth: this is the reverse of the sawtooth wave. - -

6.6.5 tcMod <transform> <m00> <m01> <m10><m11> <t0> <t1>
-Transforms each texture coordinate as follows: - -

S' = s * m00 + t * m10 + t0 - -
T' = s * m01 + t * m11 + t1 - -

This is for use by programmers. - -

6.6.6 tcMod turb <base> <amplitude> -<phase><freq>
- -

Applies turbulence to the texture coordinate. Turbulence is a back and forth churning and swirling effect on the texture. - -

The parameters for this shader are defined as follows: - - -

<base> Currently undefined. - -
<amplitude> This is essentially the intensity of the disturbance or twisting and squiggling of the texture. - -
<phase> See the explanation for phase under the deformvertexes keyword. - -
<freq> Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of one -would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 -seconds. - -

6.7 depthFunc <func>

-This controls the depth comparison function used while rendering. The default is "lequal" (Less than or equal to) -where any surface that is at the same depth or closer of an existing surface is drawn. This is used for textures with -transparency or translucency. Under some circumstances you may wish to use "equal", e.g. for light-mapped grates that are alpha tested (it is also used for mirrors). - -

6.8 depthWrite

-By default, writes to the depth buffer when depthFunc passes will happen for opaque surfaces and not for translucent surfaces. Blended surfaces can have the depth writes forced with this function. - -

6.9 Detail

-This feature was not used in Quake III Arena maps, but should still function. -Designates this stage as a detail texture stage, which means that if the c_var, r_detailtextures, is set to 0 then this stage will be ignored (detail will not be displayed). This keyword, by itself, does not affect rendering at all. If you do put in a detail texture, it has to conform to very specific rules. Specifically, the blendFunc: - -

blendFuncGL_DST_COLOR GL_SRC_COLOR - -

This is also the simple blend function: blendfuncfilter - -

And the average intensity of the detail texture itself must be around 127. - -

Detail is used to blend fine pixel detail back into a base texture whose scale has been increased significantly. When detail iswritten into a set of stage instructions, it allows the stage to be disabled by the c_var console command setting "r_detailtextures 0". - -

A texture whose scale has been increased beyond a 1:1 ratio tends not to have very high frequency content. In other words, one texel can cover a lot of real estate. Frequency is also known as "detail." Lack of detail can appear acceptable if the player never has the opportunity to see the texture at close range. But seen close up, such textures look glaringly wrong within the sharp detail of the Quake III Arena environment. A detail texture solves this problem by taking a noisy "detail" pattern (a tiling texture that appears to have a great deal of surface roughness) and applying it to the base texture at a very densely packed scale (that is, reduced from its normal size). This is done programmatically in the -shader, and does not require modification of the base texture. Note that if the detail texture is the same size and scale as the base texture that you may as well just add the detail directly to the base texture. The theory is that the detail texture's scale will be so high compared to the base texture (e.g.; 9 detail texels fitting into 1 base texel) that it is literally impossible to fit that detail into the base texture directly. - -

For this to work, the rules are as follows: - -

    - -
  1. the lightmap must be rendered first. This is because the subsequent detail texture will be modifying the lightmap in the framebuffer directly; -
  2. the detail texture must be rendered next since it modifies the lightmap in the framebuffer; -
  3. the base texture must be rendered last; -
  4. the detail texture MUST have a mean intensity around 127-129. If it does not then it will modify the displayed texture's perceived brightness in the world; -
  5. the detail shader stage MUSThave the "detail" keyword or it will not be disabled if the user uses the "r_detailtextures 0" setting; -
  6. the detail stage MUST use "blendFunc GL_DST_COLOR GL_SRC_COLOR". Any other BlendFunc will cause mismatches in brightness between detail and non-detail views.; -
  7. the detail stage should scale its textures by some amount (usually between 3 and 12) using "tcMod" to control density. This roughly corresponds to coarseness. A very large number, such as 12, will give very fine detail, however that detail will disappear VERY quickly as the viewer moves away fromthe wall since it will be MIP mapped away. A very small number, e.g. 3, gives diminishing returns since not enough is brought in when the user gets very close. I'm currently using values between 6 and 9.5. You should use non-integral numbers as much as possible to avoid seeing repeating patterns. -
  8. detail textures add one pass of overdraw, so there is a definite performance hit . -
  9. detail textures can be shared, so designers may wish to define only a very small handful of detail textures for common surfaces such as rocks, etc.
- -

An example (non-existent) detailshader is as follows: -

Example: Texture with Detail - -

-textures/bwhtest/foo
-{
-// draw the lightmap first
-{
-map $lightmap
-rgbGen identity
-}
-// modify the lightmap in the framebuffer by
-// a highly compressed detail texture
-{
-map textures/details/detail01.tga
-blendFunc GL_DST_COLOR GL_SRC_COLOR
-// YOU MUST USE THIS!!
-detail
-// for the detail to be disabled, this must be present
-tcMod scale 9.1 9.2
-}
-// now slap on the base texture
-{
-map textures/castle/blocks11b.tga
-blendFunc filter
-}
-}
-
- -

6.10 alphaFunc <func>

-Determines the alpha test function used when rendering this map. Valid values are GT0, LT128, and GE128. These -correspond to "GREATER THAN 0", "LESS THAN 128", and "GREATER THAN OR EQUAL TO 128". This function is used when determining if a pixel should be written to the framebuffer. For example, if GT0 is specified, the only the portions of the texture map with corresponding alpha values greater than zero will be written to the framebuffer. By default alpha testing is disabled. - -

Both alpha testing and normal alpha blending can be used to get textures that have see-through parts. The difference is that alphaFunc is an all-or-nothing test, while blending smoothly blends between opaque and translucent at pixel edges. Alpha test can also be used with depthwrite, allowing other effects to be conditionally layered on top of just the opaque pixels by setting depthFunc to equal. - -

Back | Home | Next - - - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/entries deleted file mode 100644 index 8be2af6c..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/ch06 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -pg6_1.htm -file - - - - -2012-04-01T16:52:33.928390Z -6206143dabc34a8fe4ff278dcc4de0d0 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -10364 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base deleted file mode 100644 index f6b94f0c..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/.svn/text-base/pg6_1.htm.svn-base +++ /dev/null @@ -1,145 +0,0 @@ - - -Quake III Arena Shader Manual: Notes on Alpha Channels - - - -

Q3Radiant Shader Manual

-
-

7 Notes on Alpha Channels

-To use some blend modes of alphaFunc, you must add an alpha channel to your texture files. Photoshop can do this. -Paintshop Pro has the ability to make an alpha channel but cannot work directly in to it. In Photoshop you want to set the type to Mask. Black has a value of 255. White has a value of 0. The darkness of a pixel's alpha value determines the -transparency of the corresponding RGB value in the game world. Darker = more transparent. - -

Care must be taken when reworking textures with alpha channels. Textures without alpha channels are saved as 24 bit images while textures with alpha channels are saved as 32 bit. If you save them out as 24 bit, the alpha channel is erased. Note: Adobe Photoshop will prompt you to save as 32, 24 or 16 bit. Choose wisely. If you save a texture as 32 bit and you don't actually have anything in the alpha channel, Quake III Arena may still be forced to use a lower quality texture format (when in 16 bit rendering) than if you had saved it as 24 bit. - -

To create a texture that has "open" areas, make those areas black in the alpha channel and make white the areas that are to be opaque. Using gray shades can create varying degrees of opacity/transparency. - -

Example: An opaque texture with see-through holes knocked in it. - -

-textures/base_floor/pjgrate1
-{
-	surfaceparm metalsteps
-	cull none
-
-	// A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES
-	{
-		map textures/base_floor/pjgrate1.tga
-		blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
-		alphaFunc GT0
-		depthWrite
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendFunc GL_DST_COLOR GL_ZERO
-		depthFunc equal
-	}
-	}
-
- -

The alpha channel can also be used to merge a texture (including one that contains black) into another image so that the merged art appears to be and opaque decal on a solid surface (unaffected by the surface it appears to sit on), without actually using an alpha function. The following is a very simple example: - -

- -
Figure 1 - -

Start with a TGA file image. In this case, a pentagram on a plain white field (figure 1A). The color of the field surrrounding the image to be merged is not relevant to this process (although having a hard-edged break between the image to be isolated and the field makes the mask making process easier). Make an alpha channel. The area of the image to be merged with another image is masked off in white. The area to be masked out (notused) is pure black (figure 1B). The image to be merged into is greenfloor.tga (figure 1C). - -

Make a qer_editorimage of greenfloor.tga. This is placed inthe frame buffer as the map image for the texture. By -using GL_SRC_ALPHA as the source part of the blend equation, the shader adds in only the non-black parts of the pentagram. -Using GL_MINUS_ONE_SRC_ALPHA, the shader inverts the pentagram's alpha channel and adds in only the non-black parts of the green floor. - -

In a like manner, the alpha channel can be used to blend the textures more evenly. A simple experiment involves using a -linear gradiant in the alpha channel (white to black) and merging two textures so they appear to cross fade into each other. - -

A more complicated experiment would be to take the pentagram in the first example and give it an aliased edge so that the pentagram appeared to fade or blend into the floor. - -

8 Troubleshooting Shaders

-If a shader is not working, look first for syntax errors. -
  • Are the brackets correctly set? -
  • Do you have too many parameter values on a line? -
  • Are you using a word in a parameter that wants a numerical value? -
  • Are you using a numerical value in a parameter that wants a word? -
  • Are the path names to your textures correct? -
  • Are your texture names correct? There is a chance that the texture name is too long or too complex. Try renaming a -texture with a shorter, simpler name.
- -

9 Creating New Textures

-If you are familiar with the required tools, creating new assets for use in Quake III Arena is not particularly difficult. As a general rule, you should create new directories for each map with names different from the names used by id. If you are making a map that will be called "H4x0r_D00M", every directory containing new assets for that map should be titled H4x0r_D00M. This is to try and avoid asset directories overwriting each other as the editor and the gameload in assets. - -

9.1 Tools Needed

-Any combination of graphic programs and plug-ins that canout put a 24 bit MS windows compatible Targa (.tga) or JPEG (.jpg) graphic file.If you plan to make textures that will have an alpha channel component (a 4th 8-bit greyscale channel that is used by the shaders to further manipulate the art), you must have a program that can create 32-bit art with that fourth channel. - -

Adobe Photoshop has the ability to easily create alpha channels. PaintShop Pro from JASC (v5.0+) can also make an -alpha channel by creating a mask and naming it "alpha". - -

Generally speaking, regardless of the program used, we found it best to do most of the art manipulation of the alpha channel in a separate layer or file and then paste it into the alpha channel before saving. - -

9.2 Setting up Files

-The editor and the game program look for assets to be located along the paths set up in your project file. Start by creating -a directory for you new textures by creating file folders to make a directory path as follows: - -

quake3\baseq3\textures\[mymapname]
- -

The installation of Q3Radiant will create a text document called "shaderlist.txt" in the following path: - -

quake3\baseq3\scripts\shaderlist.txt
- -

Q3Radiant will use the contents of this script to grab your new textures for inclusion in the game. The contents of shaderlist.txt document will contain a listing of all the shader documents that were used by id Software to create Quake III Arena. - -

Since you will obviously want to create your own shaders, you need to put them in separate folders and create a new shader script for them. - -

If you plan to work on several maps at once and want to distinguish between textures used in each map, simply add additional map names here. For map and mod makers, we STRONGLY recommend that any new shader scripts created use the name of the map or mod in the shader file name. We know we can't avoid every incident of files overwriting each other, but we certainly can advise you how to try. - -

Now, in the scripts directory that you just created, create another text file and call it: - -

[mymapname].shader
- -

This file will contain the shader scripts you write to modify a particular texture. - -

9.3 Rules and Guidelines

-
9.3.1 Rules
-Follow these rules when creating textures for the Quake III Arena engine: - -
  • Save your textures into your new [map name] directories. -
  • Don't use the same names that id used for textures. It will cause problems. -
  • For best quality, save textures without an alpha channel as 24 bit TARGA files. Using JPEG files can save memory space, but at the risk of losing detail and depth in the texture. JPEG files cannot be used for textures requiring an alpha channel. -
  • Textures containing an alpha channel must be saved as32 bit TARGA files. -
  • If a new texture requires no further manipulation, it does not need a shader script. -
  • Size textures in powers of 2. Example: 8x8, 16x16,32x32, 64x64 pixels and so on. -
  • Textures don't need to be square. A 32x256 pixel texture is perfectly acceptable.
- -

9.3.2 Guidelines
-The following are some things the id designers learned about textures. - -
  • Create textures in "suites" built around one or two large textures with a number of much smaller supporting detail or accent textures. -
  • Very large textures are possible, but some video cards compress textures larger than 256x256 pixels. -
  • Textures are grouped alphabetically by name in the texture display window, so you may want to give suites of textures -similar names. -
  • Use the shader function qe3_editorimage to conserve memory when making multiple versions of a single texture (as in the case of a glowing texture with several light values). -
  • Unless you are creating special effects or textures designed to draw the player's eye to a specific spot, muted, middle value colors work best with the game engine. -
  • Extremely busy (a lot of fussy detail) textures can break up or form visually unpleasant patterns when seen at distances.
- -

9.4 Making the .pk3 File>

-When you go to distribute your creation to the gaming world, you need to put your newly created map, textures, bot area files, and shader documents into an archive format called a "pk3" file. You do not need to include the shaderlist.txt file, since that is only used by the editor. You will need to keep the paths to the various assets the same. So your paths should be something like this: - -

Textures: baseq3/textures/[mymapnamefolder] -
Bsp & aas: baseq3/maps/mymapname.bsp, mymapname.aas -
Shader scripts: baseq3/scripts/mymapname.shader - -

You need to use an archiving program call Winzip to make the pk3 file. Get Winzip from http://www.winzip.com/winzip/winzip.htm - -
Make a zip archive called mymapname.zip - -
Zip all the required assets into a zip archive file (Quake III Arena DOES support compressed pk3 files). - -
Rename the zip archive to mymapname.pk3 - -
Put it where the Quake III Arena community can find it. -

Back | Home | Next - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm deleted file mode 100644 index f6b94f0c..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/ch06/pg6_1.htm +++ /dev/null @@ -1,145 +0,0 @@ - - -Quake III Arena Shader Manual: Notes on Alpha Channels - - - -

Q3Radiant Shader Manual

-
-

7 Notes on Alpha Channels

-To use some blend modes of alphaFunc, you must add an alpha channel to your texture files. Photoshop can do this. -Paintshop Pro has the ability to make an alpha channel but cannot work directly in to it. In Photoshop you want to set the type to Mask. Black has a value of 255. White has a value of 0. The darkness of a pixel's alpha value determines the -transparency of the corresponding RGB value in the game world. Darker = more transparent. - -

Care must be taken when reworking textures with alpha channels. Textures without alpha channels are saved as 24 bit images while textures with alpha channels are saved as 32 bit. If you save them out as 24 bit, the alpha channel is erased. Note: Adobe Photoshop will prompt you to save as 32, 24 or 16 bit. Choose wisely. If you save a texture as 32 bit and you don't actually have anything in the alpha channel, Quake III Arena may still be forced to use a lower quality texture format (when in 16 bit rendering) than if you had saved it as 24 bit. - -

To create a texture that has "open" areas, make those areas black in the alpha channel and make white the areas that are to be opaque. Using gray shades can create varying degrees of opacity/transparency. - -

Example: An opaque texture with see-through holes knocked in it. - -

-textures/base_floor/pjgrate1
-{
-	surfaceparm metalsteps
-	cull none
-
-	// A GRATE OR GRILL THAT CAN BE SEEN FROM BOTH SIDES
-	{
-		map textures/base_floor/pjgrate1.tga
-		blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
-		alphaFunc GT0
-		depthWrite
-		rgbGen identity
-	}
-	{
-		map $lightmap
-		rgbGen identity
-		blendFunc GL_DST_COLOR GL_ZERO
-		depthFunc equal
-	}
-	}
-
- -

The alpha channel can also be used to merge a texture (including one that contains black) into another image so that the merged art appears to be and opaque decal on a solid surface (unaffected by the surface it appears to sit on), without actually using an alpha function. The following is a very simple example: - -

- -
Figure 1 - -

Start with a TGA file image. In this case, a pentagram on a plain white field (figure 1A). The color of the field surrrounding the image to be merged is not relevant to this process (although having a hard-edged break between the image to be isolated and the field makes the mask making process easier). Make an alpha channel. The area of the image to be merged with another image is masked off in white. The area to be masked out (notused) is pure black (figure 1B). The image to be merged into is greenfloor.tga (figure 1C). - -

Make a qer_editorimage of greenfloor.tga. This is placed inthe frame buffer as the map image for the texture. By -using GL_SRC_ALPHA as the source part of the blend equation, the shader adds in only the non-black parts of the pentagram. -Using GL_MINUS_ONE_SRC_ALPHA, the shader inverts the pentagram's alpha channel and adds in only the non-black parts of the green floor. - -

In a like manner, the alpha channel can be used to blend the textures more evenly. A simple experiment involves using a -linear gradiant in the alpha channel (white to black) and merging two textures so they appear to cross fade into each other. - -

A more complicated experiment would be to take the pentagram in the first example and give it an aliased edge so that the pentagram appeared to fade or blend into the floor. - -

8 Troubleshooting Shaders

-If a shader is not working, look first for syntax errors. -
  • Are the brackets correctly set? -
  • Do you have too many parameter values on a line? -
  • Are you using a word in a parameter that wants a numerical value? -
  • Are you using a numerical value in a parameter that wants a word? -
  • Are the path names to your textures correct? -
  • Are your texture names correct? There is a chance that the texture name is too long or too complex. Try renaming a -texture with a shorter, simpler name.
- -

9 Creating New Textures

-If you are familiar with the required tools, creating new assets for use in Quake III Arena is not particularly difficult. As a general rule, you should create new directories for each map with names different from the names used by id. If you are making a map that will be called "H4x0r_D00M", every directory containing new assets for that map should be titled H4x0r_D00M. This is to try and avoid asset directories overwriting each other as the editor and the gameload in assets. - -

9.1 Tools Needed

-Any combination of graphic programs and plug-ins that canout put a 24 bit MS windows compatible Targa (.tga) or JPEG (.jpg) graphic file.If you plan to make textures that will have an alpha channel component (a 4th 8-bit greyscale channel that is used by the shaders to further manipulate the art), you must have a program that can create 32-bit art with that fourth channel. - -

Adobe Photoshop has the ability to easily create alpha channels. PaintShop Pro from JASC (v5.0+) can also make an -alpha channel by creating a mask and naming it "alpha". - -

Generally speaking, regardless of the program used, we found it best to do most of the art manipulation of the alpha channel in a separate layer or file and then paste it into the alpha channel before saving. - -

9.2 Setting up Files

-The editor and the game program look for assets to be located along the paths set up in your project file. Start by creating -a directory for you new textures by creating file folders to make a directory path as follows: - -

quake3\baseq3\textures\[mymapname]
- -

The installation of Q3Radiant will create a text document called "shaderlist.txt" in the following path: - -

quake3\baseq3\scripts\shaderlist.txt
- -

Q3Radiant will use the contents of this script to grab your new textures for inclusion in the game. The contents of shaderlist.txt document will contain a listing of all the shader documents that were used by id Software to create Quake III Arena. - -

Since you will obviously want to create your own shaders, you need to put them in separate folders and create a new shader script for them. - -

If you plan to work on several maps at once and want to distinguish between textures used in each map, simply add additional map names here. For map and mod makers, we STRONGLY recommend that any new shader scripts created use the name of the map or mod in the shader file name. We know we can't avoid every incident of files overwriting each other, but we certainly can advise you how to try. - -

Now, in the scripts directory that you just created, create another text file and call it: - -

[mymapname].shader
- -

This file will contain the shader scripts you write to modify a particular texture. - -

9.3 Rules and Guidelines

-
9.3.1 Rules
-Follow these rules when creating textures for the Quake III Arena engine: - -
  • Save your textures into your new [map name] directories. -
  • Don't use the same names that id used for textures. It will cause problems. -
  • For best quality, save textures without an alpha channel as 24 bit TARGA files. Using JPEG files can save memory space, but at the risk of losing detail and depth in the texture. JPEG files cannot be used for textures requiring an alpha channel. -
  • Textures containing an alpha channel must be saved as32 bit TARGA files. -
  • If a new texture requires no further manipulation, it does not need a shader script. -
  • Size textures in powers of 2. Example: 8x8, 16x16,32x32, 64x64 pixels and so on. -
  • Textures don't need to be square. A 32x256 pixel texture is perfectly acceptable.
- -

9.3.2 Guidelines
-The following are some things the id designers learned about textures. - -
  • Create textures in "suites" built around one or two large textures with a number of much smaller supporting detail or accent textures. -
  • Very large textures are possible, but some video cards compress textures larger than 256x256 pixels. -
  • Textures are grouped alphabetically by name in the texture display window, so you may want to give suites of textures -similar names. -
  • Use the shader function qe3_editorimage to conserve memory when making multiple versions of a single texture (as in the case of a glowing texture with several light values). -
  • Unless you are creating special effects or textures designed to draw the player's eye to a specific spot, muted, middle value colors work best with the game engine. -
  • Extremely busy (a lot of fussy detail) textures can break up or form visually unpleasant patterns when seen at distances.
- -

9.4 Making the .pk3 File>

-When you go to distribute your creation to the gaming world, you need to put your newly created map, textures, bot area files, and shader documents into an archive format called a "pk3" file. You do not need to include the shaderlist.txt file, since that is only used by the editor. You will need to keep the paths to the various assets the same. So your paths should be something like this: - -

Textures: baseq3/textures/[mymapnamefolder] -
Bsp & aas: baseq3/maps/mymapname.bsp, mymapname.aas -
Shader scripts: baseq3/scripts/mymapname.shader - -

You need to use an archiving program call Winzip to make the pk3 file. Get Winzip from http://www.winzip.com/winzip/winzip.htm - -
Make a zip archive called mymapname.zip - -
Zip all the required assets into a zip archive file (Quake III Arena DOES support compressed pk3 files). - -
Rename the zip archive to mymapname.pk3 - -
Put it where the Quake III Arena community can find it. -

Back | Home | Next - - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/index.htm b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/index.htm deleted file mode 100644 index a7220ef4..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/index.htm +++ /dev/null @@ -1,76 +0,0 @@ - - -Quake III Arena Shader Manual: Table of Contents - - - -

-

Q3Radiant Shader Manual

- -

Revision #12

- -

By Paul Jaquays and Brian Hook - -

(with additional material by John Carmack, Christian Antkow, Kevin Cloud, & Adrian Carmack) -

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version

-
-

Table of Contents

-1 Preface: Making Your Own Shaders -
2 Introduction - - -3 General Shader Keywords - - -4 Q3MAP Specific Shader Keywords - - -5 Editor specific shader instructions - - -6 Stage Specific Keywords - - -7 Notes on Alpha Channels -
8 Troubleshooting Shaders -
9 Creating New Textures - -
Appendix A: targetShaderName and targetNewShaderName - - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries deleted file mode 100644 index 0f8662dc..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/q3ashader_manual_files -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -image002.jpg -file - - - - -2012-04-01T16:52:34.370416Z -d1016d1f0aa8bc3388f0f8df18498597 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -26981 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/prop-base/image002.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/text-base/image002.jpg.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/.svn/text-base/image002.jpg.svn-base deleted file mode 100644 index 9cc0ffc7d070348330ed1362946a82c50790b7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26981 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ŷ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 diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/image002.jpg b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/q3ashader_manual_files/image002.jpg deleted file mode 100644 index 9cc0ffc7d070348330ed1362946a82c50790b7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26981 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ŷ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 diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/entries deleted file mode 100644 index 5ec58bc6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual/styles -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -q3rad.css -file - - - - -2012-04-01T16:52:34.068398Z -f65ac3e346f227bd9de19518dacd5ba1 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -760 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/.svn/text-base/q3rad.css.svn-base +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/q3rad.css b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/q3rad.css deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/styles/q3rad.css +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/entries b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/entries deleted file mode 100644 index f248bb42..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/entries +++ /dev/null @@ -1,547 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3Map2Shader_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -start_files -dir - -start.htm -file - - - - -2012-04-01T16:52:33.148346Z -67756d2c6bf7dd7c5f58e46e6a3179d8 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1681 - -contents.htm -file - - - - -2012-04-01T16:52:33.147346Z -d245b577f67e9f2d2db5b1a574f706d3 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -9399 - -scripts -dir - -apA.htm -file - - - - -2012-04-01T16:52:33.150346Z -c602d8f16597bcfa967fa846f70211f6 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2226 - -apB.htm -file - - - - -2012-04-01T16:52:33.300355Z -5dd1614920e4dd9f76de24cc95207a02 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -8445 - -apC.htm -file - - - - -2012-04-01T16:52:33.302355Z -16626e2447e5d1ed73746693886ba390 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -6420 - -apI.htm -file - - - - -2012-04-01T16:52:33.303355Z -4acd1748c93dd310c850b5a3b3acddaa -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -9601 - -ch0.htm -file - - - - -2012-04-01T16:52:33.306355Z -59032b1f4a54389eeca8ed815ada209b -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -4562 - -ch1.htm -file - - - - -2012-04-01T16:52:33.308355Z -2db767d4589bd125816b6b5f907bdd76 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -20183 - -ch2.htm -file - - - - -2012-04-01T16:52:33.311355Z -676105bd356ba30bec477f847a9f1155 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -17955 - -ch3.htm -file - - - - -2012-04-01T16:52:33.313355Z -44f2f9587e2a4a4567fae5939f8344ea -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -45582 - -ch4.htm -file - - - - -2012-04-01T16:52:33.316355Z -3bdac165062d83a0f9b0b0583440f386 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -21253 - -images -dir - -ch5.htm -file - - - - -2012-04-01T16:52:33.318356Z -ec4178f372207474065adf453684fe34 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -4854 - -ch6.htm -file - - - - -2012-04-01T16:52:33.319356Z -2c8b74e58155b1aba180def6d4f42176 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -34422 - -ch7.htm -file - - - - -2012-04-01T16:52:33.322356Z -eba43b8ed97ca25027d0cf57f47bf39f -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -3499 - -ch8.htm -file - - - - -2012-04-01T16:52:33.323356Z -9232ac93df079a9a29bd7a1b131cf8c3 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1290 - diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apA.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apA.htm.svn-base deleted file mode 100644 index 47e38435..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apA.htm.svn-base +++ /dev/null @@ -1,58 +0,0 @@ - - -Q3Map2 Shader Manual: Triggerable Shader Entities - - - - - - - - - - -
- - - -

-Appendix A - Triggerable Shader Entities
-
-Q3Map2 Shader Manual


- - - -By TTimo, 31.08.01

- -The targetShaderName and targetShaderNewName keys can be used with any entity that supports the target key (the entity instance does not actually have to use the target key for these new keys to work). If both are defined, then when the entity decides to activate its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value.

- -For example this would make it look like the red light shader is "turning on": - -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_on"
-
- -And this would turn it back off: - -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_off" 
-
- -Note that the ORIGINAL shader name is used in both instances, not whatever it happens to be currently. Also, of course, this will happen globally. If the mapper wanted to affect only a certain set of red lights, he/she would need to make a unique shader name to be used with that set.

- -The code that supports these keys is in G_UseTargets in g_utils.c

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apB.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apB.htm.svn-base deleted file mode 100644 index 7a90b54d..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apB.htm.svn-base +++ /dev/null @@ -1,131 +0,0 @@ - - -Q3Map2 Shader Manual: Terrain - - - - - - - - - - -
- - - -

-Appendix B - Terrain
-
-Q3Map2 Shader Manual


- - - -Q3Map2 terrain has changed radically since Quake III: Team Arena first hit the shelves. Alphamapped terrain shaders are difficult to set up, limiting and lacks the ability for the mapper to fine tune the effect. The new terrain improvements in Q3Map2 have removed these difficulties, allowing the mapper to fully exploit terrain shaders for breathtaking outdoor scenes. This section will assume that you are already familiar with the method of setting up a standard alphamapped terrain as described in the Terrain Construction for Quake 3 Engine Games manual by Paul Jaquays, and will focus on the new enhanced features of Q3Map2 terrain.

- - - -
-
General Changes

- - - -Q3Map2 terrain has changed dramatically in terms of not only visually, but also in terms of how it is processed by the compiler. To ensure compatibility, there needs to be a few changes. Foremost, make sure that all terrain shader files are listed in the shaderlist.txt file.

- -Before using Q3Map2 alphamapped terrain, it must be noted that terrain is now handled completely different than before. Q3Map2 no longer looks for the word terrain in the shader name to determine whether or not it is an indexed shader. Instead it looks for q3map_indexed or q3map_terrain. For this reason, the alphamap terrain shaders have been slightly modified. If using Q3Map2 alphamaps, make sure that your "textures/common/terrain" and "textures/common/terrain2" shaders have been updated to the following:

- - - -
Script: "common" terrain shaders
-textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} -
- - -
- -Base Shader
-To simplify the terrain shader writing process, a base shader can be used as a template with subclassed shaders referencing it. This makes use of the q3map_baseShader directive. The base shader can consist of all q3map_* directives and must be processed before all other terrain shaders referencing it. The use of a base shader is recommend for all terrain shaders.

- -tcMod Functions
-q3map_tcMod can be used on terrain shaders to minimize any obvious texture tiling, particularly q3map_tcMod rotate. In some situations q3map_tcMod scale or the stage driven tcMod scale may be used to scale the textures - though typically tcGen texture projection functions are usually the preferred method.

- -tcGen Functions
-In most situations, terrain textures will need to be projected onto the terrain mesh. This is achieved by using either q3map_tcGen function or the stage specific tcGen. Any tcGen functions will overwrite any tcMod scale functions.

- - - -
-
Lightmapped Terrain

- - - -The foremost improvement to Q3Map2 terrain is the ability to use lightmaps as a lighting system rather than basic vertex lighting. This allows terrain to not only cast detailed shadows onto itself, but also allows other map geometry to cast shadows onto the terrain as well. The additional rendering pass of the lightmap creates a slight performance hit as a price for the improved visuals. Several new q3map_* directives are typically used to tweak the terrain lightmap:

- -q3map_nonPlanar
-Required on all terrain shaders, q3map_nonPlanar allows shadows to be cast across non-planar edges. This fixes a problem where lightmapped terrain would not light properly across uneven surfaces.

- -q3map_lightmapAxis
-Optionally used, q3map_lightmapAxis can be used to specify the axis in which the lightmap is projected from. This is typically used on normal triangle-quad souped terrain and is set implicitly to "q3map_lightmapAxis z" with q3map_terrain. It is not recommended for terrain with caves or undersides.

- -q3map_shadeAngle
-Most terrain artists will choose to enable triangle edge shadow smoothing to reduce the appearance of sharp shadow edges across the terrain mesh. q3map_shadeAngle specifies the triangle edge angle at which the light will be diffused. For best results, it is recommended that you start with low values and tweak the angle parameter in small increments until a satisfactory result is produced. Overly high values will wash out shadow details.

- -q3map_lightmapMergable
-Setting q3map_lightmapMergable merges all terrain into one seamless lightmap, reducing the appearance of artifacts spanning across separate lightmap images.

- -q3map_lightmapSampleSize
-Lightmapped terrain can be very memory intensive as Q3Map2 has to typically generate a large amount of lightmap data. q3map_lightmapSampleSize can be used to reduce the amount of lightmap memory used by limiting the resolution of the lightmap images. Similarly, it can also be used to increase the lightmap resolution at the cost of memory.

- -q3map_lightmapSampleOffset
-If experiencing lightmap splotches over the surface of terrain lightmaps, q3map_lightmapSampleOffset can be used to fix this. For best results, start with small numbers (default 1.0) and slowly increase this value until the splotches disappear. Overly high values will cause unsatisfactory results.

- - - -
-
AlphaMod Dotproduct Terrain

- - - -AlphaMod dotproduct terrain is a revolutionary way in which Q3Map2 terrain is blended. It removes the need for an alphamap and metashader and automatically determines the blending of terrain depending on the vertex normals of the terrain mesh. Equally important, this new system removes the need of a triangle-quad grid, allowing the designer to create a terrain mesh using any triangle shape or size.

- - - -
-
AlphaMod Volume Terrain

- - - -Following the automatic generation of dotproduct blending, alphaMod volume terrain blending was developed to give direct control of the alpha blending back to the designer. Using this system the designer can modify the exact location and amount of blending to occur, directly from within the editor.

- - - - - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apC.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apC.htm.svn-base deleted file mode 100644 index 51bf93b6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apC.htm.svn-base +++ /dev/null @@ -1,117 +0,0 @@ - - -Q3Map2 Shader Manual: Foghull - - - - - - - - - - -
- - - -

-Appendix C - Foghull
-
-Q3Map2 Shader Manual


- - -Most recent Quake III engine games are programmed with a feature known as distance clipping used to clip (cull) map geometry beyond a user set distance. At the time of Quake III Arena's release, distance clipping was not an available feature. The Q3Map2 foghull feature was designed to simulate true distance clipping for Quake III Arena and Team Arena games.

- - - -
-
What is a Foghull?

- - - -Farplane distance clipping is a feature used to cull (remove) the drawing of polygons beyond a certain distance from the player in an attempt to improve performance. It is typically used on large, open terrain maps with little vis-blocking structures. Through the use of distance clipping a maximum vis distance is set, which provides the culling of rendered polygons. Fog is used to hide the effect of polygons appearing and disappearing by obscuring the maximum distance that the player can see.

- -Since distance clipping is not a feature natively built into Quake III Arena, using distance culling would result in a hall of mirrors (HOM) effect where the culled geometry begins, since nothing is being drawn in the frame buffer. To compensate for this, the foghull feature uses a series of six skybox images that are drawn in place of the absent culled geometry, thus preventing the HOM effect.

- - - -
-
Skybox Images

- - - -The skybox images used with the foghull feature should never be actually seen since the idea is to use the fog to obsure the maximum distance that the player can see. It only exists to prevent the HOM effect. To pull this off in a convincing manner, the skybox images should be six identical 8x8 pixel (to save on texture memory) textures each filled with a flat color matching the exact color of the fog. The six skybox images must be named in accordance to the skyParms farbox convention, using the _ft, _rt, _bk, _lf, _up, _dn suffixes.

- - - -
-
Foghull Shaders

- - - -Two shaders are required when using the foghull feature, a fog volume shader and a skybox shader, both of which are simple, standard shaders.

- -The color of the fog used must match the color used in the skybox images. Any decent image editing software will give you the three RGB color values of your skybox images, which must be normalized by dividing by 255. As with any other fog shader, the fogParms and surfaceparm fog keywords must be present.

- - - -
Script: Fog Volume Shader
-textures/env/fog1024 -{ - fogParms ( 0.8 0.8 0.8 ) 1024 //Normalized RGB, distance to opaque - - surfaceparm fog //Must be used - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - - qer_editorImage textures/sfx/fog_grey.tga - qer_trans 0.4 -} -
- - - -The skyParms and surfaceparm sky keywords must be used to create the skybox "hull" of the map. The skyParms farbox value must point to the base name of the skybox images (sans suffix). Optional surface emitted sun lighting can be added using q3map_skylight with q3map_sun or q3map_sunExt (see Appendix I: Light Emitting Shaders).

- - - -
Script: Skybox Shader
-textures/skies/foghullsky -{ - skyParms textures/skies/foghullsky 0 - //farbox cloudheight nearbox - - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm sky //Must be used - surfaceparm trans -} -
- - - - -
-
Entity Key Value Pairs

- - - -To activate the foghull feature, the _foghull and _farplanedist worldspawn entity key/value pairs must be set in the Entity Inspector (in Radiant, select any non-entity brush and press "N").

- -The _foghull key's value works similar to that of terrain entities. It must point to the name of the skybox shader, minus the standard "textures/" prefix. For the skybox shader example above with the shader name "textures/skies/foghullsky", you would use a _foghull value of "skies/foghullsky".

- -The _farplanedist value is simply the distance at which polygons will begin to get culled. One important note is that the _farplanedist value must be greater than the distance to opaque value set in the fog shader. In the above fog shader, the distance to opaque value was set to 1024 game units. The _farplanedist value must therefore be greater than 1024, otherwise the HOM effect will appear.

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apI.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apI.htm.svn-base deleted file mode 100644 index 77adb403..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/apI.htm.svn-base +++ /dev/null @@ -1,260 +0,0 @@ - - -Q3Map2 Shader Manual: Light Emitting Shaders - - - - - - - - - - -
- - - -

-Appendix I - Light Emitting Shaders
-
-Q3Map2 Shader Manual


- - - -Q3Map2 surface light and sky shaders are quite different than the original Quake III shaders. As new lighting algorithms were introduced, new shader keywords were created to accompany or replace the original keywords. This section will illustrate the differences between these shaders.

- - - -
-
Surface Lights

- - - -*nothing here yet*
-Mention:
-*q3map_lightRGB red green blue

- - - -
-
Skies

- - - -Originally, sky shaders were just very large surface lights that casted parallel directional lighting. With Q3Map2, there are a few differences that sets sky shaders apart from surface lights. First of all, we'll take a look at how the pre-Q3Map2 shaders were set up:

- - - -
Script: Pre-Q3Map2 sky shaders
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - //farbox cloudheight nearbox - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sun 1 1 1 140 -35 25 //red green blue intensity degrees elevation - q3map_lightSubdivide 256 //sets a pointlight every 256 game units - q3map_surfaceLight 200 //emits 200 units of light - - surfaceparm sky //flags compiler that this is sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - - -Keep in mind that this is a generalized shader, and that there can be a lot of different variations to yield different effects. Take a look at some of the original Quake III Arena shaders for more examples. In this screenshot (compiled with LIGHT -fast, viewed with /r_lightmap 1), the effect isn't bad, but the shadows are a bit jagged.

- -


- -Q3Map2 sky shaders improves on the way lightmaps are calculated, improving both quality and compiler performance. This is essentially the same shader with some small changes:

- - - -
Script: Using q3map_skyLight
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sun 1 1 1 140 -35 25 - q3map_skylight 100 3 //amount iterations - - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - - -What we've done here is replace q3map_lightSubdivide and q3map_surfacelight with q3map_skylight which yields more uniform shadows at a fraction of the compile time. However, this also generates the "stadium light" effect - producing some unwanted shadows. We'll fix this later.

- -


- -To solve the problem with jagged shadow edges, we can smooth out the shadows by blurring the lightmap. Depending on the type of lighting that you want to achieve for the sun (a cloudy day, for example), you can create a penumbra (half-shadow) effect using q3map_sunExt. This simulates the way sunlight bounces in certain conditions, creating a slight "jittering" effect. This is the same shader again with q3map_sunExt.

- - - -
Script: Using q3map_sunExt
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sunExt 1 1 1 140 -35 25 3 16 //adds deviance and samples - q3map_skylight 100 3 - - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - -In the following screenshot, you can see that the jagged shadow edges are gone.

- -


- -As mentioned above, you may be faced with problems involving the "stadium lights" effect when using q3map_skyLight. We can eliminate this problem by using higher values for the q3map_sunExt samples and q3map_skyLight iterations parameter, but at the cost of a higher compile time. For example, q3map_sunExt 1 1 1 140 -35 25 3 32 and q3map_skylight 100 6.

- -Note:
-Since the time that these screenshots were taken, the skylight subdivision code has been greatly improved (Q3Map2 2.5.14) for far more uniform lighting and faster compiles, so using higher iteration values can result in better quality, reducing the "stadium light" effect and without necessarily increasing compile times.

- -


- -A faster approximate alternative of getting rid of the "stadium lights" effect is to use q3map_lightmapFilterRadius.

- - - -
Script: Using q3map_lightmapFilterRadius
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sunExt 1 1 1 140 -35 25 3 16 - q3map_lightmapFilterRadius 0 8 //self other - q3map_skyLight 100 3 - - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - -The self and other parameters are the amount of filtering applied on the lightmap in world units. The self value is always set to "0" on sky shaders since skies don't have lightmaps. The q3map_lightmapFilterRadius directive should always be placed before any light-related directives that you want it to affect. In our case, we placed it after q3map_sunExt and before q3map_skyLight so that it filters the stadium lights, but won't blur the sun shadows which are already jittered. This produces very similar results without the long compile times.

- -
screenshot here


- -For additional information, see this thread:
-Shader Lighting Experiment

- - -
-
Lighting Effects

- - -Here are some additional features that you can use to create special lighting effects:
-*multiple suns by adding more than one q3map_sun or q3map_sunExt to shader
-*stuff about compiler switches
-*-skyfix
-*_skybox entity does not work with surfaceLight, must use skyLight

- - - - - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch0.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch0.htm.svn-base deleted file mode 100644 index 5898e5ad..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch0.htm.svn-base +++ /dev/null @@ -1,103 +0,0 @@ - - -Q3Map2 Shader Manual: Preface - - - - - - - - - - -
- - - -

-0 - Preface
-
-Q3Map2 Shader Manual


- - - -The Q3Map2 Edition of the Shader Manual

- -Q3Map2 is an updated version of the original Q3Map program used to compile .map files created in a level editor such as Radiant into .bsp files used by Quake III engine games. Since it's introduction, ydnar has added so many new features and improved efficiency to the degree where Q3Map2 has become the standard compiling program for the level editing community as well as for many commercial games.

- -While still accurate, the original QeRadiant Shader Manual written by the staff at id Software did not contain shader keywords pertaining to the new Q3Map2, hence the need for this updated version of the manual including recent developments to the compiler.

- -This manual is based on the original manual with some minor reformatting, edits and error corrections, but the main difference is the inclusion of Q3Map2 specific shader keywords. Additionally, this version also includes an expanded appendix with information on selected Q3Map2 features as well as a new chapter for shader keywords used specifically with third party Quake III engine games.

- -Since Q3Map2 is being updated with additional features on a regular basis, this manual will also be updated to reflect any new shader keywords being introduced so check back for updates.

- --Obsidian

- - - -
-
Credits

- - - -Q3Map2 Shader Manual
-Written by Obsidian and ydnar


- -The Q3Map2 Shader Manual is based on the QeRadiant Shader Manual - Revision #12. Other portions were adapted from the Q3Map2 Handbook (Beta Edition), the Q3Map2 Readme document, and from various discussions on the forums/IRC channels. All works were consulted with permission from the authors.

- -QeRadiant Shader Manual, Revision #12
-
    -
  • Written by Paul Jaquays and Brian Hook.
  • -
  • Additional material by John Carmack, Christian Antkow, Kevin Cloud and Adrian Carmack.
  • -
  • Converted into a web friendly version by John Hutton.
  • -
  • Appendix A by TTimo.
  • -
- -Q3Map2 Handbook (Beta Edition)
-
    -
  • Written by Jetscreamer, Shadowspawn and ydnar.
  • -
- -Q3Map2 Readme
-
    -
  • Written by ydnar
  • -
- -Special Thanks:
-
    -
  • Paul Jaquays for his support, feedback and for writing the original QeRadiant Shader Manual.
  • -
  • ydnar for Q3Map2, thereby making level editing 2x more fun at 1/10 the compile time. Thanks for his technical expertise and help in writing this manual.
  • -
- -This is not an id Software product. Do not contact them for support.

- - - -
-
Contact

- - - -Shader Manual Development
-Feel free to e-mail me if you have any suggestions, comments or error corrections. -meridanox@gmail.com

- -Q3Map2 Shader Manual at Shaderlab:
-http://shaderlab.com/q3map2/shader_manual/

- -Forums
-Quake 3 World Level Editing and Modeling Forum
-Splash Damage Q3Map2 Support Forum

- - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch1.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch1.htm.svn-base deleted file mode 100644 index d099447b..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch1.htm.svn-base +++ /dev/null @@ -1,249 +0,0 @@ - - -Q3Map2 Shader Manual: Introduction - - - - - - - - - - -
- - - -

-1 - Introduction
-
-Q3Map2 Shader Manual


- - - -The graphic engine for Quake III Arena has taken a step forward by putting much more direct control over the surface qualities of textures into the hands of designers and artists. In writing this manual, we have tried to define the concepts and tools that are used to modify textures in a way that, it is hoped, will be graspable by users who already have basic knowledge of computer graphics but are not necessarily computer programmers. It is not a tutorial, nor is it intended to be one.

- -The Manual for the Q3Radiant editor program contains a section called Creating New Assets that has the necessary information for setting up the files to create your own custom Quake III Arena shaders. You should follow a similar convention when creating your custom shaders. It is reproduced here for your convenience:

- - - -Quote: from Q3Radiant Editor Manual
-Creating New Assets
-If you are familiar with the required tools, creating new assets for use in Quake III Arena is not particularly difficult. As a rule, you should create new directories for each map with names different from the names used by id. If you are making a map that will be called "H4x0r_D00M", every directory containing new assets for that map should be titled H4x0r_D00M. This is to try and avoid asset directories overwriting each other as the editor and the game load in assets. -

- - - -It is recommended that you study the scripts in this document and in the individual shader scripts. Pay careful attention to syntax and punctuation. This is where you are most likely to make mistakes.

- - - -
-
What is a Shader?

- - - -Shaders are short text scripts that define the properties of a surface as it appears and functions in a game world (or compatible editing tool). By convention, the documents that contain these scripts usually has the same name as the texture set which contains the textures being modified (e.g; base, hell, castle, etc,). Several specific script documents have also been created to handle special cases, like liquids, sky and special effects. -For Quake III Arena, shader scripts are located in [Quake3]/baseq3/scripts.

- -A Quake III Arena shader file consists of a series of surface attribute and rendering instructions formatted within braces ("{" and "}"). Below you can see a simple example of syntax and format for a single process, including the Q3Map2 keywords and "Surface Parameters", which follow the first bracket and a single bracketed "stage":

- - - -Script: Syntax and Format
- -
-

-textures/liquids/lava-example
-{
-	deformVertexes wave sin 0 3 0 0.1
-	q3map_tessSize 64
-	surfaceparm lava
-	qer_editorimage textures/common/lava.tga
-	{
-		map textures/common/lava.tga
-	}
-}
-
- -
- -

-//Shader Name
-
-//General Shader Keywords
-//Q3Map2 Specific Shader Keywords
-//Q3Map2 Specific Surface Parameter Shader Keywords
-//Editor Specific Shader Keywords
-
-//Stage Specific Shader Keywords
-
-
-

- -Shaders need to be referenced by the map editor, compiler (Q3Map2) and game engine - each of which uses a different part of the shader. In the above example shader, the different sections are listed on the right.

- - - -
-
Shader Name & File Conventions

- - - -The first line is the shader name. It is used by the map editor, compiler, game engine, and models to reference the script and art files associated with the shader. Shader names can be up to 63 characters long. The names are often a mirror of a pathname to the texture image without the file extension (.tga or .jpg) or base dir (/quake3/baseq3 in our case), but they do not need to be.

- -Shaders that are only going to be referenced by the game code, not modeling tools, often are just a single word, like "projectionShadow" or "viewBlood".

- -Shaders that are used on character or other polygon mesh models need to mirror the art files, which allows the modelers to build with normal textures, then have the special effects show up when the model is loaded into the game.

- -Shaders that are placed on surfaces in the map editor commonly mirror an image file, but the "qer_editorimage" shader parameter can force the editor to use an arbitrary image for display.

- -Shader path names have a case sensitivity issue - on Windows, they aren't case sensitive, but on Unix they are. Try to always use lowercase for filenames, and always use forward slashes "/" for directory separators.

- -Following the shader name, is an opening bracket "{" designating the beginning of the shader contents, and a closing bracket "}" at the end of the shader. Notice that the contents of the above example shader are indented for better legibility.

- - - -
-
:q3map Suffix

- - - -The :q3map suffix can be added to the end of the shader name of "compile-time" shaders. This means that shaders with names marked with :q3map will be used by the compiler only and will be ignored by the game engine. This is especially useful if you want to add Q3Map2-relevant shader directives to basic lightmapped textures. This allows Quake 3 to generate the stages implicitly while Q3Map2 processes the Q3Map2-relevant sections of the shader. Consider the following shaders:

- - - -
Script: Without :q3map
-textures/q3map2_sm/floor -{ - surfaceparm metalsteps - { - map $lightmap - rgbGen identity - } - { - map textures/q3map2_sm/floor.tga - blendFunc GL_DST_COLOR GL_ZERO - } -} -
- - -Normally, we wouldn't need a shader for this texture to be displayed properly in game since the lightmap and texture stages are generated implicitly by Quake 3. The only reason why this shader exists is because we want Q3Map2 to process this surface as having metalsteps when the player walks on it. As a result, we end up writing out the entire shader.

- -To save ourselves from needless work, we can mark this shader as being compiler-only and have Quake 3 generate the lightmap and texture stages for us as it usually does by default:

- - -
Script: With :q3map
-textures/q3map2_sm/floor:q3map -{ - surfaceparm metalsteps -} -
- - - - -
-
Keyword Types

- - - -Only the shader name is case sensitive (use all lowercase). Shader keywords (aka. directives) are not, but by convention, you should use mixedCase (ie. q3map_alphaMod). Some of the shader keywords are order dependant, so it's good practice to keep all keyword of a similar type grouped together in the following order, from top-down:

- -
General Shader Keywords
-A shader may contain general shader keywords, which affects the shader's appearance globally (affects the entire shader), and changes the physical attributes of the surface that uses the shader. These attributes can affect the player. These parameters are executed at runtime, that is, in order to see the changes one does not need to re-compile the map.

- -
Q3Map2 Specific Shader Keywords
-The general shader keywords may be followed by Q3Map2 specific keywords. These keywords are used by the compiler to change the physical nature of the shader's surface and are also global.

- -
Q3Map2 Specific Surface Parameter Shader Keywords
-These are actually part of the Q3Map2 specific shader keywords that are flags telling the compiler about the physical nature of the shader's surface. These are also global.

- -
Editor Specific Shader Keywords
-Editor specific shader keywords change the appearance of the shader in the map editor only. It has no effect on the shader in game.

- -
Stage Specific Shader Keywords
-The shader may contain one or more "stages". Each stage consists of an opening and closing bracket along with the contents of the stage (indented). The stage will contain a texture map specification which specifies the source image, and various other stages specific shader keywords that modifies the appearance of the source image. Stage specific keywords are processed by the renderer. They are appearance changes only and have no effect on game play or game mechanics. Changes to any of these attributes will take effect as soon as the game goes to another level or vid_restarts (type command "/vid_restart" in the game console).

- - - -
-
Documenting With Comments

- - - -It is often useful to document parts of shaders, especially for testing purposes or when working with a development team of other designers. Comments added to shaders are ignored completely, making it useful for adding notes, or for temporarily removing keywords for testing.

- -Shaders use the same double forward slashes "//" convention common with many programming languages for commenting. All text after the "//" on the same line are ignored from the shader. See various shaders for examples.

- - - -
-
Key Concepts

- - - -Ideally, a designer or artist who is manipulating textures with shader files has a basic understanding of wave forms and knows about mixing colored light (high school physics sort of stuff). If not, there are some concepts you need to have a grasp on to make shaders work for you.

- -
Surface Effects vs. Content Effects vs. Deformation Effects
-Shaders not only modify the visible aspect of textures on a geometry brush, curve, patch or mesh model, but they can also have an effect on both the content, "shape," and apparent movement of those things. A surface effect does nothing to modify the shape or content of the brush. Surface effects include glows, transparencies and rgb (red, green, blue) value changes. Content shaders affect the way the brush operates in the game world. Examples include water, fog, nonsolid, and structural. Deformation effects change the actual shape of the affected brush or curve, and may make it appear to move.

- -
Power Has a Price
-The shader script gives the designer, artist and programmer a great deal of easily accessible power over the appearance of and potential special effects that may be applied to surfaces in the game world. But it is power that comes with a price tag attached, and the cost is measured in performance speed. Each shader phase that affects the appearance of a texture causes the Quake III engine to make another processing pass and redraw the world. Think of it as if you were adding all the shader-affected triangles to the total r_speed count for each stage in the shader script. A shader-manipulated texture that is seen through another shader-manipulated texture (e.g. a light in fog) has the effect of adding the total number of passes together for the affected triangles. A light that required two passes seen through a fog that requires one pass will be treated as having to redraw that part of the world three times.

- -
RGB Color
-RGB means "Red, Green, Blue". Mixing red, green and blue light in differing intensities creates the colors in computers and television monitors. This is called additive color (as opposed to the mixing of pigments in paint or colored ink in the printing process, which is subtractive color). In Quake III Arena and most higher-end computer art programs (and the color selector in Windows), the intensities of the individual Red, Green and Blue components are expressed as number values. When mixed together on a screen, number values of equal intensity in each component color create a completely neutral (gray) color. The lower the number value (towards 0), the darker the shade. The higher the value, the lighter the shade or the more saturated the color until it reaches a maximum value of 255 (in the art programs). All colors possible on the computer can be expressed as a formula of three numbers. The value for complete black is 0 0 0. The value for complete white is 255 255 255. However, the Quake III Arena graphics engine requires that the color range be "normalized" into a range between 0.0 and 1.0.

- -
Normalization: a Scale of 0 to 1
-The mathematics in Quake III Arena use a scale of 0.0 to 1.0 instead of 0 to 255. Most computer art programs that can express RGB values as numbers use the 0 to 255 scale. To convert numbers, divide each of the art program's values for the component colors by 255. The resulting three values are your Quake III Arena formula for that color component. The same holds true for texture coordinates.

- -
Texture Sizes
-TGA texture files are measured in pixels (picture elements). Textures are measured in powers of 2, with 16 x16 pixels being the smallest (typically) texture in use. Most will be larger. Textures need not be square, so long as both dimensions are powers of 2. Examples include: 32x256, 16x32, 128x16.

- -
Color Math
-In Quake III Arena, colors are changed by mathematical equations worked on the textures by way of the scripts or "programlets" in the shader file. An equation that adds to, or multiplies the number values in a texture causes it to become darker. Equations that subtract from or modulate number values in a texture cause it to become lighter. Either equation can change the hue and saturation of a color.

- -
Measurements
-The measurements used in the shaders are in either game units, color units, or texture units.

- -
    -Game unit: A game unit is used by deformations to specify sizes relative to the world. Game units are the same scale we have had since way back in the Wolfenstein days - 8 units equals one foot. The default texture scale used by the Radiant map editor results in two texels for each game unit, but that can be freely changed.

    - -Color units: Colors scale the values generated by the texture units to produce lighting effects. A value of 0.0 will be completely black, and a value of 1.0 will leave the texture unchanged. Colors are sometimes specified with a single value to be used across all red, green, and blue channels, or sometimes as separate values for each channel.

    - -Texture units: This is the normalized (see above) dimensions of the original texture image (or a previously modified texture at a given stage in the shader pipeline). A full texture, regardless of its original size in texels, has a normalized measurement of 1.0 x 1.0. For normal repeating textures, it is possible to have value greater than 1.0 or less than 0.0, resulting in repeating of the texture. The coordinates are usually assigned by the level editor or modeling tools, but you still need to be aware of this for scrolling or turbulent movement of the texture at runtime.

    -
- -
Waveform Functions
-Many of the shader functions use waveforms to modulate measurements over time. Where appropriate, additional information is provided with wave modulated keyword functions to describe the effect of a particular waveform on that process. Currently there are five waveforms in use in Q3A shaders:

- -
    -Sin: Sin stands for sine wave, a regular smoothly flowing wave function ranging from -1 to 1.

    -Triangle: Triangle is a wave with a sharp ascent and a sharp decay, ranging from 0 to 1. It will make choppy looking wave forms.

    -Square: A squarewave simply switches from -1 to 1 with no in-between.

    -Sawtooth: In the sawtooth wave, the ascent is like a triangle wave from 0 to 1, but the decay cuts off sharply back to 0.

    -Inversesawtooth: This is the reverse of the sawtooth... instant ascent to the peak value (1), then a triangle wave descent to the valley value (0). The phase on this goes from 1.0 to 0.0 instead of 0.0 to 1.0. This wave is particularly useful for additive cross-fades.

    -
- -Waveforms all have the following properties:

- -
    -base: Where the wave form begins. Amplitude is measured from this base value.

    -amplitude: This is the height of the wave created, measured from the base. You will probably need to test and tweak this value to get it correct for each new shader stage. The greater the amplitude, the higher the wave peaks and the deeper the valleys.

    -phase: This is a normalized value between 0.0 and 1.0. Changing phase to a non-zero value affects the point on the wave at which the wave form initially begins to be plotted. Example: In Sin or Triangle wave, a phase of 0.25 means it begins one fourth (25%) of the way along the curve, or more simply put, it begins at the peak of the wave. A phaseof 0.5 would begin at the point the wave re-crosses the base line. A phase of 0.75 would be at the lowest point of the valley. If only one wave form is being used in a shader, a phase shift will probably not be noticed and phase should have a value of zero (0). However, including two or more stages of the same process in a single shader, but with the phases shifted can be used to create interesting visual effects. Example: using rgbGen in two stages with different colors and a 0.5 difference in phase would cause the manipulated texture to modulate between two distinct colors. Phase changes can also be used when you have two uses of the same effect near each other, and you don't want them to be synchronized. You would write a separate shader for each, changing only the phase value.

    -freq: Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of 1 would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 seconds.

    -
- - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch2.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch2.htm.svn-base deleted file mode 100644 index 6f3311ed..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch2.htm.svn-base +++ /dev/null @@ -1,246 +0,0 @@ - - -Q3Map2 Shader Manual: General Shader Keywords - - - - - - - - - - -
- - - -

-2 - General Shader Keywords
-
-Q3Map2 Shader Manual


- - - -IMPORTANT NOTES: Once again, be aware that some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined in this section) at the very beginning of the shader and to place shader stages at the end (see various examples).

- -These Keywords are global to a shader and affect all stages. They are also ignored by Q3Map2.

- - - -
-
skyParms farbox cloudheight nearbox

- - - -Specifies how to use the surface as a sky, including an optional far box (stars, moon, etc), optional cloud layers with any shader attributes, and an optional near box (mountains in front of the clouds, etc).

- -
    -farbox : Specifies a set of files to use as an environment box behind all cloudlayers. Specify "-" for no farbox, or a file base name. A base name of "env/test" would look for files "env/test_rt.tga", "env/test_lf.tga", "env/test_ft.tga", "env/test_bk.tga", "env/test_up.tga", "env/test_dn.tga" to use as the right / left / front / back / up / down sides.

    -cloudheight : Controls apparent curvature of the cloud layers - lower numbers mean more curvature (and thus more distortion at the horizons). Higher height values create "flatter" skies with less horizon distortion. Think of height as the radius of a sphere on which the clouds are mapped. Good ranges are 64 to 256. The default value is 128.

    -nearbox : Specified as farbox, to be alpha blended ontop of the clouds. This has not be tested in a long time, so it probably doesn't actually work. Set to "-" to ignore.

    -
- -Design Notes: -
    -
  • If you are making a map where the sky is seen by looking up most of the time, use a lower cloudheight value. Under those circumstances the tighter curve looks more dynamic. If you are making a map where the sky is seen by looking out windows most of the time or has a map area that is open to the sky on one or more sides, use a higher height to make the clouds seem more natural.
  • -
  • It is possible to create a sky with up to 8 cloudlayers, but that also means 8 processing passes and a potentially large processing hit.
  • -
  • Be aware that the skybox does not wrap around the entire world. The "floor" or bottom face of the skybox is not drawn by the game. If a player in the game can see that face, they will see the "hall of mirrors" effect.
  • -
  • There's a bug in Quake 3 (but fixed in Enemy Territory) that causes a shader vertex overflow (SHADER_MAX_VERTEXES HIT IN FILLCLOUDSKYSIDE) if more than two cloud layers are used in maps with a lot of visible sky. To compensate, either reduce the amount of visible sky or limit the shader to two cloud layers.
  • -
- -Q3Map2 sky shaders work differently from the original and contain a number of improvements in terms of efficiency and visually. The example given below is an original Quake III Arena sky shader. While it is still operational, it is a little outdated and is being kept here for legacy purposes only. It is recommended that you take advantage of the new features of Q3Map2 skies by consulting Appendix I: Light Emitting Shaders > Skies.

- - - -
Script: Original Quake III Arena sky shader
-textures/skies/xtoxicsky_dm9 -{ - qer_editorimage textures/skies/toxicsky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_surfacelight 400 - surfaceparm sky - q3map_sun 1 1 0.5 150 30 60 - skyparms full 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.1 0.1 - } - { - map textures/skies/intelredclouds.tga - blendFunc add - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} -
- - - - -
-
cull side

- - - -Every surface of a polygon has two sides, a front and a back. Typically, we only see the front or "out" side. For example, a solid block you only show the front side. In many applications we see both. For example, in water, you can see both front and a back. The same is true for things like grates and screens.

- -To "cull" means to remove. The value parameter determines the type of face culling to apply. The default value is cull back if this keyword is not specified. However for items that should be inverted then the value front should be used. To disable culling, the value disable or none should be used. Only one cull instruction can be set for the shader.

- -
    -front : The front or "outside" of the polygon is not drawn in the world. It is used if the keyword "cull" appears in the content instructions without a side value.

    -back : Cull back removes the back or "inside" of a polygon from being drawn in the world.

    -disable or none : Neither side of the polygon is removed. Both sides are drawn in the game. Very useful for making panels or barriers that have no depth, such as grates, screens, metal wire fences and so on and for liquid volumes that the player can see from within. Also used for energy fields, sprites, and weapon effects (e.g. plasma).

    -
- -Design Notes
-For things like grates and screens, put the texture with the cull none property on one face only. On the other faces, use a non-drawing texture.

- - - -
-
deformVertexes type ---

- - - -This function performs a general deformation on the surface's vertexes, changing the actual shape of the surface before drawing the shader passes. You can stack multiple deformVertexes commands to modify positions in more complex ways, making an object move in two dimensions, for instance. There are 6 possible values for the type parameter, each of which will be described in more detail: wave, normal, bulge, move, autosprite, autosprite2. Depending on which of the 6 type parameters are used, different additional parameters will need to be used, including the generalized waveform functions (see Chapter 1: Key Concepts)

- -Design Notes:
-The div and amplitude parameters, when used in conjunction with liquid volumes like water should take into consideration how much the water will be moving. A large ocean area would have have massive swells (big div values) that rose and fell dramatically (big amplitude values). While a small, quiet pool may move very little.

- -
deformVertexes wave div func base amplitude phase freq
-Designed for water surfaces, modifying the values differently at each point. The div parameter is used to control the wave "spread" - a value equal to the q3map_tessSize of the surface is a good default value. It accepts the standard wave functions sin, triangle, square, sawtooth or inversesawtooth.

- -
deformVertexes normal div func base amplitude freq
-This deformation affects the normals of a vertex without actually moving it, which will effect later shader options like lighting and especially environment mapping. If the shader stages don't use normals in any of their calculations, there will be no visible effect. The div parameter is used to control the wave "spread" - a value equal to the q3map_tessSize of the surface is a good default value. Good values for amplitude ranges from 0.1 to 0.5 while values of 1.0 to 4.0 are good for frequency.

- -Design Notes:
-Putting values of 0.1 to 0.5 in Amplitude and 1.0 to 4.0 in the Frequency can produce some satisfying results. Some things that have been done with it: A small fluttering bat, falling leaves, rain, flags.

- -
deformVertexes bulge bulgeS bulgeT bulgeSpeed
-This forces a bulge to move along the given s and t directions. Designed for use on curved pipes. The bulgeS and bulgeT parameters is the amount of bulge displacement measured in game units. bulgeSpeed is the number of seconds it takes for the bulge to complete a single cycle.

- -
deformVertexes move x y z func base amplitude phase freq
-The move parameter is used to make a brush, curve patch or model appear to move together as a unit. The x y z values are the distance and direction in game units the object appears to move relative to it's point of origin in the map. -The func base amplitude phase freq values are the same as found in other waveform manipulations.

- -The product of the function modifies the values x, y, and z. Therefore, if you have an amplitude of 5 and an x value of 2, the object will travel 10 units from its point of origin along the x axis. This results in a total of 20 units of motion along the x axis, since the amplitude is the variation both above and below the base.

- -It must be noted that an object made with this shader does not actually change position, it only appears to.

- -Design Notes:
-If an object is made up of surfaces with different shaders, all must have matching deformVertexes move values or the object will appear to tear itself apart.

- -
deformVertexes autosprite
-This function can be used to make any given triangle quad (pair of triangles that form a square rectangle) automatically behave like a sprite without having to make it a separate entity. This means that the "sprite" on which the texture is placed will rotate to always appear at right angles to the player's view as a sprite would. Any four-sided brush side, flat patch, or pair of triangles in a model can have the autosprite effect on it. The brush face containing a texture with this shader keyword must be square.

- -
deformVertexes autosprite2
-Is a slightly modified "sprite" that only rotates around the middle of its longest axis. This allows you to make a pillar of fire that you can walk around, or an energy beam stretched across the room.

- - - -
-
fogParms ( r g b ) opacity

- - - -Note: You must also specify "surfaceparm fog" to cause Q3Map2 to identify the surfaces inside the volume. Fogparms only describes how to render the fog on the surfaces.

- -r g b : These are normalized values. A good computer art program should give you the RGB values for a color. To obtain the values that define fog color for Quake III Arena, divide the desired color's red, green and blue values by 255 to obtain three normalized numbers within the 0.0 to 1.0 range.

-opacity : This is the distance, in game units, until the fog becomes totally opaque, as measured from the point of view of the observer. By making the height of the fog brush shorter than the distance to opaque, the apparent density of the fog can be reduced (because it never reaches the depth at which full opacity occurs). - -
    -
  • The fog volume can only have one surface visible (from outside the fog).
  • -
  • Fog must be made of one brush. It cannot be made of adjacent brushes.
  • -
  • Fog brushes must be axial. This means that only square or rectangular brushes may contain fog, and those must have their edges drawn along the axes of the map grid (all 90 degree angles).
  • -
- -Design Notes:
-
    -
  • If a water texture contains a fog parameter, it must be treated as if it were a fog texture when in use.
  • -
  • If a room is to be filled completely with a fog volume,it can only be entered through one surface (and still have the fog function correctly).
  • -
  • Additional shader passes may be placed on a fog brush, as with other brushes.
  • -
- - - -
-
noPicMip

- - - -This causes the texture to ignore user-set values for the r_picmip cvar command. The image will always be high resolution. Example: Used to keep images and text in the heads up display from blurring when user optimizes the game graphics.

- - - -
-
noMipMaps

- - - -This implies noPicMip, but also prevents the generation of any lower resolution mipmaps for use by the 3D card. This will cause the texture to alias when it gets smaller, but there are some cases where you would rather have this than a blurry image. Sometimes thin slivers of triangles force things to very low mipmap levels, which leave a few constant pixels on otherwise scrolling special effects.

- - - -
-
polygonOffset

- - - -Surfaces rendered with the polygonOffset keyword are rendered slightly off the polygon's surface. This is typically used for wall markings and "decals." The distance between the offset and the polygon is fixed. It is not a variable in Quake III Arena.

- -Design Notes:
-
    -
  • Use this for wall or floor markings, particularily for direction arrows for team games. Texture the brush with the decal shader on one face and the other faces with a nodraw shader. Then place the brush flush with the surface of the wall or floor.
  • -
  • When using a _decal entity for texture projection, polygonOffset must be used to prevent Z-fighting. If you experience problems with depth sorting, try using sort 6.
  • -
- - - - -
-
portal

- - - -Specifies that this texture is the surface for a portal or mirror. In the game map, a portal entity must be placed directly in front of the texture (within 64 game units). All this does is set "sort portal", so it isn't needed if you specify that explicitly.

- - - -
-
sort value

- - - -Use this keyword to fine-tune the depth sorting of shaders as they are compared against other shaders in the game world. The basic concept is that if there is a question or a problem with shaders drawing in the wrong order against each other, this allows the designer to create a hierarchy of which shader draws in what order.

- -The default behavior is to put all blended shaders in sort "additive" and all other shaders in sort "opaque", so you only need to specify this when you are trying to work around a sorting problem with multiple transparent surfaces in a scene.

- -The value here can be either a numerical value or one of the keywords in the following list (listed in order of ascending priority): - -
    - portal (1): This surface is a portal, it draws over every other shader seen inside the portal, but before anything in the main view.
    - Sky (2): Typically, the sky is the farthest surface in the game world. Drawing this after other opaque surfaces can be an optimization on some cards. This currently has the wrong value for this purpose, so it doesn't do much of anything.
    - Opaque (3): This surface is opaque (rarely needed since this is the default with no blendfunc)
    - Banner (6): Transparent, but very close to walls.
    - Underwater (8): Draw behind normal transparent surfaces.
    - Additive (9): Normal transparent surface (default for shaders with blendfunc's)
    - Nearest (16): This shader should always sort closest to the viewer, e.g. muzzle flashes and blend blobs.

    -
- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch3.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch3.htm.svn-base deleted file mode 100644 index 4208e89f..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch3.htm.svn-base +++ /dev/null @@ -1,799 +0,0 @@ - - -Q3Map2 Shader Manual: Q3Map2 Specific Shader Keywords - - - - - - - - - - -
- - - -

-3 - Q3Map2 Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - -These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader.

- - - -
-
q3map_alphaGen func ---

- - -blah

- - - -
-
q3map_alphaMod func ---

- - - -This is used for special blending effects on shaders by altering the amount of blending falloff depending on specific surface properties such as the surfaces normal axis or the vertexes contained within its volume. alphaMod operations are applied to an object's vertexes so the rgbGen vertex directive is required for each affected stage.

- -
q3map_alphaMod dotproduct ( X Y Z)
-It is used to blend textures using alphaFunc or blendFunc in the shader's second pass, with the falloff depending on the surface's normal axis. This is achieved by doing a vector dot product of the specified normalized vector value ( X Y Z ) and the vertex normal which yields the amount of blending. The dot product operation multiplies each element of one vector against the corresponding elements of a second vector, then adds them. Examples:

- - -( 0 0 1 ) dp ( 0 0 1 ) = 0 * 0 + 0 * 0 + 1 * 1 = 1
-( 0 0 1 ) dp ( 0 0 0.5 ) = 0 * 0 + 0 * 0 + 1 * 0.5 = 0.5
-( 0.5 0.5 1 ) dp ( 0 0.5 0.5 ) = 0.5 * 0 + 0.5 * 0.5 + 1 * 0.5 = 0.75

-
- -
q3map_alphaMod dotproduct2 ( X Y Z )
-This works in a similar way to dotproduct except it exaggerates the differences in vertex normals by squaring the final dot product value. With the same values as the above example, dotproduct2 would give the following:

- - -[ ( 0 0 1 ) dp ( 0 0 1 ) ]2 = ( 0 * 0 + 0 * 0 + 1 * 1 )2 = 1
-[ ( 0 0 1 ) dp ( 0 0 0.5 ) ]2 = ( 0 * 0 + 0 * 0 + 1 * 0.5 )2 = 0.25
-[ ( 0.5 0.5 1 ) dp ( 0 0.5 0.5 ) ]2 = ( 0.5 * 0 + 0.5 * 0.5 + 1 * 0.5 )2 = 0.5625 -



- - - -
Script: q3map_dotproduct on terrain
-textures/shaderlab_vector_1/rock_1_z_lodterrain -{ - //Used for radiosity lighting - q3map_lightImage textures/shaderlab_vector_1/rock_1.tga - - q3map_nonplanar - q3map_shadeAngle 179 - q3map_tcGen ivector ( 512 0 0 ) ( 0 512 0 ) - q3map_tcMod rotate 33 - q3map_lightmapAxis z - - // this means dot product squared, for faster falloff between vertical and horizontal planes - q3map_alphaMod dotproduct2 ( 0 0 0.95 ) - - surfaceparm nonsolid - surfaceparm pointlight - - { - map textures/shaderlab_vector_1/rock_1.tga - rgbGen vertex - } - { - map textures/slterra/sand_1.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - } -} -
-
- -Design Notes:
-Typical examples of use include snow covering the top faces of objects, or terrain with grass growing on horizontal planes blending into rocky cliffs on near vertical surfaces. It is an excellent way of automatically creating realistic alpha-blended terrain without the complicated steps in setting up an alpha map.

- - -
q3map_alphaMod scale N.N
-Used in conjunction with q3map_alphaMod volume. Scales the vertex alpha by N.N.

- -
q3map_alphaMod set N.N
-Used in conjunction with q3map_alphaMod volume. Sets the vertex alpha (regardless of any previous alpha values) to N.N * 255.

- -
q3map_alphaMod volume
-This was created as a way to explicitly set the amount of vertex alpha-blending by altering the alpha values of vertexes contained within a brush volume marked with this shader directive. Applies all other q3map_alphaMod directives to each vertex inside a brush textured with this shader, allowing large faded scrolling fire shaders, waterfalls, marquees, explicit dotProduct terrain blending control, etc.

- -Design Notes:
-This is usually used in special alphaMod volume "common" shaders for use within the editor only. A brush textured with the alphaMod volume shader is used to overlap the vertexes of another brush using an alpha-blended shader, altering the vertex alpha values. Worldspawn alphaMod volume brushes will affect all surfaces. You can func_group an alphaMod volume brush to affect only that entity.

- - - -
-
q3map_backShader shadername

- - - -This allows a brush to use a different shader when you are inside it looking out. By way of example, this would allow a water brush (or other) surfaces to have a different sort order or appearance when seen from the inside. q3map_backShader only works on brush faces. For this reason, it is deprecated in favor of using q3map_cloneShader where the target shader contains q3map_invert.

- - - - - -
-
q3map_backSplash percentage distance

- - - -A surface light is lit by itself, often causing areas of higher light intensity than other areas. q3map_backSplash moves the light source away from the surface of the shader, allowing it to create smoother lighting over the face. By default, all shaders are assigned backsplash values, 0.05 for the percentage, 23 units for the distance.

- -
    -percentage : Specifies the intensity percentage of the light generated by q3map_surfacelight to be redirected back at the surface. Use a value of 0 or a negative value to disable back splash lights.
    -distance : Distance of the back splash lights from the surface. -
- - - -
-
q3map_baseShader shadername

- - - -Allows shaders to be subclassed (Q3Map2 relevant portions only, such as surfaceparms, lighting, texture projection, etc). Subclassed shaders can reference the base shader by referring to the base shader's name. In order for q3map_baseShader to work correctly, the base shader must be specified before any shaders that subclass it. Some EasyGen terrain templates incorrectly specified the base shader after the terrain shaders that depended on it, resulting in some interesting errors.

- -This is fundamentally the reverse of q3map_remapShader. Use q3map_baseShader when a single group of q3map_* directives is required for multiple base shaders. Use q3map_remapShader when similar shaders are used that require different groups of q3map_* directives.

- - - -
-
q3map_bounce N.N

- - - -Deprecated! Use q3map_bounceScale instead.

- - - -
-
q3map_bounceScale N.N

- - - -Use a number between 0 and 1.0 (or higher), to scale the amount of light reflected in radiosity passes. You can oversaturate it by using a number higher than 1.0, but this can lead to excessive compile times. Using 90 would probably make things positively glacial. 1.0 is a default, fudged number that looked OK with the maps that were tested. Tweaking it to 1.5 or 2.0 won't hurt anything, per se, but it does give you finer control over how each shader re-emits light. The poorly worded q3map_bounce has been renamed to q3map_bounceScale. While its use has been deprecated, q3map_bounce still works.

- - - -
-
q3map_clipModel

- - - -Automatically clips misc_model entities for player and weapon collision. This should only be used on large models such as terrain (not small decorative models - manually clip those). The shader's surfaceparms are inherited by the magic clip brush, so if you have surfaceparm nonsolid in your model's shader that uses q3map_clipModel, then the brush will also be non-solid. This can also be set on a per model basis with spawnflags 2.

- - - -
-
q3map_cloneShader shadername

- - - -A shader with this keyword will inherit the target shader's properties and appearance. Be careful, this can lead to an infinite loop if a cloning shader references another cloning shader or itself.

- - - -
-
q3map_colorGen

- - -blah

- - - -
-
q3map_colorMod

- - -blah

- - - -
-
q3map_extraShader

- - - -Does not exist!

- - - -
-
q3map_fadeAlpha N

- - - -Does not exist!

- - - -
-
q3map_fogDir angle

- - - -Specifies the direction a fog shader fades from transparent to opaque.

- - - -
-
q3map_forceMeta

- - - -Forces model (MD3, ASE, etc.) surfaces to be broken down into their component triangles like brush faces and passed through the meta code on a per shader basis. This is required for lightmapped models. Setting spawnflags 4 on a misc_model will set q3map_forceMeta on all its surfaces.

- - - - - -
-
q3map_forceSunlight

- - - -Obsolete!
-By default, no sunlight is cast on vertex-lit .md3 models or vertex-lit terrain. Using this option, sunlight (overbright bits created by the q3map_sun option) will be cast on these surfaces. q3map_forceSunlight is now obsolete since suns are now first class light sources.

- - - -
-
q3map_fur layers offset fade

- - - -This is used for generating fur over a surface. This is typically used in conjunction with q3map_cloneShader in the surface (parent) shader and references the fur shader as the clone. A possible application of this is to create grass on alphablended terrain. Keep in mind that the use of a fur shader may cause a large hit to performance but when used sparingly, it can produce some interesting effects. (See Appendix D: Fur)
- -
    -layers : This specifies the number of desired replicated fur layers generated.

    -offset : The distance (in game units) between subsequent layers.

    -fade : A normalized value indicating the fade falloff between subsequent layers.

    -
- - - -
-
q3map_globalTexture

- - - -Use this shader in the global keyword commands whenever the tcMod scale function is used in one of the later render stages. Many problems with getting shader effects to work across multiple adjacent brushes are a result of the way Q3Map2 optimizes texture precision. This option resolves that, but at the expense of some precision of the textures when they are far away from the origin of the map.

- - - -
-
q3map_indexed

- - - -This is used for explicit terrain-style indexed mapping. It instructs Q3Map2 to look at the func_group terrain entity's _indexmap key for an image to pull index values from, and then to construct a shader name with the root based on the _shader key's value.

- - - -
-
q3map_invert

- - - -Inverts a surface normal. Works on brush faces, models and patches. Used in celshading to achieve the inverted backfacing hull.

- - - -
-
q3map_lightImage texturename

- - - -By default, surface lights use the average color of the source image to generate the color of the light. q3map_lightImage specifies an alternate image to be used for light color emission, radiosity color emission, light filtering and alpha shadows. You can even use a light image with a different alpha channel for blurrier alpha shadows. The light color is averaged from the referenced texture. The texture must be the same size as the base image map. q3map_lightImage should appear before qer_editorImage.

- -The reason q3map_lightImage is specified for the light in the example below, is because the blend map is predominantly yellow, but the base image is not. The designer wanted the color of the light to be sampled from the blend map instead of the base image.

- - - -
Script: Taking light from another source image
-textures/eerie/ironcrosslt2_10000 -{ - q3map_lightImage textures/gothic_light/ironcrosslt2.blend.tga - // this TGA is the source for the color of the blended light - - qer_editorImage textures/gothic_light/ironcrosslt2.tga - //editor TGA (used because the shader is used with several different light values) - - q3map_surfacelight 10000 - //emitted light value of 10,000 - - { - map $lightmap - //source texture is affected by the lightmap - rgbGen identity - // this command handles the overbright bits created by "sunlight" in the game - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc filter - rgbGen identity - } - { - maptextures/gothic_light/ironcrosslt2.blend.tga - blendFunc add - } -} -
- - - - -
-
q3map_lightmapAxis axis

- - - -Takes a single argument: either x, y or z. The keyword q3map_terrain has an implicit (read default) q3map_lightmapAxis defined as z. This keyword is not recommended for things like caves or arches which have undersides.

- - - -
-
q3map_lightmapBrightness N.N

- - - -Lightmap brightness scaling. A value of 2.0 will be twice as bright (linearly) and a value of 0.5 will be half as bright.

- - - -
-
q3map_lightmapFilterRadius self other

- - - -This is usually used on light emitting shaders to approximate finer subdivided lighting. It adds a gaussian blur effect to the lightmaps of either the shader itself, or the surfaces affected by the shader, or both. The values for self and other are measured in world units of filtering (blurring) of lightmap data cast by any light sources. The self parameter can be set for surfacelights for finer subdivided lighting, but should be set to 0 for sky shaders since they don't have lightmaps. The other parameter should be set just high enough to eliminate the "stadium shadow" effect sometimes produced by q3map_skylight or to smooth out the lighting on surfacelights. If using a value higher than 4 for the iterations parameter on q3map_skylight, you don't need q3map_lightmapFilterRadius as much, but at the expense of higher compile times. q3map_lightmapFilterRadius should be placed before any light related shader directives that you want it to affect. (see Appendix I: Light Emitting Shaders)

- - - -
-
q3map_lightmapGamma N.N

- - - -Deprecated! Use q3map_lightmapBrightness instead.

- - - -
-
q3map_lightmapMergable

- - - -Allows terrain to be mapped onto a single lightmap page for seamless terrain shadows. It will specify that the shaders using it can merge nonplanars together onto a single lightmap, so you can have a single 512x512 lightmap across a terrain entity.

- - - -
-
q3map_lightmapSampleOffset distance

- - - -Takes a single parameter, defaulting to 1.0, which specifies how many units off a surface should Q3Map2 sample lighting from. Use larger values (2.0-8.0) if you're getting ugly splotches on lightmapped terrain.

- - - -
-
q3map_lightmapSampleSize N

- - - -Surfaces using a shader with this option will have the pixel size of the lightmaps set to (NxN). This option can be used to produce high-resolution shadows on certain surfaces. In addition, it can be used to reduce the size of lightmap data, where high-resolution shadows are not required. The default Quake III lightmap sample size is 16.

- - - -
-
q3map_lightmapSize width height

- - - -Specifies the size of the lightmap texture that surface lightmaps get packed on to. Used mainly in Enemy Territory for terrain lightmaps (512x512) in concert with the Q3Map2 switch -lightmapsize.

- - - -
-
q3map_lightRGB red green blue

- - - -This forces a specified color of light to be emitted from a surface or sky light, rather than sampling colors from a lightimage, editor image or the texture map. Three normalized color values of light are required for the red green blue parameters. This does not affect bounced light in radiosity or lightfilter.

- - - -
-
q3map_lightStyle N

- - - -Used to set light styles on surface lights for lightmap flickering/waveform effects. N takes the form of a number between 1 and 31, that references the corresponding style number set in the worldspawn entity. Equivalent to setting "style" "N" on a light entity (see Appendix G: Lightstyles).

- - - -
-
q3map_lightSubdivide N

- - - -Used on surface lights (see q3map_surfacelight). Chops up the surface into smaller polygons for more uniform lighting. It defaults to 120 game units, but can be made larger or smaller as needed (for light surfaces at the bottom of cracks, for example). This can be a dominant factor in processing time for Q3Map2 lighting. Can have an increasingly "darker" effect when used with -fast. Compensate by raising the surface light value. For sky shaders, use q3map_skylight instead (see Appendix I: Light Emitting Shaders).

- - - -
-
q3map_noClip

- - - -You might have noticed that terrain has been made to not clip or t-junction anymore. It was causing too many issues, so a new parameter was added: q3map_noClip. Normally, Q3Map2 clips all faces to the BSP, and then takes the minimum polygon that encompasses all visible fragments. q3map_noClip forces Q3Map2 to uses the original brush faces (This is implicit for autosprite(2) surfaces). Therefore, if you map tidy, you could theoretically use q3map_noClip on all your shaders. q3map_noClip and q3map_noTJunc, when used in combination, will preserve mesh geometry exactly as you make it.

- - - -
-
q3map_noFast

- - - -When used on surfaces that emit light, this will disable -fast optimizations. This is useful for large areas of dim sky, where you want the dim light to reach all surfaces. This shader keyword prevents fast from affecting dim sky surfaces. It is necessary, if you can't do a workaround with brighter skies or by using a larger q3map_lightSubdivide value.

- - - -
-
q3map_noFog

- - - -Volumes marked with a shader containing this keyword will not be affected by fog.

- - - -
-
q3map_nonPlanar

- - -Instructs Q3Map2 to merge any adjacent triangles that don't lie in the same plane into a non-planar triangle soup. This allows shadows to be cast correctly across non-planar edges. It is typically used on lightmapped terrain shaders.

- - - -
-
q3map_normalImage texturename

- - - -Allow the use of a normal (height) map to simulate textured bumpmapping. This isn't real bumpmapping per se, but generates a static lightmap image that reflects the normal map and light source.

- - - -
-
q3map_noTJunc

- - - -Read as "no T-Junc". With this option, surfaces modified by a shader are not used for T-junction fixing. q3map_noClip and q3map_noTJunc, used in combination will preserve mesh geometry exactly as you make it.

- - - -
-
q3map_noVertexLight

- - -blah

- - - -
-
q3map_noVertexShadows

- - - -Obsolete!
-Vertex lighting code was rewritten a couple of times, rendering this keyword irrelevant. Shaders that are used on misc_models or terrain were to use q3map_noVertexShadows to disable shadows being cast on the vertex lit surfaces. Casting shadows at small, misc_model objects often makes sense. However, having shadows on large, vertex lit terrain surfaces often looks bad. Shadows are not cast on forced_vertes_lit surfaces by default (shaders with pointlight).

- - - -
-
q3map_offset N.N

- - - -Offsets a surface along the vertex normals N.N units. Used in celshading.

- - - -
-
q3map_patchShadows

- - - -Obsolete!
-When this option is used in conjunction with the original lighting algorithm (-light), surfaces with textures modified with this option will show shadows that are cast by curve patches. Curve patches do not cast shadows by default.

- - - -
-
q3map_remapShader shadername

- - -Allows shaders to be subclassed. Subclassed shaders can reference the remap shader by referencing the remap shader's name. In order for this to work, the remap shader must be specified before any shaders that references it. Subclassed shaders must contain Q3Map2 and editor relevant portions only (q3map_*, surfaceparm and qer_* directives).

- -This is fundamentally the reverse of q3map_baseShader. Use q3map_baseShader when a single group of q3map_* directives is required for multiple base shaders. Use q3map_remapShader when similar shaders are used that require different groups of q3map_* directives.

- -Design Notes:
-Since the subclassed shaders that are applied to geometry does not contain any texture stages, qer_editorImage is usually required in conjunction with q3map_remapShader.

- - - -
-
q3map_replicate

- - - -Does not exist!

- - - -
-
q3map_rgbGen

- - -blah

- - - -
-
q3map_rgbMod

- - -blah

- - - -
-
q3map_shadeAngle angle

- - -Specifies the breaking angle for phong shading. This allows for smooth shadows between brush faces like patches. The angle parameter is the angle between adjacent faces at which smoothing will start to occur. Typical values are usually in the 120-179 range.

- - - -
-
q3map_skylight amount iterations

- - - -This replaces q3map_surfacelight and q3map_lightSubdivide on sky surfaces for much faster and more uniform sky illumination. Amount is a brightness value, similar to what you would use in q3map_sun. Good values are between 50 and 200. Iterations is an exponential factor. 3 is the best value that balances speed and quality. Values of 4 and 5 are higher quality at the expense of higher compile time. Values below 3 are not too useful

- - - -
-
q3map_splotchFix

- - - -This is used on lightmapped model shaders if splotched lighting artifacts appear. Any shadows at the ambient/dark level will be flooded from neighbouring luxels. This gets rid of shadow acne, but a surface must be more or less uniformly lit or this looks ugly. Try using q3map_lightmapSampleOffset first before using this as a last resort.

- - - -
-
q3map_styleMarker

- - - -For use on shaders that accompany style lights. For any shaders that may be hit by a styled light, add q3map_styleMarker after the lightmap stage and before the texture stages so Q3Map2 can properly create the fake lightmap stages (see Appendix G: Lightstyles).

- - - -
-
q3map_styleMarker2

- - - -Similar to q3map_styleMarker except it is used on masked textures where a depthFunc equal is required.

- - - -
-
q3map_sun red green blue intensity degrees elevation

- - - -This keyword in a sky shader will create the illusion of light cast into a map by a single, infinitely distance parallel light source (sun, moon, hellish fire, etc.). This is only processed during the lighting phase of Q3Map2. While still perfectly usable, q3map_sun is now deprecated in favour for q3map_sunExt (see below).

- -
    -red green blue : Color is described by three normalized RGB values. Color will be normalized to a 0.0 to 1.0 range, so it doesn't matter what range you use.

    -intensity : The brightness of the generated light. A value of 100 is a fairly bright sun. The intensity of the light falls off with angle but not distance.

    -degrees : The angle relative to the directions of the map file. A setting of 0 degrees equals east. 90 is north, 180 is west and 270 is south. In the original version of Q3Map, non-axial values had a tendency to produce jagged shadows. With Q3Map2, this problem is avoided with new options like lightmap filtering, raytracing and penumbra effects.

    -elevation : The distance, measured in degrees from the horizon (z value of zero in the map file). An elevation of 0 is sunrise/sunset. An elevation of 90 is noon.

    -
- -Design Notes:
-Sky shaders should probably still have a q3map_surfacelight or preferred q3map_skylight value. The "sun" gives a strong directional light, but doesn't necessarily give the fill light needed to soften and illuminate shadows. Skies with clouds should probably have a weaker q3map_sun value and a higher q3map_surfacelight or q3map_skylight value. Heavy clouds diffuse light and weaken shadows. The opposite is true of a cloudless or nearly cloudless sky. In such cases, the "sun" or "moon" will cast stronger shadows that have a greater degree of contrast. This is also why q3map_sunExt is preferred. It gives the designer greater control over shadow contrast with a penumbra effect.

- -Design Trick:
-Not certain what color formula you want to use for the sun's light? Try this. Create a light entity. Use the Radiant editor's color selection tools to pick a color. The light's _color key's value will be the normalized RGB formula. Copy it from the value line in the editor (CTRL+c) and paste it into your shader.

- - - -
-
q3map_sunExt red green blue intensity degrees elevation deviance samples

- - - -Works like q3map_sun with the addition of two new parameters to create "light jittering" for penumbra (half-shadow) effects. This gives you much more realistic shadows from the sun, especially when trying to simulate a cloudy day or a wide sun. The penumbra effect can also be applied to entity lights (point, spot or sun) with the _deviance N (distance in world units for point/spot lights and degrees for suns) and _samples N (number of samples) key/value pairs.

- -
    -deviance : The number of degrees for the half-shadow. General values up to 2 or 3 are acceptable. The real sun has a solid angle of about half a degree.

    -samples : The number of random jitters distributed over the solid arc (~16).

    -
- - - -
-
q3map_sunlight

- - - -Does not exist!

- - - -
-
q3map_surfacelight value

- - - -The texture gives off light equal to the value set for it. The relative surface area of the texture in the world affects the actual amount of light that appears to be radiated. To give off what appears to be the same amount of light, a smaller texture must be significantly brighter than a larger texture. Unless the q3map_lightImage keyword is used to select a different source for the texture's light color information, the color of the light will be the averaged color of the texture. For sky shaders, use q3map_skylight instead for faster and more uniform sky illumination.

- - - -
-
q3map_surfaceModel modelpath density odds minscale maxscale minangle maxangle oriented

- - - -A surface with q3map_surfaceModel in its shader will randomly place a specified model across it's face. This is designed to place grass or tree models over terrain. - -
    -modelpath : The path to the model file (any supported format).

    -density : The density of the models, in game units.

    -odds : The odds of the model appearing (normalized?).

    -minscale : The minimum scale of the model from its original size of 1.0.

    -maxscale : The maximum scale of the model from its original size of 1.0.

    -minangle : The model's minimum angle of rotation.

    -maxangle : The model's maximum angle of rotation.

    -oriented : This is a flag, either 0 or 1, and sets whether the model gets fitted to the orientation of the surface.

    -
- - - -
-
q3map_tcGen func ---

- - - -This currently supports two functions, vector and ivector. Both functions are used for texture projection and do the exact same thing. The only difference is in the math, ivector was designed to be more intuitive.

- -
q3map_tcGen vector sVector tVector
-Projects a texture Ns units by Nt units along a chosen axis. q3map_tcGen vector ( 1/256 0 0 ) ( 0 1/256 0 ) will project a texture every 256 units in x, and every 256 units in y, along the z-axis.

- -
q3map_tcGen ivector 1.0/sVector 1.0/tVector
-Projects a texture Ns units by Nt units along a chosen axis. q3map_tcGen ivector ( 256 0 0 ) ( 0 256 0 ) will project a texture every 256 units in x, and every 256 units in y, along the z-axis. Ivector means inverse vector, and this means you won't have to do the divide with a calculator. Inverse = 1.0/n, unless the value is 0, then the matrix value is set to 0. A bit of dodgy math, but it works.

- - - -
-
q3map_tcMod func ---

- - - -This works in a similar manner to the stage specific tcMod keyword (see Chapter 6 tcMod), except in the compiler, so that modified texture coordinates are "baked" into the surface. This lets you set up less obvious texture tiling on natural and organic surfaces (especially terrain).

- -
q3map_tcMod rotate degrees
-Rotates the texture (around origin, not center) a specified number of degrees.

- -
q3map_tcMod scale s-scale t-scale
-Scales S (x) and T (y) texture co-ordinates. scale 2 2 would halve the size of the texture (doubling the texture co-ordinates).

- -
q3map_tcMod translate or move or shift s-offset t-offset
-Shifts texture co-ordinates by S, T amount. translate 0.5 0 would shift it one-half in S, and none in T.

- - - -
-
q3map_terrain

- - - -Alphamap terrain shaders (typically textures/common/terrain and terrain2) must have the q3map_terrain keyword. Terrain is handled completely differently from previous versions. Q3Map2 no longer looks for the word terrain in the shader name to determine whether or not it is an indexed shader. It looks for q3map_indexed, or q3map_terrain, which then sets off a bunch of stuff shoehorned into it, like: the lightmap axis, texture projection, etc.

- -By default, q3map_terrain sets the following: -
    - q3map_tcGen ivector ( 32 0 0 ) ( 0 32 0 )
    - q3map_lightmapAxis z
    - q3map_nonplanar
    - q3map_shadeAngle 180 (maybe 175?)
    - q3map_indexed -
- - - -
-
q3map_tessSize amount

- - - -This controls the tessellation size (how finely a surface is chopped up in to triangles), in game units, of the surface. This is only applicable to solid brushes, not curves, and is generally only used on surfaces that are flagged with the deformVertexes keyword. Abuse of this can create a huge number of triangles. This happens during Q3Map2 processing, so maps must be reprocessed for changes to take effect. The poorly named tessSize keyword still works but has been deprecated in favour of q3map_tessSize for the sake of consistency.

- -Design Notes:
-It can also be used on tessellating surfaces to make sure that tessellations are large and thus, less costly in terms of triangles created.

- - - -
-
q3map_textureSize X Y

- - - -Deprecated. Useful when you don't specify an editor or light image for a shader. Recent builds of Q3Map2 will find some referenced image in a shader and use that as a fallback. Historically, this was used for surface splitting for RTCW for PS2, to accommodate the hardware's limited texture range precision.

- - - -
-
q3map_traceLight

- - - -Obsolete!
-Surfaces using a shader with this option will always be lit with the original light algorithm. Patches will not cast shadows on this surface, unless the shader option q3map_patchShadows is also used.

- - - -
-
q3map_vertexScale scale

- - - -The light value, at the vertices of a surface using a shader with this option, is multiplied by the scale value. This is a way to lighten, or darken, a vertex_lit surface, in comparison to other lightmap_lit surfaces around it.

- - - -
-
q3map_vertexShadows

- - - -Obsolete! (See q3map_noVertexShadows)
-By default, no shadows are cast on vertex_lit_surfaces (see surfaceparm pointlight). In addition, when running Quake III Arena in vertex light, no shadows are cast upon any surface at all, since shadows are part of the lightmap. When using this shader keyword, shadows will be cast on surfaces that are vertex lit. However, sharp shadow edges won't be seen on the surfaces, since light values are only calculated at the vertices.

- - - -
-
q3map_vlight

- - - -Obsolete!

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch4.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch4.htm.svn-base deleted file mode 100644 index 77c09290..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch4.htm.svn-base +++ /dev/null @@ -1,387 +0,0 @@ - - -Q3Map2 Shader Manual: Q3Map2 Specific Surface Parameter Shader Keywords - - - - - - - - - - -
- - - -

-4 - Q3Map2 Specific Surface Parameter Shader Keywords
-
-Q3Map2 Shader Manual


- - - -All surfaceparm keywords are preceded by the word surfaceparm as follows: surfaceparm fog or surfaceparm noimpact.

- -These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader.

- -It should be noted that some of these surface parameters will change both the surface as well as the content of an object (surfaceparm water, for example). Shaders containing content altering surface parameters should usually be used on all sides of the object.

- -Many of these keywords are only used in "common" shaders (baseq3/scripts/common.shader), which are editor specific shaders used by the level designer. Such keywords are usually not used for the design of custom assets.

- -Originally, surfaceparm's were part of the previous chapter since they are actually Q3Map2 specific keywords. I've moved them into their own chapter for the sake of being easier to reference, since both this and the previous chapter were getting too long.

- - - -
-
surfaceparm alphashadow

- - - -This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the Q3Map2 process to use the texture's alpha channel as a mask for casting static shadows in the game world.

- -Design Notes:
-Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows. With Q3Map2, it is possible to increase the resolution of the lightmap receiving the shadows with a slight the cost of memory. This can be achieved with the q3map_lightmapSampleSize keyword on the shadow receiving shader or by creating a func_group of the shadow receiving brushes and adding the _lightmapScale key with a floating-point value for the scale of the lightmap.

- - - -
-
surfaceparm antiportal

- - - -Works like hint brushes in that it creates BSP nodes, but unlike hint, it blocks vis by not creating a portal at the split. This is designed to be used with large terrain maps to block visibility without having to resort to tricks like sky or caulk brushes penetrating the terrain and throwing ugly shadows.

-http://shaderlab.com/mpcenter/q3map/antiportal.jpg

-Players in part A of the map will not be able to see into part B and vice-versa. You can walk through the antiportal just fine. Note that this also blocks light. There are two caveats: They are opaque to light, and if aligned to another BSP cut (such as blocksize or the origin) they will not function correctly. Don't align it with anything else (like blocksize or another brush face) and it'll block vis. This keyword is found in "common/antiportal" so you shouldn't need to specify this. "common/antiportal" was added by ydnar, so if you're missing this shader, it is included with the latest version of Q3Map2.

- - - -
-
surfaceparm areaportal

- - - -A brush marked with this keyword functions as an areaportal, a break in the BSP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the areaportal. This keyword is found in "common/areaportal" so you shouldn't need to specify this.

- - - -
-
surfaceparm botclip

- - - -Blocks bot movement only. Other game world entities and human players can pass through a brush marked botclip. The intended use for this is to block the bot but not other players or projectiles. This keyword is found in "common/botclip" so you shouldn't need to specify this.

- -Design Notes:
-Careful use of botclip in a map can greatly reduce the complexity of the .aas bot navigation file, resulting in "smarter", more efficient bots.

- - - -
-
surfaceparm clusterportal

- - - -A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It is typically placed in locations that are natural breaks in a map, such as entrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the clusterportal. This keyword is found in "common/clusterportal" so you shouldn't need to specify this.

- - - -
-
surfaceparm detail

- - - -This surface attribute causes a brush to be ignored by the Q3Map2 process for generating possible break-points in the BSP tree. Generally speaking, detail brushes are usually set in the editor, so you shouldn't need to specify this.

- - - -
-
surfaceparm donotenter

- - - -Read as "do not enter". Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features. This does not physically stop the bot from entering a region (as with botclip). Bots will not enter the area on their own but may, for example, be blasted into the region with a rocket launcher. This keyword is found in "common/donotenter" so you shouldn't need to specify this.

- -Design Notes: -donotenter can be (sparingly) used in space maps around the void or around lava/slime in certain places where bots have an overwhelming tendancy to commit suicide (lemming style).

- - - -
-
surfaceparm dust

- - - -If a player lands on a surface that uses a shader with this parameter, a puff of dust will appear at the player's feet. Note that the worldspawn entity must contain the "enabledust" key with a set value of "1".

- - - -
-
surfaceparm flesh

- - - -This will cue different sounds (in a similar manner to metalsteps) and cause blood to appear instead of bullet impact flashes. Actually, the code for this was never fully implemented by id Software. It remains half-finished so unfortunately it doesn't work.

- - - -
-
surfaceparm fog

- - - -fog defines the brush as being a "fog" brush. This is a Q3Map2 function that chops and identifies all geometry inside the brush. The general shader keyword fogparms must also be specified to tell how to draw the fog.

- - - -
-
surfaceparm hint

- - - -When Q3Map2 calculates the vis data, it tries to place portals in places in the map in an attempt to limit the potential viewable set (PVS). Brushes marked by a hint shader are used to manually place portals to force a break in the PVS. This keyword is found in "common/hint" so you shouldn't need to specify this.

- - - -
-
surfaceparm ladder

- - - -Supposedly used to allow the player to climb vertically. This is not functional in Quake III Arena.

- - - -
-
surfaceparm lava

- - - -Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush.

- - - -
-
surfaceparm lightfilter

- - - -Causes the Q3Map2 light stage to use the texture's RGB and alpha channels to generate colored alpha shadows in the lightmap. For example, this can be used to create the colored light effect cast by stained glass windows. This can be used with surfaceparm alphashadow.

- - - -
-
surfaceparm lightgrid

- - - -The min/max bounds of brushes with this shader in a map will define the bounds of the map's lightgrid (model lighting). Make it as small as possible around player space to minimize bsp size and compile time. This keyword is found in "common/lightgrid" so you shouldn't need to specify this. "common/lightgrid" was added by ydnar, so if you're missing this shader, it is included with the latest version of Q3Map2.

- - - -
-
surfaceparm metalsteps

- - - -The player sounds as if he is walking on clanging metal steps or gratings. Other than specifying flesh (doesn't work), metalsteps, nosteps, or default (i.e. specify nothing) it is currently not possible for a designer to create or assign a specific sound routine to a texture. Note: If no sound is set for a texture, then the default footsteps sound routines are heard.

- - - -
-
surfaceparm monsterclip

- - - -Blocks monster movement. Not functional in Quake III Arena.

- - - -
-
surfaceparm nodamage

- - - -The player takes no fall damage if he lands onto a texture with this surfaceparm. This keyword is found in "common/cushion" but you may want to specify this on certain shaders (jump pads, for example).

- - - -
-
surfaceparm nodlight

- - - -Read as "No Dee-Light". A texture containing this parameter will not be affected or lit by dynamic lights, such as weapon effects. An example in Quake III Arena would be solid lava.

- - - -
-
surfaceparm nodraw

- - - -A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin brushes, shaders with cull none or cull disable and so on. This keyword is found in "common/nodraw" so you shouldn't need to specify this.

- - - -
-
surfaceparm nodrop

- - - -When a player dies inside a volume (brush) marked nodrop, no weapon is dropped. The intend use is for "Pits of Death." Have a kill trigger inside a nodrop volume, and when the players die here, they won't drop their weapons. The intent is to prevent unnecessary polygon pileups on the floors of pits. This keyword is found in "common/nodrop" but you may want to specify this on certain shaders (fog volumes in pits, for example).

- - - -
-
surfaceparm noimpact

- - - -World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave marks.

- - - -
-
surfaceparm nomarks

- - - -Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. This is useful to keep lights from being temporarily obscured by battle damage.

- -Design Notes:
-Use this on any surface with a deformVertexes keyword. Otherwise, the marks will appear on the unmodified surface location of the texture with the surface wriggles and squirms through the marks.

- - - -
-
surfaceparm nolightmap

- - - -This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not require the addition of an rgbGen identity keyword in that stage.

- - - -
-
surfaceparm nosteps

- - - -The player makes no sound when walking on this texture.

- - - -
-
surfaceparm nonsolid

- - - -This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to triggers, hint brushes and similar brushes. This affects the content of a brush.

- - - -
-
surfaceparm origin

- - - -Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be rectangular (or square). The origin point is the exact center of the origin brush. This keyword is found in "common/origin" so you shouldn't need to specify this.

- - - -
-
surfaceparm playerclip

- - - -Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked playerclip. The intended use for this is to block the player but not block projectiles like rockets. This keyword is found in "common/clip" so you shouldn't need to specify this.

- -Design Notes:
- playerclip is often useful for "smoothing" out the geometry of the map, preventing the player from snagging on objects. It is also used in open sky areas of maps, preventing the player from flying too high and seeing the "Hall of Mirrors" effect at the bottom of the cloud layer.

- - - -
-
surfaceparm pointlight

- - - -Sample lighting at vertices??? I'm not sure what this does at this point.

- - - -
-
surfaceparm skip

- - - -Works just like Quake II skip texture. Use on sides of hint and antiportal brushes where you don't want BSP splits. This keyword is found in "common/skip" so you shouldn't need to specify this. "common/skip" was added by ydnar, so if you're missing this shader, it is included with the latest version of Q3Map2.

- - - -
-
surfaceparm sky

- - - -This flags the compiler, telling it that this surface should be rendered as sky.

- - - -
-
surfaceparm slick

- - - -This surfaceparm included in a texture should give it significantly reduced friction. This keyword is found in "common/slick" but you may want to specify this on certain shaders (ice, for example).

- - - -
-
surfaceparm slime

- - - -Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush.

- - - -
-
surfaceparm structural

- - - -This surface attribute causes a brush to be seen by the Q3Map2 process as a possible break-point in a BSP tree. It is used as a part of the shader for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by default, structural, so you shouldn't need to specify this.

- - - -
-
surfaceparm trans

- - - -Tells Q3Map2 that pre-computed visibility should not be blocked by this surface. Generally, any shaders that have blendfunc's should be marked as surfaceparm trans.

- - - -
-
surfaceparm water

- - - -Assigns to the texture the game properties for water. This affects both the surface and the content of a brush.

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch5.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch5.htm.svn-base deleted file mode 100644 index 19285222..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch5.htm.svn-base +++ /dev/null @@ -1,102 +0,0 @@ - - -Q3Map2 Shader Manual: Editor Specific Shader Keywords - - - - - - - - - - -
- - - -

-5 - Editor Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - -These instructions only affect the texture when it is seen in the Radiant editor. They should be grouped with the surface parameters but ahead of them in sequence.

- - - -
-
qer_editorImage textureName

- - - -This keyword creates a shader name in memory, but in the editor, it displays the TGA art image specified in qer_editorImage (in the example below this is textures/eerie/lavahell.tga).

- -The editor maps a texture using the size attributes of the TGA file used for the editor image. When that editor image represents a shader, any texture used in any of the shader stages will be scaled up or down to the dimensions of the editor image. If a 128x128 pixel image is used to represent the shader in the editor, then a 256x256 image used in a later stage will be shrunk to fit. A 64x64 image would be stretched to fit. Be sure to check this on bouncy, acceleration, and power-up pads placed on surfaces other than 256 x 256. Use tcMod scale to change the size of the stretched texture. Remember that tcMod scale 0.5 0.5 will double your image, while tcMod scale 2 2 will halve it.

- -Design Notes:
-The base_light and gothic_light shaders contain numerous uses of this. It can be very useful for making different light styles (mostly to change the light brightness) without having to create a new piece of TGA art for each new shader.

- - -
Script: Setting an editorImage
-textures/liquids/lavahell2 //path and name of new texture -{ - qer_editorImage textures/eerie/lavahell.tga //based on this - qer_nocarve //cannot be cut by CSG subtract - surfaceparm noimpact //projectiles do not hit it - surfaceparm lava //has the game properties of lava - surfaceparm nolightmap //environment lighting does not affect - q3map_surfacelight 3000 //light is emitted - tessSize 256 //relatively large triangles - cull disable //no sides are removed - deformVertexes wave 100 sin 5 5 .5 0.02 - fogparms 0.8519142 0.309723 0.0 128 128 - { - maptextures/eerie/lavahell.tga //base texture artwork - tcMod turb .25 0.2 1 0.02 //texture is subjected to turbulence - tcMod scroll 0.1 0.1 //the turbulence is scrolled - } -} -
- - - - -
-
qer_nocarve

- - - -A brush marked with this instruction will not be affected by CSG subtract functions. It is especially useful for water and fog textures.

- - - -
-
qer_trans N.N

- - - -This keyword defines the percentage of transparency that a brush will have when seen in the editor (no effect on game rendering at all). It can have a positive value between 0 and 1. The higher the value, the less transparent the texture. Example: qer_trans 0.2 means the brush is 20% opaque and nearly invisible.

- -Design Notes:
-If you use qer_trans on a shader whose qer_editorImage has an alpha channel, the transparent areas of the editorImage will also be transparent in the editor. To keep the solid areas of the editorImage opaque, use a qer_trans value of "1.0". Useful for grates, windows, fences, etc.

- - - -
-
qer_alphaFunc func N.N

- - - -blah blah blah

- - - -


Previous | Contents | Next


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch6.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch6.htm.svn-base deleted file mode 100644 index b245dc6a..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch6.htm.svn-base +++ /dev/null @@ -1,505 +0,0 @@ - - -Q3Map2 Shader Manual: Stage Specific Shader Keywords - - - - - - - - - - -
- - - -

-6 - Stage Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - -Stage specifications only affect rendering. Changing any keywords or values within a stage will usually take effect as soon as a vid_restart is executed. Q3Map2 ignores stage specific keywords entirely.

- -A stage can specify a texture map, a color function, an alpha function, a texture coordinate function, a blend function, and a few other rasterization options.

- - - -
-
Texture Map Specification

- - - -map texturename
-Specifies the source texture map (a 24 or 32-bit TGA file) used for this stage. The texture may or may not contain alpha channel information. The special keywords $lightmap and $whiteimage may be substituted in lieu of an actual texture map name. In those cases, the texture named in the first line of the shader becomes the texture that supplies the light mapping data for the process. The texture name should always end with the ".tga" suffix regardless of whether the source texture map is actually a .tga file or .jpg.

- -
map $lightmap
-This is the overall lightmap for the game world. It is calculated during the Q3Map2 process. It is the initial color data found in the framebuffer. Note: due to the use of overbright bits in light calculation, the keyword rgbGen identity must accompany all $lightmap instructions.

- -
map $whiteimage
-This is used for specular lighting on MD3 models. This is a white image generated internally by the game. This image can be used in lieu of $lightmap or an actual texture map if, for example, you wish for the vertex colors to come through unaltered.

- -
clampMap texturename
-Dictates that this stage should clamp texture coordinates instead of wrapping them. During a stretch function, the area, which the texture must cover during a wave cycle, enlarges and decreases. Instead of repeating a texture multiple times during enlargement (or seeing only a portion of the texture during shrinking) the texture dimensions increase or contract accordingly. This is only relevant when using something like deformTexCoordParms to stretch/compress texture coordinates for a specific special effect. Remember that the Quake III Arena engine normalizes all texture coordinates (regardless of actual texture size) into a scale of 0.0 to 1.0.

- -Proper Alignment: When using clampTexCoords make sure the texture is properly aligned on the brush. The clampTexCoords function keeps the image from tiling. However, the editor doesn't represent this properly and shows a tiled image. Therefore, what appears to be the correct position may be offset. This is very apparent on anything with a tcMod rotate and clampTexCoords function.

- -//obsidian: Figure 2a & 2b??? Where???
-//obsidian: clampTexCoords???


- -Avoiding Distortion: When seen at a given distance (which can vary, depending on hardware and the size of the texture), the compression phase of a stretch function will cause a "cross"-like visual artifact to form on the modified texture due to the way that textures are reduced. This occurs because the texture undergoing modification lacks sufficient "empty space" around the displayed (non-black) part of the texture (see figure 2a). To compensate for this, make the non-zero portion of the texture substantially smaller (50% of maximum stretched size -- see figure 2b) than the dimensions of the texture. Then, write a scaling function (tcMod scale) into the appropriate shader phase, to enlarge the image to the desired proportion.

- -The shaders for the bouncy pads (in the sfx.shader file) show the stretch function in use, including the scaling of the stretched texture:

- - - -
Script: Using clampMap to control a stretching texture
-textures/sfx/metalbridge06_bounce -{ - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - { - map textures/sfx/metalbridge06_bounce.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - // END -} -
- - - -
animMap frequency texture1... texture8
-The surfaces in the game can be animated by displaying a sequence of 1 to 8 frames (separate texture maps). These animations are affected by other keyword effects in the same and later shader stages.
- -
    -frequency : The number of times that the animation cycle will repeat within a one second time period. The larger the value, the more repeats within a second. Animations that should last for more than a second need to be expressed as decimal values.
    -texture1... texture8 : the texture path/texture name for each animation frame must be explicitly listed. Up to eight frames (eight separate .tga files) can be used to make an animated sequence. Each frame is displayed for an equal subdivision of the frequency value. -
- -Example:
-animMap 0.25 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga would be a 4 frame animated sequence, calling each frame in sequence over a cycle length of 4 seconds. Each frame would be displayed for 1 second before the next one is displayed. The cycle repeats after the last frame in sequence shown.

- -Design Notes:
-To make a texture image appear for an unequal (longer) amount of time (compared to other frames), repeat that frame more than once in the sequence.

- - - -
Script: Specifying an animMap
-textures/sfx/flameanim_blue -{ - - // *********************************************** - // * Blue Flame * - // * July 20, 1999 Surface Light 1800 * - // * Please Comment Changes * - // *********************************************** - qer_editorimage textures/sfx/b_flame7.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - // texture changed to blue flame.... PAJ - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga - textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga - textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga - textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga - textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga - textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga - textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} -
- - -
videoMap videoname
-Surfaces marked with a shader containing this directive in one of its stages will display an animated video playing in a continuous loop. The video clip must be in ROQ format and playing at 30 frames per second. The ROQ file is stored in the "video" directory within the main mod directory. A third-party program is required to convert other video formats to the ROQ format for use within Quake III engine games.

- - -
Script: Specifying a videoMap
-textures/obsidian_video/intro -{ - qer_editorImage textures/obsidian_video/qer_intro.tga - surfaceparm nolightmap - { - videoMap obsidian_intro.roq - rgbGen identity - } -} -
- - -
Historical Information:
-The ROQ format is a proprietary video format developed by Graeme Devine originally used for "The 7th Guest" for the purpose of being able to decompress quickly while maintaining high image quality. It was later adopted by Id Software for use in Quake III Arena.

- - - -
-
blendFunc func

- - - -Blend functions are the keyword commands that tell the Quake III Arena graphic engine's renderer how graphic layers are to be mixed together.

- -
Simplified Blend Functions
-The most common blend functions are set up here as simple commands, and should be used unless you really know what you are doing. - -
    -add : Shorthand command for blendFunc gl_one gl_one. Effects like fire and energy are additive.

    -filter : Shorthand command that can be substituted for either blendFunc gl_dst_color gl_zero or blendFunc gl_zero gl_src_color. A filter will always result in darker pixels than what is behind it, but it can also remove color selectively. Lightmaps are filters.

    -blend : Shorthand command for blendFunc gl_src_alpha gl_one_minus_src_alpha. This is conventional transparency, where part of the background is mixed with part of the texture.

    -
- -
Explicit Blend Functions
-Getting a handle on this concept is absolutely key to understanding all shader manipulation of graphics.

- -blendFunc or "Blend Function" is the equation at the core of processing shader graphics. The formula reads as follows:

- -
[source * (srcBlend)] + [destination * (dstBlend)]

- -Source is usually the RGB color data in a texture TGA file (remember it's all numbers) modified by any rgbGen and alphaGen. In the shader, the source is generally identified by command map, followed by the name of the image.

- -Destination is the color data currently existing in the frame buffer.

- -Rather than think of the entire texture as a whole, it maybe easier to think of the number values that correspond to a single pixel, because that is essentially what the computer is processing... one pixel of the bitmap at a time.

- -The process for calculating the final look of a texture in place in the game world begins with the precalculated lightmap for the area where the texture will be located. This data is in the frame buffer. That is to say, it is the initial data in the destination. In an unmanipulated texture (i.e. one without a special shader script), color information from the texture is combined with the lightmap. In a shader-modified texture, the $lightmap stage must be present for the lightmap to be included in the calculation of the final texture appearance.

- -Each pass or "stage" of blending is combined (in a cumulative manner) with the color data passed onto it by the previous stage. How that data combines together depends on the values chosen for the source blends and destination blends at each stage. Remember it's numbers that are being mathematically combined together that are ultimately interpreted as colors.

- -A general rule is that any source blend other than GL_ONE (or GL_SRC_ALPHA where the alpha channel is entirely white) will cause the source to become darker.

- -
Source Blend srcBlend
-The following values are valid for the source blend part of the equation. - -
    -GL_ONE This is the value 1. When multiplied by the source, the value stays the same. The value of the color information does not change.
    -GL_ZERO This is the value 0. When multiplied by the source, all RGB data in the source becomes zero (essentially black).
    -GL_DST_COLOR This is the value of color data currently in the destination (frame buffer). The value of that information depends on the information supplied by previous stages.
    -GL_ONE_MINUS_DST_COLOR This is nearly the same as GL_DST_COLOR except that the value for each component color is inverted by subtracting it from one. (i.e. R = 1.0 - DST.R, G = 1.0 - DST.G, B = 1.0 - DST.B, etc.)
    -GL_SRC_ALPHA The TGA file being used for the source data must have an alpha channel in addition to its RGB channels (for a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the source.
    -GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A) -
- -
Destination Blend dstBlend
-The following values are valid for the destination blend part of the equation. - -
    -GL_ONE This is the value 1. When multiplied by the destination, the value stays the same the value of the color information does not change.
    -GL_ZERO This is the value 0. When multiplied by the destination, all RGB data in the destination becomes zero (essentially black).
    -GL_SRC_COLOR This is the value of color data currently in the source (which is the texture being manipulated here).
    -GL_ONE_MINUS_SRC_COLOR This is the value of color data currently in source, but subtracted from one (i.e. inverted).
    -GL_SRC_ALPHA The TGA file being used for the source data must have an alpha channel in addition to its RGB channels (four a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the source.v -GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A). -
- -
Doing the Math: The Final Result
-The product of the source side of the equation is added to the product of the destination side of the equation. The sum is then placed into the frame buffer to become the destination information for the next stage. Ultimately, the equation creates a modified color value that is used by other functions to define what happens in the texture when it is displayed in the game world.

- -
Default Blend Function
-If no blendFunc is specified then no blending will take place. A warning is generated if any stage after the first stage does not have a blendFunc specified.

- -
Technical Information/Limitations Regarding Blend Modes:
-The Riva 128 graphics card supports ONLY the following blendmodes:

- -GL_ONE, GL_ONE
-GL_DST_COLOR, GL_ZERO
-GL_ZERO, GL_SRC_COLOR
-GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
-GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA

- -Cards running in 16 bit color cannot use any GL_DST_ALPHA blends.

- - - -
-
rgbGen func

- - - -There are two color sources for any given shader, the texture file and the vertex colors. Output at any given time will be equal to TEXTURE multiplied by VERTEXCOLOR. Most of the time VERTEXCOLOR will default to white (which is a normalized value of 1.0), so output will be TEXTURE (this usually lands in the Source side of the shader equation). Sometimes you do the opposite and use TEXTURE = WHITE, but this is only commonly used when doing specular lighting on entities (i.e. shaders that level designers will probably never create.

- -The most common reason to use rgbGen is to pulsate something. This means that the VERTEXCOLOR will oscillate between two values, and that value will be multiplied (darkening) the texture.

- -If no rgbGen is specified, either "identityLighting" or "identity" will be selected, depending on which blend modes are used.

- -Valid func parameters are identity, identityLighting, vertex, exactVertex, fromVertex (???) entity, oneMinusEntity, lightingDiffuse, noise (???), wave and const.

- - -
rgbGen identityLighting
-Colors will be (1.0, 1.0, 1.0) if running without overbright bits (NT, Linux, windowed modes), or (0.5, 0.5, 0.5) if running with overbright. Overbright allows a greater color range at the expense of a loss of precision. Additive and blended stages will get this by default.

- -
rgbGen identity
-Colors are assumed to be all white (1.0, 1.0, 1.0). All filters stages (lightmaps, etc) will get this by default.

- -
rgbGen wave func base amplitude phase freq
-Colors are generated using the specified waveform. An affected texture with become darker and lighter, but will not change hue. Hue stays constant. Note that the RGB values for color will not go below 0 (black) or above 1 (white). Valid waveforms are sin, triangle, square, sawtooth and inversesawtooth (see 1.4.8 Waveform Functions).

- -
rgbGen entity
-Colors are grabbed from the entity's modulate field. This is used for things like explosions.

- -Design Notes:
-This keyword would probably not be used by a level designer.

- -
rgbGen oneMinusEntity
-Colors are grabbed from 1.0 minus the entity's modulate field.

- -Design Note:
-This keyword would probably not be used by a level designer.

- -
rgbGen vertex
-Colors are filled in directly by the data from the map or model files.

- -Obsidian: exactVertex ignores overbrightbits. Generally brighter under default settings.
-rgbGen vertex + alphaGen const or rgbGen exactVertex to disable surfaces from being affected by alphaMod volumes.

- -Design Note:
-rgbGen vertex should be used when you want the RGB values to be computed for a static model (i.e. mapobject) in the world using precomputed static lighting from Q3BSP. This would be used on things like the gargoyles, the portal frame, skulls, and other decorative models put into the Quake III Arena world.

- -
rgbGen oneMinusVertex
-As rgbGen vertex, but inverted.

- -Design Note:
-This keyword would probably not be used by a level designer.

- -
rgbGen lightingDiffuse
-Colors are computed using a standard diffuse lighting equation. It uses the vertex normals to illuminate the object correctly.

- -Design Notes:
-rgbGen lightingDiffuse is used when you want the RGB values to be computed for a dynamic model (i.e. non-map object) in the world using regular in-game lighting. For example, you would specify on shaders for items, characters, weapons, etc.

- -
rgbGen const ( R G B )
-A constant vertex colour is assigned to the affected surface. This modifies the hue of the texture.

- - - -
-
alphaGen func

- - - -The alpha channel can be specified like the RGB channels. If not specified, it defaults to 1.0. Valid func values are lightingSpecular, wave, entity, oneMinusEntity, vertex, oneMinusVertex, portal.

- -//Obsidian: Describe each in more detail... like rgbGen above.
- -
alphaGen portal
-This rendering stage keyword is used in conjunction with the surface parameter keyword portal. The function accomplishes the "fade" that causes the scene in the portal to fade from view. Specifically, it means "Generate alpha values based on the distance from the viewer to the portal." Use alphaGen portal on the last rendering pass.

- -//Obsidian: needs formatting???

- - - -
-
tcGen coordinateSource

- - - -Specifies how texture coordinates are generated and where they come from. Valid functions are base, lightmap, environment and vector. - -
    -base : Base texture coordinates from the original art.
    -lightmap : Lightmap texture coordinates.
    -environment : Make this object environment mapped.
    -vector : Projects a texture from a specified direction.
    -
- -tcGen vector ( sx sy sz ) ( tx ty tz )
-New texture coordinate generation by world projection. This allows you to project a texture onto a surface in a fixed way, regardless of its orientation.

- -S coordinates correspond to the "x" coordinates on the texture itself.
-T coordinates correspond to the "y" coordinates on the texture itself.

- -The measurements are in game units.

- -Example: tcGen vector ( 0.01 0 0 ) ( 0 0.01 0 )
-This would project a texture with a repeat every 100 units across the X/Y plane. The value comes from dividing the game units from 1, in this case, 1/100.

- - - -
-
tcMod func ---

- - - -Specifies how texture coordinates are modified after they are generated. The valid functions for tcMod are rotate, scale, scroll, stretch, transform and turb. Transform is a function generally reserved for use by programmers who suggest that designers leave it alone. When using multiple tcMod functions during a stage, place the scroll command last in order, because it performs a mod operation to save precision, and that can disturb other operations. Texture coordinates are modified in the order in which tcMods are specified. In otherwords, if you see:

- -tcMod scale 0.5 0.5
-tcMod scroll 1 1

- -then the texture coordinates will be scaled then scrolled.

- -
tcMod rotate degrees/sec
-This keyword causes the texture coordinates to rotate. The value is expressed in degrees rotated each second. A positive value means clockwise rotation. A negative value means counterclockwise rotation. For example "tcMod rotate 5" would rotate texture coordinates 5 degrees each second in a clockwise direction. The texture rotates around the center point of the texture map, so you are rotating a texture with a single repetition, be careful to center it on the brush (unless off-center rotation is desired).

- -
tcMod scale sScale tScale
-Resizes (enlarges or shrinks) the texture coordinates by multiplying them against the given factors of sScale and tScale. The values "s" and "t"conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The values for sScale and tScale are NOT normalized. This means that a value greater than 1.0 will increase the size of the texture. A positive value less than one will reduce the texture to a fraction of its size and cause it to repeat within the same area as the original texture (Note: see clampTexCoords for ways to control this).

- -Example: tcMod scale 0.5 2 would cause the texture to repeat twice along its width, but expand to twice its height (in which case half of the texture would be seen in the same area as the original)

- -
tcMod scroll sSpeed tSpeed
-Scrolls the texture coordinates with the given speeds. The values "s" and "t" conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The scroll speed is measured in "textures" per second. A "texture" is the dimension of the texture being modified and includes any previous shader modifications to the original TGA). A negative s value would scroll the texture to the left. A negative t value would scroll the texture down.

- -Example: tcMod scroll 0.5 -0.5 moves the texture down and right (relative to the TGA files original coordinates) at the rate of a half texture each second of travel.

- -This should be the LAST tcMod in a stage. Otherwise there may be a popping or snapping visual effect in some shaders.

- -
tcMod stretch func base amplitude phase frequency
-Stretches the texture coordinates with the given function. Stretching is defined as stretching the texture coordinate away from the center of the polygon and then compressing it towards the center of the polygon. (see Chapter 1: Key Concepts for waveform parameter definitions).

- -
tcMod transform m00 m01 m10 m11 t0 t1
-Transforms each texture coordinate as follows:
- -S' = s * m00 + t * m10 + t0
-T' = s * m01 + t * m11 + t1
- -This is for use by programmers.

- - -
tcMod turb base amplitude phase freq
-Applies turbulence to the texture coordinate. Turbulence is a back and forth churning and swirling effect on the texture.

- -base : Currently undefined.
-amplitude : This is essentially the intensity of the disturbance or twisting and squiggling of the texture.
-phase : See the explanation for phase under the deformVertexes keyword.
-freq : Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of one would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 seconds.

- - - -
-
depthFunc func

- - - -This controls the depth comparison function used while rendering. The default is "lequal" (Less than or equal to) where any surface that is at the same depth or closer of an existing surface is drawn. This is used for textures with transparency or translucency. Under some circumstances you may wish to use "equal", e.g. for light-mapped grates that are alpha tested (it is also used for mirrors).

- - - -
-
depthWrite

- - - -By default, writes to the depth buffer when depthFunc passes will happen for opaque surfaces and not for translucent surfaces. Blended surfaces can have the depth writes forced with this function.

- - - -
-
detail

- - - -This feature was not used in Quake III Arena maps, but still functions. Designates this stage as a detail texture stage, which means that if the c_var, r_detailtextures, is set to 0 then this stage will be ignored (detail will not be displayed). This keyword, by itself, does not affect rendering at all. If you do put in a detail texture, it has to conform to very specific rules. Specifically, the blendFunc:

- -
blendFunc GL_DST_COLOR GL_SRC_COLOR

- -This is also the simple blend function: blendFunc filter

- -And the average intensity of the detail texture itself must be around 127.

- -Detail is used to blend fine pixel detail back into a base texture whose scale has been increased significantly. When detail is written into a set of stage instructions, it allows the stage to be disabled by the c_var console command setting "r_detailtextures 0".

- -A texture whose scale has been increased beyond a 1:1 ratio tends not to have very high frequency content. In other words, one texel can cover a lot of real estate. Frequency is also known as "detail." Lack of detail can appear acceptable if the player never has the opportunity to see the texture at close range. But seen close up, such textures look glaringly wrong within the sharp detail of the Quake III Arena environment. A detail texture solves this problem by taking a noisy "detail" pattern (a tiling texture that appears to have a great deal of surface roughness) and applying it to the base texture at a very densely packed scale (that is, reduced from its normal size). This is done programmatically in the shader, and does not require modification of the base texture. Note that if the detail texture is the same size and scale as the base texture that you may as well just add the detail directly to the base texture. The theory is that the detail texture's scale will be so high compared to the base texture (e.g.; 9 detail texels fitting into 1 base texel) that it is literally impossible to fit that detail into the base texture directly.

- -For this to work, the rules are as follows:
- -
    -
  • The lightmap must be rendered first. This is because the subsequent detail texture will be modifying the lightmap in the framebuffer directly.
  • -
  • The base texture must be rendered next.
  • -
  • The detail texture must be rendered last since it modifies the lightmap in the framebuffer. There is a bug in Quake III that disables all stages in a shader after a "detail" stage if r_detailTextures is set to 0.
  • -
  • The detail texture MUST have a mean intensity around 127-129. If it does not then it will modify the displayed texture's perceived brightness in the world.
  • -
  • The detail shader stage MUST have the "detail" keyword or it will not be disabled if the user uses the "r_detailtextures 0" setting.
  • -
  • The detail stage MUST use "blendFunc GL_DST_COLOR GL_SRC_COLOR". Any other BlendFunc will cause mismatches in brightness between detail and non-detail views.
  • -
  • The detail stage should scale its textures by some amount (usually between 3 and 12) using "tcMod scale" to control density. This roughly corresponds to coarseness. A very large number, such as 12, will give very fine detail, however that detail will disappear VERY quickly as the viewer moves away from the wall since it will be MIP mapped away. A very small number, e.g. 3, gives diminishing returns since not enough is brought in when the user gets very close. I'm currently using values between 6 and 9.5. You should use non-integral numbers as much as possible to avoid seeing repeating patterns.
  • -
  • Detail textures add one pass of overdraw, so there is a definite performance hit.
  • -
  • Detail textures can be shared, so designers may wish to define only a very small handful of detail textures for common surfaces such as rocks, etc.
  • -
- -An example (non-existent) detail shader is as follows:

- - - -
Script: Detail shaders
-textures/bwhtest/foo -{ - q3map_globalTexture //may be required when using tcMod scale in later stages - - // draw the lightmap first - { - map $lightmap - rgbGen identity - } - - // draw the base texture - { - map textures/castle/blocks11b.tga - blendFunc filter - } - - // highly compressed detail texture - { - map textures/details/detail01.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR //MUST BE USED - detail //allows detail shaders to be disabled - tcMod scale 9.1 9.2 - } -} -
- - - - -
-
alphaFunc func

- - - -Determines the alpha test function used when rendering this map. Valid values are GT0, LT128, and GE128. These correspond to "GREATER THAN 0", "LESS THAN 128", and "GREATER THAN OR EQUAL TO 128". This function is used when determining if a pixel should be written to the framebuffer. For example, if GT0 is specified, the only the portions of the texture map with corresponding alpha values greater than zero will be written to the framebuffer. By default alpha testing is disabled.

- -Both alpha testing and normal alpha blending can be used to get textures that have see-through parts. The difference is that alphaFunc is an all-or-nothing test, while blending smoothly blends between opaque and translucent at pixel edges. Alpha test can also be used with depthWrite, allowing other effects to be conditionally layered on top of just the opaque pixels by setting depthFunc to equal.

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch7.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch7.htm.svn-base deleted file mode 100644 index eb679fc3..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch7.htm.svn-base +++ /dev/null @@ -1,110 +0,0 @@ - - -Q3Map2 Shader Manual: Quake 3 Engine Game Specific Shader Keywords - - - - - - - - - - -
- - - -

-7 - Quake 3 Engine Game Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - - -The Quake 3 Engine has been licensed to several different companies for the development of third party games. This chapter is a sub-manual documenting the Quake 3 Engine game specific shader keywords developed for third party games like Return to Castle Wolfenstein: Enemy Territory, Jedi Knights II, Soldier of Fortune II, Jedi Academy, Star Trek: Elite Force, as examples.

- -Note: These are just keywords that have been submitted by people on the forums/irc channels. I have no idea about the accuracy of this chapter. Please use with caution. Please e-mail me (Obsidian) for any additions or error corrections to this list.

- -All default Quake III Arena shader keywords *should* also work for the below list of games.

- - -
-
Return to Castle Wolfenstein

- - - -Q3Map Specific Surface Parameter Shader Keywords
-surfaceparm grasssteps
-surfaceparm gravelsteps
-surfaceparm metalsteps
-surfaceparm roofssteps
-surfaceparm snowsteps
-surfaceparm woodsteps
-surfaceparm ladder
-surfaceparm carpetsteps (ET???)
-surfaceparm glass
-surfaceparm playerslick
-surfaceparm entityMergable???
-surfaceparm monsterSlick
-surfaceparm nofog
- -
-Are these surfaceparm's?
-ai_nopass
-ai_nopasslarge
-ai_nosight
-
- - - -
-
Return to Castle Wolfenstein: Enemy Territory

- - -Note: unless otherwise noted, all RTCW keywords also work in ET.

- -Q3Map Specific Shader Keywords
-q3map_foliage

- -Q3Map Specific Surface Parameter Shader Keywords
-surfaceparm landmines
-
- - - -
-
Raven Software

- - - -Jedi Knights II, Jedi Academy, Soldier of Fortune II

- -Q3Map Specific Shader Keywords
-q3map_flare [shadername]
-q3map_flareShader
-q3map_material
-q3map_onlyVertexLighting

- - - -
-
Ritual Entertainment

- - - -Q3Map Specific Shader Keywords
-
- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch8.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch8.htm.svn-base deleted file mode 100644 index bae97ea4..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/ch8.htm.svn-base +++ /dev/null @@ -1,40 +0,0 @@ - - -Q3Map2 Shader Manual: Shader Creation Tips - - - - - - - - - - -
- - - -

-8 - Shader Creation Tips
-
-Q3Map2 Shader Manual


- - - -This chapter covers some miscellaneous shader and texture creating tips. Note: I've temporarily removed these for now, since I'm not sure how useful they are. A lot of this was covered or should be covered in the Radiant Manual. I'll come back to this chapter when I have time.

- -Obsidian's Notes:
-Stage transparency using blendFunc blend vs. shader transparency. - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/contents.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/contents.htm.svn-base deleted file mode 100644 index 60c49422..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/contents.htm.svn-base +++ /dev/null @@ -1,236 +0,0 @@ - - -Q3Map2 Shader Manual: Table of Contents - - - - - - - - - - - - - -
-

- Table of Contents
-
- Q3Map2 Shader Manual


-
- - - -0 Preface
- - -1 Introduction
- - -2 General Shader Keywords
- - -3 Q3Map2 Specific Shader Keywords
- - -4 Q3Map2 Specific Surface Parameter Shader Keywords
- - -5 Editor Specific Shader Keywords
- - -6 Stage Specific Shader Keywords
- - -7 Quake 3 Engine Game Specific Shader Keywords
-
    - Return to Castle Wolfenstein
    - Return to Castle Wolfenstein: Enemy Territory
    - Raven
    - Ritual
    -
- -8 Shader Effects Creation Tips
-
    - Notes on Alpha Channels
    - Troubleshooting Shaders
    - Creating New Textures
    -
- -Appendix A: Triggerable Shader Entities

- -Appendix B: Terrain

- -Appendix C: Foghull

- -Appendix D: Fur

- -Appendix E: Celshading

- -Appendix F: Bumpmapping

- -Appendix G: Lightstyles

- -Appendix H: Lightmapped Mapmodels

- -Appendix I: Light Emitting Shaders

- - - -
- - - -


-Title Page -


- - - -
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/start.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/start.htm.svn-base deleted file mode 100644 index 666f11df..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/.svn/text-base/start.htm.svn-base +++ /dev/null @@ -1,42 +0,0 @@ -Q3Map2 Shader Manual - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- By Obsidian and ydnar | Version 2.5.15 (02.09.04) -
- - Based on the original
- Q3Radiant Shader Manual, Revision #12
- By Paul Jaquays and Brian Hook

- (with additional material by John Carmack, Christian Antkow, Kevin Cloud, & Adrian Carmack)
- QERadiant.com thanks John Hutton for re-formating the original manual into a more web friendly version -
-
- -
- \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apA.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apA.htm deleted file mode 100644 index 47e38435..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apA.htm +++ /dev/null @@ -1,58 +0,0 @@ - - -Q3Map2 Shader Manual: Triggerable Shader Entities - - - - - - - - - - -
- - - -

-Appendix A - Triggerable Shader Entities
-
-Q3Map2 Shader Manual


- - - -By TTimo, 31.08.01

- -The targetShaderName and targetShaderNewName keys can be used with any entity that supports the target key (the entity instance does not actually have to use the target key for these new keys to work). If both are defined, then when the entity decides to activate its targets, all shaders/textures in the map that were originally the same name as the targetShaderName value, will be changed to the targetShaderNewName value.

- -For example this would make it look like the red light shader is "turning on": - -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_on"
-
- -And this would turn it back off: - -

-"targetShaderName" "textures/proto2/redlight_off"
-"targetShaderNewName" "textures/proto2/redlight_off" 
-
- -Note that the ORIGINAL shader name is used in both instances, not whatever it happens to be currently. Also, of course, this will happen globally. If the mapper wanted to affect only a certain set of red lights, he/she would need to make a unique shader name to be used with that set.

- -The code that supports these keys is in G_UseTargets in g_utils.c

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apB.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apB.htm deleted file mode 100644 index 7a90b54d..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apB.htm +++ /dev/null @@ -1,131 +0,0 @@ - - -Q3Map2 Shader Manual: Terrain - - - - - - - - - - -
- - - -

-Appendix B - Terrain
-
-Q3Map2 Shader Manual


- - - -Q3Map2 terrain has changed radically since Quake III: Team Arena first hit the shelves. Alphamapped terrain shaders are difficult to set up, limiting and lacks the ability for the mapper to fine tune the effect. The new terrain improvements in Q3Map2 have removed these difficulties, allowing the mapper to fully exploit terrain shaders for breathtaking outdoor scenes. This section will assume that you are already familiar with the method of setting up a standard alphamapped terrain as described in the Terrain Construction for Quake 3 Engine Games manual by Paul Jaquays, and will focus on the new enhanced features of Q3Map2 terrain.

- - - -
-
General Changes

- - - -Q3Map2 terrain has changed dramatically in terms of not only visually, but also in terms of how it is processed by the compiler. To ensure compatibility, there needs to be a few changes. Foremost, make sure that all terrain shader files are listed in the shaderlist.txt file.

- -Before using Q3Map2 alphamapped terrain, it must be noted that terrain is now handled completely different than before. Q3Map2 no longer looks for the word terrain in the shader name to determine whether or not it is an indexed shader. Instead it looks for q3map_indexed or q3map_terrain. For this reason, the alphamap terrain shaders have been slightly modified. If using Q3Map2 alphamaps, make sure that your "textures/common/terrain" and "textures/common/terrain2" shaders have been updated to the following:

- - - -
Script: "common" terrain shaders
-textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} -
- - -
- -Base Shader
-To simplify the terrain shader writing process, a base shader can be used as a template with subclassed shaders referencing it. This makes use of the q3map_baseShader directive. The base shader can consist of all q3map_* directives and must be processed before all other terrain shaders referencing it. The use of a base shader is recommend for all terrain shaders.

- -tcMod Functions
-q3map_tcMod can be used on terrain shaders to minimize any obvious texture tiling, particularly q3map_tcMod rotate. In some situations q3map_tcMod scale or the stage driven tcMod scale may be used to scale the textures - though typically tcGen texture projection functions are usually the preferred method.

- -tcGen Functions
-In most situations, terrain textures will need to be projected onto the terrain mesh. This is achieved by using either q3map_tcGen function or the stage specific tcGen. Any tcGen functions will overwrite any tcMod scale functions.

- - - -
-
Lightmapped Terrain

- - - -The foremost improvement to Q3Map2 terrain is the ability to use lightmaps as a lighting system rather than basic vertex lighting. This allows terrain to not only cast detailed shadows onto itself, but also allows other map geometry to cast shadows onto the terrain as well. The additional rendering pass of the lightmap creates a slight performance hit as a price for the improved visuals. Several new q3map_* directives are typically used to tweak the terrain lightmap:

- -q3map_nonPlanar
-Required on all terrain shaders, q3map_nonPlanar allows shadows to be cast across non-planar edges. This fixes a problem where lightmapped terrain would not light properly across uneven surfaces.

- -q3map_lightmapAxis
-Optionally used, q3map_lightmapAxis can be used to specify the axis in which the lightmap is projected from. This is typically used on normal triangle-quad souped terrain and is set implicitly to "q3map_lightmapAxis z" with q3map_terrain. It is not recommended for terrain with caves or undersides.

- -q3map_shadeAngle
-Most terrain artists will choose to enable triangle edge shadow smoothing to reduce the appearance of sharp shadow edges across the terrain mesh. q3map_shadeAngle specifies the triangle edge angle at which the light will be diffused. For best results, it is recommended that you start with low values and tweak the angle parameter in small increments until a satisfactory result is produced. Overly high values will wash out shadow details.

- -q3map_lightmapMergable
-Setting q3map_lightmapMergable merges all terrain into one seamless lightmap, reducing the appearance of artifacts spanning across separate lightmap images.

- -q3map_lightmapSampleSize
-Lightmapped terrain can be very memory intensive as Q3Map2 has to typically generate a large amount of lightmap data. q3map_lightmapSampleSize can be used to reduce the amount of lightmap memory used by limiting the resolution of the lightmap images. Similarly, it can also be used to increase the lightmap resolution at the cost of memory.

- -q3map_lightmapSampleOffset
-If experiencing lightmap splotches over the surface of terrain lightmaps, q3map_lightmapSampleOffset can be used to fix this. For best results, start with small numbers (default 1.0) and slowly increase this value until the splotches disappear. Overly high values will cause unsatisfactory results.

- - - -
-
AlphaMod Dotproduct Terrain

- - - -AlphaMod dotproduct terrain is a revolutionary way in which Q3Map2 terrain is blended. It removes the need for an alphamap and metashader and automatically determines the blending of terrain depending on the vertex normals of the terrain mesh. Equally important, this new system removes the need of a triangle-quad grid, allowing the designer to create a terrain mesh using any triangle shape or size.

- - - -
-
AlphaMod Volume Terrain

- - - -Following the automatic generation of dotproduct blending, alphaMod volume terrain blending was developed to give direct control of the alpha blending back to the designer. Using this system the designer can modify the exact location and amount of blending to occur, directly from within the editor.

- - - - - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apC.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apC.htm deleted file mode 100644 index 51bf93b6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apC.htm +++ /dev/null @@ -1,117 +0,0 @@ - - -Q3Map2 Shader Manual: Foghull - - - - - - - - - - -
- - - -

-Appendix C - Foghull
-
-Q3Map2 Shader Manual


- - -Most recent Quake III engine games are programmed with a feature known as distance clipping used to clip (cull) map geometry beyond a user set distance. At the time of Quake III Arena's release, distance clipping was not an available feature. The Q3Map2 foghull feature was designed to simulate true distance clipping for Quake III Arena and Team Arena games.

- - - -
-
What is a Foghull?

- - - -Farplane distance clipping is a feature used to cull (remove) the drawing of polygons beyond a certain distance from the player in an attempt to improve performance. It is typically used on large, open terrain maps with little vis-blocking structures. Through the use of distance clipping a maximum vis distance is set, which provides the culling of rendered polygons. Fog is used to hide the effect of polygons appearing and disappearing by obscuring the maximum distance that the player can see.

- -Since distance clipping is not a feature natively built into Quake III Arena, using distance culling would result in a hall of mirrors (HOM) effect where the culled geometry begins, since nothing is being drawn in the frame buffer. To compensate for this, the foghull feature uses a series of six skybox images that are drawn in place of the absent culled geometry, thus preventing the HOM effect.

- - - -
-
Skybox Images

- - - -The skybox images used with the foghull feature should never be actually seen since the idea is to use the fog to obsure the maximum distance that the player can see. It only exists to prevent the HOM effect. To pull this off in a convincing manner, the skybox images should be six identical 8x8 pixel (to save on texture memory) textures each filled with a flat color matching the exact color of the fog. The six skybox images must be named in accordance to the skyParms farbox convention, using the _ft, _rt, _bk, _lf, _up, _dn suffixes.

- - - -
-
Foghull Shaders

- - - -Two shaders are required when using the foghull feature, a fog volume shader and a skybox shader, both of which are simple, standard shaders.

- -The color of the fog used must match the color used in the skybox images. Any decent image editing software will give you the three RGB color values of your skybox images, which must be normalized by dividing by 255. As with any other fog shader, the fogParms and surfaceparm fog keywords must be present.

- - - -
Script: Fog Volume Shader
-textures/env/fog1024 -{ - fogParms ( 0.8 0.8 0.8 ) 1024 //Normalized RGB, distance to opaque - - surfaceparm fog //Must be used - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - - qer_editorImage textures/sfx/fog_grey.tga - qer_trans 0.4 -} -
- - - -The skyParms and surfaceparm sky keywords must be used to create the skybox "hull" of the map. The skyParms farbox value must point to the base name of the skybox images (sans suffix). Optional surface emitted sun lighting can be added using q3map_skylight with q3map_sun or q3map_sunExt (see Appendix I: Light Emitting Shaders).

- - - -
Script: Skybox Shader
-textures/skies/foghullsky -{ - skyParms textures/skies/foghullsky 0 - //farbox cloudheight nearbox - - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm sky //Must be used - surfaceparm trans -} -
- - - - -
-
Entity Key Value Pairs

- - - -To activate the foghull feature, the _foghull and _farplanedist worldspawn entity key/value pairs must be set in the Entity Inspector (in Radiant, select any non-entity brush and press "N").

- -The _foghull key's value works similar to that of terrain entities. It must point to the name of the skybox shader, minus the standard "textures/" prefix. For the skybox shader example above with the shader name "textures/skies/foghullsky", you would use a _foghull value of "skies/foghullsky".

- -The _farplanedist value is simply the distance at which polygons will begin to get culled. One important note is that the _farplanedist value must be greater than the distance to opaque value set in the fog shader. In the above fog shader, the distance to opaque value was set to 1024 game units. The _farplanedist value must therefore be greater than 1024, otherwise the HOM effect will appear.

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apI.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apI.htm deleted file mode 100644 index 77adb403..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/apI.htm +++ /dev/null @@ -1,260 +0,0 @@ - - -Q3Map2 Shader Manual: Light Emitting Shaders - - - - - - - - - - -
- - - -

-Appendix I - Light Emitting Shaders
-
-Q3Map2 Shader Manual


- - - -Q3Map2 surface light and sky shaders are quite different than the original Quake III shaders. As new lighting algorithms were introduced, new shader keywords were created to accompany or replace the original keywords. This section will illustrate the differences between these shaders.

- - - -
-
Surface Lights

- - - -*nothing here yet*
-Mention:
-*q3map_lightRGB red green blue

- - - -
-
Skies

- - - -Originally, sky shaders were just very large surface lights that casted parallel directional lighting. With Q3Map2, there are a few differences that sets sky shaders apart from surface lights. First of all, we'll take a look at how the pre-Q3Map2 shaders were set up:

- - - -
Script: Pre-Q3Map2 sky shaders
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - //farbox cloudheight nearbox - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sun 1 1 1 140 -35 25 //red green blue intensity degrees elevation - q3map_lightSubdivide 256 //sets a pointlight every 256 game units - q3map_surfaceLight 200 //emits 200 units of light - - surfaceparm sky //flags compiler that this is sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - - -Keep in mind that this is a generalized shader, and that there can be a lot of different variations to yield different effects. Take a look at some of the original Quake III Arena shaders for more examples. In this screenshot (compiled with LIGHT -fast, viewed with /r_lightmap 1), the effect isn't bad, but the shadows are a bit jagged.

- -


- -Q3Map2 sky shaders improves on the way lightmaps are calculated, improving both quality and compiler performance. This is essentially the same shader with some small changes:

- - - -
Script: Using q3map_skyLight
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sun 1 1 1 140 -35 25 - q3map_skylight 100 3 //amount iterations - - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - - -What we've done here is replace q3map_lightSubdivide and q3map_surfacelight with q3map_skylight which yields more uniform shadows at a fraction of the compile time. However, this also generates the "stadium light" effect - producing some unwanted shadows. We'll fix this later.

- -


- -To solve the problem with jagged shadow edges, we can smooth out the shadows by blurring the lightmap. Depending on the type of lighting that you want to achieve for the sun (a cloudy day, for example), you can create a penumbra (half-shadow) effect using q3map_sunExt. This simulates the way sunlight bounces in certain conditions, creating a slight "jittering" effect. This is the same shader again with q3map_sunExt.

- - - -
Script: Using q3map_sunExt
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sunExt 1 1 1 140 -35 25 3 16 //adds deviance and samples - q3map_skylight 100 3 - - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - -In the following screenshot, you can see that the jagged shadow edges are gone.

- -


- -As mentioned above, you may be faced with problems involving the "stadium lights" effect when using q3map_skyLight. We can eliminate this problem by using higher values for the q3map_sunExt samples and q3map_skyLight iterations parameter, but at the cost of a higher compile time. For example, q3map_sunExt 1 1 1 140 -35 25 3 32 and q3map_skylight 100 6.

- -Note:
-Since the time that these screenshots were taken, the skylight subdivision code has been greatly improved (Q3Map2 2.5.14) for far more uniform lighting and faster compiles, so using higher iteration values can result in better quality, reducing the "stadium light" effect and without necessarily increasing compile times.

- -


- -A faster approximate alternative of getting rid of the "stadium lights" effect is to use q3map_lightmapFilterRadius.

- - - -
Script: Using q3map_lightmapFilterRadius
-textures/shadermanual/sky -{ - skyparms textures/shaderlab_terrain/env/sky 1024 - - - q3map_lightImage textures/shaderlab_terrain/sky_clouds.tga - - q3map_sunExt 1 1 1 140 -35 25 3 16 - q3map_lightmapFilterRadius 0 8 //self other - q3map_skyLight 100 3 - - surfaceparm sky - surfaceparm noimpact - surfaceparm nolightmap - surfaceparm nodlight - - nopicmip - nomipmaps - - qer_editorimage textures/shaderlab_terrain/sky_clouds.tga - - { - map textures/shaderlab_terrain/sky_clouds.tga - tcMod scale 3 3 - //tcMod scroll 0.005 -0.0125 - rgbGen identityLighting - } - { - map textures/shaderlab_terrain/sky_arc_masked.tga - blendFunc GL_ONE_MINUS_SRC_ALPHA GL_SRC_ALPHA - tcMod transform 0.25 0 0 0.25 0.1075 0.1075 - rgbGen identityLighting - } -} -
- - -The self and other parameters are the amount of filtering applied on the lightmap in world units. The self value is always set to "0" on sky shaders since skies don't have lightmaps. The q3map_lightmapFilterRadius directive should always be placed before any light-related directives that you want it to affect. In our case, we placed it after q3map_sunExt and before q3map_skyLight so that it filters the stadium lights, but won't blur the sun shadows which are already jittered. This produces very similar results without the long compile times.

- -
screenshot here


- -For additional information, see this thread:
-Shader Lighting Experiment

- - -
-
Lighting Effects

- - -Here are some additional features that you can use to create special lighting effects:
-*multiple suns by adding more than one q3map_sun or q3map_sunExt to shader
-*stuff about compiler switches
-*-skyfix
-*_skybox entity does not work with surfaceLight, must use skyLight

- - - - - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch0.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch0.htm deleted file mode 100644 index 5898e5ad..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch0.htm +++ /dev/null @@ -1,103 +0,0 @@ - - -Q3Map2 Shader Manual: Preface - - - - - - - - - - -
- - - -

-0 - Preface
-
-Q3Map2 Shader Manual


- - - -The Q3Map2 Edition of the Shader Manual

- -Q3Map2 is an updated version of the original Q3Map program used to compile .map files created in a level editor such as Radiant into .bsp files used by Quake III engine games. Since it's introduction, ydnar has added so many new features and improved efficiency to the degree where Q3Map2 has become the standard compiling program for the level editing community as well as for many commercial games.

- -While still accurate, the original QeRadiant Shader Manual written by the staff at id Software did not contain shader keywords pertaining to the new Q3Map2, hence the need for this updated version of the manual including recent developments to the compiler.

- -This manual is based on the original manual with some minor reformatting, edits and error corrections, but the main difference is the inclusion of Q3Map2 specific shader keywords. Additionally, this version also includes an expanded appendix with information on selected Q3Map2 features as well as a new chapter for shader keywords used specifically with third party Quake III engine games.

- -Since Q3Map2 is being updated with additional features on a regular basis, this manual will also be updated to reflect any new shader keywords being introduced so check back for updates.

- --Obsidian

- - - -
-
Credits

- - - -Q3Map2 Shader Manual
-Written by Obsidian and ydnar


- -The Q3Map2 Shader Manual is based on the QeRadiant Shader Manual - Revision #12. Other portions were adapted from the Q3Map2 Handbook (Beta Edition), the Q3Map2 Readme document, and from various discussions on the forums/IRC channels. All works were consulted with permission from the authors.

- -QeRadiant Shader Manual, Revision #12
-
    -
  • Written by Paul Jaquays and Brian Hook.
  • -
  • Additional material by John Carmack, Christian Antkow, Kevin Cloud and Adrian Carmack.
  • -
  • Converted into a web friendly version by John Hutton.
  • -
  • Appendix A by TTimo.
  • -
- -Q3Map2 Handbook (Beta Edition)
-
    -
  • Written by Jetscreamer, Shadowspawn and ydnar.
  • -
- -Q3Map2 Readme
-
    -
  • Written by ydnar
  • -
- -Special Thanks:
-
    -
  • Paul Jaquays for his support, feedback and for writing the original QeRadiant Shader Manual.
  • -
  • ydnar for Q3Map2, thereby making level editing 2x more fun at 1/10 the compile time. Thanks for his technical expertise and help in writing this manual.
  • -
- -This is not an id Software product. Do not contact them for support.

- - - -
-
Contact

- - - -Shader Manual Development
-Feel free to e-mail me if you have any suggestions, comments or error corrections. -meridanox@gmail.com

- -Q3Map2 Shader Manual at Shaderlab:
-http://shaderlab.com/q3map2/shader_manual/

- -Forums
-Quake 3 World Level Editing and Modeling Forum
-Splash Damage Q3Map2 Support Forum

- - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch1.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch1.htm deleted file mode 100644 index d099447b..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch1.htm +++ /dev/null @@ -1,249 +0,0 @@ - - -Q3Map2 Shader Manual: Introduction - - - - - - - - - - -
- - - -

-1 - Introduction
-
-Q3Map2 Shader Manual


- - - -The graphic engine for Quake III Arena has taken a step forward by putting much more direct control over the surface qualities of textures into the hands of designers and artists. In writing this manual, we have tried to define the concepts and tools that are used to modify textures in a way that, it is hoped, will be graspable by users who already have basic knowledge of computer graphics but are not necessarily computer programmers. It is not a tutorial, nor is it intended to be one.

- -The Manual for the Q3Radiant editor program contains a section called Creating New Assets that has the necessary information for setting up the files to create your own custom Quake III Arena shaders. You should follow a similar convention when creating your custom shaders. It is reproduced here for your convenience:

- - - -Quote: from Q3Radiant Editor Manual
-Creating New Assets
-If you are familiar with the required tools, creating new assets for use in Quake III Arena is not particularly difficult. As a rule, you should create new directories for each map with names different from the names used by id. If you are making a map that will be called "H4x0r_D00M", every directory containing new assets for that map should be titled H4x0r_D00M. This is to try and avoid asset directories overwriting each other as the editor and the game load in assets. -

- - - -It is recommended that you study the scripts in this document and in the individual shader scripts. Pay careful attention to syntax and punctuation. This is where you are most likely to make mistakes.

- - - -
-
What is a Shader?

- - - -Shaders are short text scripts that define the properties of a surface as it appears and functions in a game world (or compatible editing tool). By convention, the documents that contain these scripts usually has the same name as the texture set which contains the textures being modified (e.g; base, hell, castle, etc,). Several specific script documents have also been created to handle special cases, like liquids, sky and special effects. -For Quake III Arena, shader scripts are located in [Quake3]/baseq3/scripts.

- -A Quake III Arena shader file consists of a series of surface attribute and rendering instructions formatted within braces ("{" and "}"). Below you can see a simple example of syntax and format for a single process, including the Q3Map2 keywords and "Surface Parameters", which follow the first bracket and a single bracketed "stage":

- - - -Script: Syntax and Format
- -
-

-textures/liquids/lava-example
-{
-	deformVertexes wave sin 0 3 0 0.1
-	q3map_tessSize 64
-	surfaceparm lava
-	qer_editorimage textures/common/lava.tga
-	{
-		map textures/common/lava.tga
-	}
-}
-
- -
- -

-//Shader Name
-
-//General Shader Keywords
-//Q3Map2 Specific Shader Keywords
-//Q3Map2 Specific Surface Parameter Shader Keywords
-//Editor Specific Shader Keywords
-
-//Stage Specific Shader Keywords
-
-
-

- -Shaders need to be referenced by the map editor, compiler (Q3Map2) and game engine - each of which uses a different part of the shader. In the above example shader, the different sections are listed on the right.

- - - -
-
Shader Name & File Conventions

- - - -The first line is the shader name. It is used by the map editor, compiler, game engine, and models to reference the script and art files associated with the shader. Shader names can be up to 63 characters long. The names are often a mirror of a pathname to the texture image without the file extension (.tga or .jpg) or base dir (/quake3/baseq3 in our case), but they do not need to be.

- -Shaders that are only going to be referenced by the game code, not modeling tools, often are just a single word, like "projectionShadow" or "viewBlood".

- -Shaders that are used on character or other polygon mesh models need to mirror the art files, which allows the modelers to build with normal textures, then have the special effects show up when the model is loaded into the game.

- -Shaders that are placed on surfaces in the map editor commonly mirror an image file, but the "qer_editorimage" shader parameter can force the editor to use an arbitrary image for display.

- -Shader path names have a case sensitivity issue - on Windows, they aren't case sensitive, but on Unix they are. Try to always use lowercase for filenames, and always use forward slashes "/" for directory separators.

- -Following the shader name, is an opening bracket "{" designating the beginning of the shader contents, and a closing bracket "}" at the end of the shader. Notice that the contents of the above example shader are indented for better legibility.

- - - -
-
:q3map Suffix

- - - -The :q3map suffix can be added to the end of the shader name of "compile-time" shaders. This means that shaders with names marked with :q3map will be used by the compiler only and will be ignored by the game engine. This is especially useful if you want to add Q3Map2-relevant shader directives to basic lightmapped textures. This allows Quake 3 to generate the stages implicitly while Q3Map2 processes the Q3Map2-relevant sections of the shader. Consider the following shaders:

- - - -
Script: Without :q3map
-textures/q3map2_sm/floor -{ - surfaceparm metalsteps - { - map $lightmap - rgbGen identity - } - { - map textures/q3map2_sm/floor.tga - blendFunc GL_DST_COLOR GL_ZERO - } -} -
- - -Normally, we wouldn't need a shader for this texture to be displayed properly in game since the lightmap and texture stages are generated implicitly by Quake 3. The only reason why this shader exists is because we want Q3Map2 to process this surface as having metalsteps when the player walks on it. As a result, we end up writing out the entire shader.

- -To save ourselves from needless work, we can mark this shader as being compiler-only and have Quake 3 generate the lightmap and texture stages for us as it usually does by default:

- - -
Script: With :q3map
-textures/q3map2_sm/floor:q3map -{ - surfaceparm metalsteps -} -
- - - - -
-
Keyword Types

- - - -Only the shader name is case sensitive (use all lowercase). Shader keywords (aka. directives) are not, but by convention, you should use mixedCase (ie. q3map_alphaMod). Some of the shader keywords are order dependant, so it's good practice to keep all keyword of a similar type grouped together in the following order, from top-down:

- -
General Shader Keywords
-A shader may contain general shader keywords, which affects the shader's appearance globally (affects the entire shader), and changes the physical attributes of the surface that uses the shader. These attributes can affect the player. These parameters are executed at runtime, that is, in order to see the changes one does not need to re-compile the map.

- -
Q3Map2 Specific Shader Keywords
-The general shader keywords may be followed by Q3Map2 specific keywords. These keywords are used by the compiler to change the physical nature of the shader's surface and are also global.

- -
Q3Map2 Specific Surface Parameter Shader Keywords
-These are actually part of the Q3Map2 specific shader keywords that are flags telling the compiler about the physical nature of the shader's surface. These are also global.

- -
Editor Specific Shader Keywords
-Editor specific shader keywords change the appearance of the shader in the map editor only. It has no effect on the shader in game.

- -
Stage Specific Shader Keywords
-The shader may contain one or more "stages". Each stage consists of an opening and closing bracket along with the contents of the stage (indented). The stage will contain a texture map specification which specifies the source image, and various other stages specific shader keywords that modifies the appearance of the source image. Stage specific keywords are processed by the renderer. They are appearance changes only and have no effect on game play or game mechanics. Changes to any of these attributes will take effect as soon as the game goes to another level or vid_restarts (type command "/vid_restart" in the game console).

- - - -
-
Documenting With Comments

- - - -It is often useful to document parts of shaders, especially for testing purposes or when working with a development team of other designers. Comments added to shaders are ignored completely, making it useful for adding notes, or for temporarily removing keywords for testing.

- -Shaders use the same double forward slashes "//" convention common with many programming languages for commenting. All text after the "//" on the same line are ignored from the shader. See various shaders for examples.

- - - -
-
Key Concepts

- - - -Ideally, a designer or artist who is manipulating textures with shader files has a basic understanding of wave forms and knows about mixing colored light (high school physics sort of stuff). If not, there are some concepts you need to have a grasp on to make shaders work for you.

- -
Surface Effects vs. Content Effects vs. Deformation Effects
-Shaders not only modify the visible aspect of textures on a geometry brush, curve, patch or mesh model, but they can also have an effect on both the content, "shape," and apparent movement of those things. A surface effect does nothing to modify the shape or content of the brush. Surface effects include glows, transparencies and rgb (red, green, blue) value changes. Content shaders affect the way the brush operates in the game world. Examples include water, fog, nonsolid, and structural. Deformation effects change the actual shape of the affected brush or curve, and may make it appear to move.

- -
Power Has a Price
-The shader script gives the designer, artist and programmer a great deal of easily accessible power over the appearance of and potential special effects that may be applied to surfaces in the game world. But it is power that comes with a price tag attached, and the cost is measured in performance speed. Each shader phase that affects the appearance of a texture causes the Quake III engine to make another processing pass and redraw the world. Think of it as if you were adding all the shader-affected triangles to the total r_speed count for each stage in the shader script. A shader-manipulated texture that is seen through another shader-manipulated texture (e.g. a light in fog) has the effect of adding the total number of passes together for the affected triangles. A light that required two passes seen through a fog that requires one pass will be treated as having to redraw that part of the world three times.

- -
RGB Color
-RGB means "Red, Green, Blue". Mixing red, green and blue light in differing intensities creates the colors in computers and television monitors. This is called additive color (as opposed to the mixing of pigments in paint or colored ink in the printing process, which is subtractive color). In Quake III Arena and most higher-end computer art programs (and the color selector in Windows), the intensities of the individual Red, Green and Blue components are expressed as number values. When mixed together on a screen, number values of equal intensity in each component color create a completely neutral (gray) color. The lower the number value (towards 0), the darker the shade. The higher the value, the lighter the shade or the more saturated the color until it reaches a maximum value of 255 (in the art programs). All colors possible on the computer can be expressed as a formula of three numbers. The value for complete black is 0 0 0. The value for complete white is 255 255 255. However, the Quake III Arena graphics engine requires that the color range be "normalized" into a range between 0.0 and 1.0.

- -
Normalization: a Scale of 0 to 1
-The mathematics in Quake III Arena use a scale of 0.0 to 1.0 instead of 0 to 255. Most computer art programs that can express RGB values as numbers use the 0 to 255 scale. To convert numbers, divide each of the art program's values for the component colors by 255. The resulting three values are your Quake III Arena formula for that color component. The same holds true for texture coordinates.

- -
Texture Sizes
-TGA texture files are measured in pixels (picture elements). Textures are measured in powers of 2, with 16 x16 pixels being the smallest (typically) texture in use. Most will be larger. Textures need not be square, so long as both dimensions are powers of 2. Examples include: 32x256, 16x32, 128x16.

- -
Color Math
-In Quake III Arena, colors are changed by mathematical equations worked on the textures by way of the scripts or "programlets" in the shader file. An equation that adds to, or multiplies the number values in a texture causes it to become darker. Equations that subtract from or modulate number values in a texture cause it to become lighter. Either equation can change the hue and saturation of a color.

- -
Measurements
-The measurements used in the shaders are in either game units, color units, or texture units.

- -
    -Game unit: A game unit is used by deformations to specify sizes relative to the world. Game units are the same scale we have had since way back in the Wolfenstein days - 8 units equals one foot. The default texture scale used by the Radiant map editor results in two texels for each game unit, but that can be freely changed.

    - -Color units: Colors scale the values generated by the texture units to produce lighting effects. A value of 0.0 will be completely black, and a value of 1.0 will leave the texture unchanged. Colors are sometimes specified with a single value to be used across all red, green, and blue channels, or sometimes as separate values for each channel.

    - -Texture units: This is the normalized (see above) dimensions of the original texture image (or a previously modified texture at a given stage in the shader pipeline). A full texture, regardless of its original size in texels, has a normalized measurement of 1.0 x 1.0. For normal repeating textures, it is possible to have value greater than 1.0 or less than 0.0, resulting in repeating of the texture. The coordinates are usually assigned by the level editor or modeling tools, but you still need to be aware of this for scrolling or turbulent movement of the texture at runtime.

    -
- -
Waveform Functions
-Many of the shader functions use waveforms to modulate measurements over time. Where appropriate, additional information is provided with wave modulated keyword functions to describe the effect of a particular waveform on that process. Currently there are five waveforms in use in Q3A shaders:

- -
    -Sin: Sin stands for sine wave, a regular smoothly flowing wave function ranging from -1 to 1.

    -Triangle: Triangle is a wave with a sharp ascent and a sharp decay, ranging from 0 to 1. It will make choppy looking wave forms.

    -Square: A squarewave simply switches from -1 to 1 with no in-between.

    -Sawtooth: In the sawtooth wave, the ascent is like a triangle wave from 0 to 1, but the decay cuts off sharply back to 0.

    -Inversesawtooth: This is the reverse of the sawtooth... instant ascent to the peak value (1), then a triangle wave descent to the valley value (0). The phase on this goes from 1.0 to 0.0 instead of 0.0 to 1.0. This wave is particularly useful for additive cross-fades.

    -
- -Waveforms all have the following properties:

- -
    -base: Where the wave form begins. Amplitude is measured from this base value.

    -amplitude: This is the height of the wave created, measured from the base. You will probably need to test and tweak this value to get it correct for each new shader stage. The greater the amplitude, the higher the wave peaks and the deeper the valleys.

    -phase: This is a normalized value between 0.0 and 1.0. Changing phase to a non-zero value affects the point on the wave at which the wave form initially begins to be plotted. Example: In Sin or Triangle wave, a phase of 0.25 means it begins one fourth (25%) of the way along the curve, or more simply put, it begins at the peak of the wave. A phaseof 0.5 would begin at the point the wave re-crosses the base line. A phase of 0.75 would be at the lowest point of the valley. If only one wave form is being used in a shader, a phase shift will probably not be noticed and phase should have a value of zero (0). However, including two or more stages of the same process in a single shader, but with the phases shifted can be used to create interesting visual effects. Example: using rgbGen in two stages with different colors and a 0.5 difference in phase would cause the manipulated texture to modulate between two distinct colors. Phase changes can also be used when you have two uses of the same effect near each other, and you don't want them to be synchronized. You would write a separate shader for each, changing only the phase value.

    -freq: Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of 1 would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 seconds.

    -
- - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch2.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch2.htm deleted file mode 100644 index 6f3311ed..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch2.htm +++ /dev/null @@ -1,246 +0,0 @@ - - -Q3Map2 Shader Manual: General Shader Keywords - - - - - - - - - - -
- - - -

-2 - General Shader Keywords
-
-Q3Map2 Shader Manual


- - - -IMPORTANT NOTES: Once again, be aware that some of the shader commands may be order dependent, so it's good practice to place all global shader commands (keywords defined in this section) at the very beginning of the shader and to place shader stages at the end (see various examples).

- -These Keywords are global to a shader and affect all stages. They are also ignored by Q3Map2.

- - - -
-
skyParms farbox cloudheight nearbox

- - - -Specifies how to use the surface as a sky, including an optional far box (stars, moon, etc), optional cloud layers with any shader attributes, and an optional near box (mountains in front of the clouds, etc).

- -
    -farbox : Specifies a set of files to use as an environment box behind all cloudlayers. Specify "-" for no farbox, or a file base name. A base name of "env/test" would look for files "env/test_rt.tga", "env/test_lf.tga", "env/test_ft.tga", "env/test_bk.tga", "env/test_up.tga", "env/test_dn.tga" to use as the right / left / front / back / up / down sides.

    -cloudheight : Controls apparent curvature of the cloud layers - lower numbers mean more curvature (and thus more distortion at the horizons). Higher height values create "flatter" skies with less horizon distortion. Think of height as the radius of a sphere on which the clouds are mapped. Good ranges are 64 to 256. The default value is 128.

    -nearbox : Specified as farbox, to be alpha blended ontop of the clouds. This has not be tested in a long time, so it probably doesn't actually work. Set to "-" to ignore.

    -
- -Design Notes: -
    -
  • If you are making a map where the sky is seen by looking up most of the time, use a lower cloudheight value. Under those circumstances the tighter curve looks more dynamic. If you are making a map where the sky is seen by looking out windows most of the time or has a map area that is open to the sky on one or more sides, use a higher height to make the clouds seem more natural.
  • -
  • It is possible to create a sky with up to 8 cloudlayers, but that also means 8 processing passes and a potentially large processing hit.
  • -
  • Be aware that the skybox does not wrap around the entire world. The "floor" or bottom face of the skybox is not drawn by the game. If a player in the game can see that face, they will see the "hall of mirrors" effect.
  • -
  • There's a bug in Quake 3 (but fixed in Enemy Territory) that causes a shader vertex overflow (SHADER_MAX_VERTEXES HIT IN FILLCLOUDSKYSIDE) if more than two cloud layers are used in maps with a lot of visible sky. To compensate, either reduce the amount of visible sky or limit the shader to two cloud layers.
  • -
- -Q3Map2 sky shaders work differently from the original and contain a number of improvements in terms of efficiency and visually. The example given below is an original Quake III Arena sky shader. While it is still operational, it is a little outdated and is being kept here for legacy purposes only. It is recommended that you take advantage of the new features of Q3Map2 skies by consulting Appendix I: Light Emitting Shaders > Skies.

- - - -
Script: Original Quake III Arena sky shader
-textures/skies/xtoxicsky_dm9 -{ - qer_editorimage textures/skies/toxicsky.tga - surfaceparm noimpact - surfaceparm nolightmap - q3map_globaltexture - q3map_lightsubdivide 256 - q3map_surfacelight 400 - surfaceparm sky - q3map_sun 1 1 0.5 150 30 60 - skyparms full 512 - - { - map textures/skies/inteldimclouds.tga - tcMod scale 3 2 - tcMod scroll 0.1 0.1 - } - { - map textures/skies/intelredclouds.tga - blendFunc add - tcMod scale 3 3 - tcMod scroll 0.05 0.05 - } -} -
- - - - -
-
cull side

- - - -Every surface of a polygon has two sides, a front and a back. Typically, we only see the front or "out" side. For example, a solid block you only show the front side. In many applications we see both. For example, in water, you can see both front and a back. The same is true for things like grates and screens.

- -To "cull" means to remove. The value parameter determines the type of face culling to apply. The default value is cull back if this keyword is not specified. However for items that should be inverted then the value front should be used. To disable culling, the value disable or none should be used. Only one cull instruction can be set for the shader.

- -
    -front : The front or "outside" of the polygon is not drawn in the world. It is used if the keyword "cull" appears in the content instructions without a side value.

    -back : Cull back removes the back or "inside" of a polygon from being drawn in the world.

    -disable or none : Neither side of the polygon is removed. Both sides are drawn in the game. Very useful for making panels or barriers that have no depth, such as grates, screens, metal wire fences and so on and for liquid volumes that the player can see from within. Also used for energy fields, sprites, and weapon effects (e.g. plasma).

    -
- -Design Notes
-For things like grates and screens, put the texture with the cull none property on one face only. On the other faces, use a non-drawing texture.

- - - -
-
deformVertexes type ---

- - - -This function performs a general deformation on the surface's vertexes, changing the actual shape of the surface before drawing the shader passes. You can stack multiple deformVertexes commands to modify positions in more complex ways, making an object move in two dimensions, for instance. There are 6 possible values for the type parameter, each of which will be described in more detail: wave, normal, bulge, move, autosprite, autosprite2. Depending on which of the 6 type parameters are used, different additional parameters will need to be used, including the generalized waveform functions (see Chapter 1: Key Concepts)

- -Design Notes:
-The div and amplitude parameters, when used in conjunction with liquid volumes like water should take into consideration how much the water will be moving. A large ocean area would have have massive swells (big div values) that rose and fell dramatically (big amplitude values). While a small, quiet pool may move very little.

- -
deformVertexes wave div func base amplitude phase freq
-Designed for water surfaces, modifying the values differently at each point. The div parameter is used to control the wave "spread" - a value equal to the q3map_tessSize of the surface is a good default value. It accepts the standard wave functions sin, triangle, square, sawtooth or inversesawtooth.

- -
deformVertexes normal div func base amplitude freq
-This deformation affects the normals of a vertex without actually moving it, which will effect later shader options like lighting and especially environment mapping. If the shader stages don't use normals in any of their calculations, there will be no visible effect. The div parameter is used to control the wave "spread" - a value equal to the q3map_tessSize of the surface is a good default value. Good values for amplitude ranges from 0.1 to 0.5 while values of 1.0 to 4.0 are good for frequency.

- -Design Notes:
-Putting values of 0.1 to 0.5 in Amplitude and 1.0 to 4.0 in the Frequency can produce some satisfying results. Some things that have been done with it: A small fluttering bat, falling leaves, rain, flags.

- -
deformVertexes bulge bulgeS bulgeT bulgeSpeed
-This forces a bulge to move along the given s and t directions. Designed for use on curved pipes. The bulgeS and bulgeT parameters is the amount of bulge displacement measured in game units. bulgeSpeed is the number of seconds it takes for the bulge to complete a single cycle.

- -
deformVertexes move x y z func base amplitude phase freq
-The move parameter is used to make a brush, curve patch or model appear to move together as a unit. The x y z values are the distance and direction in game units the object appears to move relative to it's point of origin in the map. -The func base amplitude phase freq values are the same as found in other waveform manipulations.

- -The product of the function modifies the values x, y, and z. Therefore, if you have an amplitude of 5 and an x value of 2, the object will travel 10 units from its point of origin along the x axis. This results in a total of 20 units of motion along the x axis, since the amplitude is the variation both above and below the base.

- -It must be noted that an object made with this shader does not actually change position, it only appears to.

- -Design Notes:
-If an object is made up of surfaces with different shaders, all must have matching deformVertexes move values or the object will appear to tear itself apart.

- -
deformVertexes autosprite
-This function can be used to make any given triangle quad (pair of triangles that form a square rectangle) automatically behave like a sprite without having to make it a separate entity. This means that the "sprite" on which the texture is placed will rotate to always appear at right angles to the player's view as a sprite would. Any four-sided brush side, flat patch, or pair of triangles in a model can have the autosprite effect on it. The brush face containing a texture with this shader keyword must be square.

- -
deformVertexes autosprite2
-Is a slightly modified "sprite" that only rotates around the middle of its longest axis. This allows you to make a pillar of fire that you can walk around, or an energy beam stretched across the room.

- - - -
-
fogParms ( r g b ) opacity

- - - -Note: You must also specify "surfaceparm fog" to cause Q3Map2 to identify the surfaces inside the volume. Fogparms only describes how to render the fog on the surfaces.

- -r g b : These are normalized values. A good computer art program should give you the RGB values for a color. To obtain the values that define fog color for Quake III Arena, divide the desired color's red, green and blue values by 255 to obtain three normalized numbers within the 0.0 to 1.0 range.

-opacity : This is the distance, in game units, until the fog becomes totally opaque, as measured from the point of view of the observer. By making the height of the fog brush shorter than the distance to opaque, the apparent density of the fog can be reduced (because it never reaches the depth at which full opacity occurs). - -
    -
  • The fog volume can only have one surface visible (from outside the fog).
  • -
  • Fog must be made of one brush. It cannot be made of adjacent brushes.
  • -
  • Fog brushes must be axial. This means that only square or rectangular brushes may contain fog, and those must have their edges drawn along the axes of the map grid (all 90 degree angles).
  • -
- -Design Notes:
-
    -
  • If a water texture contains a fog parameter, it must be treated as if it were a fog texture when in use.
  • -
  • If a room is to be filled completely with a fog volume,it can only be entered through one surface (and still have the fog function correctly).
  • -
  • Additional shader passes may be placed on a fog brush, as with other brushes.
  • -
- - - -
-
noPicMip

- - - -This causes the texture to ignore user-set values for the r_picmip cvar command. The image will always be high resolution. Example: Used to keep images and text in the heads up display from blurring when user optimizes the game graphics.

- - - -
-
noMipMaps

- - - -This implies noPicMip, but also prevents the generation of any lower resolution mipmaps for use by the 3D card. This will cause the texture to alias when it gets smaller, but there are some cases where you would rather have this than a blurry image. Sometimes thin slivers of triangles force things to very low mipmap levels, which leave a few constant pixels on otherwise scrolling special effects.

- - - -
-
polygonOffset

- - - -Surfaces rendered with the polygonOffset keyword are rendered slightly off the polygon's surface. This is typically used for wall markings and "decals." The distance between the offset and the polygon is fixed. It is not a variable in Quake III Arena.

- -Design Notes:
-
    -
  • Use this for wall or floor markings, particularily for direction arrows for team games. Texture the brush with the decal shader on one face and the other faces with a nodraw shader. Then place the brush flush with the surface of the wall or floor.
  • -
  • When using a _decal entity for texture projection, polygonOffset must be used to prevent Z-fighting. If you experience problems with depth sorting, try using sort 6.
  • -
- - - - -
-
portal

- - - -Specifies that this texture is the surface for a portal or mirror. In the game map, a portal entity must be placed directly in front of the texture (within 64 game units). All this does is set "sort portal", so it isn't needed if you specify that explicitly.

- - - -
-
sort value

- - - -Use this keyword to fine-tune the depth sorting of shaders as they are compared against other shaders in the game world. The basic concept is that if there is a question or a problem with shaders drawing in the wrong order against each other, this allows the designer to create a hierarchy of which shader draws in what order.

- -The default behavior is to put all blended shaders in sort "additive" and all other shaders in sort "opaque", so you only need to specify this when you are trying to work around a sorting problem with multiple transparent surfaces in a scene.

- -The value here can be either a numerical value or one of the keywords in the following list (listed in order of ascending priority): - -
    - portal (1): This surface is a portal, it draws over every other shader seen inside the portal, but before anything in the main view.
    - Sky (2): Typically, the sky is the farthest surface in the game world. Drawing this after other opaque surfaces can be an optimization on some cards. This currently has the wrong value for this purpose, so it doesn't do much of anything.
    - Opaque (3): This surface is opaque (rarely needed since this is the default with no blendfunc)
    - Banner (6): Transparent, but very close to walls.
    - Underwater (8): Draw behind normal transparent surfaces.
    - Additive (9): Normal transparent surface (default for shaders with blendfunc's)
    - Nearest (16): This shader should always sort closest to the viewer, e.g. muzzle flashes and blend blobs.

    -
- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch3.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch3.htm deleted file mode 100644 index 4208e89f..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch3.htm +++ /dev/null @@ -1,799 +0,0 @@ - - -Q3Map2 Shader Manual: Q3Map2 Specific Shader Keywords - - - - - - - - - - -
- - - -

-3 - Q3Map2 Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - -These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader.

- - - -
-
q3map_alphaGen func ---

- - -blah

- - - -
-
q3map_alphaMod func ---

- - - -This is used for special blending effects on shaders by altering the amount of blending falloff depending on specific surface properties such as the surfaces normal axis or the vertexes contained within its volume. alphaMod operations are applied to an object's vertexes so the rgbGen vertex directive is required for each affected stage.

- -
q3map_alphaMod dotproduct ( X Y Z)
-It is used to blend textures using alphaFunc or blendFunc in the shader's second pass, with the falloff depending on the surface's normal axis. This is achieved by doing a vector dot product of the specified normalized vector value ( X Y Z ) and the vertex normal which yields the amount of blending. The dot product operation multiplies each element of one vector against the corresponding elements of a second vector, then adds them. Examples:

- - -( 0 0 1 ) dp ( 0 0 1 ) = 0 * 0 + 0 * 0 + 1 * 1 = 1
-( 0 0 1 ) dp ( 0 0 0.5 ) = 0 * 0 + 0 * 0 + 1 * 0.5 = 0.5
-( 0.5 0.5 1 ) dp ( 0 0.5 0.5 ) = 0.5 * 0 + 0.5 * 0.5 + 1 * 0.5 = 0.75

-
- -
q3map_alphaMod dotproduct2 ( X Y Z )
-This works in a similar way to dotproduct except it exaggerates the differences in vertex normals by squaring the final dot product value. With the same values as the above example, dotproduct2 would give the following:

- - -[ ( 0 0 1 ) dp ( 0 0 1 ) ]2 = ( 0 * 0 + 0 * 0 + 1 * 1 )2 = 1
-[ ( 0 0 1 ) dp ( 0 0 0.5 ) ]2 = ( 0 * 0 + 0 * 0 + 1 * 0.5 )2 = 0.25
-[ ( 0.5 0.5 1 ) dp ( 0 0.5 0.5 ) ]2 = ( 0.5 * 0 + 0.5 * 0.5 + 1 * 0.5 )2 = 0.5625 -



- - - -
Script: q3map_dotproduct on terrain
-textures/shaderlab_vector_1/rock_1_z_lodterrain -{ - //Used for radiosity lighting - q3map_lightImage textures/shaderlab_vector_1/rock_1.tga - - q3map_nonplanar - q3map_shadeAngle 179 - q3map_tcGen ivector ( 512 0 0 ) ( 0 512 0 ) - q3map_tcMod rotate 33 - q3map_lightmapAxis z - - // this means dot product squared, for faster falloff between vertical and horizontal planes - q3map_alphaMod dotproduct2 ( 0 0 0.95 ) - - surfaceparm nonsolid - surfaceparm pointlight - - { - map textures/shaderlab_vector_1/rock_1.tga - rgbGen vertex - } - { - map textures/slterra/sand_1.tga - blendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - rgbGen vertex - } -} -
-
- -Design Notes:
-Typical examples of use include snow covering the top faces of objects, or terrain with grass growing on horizontal planes blending into rocky cliffs on near vertical surfaces. It is an excellent way of automatically creating realistic alpha-blended terrain without the complicated steps in setting up an alpha map.

- - -
q3map_alphaMod scale N.N
-Used in conjunction with q3map_alphaMod volume. Scales the vertex alpha by N.N.

- -
q3map_alphaMod set N.N
-Used in conjunction with q3map_alphaMod volume. Sets the vertex alpha (regardless of any previous alpha values) to N.N * 255.

- -
q3map_alphaMod volume
-This was created as a way to explicitly set the amount of vertex alpha-blending by altering the alpha values of vertexes contained within a brush volume marked with this shader directive. Applies all other q3map_alphaMod directives to each vertex inside a brush textured with this shader, allowing large faded scrolling fire shaders, waterfalls, marquees, explicit dotProduct terrain blending control, etc.

- -Design Notes:
-This is usually used in special alphaMod volume "common" shaders for use within the editor only. A brush textured with the alphaMod volume shader is used to overlap the vertexes of another brush using an alpha-blended shader, altering the vertex alpha values. Worldspawn alphaMod volume brushes will affect all surfaces. You can func_group an alphaMod volume brush to affect only that entity.

- - - -
-
q3map_backShader shadername

- - - -This allows a brush to use a different shader when you are inside it looking out. By way of example, this would allow a water brush (or other) surfaces to have a different sort order or appearance when seen from the inside. q3map_backShader only works on brush faces. For this reason, it is deprecated in favor of using q3map_cloneShader where the target shader contains q3map_invert.

- - - - - -
-
q3map_backSplash percentage distance

- - - -A surface light is lit by itself, often causing areas of higher light intensity than other areas. q3map_backSplash moves the light source away from the surface of the shader, allowing it to create smoother lighting over the face. By default, all shaders are assigned backsplash values, 0.05 for the percentage, 23 units for the distance.

- -
    -percentage : Specifies the intensity percentage of the light generated by q3map_surfacelight to be redirected back at the surface. Use a value of 0 or a negative value to disable back splash lights.
    -distance : Distance of the back splash lights from the surface. -
- - - -
-
q3map_baseShader shadername

- - - -Allows shaders to be subclassed (Q3Map2 relevant portions only, such as surfaceparms, lighting, texture projection, etc). Subclassed shaders can reference the base shader by referring to the base shader's name. In order for q3map_baseShader to work correctly, the base shader must be specified before any shaders that subclass it. Some EasyGen terrain templates incorrectly specified the base shader after the terrain shaders that depended on it, resulting in some interesting errors.

- -This is fundamentally the reverse of q3map_remapShader. Use q3map_baseShader when a single group of q3map_* directives is required for multiple base shaders. Use q3map_remapShader when similar shaders are used that require different groups of q3map_* directives.

- - - -
-
q3map_bounce N.N

- - - -Deprecated! Use q3map_bounceScale instead.

- - - -
-
q3map_bounceScale N.N

- - - -Use a number between 0 and 1.0 (or higher), to scale the amount of light reflected in radiosity passes. You can oversaturate it by using a number higher than 1.0, but this can lead to excessive compile times. Using 90 would probably make things positively glacial. 1.0 is a default, fudged number that looked OK with the maps that were tested. Tweaking it to 1.5 or 2.0 won't hurt anything, per se, but it does give you finer control over how each shader re-emits light. The poorly worded q3map_bounce has been renamed to q3map_bounceScale. While its use has been deprecated, q3map_bounce still works.

- - - -
-
q3map_clipModel

- - - -Automatically clips misc_model entities for player and weapon collision. This should only be used on large models such as terrain (not small decorative models - manually clip those). The shader's surfaceparms are inherited by the magic clip brush, so if you have surfaceparm nonsolid in your model's shader that uses q3map_clipModel, then the brush will also be non-solid. This can also be set on a per model basis with spawnflags 2.

- - - -
-
q3map_cloneShader shadername

- - - -A shader with this keyword will inherit the target shader's properties and appearance. Be careful, this can lead to an infinite loop if a cloning shader references another cloning shader or itself.

- - - -
-
q3map_colorGen

- - -blah

- - - -
-
q3map_colorMod

- - -blah

- - - -
-
q3map_extraShader

- - - -Does not exist!

- - - -
-
q3map_fadeAlpha N

- - - -Does not exist!

- - - -
-
q3map_fogDir angle

- - - -Specifies the direction a fog shader fades from transparent to opaque.

- - - -
-
q3map_forceMeta

- - - -Forces model (MD3, ASE, etc.) surfaces to be broken down into their component triangles like brush faces and passed through the meta code on a per shader basis. This is required for lightmapped models. Setting spawnflags 4 on a misc_model will set q3map_forceMeta on all its surfaces.

- - - - - -
-
q3map_forceSunlight

- - - -Obsolete!
-By default, no sunlight is cast on vertex-lit .md3 models or vertex-lit terrain. Using this option, sunlight (overbright bits created by the q3map_sun option) will be cast on these surfaces. q3map_forceSunlight is now obsolete since suns are now first class light sources.

- - - -
-
q3map_fur layers offset fade

- - - -This is used for generating fur over a surface. This is typically used in conjunction with q3map_cloneShader in the surface (parent) shader and references the fur shader as the clone. A possible application of this is to create grass on alphablended terrain. Keep in mind that the use of a fur shader may cause a large hit to performance but when used sparingly, it can produce some interesting effects. (See Appendix D: Fur)
- -
    -layers : This specifies the number of desired replicated fur layers generated.

    -offset : The distance (in game units) between subsequent layers.

    -fade : A normalized value indicating the fade falloff between subsequent layers.

    -
- - - -
-
q3map_globalTexture

- - - -Use this shader in the global keyword commands whenever the tcMod scale function is used in one of the later render stages. Many problems with getting shader effects to work across multiple adjacent brushes are a result of the way Q3Map2 optimizes texture precision. This option resolves that, but at the expense of some precision of the textures when they are far away from the origin of the map.

- - - -
-
q3map_indexed

- - - -This is used for explicit terrain-style indexed mapping. It instructs Q3Map2 to look at the func_group terrain entity's _indexmap key for an image to pull index values from, and then to construct a shader name with the root based on the _shader key's value.

- - - -
-
q3map_invert

- - - -Inverts a surface normal. Works on brush faces, models and patches. Used in celshading to achieve the inverted backfacing hull.

- - - -
-
q3map_lightImage texturename

- - - -By default, surface lights use the average color of the source image to generate the color of the light. q3map_lightImage specifies an alternate image to be used for light color emission, radiosity color emission, light filtering and alpha shadows. You can even use a light image with a different alpha channel for blurrier alpha shadows. The light color is averaged from the referenced texture. The texture must be the same size as the base image map. q3map_lightImage should appear before qer_editorImage.

- -The reason q3map_lightImage is specified for the light in the example below, is because the blend map is predominantly yellow, but the base image is not. The designer wanted the color of the light to be sampled from the blend map instead of the base image.

- - - -
Script: Taking light from another source image
-textures/eerie/ironcrosslt2_10000 -{ - q3map_lightImage textures/gothic_light/ironcrosslt2.blend.tga - // this TGA is the source for the color of the blended light - - qer_editorImage textures/gothic_light/ironcrosslt2.tga - //editor TGA (used because the shader is used with several different light values) - - q3map_surfacelight 10000 - //emitted light value of 10,000 - - { - map $lightmap - //source texture is affected by the lightmap - rgbGen identity - // this command handles the overbright bits created by "sunlight" in the game - } - { - map textures/gothic_light/ironcrosslt2.tga - blendFunc filter - rgbGen identity - } - { - maptextures/gothic_light/ironcrosslt2.blend.tga - blendFunc add - } -} -
- - - - -
-
q3map_lightmapAxis axis

- - - -Takes a single argument: either x, y or z. The keyword q3map_terrain has an implicit (read default) q3map_lightmapAxis defined as z. This keyword is not recommended for things like caves or arches which have undersides.

- - - -
-
q3map_lightmapBrightness N.N

- - - -Lightmap brightness scaling. A value of 2.0 will be twice as bright (linearly) and a value of 0.5 will be half as bright.

- - - -
-
q3map_lightmapFilterRadius self other

- - - -This is usually used on light emitting shaders to approximate finer subdivided lighting. It adds a gaussian blur effect to the lightmaps of either the shader itself, or the surfaces affected by the shader, or both. The values for self and other are measured in world units of filtering (blurring) of lightmap data cast by any light sources. The self parameter can be set for surfacelights for finer subdivided lighting, but should be set to 0 for sky shaders since they don't have lightmaps. The other parameter should be set just high enough to eliminate the "stadium shadow" effect sometimes produced by q3map_skylight or to smooth out the lighting on surfacelights. If using a value higher than 4 for the iterations parameter on q3map_skylight, you don't need q3map_lightmapFilterRadius as much, but at the expense of higher compile times. q3map_lightmapFilterRadius should be placed before any light related shader directives that you want it to affect. (see Appendix I: Light Emitting Shaders)

- - - -
-
q3map_lightmapGamma N.N

- - - -Deprecated! Use q3map_lightmapBrightness instead.

- - - -
-
q3map_lightmapMergable

- - - -Allows terrain to be mapped onto a single lightmap page for seamless terrain shadows. It will specify that the shaders using it can merge nonplanars together onto a single lightmap, so you can have a single 512x512 lightmap across a terrain entity.

- - - -
-
q3map_lightmapSampleOffset distance

- - - -Takes a single parameter, defaulting to 1.0, which specifies how many units off a surface should Q3Map2 sample lighting from. Use larger values (2.0-8.0) if you're getting ugly splotches on lightmapped terrain.

- - - -
-
q3map_lightmapSampleSize N

- - - -Surfaces using a shader with this option will have the pixel size of the lightmaps set to (NxN). This option can be used to produce high-resolution shadows on certain surfaces. In addition, it can be used to reduce the size of lightmap data, where high-resolution shadows are not required. The default Quake III lightmap sample size is 16.

- - - -
-
q3map_lightmapSize width height

- - - -Specifies the size of the lightmap texture that surface lightmaps get packed on to. Used mainly in Enemy Territory for terrain lightmaps (512x512) in concert with the Q3Map2 switch -lightmapsize.

- - - -
-
q3map_lightRGB red green blue

- - - -This forces a specified color of light to be emitted from a surface or sky light, rather than sampling colors from a lightimage, editor image or the texture map. Three normalized color values of light are required for the red green blue parameters. This does not affect bounced light in radiosity or lightfilter.

- - - -
-
q3map_lightStyle N

- - - -Used to set light styles on surface lights for lightmap flickering/waveform effects. N takes the form of a number between 1 and 31, that references the corresponding style number set in the worldspawn entity. Equivalent to setting "style" "N" on a light entity (see Appendix G: Lightstyles).

- - - -
-
q3map_lightSubdivide N

- - - -Used on surface lights (see q3map_surfacelight). Chops up the surface into smaller polygons for more uniform lighting. It defaults to 120 game units, but can be made larger or smaller as needed (for light surfaces at the bottom of cracks, for example). This can be a dominant factor in processing time for Q3Map2 lighting. Can have an increasingly "darker" effect when used with -fast. Compensate by raising the surface light value. For sky shaders, use q3map_skylight instead (see Appendix I: Light Emitting Shaders).

- - - -
-
q3map_noClip

- - - -You might have noticed that terrain has been made to not clip or t-junction anymore. It was causing too many issues, so a new parameter was added: q3map_noClip. Normally, Q3Map2 clips all faces to the BSP, and then takes the minimum polygon that encompasses all visible fragments. q3map_noClip forces Q3Map2 to uses the original brush faces (This is implicit for autosprite(2) surfaces). Therefore, if you map tidy, you could theoretically use q3map_noClip on all your shaders. q3map_noClip and q3map_noTJunc, when used in combination, will preserve mesh geometry exactly as you make it.

- - - -
-
q3map_noFast

- - - -When used on surfaces that emit light, this will disable -fast optimizations. This is useful for large areas of dim sky, where you want the dim light to reach all surfaces. This shader keyword prevents fast from affecting dim sky surfaces. It is necessary, if you can't do a workaround with brighter skies or by using a larger q3map_lightSubdivide value.

- - - -
-
q3map_noFog

- - - -Volumes marked with a shader containing this keyword will not be affected by fog.

- - - -
-
q3map_nonPlanar

- - -Instructs Q3Map2 to merge any adjacent triangles that don't lie in the same plane into a non-planar triangle soup. This allows shadows to be cast correctly across non-planar edges. It is typically used on lightmapped terrain shaders.

- - - -
-
q3map_normalImage texturename

- - - -Allow the use of a normal (height) map to simulate textured bumpmapping. This isn't real bumpmapping per se, but generates a static lightmap image that reflects the normal map and light source.

- - - -
-
q3map_noTJunc

- - - -Read as "no T-Junc". With this option, surfaces modified by a shader are not used for T-junction fixing. q3map_noClip and q3map_noTJunc, used in combination will preserve mesh geometry exactly as you make it.

- - - -
-
q3map_noVertexLight

- - -blah

- - - -
-
q3map_noVertexShadows

- - - -Obsolete!
-Vertex lighting code was rewritten a couple of times, rendering this keyword irrelevant. Shaders that are used on misc_models or terrain were to use q3map_noVertexShadows to disable shadows being cast on the vertex lit surfaces. Casting shadows at small, misc_model objects often makes sense. However, having shadows on large, vertex lit terrain surfaces often looks bad. Shadows are not cast on forced_vertes_lit surfaces by default (shaders with pointlight).

- - - -
-
q3map_offset N.N

- - - -Offsets a surface along the vertex normals N.N units. Used in celshading.

- - - -
-
q3map_patchShadows

- - - -Obsolete!
-When this option is used in conjunction with the original lighting algorithm (-light), surfaces with textures modified with this option will show shadows that are cast by curve patches. Curve patches do not cast shadows by default.

- - - -
-
q3map_remapShader shadername

- - -Allows shaders to be subclassed. Subclassed shaders can reference the remap shader by referencing the remap shader's name. In order for this to work, the remap shader must be specified before any shaders that references it. Subclassed shaders must contain Q3Map2 and editor relevant portions only (q3map_*, surfaceparm and qer_* directives).

- -This is fundamentally the reverse of q3map_baseShader. Use q3map_baseShader when a single group of q3map_* directives is required for multiple base shaders. Use q3map_remapShader when similar shaders are used that require different groups of q3map_* directives.

- -Design Notes:
-Since the subclassed shaders that are applied to geometry does not contain any texture stages, qer_editorImage is usually required in conjunction with q3map_remapShader.

- - - -
-
q3map_replicate

- - - -Does not exist!

- - - -
-
q3map_rgbGen

- - -blah

- - - -
-
q3map_rgbMod

- - -blah

- - - -
-
q3map_shadeAngle angle

- - -Specifies the breaking angle for phong shading. This allows for smooth shadows between brush faces like patches. The angle parameter is the angle between adjacent faces at which smoothing will start to occur. Typical values are usually in the 120-179 range.

- - - -
-
q3map_skylight amount iterations

- - - -This replaces q3map_surfacelight and q3map_lightSubdivide on sky surfaces for much faster and more uniform sky illumination. Amount is a brightness value, similar to what you would use in q3map_sun. Good values are between 50 and 200. Iterations is an exponential factor. 3 is the best value that balances speed and quality. Values of 4 and 5 are higher quality at the expense of higher compile time. Values below 3 are not too useful

- - - -
-
q3map_splotchFix

- - - -This is used on lightmapped model shaders if splotched lighting artifacts appear. Any shadows at the ambient/dark level will be flooded from neighbouring luxels. This gets rid of shadow acne, but a surface must be more or less uniformly lit or this looks ugly. Try using q3map_lightmapSampleOffset first before using this as a last resort.

- - - -
-
q3map_styleMarker

- - - -For use on shaders that accompany style lights. For any shaders that may be hit by a styled light, add q3map_styleMarker after the lightmap stage and before the texture stages so Q3Map2 can properly create the fake lightmap stages (see Appendix G: Lightstyles).

- - - -
-
q3map_styleMarker2

- - - -Similar to q3map_styleMarker except it is used on masked textures where a depthFunc equal is required.

- - - -
-
q3map_sun red green blue intensity degrees elevation

- - - -This keyword in a sky shader will create the illusion of light cast into a map by a single, infinitely distance parallel light source (sun, moon, hellish fire, etc.). This is only processed during the lighting phase of Q3Map2. While still perfectly usable, q3map_sun is now deprecated in favour for q3map_sunExt (see below).

- -
    -red green blue : Color is described by three normalized RGB values. Color will be normalized to a 0.0 to 1.0 range, so it doesn't matter what range you use.

    -intensity : The brightness of the generated light. A value of 100 is a fairly bright sun. The intensity of the light falls off with angle but not distance.

    -degrees : The angle relative to the directions of the map file. A setting of 0 degrees equals east. 90 is north, 180 is west and 270 is south. In the original version of Q3Map, non-axial values had a tendency to produce jagged shadows. With Q3Map2, this problem is avoided with new options like lightmap filtering, raytracing and penumbra effects.

    -elevation : The distance, measured in degrees from the horizon (z value of zero in the map file). An elevation of 0 is sunrise/sunset. An elevation of 90 is noon.

    -
- -Design Notes:
-Sky shaders should probably still have a q3map_surfacelight or preferred q3map_skylight value. The "sun" gives a strong directional light, but doesn't necessarily give the fill light needed to soften and illuminate shadows. Skies with clouds should probably have a weaker q3map_sun value and a higher q3map_surfacelight or q3map_skylight value. Heavy clouds diffuse light and weaken shadows. The opposite is true of a cloudless or nearly cloudless sky. In such cases, the "sun" or "moon" will cast stronger shadows that have a greater degree of contrast. This is also why q3map_sunExt is preferred. It gives the designer greater control over shadow contrast with a penumbra effect.

- -Design Trick:
-Not certain what color formula you want to use for the sun's light? Try this. Create a light entity. Use the Radiant editor's color selection tools to pick a color. The light's _color key's value will be the normalized RGB formula. Copy it from the value line in the editor (CTRL+c) and paste it into your shader.

- - - -
-
q3map_sunExt red green blue intensity degrees elevation deviance samples

- - - -Works like q3map_sun with the addition of two new parameters to create "light jittering" for penumbra (half-shadow) effects. This gives you much more realistic shadows from the sun, especially when trying to simulate a cloudy day or a wide sun. The penumbra effect can also be applied to entity lights (point, spot or sun) with the _deviance N (distance in world units for point/spot lights and degrees for suns) and _samples N (number of samples) key/value pairs.

- -
    -deviance : The number of degrees for the half-shadow. General values up to 2 or 3 are acceptable. The real sun has a solid angle of about half a degree.

    -samples : The number of random jitters distributed over the solid arc (~16).

    -
- - - -
-
q3map_sunlight

- - - -Does not exist!

- - - -
-
q3map_surfacelight value

- - - -The texture gives off light equal to the value set for it. The relative surface area of the texture in the world affects the actual amount of light that appears to be radiated. To give off what appears to be the same amount of light, a smaller texture must be significantly brighter than a larger texture. Unless the q3map_lightImage keyword is used to select a different source for the texture's light color information, the color of the light will be the averaged color of the texture. For sky shaders, use q3map_skylight instead for faster and more uniform sky illumination.

- - - -
-
q3map_surfaceModel modelpath density odds minscale maxscale minangle maxangle oriented

- - - -A surface with q3map_surfaceModel in its shader will randomly place a specified model across it's face. This is designed to place grass or tree models over terrain. - -
    -modelpath : The path to the model file (any supported format).

    -density : The density of the models, in game units.

    -odds : The odds of the model appearing (normalized?).

    -minscale : The minimum scale of the model from its original size of 1.0.

    -maxscale : The maximum scale of the model from its original size of 1.0.

    -minangle : The model's minimum angle of rotation.

    -maxangle : The model's maximum angle of rotation.

    -oriented : This is a flag, either 0 or 1, and sets whether the model gets fitted to the orientation of the surface.

    -
- - - -
-
q3map_tcGen func ---

- - - -This currently supports two functions, vector and ivector. Both functions are used for texture projection and do the exact same thing. The only difference is in the math, ivector was designed to be more intuitive.

- -
q3map_tcGen vector sVector tVector
-Projects a texture Ns units by Nt units along a chosen axis. q3map_tcGen vector ( 1/256 0 0 ) ( 0 1/256 0 ) will project a texture every 256 units in x, and every 256 units in y, along the z-axis.

- -
q3map_tcGen ivector 1.0/sVector 1.0/tVector
-Projects a texture Ns units by Nt units along a chosen axis. q3map_tcGen ivector ( 256 0 0 ) ( 0 256 0 ) will project a texture every 256 units in x, and every 256 units in y, along the z-axis. Ivector means inverse vector, and this means you won't have to do the divide with a calculator. Inverse = 1.0/n, unless the value is 0, then the matrix value is set to 0. A bit of dodgy math, but it works.

- - - -
-
q3map_tcMod func ---

- - - -This works in a similar manner to the stage specific tcMod keyword (see Chapter 6 tcMod), except in the compiler, so that modified texture coordinates are "baked" into the surface. This lets you set up less obvious texture tiling on natural and organic surfaces (especially terrain).

- -
q3map_tcMod rotate degrees
-Rotates the texture (around origin, not center) a specified number of degrees.

- -
q3map_tcMod scale s-scale t-scale
-Scales S (x) and T (y) texture co-ordinates. scale 2 2 would halve the size of the texture (doubling the texture co-ordinates).

- -
q3map_tcMod translate or move or shift s-offset t-offset
-Shifts texture co-ordinates by S, T amount. translate 0.5 0 would shift it one-half in S, and none in T.

- - - -
-
q3map_terrain

- - - -Alphamap terrain shaders (typically textures/common/terrain and terrain2) must have the q3map_terrain keyword. Terrain is handled completely differently from previous versions. Q3Map2 no longer looks for the word terrain in the shader name to determine whether or not it is an indexed shader. It looks for q3map_indexed, or q3map_terrain, which then sets off a bunch of stuff shoehorned into it, like: the lightmap axis, texture projection, etc.

- -By default, q3map_terrain sets the following: -
    - q3map_tcGen ivector ( 32 0 0 ) ( 0 32 0 )
    - q3map_lightmapAxis z
    - q3map_nonplanar
    - q3map_shadeAngle 180 (maybe 175?)
    - q3map_indexed -
- - - -
-
q3map_tessSize amount

- - - -This controls the tessellation size (how finely a surface is chopped up in to triangles), in game units, of the surface. This is only applicable to solid brushes, not curves, and is generally only used on surfaces that are flagged with the deformVertexes keyword. Abuse of this can create a huge number of triangles. This happens during Q3Map2 processing, so maps must be reprocessed for changes to take effect. The poorly named tessSize keyword still works but has been deprecated in favour of q3map_tessSize for the sake of consistency.

- -Design Notes:
-It can also be used on tessellating surfaces to make sure that tessellations are large and thus, less costly in terms of triangles created.

- - - -
-
q3map_textureSize X Y

- - - -Deprecated. Useful when you don't specify an editor or light image for a shader. Recent builds of Q3Map2 will find some referenced image in a shader and use that as a fallback. Historically, this was used for surface splitting for RTCW for PS2, to accommodate the hardware's limited texture range precision.

- - - -
-
q3map_traceLight

- - - -Obsolete!
-Surfaces using a shader with this option will always be lit with the original light algorithm. Patches will not cast shadows on this surface, unless the shader option q3map_patchShadows is also used.

- - - -
-
q3map_vertexScale scale

- - - -The light value, at the vertices of a surface using a shader with this option, is multiplied by the scale value. This is a way to lighten, or darken, a vertex_lit surface, in comparison to other lightmap_lit surfaces around it.

- - - -
-
q3map_vertexShadows

- - - -Obsolete! (See q3map_noVertexShadows)
-By default, no shadows are cast on vertex_lit_surfaces (see surfaceparm pointlight). In addition, when running Quake III Arena in vertex light, no shadows are cast upon any surface at all, since shadows are part of the lightmap. When using this shader keyword, shadows will be cast on surfaces that are vertex lit. However, sharp shadow edges won't be seen on the surfaces, since light values are only calculated at the vertices.

- - - -
-
q3map_vlight

- - - -Obsolete!

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch4.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch4.htm deleted file mode 100644 index 77c09290..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch4.htm +++ /dev/null @@ -1,387 +0,0 @@ - - -Q3Map2 Shader Manual: Q3Map2 Specific Surface Parameter Shader Keywords - - - - - - - - - - -
- - - -

-4 - Q3Map2 Specific Surface Parameter Shader Keywords
-
-Q3Map2 Shader Manual


- - - -All surfaceparm keywords are preceded by the word surfaceparm as follows: surfaceparm fog or surfaceparm noimpact.

- -These keywords change the physical nature of the textures and the brushes that are marked with them. Changing any of these values will require the map to be re-compiled. These are global and affect the entire shader.

- -It should be noted that some of these surface parameters will change both the surface as well as the content of an object (surfaceparm water, for example). Shaders containing content altering surface parameters should usually be used on all sides of the object.

- -Many of these keywords are only used in "common" shaders (baseq3/scripts/common.shader), which are editor specific shaders used by the level designer. Such keywords are usually not used for the design of custom assets.

- -Originally, surfaceparm's were part of the previous chapter since they are actually Q3Map2 specific keywords. I've moved them into their own chapter for the sake of being easier to reference, since both this and the previous chapter were getting too long.

- - - -
-
surfaceparm alphashadow

- - - -This keyword applied to a texture on a brush, patch or model will cause the lighting phase of the Q3Map2 process to use the texture's alpha channel as a mask for casting static shadows in the game world.

- -Design Notes:
-Alphashadow does not work well with fine line detail on a texture. Fine lines may not cast acceptable shadows. It appears to work best with well-defined silhouettes and wider lines within the texture. Most of our tattered banners use this to cast tattered shadows. With Q3Map2, it is possible to increase the resolution of the lightmap receiving the shadows with a slight the cost of memory. This can be achieved with the q3map_lightmapSampleSize keyword on the shadow receiving shader or by creating a func_group of the shadow receiving brushes and adding the _lightmapScale key with a floating-point value for the scale of the lightmap.

- - - -
-
surfaceparm antiportal

- - - -Works like hint brushes in that it creates BSP nodes, but unlike hint, it blocks vis by not creating a portal at the split. This is designed to be used with large terrain maps to block visibility without having to resort to tricks like sky or caulk brushes penetrating the terrain and throwing ugly shadows.

-http://shaderlab.com/mpcenter/q3map/antiportal.jpg

-Players in part A of the map will not be able to see into part B and vice-versa. You can walk through the antiportal just fine. Note that this also blocks light. There are two caveats: They are opaque to light, and if aligned to another BSP cut (such as blocksize or the origin) they will not function correctly. Don't align it with anything else (like blocksize or another brush face) and it'll block vis. This keyword is found in "common/antiportal" so you shouldn't need to specify this. "common/antiportal" was added by ydnar, so if you're missing this shader, it is included with the latest version of Q3Map2.

- - - -
-
surfaceparm areaportal

- - - -A brush marked with this keyword functions as an areaportal, a break in the BSP tree. It is typically placed on a very thin brush placed inside a door entity (but is not a part of that entity). The intent is to block the game from processing surface triangles located behind it when the door is closed. It is also used by the BSPC (bot area file creation compiler) in the same manner as a clusterportal. The brush must touch all the structural brushes surrounding the areaportal. This keyword is found in "common/areaportal" so you shouldn't need to specify this.

- - - -
-
surfaceparm botclip

- - - -Blocks bot movement only. Other game world entities and human players can pass through a brush marked botclip. The intended use for this is to block the bot but not other players or projectiles. This keyword is found in "common/botclip" so you shouldn't need to specify this.

- -Design Notes:
-Careful use of botclip in a map can greatly reduce the complexity of the .aas bot navigation file, resulting in "smarter", more efficient bots.

- - - -
-
surfaceparm clusterportal

- - - -A brush marked with this keyword function creates a subdivision of the area file (.aas) used by the bots for navigation. It is typically placed in locations that are natural breaks in a map, such as entrances to halls, doors, tunnels, etc. The intent is keep the bot from having to process the entire map at once. As with the the areaportal parameter, the affected brush must touch all the structural brushes surrounding the clusterportal. This keyword is found in "common/clusterportal" so you shouldn't need to specify this.

- - - -
-
surfaceparm detail

- - - -This surface attribute causes a brush to be ignored by the Q3Map2 process for generating possible break-points in the BSP tree. Generally speaking, detail brushes are usually set in the editor, so you shouldn't need to specify this.

- - - -
-
surfaceparm donotenter

- - - -Read as "do not enter". Like clusterportal, this is a bot-only property. A brush marked with donotenter will not affect non-bot players, but bots will not enter it. It should be used only when bots appear to have difficulty navigating around some map features. This does not physically stop the bot from entering a region (as with botclip). Bots will not enter the area on their own but may, for example, be blasted into the region with a rocket launcher. This keyword is found in "common/donotenter" so you shouldn't need to specify this.

- -Design Notes: -donotenter can be (sparingly) used in space maps around the void or around lava/slime in certain places where bots have an overwhelming tendancy to commit suicide (lemming style).

- - - -
-
surfaceparm dust

- - - -If a player lands on a surface that uses a shader with this parameter, a puff of dust will appear at the player's feet. Note that the worldspawn entity must contain the "enabledust" key with a set value of "1".

- - - -
-
surfaceparm flesh

- - - -This will cue different sounds (in a similar manner to metalsteps) and cause blood to appear instead of bullet impact flashes. Actually, the code for this was never fully implemented by id Software. It remains half-finished so unfortunately it doesn't work.

- - - -
-
surfaceparm fog

- - - -fog defines the brush as being a "fog" brush. This is a Q3Map2 function that chops and identifies all geometry inside the brush. The general shader keyword fogparms must also be specified to tell how to draw the fog.

- - - -
-
surfaceparm hint

- - - -When Q3Map2 calculates the vis data, it tries to place portals in places in the map in an attempt to limit the potential viewable set (PVS). Brushes marked by a hint shader are used to manually place portals to force a break in the PVS. This keyword is found in "common/hint" so you shouldn't need to specify this.

- - - -
-
surfaceparm ladder

- - - -Supposedly used to allow the player to climb vertically. This is not functional in Quake III Arena.

- - - -
-
surfaceparm lava

- - - -Assigns to the texture the game properties set for lava. This affects both the surface and the content of a brush.

- - - -
-
surfaceparm lightfilter

- - - -Causes the Q3Map2 light stage to use the texture's RGB and alpha channels to generate colored alpha shadows in the lightmap. For example, this can be used to create the colored light effect cast by stained glass windows. This can be used with surfaceparm alphashadow.

- - - -
-
surfaceparm lightgrid

- - - -The min/max bounds of brushes with this shader in a map will define the bounds of the map's lightgrid (model lighting). Make it as small as possible around player space to minimize bsp size and compile time. This keyword is found in "common/lightgrid" so you shouldn't need to specify this. "common/lightgrid" was added by ydnar, so if you're missing this shader, it is included with the latest version of Q3Map2.

- - - -
-
surfaceparm metalsteps

- - - -The player sounds as if he is walking on clanging metal steps or gratings. Other than specifying flesh (doesn't work), metalsteps, nosteps, or default (i.e. specify nothing) it is currently not possible for a designer to create or assign a specific sound routine to a texture. Note: If no sound is set for a texture, then the default footsteps sound routines are heard.

- - - -
-
surfaceparm monsterclip

- - - -Blocks monster movement. Not functional in Quake III Arena.

- - - -
-
surfaceparm nodamage

- - - -The player takes no fall damage if he lands onto a texture with this surfaceparm. This keyword is found in "common/cushion" but you may want to specify this on certain shaders (jump pads, for example).

- - - -
-
surfaceparm nodlight

- - - -Read as "No Dee-Light". A texture containing this parameter will not be affected or lit by dynamic lights, such as weapon effects. An example in Quake III Arena would be solid lava.

- - - -
-
surfaceparm nodraw

- - - -A texture marked with nodraw will not visually appear in the game world. Most often used for triggers, clip brushes, origin brushes, shaders with cull none or cull disable and so on. This keyword is found in "common/nodraw" so you shouldn't need to specify this.

- - - -
-
surfaceparm nodrop

- - - -When a player dies inside a volume (brush) marked nodrop, no weapon is dropped. The intend use is for "Pits of Death." Have a kill trigger inside a nodrop volume, and when the players die here, they won't drop their weapons. The intent is to prevent unnecessary polygon pileups on the floors of pits. This keyword is found in "common/nodrop" but you may want to specify this on certain shaders (fog volumes in pits, for example).

- - - -
-
surfaceparm noimpact

- - - -World entities will not impact on this texture. No explosions occur when projectiles strike this surface and no marks will be left on it. Sky textures are usually marked with this texture so those projectiles will not hit the sky and leave marks.

- - - -
-
surfaceparm nomarks

- - - -Projectiles will explode upon contact with this surface, but will not leave marks. Blood will also not mark this surface. This is useful to keep lights from being temporarily obscured by battle damage.

- -Design Notes:
-Use this on any surface with a deformVertexes keyword. Otherwise, the marks will appear on the unmodified surface location of the texture with the surface wriggles and squirms through the marks.

- - - -
-
surfaceparm nolightmap

- - - -This texture does not have a lightmap phase. It is not affected by the ambient lighting of the world around it. It does not require the addition of an rgbGen identity keyword in that stage.

- - - -
-
surfaceparm nosteps

- - - -The player makes no sound when walking on this texture.

- - - -
-
surfaceparm nonsolid

- - - -This attribute indicates a brush, which does not block the movement of entities in the game world. It applied to triggers, hint brushes and similar brushes. This affects the content of a brush.

- - - -
-
surfaceparm origin

- - - -Used on the "origin" texture. Rotating entities need to contain an origin brush in their construction. The brush must be rectangular (or square). The origin point is the exact center of the origin brush. This keyword is found in "common/origin" so you shouldn't need to specify this.

- - - -
-
surfaceparm playerclip

- - - -Blocks player movement through a nonsolid texture. Other game world entities can pass through a brush marked playerclip. The intended use for this is to block the player but not block projectiles like rockets. This keyword is found in "common/clip" so you shouldn't need to specify this.

- -Design Notes:
- playerclip is often useful for "smoothing" out the geometry of the map, preventing the player from snagging on objects. It is also used in open sky areas of maps, preventing the player from flying too high and seeing the "Hall of Mirrors" effect at the bottom of the cloud layer.

- - - -
-
surfaceparm pointlight

- - - -Sample lighting at vertices??? I'm not sure what this does at this point.

- - - -
-
surfaceparm skip

- - - -Works just like Quake II skip texture. Use on sides of hint and antiportal brushes where you don't want BSP splits. This keyword is found in "common/skip" so you shouldn't need to specify this. "common/skip" was added by ydnar, so if you're missing this shader, it is included with the latest version of Q3Map2.

- - - -
-
surfaceparm sky

- - - -This flags the compiler, telling it that this surface should be rendered as sky.

- - - -
-
surfaceparm slick

- - - -This surfaceparm included in a texture should give it significantly reduced friction. This keyword is found in "common/slick" but you may want to specify this on certain shaders (ice, for example).

- - - -
-
surfaceparm slime

- - - -Assigns to the texture the game properties for slime. This affects both the surface and the content of a brush.

- - - -
-
surfaceparm structural

- - - -This surface attribute causes a brush to be seen by the Q3Map2 process as a possible break-point in a BSP tree. It is used as a part of the shader for the "hint" texture. Generally speaking, any opaque texture not marked as "detail" is, by default, structural, so you shouldn't need to specify this.

- - - -
-
surfaceparm trans

- - - -Tells Q3Map2 that pre-computed visibility should not be blocked by this surface. Generally, any shaders that have blendfunc's should be marked as surfaceparm trans.

- - - -
-
surfaceparm water

- - - -Assigns to the texture the game properties for water. This affects both the surface and the content of a brush.

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch5.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch5.htm deleted file mode 100644 index 19285222..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch5.htm +++ /dev/null @@ -1,102 +0,0 @@ - - -Q3Map2 Shader Manual: Editor Specific Shader Keywords - - - - - - - - - - -
- - - -

-5 - Editor Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - -These instructions only affect the texture when it is seen in the Radiant editor. They should be grouped with the surface parameters but ahead of them in sequence.

- - - -
-
qer_editorImage textureName

- - - -This keyword creates a shader name in memory, but in the editor, it displays the TGA art image specified in qer_editorImage (in the example below this is textures/eerie/lavahell.tga).

- -The editor maps a texture using the size attributes of the TGA file used for the editor image. When that editor image represents a shader, any texture used in any of the shader stages will be scaled up or down to the dimensions of the editor image. If a 128x128 pixel image is used to represent the shader in the editor, then a 256x256 image used in a later stage will be shrunk to fit. A 64x64 image would be stretched to fit. Be sure to check this on bouncy, acceleration, and power-up pads placed on surfaces other than 256 x 256. Use tcMod scale to change the size of the stretched texture. Remember that tcMod scale 0.5 0.5 will double your image, while tcMod scale 2 2 will halve it.

- -Design Notes:
-The base_light and gothic_light shaders contain numerous uses of this. It can be very useful for making different light styles (mostly to change the light brightness) without having to create a new piece of TGA art for each new shader.

- - -
Script: Setting an editorImage
-textures/liquids/lavahell2 //path and name of new texture -{ - qer_editorImage textures/eerie/lavahell.tga //based on this - qer_nocarve //cannot be cut by CSG subtract - surfaceparm noimpact //projectiles do not hit it - surfaceparm lava //has the game properties of lava - surfaceparm nolightmap //environment lighting does not affect - q3map_surfacelight 3000 //light is emitted - tessSize 256 //relatively large triangles - cull disable //no sides are removed - deformVertexes wave 100 sin 5 5 .5 0.02 - fogparms 0.8519142 0.309723 0.0 128 128 - { - maptextures/eerie/lavahell.tga //base texture artwork - tcMod turb .25 0.2 1 0.02 //texture is subjected to turbulence - tcMod scroll 0.1 0.1 //the turbulence is scrolled - } -} -
- - - - -
-
qer_nocarve

- - - -A brush marked with this instruction will not be affected by CSG subtract functions. It is especially useful for water and fog textures.

- - - -
-
qer_trans N.N

- - - -This keyword defines the percentage of transparency that a brush will have when seen in the editor (no effect on game rendering at all). It can have a positive value between 0 and 1. The higher the value, the less transparent the texture. Example: qer_trans 0.2 means the brush is 20% opaque and nearly invisible.

- -Design Notes:
-If you use qer_trans on a shader whose qer_editorImage has an alpha channel, the transparent areas of the editorImage will also be transparent in the editor. To keep the solid areas of the editorImage opaque, use a qer_trans value of "1.0". Useful for grates, windows, fences, etc.

- - - -
-
qer_alphaFunc func N.N

- - - -blah blah blah

- - - -


Previous | Contents | Next


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch6.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch6.htm deleted file mode 100644 index b245dc6a..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch6.htm +++ /dev/null @@ -1,505 +0,0 @@ - - -Q3Map2 Shader Manual: Stage Specific Shader Keywords - - - - - - - - - - -
- - - -

-6 - Stage Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - -Stage specifications only affect rendering. Changing any keywords or values within a stage will usually take effect as soon as a vid_restart is executed. Q3Map2 ignores stage specific keywords entirely.

- -A stage can specify a texture map, a color function, an alpha function, a texture coordinate function, a blend function, and a few other rasterization options.

- - - -
-
Texture Map Specification

- - - -map texturename
-Specifies the source texture map (a 24 or 32-bit TGA file) used for this stage. The texture may or may not contain alpha channel information. The special keywords $lightmap and $whiteimage may be substituted in lieu of an actual texture map name. In those cases, the texture named in the first line of the shader becomes the texture that supplies the light mapping data for the process. The texture name should always end with the ".tga" suffix regardless of whether the source texture map is actually a .tga file or .jpg.

- -
map $lightmap
-This is the overall lightmap for the game world. It is calculated during the Q3Map2 process. It is the initial color data found in the framebuffer. Note: due to the use of overbright bits in light calculation, the keyword rgbGen identity must accompany all $lightmap instructions.

- -
map $whiteimage
-This is used for specular lighting on MD3 models. This is a white image generated internally by the game. This image can be used in lieu of $lightmap or an actual texture map if, for example, you wish for the vertex colors to come through unaltered.

- -
clampMap texturename
-Dictates that this stage should clamp texture coordinates instead of wrapping them. During a stretch function, the area, which the texture must cover during a wave cycle, enlarges and decreases. Instead of repeating a texture multiple times during enlargement (or seeing only a portion of the texture during shrinking) the texture dimensions increase or contract accordingly. This is only relevant when using something like deformTexCoordParms to stretch/compress texture coordinates for a specific special effect. Remember that the Quake III Arena engine normalizes all texture coordinates (regardless of actual texture size) into a scale of 0.0 to 1.0.

- -Proper Alignment: When using clampTexCoords make sure the texture is properly aligned on the brush. The clampTexCoords function keeps the image from tiling. However, the editor doesn't represent this properly and shows a tiled image. Therefore, what appears to be the correct position may be offset. This is very apparent on anything with a tcMod rotate and clampTexCoords function.

- -//obsidian: Figure 2a & 2b??? Where???
-//obsidian: clampTexCoords???


- -Avoiding Distortion: When seen at a given distance (which can vary, depending on hardware and the size of the texture), the compression phase of a stretch function will cause a "cross"-like visual artifact to form on the modified texture due to the way that textures are reduced. This occurs because the texture undergoing modification lacks sufficient "empty space" around the displayed (non-black) part of the texture (see figure 2a). To compensate for this, make the non-zero portion of the texture substantially smaller (50% of maximum stretched size -- see figure 2b) than the dimensions of the texture. Then, write a scaling function (tcMod scale) into the appropriate shader phase, to enlarge the image to the desired proportion.

- -The shaders for the bouncy pads (in the sfx.shader file) show the stretch function in use, including the scaling of the stretched texture:

- - - -
Script: Using clampMap to control a stretching texture
-textures/sfx/metalbridge06_bounce -{ - //q3map_surfacelight 2000 - surfaceparm nodamage - q3map_lightimage textures/sfx/jumppadsmall.tga - q3map_surfacelight 400 - { - map textures/sfx/metalbridge06_bounce.tga - rgbGen identity - } - { - map $lightmap - rgbGen identity - blendfunc gl_dst_color gl_zero - } - { - map textures/sfx/bouncepad01b_layer1.tga - blendfunc gl_one gl_one - rgbGen wave sin .5 .5 0 1.5 - } - { - clampmap textures/sfx/jumppadsmall.tga - blendfunc gl_one gl_one - tcMod stretch sin 1.2 .8 0 1.5 - rgbGen wave square .5 .5 .25 1.5 - } - // END -} -
- - - -
animMap frequency texture1... texture8
-The surfaces in the game can be animated by displaying a sequence of 1 to 8 frames (separate texture maps). These animations are affected by other keyword effects in the same and later shader stages.
- -
    -frequency : The number of times that the animation cycle will repeat within a one second time period. The larger the value, the more repeats within a second. Animations that should last for more than a second need to be expressed as decimal values.
    -texture1... texture8 : the texture path/texture name for each animation frame must be explicitly listed. Up to eight frames (eight separate .tga files) can be used to make an animated sequence. Each frame is displayed for an equal subdivision of the frequency value. -
- -Example:
-animMap 0.25 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga would be a 4 frame animated sequence, calling each frame in sequence over a cycle length of 4 seconds. Each frame would be displayed for 1 second before the next one is displayed. The cycle repeats after the last frame in sequence shown.

- -Design Notes:
-To make a texture image appear for an unequal (longer) amount of time (compared to other frames), repeat that frame more than once in the sequence.

- - - -
Script: Specifying an animMap
-textures/sfx/flameanim_blue -{ - - // *********************************************** - // * Blue Flame * - // * July 20, 1999 Surface Light 1800 * - // * Please Comment Changes * - // *********************************************** - qer_editorimage textures/sfx/b_flame7.tga - q3map_lightimage textures/sfx/b_flame7.tga - surfaceparm trans - surfaceparm nomarks - surfaceparm nolightmap - cull none - q3map_surfacelight 1800 - // texture changed to blue flame.... PAJ - { - animMap 10 textures/sfx/b_flame1.tga textures/sfx/b_flame2.tga - textures/sfx/b_flame3.tga textures/sfx/b_flame4.tga - textures/sfx/b_flame5.tga textures/sfx/b_flame6.tga - textures/sfx/b_flame7.tga textures/sfx/b_flame8.tga - blendFunc GL_ONE GL_ONE - rgbGen wave inverseSawtooth 0 1 0 10 - } - { - animMap 10 textures/sfx/b_flame2.tga textures/sfx/b_flame3.tga - textures/sfx/b_flame4.tga textures/sfx/b_flame5.tga - textures/sfx/b_flame6.tga textures/sfx/b_flame7.tga - textures/sfx/b_flame8.tga textures/sfx/b_flame1.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sawtooth 0 1 0 10 - } - { - map textures/sfx/b_flameball.tga - blendFunc GL_ONE GL_ONE - rgbGen wave sin .6 .2 0 .6 - } -} -
- - -
videoMap videoname
-Surfaces marked with a shader containing this directive in one of its stages will display an animated video playing in a continuous loop. The video clip must be in ROQ format and playing at 30 frames per second. The ROQ file is stored in the "video" directory within the main mod directory. A third-party program is required to convert other video formats to the ROQ format for use within Quake III engine games.

- - -
Script: Specifying a videoMap
-textures/obsidian_video/intro -{ - qer_editorImage textures/obsidian_video/qer_intro.tga - surfaceparm nolightmap - { - videoMap obsidian_intro.roq - rgbGen identity - } -} -
- - -
Historical Information:
-The ROQ format is a proprietary video format developed by Graeme Devine originally used for "The 7th Guest" for the purpose of being able to decompress quickly while maintaining high image quality. It was later adopted by Id Software for use in Quake III Arena.

- - - -
-
blendFunc func

- - - -Blend functions are the keyword commands that tell the Quake III Arena graphic engine's renderer how graphic layers are to be mixed together.

- -
Simplified Blend Functions
-The most common blend functions are set up here as simple commands, and should be used unless you really know what you are doing. - -
    -add : Shorthand command for blendFunc gl_one gl_one. Effects like fire and energy are additive.

    -filter : Shorthand command that can be substituted for either blendFunc gl_dst_color gl_zero or blendFunc gl_zero gl_src_color. A filter will always result in darker pixels than what is behind it, but it can also remove color selectively. Lightmaps are filters.

    -blend : Shorthand command for blendFunc gl_src_alpha gl_one_minus_src_alpha. This is conventional transparency, where part of the background is mixed with part of the texture.

    -
- -
Explicit Blend Functions
-Getting a handle on this concept is absolutely key to understanding all shader manipulation of graphics.

- -blendFunc or "Blend Function" is the equation at the core of processing shader graphics. The formula reads as follows:

- -
[source * (srcBlend)] + [destination * (dstBlend)]

- -Source is usually the RGB color data in a texture TGA file (remember it's all numbers) modified by any rgbGen and alphaGen. In the shader, the source is generally identified by command map, followed by the name of the image.

- -Destination is the color data currently existing in the frame buffer.

- -Rather than think of the entire texture as a whole, it maybe easier to think of the number values that correspond to a single pixel, because that is essentially what the computer is processing... one pixel of the bitmap at a time.

- -The process for calculating the final look of a texture in place in the game world begins with the precalculated lightmap for the area where the texture will be located. This data is in the frame buffer. That is to say, it is the initial data in the destination. In an unmanipulated texture (i.e. one without a special shader script), color information from the texture is combined with the lightmap. In a shader-modified texture, the $lightmap stage must be present for the lightmap to be included in the calculation of the final texture appearance.

- -Each pass or "stage" of blending is combined (in a cumulative manner) with the color data passed onto it by the previous stage. How that data combines together depends on the values chosen for the source blends and destination blends at each stage. Remember it's numbers that are being mathematically combined together that are ultimately interpreted as colors.

- -A general rule is that any source blend other than GL_ONE (or GL_SRC_ALPHA where the alpha channel is entirely white) will cause the source to become darker.

- -
Source Blend srcBlend
-The following values are valid for the source blend part of the equation. - -
    -GL_ONE This is the value 1. When multiplied by the source, the value stays the same. The value of the color information does not change.
    -GL_ZERO This is the value 0. When multiplied by the source, all RGB data in the source becomes zero (essentially black).
    -GL_DST_COLOR This is the value of color data currently in the destination (frame buffer). The value of that information depends on the information supplied by previous stages.
    -GL_ONE_MINUS_DST_COLOR This is nearly the same as GL_DST_COLOR except that the value for each component color is inverted by subtracting it from one. (i.e. R = 1.0 - DST.R, G = 1.0 - DST.G, B = 1.0 - DST.B, etc.)
    -GL_SRC_ALPHA The TGA file being used for the source data must have an alpha channel in addition to its RGB channels (for a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the source.
    -GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A) -
- -
Destination Blend dstBlend
-The following values are valid for the destination blend part of the equation. - -
    -GL_ONE This is the value 1. When multiplied by the destination, the value stays the same the value of the color information does not change.
    -GL_ZERO This is the value 0. When multiplied by the destination, all RGB data in the destination becomes zero (essentially black).
    -GL_SRC_COLOR This is the value of color data currently in the source (which is the texture being manipulated here).
    -GL_ONE_MINUS_SRC_COLOR This is the value of color data currently in source, but subtracted from one (i.e. inverted).
    -GL_SRC_ALPHA The TGA file being used for the source data must have an alpha channel in addition to its RGB channels (four a total of four channels). The alpha channel is an 8-bit black and white only channel. An entirely white alpha channel will not darken the source.v -GL_ONE_MINUS_SRC_ALPHA This is the same as GL_SRC_ALPHA except that the value in the alpha channel is inverted by subtracting it from one. (i.e. A=1.0 - SRC.A). -
- -
Doing the Math: The Final Result
-The product of the source side of the equation is added to the product of the destination side of the equation. The sum is then placed into the frame buffer to become the destination information for the next stage. Ultimately, the equation creates a modified color value that is used by other functions to define what happens in the texture when it is displayed in the game world.

- -
Default Blend Function
-If no blendFunc is specified then no blending will take place. A warning is generated if any stage after the first stage does not have a blendFunc specified.

- -
Technical Information/Limitations Regarding Blend Modes:
-The Riva 128 graphics card supports ONLY the following blendmodes:

- -GL_ONE, GL_ONE
-GL_DST_COLOR, GL_ZERO
-GL_ZERO, GL_SRC_COLOR
-GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
-GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA

- -Cards running in 16 bit color cannot use any GL_DST_ALPHA blends.

- - - -
-
rgbGen func

- - - -There are two color sources for any given shader, the texture file and the vertex colors. Output at any given time will be equal to TEXTURE multiplied by VERTEXCOLOR. Most of the time VERTEXCOLOR will default to white (which is a normalized value of 1.0), so output will be TEXTURE (this usually lands in the Source side of the shader equation). Sometimes you do the opposite and use TEXTURE = WHITE, but this is only commonly used when doing specular lighting on entities (i.e. shaders that level designers will probably never create.

- -The most common reason to use rgbGen is to pulsate something. This means that the VERTEXCOLOR will oscillate between two values, and that value will be multiplied (darkening) the texture.

- -If no rgbGen is specified, either "identityLighting" or "identity" will be selected, depending on which blend modes are used.

- -Valid func parameters are identity, identityLighting, vertex, exactVertex, fromVertex (???) entity, oneMinusEntity, lightingDiffuse, noise (???), wave and const.

- - -
rgbGen identityLighting
-Colors will be (1.0, 1.0, 1.0) if running without overbright bits (NT, Linux, windowed modes), or (0.5, 0.5, 0.5) if running with overbright. Overbright allows a greater color range at the expense of a loss of precision. Additive and blended stages will get this by default.

- -
rgbGen identity
-Colors are assumed to be all white (1.0, 1.0, 1.0). All filters stages (lightmaps, etc) will get this by default.

- -
rgbGen wave func base amplitude phase freq
-Colors are generated using the specified waveform. An affected texture with become darker and lighter, but will not change hue. Hue stays constant. Note that the RGB values for color will not go below 0 (black) or above 1 (white). Valid waveforms are sin, triangle, square, sawtooth and inversesawtooth (see 1.4.8 Waveform Functions).

- -
rgbGen entity
-Colors are grabbed from the entity's modulate field. This is used for things like explosions.

- -Design Notes:
-This keyword would probably not be used by a level designer.

- -
rgbGen oneMinusEntity
-Colors are grabbed from 1.0 minus the entity's modulate field.

- -Design Note:
-This keyword would probably not be used by a level designer.

- -
rgbGen vertex
-Colors are filled in directly by the data from the map or model files.

- -Obsidian: exactVertex ignores overbrightbits. Generally brighter under default settings.
-rgbGen vertex + alphaGen const or rgbGen exactVertex to disable surfaces from being affected by alphaMod volumes.

- -Design Note:
-rgbGen vertex should be used when you want the RGB values to be computed for a static model (i.e. mapobject) in the world using precomputed static lighting from Q3BSP. This would be used on things like the gargoyles, the portal frame, skulls, and other decorative models put into the Quake III Arena world.

- -
rgbGen oneMinusVertex
-As rgbGen vertex, but inverted.

- -Design Note:
-This keyword would probably not be used by a level designer.

- -
rgbGen lightingDiffuse
-Colors are computed using a standard diffuse lighting equation. It uses the vertex normals to illuminate the object correctly.

- -Design Notes:
-rgbGen lightingDiffuse is used when you want the RGB values to be computed for a dynamic model (i.e. non-map object) in the world using regular in-game lighting. For example, you would specify on shaders for items, characters, weapons, etc.

- -
rgbGen const ( R G B )
-A constant vertex colour is assigned to the affected surface. This modifies the hue of the texture.

- - - -
-
alphaGen func

- - - -The alpha channel can be specified like the RGB channels. If not specified, it defaults to 1.0. Valid func values are lightingSpecular, wave, entity, oneMinusEntity, vertex, oneMinusVertex, portal.

- -//Obsidian: Describe each in more detail... like rgbGen above.
- -
alphaGen portal
-This rendering stage keyword is used in conjunction with the surface parameter keyword portal. The function accomplishes the "fade" that causes the scene in the portal to fade from view. Specifically, it means "Generate alpha values based on the distance from the viewer to the portal." Use alphaGen portal on the last rendering pass.

- -//Obsidian: needs formatting???

- - - -
-
tcGen coordinateSource

- - - -Specifies how texture coordinates are generated and where they come from. Valid functions are base, lightmap, environment and vector. - -
    -base : Base texture coordinates from the original art.
    -lightmap : Lightmap texture coordinates.
    -environment : Make this object environment mapped.
    -vector : Projects a texture from a specified direction.
    -
- -tcGen vector ( sx sy sz ) ( tx ty tz )
-New texture coordinate generation by world projection. This allows you to project a texture onto a surface in a fixed way, regardless of its orientation.

- -S coordinates correspond to the "x" coordinates on the texture itself.
-T coordinates correspond to the "y" coordinates on the texture itself.

- -The measurements are in game units.

- -Example: tcGen vector ( 0.01 0 0 ) ( 0 0.01 0 )
-This would project a texture with a repeat every 100 units across the X/Y plane. The value comes from dividing the game units from 1, in this case, 1/100.

- - - -
-
tcMod func ---

- - - -Specifies how texture coordinates are modified after they are generated. The valid functions for tcMod are rotate, scale, scroll, stretch, transform and turb. Transform is a function generally reserved for use by programmers who suggest that designers leave it alone. When using multiple tcMod functions during a stage, place the scroll command last in order, because it performs a mod operation to save precision, and that can disturb other operations. Texture coordinates are modified in the order in which tcMods are specified. In otherwords, if you see:

- -tcMod scale 0.5 0.5
-tcMod scroll 1 1

- -then the texture coordinates will be scaled then scrolled.

- -
tcMod rotate degrees/sec
-This keyword causes the texture coordinates to rotate. The value is expressed in degrees rotated each second. A positive value means clockwise rotation. A negative value means counterclockwise rotation. For example "tcMod rotate 5" would rotate texture coordinates 5 degrees each second in a clockwise direction. The texture rotates around the center point of the texture map, so you are rotating a texture with a single repetition, be careful to center it on the brush (unless off-center rotation is desired).

- -
tcMod scale sScale tScale
-Resizes (enlarges or shrinks) the texture coordinates by multiplying them against the given factors of sScale and tScale. The values "s" and "t"conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The values for sScale and tScale are NOT normalized. This means that a value greater than 1.0 will increase the size of the texture. A positive value less than one will reduce the texture to a fraction of its size and cause it to repeat within the same area as the original texture (Note: see clampTexCoords for ways to control this).

- -Example: tcMod scale 0.5 2 would cause the texture to repeat twice along its width, but expand to twice its height (in which case half of the texture would be seen in the same area as the original)

- -
tcMod scroll sSpeed tSpeed
-Scrolls the texture coordinates with the given speeds. The values "s" and "t" conform to the "x" and "y" values (respectively) as they are found in the original texture TGA. The scroll speed is measured in "textures" per second. A "texture" is the dimension of the texture being modified and includes any previous shader modifications to the original TGA). A negative s value would scroll the texture to the left. A negative t value would scroll the texture down.

- -Example: tcMod scroll 0.5 -0.5 moves the texture down and right (relative to the TGA files original coordinates) at the rate of a half texture each second of travel.

- -This should be the LAST tcMod in a stage. Otherwise there may be a popping or snapping visual effect in some shaders.

- -
tcMod stretch func base amplitude phase frequency
-Stretches the texture coordinates with the given function. Stretching is defined as stretching the texture coordinate away from the center of the polygon and then compressing it towards the center of the polygon. (see Chapter 1: Key Concepts for waveform parameter definitions).

- -
tcMod transform m00 m01 m10 m11 t0 t1
-Transforms each texture coordinate as follows:
- -S' = s * m00 + t * m10 + t0
-T' = s * m01 + t * m11 + t1
- -This is for use by programmers.

- - -
tcMod turb base amplitude phase freq
-Applies turbulence to the texture coordinate. Turbulence is a back and forth churning and swirling effect on the texture.

- -base : Currently undefined.
-amplitude : This is essentially the intensity of the disturbance or twisting and squiggling of the texture.
-phase : See the explanation for phase under the deformVertexes keyword.
-freq : Frequency. This value is expressed as repetitions or cycles of the wave per second. A value of one would cycle once per second. A value of 10 would cycle 10 times per second. A value of 0.1 would cycle once every 10 seconds.

- - - -
-
depthFunc func

- - - -This controls the depth comparison function used while rendering. The default is "lequal" (Less than or equal to) where any surface that is at the same depth or closer of an existing surface is drawn. This is used for textures with transparency or translucency. Under some circumstances you may wish to use "equal", e.g. for light-mapped grates that are alpha tested (it is also used for mirrors).

- - - -
-
depthWrite

- - - -By default, writes to the depth buffer when depthFunc passes will happen for opaque surfaces and not for translucent surfaces. Blended surfaces can have the depth writes forced with this function.

- - - -
-
detail

- - - -This feature was not used in Quake III Arena maps, but still functions. Designates this stage as a detail texture stage, which means that if the c_var, r_detailtextures, is set to 0 then this stage will be ignored (detail will not be displayed). This keyword, by itself, does not affect rendering at all. If you do put in a detail texture, it has to conform to very specific rules. Specifically, the blendFunc:

- -
blendFunc GL_DST_COLOR GL_SRC_COLOR

- -This is also the simple blend function: blendFunc filter

- -And the average intensity of the detail texture itself must be around 127.

- -Detail is used to blend fine pixel detail back into a base texture whose scale has been increased significantly. When detail is written into a set of stage instructions, it allows the stage to be disabled by the c_var console command setting "r_detailtextures 0".

- -A texture whose scale has been increased beyond a 1:1 ratio tends not to have very high frequency content. In other words, one texel can cover a lot of real estate. Frequency is also known as "detail." Lack of detail can appear acceptable if the player never has the opportunity to see the texture at close range. But seen close up, such textures look glaringly wrong within the sharp detail of the Quake III Arena environment. A detail texture solves this problem by taking a noisy "detail" pattern (a tiling texture that appears to have a great deal of surface roughness) and applying it to the base texture at a very densely packed scale (that is, reduced from its normal size). This is done programmatically in the shader, and does not require modification of the base texture. Note that if the detail texture is the same size and scale as the base texture that you may as well just add the detail directly to the base texture. The theory is that the detail texture's scale will be so high compared to the base texture (e.g.; 9 detail texels fitting into 1 base texel) that it is literally impossible to fit that detail into the base texture directly.

- -For this to work, the rules are as follows:
- -
    -
  • The lightmap must be rendered first. This is because the subsequent detail texture will be modifying the lightmap in the framebuffer directly.
  • -
  • The base texture must be rendered next.
  • -
  • The detail texture must be rendered last since it modifies the lightmap in the framebuffer. There is a bug in Quake III that disables all stages in a shader after a "detail" stage if r_detailTextures is set to 0.
  • -
  • The detail texture MUST have a mean intensity around 127-129. If it does not then it will modify the displayed texture's perceived brightness in the world.
  • -
  • The detail shader stage MUST have the "detail" keyword or it will not be disabled if the user uses the "r_detailtextures 0" setting.
  • -
  • The detail stage MUST use "blendFunc GL_DST_COLOR GL_SRC_COLOR". Any other BlendFunc will cause mismatches in brightness between detail and non-detail views.
  • -
  • The detail stage should scale its textures by some amount (usually between 3 and 12) using "tcMod scale" to control density. This roughly corresponds to coarseness. A very large number, such as 12, will give very fine detail, however that detail will disappear VERY quickly as the viewer moves away from the wall since it will be MIP mapped away. A very small number, e.g. 3, gives diminishing returns since not enough is brought in when the user gets very close. I'm currently using values between 6 and 9.5. You should use non-integral numbers as much as possible to avoid seeing repeating patterns.
  • -
  • Detail textures add one pass of overdraw, so there is a definite performance hit.
  • -
  • Detail textures can be shared, so designers may wish to define only a very small handful of detail textures for common surfaces such as rocks, etc.
  • -
- -An example (non-existent) detail shader is as follows:

- - - -
Script: Detail shaders
-textures/bwhtest/foo -{ - q3map_globalTexture //may be required when using tcMod scale in later stages - - // draw the lightmap first - { - map $lightmap - rgbGen identity - } - - // draw the base texture - { - map textures/castle/blocks11b.tga - blendFunc filter - } - - // highly compressed detail texture - { - map textures/details/detail01.tga - blendFunc GL_DST_COLOR GL_SRC_COLOR //MUST BE USED - detail //allows detail shaders to be disabled - tcMod scale 9.1 9.2 - } -} -
- - - - -
-
alphaFunc func

- - - -Determines the alpha test function used when rendering this map. Valid values are GT0, LT128, and GE128. These correspond to "GREATER THAN 0", "LESS THAN 128", and "GREATER THAN OR EQUAL TO 128". This function is used when determining if a pixel should be written to the framebuffer. For example, if GT0 is specified, the only the portions of the texture map with corresponding alpha values greater than zero will be written to the framebuffer. By default alpha testing is disabled.

- -Both alpha testing and normal alpha blending can be used to get textures that have see-through parts. The difference is that alphaFunc is an all-or-nothing test, while blending smoothly blends between opaque and translucent at pixel edges. Alpha test can also be used with depthWrite, allowing other effects to be conditionally layered on top of just the opaque pixels by setting depthFunc to equal.

- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch7.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch7.htm deleted file mode 100644 index eb679fc3..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch7.htm +++ /dev/null @@ -1,110 +0,0 @@ - - -Q3Map2 Shader Manual: Quake 3 Engine Game Specific Shader Keywords - - - - - - - - - - -
- - - -

-7 - Quake 3 Engine Game Specific Shader Keywords
-
-Q3Map2 Shader Manual


- - - -The Quake 3 Engine has been licensed to several different companies for the development of third party games. This chapter is a sub-manual documenting the Quake 3 Engine game specific shader keywords developed for third party games like Return to Castle Wolfenstein: Enemy Territory, Jedi Knights II, Soldier of Fortune II, Jedi Academy, Star Trek: Elite Force, as examples.

- -Note: These are just keywords that have been submitted by people on the forums/irc channels. I have no idea about the accuracy of this chapter. Please use with caution. Please e-mail me (Obsidian) for any additions or error corrections to this list.

- -All default Quake III Arena shader keywords *should* also work for the below list of games.

- - -
-
Return to Castle Wolfenstein

- - - -Q3Map Specific Surface Parameter Shader Keywords
-surfaceparm grasssteps
-surfaceparm gravelsteps
-surfaceparm metalsteps
-surfaceparm roofssteps
-surfaceparm snowsteps
-surfaceparm woodsteps
-surfaceparm ladder
-surfaceparm carpetsteps (ET???)
-surfaceparm glass
-surfaceparm playerslick
-surfaceparm entityMergable???
-surfaceparm monsterSlick
-surfaceparm nofog
- -
-Are these surfaceparm's?
-ai_nopass
-ai_nopasslarge
-ai_nosight
-
- - - -
-
Return to Castle Wolfenstein: Enemy Territory

- - -Note: unless otherwise noted, all RTCW keywords also work in ET.

- -Q3Map Specific Shader Keywords
-q3map_foliage

- -Q3Map Specific Surface Parameter Shader Keywords
-surfaceparm landmines
-
- - - -
-
Raven Software

- - - -Jedi Knights II, Jedi Academy, Soldier of Fortune II

- -Q3Map Specific Shader Keywords
-q3map_flare [shadername]
-q3map_flareShader
-q3map_material
-q3map_onlyVertexLighting

- - - -
-
Ritual Entertainment

- - - -Q3Map Specific Shader Keywords
-
- - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch8.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch8.htm deleted file mode 100644 index bae97ea4..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/ch8.htm +++ /dev/null @@ -1,40 +0,0 @@ - - -Q3Map2 Shader Manual: Shader Creation Tips - - - - - - - - - - -
- - - -

-8 - Shader Creation Tips
-
-Q3Map2 Shader Manual


- - - -This chapter covers some miscellaneous shader and texture creating tips. Note: I've temporarily removed these for now, since I'm not sure how useful they are. A lot of this was covered or should be covered in the Radiant Manual. I'll come back to this chapter when I have time.

- -Obsidian's Notes:
-Stage transparency using blendFunc blend vs. shader transparency. - - -


-Previous | Contents | Next -


- - - -
-
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/contents.htm b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/contents.htm deleted file mode 100644 index 60c49422..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/contents.htm +++ /dev/null @@ -1,236 +0,0 @@ - - -Q3Map2 Shader Manual: Table of Contents - - - - - - - - - - - - - -
-

- Table of Contents
-
- Q3Map2 Shader Manual


-
- - - -0 Preface
- - -1 Introduction
- - -2 General Shader Keywords
- - -3 Q3Map2 Specific Shader Keywords
- - -4 Q3Map2 Specific Surface Parameter Shader Keywords
- - -5 Editor Specific Shader Keywords
- - -6 Stage Specific Shader Keywords
- - -7 Quake 3 Engine Game Specific Shader Keywords
-
    - Return to Castle Wolfenstein
    - Return to Castle Wolfenstein: Enemy Territory
    - Raven
    - Ritual
    -
- -8 Shader Effects Creation Tips
-
    - Notes on Alpha Channels
    - Troubleshooting Shaders
    - Creating New Textures
    -
- -Appendix A: Triggerable Shader Entities

- -Appendix B: Terrain

- -Appendix C: Foghull

- -Appendix D: Fur

- -Appendix E: Celshading

- -Appendix F: Bumpmapping

- -Appendix G: Lightstyles

- -Appendix H: Lightmapped Mapmodels

- -Appendix I: Light Emitting Shaders

- - - -
- - - -


-Title Page -


- - - -
- - \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/entries b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/entries deleted file mode 100644 index 3173b3ad..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3Map2Shader_Manual/images -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -q3logo.jpg -file - - - - -2012-04-01T16:52:32.532311Z -c41bb2b45ad20503445689c8fbf4ad32 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -757 - diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/prop-base/q3logo.jpg.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/prop-base/q3logo.jpg.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/prop-base/q3logo.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/text-base/q3logo.jpg.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/images/.svn/text-base/q3logo.jpg.svn-base deleted file mode 100644 index c6adaa7d96f47e1a5b99eda57644c5df0930f042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 757 zcmex=iF;o{=v;^GnD0RsUZK7IjyJ|1CV5fNcw z8EI*08F@HhWM^mR<>8eO5Ri}(6%>_%OAyQWe}F-dgF%i#j+s%Afk}{&S&;Gn5r!-V z24+S^pex~kg_Vto162qlC&0kS%mnfSD^xWj6Elk-D}$ntuwi1Oh@&za`-i}ZMxshi zK}nNT1yPIy>HmL=frpt9Xfd-OgFVB`?B0X_9ym77*~+!HGLX5~H_Ohlhw0_F4#DJQ zv6q}LiEN*dwBYGF?-Pk4TJj#Abl8TR9X4Vt@8iRTwN z1&7a4ZKSTdd-X?&_bSKxTBfp^N=K)j zTJusxcuD$_2kL*r-ydJ7etUK^SICO*X3uZS7wPN>O4iSuJtft~=GvuMFKo0MlI`#3 z`^G%BmA=IEyku9i$KR!^e5OrVki{5unD<5er#q7AF|1sw@i%i%GTphk|Kv8#?k(?l z=l$foB6atn@0GuIKJe+PZ`g5a`|e)>kG>~sd{B&&cl2v#RDUiF;o{=v;^GnD0RsUZK7IjyJ|1CV5fNcw z8EI*08F@HhWM^mR<>8eO5Ri}(6%>_%OAyQWe}F-dgF%i#j+s%Afk}{&S&;Gn5r!-V z24+S^pex~kg_Vto162qlC&0kS%mnfSD^xWj6Elk-D}$ntuwi1Oh@&za`-i}ZMxshi zK}nNT1yPIy>HmL=frpt9Xfd-OgFVB`?B0X_9ym77*~+!HGLX5~H_Ohlhw0_F4#DJQ zv6q}LiEN*dwBYGF?-Pk4TJj#Abl8TR9X4Vt@8iRTwN z1&7a4ZKSTdd-X?&_bSKxTBfp^N=K)j zTJusxcuD$_2kL*r-ydJ7etUK^SICO*X3uZS7wPN>O4iSuJtft~=GvuMFKo0MlI`#3 z`^G%BmA=IEyku9i$KR!^e5OrVki{5unD<5er#q7AF|1sw@i%i%GTphk|Kv8#?k(?l z=l$foB6atn@0GuIKJe+PZ`g5a`|e)>kG>~sd{B&&cl2v#RDUQ3Map2 Shader Manual - - - - - - - - - - - - - - - - - - - -
-
-
-
-
- By Obsidian and ydnar | Version 2.5.15 (02.09.04) -
- - Based on the original
- Q3Radiant Shader Manual, Revision #12
- By Paul Jaquays and Brian Hook

- (with additional material by John Carmack, Christian Antkow, Kevin Cloud, & Adrian Carmack)
- QERadiant.com thanks John Hutton for re-formating the original manual into a more web friendly version -
-
- -
- \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/entries b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/entries deleted file mode 100644 index bf6a6375..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/entries +++ /dev/null @@ -1,130 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3Map2Shader_Manual/start_files -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -titleImage.jpg -file - - - - -2012-04-01T16:52:31.665261Z -53dfc7f6a22a9efa43bd6a8b591aa8d1 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -25182 - -title.gif -file - - - - -2012-04-01T16:52:31.668261Z -3ac5859ec9a14257fd23209571ae4354 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -2526 - -styles.css -file - - - - -2012-04-01T16:52:31.712264Z -987f121d88d0207f7e1d566680aa8b8a -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -470 - diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/title.gif.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/title.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/title.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/titleImage.jpg.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/titleImage.jpg.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/prop-base/titleImage.jpg.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/styles.css.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/styles.css.svn-base deleted file mode 100644 index f93c6142..00000000 --- a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/styles.css.svn-base +++ /dev/null @@ -1,14 +0,0 @@ -A:link { color: #28648C; text-decoration: none; } -A:visited { color: #28648C; text-decoration: none; } -A:hover { color: #28648C; text-decoration: underline; } -A:active { color; #28648C; text-decoration: underline; } - -BODY { - scrollbar-face-color: #CCCCCC; - scrollbar-3dlight-color: #CCCCCC; - scrollbar-highlight-color: #EEEEEE; - scrollbar-shadow-color: #AAAAAA; - scrollbar-darkshadow-color: #CCCCCC; - scrollbar-track-color: #EEEEEE; - scrollbar-arrow-color: #FFFFFF; -} \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/title.gif.svn-base b/install/installs/ReactionPack/install/docs/Q3Map2Shader_Manual/start_files/.svn/text-base/title.gif.svn-base deleted file mode 100644 index c793178fb1962d3d277151ad470a4ae248983c1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2526 zcmV<42_g1JNk%w1VQ2w10M!5h|NsBLzrO$g0N>x=@9*zFKR?gU&o3`8e}8{pUtf=p zkHf>m$H&L__xI=L=iA%c^Yio5)6>h#%h%V}`}_L~3k&P(>$9`74-XIHCc%pP#Ru^XM|QCt2L~tx#2C2-0EYn* z2F=c~8o|=jB+EvJ2dW(-G}8wisv~RJ5K(8O&ZbyM+1#4vCKg9aZomon zK+lbcSSvfKO4sJXhj@9sKhYmIi`0 zDQ=_GNaDqc3kz||Mlt|WcN7`ggbY9gJLsM$lN4bHW<*&at6uZguY6G*Paq$&r(qRNI3 zKJgwR3_J%waSkx(BoPicpr#YmH6q!H0lWi1osGmtmYqZt7(kdx2%1?DhPpv06`Sb! zgaeJ0DQOhj?J?=4m}aW!rkr-_>8GHED(a}DmTKy$sHUpws;q)~9(QhpHUtH*CSpXQ zi1;}KpYr9-F5ZFvfb$-wAOD3DS&E zL%<~XXXy~_v>`2^N<_@YTMooCFd+lrGvGdr7(jpt!~kaSCd8P)%K#RyA&n#(*o&UK z1(@6f0TOcbFEQReVSkT=z1TA7d?rfkW? zmktSt0oFy6NyPvPB#>7T`(gMB5*`%++*v@|oMRg~p-4p3{$j4m42^Ck(g*&jtwBi+ zBO+_BlRc&XN>l-;z128Hf^5eKK%1D^bWkqowg6hmBDerxOAxGA|>rqLC7 zEaL$^Lw|YWv;Zl*8|yHjRRu15&IZsmYfD7%f!`UDPb*O z5YamT2uge>7}OC6aF<<}?m~l5fZG@c6zXND02DMpEJ}APm0V9oj+>O&l4Xa|5MgSy z@>8YqRD`bmheSH^-5a1Vz(JT$hIi=RLr91oW|_ePfq<0+9`L*)n4?w;m_QMU;KDUH z>Q@&l0%8=y0{pBYQcXBbBNhMwWDPXSnlVJ&ZXvRe8{ zKac@X3nA%*8a6_hNswEu!c?vl;_?WVY{LRP$;8wRfh|#hBKbC>8eM6#Y)n9;VlsII zWh&5!2^xaPra-$(8DKE*l*ucx(98h1ZxhB^PYgAQN+Yx^GE5MZAav3dJ1kKFG9i;W z!7;Wt|OJg1zG}AI1X%zq~Ol3}f5xW#@uz==V zK|b(-fCj{purrDs;FQN!$;Ju*Z(V{&z9aza;iRlr_{u~vU^)2ZH98tl1yxZHy^DfQ zD585`J`}5pXiS5udmv{r=4T>P)TsoV16u$dP{Yt@6;G+0D^e_!fC~gSNi3NEt4a}} z6{>1Q9Fmv-)6UBu+^uyGR~i>=i@O8@;A0m4{Yw)vCx*)XR4x>n5P{Vx6}OSVBp?vU z;*NUU!lr1sgK~z3V-W*yKz9w(R2}>ZdWT50^Qr~8-P|rh)dqle5N#8RNfe-!4jgl? zWbsfeMsR`q64kXJeqL;QA)+>T@V0cN0$I}or2~KO!bxVZ*CrY!rzJNX_?YnZ6qC=a z(N74jQ|(Cyd(&MhX0amCKKDI*(RI!2wWWY~DE<)5~ zq~)MqVE_|Nh~)&^)hG`&vK9CniX5P}7m#^<@bhV4d}~h;S9e#DRYd~(2cf54eUq@b zV;hNAyWTb+sXxmit5KB;K|APJ6N}Fu(&s@rTo1`-JW&g1cu( zVQ>P#+H8>35|+INeJ?aM@nv@?g2+p754D!2toJ6d^=>mea$D-b_ZpD71Y`qi2+?E% z8TE;9eH&Z|zY(K@>Zuw|BF7CImn0%6F3v$v0Ho4Q0!Z(G4t^7?+ok+C6JXkwp8K2t oEgJvuID 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

P~uiFYdOg@NF_dn{ITupk0kng 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 oEgJvuID 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

P~uiFYdOg@NF_dn{ITupk0kng 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 Yof#)3D}%{<(;? - - - - - -Terrain Construction for Quake 3 Engine Games - - - - - -

-

  - -Special Thanks to Jim Dosé and Jan Paul van Waveren -for their assistance and review (and making this all work in the first place) -and the same gratitude to Astrocreep for his review and suggestions for making -it into something people could understand.

-

The material here is for use in conjunction with the Q3Radiant manual for the -Quake 3 Engine and presumes familiarity with that tool and game engine. Although -compiling switches and shader commands are included here, this is not intended -to be a general update or revision to the Q3Radiant manual

-

Table of Contents

- -

-1-

- - - - diff --git a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/entries b/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/entries deleted file mode 100644 index 94faaafe..00000000 --- a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/entries +++ /dev/null @@ -1,1082 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Terrain_Manual/pages -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -the_meta_shader.html -file - - - - -2012-04-01T16:52:29.598143Z -7863e0c0b456e8f2fe355b56b52e5b7e -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -4773 - -adding_bots.html -file - - - - -2012-04-01T16:52:29.600143Z -48bc8be5f9a212e61611298cf7a48f76 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1339 - -key_changes.html -file - - - - -2012-04-01T16:52:29.603143Z -255007af41994b3cd67c2fe744cc075e -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2642 - -related_links.html -file - - - - -2012-04-01T16:52:29.605143Z -a4afc479add39134b0fbdd4b8f44750b -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1257 - -boxing_in_the_world.html -file - - - - -2012-04-01T16:52:29.611144Z -ca930f9095817286f24b2036db553cd9 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2096 - -terrain_texture.html -file - - - - -2012-04-01T16:52:29.613144Z -4a0223e571794d1bbbaf5c47bd7ca71c -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2403 - -other_possible_height_map_tools.html -file - - - - -2012-04-01T16:52:29.617144Z -cbdab2216a768fe3083b3e92242fd1b7 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2588 - -height_maps.html -file - - - - -2012-04-01T16:52:29.619144Z -1cecddb7ac0e81b58b8ea0e9f9a65501 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -10023 - -terrain_mesh_into_terrain_entity.html -file - - - - -2012-04-01T16:52:29.657146Z -cfa6cd13302231c99c79f55259e73c04 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1800 - -clipping_the_terrain.html -file - - - - -2012-04-01T16:52:29.643145Z -0be10388e3e35a4e766bcfc522e94703 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2283 - -mapping_the_textures.html -file - - - - -2012-04-01T16:52:29.660146Z -098c6db7a8ea96220ec26cb5b214a6c9 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -3721 - -terrain_entity.html -file - - - - -2012-04-01T16:52:29.665147Z -2371018f123ce9e4e0ababcd7377fd3f -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2229 - -glossary.html -file - - - - -2012-04-01T16:52:29.666147Z -85d820c636168e29bc790eaeb489103e -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1823 - -entity_keys_and_values.html -file - - - - -2012-04-01T16:52:29.677147Z -0d8ca41138b9bfc83e9db550a05b5d32 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -5245 - -adding_buildings_to_terrain.html -file - - - - -2012-04-01T16:52:29.551140Z -583573b09c72f60241f54cca0cbd40c4 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -3869 - -new_or_revised_q3map_shader_comm.html -file - - - - -2012-04-01T16:52:29.553140Z -cc8433e61531ba1090bcae266539a21e -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -17040 - -creating_the_terrain.html -file - - - - -2012-04-01T16:52:29.601143Z -910908608d77bdc45788a59cbc1bb93b -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -3118 - -introduction.html -file - - - - -2012-04-01T16:52:29.607143Z -41c0673454d8294e0449b861ada651ce -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -2248 - -terrain_related_worldspawn_features.html -file - - - - -2012-04-01T16:52:29.609143Z -896886b3b1cdf315ce0ac922cff854c8 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -7846 - -manipulating_the_terrain_mesh.html -file - - - - -2012-04-01T16:52:29.620144Z -ccb406bbfebb5a04e110ee7f3c1293ce -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1580 - -table_of_contents.html -file - - - - -2012-04-01T16:52:29.623144Z -86341bc04f2759693bd2840e635bbc9c -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -3510 - -lighting_the_terrain.html -file - - - - -2012-04-01T16:52:29.655146Z -0934408ea820ce50fa39910042323cd6 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -7265 - -height_map_into_terrain_mesh.html -file - - - - -2012-04-01T16:52:29.659146Z -b2fd58df66284ebf1f937005e08383bf -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1730 - -creating_the_alphamap.html -file - - - - -2012-04-01T16:52:29.663147Z -31be3ad6e6452f60bbb79517b7c9ef48 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -10833 - -suggested_gensurf_settings.html -file - - - - -2012-04-01T16:52:29.668147Z -fe12cc8db710f012314ad76c52ded5e0 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -5386 - -Image3.gif -file - - - - -2012-04-01T16:52:29.672147Z -21a55417e69dda275c48fbc0492d0841 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -46899 - -art_tools.html -file - - - - -2012-04-01T16:52:29.670147Z -193099af318a7d5dc749ba6e9f63e4aa -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -1403 - -Image4.gif -file - - - - -2012-04-01T16:52:29.675147Z -69603e176b566bf9917974a48ffca285 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -24307 - -Image5.gif -file - - - - -2012-04-01T16:52:29.703149Z -7afc45a08c0fbd1ad561c265482c14a5 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -27694 - -Image6.gif -file - - - - -2012-04-01T16:52:29.715149Z -21a55417e69dda275c48fbc0492d0841 -2011-01-20T04:25:31.635016Z -64 -rambetter -has-props - - - - - - - - - - - - - - - - - - - - -46899 - -blocking_vis.html -file - - - - -2012-04-01T16:52:29.705149Z -7cde96b9c64141d26a31f3b062ffb4ab -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -5305 - diff --git a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base b/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image3.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base b/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image4.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base b/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image5.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base b/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/prop-base/Image6.gif.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/Image3.gif.svn-base b/install/installs/ReactionPack/install/docs/Terrain_Manual/pages/.svn/text-base/Image3.gif.svn-base deleted file mode 100644 index fdb98d272da61e4e970315c6ad6fc3bdc5606a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46899 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 - - - - - - \ No newline at end of file diff --git a/install/installs/UFOAIPack/game/.svn/text-base/synapse.config.svn-base b/install/installs/UFOAIPack/game/.svn/text-base/synapse.config.svn-base deleted file mode 100644 index 814e51ce..00000000 --- a/install/installs/UFOAIPack/game/.svn/text-base/synapse.config.svn-base +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - tga jpg - - - pk3 - - - ufoai - - - mapq2 - - - def - - - ufoai - - - md2 - - - - - pk3 - - - - - - ufoai - - - pk3 - - - - - ufoai - - - - - ufoai - - - - - ufoai - - - pk3 - - - diff --git a/install/installs/UFOAIPack/game/game.xlink b/install/installs/UFOAIPack/game/game.xlink deleted file mode 100644 index 963598cc..00000000 --- a/install/installs/UFOAIPack/game/game.xlink +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/install/installs/UFOAIPack/game/synapse.config b/install/installs/UFOAIPack/game/synapse.config deleted file mode 100644 index 814e51ce..00000000 --- a/install/installs/UFOAIPack/game/synapse.config +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - tga jpg - - - pk3 - - - ufoai - - - mapq2 - - - def - - - ufoai - - - md2 - - - - - pk3 - - - - - - ufoai - - - pk3 - - - - - ufoai - - - - - ufoai - - - - - ufoai - - - pk3 - - - diff --git a/install/installs/UFOAIPack/install/.svn/entries b/install/installs/UFOAIPack/install/.svn/entries deleted file mode 100644 index d6257e54..00000000 --- a/install/installs/UFOAIPack/install/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UFOAIPack/trunk/install -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-06-27T14:38:18.221954Z -47 -mattn - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -base -dir - diff --git a/install/installs/UFOAIPack/install/base/.svn/entries b/install/installs/UFOAIPack/install/base/.svn/entries deleted file mode 100644 index 341b39f3..00000000 --- a/install/installs/UFOAIPack/install/base/.svn/entries +++ /dev/null @@ -1,34 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UFOAIPack/trunk/install/base -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-06-27T14:38:18.221954Z -47 -mattn - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -textures -dir - -scripts -dir - diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/entries b/install/installs/UFOAIPack/install/base/scripts/.svn/entries deleted file mode 100644 index 04408b33..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/entries +++ /dev/null @@ -1,198 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UFOAIPack/trunk/install/base/scripts -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-06-27T14:38:18.221954Z -47 -mattn - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -shaderlist.txt -file - - - - -2012-04-01T16:52:23.792811Z -69aedd81000f50d74a7a4e9b6ba83cfa -2008-04-08T16:56:07.761640Z -36 -mattn -has-props - - - - - - - - - - - - - - - - - - - - -18 - -entities.def -file - - - - -2012-04-01T16:52:23.794811Z -2f9fd9c650eaafd6b1b07001aa8fec7c -2008-06-27T14:38:18.221954Z -47 -mattn - - - - - - - - - - - - - - - - - - - - - -6476 - -default_project.proj -file - - - - -2012-04-01T16:52:23.795811Z -f293fa44e01e65bffeaeaf019e78b52d -2008-04-08T16:56:07.761640Z -36 -mattn - - - - - - - - - - - - - - - - - - - - - -4378 - -textures.shader -file - - - - -2012-04-01T16:52:23.923818Z -d5c32d68f98aba9f48449b178df8d473 -2008-06-27T14:38:18.221954Z -47 -mattn - - - - - - - - - - - - - - - - - - - - - -514 - -common.shader -file - - - - -2012-04-01T16:52:23.925818Z -4320e9cffe3e665c096e02c72df5238d -2008-04-08T16:56:07.761640Z -36 -mattn - - - - - - - - - - - - - - - - - - - - - -500 - diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/prop-base/shaderlist.txt.svn-base b/install/installs/UFOAIPack/install/base/scripts/.svn/prop-base/shaderlist.txt.svn-base deleted file mode 100644 index bdbd3051..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/prop-base/shaderlist.txt.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:eol-style -V 6 -native -END diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/common.shader.svn-base b/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/common.shader.svn-base deleted file mode 100644 index eeb9946a..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/common.shader.svn-base +++ /dev/null @@ -1,47 +0,0 @@ -textures/tex_common/actorclip -{ - qer_trans 0.40 - surfaceparm playerclip -} - -textures/tex_common/caulk -{ - qer_trans 0.40 -} - -textures/tex_common/hint -{ - qer_trans 0.40 -} - -textures/tex_common/nodraw -{ - qer_trans 0.40 - surfaceparm nodraw -} - -textures/tex_common/origin -{ - qer_trans 0.40 -} - -textures/tex_common/slick -{ - qer_trans 0.40 -} - -textures/tex_common/stepon -{ - qer_trans 0.40 -} - -textures/tex_common/trigger -{ - qer_trans 0.50 -} - -textures/tex_common/weaponclip -{ - qer_trans 0.40 - surfaceparm botclip -} diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/default_project.proj.svn-base b/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/default_project.proj.svn-base deleted file mode 100644 index 8fdbae95..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/default_project.proj.svn-base +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/entities.def.svn-base b/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/entities.def.svn-base deleted file mode 100644 index 6f6353f3..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/entities.def.svn-base +++ /dev/null @@ -1,164 +0,0 @@ -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Starting point for a player. Only for multiplayer teams. -"team" the number of the team for this player starting point. 0 is reserved for civilians and critters (use info_civilian_start instead) -*/ - - -/*QUAKED info_human_start (0 1 0) (-16 -16 -24) (16 16 32) -Starting point for a single player human. -*/ - - -/*QUAKED info_alien_start (0 0 1) (-16 -16 -24) (16 16 32) -Starting point for a single player alien. -*/ - - -/*QUAKED info_2x2_start (1 1 0) (-32 -32 -24) (32 32 32) -Starting point for a ugv 2x2 units. -"team" the number of the team for this player starting point. Only for multiplayer teams. -*/ - - -/*QUAKED info_civilian_start (0 1 1) (-16 -16 -24) (16 16 32) -Starting point for a civilian. -*/ - - -/*QUAKED misc_model (1 1 0) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 server_solid glow -Displays a model. -Set the level flags correctly! -Use angles [pitch yaw roll] to rotate the model. pitch (up/down [-90 up to 90]), yaw (left/right [0 up to 360]) and roll (fall over) -"model" arbitrary .md2 file to display -"angles" direction of the model [pitch yaw roll] -"angle" direction of the model [yaw] -"skin" skin number (default 0) -"frame" frame number (default 0) - use frame or anim - but not both -"anim" is this an animated model (default empty otherwise fill the animname) -*/ - - -/*QUAKED misc_particle (0 0 1) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 noday -Creates a particle. Particle properties can be set here with a preceding '-' or '+'. -'-' property is set before calling the particle init function -'+' do it afterwards -noday means that the particle is not shown at the day version of the map. E.g. useful for flare particles around streetlight. -Wait times are of the format "a b". It spawns particles in random intervals ranging from (a) to (a+b) seconds. If no wait time is specified one particle is created at map start. -"particle" name of the particle definition -"wait" wait time -*/ - - -/*QUAKED light (0 1 0) (-8 -8 -8) (8 8 8) day -Non-displayed light. All lights are for the night version. If you want them to show up in the day version, too - mark the day flag -"_color" Color for the light RGB -"light" intensity 0-255 -"target" entity target name (info_null) -"_cone" -"origin" -"angle" Special values: UP -1; DOWN -2; -*/ - -/*QUAKED light_spot (0 1 0) (-8 -8 -8) (8 8 8) day -Non-displayed light. All lights are for the night version. If you want them to show up in the day version, too - mark the day flag -"_color" Color for the light RGB -"light" intensity 0-255 -"_cone" -"origin" -"angle" Special values: UP -1; DOWN -2; -*/ - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. -pitch (up/down [-90 up to 90]), yaw (left/right [0 up to 360]) -"maxteams" max. teams for multiplayer -"maxlevel" highest selectable level [1-8] -"light_night" light intensity [e.g. 10 or 100] -"angles_night" light angle [pitch yaw 0] -"color_night" light color (RGB) [0.0-1.0] -"ambient_night" ambient color (RGB) [0.0-1.0] -"light_day" light intensity [e.g. 10 or 100] -"angles_day" light angle [pitch yaw 0] -"color_day" light color (RGB) [0.0-1.0] -"ambient_day" ambient color (RGB) [0.0-1.0] -*/ - -/*QUAKED info_null (0 0.5 0) (-4 -4 -4) (4 4 4) -Used as a positional target for spotlights, etc. -"targetname" target name -*/ - -/*QUAKED info_civilian_target (0.5 0.8 0.1) (-16 -16 -24) (16 16 32) -Used as a target where civilians try to get in a mission -"count" The priority of this waypoint - the lower the number, the nearer the end-target -*/ - -/*QUAKED misc_sound (0.5 1 0.5) (-8 -8 -8) (8 8 8) level1 level2 level3 level4 level5 level6 level7 level8 -Used to play ambient sounds (looped sounds) -"noise" sound file name relative to sound/ambience -"volume" 0 - 128 -*/ - -/*QUAKED misc_mission (0.1 0.6 0.3) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 -Defines a mission target -"particle" display a particle -"time" if set the entity has to be occupied x rounds to win the mission -"radius" if the entity has to be occupied this defines the radius that is needed -"health" if set the entity has to be destroyed to win the mission - otherwise is has just to be reached (see time) -"group" allows you to group mission entities - e.g. you have to occupy them all for x rounds to win the match -"target" the target that is triggered once the round time was hit -"message" a message that is show when the mission is completed -*/ - -/*QUAKED misc_mission_alien (0.1 0.6 0.3) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 -Defines the alien mission target -"particle" display a particle -"time" if set the entity has to be occupied x rounds to win the mission -"radius" if the entity has to be occupied this defines the radius that is needed -"health" if set the entity has to be destroyed to win the mission - otherwise is has just to be reached (see time) -*/ - -/*QUAKED func_door (0 .5 .8) ? level1 level2 level3 level4 level5 level6 level7 level8 opened -"angle" determines the opening direction -"health" if set, door must be shot open -"group" multipart doors can be grouped to open together -"speed" movement speed (100 default) -"wait" wait before returning (3 default, -1 = never return) -"lip" lip remaining at end of move (8 default) -*/ - -/*QUAKED func_group (0 0 0) ? -Only for editor and terrain convenience. -"terrain" -"gensurf" -"phongshading" -*/ - -/*QUAKED func_breakable (0 0 0) ? level1 level2 level3 level4 level5 level6 level7 level8 -"health" damage until destroyed -"particle" particle id -"material" material id MAT_GLASS = 0 (default), MAT_METAL = 1, MAT_ELECTRICAL = 2, MAT_WOOD = 3 -*/ - -/*QUAKED func_rotating (0 0 0) ? level1 level2 level3 level4 level5 level6 level7 level8 -"health" damage until destroyed -"particle" particle id -"speed" rotation speed -"angle" rotate around this angle - pitch = 0, yaw = 1, roll = 2 -*/ - -/*QUAKED trigger_hurt (0 0 0) ? KILL STUN DAZE -Any entity that touches this will be hurt. It does dmg points of damage each server frame -"dmg" default 5 (whole numbers only) -*/ - -/*QUAKED trigger_touch (0 0 0) ? -Any entity that touches this will trigger the use function of the target entity. -"target" target entity (must have its targetname set to the value given here) -*/ - -/*QUAKED misc_item (.3 .3 1) (-16 -16 -16) (16 16 16) --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/assault/assault.md2" -"item" the item to spawn -*/ diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/shaderlist.txt.svn-base b/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/shaderlist.txt.svn-base deleted file mode 100644 index c3b933b2..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/shaderlist.txt.svn-base +++ /dev/null @@ -1,2 +0,0 @@ -common -textures diff --git a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/textures.shader.svn-base b/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/textures.shader.svn-base deleted file mode 100644 index 5d03d1a0..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/.svn/text-base/textures.shader.svn-base +++ /dev/null @@ -1,44 +0,0 @@ -textures/tex_mattn/fence -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate2 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate3 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate4 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/gully -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/tire -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/tire2 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_material/circle_gray -{ - qer_alphafunc gequal 0.5 -} diff --git a/install/installs/UFOAIPack/install/base/scripts/common.shader b/install/installs/UFOAIPack/install/base/scripts/common.shader deleted file mode 100644 index eeb9946a..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/common.shader +++ /dev/null @@ -1,47 +0,0 @@ -textures/tex_common/actorclip -{ - qer_trans 0.40 - surfaceparm playerclip -} - -textures/tex_common/caulk -{ - qer_trans 0.40 -} - -textures/tex_common/hint -{ - qer_trans 0.40 -} - -textures/tex_common/nodraw -{ - qer_trans 0.40 - surfaceparm nodraw -} - -textures/tex_common/origin -{ - qer_trans 0.40 -} - -textures/tex_common/slick -{ - qer_trans 0.40 -} - -textures/tex_common/stepon -{ - qer_trans 0.40 -} - -textures/tex_common/trigger -{ - qer_trans 0.50 -} - -textures/tex_common/weaponclip -{ - qer_trans 0.40 - surfaceparm botclip -} diff --git a/install/installs/UFOAIPack/install/base/scripts/default_project.proj b/install/installs/UFOAIPack/install/base/scripts/default_project.proj deleted file mode 100644 index 8fdbae95..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/default_project.proj +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/UFOAIPack/install/base/scripts/entities.def b/install/installs/UFOAIPack/install/base/scripts/entities.def deleted file mode 100644 index 6f6353f3..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/entities.def +++ /dev/null @@ -1,164 +0,0 @@ -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Starting point for a player. Only for multiplayer teams. -"team" the number of the team for this player starting point. 0 is reserved for civilians and critters (use info_civilian_start instead) -*/ - - -/*QUAKED info_human_start (0 1 0) (-16 -16 -24) (16 16 32) -Starting point for a single player human. -*/ - - -/*QUAKED info_alien_start (0 0 1) (-16 -16 -24) (16 16 32) -Starting point for a single player alien. -*/ - - -/*QUAKED info_2x2_start (1 1 0) (-32 -32 -24) (32 32 32) -Starting point for a ugv 2x2 units. -"team" the number of the team for this player starting point. Only for multiplayer teams. -*/ - - -/*QUAKED info_civilian_start (0 1 1) (-16 -16 -24) (16 16 32) -Starting point for a civilian. -*/ - - -/*QUAKED misc_model (1 1 0) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 server_solid glow -Displays a model. -Set the level flags correctly! -Use angles [pitch yaw roll] to rotate the model. pitch (up/down [-90 up to 90]), yaw (left/right [0 up to 360]) and roll (fall over) -"model" arbitrary .md2 file to display -"angles" direction of the model [pitch yaw roll] -"angle" direction of the model [yaw] -"skin" skin number (default 0) -"frame" frame number (default 0) - use frame or anim - but not both -"anim" is this an animated model (default empty otherwise fill the animname) -*/ - - -/*QUAKED misc_particle (0 0 1) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 noday -Creates a particle. Particle properties can be set here with a preceding '-' or '+'. -'-' property is set before calling the particle init function -'+' do it afterwards -noday means that the particle is not shown at the day version of the map. E.g. useful for flare particles around streetlight. -Wait times are of the format "a b". It spawns particles in random intervals ranging from (a) to (a+b) seconds. If no wait time is specified one particle is created at map start. -"particle" name of the particle definition -"wait" wait time -*/ - - -/*QUAKED light (0 1 0) (-8 -8 -8) (8 8 8) day -Non-displayed light. All lights are for the night version. If you want them to show up in the day version, too - mark the day flag -"_color" Color for the light RGB -"light" intensity 0-255 -"target" entity target name (info_null) -"_cone" -"origin" -"angle" Special values: UP -1; DOWN -2; -*/ - -/*QUAKED light_spot (0 1 0) (-8 -8 -8) (8 8 8) day -Non-displayed light. All lights are for the night version. If you want them to show up in the day version, too - mark the day flag -"_color" Color for the light RGB -"light" intensity 0-255 -"_cone" -"origin" -"angle" Special values: UP -1; DOWN -2; -*/ - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. -pitch (up/down [-90 up to 90]), yaw (left/right [0 up to 360]) -"maxteams" max. teams for multiplayer -"maxlevel" highest selectable level [1-8] -"light_night" light intensity [e.g. 10 or 100] -"angles_night" light angle [pitch yaw 0] -"color_night" light color (RGB) [0.0-1.0] -"ambient_night" ambient color (RGB) [0.0-1.0] -"light_day" light intensity [e.g. 10 or 100] -"angles_day" light angle [pitch yaw 0] -"color_day" light color (RGB) [0.0-1.0] -"ambient_day" ambient color (RGB) [0.0-1.0] -*/ - -/*QUAKED info_null (0 0.5 0) (-4 -4 -4) (4 4 4) -Used as a positional target for spotlights, etc. -"targetname" target name -*/ - -/*QUAKED info_civilian_target (0.5 0.8 0.1) (-16 -16 -24) (16 16 32) -Used as a target where civilians try to get in a mission -"count" The priority of this waypoint - the lower the number, the nearer the end-target -*/ - -/*QUAKED misc_sound (0.5 1 0.5) (-8 -8 -8) (8 8 8) level1 level2 level3 level4 level5 level6 level7 level8 -Used to play ambient sounds (looped sounds) -"noise" sound file name relative to sound/ambience -"volume" 0 - 128 -*/ - -/*QUAKED misc_mission (0.1 0.6 0.3) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 -Defines a mission target -"particle" display a particle -"time" if set the entity has to be occupied x rounds to win the mission -"radius" if the entity has to be occupied this defines the radius that is needed -"health" if set the entity has to be destroyed to win the mission - otherwise is has just to be reached (see time) -"group" allows you to group mission entities - e.g. you have to occupy them all for x rounds to win the match -"target" the target that is triggered once the round time was hit -"message" a message that is show when the mission is completed -*/ - -/*QUAKED misc_mission_alien (0.1 0.6 0.3) (-16 -16 -16) (16 16 16) level1 level2 level3 level4 level5 level6 level7 level8 -Defines the alien mission target -"particle" display a particle -"time" if set the entity has to be occupied x rounds to win the mission -"radius" if the entity has to be occupied this defines the radius that is needed -"health" if set the entity has to be destroyed to win the mission - otherwise is has just to be reached (see time) -*/ - -/*QUAKED func_door (0 .5 .8) ? level1 level2 level3 level4 level5 level6 level7 level8 opened -"angle" determines the opening direction -"health" if set, door must be shot open -"group" multipart doors can be grouped to open together -"speed" movement speed (100 default) -"wait" wait before returning (3 default, -1 = never return) -"lip" lip remaining at end of move (8 default) -*/ - -/*QUAKED func_group (0 0 0) ? -Only for editor and terrain convenience. -"terrain" -"gensurf" -"phongshading" -*/ - -/*QUAKED func_breakable (0 0 0) ? level1 level2 level3 level4 level5 level6 level7 level8 -"health" damage until destroyed -"particle" particle id -"material" material id MAT_GLASS = 0 (default), MAT_METAL = 1, MAT_ELECTRICAL = 2, MAT_WOOD = 3 -*/ - -/*QUAKED func_rotating (0 0 0) ? level1 level2 level3 level4 level5 level6 level7 level8 -"health" damage until destroyed -"particle" particle id -"speed" rotation speed -"angle" rotate around this angle - pitch = 0, yaw = 1, roll = 2 -*/ - -/*QUAKED trigger_hurt (0 0 0) ? KILL STUN DAZE -Any entity that touches this will be hurt. It does dmg points of damage each server frame -"dmg" default 5 (whole numbers only) -*/ - -/*QUAKED trigger_touch (0 0 0) ? -Any entity that touches this will trigger the use function of the target entity. -"target" target entity (must have its targetname set to the value given here) -*/ - -/*QUAKED misc_item (.3 .3 1) (-16 -16 -16) (16 16 16) --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons/assault/assault.md2" -"item" the item to spawn -*/ diff --git a/install/installs/UFOAIPack/install/base/scripts/shaderlist.txt b/install/installs/UFOAIPack/install/base/scripts/shaderlist.txt deleted file mode 100644 index c3b933b2..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/shaderlist.txt +++ /dev/null @@ -1,2 +0,0 @@ -common -textures diff --git a/install/installs/UFOAIPack/install/base/scripts/textures.shader b/install/installs/UFOAIPack/install/base/scripts/textures.shader deleted file mode 100644 index 5d03d1a0..00000000 --- a/install/installs/UFOAIPack/install/base/scripts/textures.shader +++ /dev/null @@ -1,44 +0,0 @@ -textures/tex_mattn/fence -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate2 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate3 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/grate4 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/gully -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/tire -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_mattn/tire2 -{ - qer_alphafunc gequal 0.5 -} - -textures/tex_material/circle_gray -{ - qer_alphafunc gequal 0.5 -} diff --git a/install/installs/UFOAIPack/install/base/textures/.svn/entries b/install/installs/UFOAIPack/install/base/textures/.svn/entries deleted file mode 100644 index ca4a305b..00000000 --- a/install/installs/UFOAIPack/install/base/textures/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UFOAIPack/trunk/install/base/textures -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-04-08T16:56:07.761640Z -36 -mattn - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -radiant -dir - diff --git a/install/installs/UFOAIPack/install/base/textures/radiant/.svn/entries b/install/installs/UFOAIPack/install/base/textures/radiant/.svn/entries deleted file mode 100644 index 41b74851..00000000 --- a/install/installs/UFOAIPack/install/base/textures/radiant/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UFOAIPack/trunk/install/base/textures/radiant -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2008-04-08T16:56:07.761640Z -36 -mattn - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -notex.tga -file - - - - -2012-04-01T16:52:23.446791Z -16de2fa54c8e431e8b3e58bbea0b98ca -2008-04-08T16:56:07.761640Z -36 -mattn -has-props - - - - - - - - - - - - - - - - - - - - -1583 - diff --git a/install/installs/UFOAIPack/install/base/textures/radiant/.svn/prop-base/notex.tga.svn-base b/install/installs/UFOAIPack/install/base/textures/radiant/.svn/prop-base/notex.tga.svn-base deleted file mode 100644 index c7caa918..00000000 --- a/install/installs/UFOAIPack/install/base/textures/radiant/.svn/prop-base/notex.tga.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 11 -image/x-tga -END diff --git a/install/installs/UFOAIPack/install/base/textures/radiant/.svn/text-base/notex.tga.svn-base b/install/installs/UFOAIPack/install/base/textures/radiant/.svn/text-base/notex.tga.svn-base deleted file mode 100644 index 07f1a23f9b314f612440323853550b21860ccfd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1583 zcmc&zF-`+P3^Xk-pvV{C4QYaO5&{VV;yahS06|IrERSTZZXrv3(J#YnFB^(%|SE2!#&zSfGbRIFZ$dx83 z)O1dP>(JrERSTZZXrv3(J#YnFB^(%|SE2!#&zSfGbRIFZ$dx83 z)O1dP>(J - - - - diff --git a/install/installs/UrTPack/game/.svn/text-base/synapse.config.svn-base b/install/installs/UrTPack/game/.svn/text-base/synapse.config.svn-base deleted file mode 100644 index ff1199ea..00000000 --- a/install/installs/UrTPack/game/.svn/text-base/synapse.config.svn-base +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - tga jpg - - - pk3 - - - quake3 - - - mapq3 - - - def - - - quake3 - - - - - pk3 - - - - - - quake3 - - - pk3 - - - - - quake3 - - - - - quake3 - - - - - quake3 - - - pk3 - - - diff --git a/install/installs/UrTPack/game/game.xlink b/install/installs/UrTPack/game/game.xlink deleted file mode 100644 index cdfb1541..00000000 --- a/install/installs/UrTPack/game/game.xlink +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/install/installs/UrTPack/game/synapse.config b/install/installs/UrTPack/game/synapse.config deleted file mode 100644 index ff1199ea..00000000 --- a/install/installs/UrTPack/game/synapse.config +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - tga jpg - - - pk3 - - - quake3 - - - mapq3 - - - def - - - quake3 - - - - - pk3 - - - - - - quake3 - - - pk3 - - - - - quake3 - - - - - quake3 - - - - - quake3 - - - pk3 - - - diff --git a/install/installs/UrTPack/install/.svn/entries b/install/installs/UrTPack/install/.svn/entries deleted file mode 100644 index ee0d74ad..00000000 --- a/install/installs/UrTPack/install/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UrTPack/trunk/install -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2010-11-13T23:04:13.354040Z -62 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -q3ut4 -dir - diff --git a/install/installs/UrTPack/install/q3ut4/.svn/entries b/install/installs/UrTPack/install/q3ut4/.svn/entries deleted file mode 100644 index 3a9460e5..00000000 --- a/install/installs/UrTPack/install/q3ut4/.svn/entries +++ /dev/null @@ -1,65 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UrTPack/trunk/install/q3ut4 -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2010-11-13T23:04:13.354040Z -62 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -scripts -dir - -common-spog.pk3 -file - - - - -2012-04-01T16:52:21.983707Z -701fbd19e1e21c7ed16813bd873ddd80 -2008-02-25T04:16:05.872914Z -29 -timo -has-props - - - - - - - - - - - - - - - - - - - - -28724 - diff --git a/install/installs/UrTPack/install/q3ut4/.svn/prop-base/common-spog.pk3.svn-base b/install/installs/UrTPack/install/q3ut4/.svn/prop-base/common-spog.pk3.svn-base deleted file mode 100644 index 5e9587e6..00000000 --- a/install/installs/UrTPack/install/q3ut4/.svn/prop-base/common-spog.pk3.svn-base +++ /dev/null @@ -1,5 +0,0 @@ -K 13 -svn:mime-type -V 24 -application/octet-stream -END diff --git a/install/installs/UrTPack/install/q3ut4/.svn/text-base/common-spog.pk3.svn-base b/install/installs/UrTPack/install/q3ut4/.svn/text-base/common-spog.pk3.svn-base deleted file mode 100644 index 3696bbb3a99438155a6cfec8abdea5fb23f56735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28724 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 DIfxnv diff --git a/install/installs/UrTPack/install/q3ut4/common-spog.pk3 b/install/installs/UrTPack/install/q3ut4/common-spog.pk3 deleted file mode 100644 index 3696bbb3a99438155a6cfec8abdea5fb23f56735..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28724 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 DIfxnv diff --git a/install/installs/UrTPack/install/q3ut4/scripts/.svn/entries b/install/installs/UrTPack/install/q3ut4/scripts/.svn/entries deleted file mode 100644 index d4c2ca98..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/.svn/entries +++ /dev/null @@ -1,198 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/UrTPack/trunk/install/q3ut4/scripts -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2010-11-13T23:04:13.354040Z -62 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -shaderlist.txt -file - - - - -2012-04-01T16:52:21.300668Z -bcd31508b9bb05f51bb22b367e05548a -2010-11-13T23:04:13.354040Z -62 -rambetter - - - - - - - - - - - - - - - - - - - - - -1382 - -entities.def -file - - - - -2012-04-01T16:52:21.303668Z -b86083ec3cc3c2510eee738b0b8ed5e0 -2008-02-28T02:41:10.414863Z -31 -timo - - - - - - - - - - - - - - - - - - - - - -139167 - -urbanterror.def -file - - - - -2012-04-01T16:52:21.304668Z -cd2ed0b20a912aac0ad3377689a5789d -2008-02-28T02:41:10.414863Z -31 -timo - - - - - - - - - - - - - - - - - - - - - -26331 - -default_project.proj -file - - - - -2012-04-01T16:52:21.948705Z -41ffbae04c2afc49a0717704c8f64c95 -2008-03-02T21:36:00.138753Z -33 -timo - - - - - - - - - - - - - - - - - - - - - -6452 - -common.shader -file - - - - -2012-04-01T16:52:21.949705Z -59dee7ed6e9c6fe07f8e1770c5141d3a -2008-04-20T19:24:12.107896Z -42 -timo - - - - - - - - - - - - - - - - - - - - - -5299 - diff --git a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/common.shader.svn-base b/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/common.shader.svn-base deleted file mode 100644 index 1cd1fe40..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/common.shader.svn-base +++ /dev/null @@ -1,321 +0,0 @@ - -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip -} - -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm clusterportal -} - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm nodamage -} - -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm donotenter -} - - -// never used -// -//textures/common/energypad -//{ -// qer_editorimage textures/sfx/bluegoal.tga -// surfaceparm nolightmap -// cull twosided -// { -// map textures//bluegoal.tga -// blendFunc GL_ONE GL_SRC_ALPHA -// tcGen environment -// tcMod turb 0 0.25 0 0.05 -// } -//} - -textures/common/full_clip // silly shader, use weapclip instead -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/hint // should NOT use surfaceparm hint.. strange but true -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm hint // ydnar: yes it should. -} - -textures/common/invisible // solid, transparent polygons, casts shadows -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/mirror1.tga - surfaceparm nolightmap - portal - - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } - -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip - surfaceparm trans -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nolightmap - surfaceparm nodraw -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm nodrop -} - - -textures/common/noimpact -{ - qer_editorimage textures/common/nolightmap.tga - surfaceparm noimpact -} - -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm origin -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - tcMod turb 0 0.25 0 0.05 - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - - } -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks -} - -textures/common/metalclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - diff --git a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/default_project.proj.svn-base b/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/default_project.proj.svn-base deleted file mode 100644 index d43aa7ab..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/default_project.proj.svn-base +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/entities.def.svn-base b/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/entities.def.svn-base deleted file mode 100644 index ed7260c6..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/entities.def.svn-base +++ /dev/null @@ -1,1747 +0,0 @@ -// Quake3 Arena entity definition file for Q3Radiant -// Based on draft by Suicide 20 7.30.99 and inolen 9-3-99 -// Upgraded by Eutectic: eutectic@ritualistic.com -// (visible models added by raYGunn - paths provided by Suicide 20) -// (terrain information added to func_group entity by Paul Jaquays) -// Q3Map2 entitys/keys added by ydnar -// Version: 1.6 -// Last updated: 2003-11-28 - -//============================================================================= - -// Q3Map2 entities - -//============================================================================= - -/*QUAKED _decal (0 1.0 0) ? --------- KEYS -------- -"target" : the name of the entity targetted at for projection --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a decal to be projected. Should contain 1 or more patch meshes (curves) and target an info_null entity. The distance between the center of the _decal entity and the target is the axis and distance of projection. -*/ - -/*QUAKED _skybox (0.77 0.88 1.0) (-4 -4 -4) (4 4 4) --------- 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. --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a the origin of a skybox (a wholly contained, seperate area of the map), similar to some games' portal skies. When compiled with Q3Map2, the skybox 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. -*/ - - -//============================================================================= - -AMMO_* ENTITIES - -//============================================================================= - -/*QUAKED ammo_bfg (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -BFG ammo. Gives the player 15 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 15). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/bfgam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_bullets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun ammo. Gives the player 50 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/machinegunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_cells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma Gun ammo. Gives the player 30 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/plasmaam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_grenades (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/grenadeam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_lightning (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun ammo. Gives the player 60 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 60). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/lightningam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_rockets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/rocketam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_shells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/shotgunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_slugs (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/railgunam.md3"*/ - -//============================================================================= - -FUNC_* ENTITIES - -//============================================================================= - -/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS -Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked. --------- KEYS -------- -speed : amount of time in seconds for one complete oscillation cycle (default 4). -height : sets the amount of travel of the oscillation movement (default 32). -phase : sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav - See Notes). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of sound and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will bob along the X axis. -Y_AXIS : entity will bob along the Y axis. --------- NOTES -------- -In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_button (0 .5 .8) ? -When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again. --------- KEYS -------- -angle : determines the direction in which the button will move (up = -1, down = -2). -target : all entities with a matching targetname will be triggered. -speed : speed of button's displacement (default 40). -wait : number of seconds button stays pressed (default 1, -1 = return immediately). -lip : lip remaining at end of move (default 4 units). -health : (default 0) if set to any non-zero value, the button must take damage (any amount) to activate. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER -Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it. --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately) -lip : lip remaining at end of move (default 8) -targetname : if set, a func_button or trigger is required to activate the door. -health : (default 0) if set to any non-zero value, the button must take damage (any amount) to activate. -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -team: assign the same team name to multiple doors that should operate together (see Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way. --------- NOTES -------- -Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_group (0 .5 .8) ? -This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this. --------- OLD TERRAIN KEYS (note: obsolete with Q3Map2) -------- -alphamap : this is the path/name for the art file used to guide the mapping of textures on the terrain surface. -layers : this integer value is the number unique root shaders that will be use on the terrain. -shader : this is the path to the metashader used to assign textures to the terrain entity. -terrain : this is an on/off flag. When set to 1, the entity becomes a terrain entity. Note: unecessary when compiling with Q3Map2. See Q3Map2 keys. --------- Q3MAP2 KEYS -------- -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.*/ - -//============================================================================= - -/*QUAKED func_pendulum (0 .5 .8) ? -Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum instantly kills a player. --------- KEYS -------- -angle : angle offset of axis of rotation from default X axis (default 0). -speed : angle of swing arc in either direction from initial position (default 30). -phase : sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_plat (0 .5 .8) ? -Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. There are no proper sounds for this entity, only beep noises. It will spawn in the game and work properly but it sounds silly (see Notes). --------- KEYS -------- -speed : determines how fast the plat moves (default 150). -lip : lip remaining at end of move (default 16). Has no effect if "height" is set. -height : if set, this will determine the total amount of vertical travel of the plat. -dmg : damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked. -targetname : if set, the trigger that points to this will raise the plat each time it fires. The plat raises and comes back down a second later if no player is on it. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS -Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable. --------- KEYS -------- -speed : determines how fast entity rotates (default 100). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will rotate along the X axis. -Y_AXIS : entity will rotate along the Y axis. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_static (0 .5 .8) ? -Static non-solid bspmodel. Can be used for conditional walls and models. --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -targetname : NOT SUPPORTED BY RENDERER - if set, a func_button or trigger can make entity disappear from the game (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: it will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static. - -Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON -Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off. --------- KEYS -------- -wait : delay in seconds between each triggering of its targets (default 1). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -target : this points to the entities to trigger. -targetname : a func_button or trigger that points to this will toggle the timer on/off when activated. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_ON : timer will start on in the game and continuously fire its targets. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED func_train (0 .5 .8) ? -Trains are moving solids that follow a string of path_corner entities. Trains in Q3A are very basic, they also require an origin brush (see Notes). --------- KEYS -------- -speed : speed of displacement of train (default 100 or overridden by speed value of path). -target : this points to the first path_corner of the path which is also the spawn location of the train's origin. -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -1. Trains always start on in the game. -2. Trains do not damage the played when blocked. -3. Trains cannot emit sound. -4. Trains are not triggerable or toggle-able. -5. Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it. - -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -HOLDABLE_* ENTITIES - -//============================================================================= - -/*QUAKED holdable_medkit (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Medkit that can be picked up and used later. Brings the player's health back to 100 when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/medkit.md3"*/ - -//============================================================================= - -/*QUAKED holdable_teleporter (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Teleporter item that can be picked up and used later. Teleports the player to a random player spawn point when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/teleporter.md3"*/ - -//============================================================================= - -INFO_* ENTITIES - -//============================================================================= - -/*QUAKED info_camp (0 .5 0) (-8 -8 -8) (8 8 8) -This atttracts bots which have a camping preference in their AI characteristics. It should be placed at least 32 units away from any brush surface. --------- KEYS -------- -range : number of units that the bot can move away from camp entity while camping on it. -weight : number that is compared against the weight assigned to all the other camp spots in the map to determine if a bot chooses to camp there. The value is normalized against all other weight values. --------- NOTES -------- -Examples of bots which have a high camping preference are: Razor, Tank Jr., Grunt, Patriot and Doom. Examples of bots which have a low camping preference are: Klesk, Mynx, Sarge, Keel and Xaero.*/ - -//============================================================================= - -/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_player_deathmatch (1 0 1) (-16 -16 -24) (16 16 32) INITIAL -Normal player spawning location for Q3A levels. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. Does not apply to bots. -target : this can point at a target_give entity for respawn freebies. -nobots : when set to 1, bots will never use this spawn point to respawn in the game. -nohumans : when set to 1, human players will never use this spawn point to respawn in the game. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -INITIAL : makes the spawnpoint the initial place for the player to spawn at the beginning of the game.*/ - -//============================================================================= - -/*QUAKED info_player_intermission (1 0 1) (-16 -16 -16) (16 16 16) -Camera for intermission screen between matches. This also automatically generates the podium for bot arena matches (see Notes). Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level. --------- KEYS -------- -angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0). -target : point this to an info_notnull or target_position entity to set the camera's pointing angles. --------- NOTES -------- -In genuine bot arena matches, the podium for the 1st, 2nd and 3rd place players at the end of the match is generated by this entity. The podium's origin will automatically be located 128 units in the direction of the camera's view and 84 units down from the y height of the view line at that point. It will also always be generated on a level plane regardless of the pointing angle of the camera so if that angle is too steep, part of the podium model might not be visible. Make sure you leave at least 106 units of free space in front of where the camera points to otherwise the podium model won't be visible at all.*/ - -//============================================================================= - -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Player spawn location. It works in Quake III Arena, but it is not used in the Id maps. Use info_player_deathmatch instead. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -//QUAKED info_spectator_start (1 0 0) (-16 -16 -24) (16 16 32) -//Spectator spawn location. Doesn't appear to work in game. Commented out. -//-------- KEYS -------- -//notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - -//============================================================================= - -ITEM_* ENTITIES - -//============================================================================= - -/*QUAKED item_armor_body (.6 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Red Armor - 100 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_red.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_combat (1 .75 .3) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow Armor - 50 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_yel.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_shard (0 .7 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green Armor Shard - 5 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/shard.md3"*/ - -//============================================================================= - -/*QUAKED item_botroam (1 0.5 0) (-8 -8 -8) (8 8 8) SUSPENDED -Game Function: An invisible entity which attracts a bot to it. Use to move bots to parts of a map that might otherwise not be used (NEW ENTITY). --------- KEYS -------- -weight: non-zero floating point value, most often in the range 0 to 400. (Higher values are allowed but keep in mind that the bot should also be attracted to normal items. Don't make the weight value too high. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The item_botroam entity can be used when a bot does not roam the whole level or prefers to go to only specific areas. This (invisible) item can be placed in a map just like regular items. Nobody can actually pick up the item it's only used to attract bots to certain places of the map. The value is the weight of the roam_item is relative to the weight assigned other items in the map (each bot has its own weights). The bot character specific item weights are stored with the bot characters AI files ("botname"_i.c for items and "botname"_w.c for weapons) in the botfiles/bots/ sub-folder in the .pk3 file.*/ - -//============================================================================= - -/*QUAKED item_enviro (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Battle Suit power-up - Gives protection against slime, lava and weapon splash damage. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/enviro.md3"*/ - -//============================================================================= - -/*QUAKED item_flight (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Flight power-up. Lasts 60 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 60). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/flight.md3"*/ - -//============================================================================= - -/*QUAKED item_haste (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Speed power-up. Makes player run at double speed for 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/haste.md3"*/ - -//============================================================================= - -/*QUAKED item_health (.8 .8 0) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow cross bubble - 25 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 25). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/medium_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_large (1 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Gold cross bubble - 50 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/large_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_mega (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Blue M bubble - 100 Health. Adds 100 health points to current health up to a maximum of 200. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/mega_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_small (0 1 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green cross bubble - 5 Health. Can be picked up over 100 health but slowly wears out to 100 afterwards. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/small_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_invis (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Invisibility power-up. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/invis.md3"*/ - -//============================================================================= - -/*QUAKED item_quad (.4 .6 1) (-16 -16 -16) (16 16 16) SUSPENDED -Quad Damage power-up. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -model="models/powerups/instant/quad.md3"*/ - -//============================================================================= - -/*QUAKED item_regen (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Health Regeneration power-up. This will boost your current health by 5 points every second for a period of up to 30 seconds or up to 200 points whichever comes first. Afterwards, any health points over 100 slowly wears out to 100. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/regen.md3"*/ - -//============================================================================= - -LIGHT ENTITY - -//============================================================================= - - -/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light: overrides the default 300 intensity. -_color : weighted RGB value of light color (default white - 1.0 1.0 1.0). -target : Lights pointed at a target will be spotlights. -radius: overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting).*/ - -/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light: overrides the default 300 intensity. -_color : weighted RGB value of light color (default white - 1.0 1.0 1.0). -target : Lights pointed at a target will be spotlights. -radius: overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -MISC_* ENTITIES - -//============================================================================= - -/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) -Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported. --------- KEYS -------- -angle: direction in which model will be oriented. -model : path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3). --------- Q3MAP2 KEYS -------- -angles : Individual control of PITCH, YAW, and ROLL (default 0 0 0). -modelscale : Floating-point value used to scale a model up or down (default 1.0). -modelscale_vec : Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0). -_remap : Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new". -target : Used to attach the misc_model to a brush entity, where its "targetname" key is the same value. -_lightmapscale : Floating point value scaling the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. -*/ - -//============================================================================= - -/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE -Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle. -target : point this to a target_position entity to set the camera's pointing direction. -targetname : a misc_portal_surface portal surface indicator must point to this. -roll: roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SLOWROTATE : makes the portal camera rotate slowly along the roll axis. -FASTROTATE : makes the portal camera rotate faster along the roll axis. --------- NOTES -------- -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.*/ - -//============================================================================= - -/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8) -Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera that this entity targets. Also used for mirrors (see Notes). --------- KEYS -------- -target : point this to a misc_portal_camera that "sees" the view you want to display on the portal. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.*/ - -//============================================================================= - -/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16) -Teleport destination location point for trigger_teleporter entities. --------- KEYS -------- -angle : direction in which player will look when teleported. -targetname : make the trigger_teleporter point to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -PATH_* ENTITIES - -//============================================================================= - -/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) -Path corner entity that func_trains can be made to follow. --------- KEYS -------- -target : point to next path_corner in the path. -targetname : the train following the path or the previous path_corner in the path points to this. -speed : speed of func_train while moving to the next path corner. This will override the speed value of the train. -wait : number of seconds func_train will pause on path corner before moving to next path corner (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -Setting the wait key to -1 will not make the train stop on the path corner, it will simply default to 0.*/ - -//============================================================================= - -SHOOTER_* ENTITIES - -//============================================================================= - -/*QUAKED shooter_grenade (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a grenade each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the grenades. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_plasma (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a plasma ball each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the plasma balls. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_rocket (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a rocket each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the rockets. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -TARGET_* ENTITIES - -//============================================================================= - -/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8) -Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -wait : delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1). -delay : same as wait? replaces it? WTF?...I'm confused now. -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_give (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to give ammo, weapons, health or items to the player who activates it. --------- KEYS -------- -target : this points to the item(s) to give when activated. -targetname : activating trigger or spawn entity points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -There are 2 ways to use this entity. -a) automatically give items to players when they spawn in the game: make a spawn location entity like info_player_deathmatch or CTF respawn points target this entity, then make it target the item(s) to give to the player upon respawn. -b) give items to players during the game: make a trigger_multiple target this entity, then make it target the item(s) to give to the player when the trigger is touched.*/ - -//============================================================================= - -/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8) -This will kill the player who activates the trigger that fires this target. --------- KEYS -------- -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -//QUAKED target_laser (0 .5 0) (-8 -8 -8) (8 8 8) START_ON -//Generates a red laser beam. I think this can somehow spawn in the game, I saw it once but it's too inconsistent to be usable. Commented out. -//-------- KEYS -------- -//angles: alternate "pitch, yaw, roll" angles method of aiming laser (default 0 0 0). -//target : point this to a target_position entity to set the laser's aiming direction. -//targetname : the activating trigger points to this. -//notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -//-------- SPAWNFLAGS -------- -//START_ON : when set, the laser will start on in the game. - -//============================================================================= - -/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8) -Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used. --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. - 0 : white (default) - 1 : red - 2 : green - 3 : yellow - 4 : blue - 5 : cyan - 6 : magenta - 7 : white -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) -Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular. --------- KEYS -------- -targetname : the entity that requires an aiming direction points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.*/ - -//============================================================================= - -/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) REDTEAM BLUETEAM PRIVATE -This will print a message on the center of the screen when triggered. By default, all the clients will see the message. --------- KEYS -------- -message : text string to print on screen. -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -REDTEAM : only the red team players will see the message. -BLUETEAM : only the blue team players will see the message. -PRIVATE : only the player that activates the target will see the message.*/ - -//============================================================================= - -/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) BOUNCEPAD -This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply. -speed : speed of push (default 1000). Has no effect if entity targets an aiming entity. -targetname : the activating trigger points to this. Push originates from the location of the trigger. -target : this points to the aiming entity to which the player will jump. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -BOUNCEPAD : if set, trigger will play bounce noise instead of beep noise when activated (recommended). --------- NOTES -------- -To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.*/ - -//============================================================================= - -/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM -This can only be activated by other triggers which will cause it in turn to activate its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -RED_ONLY : only red team players can activate trigger. -BLUE_ONLY : only red team players can activate trigger. -RANDOM : one one of the targeted entities will be triggered at random.*/ - -//============================================================================= - -/*QUAKED target_remove_powerups (0 .7 .7) (-8 -8 -8) (8 8 8) -This takes away any and all item_* type powerups from player except health and armor (holdable_* items are not taken away either). Must be activated by a button or trigger_multiple entity. The player that activates the trigger will lose any powerup(s) currently in his possession. --------- KEYS -------- -targetname : activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_score (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to automatically give frag points to the player who activates this. A spawn location entity like info_player_* or CTF respawn points can target this entity to give points to the player when he spawns in the game. Or a trigger can also be used to activate this. The activator of the trigger will get the points. --------- KEYS -------- -targetname : ativating entity points to this. -count: number of frag points to give to player (default 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8) -Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events. --------- KEYS -------- -targetname : activating trigger points to this. -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -TEAM_* ENTITIES - -//============================================================================= - -/*QUAKED team_CTF_blueflag (0 .2 1) (-16 -16 -16) (16 16 16) -Blue team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/b_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_blueplayer (0 .2 1) (-16 -16 -24) (16 16 32) -Initial Blue team spawning position for CTF games. This is where players spawn when they join the Blue team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_bluespawn (0 .2 1) (-16 -16 -24) (16 16 32) -Blue team respawning position for CTF games. This is where Blue team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redflag (1 .2 0) (-16 -16 -16) (16 16 16) -Red team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/r_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_redplayer (1 .2 0) (-16 -16 -24) (16 16 32) -Initial Red team spawning position for CTF games. This is where players spawn when they join the Red team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redspawn (0 .2 1) (-16 -16 -24) (16 16 32) -Red team respawning position for CTF games. This is where Red team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -TRIGGER_* ENTITIES - -//============================================================================= - -/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8) -Automatic trigger. It will fire the entities it targets as soon as it spawns in the game. --------- KEYS -------- -target : this points to the entity to activate. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF - SILENT NO_PROTECTION SLOW -Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt. --------- KEYS -------- -dmg : number of points of damage inflicted to player per server frame (default 5 - integer values only). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OFF needs to be triggered (toggle) for damage -SILENT : supresses the sizzling sound while player is being hurt. -NO_PROTECTION : player will be hurt regardless of protection (see Notes). -SLOW : changes the damage rate to once per second. --------- NOTES -------- -The invulnerability power-up (item_enviro) does not protect the player from damage caused by this entity regardless of whether the NO_PROTECTION spawnflag is set or not. Triggering a trigger_hurt will have no effect if the START_OFF spawnflag is not set. A trigger_hurt always starts on in the game.*/ - -//============================================================================= - -/*QUAKED trigger_multiple (.5 .5 .5) ? -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetname : activating trigger points to this. -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED trigger_push (.5 .5 .5) ? -This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted. --------- KEYS -------- -target : this points to the target_position to which the player will jump. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.*/ - -//============================================================================= - -/*QUAKED trigger_teleport (.5 .5 .5) ? -Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events. --------- KEYS -------- -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -WEAPON_* ENTITIES - -//============================================================================= - -/*QUAKED weapon_bfg (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Big Freaking Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 20). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/bfg/bfg.md3"*/ - -//============================================================================= - -/*QUAKED weapon_gauntlet (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Gauntlet. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/gauntlet/gauntlet.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grapplinghook (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grappling Hook. Spawns in the game and works but is unskinned. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grapple/grapple.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grenadelauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grenadel/grenadel.md3"*/ - -//============================================================================= - -/*QUAKED weapon_lightning (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\lightning\lightning.md3"*/ - -//============================================================================= - -/*QUAKED weapon_machinegun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\machinegun\machinegun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_plasmagun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/plasma/plasma.md3"*/ - -//============================================================================= - -/*QUAKED weapon_railgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/railgun/railgun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_rocketlauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/rocketl/rocketl.md3"*/ - -//============================================================================= - -/*QUAKED weapon_shotgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/shotgun/shotgun.md3"*/ - -//============================================================================= - -WORLDSPAWN ENTITY - -//============================================================================= - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -_ambient OR ambient : Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color (default is 0 0 0). -gravity : gravity of level (default is normal gravity: 800). -gridsize : granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps. -_blocksize : q3map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Default _blocksize value is 1024. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density. --------- Q3MAP2 KEYS -------- -_minlight : Minimum light value, levelwide. Uses the _color key to set color. Does not add unlike ambient. -_minvertexlight : Minimum vertex lighting, levelwide. -_mingridlight : Minimum lightgrid (dynamic entity lighting) levelwide. -_keeplights : Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase. -_noshadersun : Ignore q3map_sun/sun directives in sky shaders and ONLY use entity sun lights. -_farplanedist : Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps. -_foghull : Shader to use for "fog hull." Foghull shader should be a sky shader. Omit the "textures/" prefix. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in the world. Can be overridden in func_group (or other entities) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. Overridable in entities. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.*/ diff --git a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/shaderlist.txt.svn-base b/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/shaderlist.txt.svn-base deleted file mode 100644 index 96437de8..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/shaderlist.txt.svn-base +++ /dev/null @@ -1,150 +0,0 @@ -common -27s -abbey -abbey2 -abbey2ctf -algiers -allbsps -ammo -austria -autoclip -backhoe -base_floor -base_light -base_support -bbq -bbq2 -bbq7 -bbqshaders -bk -blood -bloodnew -bombexp -box15 -box293 -box337 -br_flowers -br_flowers_tub -br_trees -casa_lamp -cave -cel -codey1 -coinbird01 -cow -cow2 -crenshaw_vehicles -crossing -crystal -damage -decal -defcon_tree -density -eagle -eaglesky -eagle_water -egypt -engine_internal -flame -fogcaulk -foliage -foliage2 -funstuff -gfx -glass -goggleglass -gothic_light -GRtrees -hair -harbortown -jeffladderclip -kingdom2 -landscapelighting -LGPT-Models -lightgrid -liquid -liquids -masheen -masheen_sky -mayac -mayaorganicc -mayaterc -mc-uptown -metals -mirror -miscb3 -models -mrsentry -newnvg -nrgizer -null_beach -numbers -oldtruck -palms -palmtree -patio -prop_bubbles -qura -rc_glass -realworld_light -riches -riches_alpha -riches_alpha_bk -riches_light -riches_skies -riva -riyadh_lamp -roman_armor -sarah -scopering -scopes -sfx -sggatec -shminkylights -sinnifunstuff -sky -sky_thingley -sn_smoke -streetlamp -sweetnutz -sweetnutz3 -swim -tom -toxic2sky -toxiclight -toxicscripts -toxicsky -toxic_water -true_fence -tunis -tunis_sky -turnpike -urbanq3_misc2 -urban_terror -urban_terror_light -ut4_firingrange -ut4_suburbs -utfx -utplayers -ut_elgin -ut_prague -ut_riyadh -ut_riyadh_lm -ut_subway -ut_subway2 -ut_swim -ut_trees1 -vdocks -village2 -watercaulk -weapon -weapondecals -wuxut1 -xguns -zmultiplant -zzzzlaberinto2 -zzzzut_casadd -zzzzz_sanc -zzz_sanc -z_newbh -z_nvg diff --git a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/urbanterror.def.svn-base b/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/urbanterror.def.svn-base deleted file mode 100644 index d78faf67..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/.svn/text-base/urbanterror.def.svn-base +++ /dev/null @@ -1,437 +0,0 @@ -//================================================================================= -// Urban Terror beta3.2 entities.def for QERadiant -//================================================================================= - -// This file contains the entities for use in Urban Terror maps. They will only work -// with the Urban Terror mod. - - - -//================================================================================= -// Structural entities (doors, breakables, etc.) -//================================================================================= - -// * * * * * * * * - -/*QUAKED func_button (0 .5 .8) ? -When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again. - --------- KEYS -------- -angle : determines the direction in which the button will move (up = -1, down = -2). -target : all entities with a matching targetname will be triggered. -speed : speed of button's displacement (default 40). -wait : number of seconds button stays pressed (default 1, -1 = return immediately). -lip : lip remaining at end of move (default 4 units). -health : if set to a non-zero value, the button must be damaged by "health" amount of points to operate. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -push_sound : sound that gets played when button gets pushed ("none" for nothing, defaults to a elevator Q3 sound) - --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ -*/ - -// * * * * * * * * - -/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER -Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it. - --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately) -lip : lip remaining at end of move (default 8) -targetname : if set, a func_button or trigger is required to activate the door. -health : if set to a non-zero value, the door must be damaged by "health" amount of points to activate (default 0). -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -team: assign the same team name to multiple doors that should operate together (see Notes). -only : set to allow only one team to use this entity, used for CTF or other respawn type modes to create spawn rooms. Values: blue or red - Default: anyone -CloseWhenIdle: when set to 1, the door will close as soon as there are no players in the triggering brush (For CTF Spawn Room doors, SEE NOTES!) -trigger_only : set to 1 if the door can only be opened by a switch or trigger (ie: prevents a player from opening it manually) -pos1 : sound to play when door starts moving ("none" for nothing, defaults to a creak) -pos2 : sound to play when door stops moving ("none" for nothing, defaults to a creak) -noise : looping sound as door is moving -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way. - --------- NOTES -------- -- To use the CloseWhenIdle setting for CTF Spawn Room doors, you must also set trigger_only, and use a trigger_multiple to open the door. This will cause the door to remain open only as long as a player is in the triggering brush. Set the 'wait' key on the trigger_multiple to a very low value( < 1 like .25 ) -- Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ -*/ - -// * * * * * * * * - -/*QUAKED func_rotating_door (1 0 0) ? - --------- KEYS -------- -pos1 : sound to play when door starts moving ("none" for nothing, defaults to a creak) -pos2 : sound to play when door stops moving ("none" for nothing, defaults to a creak) -noise : looping sound to play as door is moving (defaults to no sound) -targetname : name of a target to trigger when door opens -color : constantLight color -light : constantLight radius -direction : force door to open in a set direction: -1 is clockwise, 1 is ccw -speed : defaults to 100, speed at which door opens -wait : how long to wait until door auto-closes (default is 0, which means stay open) -trigger_only : set to 1 if the door can only be opened by a switch or trigger(ie: prevents a player from opening it manually) -axis : door rotation axis, values: 0 (for x-axis), 1(for y-axis), 2(for z-axis) (if not given, default is 2 for z-axis) -damage : damage door does to a player if they block it (leave out in most cases) -gamemode_open : gametypes to have the door locked in the open position -gamemode_shut : gametypes to have the door locked in the closed position -only : set to allow only one team to use this entity, used for CTF or other respawn type modes to create spawn rooms. Values: blue or red - Default: anyone - --------- NOTES -------- -Rotating doors cannot be shot open, and will only close or open if activated -by a player. They will not automatically close after a period either. In -game modes not listed under either gamemode_open or gamemode_shut, the doors -will open and close normally. - -You construct a rotating door just like a FUNC_ROTATING: it needs an origin -brush to act as the hinge. - -Urban Terror gametype mappings are: -Free For All 0 -Single Player 1 -Team Deathmatch 3 -Team Survivor 4 -Assasins 5 -Capture And Hold 6 -Capture The Flag 7 -Bomb 8 -*/ - -// * * * * * * * * - -/*QUAKED func_breakable (0 .5 .8) ? -A breakable thing just sits there, doing nothing, -but will break if damaged or collided with. - --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -color : constantLight color -light : constantLight radius -type : 0: glass 1: wood 2: ceramic 3: plastic 4: metal-normal 5: metal-explosives 6: metal-hk69 7: stone-explosives 8: stone-hk69 9: wood-explosives 10: wood-hk69(SEE NOTES) -axis : 1 - x, 2 - y, 4 - z -health : health of object -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -shards : number of shards object should shatter into (0-255) -bombable : allows the entity to be destroyed by the bomb in bomb mode. The size of blast shown when the entity breaks is determined by this value (Values : 1 none - 255 huge blast). - --------- NOTES -------- - - For glass windows that break easily, set health to 1. - - Any func_breakable with a health of less than 10 will slowly weaken if a player is in contact with it. You can make a roof that collapses in after a period of time by setting the health to a value like 5. This will mean that a player standing on such a surface for around 5 seconds will fall thru. The effect is cumulative: if you stand there for 3 seconds and then come back you can only stand on it for another 2 seconds. - - The type parameter selects the shader that is used for fragments and sets the sound the object makes when it breaks. - - If the brush you are making is on an angle (for example, a skylight in a sloping roof) then you will need to set the break axis to "4" if you want it to break when people stand on it. - - You can build anything to break using the breakables. Use the model2 key to create things like breakable pots -- see Wetwired's map "ricochet" for an example. - - Set shards as high as you want (it maxes out at 32 anyway) - players can reduce the number of shards they see using cg_maxFragments - - Bombable key is to be used for things that can only be broken by the Bomb Mode bomb explosion. For example a large propane tank near a bomb target. The key's value will determine the size of the explosion graphics from this entity when broken, with a value of 1 being no explosion and a value of 255 being a large secondary blast. - - Type values info for 1,2,3,4 - The game will attenuate the damage caused by each hit to a value of 1-3. Health values above 10 will choose a random health between 6 and 10. Specifics are as follows: 0: is for glass/windows 1: is for all woods 2: is for ceramics and pottery 3: is for various plastics 4: is for metal that can be broken by normal means - - Type values info for 5,6,7,8,9,10 - The game will use the literal health value compared to the weapon damages. They should be set quite high (metals and stone at 50+). Specifics are as follows: 5: is for metal that requires explosives to break (HE grenade or hk69) 6: is for metal that requires the hk69 to break 7: is for stone that requires explosives to break (HE grenade or hk69) 8: is for stone that requires the hk69 to break 9: is for wood that requires explosives to break (HE grenade or hk69) 10: is for wood that requires the hk69 to break -*/ - -// * * * * * * * * - -/*QUAKED func_wall (0 .5 .8) ? - --------- KEYS -------- -gametype : gametypes to have the wall appear in, list types in this format: 01234 (default none) - --------- NOTES -------- -This entity is any brush or combination of brushes that you wish to have appear in gametypes specified. -Common uses are to cut of map sections to streamline gameplay for TS, or to expand the map for CTF or Bomb. -You cannot use a model as a func_wall. - -Create your brush(es), select it (or them), then make them a func_wall and set gametype keys. - -Urban Terror gametype mappings are: -Free For All 0 -Single Player 1 -Team Deathmatch 3 -Team Survivor 4 -Assasins 5 -Capture And Hold 6 -Capture The Flag 7 -Bomb 8 -*/ - -// * * * * * * * * - -//================================================================================= -// Train entities (Anything that has anything to do with the func_ut_train) -//================================================================================= - -// * * * * * * * * - -/*QUAKED func_ut_train (.6 .1 .8) ? START_ON TOGGLE BLOCK_STOPS CRUSHER -A train is a mover that moves between path_ut_stop target points. - --------- KEYS -------- -model2 : .md3 model to also draw -name : to associate with a set of control buttons -noise : looping sound to play when the train is in motion -color : constantLight color -light : constantLight radius -speed : default 350 -dmg : default 0 -target : first path_ut_stop, train spawns here -interface : the targetname of the func_keyboard_interface that belongs to this train -id : to uniquely associate it with a set of control buttons -startSound : sound to play when train begins moving to a new destination -stopSound : sound to play when train arrives at a final stop -noise : constant looping sound to always be playing where the train is - --------- NOTES -------- -- Trains MUST HAVE AN ORIGIN BRUSH. -- The train spawns at the first target it is pointing at. -- The train will move to any stop from any stop. See the description for the func_keyboard_interface for more info. - -*/ - -// * * * * * * * * - -/*QUAKED func_keyboard_interface (.5 .6 .5) ? -keyboard menu interface - --------- KEYS -------- -display : if 0, menu is not dispayed, if 1, menu is displayed, default 1 -id : id of the func_ut_train that this interface associates with -targetname : id for the func_ut_train key "interface" to associate it with the right func_ut_train -option1 : text message to describe the first destination -option2 : text message to describe the second destination -option3 : text message to describe the third destination -option4 : text message to describe the fourth destination -option5 : text message to describe the five destination -stop1 : targetname of first destination -stop2 : targetname of second destination -stop3 : targetname of third destination -stop4 : targetname of fourth destination -stop5 : targetname of fifth destination -stop2from1 : beginning of path from 1 to 2 -stop3from1 : beginning of path from 1 to 3 -stop4from1 : beginning of path from 1 to 4 -stop5from1 : beginning of path from 1 to 5 -stop1from2 : beginning of path from 2 to 1 -stop3from2 : beginning of path from 2 to 3 -stop4from2 : beginning of path from 2 to 4 -stop5from2 : beginning of path from 2 to 5 -stop1from3 : beginning of path from 3 to 1 -stop2from3 : beginning of path from 3 to 2 -stop4from3 : beginning of path from 3 to 4 -stop5from3 : beginning of path from 3 to 5 -stop1from4 : beginning of path from 4 to 1 -stop2from4 : beginning of path from 4 to 2 -stop3from4 : beginning of path from 4 to 3 -stop5from4 : beginning of path from 4 to 5 -stop1from5 : beginning of path from 5 to 1 -stop2from5 : beginning of path from 5 to 2 -stop3from5 : beginning of path from 5 to 3 -stop4from5 : beginning of path from 5 to 4 - --------- NOTES -------- -- All the stopXfromY (where X and Y are numbers) should target a path_ut_stop -- The stopX keys (where X is a number) should target the ending path_ut_stop, i.e. the last stop at location X. -- The optionX keys (where X is a number) corresponds to the stopX keys. So if you set the name "top floor" for option1, make sure that stop1 actually is at the "top floor" -*/ - -// * * * * * * * * - -/*QUAKED path_ut_stop (.5 .3 0) (-8 -8 -8) (8 8 8) -Train path stops. - --------- KEYS -------- -target : next path stop and other targets to fire -trainID : the id of the train that this stop is for -wait : the amount of time train should wait at this stop, default is 0 -rotationTime : the amount of time (in milleseconds) that the train should rotate for at this stop according to yawSpeed, pitchSpeed, and rollSpeed -yawSpeed : the speed of yaw rotation that the train will do once at this stop for rotationTime amound of milleseconds -pitchSpeed : the speed of pitch rotation that the train will do once at this stop for rotationTime amound of milleseconds -rollSpeed : the speed of roll rotation that the train will do once at this stop for rotationTime amound of milleseconds - --------- NOTES -------- -- Pitch and roll doesn't work very well right now because of the collision handling of Q3. This makes it hard to make things that the player is supposed to ride work properly. Trial and error would probably be the best method to find out what works and what doesn't. -- You can have the path_ut_stop trigger almost anything. For example, you could use it to open a door or to trigger a func_button. -*/ - -// * * * * * * * * - -//============================================================================= -// Active entities (Non-structural, trigger type entities) -//============================================================================= - -// * * * * * * * * - -/*QUAKED trigger_multiple (.5 .5 .5) ? -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetname : activating trigger points to this. -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once SEE NOTES). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -only : set to allow only one team to use this entity, used for CTF or other respawn type modes to create spawn rooms. Values: blue or red - Default: anyone -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -- Set the 'wait' key to .25 if using the CloseWhenIdle key when triggering a door -- When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -*/ - -// * * * * * * * * - -//================================================================================= -// Gametype entities (Special UT gametype entities) -//================================================================================= - -// * * * * * * * * - -/*QUAKED info_ut_spawn (1 .5 0) (-16 -16 -24) (16 16 32) initial -potential spawning position for Urban Terror. - --------- KEYS -------- -team : team that this spawn belongs to ("red" or "blue") -group : this spawn groups with others of same groupID. A team chooses spawns from a certain group. -g_gametype : a list of gametypes on which to use this spawn eg: "4, 5, 6" - --------- NOTES -------- -Urban Terror gametype mappings are: -Free For All 0 -Single Player 1 -Team Deathmatch 3 -Team Survivor 4 -Assasins 5 -Capture And Hold 6 -Capture The Flag 7 -Bomb 8 - -You'd use the groups key in maps if you wanted to make sure a team will spawn together in a certain location, -so you might take 8 spawn points, give them all gametypes of "3,4,5,6,7" (all teamplays) and then assign all -the eight a group id of "1" then you might do another eight and make their group id all "2". UT will choose a -"group" at the begining of a round and spawn all members of "team" there. Normally you'd have at few groups -of spawns so you could have lots of potential team starting positions. -*/ - -// * * * * * * * * - -/*QUAKED team_CAH_capturepoint (0 .2 1) (-32 -32 -16) (32 32 76) -zone that can be captured in the Capture and Hold gametype (CAH) - --------- NOTES -------- -The capture point will be represented with a flag and a player must touch the flag to capture it. -The name of the location of the capturepoint will be retrieved from either the trigger_location or the nearest target_location. -*/ - -//--------------------------------------------------------------------------------- -// Bomb Mode! -//--------------------------------------------------------------------------------- - -/*QUAKED info_ut_bombsite (0 .2 1) (-16 -16 -24) (16 16 32) - --------- NOTES -------- -This entity cannot hover, it must be placed directly on the surface that you wish the bomb to be placed on. -NEW in 3.2: Bomb plant range is locked to 64 units. Once the bomb is planted, it will snap to the center of the entity -for easier diffusing. -WARNING: You MUST have 2 bomb sites per map or the map will crash upon loading into bomb mode. -*/ - -// * * * * * * * * - -//================================================================================= -// Misc entities (Everything that didn't fit in anywhere else) -//================================================================================= - -// * * * * * * * * - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. - --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -ambient : Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color. -gravity : gravity of level (default is normal gravity: 800). -enablePrecip : 0 - (default) none, 1 - rain, 2 - snow -precipAmount : up to 1024, number of drops/flakes (256 is good) -*/ - -// * * * * * * * * - -/*QUAKED trigger_location (1 1 0) ? - - -Speicifes the name of a location when the player is within this trigger. - --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. -Attacking_Team : For Bomb Mode ONLY - when set to 1, the BLUE team will be the attacker, set to 0 if you want the RED team to attack. Default 0 (RED is Attacker) -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - --------- NOTES -------- -The values for the colors that can be set in the count key are as follows: - -0 : white (default) -1 : red -2 : green -3 : yellow -4 : blue -5 : cyan -6 : magenta -7 : white -*/ - -// * * * * * * * * - -/*QUAKED ut_mrsentry (1 .5 0) (-16 -16 -24) (16 16 32) -Spawn location for the CTF Spawn Room Sentry Cannon. - --------- KEYS -------- -team : Team that Mr. Sentry belongs to. Will eliminate opposing team members within range (SEE NOTES). ("red" or "blue") -angle : Inital and idle angle for the turret. Generally point this at or near the Spawn Room doors for highest effectiveness. -gametype : gametypes to have Mr. Sentry appear in, list types in this format: 01234 - --------- NOTES -------- -Mr. Sentry is designed to be used in conjunction with CTF Spawn Rooms (see the Notes on the func_door entity) to prevent enemy team players from surviving if they enter the opposing team's spawn room. Even though the properly set up doors will generally prevent this, Mr. Sentry also has one other function. It will kill any Flag Carrier that enters it's range no matter what team that player is on. This will prevent players from grabbing the flag and retreating the the complete safety of their Spawn Room and waiting out the rest of the map time with the flag. - -For the anti-flag-camp feature to work properly, the entire spawn room must be enclosed with a 'nodrop' (a brush with the 'nodrop' texture on all sides). If this brush (or group of brushes) isn't placed, then Mr. Sentry will kill the Flag Carrier, and the flag will remain at that location, which is bad. -*/ - -// * * * * * * * * - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -gametype : Specifies gametypes to play the sound in. If this key is not used, sound will play in all gametypes. List types in this format: 01234 -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -*/ - -// * * * * * * * * diff --git a/install/installs/UrTPack/install/q3ut4/scripts/common.shader b/install/installs/UrTPack/install/q3ut4/scripts/common.shader deleted file mode 100644 index 1cd1fe40..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/common.shader +++ /dev/null @@ -1,321 +0,0 @@ - -textures/common/areaportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm nomarks - surfaceparm areaportal -} - -textures/common/caulk -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/clip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip -} - -textures/common/clusterportal -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm clusterportal -} - -textures/common/cushion -{ - qer_nocarve - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks - surfaceparm nodamage -} - -textures/common/donotenter -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm donotenter -} - - -// never used -// -//textures/common/energypad -//{ -// qer_editorimage textures/sfx/bluegoal.tga -// surfaceparm nolightmap -// cull twosided -// { -// map textures//bluegoal.tga -// blendFunc GL_ONE GL_SRC_ALPHA -// tcGen environment -// tcMod turb 0 0.25 0 0.05 -// } -//} - -textures/common/full_clip // silly shader, use weapclip instead -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm playerclip -} - -textures/common/hint // should NOT use surfaceparm hint.. strange but true -{ - qer_nocarve - qer_trans 0.30 - surfaceparm nodraw - surfaceparm nonsolid - surfaceparm structural - surfaceparm trans - surfaceparm noimpact - surfaceparm hint // ydnar: yes it should. -} - -textures/common/invisible // solid, transparent polygons, casts shadows -{ - surfaceparm nolightmap - { - map textures/common/invisible.tga - alphaFunc GE128 - depthWrite - rgbGen vertex - } -} - -textures/common/mirror1 -{ - qer_editorimage textures/common/mirror1.tga - surfaceparm nolightmap - portal - - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - - - -} - -textures/common/mirror2 -{ - qer_editorimage textures/common/qer_mirror.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - } - { - map textures/sfx/mirror.tga - blendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR - } - -} - -textures/common/missileclip -{ - qer_trans 0.40 - surfaceparm nodamage - surfaceparm nomarks - surfaceparm nodraw - //surfaceparm nonsolid - surfaceparm playerclip - surfaceparm trans -} - -textures/common/nodraw -{ - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks -} - -textures/common/nodrawnonsolid -{ - surfaceparm nonsolid - surfaceparm nolightmap - surfaceparm nodraw -} - -textures/common/nodrop -{ - qer_nocarve - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm nodrop -} - - -textures/common/noimpact -{ - qer_editorimage textures/common/nolightmap.tga - surfaceparm noimpact -} - -textures/common/nolightmap -{ - surfaceparm nolightmap -} - -textures/common/origin -{ - qer_nocarve - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm origin -} - -textures/common/portal -{ - qer_editorimage textures/common/qer_portal.tga - surfaceparm nolightmap - portal - { - map textures/common/mirror1.tga - tcMod turb 0 0.25 0 0.05 - blendfunc GL_ONE GL_ONE_MINUS_SRC_ALPHA - depthWrite - - } -} - -textures/common/slick -{ - qer_trans 0.50 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks - surfaceparm trans - surfaceparm slick -} - -textures/common/terrain -{ - q3map_terrain - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nomarks -} - -textures/common/terrain2 -{ - q3map_terrain - qer_editorimage textures/common/terrain.tga - surfaceparm dust - surfaceparm nodraw - surfaceparm nomarks - surfaceparm nolightmap -} - -textures/common/timportal -{ - qer_editorimage textures/common/qer_portal.tga - portal - surfaceparm nolightmap - { - map textures/common/portal.tga - tcMod turb 0 0.25 0 0.05 - blendFunc GL_ONE GL_SRC_ALPHA - depthWrite - } -} - -textures/common/trigger -{ - qer_trans 0.50 - qer_nocarve - surfaceparm nodraw -} - -textures/common/weapclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm trans - surfaceparm nomarks -} - -textures/common/metalclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm playerclip - surfaceparm metalsteps -} - -textures/common/botclip -{ - qer_trans 0.40 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm trans - surfaceparm nomarks - surfaceparm noimpact - surfaceparm botclip -} - -// -// ydnar q3map lightgrid bounds -// -// the min/max bounds of brushes with this shader in a map -// will define the bounds of the map's lightgrid (model lighting) -// note: make it as small as possible around player space -// to minimize bsp size and compile time -// - -textures/common/lightgrid -{ - qer_trans 0.5 - surfaceparm nodraw - surfaceparm nolightmap - surfaceparm nonsolid - surfaceparm detail - surfaceparm nomarks - surfaceparm trans - surfaceparm lightgrid -} - diff --git a/install/installs/UrTPack/install/q3ut4/scripts/default_project.proj b/install/installs/UrTPack/install/q3ut4/scripts/default_project.proj deleted file mode 100644 index d43aa7ab..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/default_project.proj +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/install/installs/UrTPack/install/q3ut4/scripts/entities.def b/install/installs/UrTPack/install/q3ut4/scripts/entities.def deleted file mode 100644 index ed7260c6..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/entities.def +++ /dev/null @@ -1,1747 +0,0 @@ -// Quake3 Arena entity definition file for Q3Radiant -// Based on draft by Suicide 20 7.30.99 and inolen 9-3-99 -// Upgraded by Eutectic: eutectic@ritualistic.com -// (visible models added by raYGunn - paths provided by Suicide 20) -// (terrain information added to func_group entity by Paul Jaquays) -// Q3Map2 entitys/keys added by ydnar -// Version: 1.6 -// Last updated: 2003-11-28 - -//============================================================================= - -// Q3Map2 entities - -//============================================================================= - -/*QUAKED _decal (0 1.0 0) ? --------- KEYS -------- -"target" : the name of the entity targetted at for projection --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a decal to be projected. Should contain 1 or more patch meshes (curves) and target an info_null entity. The distance between the center of the _decal entity and the target is the axis and distance of projection. -*/ - -/*QUAKED _skybox (0.77 0.88 1.0) (-4 -4 -4) (4 4 4) --------- 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. --------- SPAWNFLAGS -------- -(none) --------- NOTES -------- -Compiler-only entity that specifies a the origin of a skybox (a wholly contained, seperate area of the map), similar to some games' portal skies. When compiled with Q3Map2, the skybox 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. -*/ - - -//============================================================================= - -AMMO_* ENTITIES - -//============================================================================= - -/*QUAKED ammo_bfg (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -BFG ammo. Gives the player 15 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 15). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/bfgam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_bullets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun ammo. Gives the player 50 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/machinegunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_cells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma Gun ammo. Gives the player 30 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/plasmaam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_grenades (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/grenadeam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_lightning (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun ammo. Gives the player 60 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 60). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/lightningam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_rockets (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher ammo. Gives the player 5 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/rocketam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_shells (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/shotgunam.md3"*/ - -//============================================================================= - -/*QUAKED ammo_slugs (.3 .3 1) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun ammo. Gives the player 10 by default. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/ammo/railgunam.md3"*/ - -//============================================================================= - -FUNC_* ENTITIES - -//============================================================================= - -/*QUAKED func_bobbing (0 .5 .8) ? X_AXIS Y_AXIS -Solid entity that oscillates back and forth in a linear motion. By default, it will have an amount of displacement in either direction equal to the dimension of the brush in the axis in which it's bobbing. Entity bobs on the Z axis (up-down) by default. It can also emit sound if the "noise" key is set. Will crush the player when blocked. --------- KEYS -------- -speed : amount of time in seconds for one complete oscillation cycle (default 4). -height : sets the amount of travel of the oscillation movement (default 32). -phase : sets the start offset of the oscillation cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav - See Notes). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of sound and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will bob along the X axis. -Y_AXIS : entity will bob along the Y axis. --------- NOTES -------- -In order for the sound to be emitted from the entity, it is recommended to include a brush with an origin shader at its center, otherwise the sound will not follow the entity as it moves. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_button (0 .5 .8) ? -When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again. --------- KEYS -------- -angle : determines the direction in which the button will move (up = -1, down = -2). -target : all entities with a matching targetname will be triggered. -speed : speed of button's displacement (default 40). -wait : number of seconds button stays pressed (default 1, -1 = return immediately). -lip : lip remaining at end of move (default 4 units). -health : (default 0) if set to any non-zero value, the button must take damage (any amount) to activate. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER -Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it. --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately) -lip : lip remaining at end of move (default 8) -targetname : if set, a func_button or trigger is required to activate the door. -health : (default 0) if set to any non-zero value, the button must take damage (any amount) to activate. -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -team: assign the same team name to multiple doors that should operate together (see Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way. --------- NOTES -------- -Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_group (0 .5 .8) ? -This is not an entity as such. It is strictly an editor utility to group world brushes and patches together for convenience (selecting, moving, copying, etc). You cannot group entities with this. --------- OLD TERRAIN KEYS (note: obsolete with Q3Map2) -------- -alphamap : this is the path/name for the art file used to guide the mapping of textures on the terrain surface. -layers : this integer value is the number unique root shaders that will be use on the terrain. -shader : this is the path to the metashader used to assign textures to the terrain entity. -terrain : this is an on/off flag. When set to 1, the entity becomes a terrain entity. Note: unecessary when compiling with Q3Map2. See Q3Map2 keys. --------- Q3MAP2 KEYS -------- -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -The TAB key can be used to flip through the component pieces of a selected func_group entity, isolating individual components. To make a func_group into a terrain entity, refer to the Terrain Construction documentation.*/ - -//============================================================================= - -/*QUAKED func_pendulum (0 .5 .8) ? -Solid entity that describes a pendulum back and forth rotation movement. Rotates on the X axis by default. Pendulum frequency is a physical constant based on the length of the beam and gravity. Blocking the pendulum instantly kills a player. --------- KEYS -------- -angle : angle offset of axis of rotation from default X axis (default 0). -speed : angle of swing arc in either direction from initial position (default 30). -phase : sets the start offset of the swinging cycle. Values must be 0 < phase < 1. Any integer phase value is the same as no offset (default 0). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/jets/jets01.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. Pendulum will rotate along the X axis by default. Very crude operation: pendulum cannot rotate along Z axis, the speed of swing (frequency) is not adjustable. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_plat (0 .5 .8) ? -Rising platform the player can ride to reach higher places. Plats must always be drawn in the raised position, so they will operate and be lighted correctly but they spawn in the lowered position. The plat will stay in the raised position until the player steps off. There are no proper sounds for this entity, only beep noises. It will spawn in the game and work properly but it sounds silly (see Notes). --------- KEYS -------- -speed : determines how fast the plat moves (default 150). -lip : lip remaining at end of move (default 16). Has no effect if "height" is set. -height : if set, this will determine the total amount of vertical travel of the plat. -dmg : damage to inflict on player when he blocks operation of plat (default 4). Plat will reverse direction when blocked. -targetname : if set, the trigger that points to this will raise the plat each time it fires. The plat raises and comes back down a second later if no player is on it. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -By default, the total amount of vertical travel of a platform is implicitly determined by the overall vertical size of the brushes of which it's made minus the lip value. But if the "height" key is used, then the total amount of vertical travel of the plat will be exactly that value regardless of the shape and size of the plat and regardless of the value of the "lip" key. Using the "height" key is the best method for any kind of platforms and the only possible one for thin plats which need to travel vertical distances many times their own thickness. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -There is a way to make plats play proper sounds. Just create a sound\movers\plats folder under baseq3 and put 2 sounds named pt1_strt.wav and pt1_end.wav in it. Those can be the renamed sounds from the Q2 plats or renamed copies of the sound\movers\doors sounds you can extract from your pak0.pk3 file or new custom sounds if you're up to it. Thanks to Fragzilla for the tip. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_rotating (0 .5 .8) ? - - X_AXIS Y_AXIS -Solid entity that rotates continuously. Rotates on the Z axis by default and requires an origin brush. It will always start on in the game and is not targetable. --------- KEYS -------- -speed : determines how fast entity rotates (default 100). -noise : path/name of .wav file to play. Use looping sounds only (eg. sound/world/drone6.wav). -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of entity's rotation axis and .md3 model included with entity (default "0 0 0" - See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- SPAWNFLAGS -------- -X_AXIS : entity will rotate along the X axis. -Y_AXIS : entity will rotate along the Y axis. --------- NOTES -------- -You need to have an origin brush as part of this entity. The center of that brush will be the point through which the rotation axis passes. Setting the origin key is simply an alternate method to using an origin brush. It will rotate along the Z axis by default. You can check either the X_AXIS or Y_AXIS box to change that. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_static (0 .5 .8) ? -Static non-solid bspmodel. Can be used for conditional walls and models. --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/bitch/fembotbig.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -targetname : NOT SUPPORTED BY RENDERER - if set, a func_button or trigger can make entity disappear from the game (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. If a model is included with a targeted func_static, the brush(es) of the entity will be removed from the game but the .md3 model won't: it will automatically be moved to the (0 0 0) world origin so you should NOT include an .md3 model to a targeted func_static. - -Because the map has only a single bot navigation file, func_static's cannot be used to make significant changes in game play flow between differing game types. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -/*QUAKED func_timer (0 .5 .8) (-8 -8 -8) (8 8 8) START_ON -Time delay trigger that will continuously fire its targets after a preset time delay. The time delay can also be randomized. When triggered, the timer will toggle on/off. --------- KEYS -------- -wait : delay in seconds between each triggering of its targets (default 1). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -target : this points to the entities to trigger. -targetname : a func_button or trigger that points to this will toggle the timer on/off when activated. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_ON : timer will start on in the game and continuously fire its targets. --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED func_train (0 .5 .8) ? -Trains are moving solids that follow a string of path_corner entities. Trains in Q3A are very basic, they also require an origin brush (see Notes). --------- KEYS -------- -speed : speed of displacement of train (default 100 or overridden by speed value of path). -target : this points to the first path_corner of the path which is also the spawn location of the train's origin. -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of the train's brush(es) and .md3 model included with entity (See Notes). -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- Q3MAP2 KEYS -------- -_targetname : Used to attach a misc_model entity to this entity. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in this entity (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix. --------- NOTES -------- -1. Trains always start on in the game. -2. Trains do not damage the played when blocked. -3. Trains cannot emit sound. -4. Trains are not triggerable or toggle-able. -5. Trains cannot be block-stopped just by getting in their way, the player must be wedged between the train and another obstacle to block it. - -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value. - -Target this entity with a misc_model to have the model attached to the entity (set the model's "target" key to the same value as this entity's "targetname").*/ - -//============================================================================= - -HOLDABLE_* ENTITIES - -//============================================================================= - -/*QUAKED holdable_medkit (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Medkit that can be picked up and used later. Brings the player's health back to 100 when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/medkit.md3"*/ - -//============================================================================= - -/*QUAKED holdable_teleporter (.7 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Teleporter item that can be picked up and used later. Teleports the player to a random player spawn point when used. Player can only carry one holdable item at a time. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 60, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/holdable/teleporter.md3"*/ - -//============================================================================= - -INFO_* ENTITIES - -//============================================================================= - -/*QUAKED info_camp (0 .5 0) (-8 -8 -8) (8 8 8) -This atttracts bots which have a camping preference in their AI characteristics. It should be placed at least 32 units away from any brush surface. --------- KEYS -------- -range : number of units that the bot can move away from camp entity while camping on it. -weight : number that is compared against the weight assigned to all the other camp spots in the map to determine if a bot chooses to camp there. The value is normalized against all other weight values. --------- NOTES -------- -Examples of bots which have a high camping preference are: Razor, Tank Jr., Grunt, Patriot and Doom. Examples of bots which have a low camping preference are: Klesk, Mynx, Sarge, Keel and Xaero.*/ - -//============================================================================= - -/*QUAKED info_notnull (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for entities that can use directional pointing. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_null (0 .5 0) (-8 -8 -8) (8 8 8) -Used as a positional target for light entities to create a spotlight effect. A target_position can be used instead of this but was kept in Q3A for legacy purposes. --------- KEYS -------- -targetname : must match the target key of entity that uses this for pointing. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED info_player_deathmatch (1 0 1) (-16 -16 -24) (16 16 32) INITIAL -Normal player spawning location for Q3A levels. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. Does not apply to bots. -target : this can point at a target_give entity for respawn freebies. -nobots : when set to 1, bots will never use this spawn point to respawn in the game. -nohumans : when set to 1, human players will never use this spawn point to respawn in the game. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -INITIAL : makes the spawnpoint the initial place for the player to spawn at the beginning of the game.*/ - -//============================================================================= - -/*QUAKED info_player_intermission (1 0 1) (-16 -16 -16) (16 16 16) -Camera for intermission screen between matches. This also automatically generates the podium for bot arena matches (see Notes). Can be aimed by setting the "angles" key or targeting an pointing to an aiming entity. Use only one per level. --------- KEYS -------- -angles: alternate "pitch, yaw, roll" angles method of aiming intermission camera (default 0 0 0). -target : point this to an info_notnull or target_position entity to set the camera's pointing angles. --------- NOTES -------- -In genuine bot arena matches, the podium for the 1st, 2nd and 3rd place players at the end of the match is generated by this entity. The podium's origin will automatically be located 128 units in the direction of the camera's view and 84 units down from the y height of the view line at that point. It will also always be generated on a level plane regardless of the pointing angle of the camera so if that angle is too steep, part of the podium model might not be visible. Make sure you leave at least 106 units of free space in front of where the camera points to otherwise the podium model won't be visible at all.*/ - -//============================================================================= - -/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 32) -Player spawn location. It works in Quake III Arena, but it is not used in the Id maps. Use info_player_deathmatch instead. --------- KEYS -------- -angle : direction in which player will look when spawning in the game. -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -//QUAKED info_spectator_start (1 0 0) (-16 -16 -24) (16 16 32) -//Spectator spawn location. Doesn't appear to work in game. Commented out. -//-------- KEYS -------- -//notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - -//============================================================================= - -ITEM_* ENTITIES - -//============================================================================= - -/*QUAKED item_armor_body (.6 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Red Armor - 100 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_red.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_combat (1 .75 .3) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow Armor - 50 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/armor_yel.md3"*/ - -//============================================================================= - -/*QUAKED item_armor_shard (0 .7 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green Armor Shard - 5 points. All armor can be cumulated up to a maximum of 200 points and slowly wears out to 100 points. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 25, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/armor/shard.md3"*/ - -//============================================================================= - -/*QUAKED item_botroam (1 0.5 0) (-8 -8 -8) (8 8 8) SUSPENDED -Game Function: An invisible entity which attracts a bot to it. Use to move bots to parts of a map that might otherwise not be used (NEW ENTITY). --------- KEYS -------- -weight: non-zero floating point value, most often in the range 0 to 400. (Higher values are allowed but keep in mind that the bot should also be attracted to normal items. Don't make the weight value too high. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The item_botroam entity can be used when a bot does not roam the whole level or prefers to go to only specific areas. This (invisible) item can be placed in a map just like regular items. Nobody can actually pick up the item it's only used to attract bots to certain places of the map. The value is the weight of the roam_item is relative to the weight assigned other items in the map (each bot has its own weights). The bot character specific item weights are stored with the bot characters AI files ("botname"_i.c for items and "botname"_w.c for weapons) in the botfiles/bots/ sub-folder in the .pk3 file.*/ - -//============================================================================= - -/*QUAKED item_enviro (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Battle Suit power-up - Gives protection against slime, lava and weapon splash damage. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/enviro.md3"*/ - -//============================================================================= - -/*QUAKED item_flight (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Flight power-up. Lasts 60 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 60). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/flight.md3"*/ - -//============================================================================= - -/*QUAKED item_haste (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Speed power-up. Makes player run at double speed for 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/haste.md3"*/ - -//============================================================================= - -/*QUAKED item_health (.8 .8 0) (-16 -16 -16) (16 16 16) SUSPENDED -Yellow cross bubble - 25 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 25). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/medium_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_large (1 0 0) (-16 -16 -16) (16 16 16) SUSPENDED -Gold cross bubble - 50 Health. Cannot be picked up over 100 health. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/large_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_mega (0 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Blue M bubble - 100 Health. Adds 100 health points to current health up to a maximum of 200. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 40, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/mega_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_health_small (0 1 0) (-16 -16 -16) (16 16 16) SUSPENDED -Green cross bubble - 5 Health. Can be picked up over 100 health but slowly wears out to 100 afterwards. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 35, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of health points given to the player when item is picked up (default 5). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/health/small_cross.md3"*/ - -//============================================================================= - -/*QUAKED item_invis (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Invisibility power-up. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/invis.md3"*/ - -//============================================================================= - -/*QUAKED item_quad (.4 .6 1) (-16 -16 -16) (16 16 16) SUSPENDED -Quad Damage power-up. Lasts 30 seconds. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -model="models/powerups/instant/quad.md3"*/ - -//============================================================================= - -/*QUAKED item_regen (.5 0 1) (-16 -16 -16) (16 16 16) SUSPENDED -Health Regeneration power-up. This will boost your current health by 5 points every second for a period of up to 30 seconds or up to 200 points whichever comes first. Afterwards, any health points over 100 slowly wears out to 100. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 120, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count : time in seconds power-up will last when picked up (default 30). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/powerups/instant/regen.md3"*/ - -//============================================================================= - -LIGHT ENTITY - -//============================================================================= - - -/*QUAKED light (.65 .65 1) (-8 -8 -8) (8 8 8) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source. The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light: overrides the default 300 intensity. -_color : weighted RGB value of light color (default white - 1.0 1.0 1.0). -target : Lights pointed at a target will be spotlights. -radius: overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting).*/ - -/*QUAKED lightJunior (0 0.7 0.3) (-6 -6 -6) (6 6 6) LINEAR NOANGLE UNUSED1 UNUSED2 NOGRIDLIGHT -Non-displayed point light source THAT ONLY AFFECTS ENTITIES (lightgrid). The -pointscale and -scale arguments to Q3Map2 affect the brightness of these lights. The -skyscale argument affects brightness of entity sun lights. --------- KEYS -------- -_light OR light: overrides the default 300 intensity. -_color : weighted RGB value of light color (default white - 1.0 1.0 1.0). -target : Lights pointed at a target will be spotlights. -radius: overrides the default 64 unit radius of a spotlight at the target point. --------- Q3MAP2 KEYS -------- -_sun : Set this key to 1 on a spotlight to make an infinite sun light. -fade : Fades light attenuation. Only affects linear lights. -scale : Scales light attentation, from SOF2/JK2. Scales the "light" value. --------- SPAWNFLAGS -------- -LINEAR : Use a linear falloff. Default is inverse distance squared (more realistic). -NOANGLE : Ignore angle attenuation. -NOGRIDLIGHT : Do not affect the lightgrid (dynamic entity lighting). Setting this spawnflag will disable this light entirely.*/ - -//============================================================================= - -MISC_* ENTITIES - -//============================================================================= - -/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) -Generic placeholder for inserting MD3 models in game. Requires compilation of map geometry to be added to level. If the map is compiled with Q3Map2, then ASE, 3DS, OBJ and other model formats are supported. --------- KEYS -------- -angle: direction in which model will be oriented. -model : path/name of model to use (eg: models/mapobjects/teleporter/teleporter.md3). --------- Q3MAP2 KEYS -------- -angles : Individual control of PITCH, YAW, and ROLL (default 0 0 0). -modelscale : Floating-point value used to scale a model up or down (default 1.0). -modelscale_vec : Floating-point vector used to scale a model's axes individually (default 1.0 1.0 1.0). -_remap : Used to remap textures/shaders in the model. To remap all shaders to a given shader, use "*;models/mymodel/mytexture". To remap a specific shader, use "models/mymodel/old;models/mymodel/new". -target : Used to attach the misc_model to a brush entity, where its "targetname" key is the same value. -_lightmapscale : Floating point value scaling the resolution of lightmaps on this model (if model is using lightmapped shaders) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. -*/ - -//============================================================================= - -/*QUAKED misc_portal_camera (1 .5 .25) (-8 -8 -8) (8 8 8) SLOWROTATE FASTROTATE -Portal camera. This camera is used to project its view onto a portal surface in the level through the intermediary of a misc_portal_surface entity. Use the "angles" key or target a target_position or info_notnull entity to set the camera's pointing direction. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of the portal camera (default 0 0). Use "roll" key to set roll angle. -target : point this to a target_position entity to set the camera's pointing direction. -targetname : a misc_portal_surface portal surface indicator must point to this. -roll: roll angle of camera. A value of 0 is upside down and 180 is the same as the player's view. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -SLOWROTATE : makes the portal camera rotate slowly along the roll axis. -FASTROTATE : makes the portal camera rotate faster along the roll axis. --------- NOTES -------- -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the camera. However, the target_position method is simpler. In both cases, the "roll" key must be used to set the roll angle. If either the SLOWROTATE or FASTROTATE spawnflag is set, then the "roll" value is irrelevant.*/ - -//============================================================================= - -/*QUAKED misc_portal_surface (1 .5 .25) (-8 -8 -8) (8 8 8) -Portal surface indicator. This will "lock on" the brush face closest to it and identify as a portal. The view displayed on the portal surface is the view of the misc_portal_camera that this entity targets. Also used for mirrors (see Notes). --------- KEYS -------- -target : point this to a misc_portal_camera that "sees" the view you want to display on the portal. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -The entity must be no farther than 64 units away from the portal surface to lock onto it. To make a mirror, apply the common/mirror shader to the surface, place this entity near it but don't target a misc_portal_camera.*/ - -//============================================================================= - -/*QUAKED misc_teleporter_dest (1 .5 .25) (-32 -32 -24) (32 32 -16) -Teleport destination location point for trigger_teleporter entities. --------- KEYS -------- -angle : direction in which player will look when teleported. -targetname : make the trigger_teleporter point to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -PATH_* ENTITIES - -//============================================================================= - -/*QUAKED path_corner (.5 .3 0) (-8 -8 -8) (8 8 8) -Path corner entity that func_trains can be made to follow. --------- KEYS -------- -target : point to next path_corner in the path. -targetname : the train following the path or the previous path_corner in the path points to this. -speed : speed of func_train while moving to the next path corner. This will override the speed value of the train. -wait : number of seconds func_train will pause on path corner before moving to next path corner (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -Setting the wait key to -1 will not make the train stop on the path corner, it will simply default to 0.*/ - -//============================================================================= - -SHOOTER_* ENTITIES - -//============================================================================= - -/*QUAKED shooter_grenade (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a grenade each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the grenades. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_plasma (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a plasma ball each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the plasma balls. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -/*QUAKED shooter_rocket (1 0 .5) (-8 -8 -8) (8 8 8) -This will shoot a rocket each time it's triggered. Aiming is done by setting the "angles" key or by targeting an info_notnull or target_position entity. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of shooter (default 0 0). The roll angle does not apply. -targetname : activating trigger points to this. -target : this points to a target_position entity for aiming the rockets. -random : random aiming variance in degrees from the straight line to the targeted entity (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a maximum angle deviation from the normal trajectory formed by a straight line between the shooter and the aiming entity it targets. The final trajectory will be a random value anywhere between no deviation at all (0) to maximum deviation (value of the random key). - -Both the setting "angles" key or "targeting a target_position" methods can be used to aim the shooter. However, the target_position method is simpler.*/ - -//============================================================================= - -TARGET_* ENTITIES - -//============================================================================= - -/*QUAKED target_delay (0 .7 .7) (-8 -8 -8) (8 8 8) -Time delay trigger intermediary. Like a target_relay, this can only be fired by other triggers which will cause it in turn to fire its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -wait : delay in seconds from when this gets triggered to when it fires its own targets (default approx. 1). -delay : same as wait? replaces it? WTF?...I'm confused now. -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_give (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to give ammo, weapons, health or items to the player who activates it. --------- KEYS -------- -target : this points to the item(s) to give when activated. -targetname : activating trigger or spawn entity points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -There are 2 ways to use this entity. -a) automatically give items to players when they spawn in the game: make a spawn location entity like info_player_deathmatch or CTF respawn points target this entity, then make it target the item(s) to give to the player upon respawn. -b) give items to players during the game: make a trigger_multiple target this entity, then make it target the item(s) to give to the player when the trigger is touched.*/ - -//============================================================================= - -/*QUAKED target_kill (0 .5 0) (-8 -8 -8) (8 8 8) -This will kill the player who activates the trigger that fires this target. --------- KEYS -------- -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -//QUAKED target_laser (0 .5 0) (-8 -8 -8) (8 8 8) START_ON -//Generates a red laser beam. I think this can somehow spawn in the game, I saw it once but it's too inconsistent to be usable. Commented out. -//-------- KEYS -------- -//angles: alternate "pitch, yaw, roll" angles method of aiming laser (default 0 0 0). -//target : point this to a target_position entity to set the laser's aiming direction. -//targetname : the activating trigger points to this. -//notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -//notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -//notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -//-------- SPAWNFLAGS -------- -//START_ON : when set, the laser will start on in the game. - -//============================================================================= - -/*QUAKED target_location (0 .5 0) (-8 -8 -8) (8 8 8) -Location marker used by bots and players for team orders and team chat in the course of Teamplay games. The closest target_location in sight is used for the location. If none is in sight, the closest in distance is used. --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. - 0 : white (default) - 1 : red - 2 : green - 3 : yellow - 4 : blue - 5 : cyan - 6 : magenta - 7 : white -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_position (0 .5 0) (-8 -8 -8) (8 8 8) -Aiming target for entities like light, misc_portal_camera and trigger_push (jump pads) in particular. --------- KEYS -------- -targetname : the entity that requires an aiming direction points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad, place this entity at the highest point of the jump and target it with a trigger_push entity.*/ - -//============================================================================= - -/*QUAKED target_print (0 .5 0) (-8 -8 -8) (8 8 8) REDTEAM BLUETEAM PRIVATE -This will print a message on the center of the screen when triggered. By default, all the clients will see the message. --------- KEYS -------- -message : text string to print on screen. -targetname : the activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -REDTEAM : only the red team players will see the message. -BLUETEAM : only the blue team players will see the message. -PRIVATE : only the player that activates the target will see the message.*/ - -//============================================================================= - -/*QUAKED target_push (.5 .5 .5) (-8 -8 -8) (8 8 8) BOUNCEPAD -This can be used to create jump pads and launch ramps. The direction of push can be set by the "angles" key or pointing to a target_position or info_notnull entity. Unlike trigger_push, this is NOT client side predicted and must be activated by a trigger. --------- KEYS -------- -angles: this sets the pitch and yaw aiming angles of push entity (default 0 0). The roll angle does not apply. -speed : speed of push (default 1000). Has no effect if entity targets an aiming entity. -targetname : the activating trigger points to this. Push originates from the location of the trigger. -target : this points to the aiming entity to which the player will jump. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -BOUNCEPAD : if set, trigger will play bounce noise instead of beep noise when activated (recommended). --------- NOTES -------- -To make a jump pad or launch ramp, create a trigger_multiple where the jump must originate. Place the target_push directly above the trigger_multiple and place the target_position entity at the highest point of the jump. Target the trigger_multiple to the target_push and target the target_push to the target_position/info_notnull (or set the target_push's "angles" key). Note that the "angle" key also works.*/ - -//============================================================================= - -/*QUAKED target_relay (0 .7 .7) (-8 -8 -8) (8 8 8) RED_ONLY BLUE_ONLY RANDOM -This can only be activated by other triggers which will cause it in turn to activate its own targets. --------- KEYS -------- -targetname : activating trigger points to this. -target : this points to entities to activate when this entity is triggered. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -RED_ONLY : only red team players can activate trigger. -BLUE_ONLY : only red team players can activate trigger. -RANDOM : one one of the targeted entities will be triggered at random.*/ - -//============================================================================= - -/*QUAKED target_remove_powerups (0 .7 .7) (-8 -8 -8) (8 8 8) -This takes away any and all item_* type powerups from player except health and armor (holdable_* items are not taken away either). Must be activated by a button or trigger_multiple entity. The player that activates the trigger will lose any powerup(s) currently in his possession. --------- KEYS -------- -targetname : activating trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_score (0 .5 0) (-8 -8 -8) (8 8 8) -This is used to automatically give frag points to the player who activates this. A spawn location entity like info_player_* or CTF respawn points can target this entity to give points to the player when he spawns in the game. Or a trigger can also be used to activate this. The activator of the trigger will get the points. --------- KEYS -------- -targetname : ativating entity points to this. -count: number of frag points to give to player (default 1). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED target_teleporter (0 .5 0) (-8 -8 -8) (8 8 8) -Activating this will teleport players to the location of the targeted misc_teleporter_dest entity. Unlike trigger_teleport, this entity must be activated by a trigger and does NOT allow client prediction of events. --------- KEYS -------- -targetname : activating trigger points to this. -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -TEAM_* ENTITIES - -//============================================================================= - -/*QUAKED team_CTF_blueflag (0 .2 1) (-16 -16 -16) (16 16 16) -Blue team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/b_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_blueplayer (0 .2 1) (-16 -16 -24) (16 16 32) -Initial Blue team spawning position for CTF games. This is where players spawn when they join the Blue team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_bluespawn (0 .2 1) (-16 -16 -24) (16 16 32) -Blue team respawning position for CTF games. This is where Blue team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redflag (1 .2 0) (-16 -16 -16) (16 16 16) -Red team flag for CTF games. --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/flags/r_flag.md3"*/ - -//============================================================================= - -/*QUAKED team_CTF_redplayer (1 .2 0) (-16 -16 -24) (16 16 32) -Initial Red team spawning position for CTF games. This is where players spawn when they join the Red team. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -/*QUAKED team_CTF_redspawn (0 .2 1) (-16 -16 -24) (16 16 32) -Red team respawning position for CTF games. This is where Red team players respawn after they get fragged. --------- KEYS -------- -target : this can point at a target_give entity for respawn freebies.*/ - -//============================================================================= - -TRIGGER_* ENTITIES - -//============================================================================= - -/*QUAKED trigger_always (.5 .5 .5) (-8 -8 -8) (8 8 8) -Automatic trigger. It will fire the entities it targets as soon as it spawns in the game. --------- KEYS -------- -target : this points to the entity to activate. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -/*QUAKED trigger_hurt (.5 .5 .5) ? START_OFF - SILENT NO_PROTECTION SLOW -Any player that touches this will be hurt by "dmg" points of damage once per server frame (very fast). A sizzling sound is also played while the player is being hurt. --------- KEYS -------- -dmg : number of points of damage inflicted to player per server frame (default 5 - integer values only). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -START_OFF needs to be triggered (toggle) for damage -SILENT : supresses the sizzling sound while player is being hurt. -NO_PROTECTION : player will be hurt regardless of protection (see Notes). -SLOW : changes the damage rate to once per second. --------- NOTES -------- -The invulnerability power-up (item_enviro) does not protect the player from damage caused by this entity regardless of whether the NO_PROTECTION spawnflag is set or not. Triggering a trigger_hurt will have no effect if the START_OFF spawnflag is not set. A trigger_hurt always starts on in the game.*/ - -//============================================================================= - -/*QUAKED trigger_multiple (.5 .5 .5) ? -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetname : activating trigger points to this. -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random).*/ - -//============================================================================= - -/*QUAKED trigger_push (.5 .5 .5) ? -This is used to create jump pads and launch ramps. It MUST point to a target_position or info_notnull entity to work. Unlike target_push, this is client side predicted. --------- KEYS -------- -target : this points to the target_position to which the player will jump. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -To make a jump pad or launch ramp, place the target_position/info_notnull entity at the highest point of the jump and target it with this entity.*/ - -//============================================================================= - -/*QUAKED trigger_teleport (.5 .5 .5) ? -Touching this will teleport players to the location of the targeted misc_teleporter_dest entity. This entity allows client prediction of events. --------- KEYS -------- -target : this must point to a misc_teleporter_dest entity. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode).*/ - -//============================================================================= - -WEAPON_* ENTITIES - -//============================================================================= - -/*QUAKED weapon_bfg (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Big Freaking Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 20). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/bfg/bfg.md3"*/ - -//============================================================================= - -/*QUAKED weapon_gauntlet (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Gauntlet. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/gauntlet/gauntlet.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grapplinghook (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grappling Hook. Spawns in the game and works but is unskinned. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grapple/grapple.md3"*/ - -//============================================================================= - -/*QUAKED weapon_grenadelauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Grenade Launcher. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/grenadel/grenadel.md3"*/ - -//============================================================================= - -/*QUAKED weapon_lightning (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Lightning Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\lightning\lightning.md3"*/ - -//============================================================================= - -/*QUAKED weapon_machinegun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Machine Gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 100). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models\weapons2\machinegun\machinegun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_plasmagun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Plasma gun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 50). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/plasma/plasma.md3"*/ - -//============================================================================= - -/*QUAKED weapon_railgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Railgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/railgun/railgun.md3"*/ - -//============================================================================= - -/*QUAKED weapon_rocketlauncher (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Rocket Launcher. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/rocketl/rocketl.md3"*/ - -//============================================================================= - -/*QUAKED weapon_shotgun (1 0 .5) (-16 -16 -16) (16 16 16) SUSPENDED -Shotgun. --------- KEYS -------- -wait : time in seconds before item respawns after being picked up (default 5, -1 = never respawn). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -count: sets the amount of ammo given to the player when weapon is picked up (default 10). -team : set this to team items. Teamed items will respawn randomly after team master is picked up (see Notes). -target : picking up the item will trigger the entity this points to. -targetname : a target_give entity can point to this for respawn freebies. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -notbot : used to make an item invisible for bot attraction. --------- SPAWNFLAGS -------- -SUSPENDED : item will spawn where it was placed in map and won't drop to the floor. --------- NOTES -------- -The amount of time it takes for an item in the team to respawn is determined by the "wait" value of the item that was picked up previously. So if one of the items in the team has it's "wait" key set to -1 (never respawn), the random respawning cycle of the teamed items will stop after that item is picked up. - -When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). --------- MODEL FOR RADIANT ONLY - DO NOT SET THIS AS A KEY -------- -model="models/weapons2/shotgun/shotgun.md3"*/ - -//============================================================================= - -WORLDSPAWN ENTITY - -//============================================================================= - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -_ambient OR ambient : Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color (default is 0 0 0). -gravity : gravity of level (default is normal gravity: 800). -gridsize : granularity of the lightgrid created by q3map. Value is three integers separated by spaces, representing number of units between grid points in X Y Z. Default gridsize value is 128 128 256. Use larger powers of 2 to reduce BSP size and compile time on very large maps. -_blocksize : q3map always splits the BSP tree along the planes X=_blocksize*n and Y=_blocksize*n. Default _blocksize value is 1024. Increase the blocksize using larger powers of 2 to reduce compile times on very large maps with a low structural brush density. --------- Q3MAP2 KEYS -------- -_minlight : Minimum light value, levelwide. Uses the _color key to set color. Does not add unlike ambient. -_minvertexlight : Minimum vertex lighting, levelwide. -_mingridlight : Minimum lightgrid (dynamic entity lighting) levelwide. -_keeplights : Keep light entities in the BSP. Normally stripped out by the BSP process and read from the .map file by the lighting phase. -_noshadersun : Ignore q3map_sun/sun directives in sky shaders and ONLY use entity sun lights. -_farplanedist : Limit on how many units the vis phase of compilation can see. Used in combination with level-wide fog, it can help reduce r_speeds on large, open maps. -_foghull : Shader to use for "fog hull." Foghull shader should be a sky shader. Omit the "textures/" prefix. -_lightmapscale : Floating point value scaling the resolution of lightmaps on brushes/patches in the world. Can be overridden in func_group (or other entities) (default 1.0). -_cs OR _castshadows : Allows per-entity control over shadow casting. Defaults to 0 on entities, 1 on world. 0 = no shadow casting. 1 = cast shadows on world. > 1 = cast shadows on entities with _rs (or _receiveshadows) with the corresponding value, AND world. Negative values imply same, but DO NOT cast shadows on world. -_rs OR _receiveshadows : Allows per-entity control over shadow reception. Defaults to 1 on everything (world shadows). 0 = receives NO shadows. > 1 = receive shadows only from corresponding keyed entities (see above) and world. < 1 = receive shadows ONLY from corresponding keyed entities. -_celshader : Sets the cel shader used for this geometry. Note: omit the "textures/" prefix. Overridable in entities. --------- Q3MAP2 TERRAIN KEYS -------- -_indexmap OR alphamap : Path/name for the art file used to guide the mapping of textures on the terrain surface. -_layers OR layers : Integer value is the number unique root shaders that will be use on the terrain. -_shader OR shader : Path to the metashader used to assign textures to the terrain entity. Note: Omit the "textures/" prefix.*/ diff --git a/install/installs/UrTPack/install/q3ut4/scripts/shaderlist.txt b/install/installs/UrTPack/install/q3ut4/scripts/shaderlist.txt deleted file mode 100644 index 96437de8..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/shaderlist.txt +++ /dev/null @@ -1,150 +0,0 @@ -common -27s -abbey -abbey2 -abbey2ctf -algiers -allbsps -ammo -austria -autoclip -backhoe -base_floor -base_light -base_support -bbq -bbq2 -bbq7 -bbqshaders -bk -blood -bloodnew -bombexp -box15 -box293 -box337 -br_flowers -br_flowers_tub -br_trees -casa_lamp -cave -cel -codey1 -coinbird01 -cow -cow2 -crenshaw_vehicles -crossing -crystal -damage -decal -defcon_tree -density -eagle -eaglesky -eagle_water -egypt -engine_internal -flame -fogcaulk -foliage -foliage2 -funstuff -gfx -glass -goggleglass -gothic_light -GRtrees -hair -harbortown -jeffladderclip -kingdom2 -landscapelighting -LGPT-Models -lightgrid -liquid -liquids -masheen -masheen_sky -mayac -mayaorganicc -mayaterc -mc-uptown -metals -mirror -miscb3 -models -mrsentry -newnvg -nrgizer -null_beach -numbers -oldtruck -palms -palmtree -patio -prop_bubbles -qura -rc_glass -realworld_light -riches -riches_alpha -riches_alpha_bk -riches_light -riches_skies -riva -riyadh_lamp -roman_armor -sarah -scopering -scopes -sfx -sggatec -shminkylights -sinnifunstuff -sky -sky_thingley -sn_smoke -streetlamp -sweetnutz -sweetnutz3 -swim -tom -toxic2sky -toxiclight -toxicscripts -toxicsky -toxic_water -true_fence -tunis -tunis_sky -turnpike -urbanq3_misc2 -urban_terror -urban_terror_light -ut4_firingrange -ut4_suburbs -utfx -utplayers -ut_elgin -ut_prague -ut_riyadh -ut_riyadh_lm -ut_subway -ut_subway2 -ut_swim -ut_trees1 -vdocks -village2 -watercaulk -weapon -weapondecals -wuxut1 -xguns -zmultiplant -zzzzlaberinto2 -zzzzut_casadd -zzzzz_sanc -zzz_sanc -z_newbh -z_nvg diff --git a/install/installs/UrTPack/install/q3ut4/scripts/urbanterror.def b/install/installs/UrTPack/install/q3ut4/scripts/urbanterror.def deleted file mode 100644 index d78faf67..00000000 --- a/install/installs/UrTPack/install/q3ut4/scripts/urbanterror.def +++ /dev/null @@ -1,437 +0,0 @@ -//================================================================================= -// Urban Terror beta3.2 entities.def for QERadiant -//================================================================================= - -// This file contains the entities for use in Urban Terror maps. They will only work -// with the Urban Terror mod. - - - -//================================================================================= -// Structural entities (doors, breakables, etc.) -//================================================================================= - -// * * * * * * * * - -/*QUAKED func_button (0 .5 .8) ? -When a button is touched by a player, it moves in the direction set by the "angle" key, triggers all its targets, stays pressed by an amount of time set by the "wait" key, then returns to it's original position where it can be operated again. - --------- KEYS -------- -angle : determines the direction in which the button will move (up = -1, down = -2). -target : all entities with a matching targetname will be triggered. -speed : speed of button's displacement (default 40). -wait : number of seconds button stays pressed (default 1, -1 = return immediately). -lip : lip remaining at end of move (default 4 units). -health : if set to a non-zero value, the button must be damaged by "health" amount of points to operate. -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). -push_sound : sound that gets played when button gets pushed ("none" for nothing, defaults to a elevator Q3 sound) - --------- NOTES -------- -Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ -*/ - -// * * * * * * * * - -/*QUAKED func_door (0 .5 .8) ? START_OPEN - CRUSHER -Normal sliding door entity. By default, the door will activate when player walks close to it or when damage is inflicted to it. - --------- KEYS -------- -angle : determines the opening direction of door (up = -1, down = -2). -speed : determines how fast the door moves (default 100). -wait : number of seconds before door returns (default 2, -1 = return immediately) -lip : lip remaining at end of move (default 8) -targetname : if set, a func_button or trigger is required to activate the door. -health : if set to a non-zero value, the door must be damaged by "health" amount of points to activate (default 0). -dmg : damage to inflict on player when he blocks operation of door (default 4). Door will reverse direction when blocked unless CRUSHER spawnflag is set. -team: assign the same team name to multiple doors that should operate together (see Notes). -only : set to allow only one team to use this entity, used for CTF or other respawn type modes to create spawn rooms. Values: blue or red - Default: anyone -CloseWhenIdle: when set to 1, the door will close as soon as there are no players in the triggering brush (For CTF Spawn Room doors, SEE NOTES!) -trigger_only : set to 1 if the door can only be opened by a switch or trigger (ie: prevents a player from opening it manually) -pos1 : sound to play when door starts moving ("none" for nothing, defaults to a creak) -pos2 : sound to play when door stops moving ("none" for nothing, defaults to a creak) -noise : looping sound as door is moving -light : constantLight radius of .md3 model included with entity. Has no effect on the entity's brushes (default 0). -color : constantLight color of .md3 model included with entity. Has no effect on the entity's brushes (default 1 1 1). -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -origin : alternate method of setting XYZ origin of .md3 model included with entity (See Notes). -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - --------- SPAWNFLAGS -------- -START_OPEN : the door will spawn in the open state and operate in reverse. -CRUSHER : door will not reverse direction when blocked and will keep damaging player until he dies or gets out of the way. - --------- NOTES -------- -- To use the CloseWhenIdle setting for CTF Spawn Room doors, you must also set trigger_only, and use a trigger_multiple to open the door. This will cause the door to remain open only as long as a player is in the triggering brush. Set the 'wait' key on the trigger_multiple to a very low value( < 1 like .25 ) -- Unlike in Quake 2, doors that touch are NOT automatically teamed. If you want doors to operate together, you have to team them manually by assigning the same team name to all of them. Setting the origin key is simply an alternate method to using an origin brush. When using the model2 key, the origin point of the model will correspond to the origin point defined by either the origin brush or the origin coordinate value.*/ -*/ - -// * * * * * * * * - -/*QUAKED func_rotating_door (1 0 0) ? - --------- KEYS -------- -pos1 : sound to play when door starts moving ("none" for nothing, defaults to a creak) -pos2 : sound to play when door stops moving ("none" for nothing, defaults to a creak) -noise : looping sound to play as door is moving (defaults to no sound) -targetname : name of a target to trigger when door opens -color : constantLight color -light : constantLight radius -direction : force door to open in a set direction: -1 is clockwise, 1 is ccw -speed : defaults to 100, speed at which door opens -wait : how long to wait until door auto-closes (default is 0, which means stay open) -trigger_only : set to 1 if the door can only be opened by a switch or trigger(ie: prevents a player from opening it manually) -axis : door rotation axis, values: 0 (for x-axis), 1(for y-axis), 2(for z-axis) (if not given, default is 2 for z-axis) -damage : damage door does to a player if they block it (leave out in most cases) -gamemode_open : gametypes to have the door locked in the open position -gamemode_shut : gametypes to have the door locked in the closed position -only : set to allow only one team to use this entity, used for CTF or other respawn type modes to create spawn rooms. Values: blue or red - Default: anyone - --------- NOTES -------- -Rotating doors cannot be shot open, and will only close or open if activated -by a player. They will not automatically close after a period either. In -game modes not listed under either gamemode_open or gamemode_shut, the doors -will open and close normally. - -You construct a rotating door just like a FUNC_ROTATING: it needs an origin -brush to act as the hinge. - -Urban Terror gametype mappings are: -Free For All 0 -Single Player 1 -Team Deathmatch 3 -Team Survivor 4 -Assasins 5 -Capture And Hold 6 -Capture The Flag 7 -Bomb 8 -*/ - -// * * * * * * * * - -/*QUAKED func_breakable (0 .5 .8) ? -A breakable thing just sits there, doing nothing, -but will break if damaged or collided with. - --------- KEYS -------- -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -color : constantLight color -light : constantLight radius -type : 0: glass 1: wood 2: ceramic 3: plastic 4: metal-normal 5: metal-explosives 6: metal-hk69 7: stone-explosives 8: stone-hk69 9: wood-explosives 10: wood-hk69(SEE NOTES) -axis : 1 - x, 2 - y, 4 - z -health : health of object -model2 : path/name of model to include (eg: models/mapobjects/pipe/pipe02.md3). -shards : number of shards object should shatter into (0-255) -bombable : allows the entity to be destroyed by the bomb in bomb mode. The size of blast shown when the entity breaks is determined by this value (Values : 1 none - 255 huge blast). - --------- NOTES -------- - - For glass windows that break easily, set health to 1. - - Any func_breakable with a health of less than 10 will slowly weaken if a player is in contact with it. You can make a roof that collapses in after a period of time by setting the health to a value like 5. This will mean that a player standing on such a surface for around 5 seconds will fall thru. The effect is cumulative: if you stand there for 3 seconds and then come back you can only stand on it for another 2 seconds. - - The type parameter selects the shader that is used for fragments and sets the sound the object makes when it breaks. - - If the brush you are making is on an angle (for example, a skylight in a sloping roof) then you will need to set the break axis to "4" if you want it to break when people stand on it. - - You can build anything to break using the breakables. Use the model2 key to create things like breakable pots -- see Wetwired's map "ricochet" for an example. - - Set shards as high as you want (it maxes out at 32 anyway) - players can reduce the number of shards they see using cg_maxFragments - - Bombable key is to be used for things that can only be broken by the Bomb Mode bomb explosion. For example a large propane tank near a bomb target. The key's value will determine the size of the explosion graphics from this entity when broken, with a value of 1 being no explosion and a value of 255 being a large secondary blast. - - Type values info for 1,2,3,4 - The game will attenuate the damage caused by each hit to a value of 1-3. Health values above 10 will choose a random health between 6 and 10. Specifics are as follows: 0: is for glass/windows 1: is for all woods 2: is for ceramics and pottery 3: is for various plastics 4: is for metal that can be broken by normal means - - Type values info for 5,6,7,8,9,10 - The game will use the literal health value compared to the weapon damages. They should be set quite high (metals and stone at 50+). Specifics are as follows: 5: is for metal that requires explosives to break (HE grenade or hk69) 6: is for metal that requires the hk69 to break 7: is for stone that requires explosives to break (HE grenade or hk69) 8: is for stone that requires the hk69 to break 9: is for wood that requires explosives to break (HE grenade or hk69) 10: is for wood that requires the hk69 to break -*/ - -// * * * * * * * * - -/*QUAKED func_wall (0 .5 .8) ? - --------- KEYS -------- -gametype : gametypes to have the wall appear in, list types in this format: 01234 (default none) - --------- NOTES -------- -This entity is any brush or combination of brushes that you wish to have appear in gametypes specified. -Common uses are to cut of map sections to streamline gameplay for TS, or to expand the map for CTF or Bomb. -You cannot use a model as a func_wall. - -Create your brush(es), select it (or them), then make them a func_wall and set gametype keys. - -Urban Terror gametype mappings are: -Free For All 0 -Single Player 1 -Team Deathmatch 3 -Team Survivor 4 -Assasins 5 -Capture And Hold 6 -Capture The Flag 7 -Bomb 8 -*/ - -// * * * * * * * * - -//================================================================================= -// Train entities (Anything that has anything to do with the func_ut_train) -//================================================================================= - -// * * * * * * * * - -/*QUAKED func_ut_train (.6 .1 .8) ? START_ON TOGGLE BLOCK_STOPS CRUSHER -A train is a mover that moves between path_ut_stop target points. - --------- KEYS -------- -model2 : .md3 model to also draw -name : to associate with a set of control buttons -noise : looping sound to play when the train is in motion -color : constantLight color -light : constantLight radius -speed : default 350 -dmg : default 0 -target : first path_ut_stop, train spawns here -interface : the targetname of the func_keyboard_interface that belongs to this train -id : to uniquely associate it with a set of control buttons -startSound : sound to play when train begins moving to a new destination -stopSound : sound to play when train arrives at a final stop -noise : constant looping sound to always be playing where the train is - --------- NOTES -------- -- Trains MUST HAVE AN ORIGIN BRUSH. -- The train spawns at the first target it is pointing at. -- The train will move to any stop from any stop. See the description for the func_keyboard_interface for more info. - -*/ - -// * * * * * * * * - -/*QUAKED func_keyboard_interface (.5 .6 .5) ? -keyboard menu interface - --------- KEYS -------- -display : if 0, menu is not dispayed, if 1, menu is displayed, default 1 -id : id of the func_ut_train that this interface associates with -targetname : id for the func_ut_train key "interface" to associate it with the right func_ut_train -option1 : text message to describe the first destination -option2 : text message to describe the second destination -option3 : text message to describe the third destination -option4 : text message to describe the fourth destination -option5 : text message to describe the five destination -stop1 : targetname of first destination -stop2 : targetname of second destination -stop3 : targetname of third destination -stop4 : targetname of fourth destination -stop5 : targetname of fifth destination -stop2from1 : beginning of path from 1 to 2 -stop3from1 : beginning of path from 1 to 3 -stop4from1 : beginning of path from 1 to 4 -stop5from1 : beginning of path from 1 to 5 -stop1from2 : beginning of path from 2 to 1 -stop3from2 : beginning of path from 2 to 3 -stop4from2 : beginning of path from 2 to 4 -stop5from2 : beginning of path from 2 to 5 -stop1from3 : beginning of path from 3 to 1 -stop2from3 : beginning of path from 3 to 2 -stop4from3 : beginning of path from 3 to 4 -stop5from3 : beginning of path from 3 to 5 -stop1from4 : beginning of path from 4 to 1 -stop2from4 : beginning of path from 4 to 2 -stop3from4 : beginning of path from 4 to 3 -stop5from4 : beginning of path from 4 to 5 -stop1from5 : beginning of path from 5 to 1 -stop2from5 : beginning of path from 5 to 2 -stop3from5 : beginning of path from 5 to 3 -stop4from5 : beginning of path from 5 to 4 - --------- NOTES -------- -- All the stopXfromY (where X and Y are numbers) should target a path_ut_stop -- The stopX keys (where X is a number) should target the ending path_ut_stop, i.e. the last stop at location X. -- The optionX keys (where X is a number) corresponds to the stopX keys. So if you set the name "top floor" for option1, make sure that stop1 actually is at the "top floor" -*/ - -// * * * * * * * * - -/*QUAKED path_ut_stop (.5 .3 0) (-8 -8 -8) (8 8 8) -Train path stops. - --------- KEYS -------- -target : next path stop and other targets to fire -trainID : the id of the train that this stop is for -wait : the amount of time train should wait at this stop, default is 0 -rotationTime : the amount of time (in milleseconds) that the train should rotate for at this stop according to yawSpeed, pitchSpeed, and rollSpeed -yawSpeed : the speed of yaw rotation that the train will do once at this stop for rotationTime amound of milleseconds -pitchSpeed : the speed of pitch rotation that the train will do once at this stop for rotationTime amound of milleseconds -rollSpeed : the speed of roll rotation that the train will do once at this stop for rotationTime amound of milleseconds - --------- NOTES -------- -- Pitch and roll doesn't work very well right now because of the collision handling of Q3. This makes it hard to make things that the player is supposed to ride work properly. Trial and error would probably be the best method to find out what works and what doesn't. -- You can have the path_ut_stop trigger almost anything. For example, you could use it to open a door or to trigger a func_button. -*/ - -// * * * * * * * * - -//============================================================================= -// Active entities (Non-structural, trigger type entities) -//============================================================================= - -// * * * * * * * * - -/*QUAKED trigger_multiple (.5 .5 .5) ? -Variable size repeatable trigger. It will fire the entities it targets when touched by player. Can be made to operate like a trigger_once entity by setting the "wait" key to -1. It can also be activated by another trigger that targets it. --------- KEYS -------- -target : this points to the entity to activate. -targetname : activating trigger points to this. -wait : time in seconds until trigger becomes re-triggerable after it's been touched (default 0.2, -1 = trigger once SEE NOTES). -random : random time variance in seconds added or subtracted from "wait" delay (default 0 - see Notes). -only : set to allow only one team to use this entity, used for CTF or other respawn type modes to create spawn rooms. Values: blue or red - Default: anyone -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- NOTES -------- -- Set the 'wait' key to .25 if using the CloseWhenIdle key when triggering a door -- When the random key is set, its value is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -*/ - -// * * * * * * * * - -//================================================================================= -// Gametype entities (Special UT gametype entities) -//================================================================================= - -// * * * * * * * * - -/*QUAKED info_ut_spawn (1 .5 0) (-16 -16 -24) (16 16 32) initial -potential spawning position for Urban Terror. - --------- KEYS -------- -team : team that this spawn belongs to ("red" or "blue") -group : this spawn groups with others of same groupID. A team chooses spawns from a certain group. -g_gametype : a list of gametypes on which to use this spawn eg: "4, 5, 6" - --------- NOTES -------- -Urban Terror gametype mappings are: -Free For All 0 -Single Player 1 -Team Deathmatch 3 -Team Survivor 4 -Assasins 5 -Capture And Hold 6 -Capture The Flag 7 -Bomb 8 - -You'd use the groups key in maps if you wanted to make sure a team will spawn together in a certain location, -so you might take 8 spawn points, give them all gametypes of "3,4,5,6,7" (all teamplays) and then assign all -the eight a group id of "1" then you might do another eight and make their group id all "2". UT will choose a -"group" at the begining of a round and spawn all members of "team" there. Normally you'd have at few groups -of spawns so you could have lots of potential team starting positions. -*/ - -// * * * * * * * * - -/*QUAKED team_CAH_capturepoint (0 .2 1) (-32 -32 -16) (32 32 76) -zone that can be captured in the Capture and Hold gametype (CAH) - --------- NOTES -------- -The capture point will be represented with a flag and a player must touch the flag to capture it. -The name of the location of the capturepoint will be retrieved from either the trigger_location or the nearest target_location. -*/ - -//--------------------------------------------------------------------------------- -// Bomb Mode! -//--------------------------------------------------------------------------------- - -/*QUAKED info_ut_bombsite (0 .2 1) (-16 -16 -24) (16 16 32) - --------- NOTES -------- -This entity cannot hover, it must be placed directly on the surface that you wish the bomb to be placed on. -NEW in 3.2: Bomb plant range is locked to 64 units. Once the bomb is planted, it will snap to the center of the entity -for easier diffusing. -WARNING: You MUST have 2 bomb sites per map or the map will crash upon loading into bomb mode. -*/ - -// * * * * * * * * - -//================================================================================= -// Misc entities (Everything that didn't fit in anywhere else) -//================================================================================= - -// * * * * * * * * - -/*QUAKED worldspawn (0 0 0) ? -Only used for the world. - --------- KEYS -------- -message : text to print at user logon. Used for name of level. -music : path/name of looping .wav file used for level's music (eg. music/sonic5.wav). -ambient : Adds a constant value to overall lighting. Use is not recommended. Ambient light will have a tendency to flatten out variations in light and shade. -_color : RGB value for ambient light color. -gravity : gravity of level (default is normal gravity: 800). -enablePrecip : 0 - (default) none, 1 - rain, 2 - snow -precipAmount : up to 1024, number of drops/flakes (256 is good) -*/ - -// * * * * * * * * - -/*QUAKED trigger_location (1 1 0) ? - - -Speicifes the name of a location when the player is within this trigger. - --------- KEYS -------- -message : name of the location (text string). Displayed in parentheses in front of all team chat and order messages. -count : color of the location text displayed in parentheses during team chat. Set to 0-7 for color. -Attacking_Team : For Bomb Mode ONLY - when set to 1, the BLUE team will be the attacker, set to 0 if you want the RED team to attack. Default 0 (RED is Attacker) -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). - --------- NOTES -------- -The values for the colors that can be set in the count key are as follows: - -0 : white (default) -1 : red -2 : green -3 : yellow -4 : blue -5 : cyan -6 : magenta -7 : white -*/ - -// * * * * * * * * - -/*QUAKED ut_mrsentry (1 .5 0) (-16 -16 -24) (16 16 32) -Spawn location for the CTF Spawn Room Sentry Cannon. - --------- KEYS -------- -team : Team that Mr. Sentry belongs to. Will eliminate opposing team members within range (SEE NOTES). ("red" or "blue") -angle : Inital and idle angle for the turret. Generally point this at or near the Spawn Room doors for highest effectiveness. -gametype : gametypes to have Mr. Sentry appear in, list types in this format: 01234 - --------- NOTES -------- -Mr. Sentry is designed to be used in conjunction with CTF Spawn Rooms (see the Notes on the func_door entity) to prevent enemy team players from surviving if they enter the opposing team's spawn room. Even though the properly set up doors will generally prevent this, Mr. Sentry also has one other function. It will kill any Flag Carrier that enters it's range no matter what team that player is on. This will prevent players from grabbing the flag and retreating the the complete safety of their Spawn Room and waiting out the rest of the map time with the flag. - -For the anti-flag-camp feature to work properly, the entire spawn room must be enclosed with a 'nodrop' (a brush with the 'nodrop' texture on all sides). If this brush (or group of brushes) isn't placed, then Mr. Sentry will kill the Flag Carrier, and the flag will remain at that location, which is bad. -*/ - -// * * * * * * * * - -/*QUAKED target_speaker (0 .7 .7) (-8 -8 -8) (8 8 8) LOOPED_ON LOOPED_OFF GLOBAL ACTIVATOR -Sound generating entity that plays .wav files. Normal non-looping sounds play each time the target_speaker is triggered. Looping sounds can be set to play by themselves (no activating trigger) or be toggled on/off by a trigger. --------- KEYS -------- -noise : path/name of .wav file to play (eg. sound/world/growl1.wav - see Notes). -gametype : Specifies gametypes to play the sound in. If this key is not used, sound will play in all gametypes. List types in this format: 01234 -wait : delay in seconds between each time the sound is played ("random" key must be set - see Notes). -random : random time variance in seconds added or subtracted from "wait" delay ("wait" key must be set - see Notes). -targetname : the activating button or trigger points to this. -notfree : when set to 1, entity will not spawn in "Free for all" and "Tournament" modes. -notteam : when set to 1, entity will not spawn in "Teamplay" and "CTF" modes. -notsingle : when set to 1, entity will not spawn in Single Player mode (bot play mode). --------- SPAWNFLAGS -------- -LOOPED_ON : sound will loop and initially start on in level (will toggle on/off when triggered). -LOOPED_OFF : sound will loop and initially start off in level (will toggle on/off when triggered). -GLOBAL : sound will play full volume throughout the level. -ACTIVATOR : sound will play only for the player that activated the target. --------- NOTES -------- -The path portion value of the "noise" key can be replaced by the implicit folder character "*" for triggered sounds that belong to a particular player model. For example, if you want to create a "bottomless pit" in which the player screams and dies when he falls into, you would place a trigger_multiple over the floor of the pit and target a target_speaker with it. Then, you would set the "noise" key to "*falling1.wav". The * character means the current player model's sound folder. So if your current player model is Visor, * = sound/player/visor, if your current player model is Sarge, * = sound/player/sarge, etc. This cool feature provides an excellent way to create "player-specific" triggered sounds in your levels. - -The combination of the "wait" and "random" keys can be used to play non-looping sounds without requiring an activating trigger but both keys must be used together. The value of the "random" key is used to calculate a minimum and a maximum delay. The final time delay will be a random value anywhere between the minimum and maximum values: (min delay = wait - random) (max delay = wait + random). -*/ - -// * * * * * * * *

10.2 Run the Conversion

-When the qdt file is set up correctly, run the grabber by opening MSDOS command prompt, going to the quake3 directory -containing the model files and typing in 'q3data [character].qdt' - -

11. Review the Model

-Load up Quake 3 Arena. Go to map Q3DM0 (or any map containing a mirror). Bring down the console and type "\model -[character name]". Hit your Show Score key (default is TAB). You should see your new model here. Tweak the frame rates in -your animation.cfg file and save them. Type in "\vid_restart" on the console and hit enter to see the changes. - - - - - diff --git a/install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/entries b/install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/entries deleted file mode 100644 index 6adefcb7..00000000 --- a/install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/entries +++ /dev/null @@ -1,62 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Model_Manual/styles -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -q3rad.css -file - - - - -2012-04-01T16:52:35.757495Z -f65ac3e346f227bd9de19518dacd5ba1 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -760 - diff --git a/install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base b/install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/ReactionPack/install/docs/Model_Manual/styles/.svn/text-base/q3rad.css.svn-base +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Model_Manual/styles/q3rad.css b/install/installs/ReactionPack/install/docs/Model_Manual/styles/q3rad.css deleted file mode 100644 index e98ae2bd..00000000 --- a/install/installs/ReactionPack/install/docs/Model_Manual/styles/q3rad.css +++ /dev/null @@ -1,23 +0,0 @@ -body { font: 12pt "Times New Roman"; - margin-left: 5mm; - margin-right: 5mm; - text-align: justify; - background: #ffffff; - color: #000000 } -h1 { font: bold 24pt Arial, Helvetica } -h2 { font: bold italic 18pt Arial, Helvetica } -.subheading { font: bold 16pt Arial, Helvetica } -:link {color: blue; - text-decoration: none; } -:visited {color: purple; - text-decoration: none; } -h6 { font: 10pt "Times New Roman" } -.MsoToc2 { font: bold small-caps 12pt "Times New Roman" } -.MsoTitle { text-align:center; - font: bold 24pt "BankGothic Md BT"; - letter-spacing:2.5pt } -.heading { font: italic 10pt "Times New Roman" } -.subcontents { font: 10pt "Times New Roman" } -.tip { font: 10pt "Comic Sans MS" } -.type { font: 10pt "Courier New" } -.menu { font: 10pt Arial, Helvetica } \ No newline at end of file diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/entries b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/entries deleted file mode 100644 index 04dc4af6..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/entries +++ /dev/null @@ -1,89 +0,0 @@ -10 - -dir -66 -svn://svn.icculus.org/gtkradiant-gamepacks/ReactionPack/trunk/install/docs/Q3AShader_Manual -svn://svn.icculus.org/gtkradiant-gamepacks - - - -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - -8a3a26a2-13c4-0310-b231-cf6edde360e5 - -ch05 -dir - -ch06 -dir - -styles -dir - -appendix -dir - -q3ashader_manual_files -dir - -ch01 -dir - -ch02 -dir - -ch03 -dir - -ch04 -dir - -index.htm -file - - - - -2012-04-01T16:52:35.488480Z -b1ede4bbd7fa3c9f9529937729cf1815 -2011-01-20T04:25:31.635016Z -64 -rambetter - - - - - - - - - - - - - - - - - - - - - -4429 - diff --git a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base b/install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base deleted file mode 100644 index a7220ef4..00000000 --- a/install/installs/ReactionPack/install/docs/Q3AShader_Manual/.svn/text-base/index.htm.svn-base +++ /dev/null @@ -1,76 +0,0 @@ - - -Quake III Arena Shader Manual: Table of Contents - - - -
-

Q3Radiant Shader Manual

- -

Revision #12

- -

By Paul Jaquays and Brian Hook - -

(with additional material by John Carmack, Christian Antkow, Kevin Cloud, & Adrian Carmack) -

QERadiant.com thanks John Hutton for re-formating this manual into a more web friendly version

-
-

Table of Contents

-