[nexuiz-commits] r7190 - in branches/nexuiz-2.0: . data data/gfx data/gfx/hud data/maps data/maps/aggressor data/models data/models/sprites data/models/weapons data/qcsrc/client data/qcsrc/common data/qcsrc/menu/nexuiz data/qcsrc/server data/qcsrc/server/tturrets/include data/qcsrc/server/tturrets/system data/qcsrc/server/tturrets/units data/scripts data/sound/cdtracks data/textures misc/mediasource misc/tools

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Jul 11 10:55:45 EDT 2009


Author: div0
Date: 2009-07-11 10:55:44 -0400 (Sat, 11 Jul 2009)
New Revision: 7190

Added:
   branches/nexuiz-2.0/data/gfx/colormap_palette.pl
   branches/nexuiz-2.0/data/gfx/hud/sb_accuracy.tga
   branches/nexuiz-2.0/data/gfx/spiderbot/
   branches/nexuiz-2.0/data/models/null.md3
   branches/nexuiz-2.0/data/models/racers/
   branches/nexuiz-2.0/data/models/spiderbot/
   branches/nexuiz-2.0/data/models/sprites/nb-ball.png
   branches/nexuiz-2.0/data/models/sprites/nb-ball.sp2
   branches/nexuiz-2.0/data/models/sprites/nb-ball.svg
   branches/nexuiz-2.0/data/models/sprites/nb-ball.tga
   branches/nexuiz-2.0/data/models/teamfx/
   branches/nexuiz-2.0/data/models/vhshield.md3
   branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.framegroups
   branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.framegroups
   branches/nexuiz-2.0/data/qcsrc/server/pathlib/
   branches/nexuiz-2.0/data/qcsrc/server/vehicles/
   branches/nexuiz-2.0/data/scripts/sbshield.shader
   branches/nexuiz-2.0/data/scripts/spiderbot.shader
   branches/nexuiz-2.0/data/scripts/teamfx.shader
   branches/nexuiz-2.0/data/scripts/tuba.shader
   branches/nexuiz-2.0/data/textures/cockpit.tga
   branches/nexuiz-2.0/data/textures/cockpit_glow.tga
   branches/nexuiz-2.0/data/textures/darkvisor.tga
   branches/nexuiz-2.0/data/textures/sb_shield.tga
   branches/nexuiz-2.0/data/textures/spiderbot.tga
   branches/nexuiz-2.0/data/textures/spiderbot/
   branches/nexuiz-2.0/data/textures/spiderbot_gloss.tga
   branches/nexuiz-2.0/data/textures/spiderbot_glow.tga
   branches/nexuiz-2.0/data/textures/spiderbot_norm.tga
   branches/nexuiz-2.0/data/textures/spiderbot_pants.tga
   branches/nexuiz-2.0/data/textures/wakazachi.tga
   branches/nexuiz-2.0/data/textures/wakazachi_gloss.tga
   branches/nexuiz-2.0/data/textures/wakazachi_norm.tga
   branches/nexuiz-2.0/data/textures/wakazachi_pants.tga
   branches/nexuiz-2.0/data/vehicle_racer.cfg
   branches/nexuiz-2.0/data/vehicle_spiderbot.cfg
   branches/nexuiz-2.0/misc/mediasource/hud/
   branches/nexuiz-2.0/misc/tools/midi2cfg-ng-simple.conf
Removed:
   branches/nexuiz-2.0/data/gfx/colormap_palette.base
   branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.animinfo
   branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.animinfo
   branches/nexuiz-2.0/data/sound/cdtracks/creation.ogg
Modified:
   branches/nexuiz-2.0/.patchsets
   branches/nexuiz-2.0/data/build-compat-pack.sh
   branches/nexuiz-2.0/data/defaultHavoc.cfg
   branches/nexuiz-2.0/data/defaultNexuiz.cfg
   branches/nexuiz-2.0/data/effectinfo.txt
   branches/nexuiz-2.0/data/gfx/colormap_palette.lmp
   branches/nexuiz-2.0/data/gfx/hud/sb_timerbg.tga
   branches/nexuiz-2.0/data/gfx/hud/sbar.tga
   branches/nexuiz-2.0/data/gfx/inv_weapon15.tga
   branches/nexuiz-2.0/data/keybinds.txt
   branches/nexuiz-2.0/data/maps/aggressor.bsp
   branches/nexuiz-2.0/data/maps/aggressor.map
   branches/nexuiz-2.0/data/maps/aggressor/lm_0000.tga
   branches/nexuiz-2.0/data/maps/aggressor/lm_0001.tga
   branches/nexuiz-2.0/data/maps/campaignNexuiz25.txt
   branches/nexuiz-2.0/data/models/sprites/as-defend_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/as-destroy_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/as-push_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/dom-blue_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/dom-neut_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/dom-pink_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/dom-red_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/dom-yellow_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-extralife_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-extralife_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/item-fuelregen_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-fuelregen_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/item-invis_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-invis_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/item-jetpack_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-jetpack_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/item-shield_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-shield_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/item-speed_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-speed_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/item-strength_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/item-strength_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/make-sprites.sh
   branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-blue_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-blue_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-neut_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-neut_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-red_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-red_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-blue_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-blue_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-red_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-red_frame1.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-campingrifle_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-crylink_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-electro_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-gl_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-hagar_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-hlac_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-hookgun_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-laser_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-minstanex_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-nex_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-porto_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-rl_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-seeker_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-shotgun_frame0.tga
   branches/nexuiz-2.0/data/models/sprites/wpn-uzi_frame0.tga
   branches/nexuiz-2.0/data/qcsrc/client/Defs.qc
   branches/nexuiz-2.0/data/qcsrc/client/Main.qc
   branches/nexuiz-2.0/data/qcsrc/client/View.qc
   branches/nexuiz-2.0/data/qcsrc/client/casings.qc
   branches/nexuiz-2.0/data/qcsrc/client/csqc_constants.qc
   branches/nexuiz-2.0/data/qcsrc/client/damage.qc
   branches/nexuiz-2.0/data/qcsrc/client/gibs.qc
   branches/nexuiz-2.0/data/qcsrc/client/projectile.qc
   branches/nexuiz-2.0/data/qcsrc/client/sbar.qc
   branches/nexuiz-2.0/data/qcsrc/client/waypointsprites.qc
   branches/nexuiz-2.0/data/qcsrc/common/constants.qh
   branches/nexuiz-2.0/data/qcsrc/common/items.qc
   branches/nexuiz-2.0/data/qcsrc/common/items.qh
   branches/nexuiz-2.0/data/qcsrc/common/mapinfo.qc
   branches/nexuiz-2.0/data/qcsrc/common/util.qc
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mutators.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_effects.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_video.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider_resolution.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/util.qh
   branches/nexuiz-2.0/data/qcsrc/server/bots.qc
   branches/nexuiz-2.0/data/qcsrc/server/bots_scripting.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc
   branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc
   branches/nexuiz-2.0/data/qcsrc/server/clientcommands.qc
   branches/nexuiz-2.0/data/qcsrc/server/constants.qh
   branches/nexuiz-2.0/data/qcsrc/server/csqcprojectile.qc
   branches/nexuiz-2.0/data/qcsrc/server/defs.qh
   branches/nexuiz-2.0/data/qcsrc/server/ent_cs.qc
   branches/nexuiz-2.0/data/qcsrc/server/extensions.qh
   branches/nexuiz-2.0/data/qcsrc/server/g_casings.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_subs.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_triggers.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
   branches/nexuiz-2.0/data/qcsrc/server/gamecommand.qc
   branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc
   branches/nexuiz-2.0/data/qcsrc/server/havocbot_ons.qc
   branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
   branches/nexuiz-2.0/data/qcsrc/server/mode_onslaught.qc
   branches/nexuiz-2.0/data/qcsrc/server/movelib.qc
   branches/nexuiz-2.0/data/qcsrc/server/nexball.qc
   branches/nexuiz-2.0/data/qcsrc/server/progs.src
   branches/nexuiz-2.0/data/qcsrc/server/race.qc
   branches/nexuiz-2.0/data/qcsrc/server/race.qh
   branches/nexuiz-2.0/data/qcsrc/server/scores.qc
   branches/nexuiz-2.0/data/qcsrc/server/scores.qh
   branches/nexuiz-2.0/data/qcsrc/server/t_items.qc
   branches/nexuiz-2.0/data/qcsrc/server/t_teleporters.qc
   branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets.qh
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets_early.qh
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_aimprocs.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_damage.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_main.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_scoreprocs.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_ewheel.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_flac.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_fusionreactor.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hellion.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hk.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_machinegun.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_mlrs.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_phaser.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_plasma.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_tessla.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_walker.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_campingrifle.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_common.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_hlac.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_hook.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_minstanex.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_porto.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_tuba.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc
   branches/nexuiz-2.0/data/qcsrc/server/waypointsprites.qc
   branches/nexuiz-2.0/data/scripts/common.shader
   branches/nexuiz-2.0/data/scripts/eX.shader
   branches/nexuiz-2.0/data/textures/tuba.tga
   branches/nexuiz-2.0/data/tooltips.db
   branches/nexuiz-2.0/data/turrets.cfg
   branches/nexuiz-2.0/data/unit_ewheel.cfg
   branches/nexuiz-2.0/data/unit_flac.cfg
   branches/nexuiz-2.0/data/unit_fusreac.cfg
   branches/nexuiz-2.0/data/unit_hellion.cfg
   branches/nexuiz-2.0/data/unit_hk.cfg
   branches/nexuiz-2.0/data/unit_machinegun.cfg
   branches/nexuiz-2.0/data/unit_mlrs.cfg
   branches/nexuiz-2.0/data/unit_phaser.cfg
   branches/nexuiz-2.0/data/unit_plasma.cfg
   branches/nexuiz-2.0/data/unit_plasma2.cfg
   branches/nexuiz-2.0/data/unit_tesla.cfg
   branches/nexuiz-2.0/data/unit_walker.cfg
   branches/nexuiz-2.0/data/weapons.cfg
   branches/nexuiz-2.0/data/weaponsHavoc.cfg
   branches/nexuiz-2.0/misc/tools/crc16.c
   branches/nexuiz-2.0/misc/tools/midi2cfg-ng.conf
   branches/nexuiz-2.0/misc/tools/midi2cfg-ng.pl
   branches/nexuiz-2.0/misc/tools/midichannels.pl
Log:
r6975 | mand1nga | 2009-06-10 23:58:12 -0400 (Wed, 10 Jun 2009) | 1 line
Support for accuracy stats by Diabolik. See your stats with +showaccuracy or "sbar_hud_accuracy 1".
r6976 | mand1nga | 2009-06-11 00:27:40 -0400 (Thu, 11 Jun 2009) | 1 line
Display accuracy stats at the end of match
r6977 | div0 | 2009-06-11 06:13:46 -0400 (Thu, 11 Jun 2009) | 2 lines
make blue team color brighter to match red
r6978 | div0 | 2009-06-11 06:15:32 -0400 (Thu, 11 Jun 2009) | 2 lines
add perl script to make the palette
r6979 | div0 | 2009-06-11 06:23:56 -0400 (Thu, 11 Jun 2009) | 2 lines
team color brightness
r6980 | div0 | 2009-06-11 07:00:33 -0400 (Thu, 11 Jun 2009) | 2 lines
fix the recently committed palette
r6981 | div0 | 2009-06-11 07:48:25 -0400 (Thu, 11 Jun 2009) | 2 lines
fix bot moveto command and routing... now all bots can get to their seats
r6982 | div0 | 2009-06-11 12:37:20 -0400 (Thu, 11 Jun 2009) | 2 lines
more midi2cfg stuff :P
r6983 | div0 | 2009-06-11 13:02:24 -0400 (Thu, 11 Jun 2009) | 5 lines
- fix aimtotarget in bot scripting
- seeker lifetime is now a cvar
- complain if a trigger_items requests an invalid item
- bot scripting: support hook and chat buttons
r6984 | m0rfar | 2009-06-11 14:39:44 -0400 (Thu, 11 Jun 2009) | 2 lines
Default bind ALT for +showaccuracy
Adds +showaccuracy to Control settings
r6985 | div0 | 2009-06-11 14:48:26 -0400 (Thu, 11 Jun 2009) | 2 lines
jetpack attenuation is now a cvar
r6986 | div0 | 2009-06-11 14:51:41 -0400 (Thu, 11 Jun 2009) | 2 lines
new cvar g_telefrags
r6987 | div0 | 2009-06-11 15:07:53 -0400 (Thu, 11 Jun 2009) | 2 lines
fix the bot script :P
r6988 | div0 | 2009-06-11 15:12:43 -0400 (Thu, 11 Jun 2009) | 2 lines
s/ogg/wav/
r6989 | div0 | 2009-06-11 16:00:09 -0400 (Thu, 11 Jun 2009) | 2 lines
eX.shader: contain ALL eX textures. Should fix file name case issues because eX folder was stupidly named.
r6990 | mand1nga | 2009-06-11 18:28:18 -0400 (Thu, 11 Jun 2009) | 1 line
Update tuba icon here too :)
r6991 | mand1nga | 2009-06-11 18:56:10 -0400 (Thu, 11 Jun 2009) | 1 line
New cvar bot_ai_enemydetectionradius for limiting bots visibility
r6992 | div0 | 2009-06-12 02:18:09 -0400 (Fri, 12 Jun 2009) | 2 lines
try to fix the world write bug in RadiusDamage
r6993 | div0 | 2009-06-12 03:46:18 -0400 (Fri, 12 Jun 2009) | 3 lines
bots scripting: use a string buffer now
new command "barrier": waits till all bots have executed this command (for syncing actions)
r6994 | div0 | 2009-06-12 03:47:37 -0400 (Fri, 12 Jun 2009) | 2 lines
midi2cfg: use barriers
r6995 | tzork | 2009-06-12 04:05:49 -0400 (Fri, 12 Jun 2009) | 1 line
Get rid of g_turrets_unit_ewheel_std_target_range_fire, fix g_turrets_targetscan_mindelay add g_turrets_targetscan_maxdelay
r6996 | div0 | 2009-06-12 04:17:49 -0400 (Fri, 12 Jun 2009) | 2 lines
fix bot barriers, add a "load" command to bot_cmd
r6997 | div0 | 2009-06-12 04:19:20 -0400 (Fri, 12 Jun 2009) | 2 lines
make proper use of barriers now :P
r6998 | div0 | 2009-06-12 04:21:27 -0400 (Fri, 12 Jun 2009) | 2 lines
remove debug code from barrier (making bots yellow while in one)
r6999 | div0 | 2009-06-12 05:33:00 -0400 (Fri, 12 Jun 2009) | 2 lines
barrier: only wait for bots that actually have commands
r7000 | div0 | 2009-06-12 05:33:21 -0400 (Fri, 12 Jun 2009) | 2 lines
fix last commit
r7001 | div0 | 2009-06-12 05:49:57 -0400 (Fri, 12 Jun 2009) | 2 lines
make common/noimpact actually work
r7002 | div0 | 2009-06-12 05:50:29 -0400 (Fri, 12 Jun 2009) | 2 lines
fix last change :P
r7003 | tzork | 2009-06-12 05:56:24 -0400 (Fri, 12 Jun 2009) | 1 line
spiderbot & wakazachi media
r7004 | div0 | 2009-06-12 06:21:52 -0400 (Fri, 12 Jun 2009) | 2 lines
fix some barrier and note stuff
r7005 | tzork | 2009-06-12 06:46:52 -0400 (Fri, 12 Jun 2009) | 1 line
vehicles server & client code, disabled by default. see vehicles/vehicles.qh
r7006 | tzork | 2009-06-12 06:50:53 -0400 (Fri, 12 Jun 2009) | 1 line
forgot some media.
r7007 | div0 | 2009-06-12 06:58:36 -0400 (Fri, 12 Jun 2009) | 2 lines
rearranged chairs
r7008 | tzork | 2009-06-12 07:04:58 -0400 (Fri, 12 Jun 2009) | 1 line
wops
r7009 | tzork | 2009-06-12 07:25:14 -0400 (Fri, 12 Jun 2009) | 1 line
de-junk vehicles/racer.qc slightly.
r7010 | div0 | 2009-06-12 11:04:06 -0400 (Fri, 12 Jun 2009) | 2 lines
don't count DEATH_TELEFRAG against non-players as hit
r7011 | div0 | 2009-06-12 14:51:04 -0400 (Fri, 12 Jun 2009) | 2 lines
yay! dynamic assignment of places for bot scripting :)
r7012 | div0 | 2009-06-12 14:51:18 -0400 (Fri, 12 Jun 2009) | 2 lines
use dynamic place assignment
r7013 | div0 | 2009-06-12 14:53:05 -0400 (Fri, 12 Jun 2009) | 2 lines
fix broken alias in defaultNexuiz.cfg
r7014 | div0 | 2009-06-12 15:17:24 -0400 (Fri, 12 Jun 2009) | 2 lines
crifle: make a cvar whether to reload on switch, but don't use it yet
r7015 | div0 | 2009-06-12 15:22:33 -0400 (Fri, 12 Jun 2009) | 2 lines
menu cleanups
r7016 | mand1nga | 2009-06-12 18:02:05 -0400 (Fri, 12 Jun 2009) | 1 line
Reverted the changes in tracewalk calls introduced in r6891 as it breaks the CTF and ONS ai. It may break bot scripting, but a better solution has to be found. Slightly improved wandering hack :P
r7017 | mand1nga | 2009-06-12 18:51:14 -0400 (Fri, 12 Jun 2009) | 1 line
Less greediness + minor tweaks
r7018 | mand1nga | 2009-06-12 18:59:39 -0400 (Fri, 12 Jun 2009) | 1 line
Lowered smoothing of demo camera
r7019 | div0 | 2009-06-13 05:42:19 -0400 (Sat, 13 Jun 2009) | 2 lines
bot script: change var placeholder from $ to @ to not confuse console parser
r7020 | div0 | 2009-06-13 05:43:55 -0400 (Sat, 13 Jun 2009) | 2 lines
change $ to @ here too
r7021 | div0 | 2009-06-13 05:48:05 -0400 (Sat, 13 Jun 2009) | 2 lines
undo mand1nga's revert, and make it conditional on a bot_navigation_ignoreplayers cvar
r7022 | div0 | 2009-06-13 05:49:13 -0400 (Sat, 13 Jun 2009) | 2 lines
add that cvar
r7023 | div0 | 2009-06-13 13:03:14 -0400 (Sat, 13 Jun 2009) | 2 lines
bot scripting: be more persistent in moveto command, accept up to 10 failures to route
r7024 | div0 | 2009-06-13 13:09:26 -0400 (Sat, 13 Jun 2009) | 2 lines
don't display any damage for tuba, but hdie the warning
r7025 | div0 | 2009-06-13 13:26:29 -0400 (Sat, 13 Jun 2009) | 2 lines
two minor HUD patches; more persistence for bot scripting (if routing fails, they now have 20 seconds to walk around to random waypoints and find a route again)
r7026 | div0 | 2009-06-13 13:34:30 -0400 (Sat, 13 Jun 2009) | 2 lines
add more game types to menu fraglimit selector
r7027 | div0 | 2009-06-13 13:46:27 -0400 (Sat, 13 Jun 2009) | 2 lines
fix a warning
r7028 | div0 | 2009-06-13 13:49:38 -0400 (Sat, 13 Jun 2009) | 2 lines
more menu fixes
r7029 | div0 | 2009-06-13 14:37:04 -0400 (Sat, 13 Jun 2009) | 2 lines
DP_SV_BOUNCEFACTOR
r7030 | div0 | 2009-06-13 14:43:55 -0400 (Sat, 13 Jun 2009) | 2 lines
remove a double classname assignment; improve description
r7031 | div0 | 2009-06-13 15:12:38 -0400 (Sat, 13 Jun 2009) | 2 lines
louder tuba please
r7032 | div0 | 2009-06-13 15:33:07 -0400 (Sat, 13 Jun 2009) | 2 lines
fix zoomstate networking
r7033 | div0 | 2009-06-13 15:34:27 -0400 (Sat, 13 Jun 2009) | 2 lines
new cvar check :(
r7034 | div0 | 2009-06-13 15:41:27 -0400 (Sat, 13 Jun 2009) | 2 lines
up attempts from 10 to 30
r7035 | div0 | 2009-06-14 05:39:31 -0400 (Sun, 14 Jun 2009) | 2 lines
prefer waypoints of distance < 500 when finding random WPs to route to
r7036 | div0 | 2009-06-14 06:33:44 -0400 (Sun, 14 Jun 2009) | 2 lines
midi2cfg-ng: new command syntax, support multiple MIDIs (yet to be tested)
r7037 | div0 | 2009-06-14 06:34:20 -0400 (Sun, 14 Jun 2009) | 2 lines
support a new "intermission" command
r7038 | m0rfar | 2009-06-14 09:16:07 -0400 (Sun, 14 Jun 2009) | 1 line
aggressor fixes by terencehill och fruitex. #339
r7039 | m0rfar | 2009-06-14 10:20:45 -0400 (Sun, 14 Jun 2009) | 1 line
even more tooltip fixes by fruitiex. #322
r7040 | div0 | 2009-06-14 15:12:22 -0400 (Sun, 14 Jun 2009) | 2 lines
race level: change 33.3 seconds to 36.0 seconds to make it easier
r7041 | div0 | 2009-06-14 16:23:04 -0400 (Sun, 14 Jun 2009) | 2 lines
more elaborate :P
r7042 | div0 | 2009-06-15 06:21:13 -0400 (Mon, 15 Jun 2009) | 2 lines
do not do blur fort he tuba
r7043 | div0 | 2009-06-15 11:14:51 -0400 (Mon, 15 Jun 2009) | 2 lines
initialize
r7044 | mrbougo | 2009-06-15 15:32:06 -0400 (Mon, 15 Jun 2009) | 1 line
nexball changes: tweak bounciness using the new DP extension, add waypoint sprites, and radar support
r7045 | tzork | 2009-06-16 16:01:53 -0400 (Tue, 16 Jun 2009) | 1 line
add missing spiderbot crosshair
r7046 | mrbougo | 2009-06-16 16:31:44 -0400 (Tue, 16 Jun 2009) | 1 line
fix electro impact sound precache... thank you Ronan! :P
r7047 | tzork | 2009-06-16 17:55:03 -0400 (Tue, 16 Jun 2009) | 1 line
quick-fix for turret_flac 
r7048 | div0 | 2009-06-17 00:56:58 -0400 (Wed, 17 Jun 2009) | 2 lines
common.shader update
r7049 | div0 | 2009-06-17 01:51:48 -0400 (Wed, 17 Jun 2009) | 4 lines
remove the "creation" track as it is clearly non-GPL (can be restored if further clarification shows the opposite).
Also, we need some statement from elysis.
r7050 | div0 | 2009-06-17 11:48:43 -0400 (Wed, 17 Jun 2009) | 2 lines
new mutator: g_weaponarena none ;)
r7051 | div0 | 2009-06-17 12:43:35 -0400 (Wed, 17 Jun 2009) | 2 lines
work around another fteqcc bug...
r7052 | div0 | 2009-06-17 12:54:55 -0400 (Wed, 17 Jun 2009) | 2 lines
make bot command reading faster :P
r7053 | div0 | 2009-06-17 13:05:48 -0400 (Wed, 17 Jun 2009) | 2 lines
add a new .float maycheat ;)
r7054 | div0 | 2009-06-17 13:06:32 -0400 (Wed, 17 Jun 2009) | 2 lines
tuba too loud ;)
r7055 | div0 | 2009-06-18 01:51:34 -0400 (Thu, 18 Jun 2009) | 2 lines
fix missing tuba.shader, update texture
r7056 | div0 | 2009-06-18 01:54:24 -0400 (Thu, 18 Jun 2009) | 2 lines
tuba.shader
r7057 | mrbougo | 2009-06-18 06:37:43 -0400 (Thu, 18 Jun 2009) | 1 line
update cvar hashes
r7058 | div0 | 2009-06-18 16:44:03 -0400 (Thu, 18 Jun 2009) | 2 lines
new parameter "leadlimit", abort the game if someone leads by that amount
r7059 | div0 | 2009-06-18 17:14:42 -0400 (Thu, 18 Jun 2009) | 2 lines
midi2cfg improvements ;)
r7060 | div0 | 2009-06-18 17:55:29 -0400 (Thu, 18 Jun 2009) | 2 lines
avoid using the same bot name again
r7061 | div0 | 2009-06-19 07:02:13 -0400 (Fri, 19 Jun 2009) | 2 lines
fix screen resolutions, add eeepc resolutions
r7062 | div0 | 2009-06-20 13:59:51 -0400 (Sat, 20 Jun 2009) | 2 lines
fix crash in bot clear queue
r7063 | div0 | 2009-06-20 16:33:40 -0400 (Sat, 20 Jun 2009) | 2 lines
new cvar bot_sound_monopoly allows only bots to make noise; new sbar background
r7064 | div0 | 2009-06-20 17:10:41 -0400 (Sat, 20 Jun 2009) | 2 lines
fix bot_sound_monopoly cvar
r7065 | div0 | 2009-06-21 06:14:36 -0400 (Sun, 21 Jun 2009) | 3 lines
PLAYER MODEL FORCING. Highly experimental. cl_forcemodels shows all enemies as your current model and skin; cl_forcemodelsfromnexuiz applies that only to players using a model that does not come with Nexuiz (e.g. to not see NSFW models or cows).
cl_forcemodels can be deactivated by the server admin using sv_clforcemodels 0. cl_forcemodelsfromnexuiz is always allowed.
r7066 | div0 | 2009-06-21 06:17:32 -0400 (Sun, 21 Jun 2009) | 2 lines
actually read sv_clforceplayermodels
r7067 | div0 | 2009-06-21 06:32:18 -0400 (Sun, 21 Jun 2009) | 2 lines
fix latest commit ;)
r7068 | div0 | 2009-06-21 06:35:39 -0400 (Sun, 21 Jun 2009) | 2 lines
when forcing models, do not allow the fbskins
r7069 | div0 | 2009-06-21 06:38:24 -0400 (Sun, 21 Jun 2009) | 2 lines
forbid the fbskin when forcing player models
r7070 | div0 | 2009-06-21 06:44:11 -0400 (Sun, 21 Jun 2009) | 2 lines
add new options
r7071 | div0 | 2009-06-21 07:13:53 -0400 (Sun, 21 Jun 2009) | 2 lines
undo an accidental commit
r7072 | div0 | 2009-06-21 07:14:35 -0400 (Sun, 21 Jun 2009) | 2 lines
add warnings to player model forcing cvars
r7073 | div0 | 2009-06-21 15:31:17 -0400 (Sun, 21 Jun 2009) | 2 lines
animinfo: treat more than 3 tokens not as error (as dpmodel writes that now to specify whether the scene is looped)
r7074 | div0 | 2009-06-21 16:23:07 -0400 (Sun, 21 Jun 2009) | 2 lines
make all weapon animations self-play in the engine
r7075 | div0 | 2009-06-22 02:33:16 -0400 (Mon, 22 Jun 2009) | 2 lines
fix teleport bit handling: only when restarting the SAME anim
r7076 | div0 | 2009-06-22 06:50:16 -0400 (Mon, 22 Jun 2009) | 2 lines
fix loop in sound_allowed
r7077 | div0 | 2009-06-22 07:07:06 -0400 (Mon, 22 Jun 2009) | 2 lines
potential fix for clones
r7078 | div0 | 2009-06-23 05:57:51 -0400 (Tue, 23 Jun 2009) | 2 lines
undo the skin index restriction
r7079 | morphed | 2009-06-23 10:52:41 -0400 (Tue, 23 Jun 2009) | 1 line
content for m0rfars team colored coronas idea
r7080 | mrbougo | 2009-06-23 12:22:55 -0400 (Tue, 23 Jun 2009) | 1 line
nexball: little something I forgot to commit: show all players on the radar
r7081 | mrbougo | 2009-06-23 15:07:24 -0400 (Tue, 23 Jun 2009) | 1 line
make the radar change potentially usable for other gamemodes, and less expensive too
r7082 | div0 | 2009-06-23 15:12:20 -0400 (Tue, 23 Jun 2009) | 4 lines
directhit fix;
currentammo;
scoring sliders fix
r7083 | div0 | 2009-06-23 15:23:10 -0400 (Tue, 23 Jun 2009) | 2 lines
HUD fixes v3; breaking currentammo :(
r7084 | div0 | 2009-06-23 15:27:08 -0400 (Tue, 23 Jun 2009) | 2 lines
fix currentammo patch again
r7085 | div0 | 2009-06-23 15:38:05 -0400 (Tue, 23 Jun 2009) | 2 lines
sprites in xscale
r7086 | div0 | 2009-06-23 15:41:18 -0400 (Tue, 23 Jun 2009) | 2 lines
hud mediasource
r7087 | div0 | 2009-06-23 15:41:19 -0400 (Tue, 23 Jun 2009) | 2 lines
rename a field in waypointsprites
r7088 | div0 | 2009-06-23 15:42:20 -0400 (Tue, 23 Jun 2009) | 2 lines
rename another field
r7089 | div0 | 2009-06-23 16:15:10 -0400 (Tue, 23 Jun 2009) | 2 lines
healthbars for sprites (currently unused)
r7090 | div0 | 2009-06-23 16:21:37 -0400 (Tue, 23 Jun 2009) | 2 lines
use a healthbar for powerup respawns


Modified: branches/nexuiz-2.0/.patchsets
===================================================================
--- branches/nexuiz-2.0/.patchsets	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/.patchsets	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,2 +1,2 @@
 master = svn://svn.icculus.org/nexuiz/trunk
-revisions_applied = 1-6974
+revisions_applied = 1-7090

Modified: branches/nexuiz-2.0/data/build-compat-pack.sh
===================================================================
--- branches/nexuiz-2.0/data/build-compat-pack.sh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/build-compat-pack.sh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -257,6 +257,7 @@
 	textures/tuba_gloss.tga
 	textures/tuba_glow.tga
 	textures/tuba.tga
+	scripts/tuba.shader
 "
 
 rm -rf pack

Modified: branches/nexuiz-2.0/data/defaultHavoc.cfg
===================================================================
--- branches/nexuiz-2.0/data/defaultHavoc.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/defaultHavoc.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -30,7 +30,6 @@
 set g_projectiles_newton_style 0
 seta menu_skin "simplygray"
 set menu_slist_modfilter "havoc"
-set menu_cdtrack creation
 
 exec physicsHavoc.cfg
 exec weaponsHavoc.cfg

Modified: branches/nexuiz-2.0/data/defaultNexuiz.cfg
===================================================================
--- branches/nexuiz-2.0/data/defaultNexuiz.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/defaultNexuiz.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -24,7 +24,7 @@
 seta g_configversion 0	"Configuration file version (used to upgrade settings) 0: first run, or previous start was <2.4.1  Later, it's overridden by config.cfg, version ranges are defined in config_update.cfg"
 
 // default.cfg versioning (update using update-cvarcount.sh, run that every time after adding a new cvar)
-set cvar_check_default 265422ea51f974b6529d2414fb9e9d75
+set cvar_check_default 40e11dd2f984335c9e27adf5beccb2d1
 
 // Nexuiz version (formatted for machines)
 // used to determine if a client version is compatible
@@ -211,6 +211,8 @@
 vid_conwidth 800
 vid_conheight 600
 set sbar_hudselector 1	"0 = old style hud layout, 1 = new nexuiz hud layout, 2 = combined health and armor display"
+set sbar_hud_accuracy 0 "1 = weapon accuracy on HUD"
+set sbar_showcurrentammo 0 "set to 1 to see only the ammo of the current ammo or 0 to see all 4 ammo counts"
 v_deathtilt 0 // needed for spectators (who are dead to avoid prediction)
 sbar_info_pos 50
 
@@ -283,6 +285,8 @@
 seta cl_particles_oldnexbeam 0 "Uses the old v2.3 Nexgun beam instead of the new beam, only works if server allows it (g_allow_oldnexbeam 1)"
 set sv_qcweaponanimation 0
 
+set g_telefrags 1
+
 // use default physics
 exec physics25.cfg
 
@@ -350,6 +354,7 @@
 set bot_ai_thinkinterval 0.05
 set bot_ai_strategyinterval 3 "How often a new objective is chosen"
 set bot_ai_enemydetectioninterval 0.5 "How often bots pick a new target"
+set bot_ai_enemydetectionradius 10000 "How far bots can see enemies"
 set bot_ai_dodgeupdateinterval 0.1 "How often scan for items to dodge. Currently not in use."
 set bot_ai_chooseweaponinterval 0.3 "How often the best weapon according to the situation will be chosen"
 set bot_ai_dangerdetectioninterval 0.1 "How often scan for waypoints with dangers near"
@@ -402,7 +407,8 @@
 
 locs_enable 0
 pausable 0
-set g_antilag 2	"AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past, 3 = unverified client side hit scan)"
+seta g_spawnshieldtime 0 "number of seconds you are invincible after you spawned, this shield is lost after you fire"
+seta g_antilag 2	"AntiLag (0 = no AntiLag, 1 = verified client side hit scan, 2 = server side hit scan in the past, 3 = unverified client side hit scan)"
 set g_antilag_bullets 1 "Bullets AntiLag (0 = no AntiLag, 1 = server side hit scan in the past) - DO NOT TOUCH (severely changes weapon balance)"
 set g_shootfromeye 0 "shots are fired from your eye/crosshair"
 set g_shootfromcenter 0 "weapon gets moved to the center, shots still come from the barrel of your weapon"
@@ -426,7 +432,6 @@
 set g_laserguided_missile 0 "if set to 1 the rockets of the rocket launcher can be steered using a laserpointer"
 set g_midair 0 "if set to 1 you can only apply damage to your opponent while he is airborne"
 set g_midair_shieldtime 0.3 "number of seconds you are still invincible since you lost contact to the ground"
-set g_spawnshieldtime 0 "number of seconds you are invincible after you spawned, this shield is lost after you fire"
 set g_spawnsound 1 "set to 0 if you don't want to hear the spawn sound when a player spawns"
 set g_spawnpoints_autodrop 0 "if set to 1, automatically drop spawn point locations if they were placed too high"
 set g_spawnpoints_auto_move_out_of_solid 0 "if set to 1 you will see a warning if a spawn point was placed inside a solid"
@@ -458,16 +463,23 @@
 set g_balance_grapplehook_health 130
 exec newhook.cfg
 
+set leadlimit 0
+
 // this means that timelimit can be overidden globally and fraglimit can be overidden for each game mode: DM/TDM, Domination, CTF, and Runematch.
 seta timelimit_override -1	"Time limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 seta fraglimit_override -1	"Frag limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta capturelimit_override -1	"Capture limit limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta leadlimit_override -1	"Lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta capturelimit_override -1	"Capture limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 seta g_ctf_capture_limit -1	"CTF capture limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_domination_point_limit -1	"Domination point limit limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_runematch_point_limit -1	"Runematch point limit limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_keyhunt_point_limit -1	"Keyhunt point limit limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_race_laps_limit -1	"Race laps limit limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
-seta g_nexball_goallimit -1 "Nexball goal limit limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_domination_point_limit -1	"Domination point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_domination_point lead_leadlimit -1	"Domination point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_runematch_point_limit -1	"Runematch point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_runematch_point_leadlimit -1	"Runematch point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_keyhunt_point_limit -1	"Keyhunt point limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_keyhunt_point_leadlimit -1	"Keyhunt point lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_race_laps_limit -1	"Race laps limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_nexball_goallimit -1 "Nexball goal limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
+seta g_nexball_goalleadlimit -1 "Nexball goal lead limit overriding the mapinfo specified one (use 0 to play without limit, and -1 to use the mapinfo's limit)"
 
 seta g_ctf_win_mode 0	"0: captures only, 1: captures, then points, 2: points only"
 seta g_ctf_ignore_frags 0	"1: regular frags give no points"
@@ -685,6 +697,10 @@
 //     The 1st Rev boost is always horizontal
 //     The 2nd Rev boost is always vertical
 set g_nexball_football_physics  2  "0: Revenant's original movement, 1: 0 but half independant of aiming height, 2: 1 fully independant, -1: first recode try"
+set g_nexball_basketball_bouncefactor 0.6    "velocity loss when the ball bounces"
+set g_nexball_basketball_bouncestop   0.075  "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)"
+set g_nexball_football_bouncefactor   0.6    "velocity loss when the ball bounces"
+set g_nexball_football_bouncestop     0.075  "speed at which the ball stops when it hits the ground (multiplied by sv_gravity)"
 
 set g_nexball_football_boost_forward      100   "forward velocity boost when the ball is touched"
 set g_nexball_football_boost_up           200   "vertical velocity boost when the ball is touched"
@@ -711,6 +727,8 @@
 set g_nexball_football_trail    0  "1 to leave a trail"
 set g_nexball_trail_color     254  "1-256 for different colors (Quake palette, 254 is white)"
 
+set g_nexball_radar_showallplayers 1  "1: show every player and the ball on the radar  0: only show teammates and the ball on the radar"
+
 // server game balance settings
 set g_balance_armor_regen 0
 set g_balance_armor_rot 0.1
@@ -904,6 +922,7 @@
 bind F12 screenshot
 bind F4 ready
 bind m radar
+bind ALT +showaccuracy
 
 // Gamepad defaults. Tested with Logitech Rumblepad 2, I hope similar ones works as well.
 bind JOY1 "+crouch"
@@ -1069,9 +1088,6 @@
 seta cl_shownames 1	"show player names pointed to (0: never, 1: teamplay only, 2: always)"
 set sv_allow_shownames 1
 
-net_banlist ""
-seta _alientrap_net_banlist ""
-
 set g_waypoints_for_items 1	"make waypoints out of items, values: 0 = never, 1 = unless the mapper prevents it by worldspawn.spawnflags & 1, 2 = always"
 
 set g_projectiles_newton_style 2
@@ -1259,7 +1275,7 @@
 seta sbar_color_bg_r 0 "red color component of the HUD background"
 seta sbar_color_bg_g 0.25 "green color component of the HUD background"
 seta sbar_color_bg_b 0.17 "blue color component of the HUD background"
-seta sbar_color_bg_team 0.5 "team color multiplier of the HUD background"
+seta sbar_color_bg_team 0.25 "team color multiplier of the HUD background"
 
 // for menu server list (eventually make them have engine support?)
 seta menu_slist_showfull 1 "show servers even if they are full and have no slots to join"
@@ -1276,8 +1292,8 @@
 
 // command executed before loading a map by the menu
 // makes sure maxplayers is at least minplayers or bot_number + 1
-alias _menu_loadmap_prepare_setmaxplayers "maxplayers $_menu_loadmap_maxplayers"
-alias menu_loadmap_prepare "disconnect; wait; g_campaign 0; menu_cmd rpn /_menu_loadmap_maxplayers menu_maxplayers minplayers bot_number 1 add max max def; _menu_loadmap_prepare_setmaxplayers; g_maplist_shufflenow"
+alias _menu_loadmap_prepare_maxpl "maxplayers $_menu_loadmap_maxplayers"
+alias menu_loadmap_prepare "disconnect; wait; g_campaign 0; menu_cmd rpn /_menu_loadmap_maxplayers menu_maxplayers minplayers bot_number 1 add max max def; _menu_loadmap_prepare_maxpl; g_maplist_shufflenow"
 
 // useful vote aliases
 set timelimit_increment 5
@@ -1346,7 +1362,7 @@
 set sv_foginterval 0
 
 // Audio track names (for old-style "cd loop NUMBER" usage)
-set g_cdtracks_remaplist "digital-pursuit breakdown-easy brainsukker chaos-fog infight neuronal-diving subcities thru-the-mirror calling-bogus beast-of-insanity thunder creation brokenlight stairs sixtyfour_ desert3 ninesix sixtyfour_revisited" "list used by mapinfo system to automatically assign cdtracks - must match the cd remap command"
+set g_cdtracks_remaplist "digital-pursuit breakdown-easy brainsukker chaos-fog infight neuronal-diving subcities thru-the-mirror calling-bogus beast-of-insanity thunder brokenlight brokenlight stairs sixtyfour_ desert3 ninesix sixtyfour_revisited" "list used by mapinfo system to automatically assign cdtracks - must match the cd remap command"
 set g_cdtracks_dontusebydefault "digital-pursuit thunder brokenlight" "list used by mapinfo system to automatically assign cdtracks - must be a subset of g_cdtracks_remaplist"
 cd remap $g_cdtracks_remaplist
 set sv_intermission_cdtrack ""
@@ -1409,7 +1425,7 @@
 
 set g_maplist_allow_hidden 0	"allow hidden maps to be, e.g., voted for and in the maplist"
 
-set g_start_delay 0	"delay before the game starts, so everyone can join; recommended to set this to like 15 on a public server"
+seta g_start_delay 0	"delay before the game starts, so everyone can join; recommended to set this to like 15 on a public server"
 	if_dedicated set g_start_delay 15
 
 alias ons_map           "cl_cmd radar" // legacy alias
@@ -1508,7 +1524,7 @@
 set camera_speed_roll 		0.9	"Camera rotation speed"
 set camera_speed_chase 		4	"Camera movement speed on the x/y/z axis while chasing the player"
 set camera_speed_free 		8	"Camera movement speed on the x/y/z axis in free mode"
-set camera_speed_attenuation 	30	"Camera movements attenuation factor. Bigger is smoother. Applies to mouse movements"
+set camera_speed_attenuation 	10	"Camera movements attenuation factor. Bigger is smoother. Applies to mouse movements"
 set camera_mouse_treshold 	0.5	"Use to ignore small mouse movements. This allows for smoother camera control"
 set camera_chase_smoothly 	0	"Attenuate player movements (only in chase mode)"
 set camera_look_player		0	"Always look to the player. Mouse input is ignored in this mode"
@@ -1524,6 +1540,11 @@
 seta cl_showpressedkeys	0	"Show which movement keys someone is pressing: 1 for spectating, 2 for always"
 set cl_showpressedkeys_position "1 0.8"	"1 0 would be upper right corner, 0.5 0.5 the center"
 
+seta cl_showspeed 0 "show the XY speed of the player"
+seta cl_showspeed_z 0 "include the speed on the Z-axis"
+seta cl_showspeed_size 14 "size of the numbers"
+seta cl_showspeed_position 0.3 "Y-axis positioning of the numbers"
+
 set g_jetpack 0 "Jetpack mutator (uses the hook's button, can't coexist with the offhand hook, but only with the onhand one)"
 set g_jetpack_antigravity 0.8 "factor of gravity compensation of the jetpack"
 set g_jetpack_acceleration_side 1200 "acceleration of the jetpack in xy direction"
@@ -1531,6 +1552,7 @@
 set g_jetpack_maxspeed_side 1500 "max speed of the jetpack in xy direction"
 set g_jetpack_maxspeed_up 600 "max speed of the jetpack in z direction"
 set g_jetpack_fuel 8 "fuel per second for jetpack"
+set g_jetpack_attenuation 2 "jetpack sound attenuation"
 
 set g_balance_fuel_regen 0.1 "fuel regeneration (only applies if the player owns IT_FUEL_REGEN)"
 set g_balance_fuel_rot 0.05
@@ -1560,3 +1582,10 @@
 rcon_secure 1
 
 set menu_updatecheck 1
+
+set bot_navigation_ignoreplayers 0 // FIXME remove this once the issue is solved
+set bot_sound_monopoly 0 "when enabled, only bots can make any noise"
+
+seta cl_forceplayermodels 0 "force all players to look like you; WARNING: animations can look very bad with this"
+seta cl_forceplayermodelsfromnexuiz 0 "force models coming from nexuiz; WARNING: animations can look very bad with this"
+set sv_clforceplayermodels 1 "allow clients to use cl_forcemodels"

Modified: branches/nexuiz-2.0/data/effectinfo.txt
===================================================================
--- branches/nexuiz-2.0/data/effectinfo.txt	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/effectinfo.txt	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1199,7 +1199,7 @@
 type alphastatic
 color 0x666666 0x000000
 tex 62 62
-size 1 1 
+size 1 1
 sizeincrease -0.1
 trailspacing 1
 alpha 256 256 720
@@ -2588,30 +2588,31 @@
 airfriction 2
 
 
-// smoke
-// used nowhere in code
-effect EF_MGTURRETTRAIL
-notunderwater
-trailspacing 2
-type smoke
-color 0xd0d0a0 0xfffff0
-tex 0 8
-size 6 2
-alpha 16 32 16
-// bubbles
-effect EF_MGTURRETTRAIL
-underwater
-trailspacing 16
-type bubble
-tex 62 62
-color 0x404040 0x808080
-size 1 1
-alpha 256 256 256
-gravity -0.125
-bounce 1.5
-liquidfriction 4
+// smoke
+effect EF_MGTURRETTRAIL
+notunderwater
+trailspacing 5
+type smoke
+color 0xd0d0a0 0xffffff
+tex 0 8
+size 5 4
+alpha 128 196 768
+sizeincrease -8
+gravity -0.01
+// bubbles
+effect EF_MGTURRETTRAIL
+underwater
+trailspacing 16
+type bubble
+tex 62 62
+color 0x404040 0x808080
+size 1 1
+alpha 256 256 256
+gravity -0.125
+bounce 1.5
+liquidfriction 4
 velocityjitter 16 16 16
-
+
 //fire_big
 //fire
 // used nowhere in code
@@ -2779,7 +2780,7 @@
 
 //golden dust (create it once per second to cover large area in small yellow particles)
 // used nowhere in code
-effect goldendust  
+effect goldendust
 count 50
 type snow
 tex 38 38
@@ -2857,7 +2858,7 @@
 velocityjitter 25 25 25
 airfriction 2
 
-// pieces of glass or ice falling on the floor 
+// pieces of glass or ice falling on the floor
 // used nowhere in code
 effect iceorglass
 count 30
@@ -2906,7 +2907,7 @@
 velocityjitter 5 5 30
 airfriction 1
 effect icefield
-count 10 
+count 10
 type smoke
 tex 48 55
 size 1 1
@@ -2925,7 +2926,7 @@
 type smoke
 tex 48 55
 color 0x8f0d00 0xff5a00
-size 1 1 
+size 1 1
 sizeincrease 20
  gravity -0.06
 alpha 50 256 200
@@ -2939,7 +2940,7 @@
 type smoke
 tex 48 55
 color 0x8f0d00 0xff5a00
-size 1 1 
+size 1 1
 sizeincrease 40
 alpha 50 256 200
 originjitter 180 180 0
@@ -2963,7 +2964,7 @@
 type smoke
 tex 48 55
 color 0x8f0d00 0xff5a00
-size 5 5 
+size 5 5
 sizeincrease 20
  gravity -0.06
 alpha 50 256 250
@@ -2977,7 +2978,7 @@
 type smoke
 tex 48 55
 color 0x8f0d00 0xff5a00
-size 5 5 
+size 5 5
 sizeincrease 20
  gravity -0.06
 alpha 50 256 200
@@ -2991,7 +2992,7 @@
 type smoke
 tex 48 55
 color 0x8f0d00 0xff5a00
-size 5 5 
+size 5 5
 sizeincrease 10
  gravity -0.06
 alpha 50 256 200

Deleted: branches/nexuiz-2.0/data/gfx/colormap_palette.base
===================================================================
--- branches/nexuiz-2.0/data/gfx/colormap_palette.base	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/gfx/colormap_palette.base	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,26 +0,0 @@
-0.800000 0.800000 0.800000
-0.600000 0.400000 0.000000
-0.000000 1.000000 0.501961
-0.000000 1.000000 0.000000
-1.000000 0.000000 0.000000
-0.000000 0.501961 1.000000
-0.000000 1.000000 1.000000
-0.501961 1.000000 0.000000
-0.501961 0.000000 1.000000
-1.000000 0.000000 1.000000
-1.000000 0.000000 0.501961
-0.600000 0.600000 0.600000
-1.000000 1.000000 0.000000
-0.000000 0.000000 1.000000
-1.000000 0.501961 0.000000
-0.000000 0.000000 0.000000
-
-processing of player colors:
-:'<,'>!perl -pe '$_ = sprintf "\%s\n", unpack "H6", pack "CCC", map { $_ * 15/16 + 255/16 } unpack "CCC", pack "H6", $_'                     
-(put 1/16 white on them so other-colored light still affects them a bit)
-
-processing of scoreboard colors:
-:'<,'>!perl -pe '$_ = sprintf "\%s\n", unpack "H6", pack "CCC", map { $_ * 0.7 + 0.5 } unpack "CCC", pack "H6", $_'
-(made them darker by 30%)
-
-red has been darkened further manually

Modified: branches/nexuiz-2.0/data/gfx/colormap_palette.lmp
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/gfx/colormap_palette.pl (from rev 7090, trunk/data/gfx/colormap_palette.pl)
===================================================================
--- branches/nexuiz-2.0/data/gfx/colormap_palette.pl	                        (rev 0)
+++ branches/nexuiz-2.0/data/gfx/colormap_palette.pl	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,43 @@
+use strict;
+use warnings;
+
+my @colors = (
+	'cccccc',
+	'996600',
+	'00ff80',
+	'00ff00',
+	'ff0000',
+	'00a8ff', # was: 0080ff, green increased
+	'00ffff',
+	'80ff00',
+	'8000ff',
+	'ff00ff',
+	'ff0080',
+	'999999',
+	'ffff00',
+	'0050ff', # was: 0000ff, green increased so the color is perceptively just as bright as red (for teamplay)
+	'ff8000',
+	'000000'
+);
+
+my $value_min = 0x0F;
+my $value_max = 0xFF;
+my $value_smin = 0x00;
+my $value_smax = 0xB3;
+
+my $i = 0;
+my $pal_colormap = "";
+my $pal_scoreboard = "";
+for(@colors)
+{
+	/^(..)(..)(..)$/ or die "invalid color spec: $_";
+	my $r = hex $1;
+	my $g = hex $2;
+	my $b = hex $3;
+	$pal_colormap .= sprintf "%c%c%c", map { int(0.5 + $value_min + ($_ * 1.0 / 0xFF) * ($value_max - $value_min)) } $r, $g, $b;
+	$pal_scoreboard .= sprintf "%c%c%c", map { int(0.5 + $value_smin + ($_ * 1.0 / 0xFF) * ($value_smax - $value_smin)) } $r, $g, $b;
+	printf STDERR "\t\tcase %2d: return '%f %f %f';\n", $i, $r / 0xFF, $g / 0xFF, $b / 0xFF;
+	++$i;
+}
+
+print "$pal_colormap$pal_scoreboard$pal_colormap$pal_scoreboard";

Copied: branches/nexuiz-2.0/data/gfx/hud/sb_accuracy.tga (from rev 7090, trunk/data/gfx/hud/sb_accuracy.tga)
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/gfx/hud/sb_timerbg.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/gfx/hud/sbar.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/gfx/inv_weapon15.tga
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/gfx/spiderbot (from rev 7090, trunk/data/gfx/spiderbot)

Modified: branches/nexuiz-2.0/data/keybinds.txt
===================================================================
--- branches/nexuiz-2.0/data/keybinds.txt	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/keybinds.txt	2009-07-11 14:55:44 UTC (rev 7190)
@@ -31,6 +31,7 @@
 ""                                      "View"
 "+zoom"                                 "zoom"
 "+showscores"                           "show scores"
+"+showaccuracy"				"show accuracy"
 "screenshot"                            "screen shot"
 "radar"                                 "toggle full radar"
 ""                                      ""

Modified: branches/nexuiz-2.0/data/maps/aggressor/lm_0000.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/maps/aggressor/lm_0001.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/maps/aggressor.bsp
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/maps/aggressor.map
===================================================================
--- branches/nexuiz-2.0/data/maps/aggressor.map	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/maps/aggressor.map	2009-07-11 14:55:44 UTC (rev 7190)
@@ -235,38 +235,38 @@
 }
 // brush 26
 {
-( 144 -64 0 ) ( 144 -136 0 ) ( 144 -64 16 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 191 -56 -256 ) ( 191 -80 -256 ) ( 207 -56 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 192 -224 -42 ) ( 216 -224 -58 ) ( 192 -224 -58 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 115 -288 -160 ) ( 115 -320 -144 ) ( 131 -288 -160 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
-( 115 -192 -192 ) ( 115 -160 -208 ) ( 131 -192 -192 ) e7/e7panelwood2 0 0 0 0.5 0.5 134217728 0 0
-( 128 -288 -112 ) ( 128 -672 -112 ) ( 128 -672 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 144 -64 0 ) ( 144 -136 0 ) ( 144 -64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 191 -56 -256 ) ( 191 -80 -256 ) ( 207 -56 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 192 -224 -42 ) ( 216 -224 -58 ) ( 192 -224 -58 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 115 -288 -160 ) ( 115 -320 -144 ) ( 131 -288 -160 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
+( 115 -192 -192 ) ( 115 -160 -208 ) ( 131 -192 -192 ) e7/e7panelwood2 0 0 0 0.5 0.5 0 0 0
+( 128 -288 -112 ) ( 128 -672 -112 ) ( 128 -672 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
 // brush 27
 {
-( 0 -64 0 ) ( 0 -136 0 ) ( 0 -64 16 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 47 -56 -256 ) ( 47 -80 -256 ) ( 63 -56 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 48 -224 -42 ) ( 72 -224 -58 ) ( 48 -224 -58 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -29 -288 -160 ) ( -29 -320 -144 ) ( -13 -288 -160 ) e7/e7panelwood2 -256 -232 -180 0.5 0.5 134217728 0 0
-( -29 -192 -192 ) ( -29 -160 -208 ) ( -13 -192 -192 ) e7/e7panelwood2 -224 0 0 0.5 0.5 134217728 0 0
-( -16 -288 -112 ) ( -16 -672 -112 ) ( -16 -672 -192 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
+( 0 -64 0 ) ( 0 -136 0 ) ( 0 -64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 47 -56 -256 ) ( 47 -80 -256 ) ( 63 -56 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 48 -224 -42 ) ( 72 -224 -58 ) ( 48 -224 -58 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -29 -288 -160 ) ( -29 -320 -144 ) ( -13 -288 -160 ) e7/e7panelwood2 -256 -232 -180 0.5 0.5 0 0 0
+( -29 -192 -192 ) ( -29 -160 -208 ) ( -13 -192 -192 ) e7/e7panelwood2 -224 0 0 0.5 0.5 0 0 0
+( -16 -288 -112 ) ( -16 -672 -112 ) ( -16 -672 -192 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
 // brush 28
 {
-( -148 -384 0 ) ( -96 -384 0 ) ( -148 -384 16 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 32 -413 -192 ) ( 64 -413 -208 ) ( 32 -397 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -304 -320 ) ( 0 -328 -320 ) ( 0 -304 -304 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -448 -272 -160 ) ( -64 -272 -160 ) ( -64 -392 -160 ) e7/e7panelwood2 256 -1 -90 0.5 0.5 134217728 0 0
-( -448 -400 -224 ) ( -448 -400 -144 ) ( -64 -400 -144 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -148 -384 0 ) ( -96 -384 0 ) ( -148 -384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 32 -413 -192 ) ( 64 -413 -208 ) ( 32 -397 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -304 -320 ) ( 0 -328 -320 ) ( 0 -304 -304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -448 -272 -160 ) ( -64 -272 -160 ) ( -64 -392 -160 ) e7/e7panelwood2 256 -1 -90 0.5 0.5 0 0 0
+( -448 -400 -224 ) ( -448 -400 -144 ) ( -64 -400 -144 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
 // brush 29
 {
-( -148 -384 0 ) ( -96 -384 0 ) ( -148 -384 16 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -336 -34 ) ( 0 -312 -50 ) ( 0 -336 -50 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -96 -397 -144 ) ( -128 -413 -128 ) ( -96 -413 -144 ) e7/e7trim01 0 -30 -180 0.5 0.5 134217728 0 0
-( 0 -397 -176 ) ( 32 -413 -192 ) ( 0 -413 -176 ) e7/e7panelwood2 -257 0 -90 0.5 0.5 134217728 0 0
-( -192 -296 -224 ) ( -192 -320 -240 ) ( -192 -296 -240 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -480 -400 -176 ) ( -480 -400 -96 ) ( -96 -400 -96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -148 -384 0 ) ( -96 -384 0 ) ( -148 -384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -336 -34 ) ( 0 -312 -50 ) ( 0 -336 -50 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -96 -397 -144 ) ( -128 -413 -128 ) ( -96 -413 -144 ) e7/e7trim01 0 -30 -180 0.5 0.5 0 0 0
+( 0 -397 -176 ) ( 32 -413 -192 ) ( 0 -413 -176 ) e7/e7panelwood2 -257 0 -90 0.5 0.5 0 0 0
+( -192 -296 -224 ) ( -192 -320 -240 ) ( -192 -296 -240 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -480 -400 -176 ) ( -480 -400 -96 ) ( -96 -400 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
 // brush 30
 {
@@ -1622,14 +1622,6 @@
 }
 // brush 182
 {
-( -336 272 163 ) ( -312 272 163 ) ( -336 272 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -352 288 186 ) ( -320 256 170 ) ( -352 288 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -320 500 432 ) ( -344 516 432 ) ( -320 516 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -352 504 128 ) ( -352 256 128 ) ( -320 256 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -320 256 128 ) ( -320 256 376 ) ( -320 504 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-}
-// brush 183
-{
 ( -16 544 163 ) ( -32 560 163 ) ( -16 544 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 1040 163 ) ( -16 1056 163 ) ( -32 1040 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 609 304 ) ( -32 609 280 ) ( -32 625 304 ) e7/e7trim01 1 -29 -540 0.5 0.5 0 0 0
@@ -1640,7 +1632,7 @@
 ( 0 544 272 ) ( 0 928 272 ) ( 0 928 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -8 1056 272 ) ( -24 1056 272 ) ( -24 1056 192 ) common/caulk -32 0 0 0.5 0.5 0 4 0
 }
-// brush 184
+// brush 183
 {
 ( -8 480 272 ) ( -120 480 272 ) ( -120 408 272 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -120 408 288 ) ( -120 480 288 ) ( -8 480 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1649,7 +1641,7 @@
 ( 8 496 288 ) ( -104 496 288 ) ( -104 496 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 472 288 ) ( -352 400 288 ) ( -352 400 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 185
+// brush 184
 {
 ( 248 456 163 ) ( 152 360 163 ) ( 248 456 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 184 560 163 ) ( 240 504 163 ) ( 184 560 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1661,7 +1653,7 @@
 ( 240 560 288 ) ( 128 560 288 ) ( 128 560 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 8 464 288 ) ( 8 392 288 ) ( 8 392 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 186
+// brush 185
 {
 ( 144 360 272 ) ( 32 360 272 ) ( 32 288 272 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( 32 288 288 ) ( 32 360 288 ) ( 144 360 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1670,7 +1662,7 @@
 ( 144 352 288 ) ( 32 352 288 ) ( 32 352 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 360 288 ) ( 32 288 288 ) ( 32 288 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 187
+// brush 186
 {
 ( 256 512 163 ) ( 240 504 163 ) ( 256 512 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 576 256 ) ( 280 464 272 ) ( 288 480 256 ) e7/e7walldesign01b 4 -852 -405 0.5 0.5 0 0 0
@@ -1678,7 +1670,7 @@
 ( 192 576 195 ) ( 288 480 195 ) ( 192 576 211 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 464 272 ) ( 184 464 272 ) ( 184 576 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 188
+// brush 187
 {
 ( 8 496 163 ) ( 0 512 163 ) ( 8 496 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 576 163 ) ( 72 560 163 ) ( 64 576 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1686,7 +1678,7 @@
 ( -32 480 195 ) ( 64 576 195 ) ( -32 480 211 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 80 576 272 ) ( 80 472 272 ) ( -32 472 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 189
+// brush 188
 {
 ( 256 448 256 ) ( 144 360 272 ) ( 160 352 256 ) e7/e7walldesign01b 144 -2208 -495 0.5 0.5 0 0 0
 ( 160 352 195 ) ( 144 360 195 ) ( 160 352 211 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1694,7 +1686,7 @@
 ( 256 448 195 ) ( 160 352 195 ) ( 256 448 211 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 352 272 ) ( 144 456 272 ) ( 256 456 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 190
+// brush 189
 {
 ( 192 576 163 ) ( 184 560 163 ) ( 192 576 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 72 560 163 ) ( 64 576 163 ) ( 72 560 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1702,7 +1694,7 @@
 ( -232 576 272 ) ( 88 576 272 ) ( 88 560 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 88 576 336 ) ( -232 576 336 ) ( -232 576 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 191
+// brush 190
 {
 ( 256 448 163 ) ( 240 456 163 ) ( 256 448 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 240 504 163 ) ( 256 512 163 ) ( 240 504 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1710,7 +1702,7 @@
 ( 240 440 272 ) ( 256 440 272 ) ( 256 120 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 120 256 ) ( 256 120 336 ) ( 256 440 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 192
+// brush 191
 {
 ( 0 256 16 ) ( -16 272 0 ) ( 0 256 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 287 256 ) ( -104 271 256 ) ( -216 271 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1719,7 +1711,7 @@
 ( -80 3 128 ) ( -56 3 128 ) ( -80 19 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 272 512 ) ( -80 272 512 ) ( -80 272 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 193
+// brush 192
 {
 ( 0 256 16 ) ( -16 272 0 ) ( 0 256 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 160 256 ) ( -256 160 128 ) ( 0 176 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1727,7 +1719,7 @@
 ( -80 -13 128 ) ( -56 -13 128 ) ( -80 3 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 256 512 ) ( -80 256 512 ) ( -80 256 -64 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 194
+// brush 193
 {
 ( 192 384 16 ) ( 224 384 0 ) ( 192 384 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 384 128 ) ( 224 384 128 ) ( 288 448 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1736,7 +1728,7 @@
 ( 288 448 208 ) ( 256 448 208 ) ( 256 448 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 384 256 ) ( 192 384 128 ) ( 256 448 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 195
+// brush 194
 {
 ( 192 384 0 ) ( 224 384 0 ) ( 192 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 384 128 ) ( 224 384 128 ) ( 288 448 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1745,7 +1737,7 @@
 ( 232 392 128 ) ( 232 392 256 ) ( 296 456 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 384 256 ) ( 192 384 128 ) ( 256 448 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 196
+// brush 195
 {
 ( 288 512 128 ) ( 256 512 128 ) ( 256 448 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 448 256 ) ( 256 512 256 ) ( 288 512 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1754,7 +1746,7 @@
 ( 288 512 208 ) ( 256 512 208 ) ( 256 512 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 512 208 ) ( 256 448 208 ) ( 256 448 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 197
+// brush 196
 {
 ( 256 544 128 ) ( 192 608 128 ) ( 192 576 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 248 512 256 ) ( 184 576 256 ) ( 184 608 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1763,7 +1755,7 @@
 ( 256 544 208 ) ( 192 608 208 ) ( 192 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 512 128 ) ( 256 512 208 ) ( 256 544 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 198
+// brush 197
 {
 ( 64 576 128 ) ( 64 608 128 ) ( 0 544 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 72 608 256 ) ( 72 576 256 ) ( 8 512 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1772,7 +1764,7 @@
 ( 64 608 128 ) ( 64 608 208 ) ( 0 544 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 544 208 ) ( 0 512 208 ) ( 0 512 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 199
+// brush 198
 {
 ( 232 472 142 ) ( 296 408 142 ) ( 232 472 158 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 232 490 80 ) ( 272 490 80 ) ( 232 506 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1781,7 +1773,7 @@
 ( 272 240 46 ) ( 240 272 46 ) ( 272 240 62 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 248 224 96 ) ( 248 424 96 ) ( 280 424 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 200
+// brush 199
 {
 ( 240 254 64 ) ( 224 254 80 ) ( 240 270 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 512 64 ) ( 184 496 80 ) ( 320 384 64 ) e7/e7walldesign01b -2 -2222 -405 0.5 0.5 0 0 0
@@ -1789,7 +1781,7 @@
 ( 184 496 67 ) ( 192 512 67 ) ( 184 496 83 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 184 360 80 ) ( 184 512 80 ) ( 320 512 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 201
+// brush 200
 {
 ( -536 496 164 ) ( -544 512 164 ) ( -536 496 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 507 80 ) ( -32 507 96 ) ( -16 523 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1797,7 +1789,7 @@
 ( 72 496 339 ) ( 88 496 339 ) ( 72 496 355 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 88 496 96 ) ( -40 496 96 ) ( -40 544 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 202
+// brush 201
 {
 ( 104 -48 387 ) ( 48 8 387 ) ( 104 -48 403 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 24 387 ) ( 216 -48 387 ) ( 288 24 403 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1808,7 +1800,7 @@
 ( 288 240 464 ) ( 48 240 464 ) ( 48 240 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 48 240 464 ) ( 48 -48 464 ) ( 48 -48 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 203
+// brush 202
 {
 ( 320 0 323 ) ( 336 16 323 ) ( 320 0 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 568 16 323 ) ( 576 0 323 ) ( 568 16 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1816,7 +1808,7 @@
 ( 462 0 432 ) ( 462 16 448 ) ( 446 0 432 ) e7/e7walldesign01b 4 -1904 -540 0.5 0.5 0 0 0
 ( 472 -16 448 ) ( 216 -16 448 ) ( 216 0 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 204
+// brush 203
 {
 ( 640 384 339 ) ( 624 368 323 ) ( 640 384 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 624 72 339 ) ( 640 64 323 ) ( 624 72 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1824,7 +1816,7 @@
 ( 640 194 432 ) ( 624 178 448 ) ( 640 178 432 ) e7/e7walldesign01b 152 -2544 -450 0.5 0.5 0 0 0
 ( 640 424 448 ) ( 656 424 448 ) ( 656 168 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 205
+// brush 204
 {
 ( 640 384 323 ) ( 624 368 323 ) ( 640 384 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 456 368 323 ) ( 448 384 323 ) ( 456 368 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1832,7 +1824,7 @@
 ( 434 384 432 ) ( 434 368 448 ) ( 450 384 432 ) e7/e7walldesign01b 4 -1136 -360 0.5 0.5 0 0 0
 ( 424 400 448 ) ( 680 400 448 ) ( 680 384 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 206
+// brush 205
 {
 ( 640 64 339 ) ( 624 72 323 ) ( 640 64 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 672 96 432 ) ( 656 104 448 ) ( 568 16 448 ) e7/e7walldesign01b 4 -1730 -495 0.5 0.5 0 0 0
@@ -1840,7 +1832,7 @@
 ( 576 0 431 ) ( 672 96 415 ) ( 576 0 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 568 104 448 ) ( 672 104 448 ) ( 672 0 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 207
+// brush 206
 {
 ( 320 256 339 ) ( 336 248 323 ) ( 320 256 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 224 432 ) ( 304 216 448 ) ( 392 304 448 ) e7/e7walldesign01b 4 -716 -315 0.5 0.5 0 0 0
@@ -1848,7 +1840,7 @@
 ( 384 320 431 ) ( 288 224 415 ) ( 384 320 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 392 216 448 ) ( 288 216 448 ) ( 288 320 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 208
+// brush 207
 {
 ( 32 256 432 ) ( 0 256 432 ) ( 0 128 432 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( 0 128 448 ) ( 0 256 448 ) ( 32 256 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1857,7 +1849,7 @@
 ( 32 272 448 ) ( 0 272 448 ) ( 0 272 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 256 448 ) ( 0 128 448 ) ( 0 128 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 209
+// brush 208
 {
 ( 32 24 323 ) ( 32 64 323 ) ( 32 24 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 48 240 339 ) ( 32 256 323 ) ( 48 240 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1865,7 +1857,7 @@
 ( 16 -8 387 ) ( 32 0 371 ) ( 16 -8 371 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 248 448 ) ( 32 248 448 ) ( 32 -8 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 210
+// brush 209
 {
 ( 48 240 323 ) ( 32 256 323 ) ( 48 240 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 88 256 323 ) ( 128 256 323 ) ( 88 256 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1873,7 +1865,7 @@
 ( 82 240 448 ) ( 66 256 432 ) ( 66 240 448 ) e7/e7walldesign01b -70 -2064 -720 0.5 0.5 0 0 0
 ( 312 272 448 ) ( 312 256 448 ) ( 56 256 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 211
+// brush 210
 {
 ( 288 0 371 ) ( 304 16 371 ) ( 288 0 387 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 16 432 ) ( 288 16 432 ) ( 288 0 432 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -1881,7 +1873,7 @@
 ( 288 0 448 ) ( 304 0 448 ) ( 304 0 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 0 448 ) ( 304 16 448 ) ( 304 16 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 212
+// brush 211
 {
 ( 304 40 339 ) ( 304 80 323 ) ( 304 40 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 240 323 ) ( 304 256 323 ) ( 288 240 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1889,7 +1881,7 @@
 ( 320 8 371 ) ( 304 16 371 ) ( 320 8 387 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 8 448 ) ( 304 264 448 ) ( 320 264 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 213
+// brush 212
 {
 ( 320 256 323 ) ( 336 248 323 ) ( 320 256 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 16 323 ) ( 320 0 323 ) ( 336 16 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1900,7 +1892,7 @@
 ( 304 8 448 ) ( 304 264 448 ) ( 320 264 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 256 448 ) ( 304 256 448 ) ( 304 256 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 214
+// brush 213
 {
 ( 288 24 323 ) ( 304 16 323 ) ( 288 24 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 32 432 ) ( 304 40 448 ) ( 216 -48 448 ) e7/e7walldesign01b 0 -1530 -495 0.5 0.5 0 0 0
@@ -1908,7 +1900,7 @@
 ( 224 -64 431 ) ( 320 32 415 ) ( 224 -64 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 216 40 448 ) ( 320 40 448 ) ( 320 -64 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 215
+// brush 214
 {
 ( 32 0 323 ) ( 48 8 323 ) ( 32 0 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 104 -48 448 ) ( 16 40 448 ) ( 0 32 432 ) e7/e7walldesign01b 4 -1344 -585 0.5 0.5 0 0 0
@@ -1916,7 +1908,7 @@
 ( 96 -64 415 ) ( 0 32 415 ) ( 96 -64 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 -64 448 ) ( 0 40 448 ) ( 104 40 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 216
+// brush 215
 {
 ( 216 -48 323 ) ( 224 -64 323 ) ( 216 -48 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -64 323 ) ( 104 -48 323 ) ( 96 -64 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1924,7 +1916,7 @@
 ( 96 -64 448 ) ( 96 -48 448 ) ( 224 -48 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -64 448 ) ( 224 -64 448 ) ( 224 -64 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 217
+// brush 216
 {
 ( 432 384 275 ) ( 320 272 275 ) ( 432 384 291 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 432 384 272 ) ( 288 384 272 ) ( 288 272 272 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
@@ -1933,7 +1925,7 @@
 ( 432 384 352 ) ( 288 384 352 ) ( 288 384 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 384 352 ) ( 288 272 352 ) ( 288 272 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 218
+// brush 217
 {
 ( 410 368 272 ) ( 410 384 256 ) ( 426 368 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 408 384 272 ) ( 312 288 272 ) ( 320 272 256 ) e7/e7walldesign01b 4 -1870 -495 0.5 0.5 0 0 0
@@ -1941,7 +1933,7 @@
 ( 416 368 259 ) ( 392 344 259 ) ( 416 368 275 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 312 256 272 ) ( 312 368 272 ) ( 432 368 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 219
+// brush 218
 {
 ( 312 288 267 ) ( 320 272 267 ) ( 312 288 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 288 283 ) ( 288 272 267 ) ( 304 288 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1949,7 +1941,7 @@
 ( 328 288 272 ) ( 328 272 272 ) ( 8 272 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 8 272 256 ) ( 8 272 336 ) ( 328 272 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 220
+// brush 219
 {
 ( 304 368 283 ) ( 288 384 267 ) ( 304 368 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 296 280 283 ) ( 312 296 267 ) ( 296 280 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1957,7 +1949,7 @@
 ( 304 344 272 ) ( 288 344 272 ) ( 288 664 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 664 256 ) ( 288 664 336 ) ( 288 344 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 221
+// brush 220
 {
 ( 304 368 267 ) ( 288 384 267 ) ( 304 368 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 424 376 267 ) ( 408 360 267 ) ( 424 376 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1965,7 +1957,7 @@
 ( 8 384 272 ) ( 328 384 272 ) ( 328 368 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 328 384 336 ) ( 8 384 336 ) ( 8 384 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 222
+// brush 221
 {
 ( 384 -24 256 ) ( 400 -24 272 ) ( 384 -8 256 ) e7/e7walldesign01b 4 -1424 -270 0.5 0.5 0 0 0
 ( 361 -32 272 ) ( 377 -16 256 ) ( 377 -32 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1973,7 +1965,7 @@
 ( 440 -187 272 ) ( 384 -171 272 ) ( 440 -171 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 368 -16 271 ) ( 464 -112 255 ) ( 368 -16 255 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 223
+// brush 222
 {
 ( 648 352 283 ) ( 624 352 267 ) ( 648 352 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 -32 283 ) ( 664 -32 267 ) ( 640 -32 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1982,7 +1974,7 @@
 ( 648 320 128 ) ( 680 320 128 ) ( 680 352 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 320 256 ) ( 640 320 224 ) ( 640 352 224 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 224
+// brush 223
 {
 ( 648 352 267 ) ( 624 352 267 ) ( 648 352 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 632 384 106 ) ( 664 384 106 ) ( 632 384 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -1991,7 +1983,7 @@
 ( 648 320 128 ) ( 680 320 128 ) ( 680 352 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 320 256 ) ( 640 320 224 ) ( 640 352 224 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 225
+// brush 224
 {
 ( 576 416 0 ) ( 576 384 0 ) ( 576 416 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 384 0 ) ( 448 440 0 ) ( 448 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2000,7 +1992,7 @@
 ( 672 480 256 ) ( 640 480 256 ) ( 640 512 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 648 480 128 ) ( 680 480 128 ) ( 680 512 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 226
+// brush 225
 {
 ( 352 -40 283 ) ( 352 -24 267 ) ( 352 -40 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 -32 138 ) ( 360 -32 138 ) ( 336 -32 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2009,7 +2001,7 @@
 ( 272 -64 376 ) ( 352 -64 376 ) ( 352 -64 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( 288 128 376 ) ( 288 -16 376 ) ( 288 -16 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 227
+// brush 226
 {
 ( -32 -200 0 ) ( -32 -224 0 ) ( -32 -200 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 -224 0 ) ( -160 -176 0 ) ( -160 -224 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2018,7 +2010,7 @@
 ( 576 -200 128 ) ( 576 -232 128 ) ( 608 -232 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -192 256 ) ( 576 -192 224 ) ( 608 -192 224 ) e7/e7walldesign01 64 -128 0 0.5 0.5 0 0 0
 }
-// brush 228
+// brush 227
 {
 ( 64 280 283 ) ( 64 256 267 ) ( 64 280 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 40 288 154 ) ( 64 288 154 ) ( 40 288 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2027,7 +2019,7 @@
 ( 288 584 432 ) ( 256 584 432 ) ( 256 640 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 488 304 ) ( 320 488 432 ) ( 320 544 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 229
+// brush 228
 {
 ( -32 296 283 ) ( -32 312 267 ) ( -32 296 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 296 283 ) ( -288 272 267 ) ( -288 296 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2036,7 +2028,7 @@
 ( -136 304 89 ) ( -104 304 89 ) ( -136 304 105 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 272 528 ) ( -80 272 528 ) ( -80 272 -48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 230
+// brush 229
 {
 ( -32 296 267 ) ( -32 312 267 ) ( -32 296 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -152 287 304 ) ( -184 271 304 ) ( -152 271 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2045,7 +2037,7 @@
 ( -192 272 528 ) ( -80 272 528 ) ( -80 272 -48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 296 520 ) ( 0 336 520 ) ( 0 336 -56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 231
+// brush 230
 {
 ( 40 128 -112 ) ( 16 128 -128 ) ( 40 128 -128 ) e7/e7panelwood2 448 -21 -270 0.5 0.5 0 0 0
 ( 16 96 186 ) ( 40 96 170 ) ( 16 96 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2054,7 +2046,7 @@
 ( -252 16 288 ) ( -252 -8 288 ) ( -236 16 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 128 640 ) ( 16 16 640 ) ( 16 16 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 232
+// brush 231
 {
 ( 320 0 283 ) ( 320 -24 267 ) ( 320 0 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 -32 154 ) ( 344 -32 154 ) ( 384 -32 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2063,7 +2055,7 @@
 ( 248 -32 432 ) ( 248 -64 432 ) ( 192 -64 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 344 0 304 ) ( 344 0 432 ) ( 288 0 432 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 233
+// brush 232
 {
 ( 128 512 283 ) ( 128 536 267 ) ( 128 512 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 384 0 ) ( -144 384 0 ) ( -96 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2072,7 +2064,7 @@
 ( 184 512 -48 ) ( -200 512 -48 ) ( -200 512 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -136 -48 ) ( -16 -456 -48 ) ( -16 -456 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 234
+// brush 233
 {
 ( 175 0 96 ) ( 175 32 64 ) ( 191 0 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 32 64 ) ( 176 32 64 ) ( 176 0 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2080,7 +2072,7 @@
 ( 256 0 96 ) ( 256 32 96 ) ( 256 32 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 16 96 ) ( 224 -16 96 ) ( 224 -16 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 235
+// brush 234
 {
 ( 272 432 323 ) ( 288 416 323 ) ( 272 432 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 272 192 138 ) ( 272 216 138 ) ( 272 192 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2089,7 +2081,7 @@
 ( -24 0 512 ) ( 88 0 512 ) ( 88 0 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 0 96 ) ( 288 0 128 ) ( 288 384 128 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 }
-// brush 236
+// brush 235
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 256 323 ) ( 272 240 323 ) ( 256 256 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2098,7 +2090,7 @@
 ( 256 0 64 ) ( 288 0 96 ) ( 288 224 96 ) e7/e7beam02 16 0 -180 0.5 0.5 0 0 0
 ( 288 0 96 ) ( 256 0 96 ) ( 256 224 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 237
+// brush 236
 {
 ( 240 256 138 ) ( 264 256 138 ) ( 240 256 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 280 0 138 ) ( 264 0 138 ) ( 280 0 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2107,7 +2099,7 @@
 ( 256 264 256 ) ( 288 264 256 ) ( 288 296 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 264 288 ) ( 256 264 256 ) ( 256 296 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 238
+// brush 237
 {
 ( 584 -32 275 ) ( 624 8 275 ) ( 584 -32 291 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 624 8 272 ) ( 584 8 272 ) ( 584 -32 272 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
@@ -2115,7 +2107,7 @@
 ( 584 -32 352 ) ( 624 -32 352 ) ( 624 -32 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 624 -32 352 ) ( 624 8 352 ) ( 624 8 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 239
+// brush 238
 {
 ( 584 -32 427 ) ( 576 -16 427 ) ( 584 -32 443 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 624 55 272 ) ( 640 39 256 ) ( 624 39 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2123,7 +2115,7 @@
 ( 469 -24 272 ) ( 485 32 272 ) ( 485 -24 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 48 271 ) ( 544 -48 255 ) ( 640 48 255 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 240
+// brush 239
 {
 ( 384 -32 267 ) ( 400 -48 267 ) ( 384 -32 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 400 -80 267 ) ( 384 -64 267 ) ( 400 -80 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2131,7 +2123,7 @@
 ( 400 40 272 ) ( 384 40 272 ) ( 384 360 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 360 256 ) ( 384 360 336 ) ( 384 40 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 241
+// brush 240
 {
 ( 368 -16 256 ) ( 480 -104 272 ) ( 464 -112 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 -24 256 ) ( 400 -24 272 ) ( 384 -8 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2139,7 +2131,7 @@
 ( 104 -16 272 ) ( 424 -16 272 ) ( 424 -32 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 424 -16 336 ) ( 104 -16 336 ) ( 104 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 242
+// brush 241
 {
 ( 304 -48 99 ) ( 272 -16 99 ) ( 304 -48 115 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 344 -16 99 ) ( 368 -40 99 ) ( 344 -16 115 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2149,7 +2141,7 @@
 ( 368 -64 176 ) ( 368 -16 176 ) ( 368 -16 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 368 -16 176 ) ( 288 -16 176 ) ( 288 -16 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 243
+// brush 242
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 0 283 ) ( 256 -16 267 ) ( 256 0 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2158,7 +2150,7 @@
 ( 256 -16 64 ) ( 256 -16 96 ) ( 320 -80 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 -16 96 ) ( 256 0 96 ) ( 320 -64 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 244
+// brush 243
 {
 ( 352 0 267 ) ( 344 -16 267 ) ( 352 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 0 267 ) ( 256 24 267 ) ( 256 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2167,7 +2159,7 @@
 ( 368 -16 192 ) ( 344 -16 192 ) ( 368 -16 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 416 -64 128 ) ( 288 -64 128 ) ( 288 -16 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 245
+// brush 244
 {
 ( 368 -40 267 ) ( 344 -16 267 ) ( 368 -40 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 -32 267 ) ( 368 -40 267 ) ( 384 -32 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2176,7 +2168,7 @@
 ( 352 0 96 ) ( 336 0 96 ) ( 368 -32 96 ) e7/e7panelwood2 754 -19 -135 0.5 0.5 0 0 0
 ( 336 0 128 ) ( 352 0 128 ) ( 384 -32 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 246
+// brush 245
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -64 283 ) ( 320 -80 267 ) ( 320 -64 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2185,7 +2177,7 @@
 ( 432 -80 192 ) ( 408 -80 192 ) ( 432 -80 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 -112 96 ) ( 320 -112 96 ) ( 320 -64 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 247
+// brush 246
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 528 256 64 ) ( 528 256 96 ) ( 464 320 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2194,7 +2186,7 @@
 ( 512 256 192 ) ( 488 256 192 ) ( 512 256 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 528 256 96 ) ( 512 256 96 ) ( 448 320 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 248
+// brush 247
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 384 323 ) ( 464 400 323 ) ( 448 384 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2203,7 +2195,7 @@
 ( 560 320 192 ) ( 536 320 192 ) ( 560 320 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 464 336 96 ) ( 336 336 96 ) ( 336 384 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 249
+// brush 248
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 536 0 267 ) ( 512 0 267 ) ( 536 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2212,7 +2204,7 @@
 ( 512 16 192 ) ( 512 40 192 ) ( 512 16 208 ) e7/e7beam02 16 0 -90 0.5 0.5 0 0 0
 ( 480 0 96 ) ( 480 128 96 ) ( 528 128 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 250
+// brush 249
 {
 ( 0 80 80 ) ( 0 40 80 ) ( 16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 0 267 ) ( 536 0 267 ) ( 512 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2221,7 +2213,7 @@
 ( 512 -16 96 ) ( 512 -16 64 ) ( 448 -80 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 0 96 ) ( 512 -16 96 ) ( 448 -80 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 251
+// brush 250
 {
 ( 512 0 96 ) ( 496 8 104 ) ( 448 -64 96 ) e7/e7panelwood2 42 -23 -225 0.6560000181 0.5 0 0 0
 ( 448 -64 128 ) ( 496 8 120 ) ( 512 0 128 ) e7/e7panelwood2 42 -23 -225 0.6560000181 0.5 0 0 0
@@ -2230,7 +2222,7 @@
 ( 512 0 267 ) ( 448 -64 267 ) ( 512 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 496 8 267 ) ( 512 0 267 ) ( 496 8 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 252
+// brush 251
 {
 ( -128 -248 197 ) ( -128 -224 197 ) ( -128 -248 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 -224 197 ) ( -64 -256 197 ) ( -64 -224 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2239,7 +2231,7 @@
 ( -32 -256 186 ) ( -8 -256 170 ) ( -32 -256 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -48 -24 304 ) ( -48 16 304 ) ( -32 -24 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 253
+// brush 252
 {
 ( 24 128 -112 ) ( 0 128 -128 ) ( 24 128 -128 ) e7/e7panelwood2 448 -21 -270 0.5 0.5 0 0 0
 ( 0 -192 186 ) ( 24 -192 170 ) ( 0 -192 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2248,7 +2240,7 @@
 ( -268 16 256 ) ( -268 -8 256 ) ( -252 16 256 ) e7/e7panelwood2 288 -19 -180 0.5 0.5 0 0 0
 ( 0 128 640 ) ( 0 16 640 ) ( 0 16 64 ) e7/e7panelwood2 448 -21 -270 0.5 0.5 0 0 0
 }
-// brush 254
+// brush 253
 {
 ( -352 96 0 ) ( -320 96 0 ) ( -352 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 -64 -112 ) ( -312 -64 -128 ) ( -336 -64 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2257,7 +2249,7 @@
 ( -320 -120 376 ) ( -320 128 376 ) ( -320 128 128 ) e7/e7walldesign01 84 -128 0 0.5 0.5 0 0 0
 ( -352 128 376 ) ( -352 -120 376 ) ( -352 -120 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 255
+// brush 254
 {
 ( 0 -159 128 ) ( 0 -175 120 ) ( 0 -175 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -159 80 ) ( -16 -175 112 ) ( -16 -175 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2266,7 +2258,7 @@
 ( -416 256 312 ) ( -384 256 312 ) ( -384 256 64 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( 304 288 312 ) ( 272 288 312 ) ( 272 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 256
+// brush 255
 {
 ( -320 368 96 ) ( -320 320 96 ) ( -320 320 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -143 112 ) ( -32 -159 88 ) ( -32 -159 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2274,7 +2266,7 @@
 ( -416 272 312 ) ( -384 272 312 ) ( -384 272 64 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( 95 288 112 ) ( 95 272 80 ) ( 111 288 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 257
+// brush 256
 {
 ( -368 352 64 ) ( -400 352 64 ) ( -400 -32 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -159 80 ) ( -16 -175 112 ) ( -16 -175 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2283,7 +2275,7 @@
 ( -416 256 312 ) ( -384 256 312 ) ( -384 256 64 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 ( 304 288 312 ) ( 272 288 312 ) ( 272 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 258
+// brush 257
 {
 ( 0 -175 128 ) ( 0 -175 120 ) ( 0 -159 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 176 112 ) ( -224 160 112 ) ( -96 160 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2292,7 +2284,7 @@
 ( -416 256 312 ) ( -384 256 312 ) ( -384 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 400 352 312 ) ( 368 352 312 ) ( 368 352 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 259
+// brush 258
 {
 ( -32 -159 112 ) ( -16 -175 128 ) ( -32 -175 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -175 112 ) ( -32 -175 88 ) ( -32 -159 112 ) e7/e7trim01 0 -33 -450 0.5 0.5 0 0 0
@@ -2301,7 +2293,7 @@
 ( -416 256 312 ) ( -384 256 312 ) ( -384 256 64 ) e7/e7trim01 0 -97 -630 0.5 0.5 0 0 0
 ( 304 288 312 ) ( 272 288 312 ) ( 272 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 260
+// brush 259
 {
 ( 64 -159 -112 ) ( 64 -175 -80 ) ( 64 -175 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -104 -282 -112 ) ( -64 -282 -112 ) ( -104 -266 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2310,7 +2302,7 @@
 ( -24 -416 154 ) ( -56 -416 138 ) ( -24 -416 138 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( 96 -432 -128 ) ( 96 -432 448 ) ( 208 -432 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 261
+// brush 260
 {
 ( 0 -159 -72 ) ( 0 -175 -104 ) ( 0 -175 -72 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -104 -282 -112 ) ( -64 -282 -112 ) ( -104 -266 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2319,7 +2311,7 @@
 ( -176 -416 -60 ) ( -176 -392 -60 ) ( -176 -416 -44 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -432 -128 ) ( 96 -432 448 ) ( 208 -432 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 262
+// brush 261
 {
 ( 11 -320 -104 ) ( -5 -320 -72 ) ( -5 -320 -104 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 386 -80 -112 ) ( 386 -144 -112 ) ( 402 -80 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2328,7 +2320,7 @@
 ( 386 -368 -104 ) ( 386 -368 -72 ) ( 402 -368 -104 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 263
+// brush 262
 {
 ( 11 -256 -80 ) ( -5 -256 -112 ) ( -5 -256 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 11 -64 -104 ) ( -5 -64 -80 ) ( -5 -64 -104 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2337,7 +2329,7 @@
 ( 160 -88 154 ) ( 160 -120 138 ) ( 160 -88 138 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 264
+// brush 263
 {
 ( 11 0 -80 ) ( -5 0 -112 ) ( -5 0 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 386 -80 -112 ) ( 386 -144 -112 ) ( 402 -80 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2346,7 +2338,7 @@
 ( 160 -88 154 ) ( 160 -120 138 ) ( 160 -88 138 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 265
+// brush 264
 {
 ( -112 264 -114 ) ( -112 288 -114 ) ( -112 264 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 280 -114 ) ( -16 256 -114 ) ( -16 280 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2355,7 +2347,7 @@
 ( -192 288 -128 ) ( -256 288 -128 ) ( -256 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 266
+// brush 265
 {
 ( -112 256 -114 ) ( -112 280 -114 ) ( -112 256 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 288 -114 ) ( -16 264 -114 ) ( -16 288 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2364,7 +2356,7 @@
 ( -8 -159 -80 ) ( -56 -175 -80 ) ( -8 -175 -80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 267
+// brush 266
 {
 ( -32 -159 -96 ) ( -32 -175 -72 ) ( -32 -175 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -56 165 -112 ) ( -32 165 -112 ) ( -56 181 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2373,7 +2365,7 @@
 ( -16 165 -80 ) ( -64 165 -80 ) ( -16 181 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 272 448 ) ( -64 272 448 ) ( -64 272 -128 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 }
-// brush 268
+// brush 267
 {
 ( -96 -159 -56 ) ( -96 -175 -72 ) ( -96 -175 -56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -56 165 -112 ) ( -32 165 -112 ) ( -56 181 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2382,7 +2374,7 @@
 ( -16 165 -80 ) ( -64 165 -80 ) ( -16 181 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 272 448 ) ( -80 272 448 ) ( -80 272 -128 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 }
-// brush 269
+// brush 268
 {
 ( -80 288 -114 ) ( -80 272 -114 ) ( -80 288 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 272 -114 ) ( -176 288 -114 ) ( -176 272 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2391,7 +2383,7 @@
 ( -80 3 128 ) ( -56 -12 128 ) ( -80 -12 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 288 312 ) ( 272 288 312 ) ( 272 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 270
+// brush 269
 {
 ( 0 302 256 ) ( -16 302 248 ) ( 0 318 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 368 163 ) ( 16 400 163 ) ( -16 368 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2400,7 +2392,7 @@
 ( -80 -13 128 ) ( -56 -13 128 ) ( -80 3 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 280 504 ) ( 0 320 504 ) ( 0 320 -72 ) e7/e7walldesign01 -256 -128 0 0.5 0.5 0 0 0
 }
-// brush 271
+// brush 270
 {
 ( -288 -400 16 ) ( -288 -432 0 ) ( -288 -400 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -400 16 ) ( 96 -376 0 ) ( 96 -400 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2409,7 +2401,7 @@
 ( 96 -432 -96 ) ( 96 -432 480 ) ( 208 -432 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 -400 -96 ) ( 192 -400 480 ) ( 80 -400 480 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 272
+// brush 271
 {
 ( -288 -400 0 ) ( -288 -432 0 ) ( -288 -400 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -416 -129 ) ( -320 -384 -129 ) ( -320 -416 -113 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2418,7 +2410,7 @@
 ( 96 -432 -96 ) ( 96 -432 480 ) ( 208 -432 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 -400 -96 ) ( 192 -400 480 ) ( 80 -400 480 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 273
+// brush 272
 {
 ( 160 -352 16 ) ( 224 -352 0 ) ( 160 -352 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 32 16 ) ( 128 32 0 ) ( 152 32 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2427,7 +2419,7 @@
 ( 176 32 -96 ) ( 176 32 480 ) ( 176 144 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 128 -96 ) ( 144 128 480 ) ( 144 16 480 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 274
+// brush 273
 {
 ( 160 -352 0 ) ( 224 -352 0 ) ( 160 -352 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 -384 16 ) ( 168 -384 0 ) ( 152 -384 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2436,7 +2428,7 @@
 ( 176 32 -96 ) ( 176 32 480 ) ( 176 144 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 128 -96 ) ( 144 128 480 ) ( 144 16 480 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 275
+// brush 274
 {
 ( -304 -121 112 ) ( -320 -121 96 ) ( -304 -105 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -112 96 ) ( -232 -224 112 ) ( -224 -208 96 ) e7/e7panelwood2 644 -21 -315 0.5 0.5 0 0 0
@@ -2444,7 +2436,7 @@
 ( -224 -208 95 ) ( -232 -224 95 ) ( -224 -208 111 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -112 95 ) ( -224 -208 95 ) ( -320 -112 111 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 276
+// brush 275
 {
 ( 128 -224 167 ) ( 144 -208 167 ) ( 128 -224 183 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -352 112 ) ( 128 -352 112 ) ( 144 -336 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2452,7 +2444,7 @@
 ( 144 -400 95 ) ( 128 -384 95 ) ( 144 -400 111 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -400 560 ) ( 144 64 560 ) ( 144 64 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 277
+// brush 276
 {
 ( -232 -224 167 ) ( -224 -208 167 ) ( -232 -224 183 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -208 112 ) ( 96 -224 112 ) ( 80 -208 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2460,7 +2452,7 @@
 ( 144 -208 95 ) ( 128 -224 95 ) ( 144 -208 111 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -208 560 ) ( -320 -208 560 ) ( -320 -208 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 278
+// brush 277
 {
 ( -320 -112 167 ) ( -304 -128 167 ) ( -320 -112 183 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 16 112 ) ( -304 16 112 ) ( -320 0 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2468,7 +2460,7 @@
 ( -304 -384 95 ) ( -320 -400 95 ) ( -304 -384 111 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 64 560 ) ( -320 -400 560 ) ( -320 -400 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 279
+// brush 278
 {
 ( -272 -400 112 ) ( -272 -384 112 ) ( -256 -400 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -272 -384 112 ) ( -272 -400 96 ) ( -256 -384 112 ) e7/e7panelwood2 544 -21 -270 0.5 0.5 0 0 0
@@ -2476,7 +2468,7 @@
 ( -320 -400 95 ) ( -304 -384 95 ) ( -320 -400 111 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -400 560 ) ( 144 -400 560 ) ( 144 -400 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 280
+// brush 279
 {
 ( -216 -208 167 ) ( -168 -208 167 ) ( -216 -208 183 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -128 112 ) ( -224 -128 112 ) ( -224 -400 112 ) e7/e7panelwood 0 0 -90 0.5 0.5 0 0 0
@@ -2485,7 +2477,7 @@
 ( 144 -408 504 ) ( 144 -136 504 ) ( 144 -136 40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -128 504 ) ( -224 -400 504 ) ( -224 -400 40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 281
+// brush 280
 {
 ( -320 -112 37 ) ( -224 -208 37 ) ( -320 -112 53 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -128 112 ) ( -320 -128 112 ) ( -320 -400 112 ) e7/e7panelwood 0 0 -90 0.5 0.5 0 0 0
@@ -2494,7 +2486,7 @@
 ( -224 -400 504 ) ( -224 -128 504 ) ( -224 -128 40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -128 504 ) ( -320 -400 504 ) ( -320 -400 40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 282
+// brush 281
 {
 ( -224 -208 181 ) ( -336 -96 181 ) ( -224 -208 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -224 197 ) ( -224 -192 181 ) ( -224 -224 181 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2503,7 +2495,7 @@
 ( -192 -224 128 ) ( -224 -224 128 ) ( -352 -96 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 -224 96 ) ( -192 -224 128 ) ( -320 -96 128 ) e7/e7beam01 0 0 -270 0.5 0.5 0 0 0
 }
-// brush 283
+// brush 282
 {
 ( -352 -96 197 ) ( -320 -96 181 ) ( -352 -96 181 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 128 96 ) ( -352 128 96 ) ( -352 -256 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2512,7 +2504,7 @@
 ( -320 128 344 ) ( -352 128 344 ) ( -352 128 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 128 344 ) ( -352 -256 344 ) ( -352 -256 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 284
+// brush 283
 {
 ( 32 256 -68 ) ( 64 288 -68 ) ( 32 256 -52 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 232 64 ) ( -384 232 64 ) ( -384 -152 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2521,7 +2513,7 @@
 ( 64 256 96 ) ( 64 288 96 ) ( 64 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 936 312 ) ( 32 552 312 ) ( 32 552 64 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 }
-// brush 285
+// brush 284
 {
 ( 32 128 -68 ) ( 56 128 -68 ) ( 32 128 -52 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 160 64 ) ( 32 128 64 ) ( 96 64 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2530,7 +2522,7 @@
 ( 96 -728 312 ) ( 96 -344 312 ) ( 96 -344 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 160 96 ) ( 32 160 64 ) ( 96 96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 286
+// brush 285
 {
 ( -288 160 64 ) ( -320 160 64 ) ( -320 -224 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -224 96 ) ( -320 160 96 ) ( -288 160 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2539,7 +2531,7 @@
 ( 384 96 312 ) ( 352 96 312 ) ( 352 96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 864 312 ) ( 96 480 312 ) ( 96 480 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 287
+// brush 286
 {
 ( -256 128 64 ) ( -288 128 64 ) ( -288 -256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 -256 96 ) ( -288 128 96 ) ( -256 128 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2548,7 +2540,7 @@
 ( 416 64 312 ) ( 384 64 312 ) ( 384 64 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 400 312 ) ( 144 16 312 ) ( 144 16 64 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 }
-// brush 288
+// brush 287
 {
 ( -288 96 64 ) ( -320 96 64 ) ( -320 -288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -288 96 ) ( -320 96 96 ) ( -288 96 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2557,7 +2549,7 @@
 ( -32 -400 312 ) ( -64 -400 312 ) ( -64 -400 64 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 ( -320 96 312 ) ( -320 -288 312 ) ( -320 -288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 289
+// brush 288
 {
 ( -480 -224 113 ) ( -448 -192 97 ) ( -480 -224 97 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 0 113 ) ( -480 32 97 ) ( -448 0 97 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2566,7 +2558,7 @@
 ( -480 128 64 ) ( -480 128 312 ) ( -480 -256 312 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 -256 64 ) ( -448 -256 312 ) ( -448 128 312 ) e7/e7panelwood2 -384 0 -270 0.5 0.5 0 0 0
 }
-// brush 290
+// brush 289
 {
 ( -192 -224 -128 ) ( -176 -224 -112 ) ( -192 -208 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 -224 -80 ) ( -192 -224 -64 ) ( -176 -208 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2575,7 +2567,7 @@
 ( -192 -416 -68 ) ( -192 -392 -68 ) ( -192 -416 -52 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -432 -128 ) ( 96 -432 448 ) ( 208 -432 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 291
+// brush 290
 {
 ( -112 272 -112 ) ( -112 272 -80 ) ( -96 264 -80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -16 272 -80 ) ( -16 272 -112 ) ( -32 264 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -2584,7 +2576,7 @@
 ( -256 264 -48 ) ( -192 264 -48 ) ( -192 264 -128 ) e7/e7trimlight 192 -1 -90 0.5 0.5 134217728 0 0
 ( -112 272 -80 ) ( -112 272 -112 ) ( -16 272 -112 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 292
+// brush 291
 {
 ( -176 256 -52 ) ( -176 288 -68 ) ( -176 256 -68 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 288 0 ) ( -8 288 0 ) ( -32 288 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2593,7 +2585,7 @@
 ( -192 256 448 ) ( -80 256 448 ) ( -80 256 -128 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -192 296 448 ) ( -192 256 448 ) ( -192 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 293
+// brush 292
 {
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 256 -52 ) ( -176 288 -68 ) ( -176 256 -68 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2602,7 +2594,7 @@
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 288 -48 ) ( -256 256 -48 ) ( -256 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 294
+// brush 293
 {
 ( -56 181 -112 ) ( -32 165 -112 ) ( -56 165 -112 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( 104 96 0 ) ( 120 96 0 ) ( 104 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2611,7 +2603,7 @@
 ( 144 64 -128 ) ( 144 96 -128 ) ( 96 96 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 64 -48 ) ( -128 64 -48 ) ( -128 64 -128 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 295
+// brush 294
 {
 ( -56 181 -112 ) ( -32 165 -112 ) ( -56 165 -112 ) e7/e7trim01 0 -71 -765 0.5 0.5 0 0 0
 ( 96 96 0 ) ( 96 64 0 ) ( 96 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2620,7 +2612,7 @@
 ( 128 64 -128 ) ( 128 64 -96 ) ( 64 128 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 64 -128 ) ( 128 64 -128 ) ( 64 128 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 296
+// brush 295
 {
 ( -56 181 -112 ) ( -32 165 -112 ) ( -56 165 -112 ) e7/e7trim01 0 -33 -450 0.5 0.5 0 0 0
 ( 32 248 0 ) ( 32 272 0 ) ( 32 248 16 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
@@ -2629,7 +2621,7 @@
 ( -192 288 -128 ) ( -256 288 -128 ) ( -256 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 128 -48 ) ( -192 128 -48 ) ( -192 128 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 297
+// brush 296
 {
 ( -16 181 -80 ) ( -64 165 -80 ) ( -16 165 -80 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( 104 96 0 ) ( 120 96 0 ) ( 104 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2638,7 +2630,7 @@
 ( 144 64 -64 ) ( 144 96 -64 ) ( 128 96 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 64 -144 ) ( 64 64 432 ) ( 104 64 432 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 298
+// brush 297
 {
 ( -16 181 -80 ) ( -64 165 -80 ) ( -16 165 -80 ) e7/e7trim01 0 -71 -765 0.5 0.5 0 0 0
 ( 96 96 0 ) ( 96 72 0 ) ( 96 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2647,7 +2639,7 @@
 ( 0 160 -64 ) ( 32 160 -64 ) ( 128 64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 160 -64 ) ( 32 160 -96 ) ( 128 64 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 299
+// brush 298
 {
 ( -16 181 -80 ) ( -64 165 -80 ) ( -16 165 -80 ) e7/e7trim01 0 -33 -450 0.5 0.5 0 0 0
 ( 32 248 154 ) ( 32 216 138 ) ( 32 248 138 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
@@ -2656,7 +2648,7 @@
 ( 64 368 -128 ) ( 64 368 448 ) ( 64 480 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 128 -144 ) ( 0 128 432 ) ( 40 128 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 300
+// brush 299
 {
 ( -176 165 -128 ) ( -160 165 -112 ) ( -176 181 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 256 -68 ) ( -176 288 -68 ) ( -176 256 -52 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2665,7 +2657,7 @@
 ( -160 165 -80 ) ( -176 165 -64 ) ( -160 181 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 256 448 ) ( -80 256 448 ) ( -80 256 -128 ) e7/e7trim01 0 -33 -450 0.5 0.5 0 0 0
 }
-// brush 301
+// brush 300
 {
 ( 141 -368 -112 ) ( 141 -384 -128 ) ( 157 -368 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 141 -384 -64 ) ( 141 -368 -80 ) ( 157 -384 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2674,7 +2666,7 @@
 ( 386 -384 -96 ) ( 386 -384 -64 ) ( 402 -384 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 302
+// brush 301
 {
 ( 152 32 0 ) ( 128 32 0 ) ( 152 32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 184 64 -113 ) ( 152 64 -129 ) ( 184 64 -129 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2683,7 +2675,7 @@
 ( 176 32 -96 ) ( 176 32 480 ) ( 176 144 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 128 -96 ) ( 144 128 480 ) ( 144 16 480 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 303
+// brush 302
 {
 ( 124 -351 308 ) ( 124 -351 312 ) ( 124 -367 308 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 196 -351 312 ) ( 196 -351 308 ) ( 196 -367 312 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2692,7 +2684,7 @@
 ( 104 -96 384 ) ( 208 -96 384 ) ( 208 -96 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 208 -80 384 ) ( 104 -80 384 ) ( 104 -80 304 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 }
-// brush 304
+// brush 303
 {
 ( 112 175 327 ) ( 124 175 312 ) ( 112 191 327 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 138 175 412 ) ( 112 175 327 ) ( 138 191 412 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2703,7 +2695,7 @@
 ( 216 -80 384 ) ( 112 -80 384 ) ( 112 -80 304 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 ( 112 -96 384 ) ( 216 -96 384 ) ( 216 -96 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 305
+// brush 304
 {
 ( 512 0 -354 ) ( 512 -24 -354 ) ( 512 0 -338 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 -32 -64 ) ( 512 0 -64 ) ( 448 -64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2712,7 +2704,7 @@
 ( 448 -256 416 ) ( 448 -368 416 ) ( 448 -368 -160 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 -32 64 ) ( 512 -32 -64 ) ( 448 -96 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 306
+// brush 305
 {
 ( 320 -64 192 ) ( 320 -96 192 ) ( 320 -64 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 248 0 208 ) ( 216 0 192 ) ( 248 0 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2721,7 +2713,7 @@
 ( 320 -64 -64 ) ( 320 -64 64 ) ( 256 0 64 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 ( 288 -64 64 ) ( 288 -64 -64 ) ( 224 0 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 307
+// brush 306
 {
 ( 376 -80 -54 ) ( 408 -80 -54 ) ( 376 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 406 -6 45 ) ( 406 -6 42 ) ( 406 10 45 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2731,7 +2723,7 @@
 ( 448 -96 16 ) ( 448 -64 16 ) ( 448 -64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -96 16 ) ( 448 -96 16 ) ( 448 -96 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 308
+// brush 307
 {
 ( 376 -80 -54 ) ( 408 -80 -54 ) ( 376 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -64 -96 ) ( 320 -96 -96 ) ( 448 -96 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2740,7 +2732,7 @@
 ( 320 -64 -16 ) ( 320 -96 -16 ) ( 320 -96 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -96 -16 ) ( 448 -96 -16 ) ( 448 -96 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 309
+// brush 308
 {
 ( 376 -80 -54 ) ( 408 -80 -54 ) ( 376 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 362 10 45 ) ( 362 -6 42 ) ( 362 -6 45 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2750,7 +2742,7 @@
 ( 320 -64 -64 ) ( 320 -64 16 ) ( 320 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -96 -64 ) ( 320 -96 16 ) ( 448 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 310
+// brush 309
 {
 ( 376 -80 -54 ) ( 408 -80 -54 ) ( 376 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 432 -6 -41 ) ( 420 -6 -56 ) ( 432 10 -41 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2760,7 +2752,7 @@
 ( 448 -96 16 ) ( 448 -64 16 ) ( 448 -64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -96 16 ) ( 448 -96 16 ) ( 448 -96 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 311
+// brush 310
 {
 ( 376 -80 -54 ) ( 408 -80 -54 ) ( 376 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 362 -63 44 ) ( 362 -63 41 ) ( 362 -47 44 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2769,7 +2761,7 @@
 ( 448 -96 64 ) ( 320 -96 64 ) ( 320 -64 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 405 -96 44 ) ( 384 -96 44 ) ( 384 -96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 312
+// brush 311
 {
 ( 376 -80 -54 ) ( 408 -80 -54 ) ( 376 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 10 -41 ) ( 348 -6 -56 ) ( 336 -6 -41 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2779,7 +2771,7 @@
 ( 320 -64 -64 ) ( 320 -64 16 ) ( 320 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -96 -64 ) ( 320 -96 16 ) ( 448 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 313
+// brush 312
 {
 ( 136 -99 -128 ) ( 168 -115 -128 ) ( 136 -115 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 -384 0 ) ( 128 -384 0 ) ( 152 -384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2788,7 +2780,7 @@
 ( 176 -96 -336 ) ( 176 -96 240 ) ( 176 16 240 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 0 -336 ) ( 144 0 240 ) ( 144 -112 240 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 }
-// brush 314
+// brush 313
 {
 ( -224 0 -128 ) ( -224 0 -256 ) ( -192 -32 -256 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -224 -32 0 ) ( -248 -32 0 ) ( -224 -32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2797,7 +2789,7 @@
 ( -192 0 -128 ) ( -192 -32 -128 ) ( -256 -32 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 0 -256 ) ( -192 0 -128 ) ( -256 0 -128 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 }
-// brush 315
+// brush 314
 {
 ( -256 0 0 ) ( -256 -24 0 ) ( -256 0 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 0 -256 ) ( -256 0 -256 ) ( -320 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2806,7 +2798,7 @@
 ( -512 64 224 ) ( -624 64 224 ) ( -624 64 -352 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 0 -128 ) ( -288 0 -256 ) ( -352 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 316
+// brush 315
 {
 ( -320 192 0 ) ( -352 192 0 ) ( -320 192 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 264 16 ) ( -256 296 0 ) ( -256 264 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2815,7 +2807,7 @@
 ( -320 192 -256 ) ( -320 192 -128 ) ( -256 256 -128 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 ( -320 224 -128 ) ( -320 224 -256 ) ( -256 288 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 317
+// brush 316
 {
 ( -336 184 -54 ) ( -336 152 -54 ) ( -336 184 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -262 106 -147 ) ( -262 106 -150 ) ( -246 106 -147 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2825,7 +2817,7 @@
 ( -352 64 -176 ) ( -320 64 -176 ) ( -320 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 192 -176 ) ( -352 64 -176 ) ( -352 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 318
+// brush 317
 {
 ( 3 -32 -272 ) ( -13 0 -288 ) ( -13 -32 -272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 96 -64 -384 ) ( 72 -64 -400 ) ( 96 -64 -400 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -2833,15 +2825,15 @@
 ( 0 -128 -224 ) ( 0 -512 -224 ) ( 0 -512 -304 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 ( 128 -512 -224 ) ( 128 -128 -224 ) ( 128 -128 -304 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 319
+// brush 318
 {
-( 32 -397 -192 ) ( 64 -397 -208 ) ( 32 -381 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -288 -320 ) ( 0 -312 -320 ) ( 0 -288 -304 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -448 -256 -160 ) ( -64 -256 -160 ) ( -64 -376 -160 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
-( -448 -384 -224 ) ( -448 -384 -144 ) ( -64 -384 -144 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -64 -256 -224 ) ( -64 -256 -144 ) ( -448 -256 -144 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 32 -397 -192 ) ( 64 -397 -208 ) ( 32 -381 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -288 -320 ) ( 0 -312 -320 ) ( 0 -288 -304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -448 -256 -160 ) ( -64 -256 -160 ) ( -64 -376 -160 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
+( -448 -384 -224 ) ( -448 -384 -144 ) ( -64 -384 -144 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -64 -256 -224 ) ( -64 -256 -144 ) ( -448 -256 -144 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 320
+// brush 319
 {
 ( -336 184 -54 ) ( -336 152 -54 ) ( -336 184 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 192 -288 ) ( -352 192 -288 ) ( -352 64 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2850,7 +2842,7 @@
 ( -320 192 -208 ) ( -352 192 -208 ) ( -352 192 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 192 -208 ) ( -352 64 -208 ) ( -352 64 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 321
+// brush 320
 {
 ( 152 32 0 ) ( 144 32 0 ) ( 152 32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 184 64 -145 ) ( 152 64 -161 ) ( 184 64 -161 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2859,7 +2851,7 @@
 ( 176 32 -352 ) ( 176 32 224 ) ( 176 144 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 128 -352 ) ( 144 128 224 ) ( 144 16 224 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 322
+// brush 321
 {
 ( 96 -400 0 ) ( 96 -376 0 ) ( 96 -400 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 -408 16 ) ( 128 -368 0 ) ( 128 -408 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2868,7 +2860,7 @@
 ( 96 -432 -96 ) ( 96 -432 480 ) ( 208 -432 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 -400 -96 ) ( 192 -400 480 ) ( 80 -400 480 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 323
+// brush 322
 {
 ( 80 -416 -112 ) ( 80 -416 -80 ) ( 64 -408 -80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -16 -416 -80 ) ( -16 -416 -112 ) ( 0 -408 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -2877,7 +2869,7 @@
 ( -24 -408 154 ) ( -56 -408 138 ) ( -24 -408 138 ) e7/e7trimlight 192 -1 -90 0.5 0.5 0 0 0
 ( 80 -416 -80 ) ( 80 -416 -112 ) ( -16 -416 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 324
+// brush 323
 {
 ( -128 -400 0 ) ( -128 -424 0 ) ( -128 -400 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 -432 -161 ) ( -160 -400 -161 ) ( -160 -432 -145 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2886,7 +2878,7 @@
 ( 128 -432 -352 ) ( 128 -432 224 ) ( 240 -432 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 -400 -352 ) ( 192 -400 224 ) ( 80 -400 224 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 }
-// brush 325
+// brush 324
 {
 ( -336 184 -54 ) ( -336 152 -54 ) ( -336 184 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -246 150 -147 ) ( -262 150 -150 ) ( -262 150 -147 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2896,7 +2888,7 @@
 ( -320 192 -256 ) ( -320 192 -176 ) ( -352 192 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 192 -256 ) ( -352 192 -176 ) ( -352 64 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 326
+// brush 325
 {
 ( 0 520 0 ) ( 0 552 0 ) ( 0 520 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 544 0 ) ( 192 512 0 ) ( 192 544 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2905,7 +2897,7 @@
 ( 64 512 480 ) ( 176 512 480 ) ( 176 512 -96 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 ( 192 544 480 ) ( 80 544 480 ) ( 80 544 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 327
+// brush 326
 {
 ( -352 -128 0 ) ( -416 -128 0 ) ( -352 -128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 -64 0 ) ( -352 -64 0 ) ( -416 -64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2914,7 +2906,7 @@
 ( -128 384 -96 ) ( -512 384 -96 ) ( -512 64 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -520 64 -64 ) ( -520 384 -64 ) ( -136 384 -64 ) savdm6ish/sfloor1_2 256 0 0 -0.125 0.125 0 0 0
 }
-// brush 328
+// brush 327
 {
 ( -480 -224 0 ) ( -448 -192 0 ) ( -480 -224 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 -192 0 ) ( -352 -192 0 ) ( -384 -192 16 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
@@ -2923,7 +2915,7 @@
 ( -512 -72 64 ) ( -512 480 64 ) ( -480 480 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 -224 48 ) ( -384 328 48 ) ( -384 328 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 329
+// brush 328
 {
 ( -384 -216 0 ) ( -384 -184 0 ) ( -384 -216 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 -224 0 ) ( -344 -224 0 ) ( -328 -224 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2932,7 +2924,7 @@
 ( -384 -192 64 ) ( -352 -192 64 ) ( -320 -224 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -192 64 ) ( -352 -192 -64 ) ( -320 -224 -64 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 330
+// brush 329
 {
 ( 47 888 -64 ) ( 47 864 -64 ) ( 63 888 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 48 544 230 ) ( 72 544 214 ) ( 48 544 214 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2941,7 +2933,7 @@
 ( -32 864 -64 ) ( -32 864 -32 ) ( -32 608 96 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -16 864 -32 ) ( -16 864 -64 ) ( -16 608 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 331
+// brush 330
 {
 ( -432 544 179 ) ( -416 544 179 ) ( -432 544 195 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 544 186 ) ( -416 512 170 ) ( -448 544 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2949,7 +2941,7 @@
 ( -448 632 128 ) ( -448 384 128 ) ( -416 384 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 384 128 ) ( -416 384 376 ) ( -416 632 376 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 332
+// brush 331
 {
 ( -736 256 32 ) ( -760 256 32 ) ( -736 256 47 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -736 224 128 ) ( -736 224 256 ) ( -736 416 256 ) e7/e7walldesign01 -256 -128 0 0.5 0.5 0 0 0
@@ -2958,7 +2950,7 @@
 ( -768 224 128 ) ( -736 224 128 ) ( -736 416 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -480 384 128 ) ( -480 384 376 ) ( -728 384 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 333
+// brush 332
 {
 ( -608 520 47 ) ( -608 536 32 ) ( -608 520 32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -704 416 256 ) ( -608 512 256 ) ( -608 512 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
@@ -2967,7 +2959,7 @@
 ( -704 416 128 ) ( -608 512 128 ) ( -640 512 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -736 384 376 ) ( -488 384 376 ) ( -488 384 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 334
+// brush 333
 {
 ( -608 120 32 ) ( -608 104 32 ) ( -608 120 47 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 128 128 ) ( -608 128 256 ) ( -704 224 256 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
@@ -2976,7 +2968,7 @@
 ( -640 128 128 ) ( -608 128 128 ) ( -704 224 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -488 256 128 ) ( -488 256 376 ) ( -736 256 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 335
+// brush 334
 {
 ( -576 120 300 ) ( -576 96 300 ) ( -576 120 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 520 186 ) ( -608 496 170 ) ( -608 520 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2985,7 +2977,7 @@
 ( -568 512 376 ) ( -320 512 376 ) ( -320 512 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -320 544 376 ) ( -568 544 376 ) ( -568 544 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 336
+// brush 335
 {
 ( -736 384 32 ) ( -704 416 32 ) ( -736 384 47 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 128 32 ) ( -640 160 32 ) ( -608 128 47 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -2996,7 +2988,7 @@
 ( -488 -96 128 ) ( -488 224 128 ) ( -104 224 128 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -736 184 144 ) ( -736 -136 144 ) ( -736 -136 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 337
+// brush 336
 {
 ( -120 672 0 ) ( -72 672 0 ) ( -120 672 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 608 0 ) ( -112 608 0 ) ( -64 608 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3005,7 +2997,7 @@
 ( 64 320 -96 ) ( -320 320 -96 ) ( -320 0 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 0 -64 ) ( -328 320 -64 ) ( 56 320 -64 ) savdm6ish/sfloor1_2 256 0 0 -0.125 0.125 0 0 0
 }
-// brush 338
+// brush 337
 {
 ( -32 8 200 ) ( -32 40 184 ) ( -32 8 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -208 512 216 ) ( -232 512 200 ) ( -208 512 200 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3014,7 +3006,7 @@
 ( 96 224 96 ) ( -288 224 96 ) ( -288 -96 96 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -512 216 144 ) ( -512 -104 144 ) ( -512 -104 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 339
+// brush 338
 {
 ( -56 512 -58 ) ( -128 512 -58 ) ( -56 512 -42 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -80 544 216 ) ( -104 544 200 ) ( -80 544 200 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
@@ -3023,7 +3015,7 @@
 ( -168 -96 128 ) ( -168 224 128 ) ( 216 224 128 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
 ( -160 224 144 ) ( -160 -96 144 ) ( -160 -96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 340
+// brush 339
 {
 ( -176 528 32 ) ( -160 512 32 ) ( -176 528 47 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -272 512 96 ) ( -144 512 96 ) ( -144 528 96 ) e7/e7panelwood2 32 -2 -90 0.5 0.5 0 0 0
@@ -3032,7 +3024,7 @@
 ( -144 528 32 ) ( -144 528 280 ) ( -272 528 280 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 ( -272 512 32 ) ( -272 512 280 ) ( -144 512 280 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 341
+// brush 340
 {
 ( -160 512 32 ) ( -176 528 32 ) ( -160 512 47 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 544 96 ) ( -176 544 96 ) ( -176 416 96 ) e7/e7panelwood2 192 0 -180 0.5 0.5 0 0 0
@@ -3041,80 +3033,80 @@
 ( -160 544 280 ) ( -176 544 280 ) ( -176 544 32 ) e7/e7panelwood2 192 0 -180 0.5 0.5 0 0 0
 ( -176 544 280 ) ( -176 416 280 ) ( -176 416 32 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
+// brush 341
+{
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 72 104 ) ( -32 104 88 ) ( -32 72 88 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 -32 32 ) ( -168 288 32 ) ( 216 288 32 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( 216 736 48 ) ( -168 736 48 ) ( -168 736 -32 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -160 288 48 ) ( -160 -32 48 ) ( -160 -32 -32 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+}
 // brush 342
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 72 104 ) ( -32 104 88 ) ( -32 72 88 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 -32 32 ) ( -168 288 32 ) ( 216 288 32 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( 216 736 48 ) ( -168 736 48 ) ( -168 736 -32 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -160 288 48 ) ( -160 -32 48 ) ( -160 -32 -32 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -80 640 168 ) ( -104 640 152 ) ( -80 640 152 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -32 72 152 ) ( -32 104 136 ) ( -32 72 136 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 -32 80 ) ( -168 288 80 ) ( 216 288 80 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -160 288 96 ) ( -160 -32 96 ) ( -160 -32 16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 343
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -80 640 168 ) ( -104 640 152 ) ( -80 640 152 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -32 72 152 ) ( -32 104 136 ) ( -32 72 136 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 -32 80 ) ( -168 288 80 ) ( 216 288 80 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -160 288 96 ) ( -160 -32 96 ) ( -160 -32 16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -72 672 152 ) ( -104 672 136 ) ( -72 672 136 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -32 72 136 ) ( -32 104 120 ) ( -32 72 120 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 -32 64 ) ( -168 288 64 ) ( 216 288 64 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -160 288 80 ) ( -160 -32 80 ) ( -160 -32 0 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 344
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -72 672 152 ) ( -104 672 136 ) ( -72 672 136 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -32 72 136 ) ( -32 104 120 ) ( -32 72 120 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 -32 64 ) ( -168 288 64 ) ( 216 288 64 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -160 288 80 ) ( -160 -32 80 ) ( -160 -32 0 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -96 704 136 ) ( -144 704 120 ) ( -96 704 120 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -32 72 120 ) ( -32 104 104 ) ( -32 72 104 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 -32 48 ) ( -168 288 48 ) ( 216 288 48 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -160 288 64 ) ( -160 -32 64 ) ( -160 -32 -16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 345
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -96 704 136 ) ( -144 704 120 ) ( -96 704 120 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -32 72 120 ) ( -32 104 104 ) ( -32 72 104 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 -32 48 ) ( -168 288 48 ) ( 216 288 48 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -160 288 64 ) ( -160 -32 64 ) ( -160 -32 -16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 104 88 ) ( -32 136 72 ) ( -32 104 72 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 0 16 ) ( -168 320 16 ) ( 216 320 16 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( 216 768 32 ) ( -168 768 32 ) ( -168 768 -48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -160 320 32 ) ( -160 0 32 ) ( -160 0 -48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 346
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 104 88 ) ( -32 136 72 ) ( -32 104 72 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 0 16 ) ( -168 320 16 ) ( 216 320 16 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( 216 768 32 ) ( -168 768 32 ) ( -168 768 -48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -160 320 32 ) ( -160 0 32 ) ( -160 0 -48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 136 72 ) ( -32 168 56 ) ( -32 136 56 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 32 0 ) ( -168 352 0 ) ( 216 352 0 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( 216 800 16 ) ( -168 800 16 ) ( -168 800 -64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -160 352 16 ) ( -160 32 16 ) ( -160 32 -64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 347
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 136 72 ) ( -32 168 56 ) ( -32 136 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 32 0 ) ( -168 352 0 ) ( 216 352 0 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( 216 800 16 ) ( -168 800 16 ) ( -168 800 -64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -160 352 16 ) ( -160 32 16 ) ( -160 32 -64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 168 56 ) ( -32 200 40 ) ( -32 168 40 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 64 -16 ) ( -168 384 -16 ) ( 216 384 -16 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( 216 832 0 ) ( -168 832 0 ) ( -168 832 -80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -160 384 0 ) ( -160 64 0 ) ( -160 64 -80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 348
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 168 56 ) ( -32 200 40 ) ( -32 168 40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 64 -16 ) ( -168 384 -16 ) ( 216 384 -16 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( 216 832 0 ) ( -168 832 0 ) ( -168 832 -80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -160 384 0 ) ( -160 64 0 ) ( -160 64 -80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 200 40 ) ( -32 232 24 ) ( -32 200 24 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 96 -32 ) ( -168 416 -32 ) ( 216 416 -32 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( 216 864 -16 ) ( -168 864 -16 ) ( -168 864 -96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -160 416 -16 ) ( -160 96 -16 ) ( -160 96 -96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 349
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 200 40 ) ( -32 232 24 ) ( -32 200 24 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 96 -32 ) ( -168 416 -32 ) ( 216 416 -32 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( 216 864 -16 ) ( -168 864 -16 ) ( -168 864 -96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -160 416 -16 ) ( -160 96 -16 ) ( -160 96 -96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 232 24 ) ( -32 264 8 ) ( -32 232 8 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 128 -48 ) ( -168 448 -48 ) ( 216 448 -48 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( 216 896 -32 ) ( -168 896 -32 ) ( -168 896 -112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -160 448 -32 ) ( -160 128 -32 ) ( -160 128 -112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 350
 {
-( -62 608 80 ) ( -78 640 64 ) ( -78 608 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 232 24 ) ( -32 264 8 ) ( -32 232 8 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 128 -48 ) ( -168 448 -48 ) ( 216 448 -48 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( 216 896 -32 ) ( -168 896 -32 ) ( -168 896 -112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -160 448 -32 ) ( -160 128 -32 ) ( -160 128 -112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-}
-// brush 351
-{
 ( -78 896 -64 ) ( -78 864 -64 ) ( -62 896 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -80 544 168 ) ( -104 544 168 ) ( -80 544 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -78 896 -80 ) ( -78 864 -64 ) ( -62 896 -80 ) e7/e7panelwood2 -60 -232 -90 0.5 0.5 0 0 0
@@ -3122,7 +3114,7 @@
 ( -32 232 24 ) ( -32 264 8 ) ( -32 232 8 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 448 -32 ) ( -160 128 -32 ) ( -160 128 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 352
+// brush 351
 {
 ( 256 256 267 ) ( 224 256 267 ) ( 256 256 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 352 168 ) ( 128 376 168 ) ( 128 352 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3131,7 +3123,7 @@
 ( 96 416 -64 ) ( 96 384 -64 ) ( 224 256 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 416 64 ) ( 96 416 -64 ) ( 224 288 -64 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 353
+// brush 352
 {
 ( 320 416 0 ) ( 320 392 0 ) ( 320 416 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 480 64 ) ( 224 512 64 ) ( 320 416 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3140,7 +3132,7 @@
 ( 224 512 -64 ) ( 224 480 -64 ) ( 320 384 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 552 -64 ) ( 192 552 64 ) ( 192 488 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 354
+// brush 353
 {
 ( 304 384 200 ) ( 264 384 200 ) ( 304 384 216 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 ( 288 224 138 ) ( 288 248 138 ) ( 288 224 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3149,7 +3141,7 @@
 ( 448 224 504 ) ( 448 264 504 ) ( 448 264 -72 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 416 512 ) ( 16 416 512 ) ( 16 416 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 355
+// brush 354
 {
 ( 448 384 64 ) ( 480 384 64 ) ( 480 320 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 608 384 -86 ) ( 640 384 -86 ) ( 608 384 -70 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3158,7 +3150,7 @@
 ( 480 384 -64 ) ( 448 384 -64 ) ( 448 320 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 384 -64 ) ( 448 384 64 ) ( 448 320 64 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 356
+// brush 355
 {
 ( 448 320 0 ) ( 432 312 0 ) ( 448 320 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 584 384 -6 ) ( 560 384 -22 ) ( 584 384 -22 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3167,7 +3159,7 @@
 ( 448 120 200 ) ( 448 152 184 ) ( 448 120 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 432 312 64 ) ( 432 312 144 ) ( 432 -8 144 ) e7/e7panelwood2 304 -21 -270 0.5 0.5 0 0 0
 }
-// brush 357
+// brush 356
 {
 ( 576 352 0 ) ( 576 288 0 ) ( 576 352 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 560 288 0 ) ( 520 288 0 ) ( 560 288 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3176,7 +3168,7 @@
 ( 576 64 96 ) ( 576 192 96 ) ( 448 64 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 192 128 ) ( 576 64 128 ) ( 448 -64 128 ) savdm6ish/sfloor1_2 256 0 0 -0.125 0.125 0 0 0
 }
-// brush 358
+// brush 357
 {
 ( 496 248 0 ) ( 512 256 0 ) ( 496 248 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 0 267 ) ( 496 8 267 ) ( 512 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3185,7 +3177,7 @@
 ( 512 -8 200 ) ( 512 24 184 ) ( 512 -8 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 496 184 64 ) ( 496 184 144 ) ( 496 -136 144 ) e7/e7panelwood2 304 -21 -270 0.5 0.5 0 0 0
 }
-// brush 359
+// brush 358
 {
 ( 24 128 23 ) ( 120 128 23 ) ( 24 128 39 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 136 64 23 ) ( 88 64 23 ) ( 136 64 39 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3194,7 +3186,7 @@
 ( 128 128 96 ) ( 0 128 96 ) ( 0 -128 96 ) e7/e7beam01 0 0 -270 0.5 0.5 0 0 0
 ( 0 128 624 ) ( 0 -128 624 ) ( 0 -128 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 360
+// brush 359
 {
 ( -152 271 304 ) ( -184 271 304 ) ( -152 287 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 271 256 ) ( -104 271 256 ) ( -216 287 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3203,7 +3195,7 @@
 ( -192 272 512 ) ( -80 272 512 ) ( -80 272 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 296 504 ) ( 0 336 504 ) ( 0 336 -72 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 361
+// brush 360
 {
 ( -352 0 0 ) ( -320 32 0 ) ( -352 0 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -224 0 ) ( -352 -192 0 ) ( -320 -224 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3214,7 +3206,7 @@
 ( -328 -128 -64 ) ( -328 192 -64 ) ( 56 192 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -352 192 -48 ) ( -352 -128 -48 ) ( -352 -128 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 362
+// brush 361
 {
 ( -176 -240 138 ) ( -216 -240 138 ) ( -176 -240 154 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -176 256 47 ) ( -192 256 31 ) ( -176 256 31 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3223,7 +3215,7 @@
 ( -192 -24 -7 ) ( -192 8 -7 ) ( -192 -24 8 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 -152 -48 ) ( -176 168 -48 ) ( -176 168 -128 ) e7/e7panelwood2 112 0 -90 0.5 0.5 0 0 0
 }
-// brush 363
+// brush 362
 {
 ( -320 248 144 ) ( -320 128 144 ) ( -320 128 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 115 208 ) ( -64 115 224 ) ( -96 131 208 ) e7/e7panelwood2 208 0 0 0.5 0.5 0 0 0
@@ -3232,7 +3224,7 @@
 ( -96 128 256 ) ( 288 128 256 ) ( 288 128 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 256 256 ) ( -96 256 256 ) ( -96 256 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 364
+// brush 363
 {
 ( -320 208 -48 ) ( -320 176 -48 ) ( -320 208 -32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 264 256 96 ) ( -120 256 96 ) ( -120 136 96 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
@@ -3241,63 +3233,63 @@
 ( 256 256 128 ) ( -128 256 128 ) ( -128 256 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -512 240 128 ) ( -512 120 128 ) ( -512 120 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
+// brush 364
+{
+( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -96 240 96 ) ( -96 224 80 ) ( -96 240 80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -96 136 240 ) ( -96 256 240 ) ( 288 256 240 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 256 ) ( 288 128 256 ) ( 288 128 176 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 256 ) ( -96 256 256 ) ( -96 256 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+}
 // brush 365
 {
-( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -96 240 96 ) ( -96 224 80 ) ( -96 240 80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -96 136 240 ) ( -96 256 240 ) ( 288 256 240 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 256 ) ( 288 128 256 ) ( 288 128 176 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 256 ) ( -96 256 256 ) ( -96 256 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -256 224 16 ) ( -256 176 0 ) ( -256 224 0 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -96 136 160 ) ( -96 256 160 ) ( 288 256 160 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 176 ) ( 288 128 176 ) ( 288 128 96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 176 ) ( -96 256 176 ) ( -96 256 96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
 // brush 366
 {
-( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -256 224 16 ) ( -256 176 0 ) ( -256 224 0 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -96 136 160 ) ( -96 256 160 ) ( 288 256 160 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 176 ) ( 288 128 176 ) ( 288 128 96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 176 ) ( -96 256 176 ) ( -96 256 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -224 128 160 ) ( -192 128 176 ) ( -192 256 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -224 240 32 ) ( -224 216 16 ) ( -224 240 16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -224 256 176 ) ( -192 256 176 ) ( -192 128 176 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 192 ) ( 288 128 192 ) ( 288 128 112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 192 ) ( -96 256 192 ) ( -96 256 112 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
 // brush 367
 {
-( -224 128 160 ) ( -192 128 176 ) ( -192 256 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -224 240 32 ) ( -224 216 16 ) ( -224 240 16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -224 256 176 ) ( -192 256 176 ) ( -192 128 176 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 192 ) ( 288 128 192 ) ( 288 128 112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 192 ) ( -96 256 192 ) ( -96 256 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -160 256 192 ) ( -192 256 176 ) ( -192 128 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -192 128 192 ) ( -192 128 176 ) ( -192 256 176 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -96 136 192 ) ( -96 256 192 ) ( 288 256 192 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 208 ) ( 288 128 208 ) ( 288 128 128 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 208 ) ( -96 256 208 ) ( -96 256 128 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
 // brush 368
 {
-( -160 256 192 ) ( -192 256 176 ) ( -192 128 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -192 128 192 ) ( -192 128 176 ) ( -192 256 176 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -96 136 192 ) ( -96 256 192 ) ( 288 256 192 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 208 ) ( 288 128 208 ) ( 288 128 128 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 208 ) ( -96 256 208 ) ( -96 256 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -160 224 64 ) ( -160 200 48 ) ( -160 224 48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -96 136 208 ) ( -96 256 208 ) ( 288 256 208 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 224 ) ( 288 128 224 ) ( 288 128 144 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 224 ) ( -96 256 224 ) ( -96 256 144 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
 // brush 369
 {
-( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -160 224 64 ) ( -160 200 48 ) ( -160 224 48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -96 136 208 ) ( -96 256 208 ) ( 288 256 208 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 224 ) ( 288 128 224 ) ( 288 128 144 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 224 ) ( -96 256 224 ) ( -96 256 144 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -128 216 80 ) ( -128 176 64 ) ( -128 216 64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -96 136 224 ) ( -96 256 224 ) ( 288 256 224 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 240 ) ( 288 128 240 ) ( 288 128 160 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 240 ) ( -96 256 240 ) ( -96 256 160 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
 // brush 370
 {
 ( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -128 216 80 ) ( -128 176 64 ) ( -128 216 64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -96 136 224 ) ( -96 256 224 ) ( 288 256 224 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 240 ) ( 288 128 240 ) ( 288 128 160 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 240 ) ( -96 256 240 ) ( -96 256 160 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-}
-// brush 371
-{
-( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 136 128 ) ( -96 256 128 ) ( 288 256 128 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
 ( -96 128 144 ) ( 288 128 144 ) ( 288 128 64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
 ( 288 256 144 ) ( -96 256 144 ) ( -96 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 248 144 ) ( -320 128 144 ) ( -320 128 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 372
+// brush 371
 {
 ( -320 64 64 ) ( -304 64 80 ) ( -320 80 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -248 64 112 ) ( -272 64 112 ) ( -248 80 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3306,7 +3298,7 @@
 ( -320 272 128 ) ( -320 272 96 ) ( -64 272 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 272 320 ) ( -320 248 320 ) ( -320 248 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 373
+// brush 372
 {
 ( -168 -208 181 ) ( -192 -208 181 ) ( -168 -208 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -192 181 ) ( 144 -216 181 ) ( 144 -192 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3315,24 +3307,24 @@
 ( -224 -224 96 ) ( -192 -224 96 ) ( -320 -96 96 ) e7/e7panelwood2 416 -21 -270 0.5 0.5 0 0 0
 ( -192 -224 128 ) ( -224 -224 128 ) ( -352 -96 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
+// brush 373
+{
+( -160 131 192 ) ( -192 115 176 ) ( -160 115 192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -64 240 112 ) ( -64 224 96 ) ( -64 240 96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -64 136 256 ) ( -64 256 256 ) ( 320 256 256 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -64 128 272 ) ( 320 128 272 ) ( 320 128 192 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 320 256 272 ) ( -64 256 272 ) ( -64 256 192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+}
 // brush 374
 {
-( -160 131 192 ) ( -192 115 176 ) ( -160 115 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -64 240 112 ) ( -64 224 96 ) ( -64 240 96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -64 136 256 ) ( -64 256 256 ) ( 320 256 256 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -64 128 272 ) ( 320 128 272 ) ( 320 128 192 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 320 256 272 ) ( -64 256 272 ) ( -64 256 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -128 131 208 ) ( -160 115 192 ) ( -128 115 208 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -32 240 128 ) ( -32 224 112 ) ( -32 240 112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -32 136 272 ) ( -32 256 272 ) ( 352 256 272 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -32 128 288 ) ( 352 128 288 ) ( 352 128 208 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 352 256 288 ) ( -32 256 288 ) ( -32 256 208 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
 // brush 375
 {
-( -128 131 208 ) ( -160 115 192 ) ( -128 115 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -32 240 128 ) ( -32 224 112 ) ( -32 240 112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -32 136 272 ) ( -32 256 272 ) ( 352 256 272 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -32 128 288 ) ( 352 128 288 ) ( 352 128 208 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 352 256 288 ) ( -32 256 288 ) ( -32 256 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-}
-// brush 376
-{
 ( 0 -192 73 ) ( -16 -192 73 ) ( 0 -192 89 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 272 223 ) ( 0 272 223 ) ( -16 272 239 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 -29 96 ) ( -16 -45 104 ) ( 0 -45 96 ) e7/e7panelwood2 256 -21 -180 0.5 0.5 0 0 0
@@ -3340,7 +3332,7 @@
 ( 0 -8 200 ) ( 0 24 184 ) ( 0 -8 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 184 64 ) ( -16 184 144 ) ( -16 -136 144 ) e7/e7panelwood2 240 0 -90 0.5 0.5 0 0 0
 }
-// brush 377
+// brush 376
 {
 ( -336 -64 -128 ) ( -312 -64 -128 ) ( -336 -64 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -132 256 ) ( -344 -132 256 ) ( -320 -116 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3349,7 +3341,7 @@
 ( -320 -120 376 ) ( -320 128 376 ) ( -320 128 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -352 128 376 ) ( -352 -120 376 ) ( -352 -120 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 378
+// brush 377
 {
 ( -576 120 300 ) ( -576 96 300 ) ( -576 120 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 120 170 ) ( -608 144 170 ) ( -608 120 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3358,7 +3350,7 @@
 ( -320 128 128 ) ( -320 128 376 ) ( -568 128 376 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -568 96 128 ) ( -568 96 376 ) ( -320 96 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 379
+// brush 378
 {
 ( -320 384 170 ) ( -296 384 170 ) ( -320 384 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 640 96 ) ( -352 256 96 ) ( -320 256 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3367,7 +3359,7 @@
 ( -352 256 96 ) ( -352 256 344 ) ( -320 256 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 640 96 ) ( -352 640 344 ) ( -352 256 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 380
+// brush 379
 {
 ( 256 448 0 ) ( 160 352 0 ) ( 256 448 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 576 0 ) ( 256 512 0 ) ( 192 576 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3379,7 +3371,7 @@
 ( 232 576 624 ) ( 104 576 624 ) ( 104 576 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 640 624 ) ( 0 384 624 ) ( 0 384 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 381
+// brush 380
 {
 ( 64 288 0 ) ( 32 256 0 ) ( 64 288 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 264 0 ) ( 0 288 0 ) ( 0 264 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3388,7 +3380,7 @@
 ( -192 256 224 ) ( -80 256 224 ) ( -80 256 -352 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -32 288 224 ) ( -144 288 224 ) ( -144 288 -352 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 382
+// brush 381
 {
 ( 0 264 0 ) ( 0 288 0 ) ( 0 264 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 24 248 138 ) ( 8 232 138 ) ( 24 248 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3397,7 +3389,7 @@
 ( -192 256 480 ) ( -80 256 480 ) ( -80 256 -96 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -64 288 480 ) ( -176 288 480 ) ( -176 288 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 383
+// brush 382
 {
 ( -56 165 -112 ) ( -32 165 -112 ) ( -56 181 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 48 248 154 ) ( 48 216 138 ) ( 48 248 138 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
@@ -3406,7 +3398,7 @@
 ( 64 368 -128 ) ( 64 368 448 ) ( 64 480 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 128 -144 ) ( 0 128 432 ) ( 40 128 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 384
+// brush 383
 {
 ( 64 288 106 ) ( 80 304 106 ) ( 64 288 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 432 -256 ) ( 24 432 -256 ) ( 24 320 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3415,16 +3407,16 @@
 ( 0 128 -352 ) ( 0 128 224 ) ( 40 128 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 400 -352 ) ( 32 400 224 ) ( 32 288 224 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 385
+// brush 384
 {
-( 63 -56 -256 ) ( 63 -80 -256 ) ( 79 -56 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 64 -224 -42 ) ( 88 -224 -58 ) ( 64 -224 -58 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -13 -288 -160 ) ( -13 -320 -144 ) ( 3 -288 -160 ) e7/e7panelwood2 -256 -232 -180 0.5 0.5 134217728 0 0
-( -13 -192 -192 ) ( -13 -160 -208 ) ( 3 -192 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -288 -112 ) ( 0 -672 -112 ) ( 0 -672 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 128 -672 -112 ) ( 128 -288 -112 ) ( 128 -288 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 63 -56 -256 ) ( 63 -80 -256 ) ( 79 -56 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 64 -224 -42 ) ( 88 -224 -58 ) ( 64 -224 -58 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -13 -288 -160 ) ( -13 -320 -144 ) ( 3 -288 -160 ) e7/e7panelwood2 -256 -232 -180 0.5 0.5 0 0 0
+( -13 -192 -192 ) ( -13 -160 -208 ) ( 3 -192 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -288 -112 ) ( 0 -672 -112 ) ( 0 -672 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 128 -672 -112 ) ( 128 -288 -112 ) ( 128 -288 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 386
+// brush 385
 {
 ( 0 -397 -176 ) ( 32 -397 -192 ) ( 0 -381 -176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -96 -272 -272 ) ( -96 -288 -272 ) ( -96 -272 -256 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3432,7 +3424,7 @@
 ( -480 -384 -176 ) ( -480 -384 -96 ) ( -96 -384 -96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -96 -256 -176 ) ( -96 -256 -96 ) ( -480 -256 -96 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 387
+// brush 386
 {
 ( 0 -397 -176 ) ( 32 -397 -192 ) ( 0 -381 -176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -32 -288 -304 ) ( -32 -312 -304 ) ( -32 -288 -288 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3440,7 +3432,7 @@
 ( -480 -384 -208 ) ( -480 -384 -128 ) ( -96 -384 -128 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -96 -256 -208 ) ( -96 -256 -128 ) ( -480 -256 -128 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 388
+// brush 387
 {
 ( 0 -397 -176 ) ( 32 -397 -192 ) ( 0 -381 -176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -64 -296 -288 ) ( -64 -336 -288 ) ( -64 -296 -272 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3448,7 +3440,7 @@
 ( -480 -384 -192 ) ( -480 -384 -112 ) ( -96 -384 -112 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -96 -256 -192 ) ( -96 -256 -112 ) ( -480 -256 -112 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 389
+// brush 388
 {
 ( -32 -397 -160 ) ( 0 -397 -176 ) ( -32 -381 -160 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -128 -272 -256 ) ( -128 -288 -256 ) ( -128 -272 -240 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3456,7 +3448,7 @@
 ( -512 -384 -160 ) ( -512 -384 -80 ) ( -128 -384 -80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -128 -256 -160 ) ( -128 -256 -80 ) ( -512 -256 -80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 390
+// brush 389
 {
 ( -64 -397 -144 ) ( -32 -397 -160 ) ( -64 -381 -144 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -160 -272 -240 ) ( -160 -288 -240 ) ( -160 -272 -224 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3464,7 +3456,7 @@
 ( -544 -384 -144 ) ( -544 -384 -64 ) ( -160 -384 -64 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -160 -256 -144 ) ( -160 -256 -64 ) ( -544 -256 -64 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 391
+// brush 390
 {
 ( 3 -64 -256 ) ( -13 -32 -272 ) ( -13 -64 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 112 -160 -336 ) ( 96 -160 -352 ) ( 112 -160 -352 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3472,7 +3464,7 @@
 ( 0 -160 -176 ) ( 0 -544 -176 ) ( 0 -544 -256 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 ( 128 -544 -176 ) ( 128 -160 -176 ) ( 128 -160 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 392
+// brush 391
 {
 ( 3 -64 -256 ) ( -13 -32 -272 ) ( -13 -64 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 96 -96 -368 ) ( 72 -96 -384 ) ( 96 -96 -384 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3480,7 +3472,7 @@
 ( 0 -160 -208 ) ( 0 -544 -208 ) ( 0 -544 -288 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 ( 128 -544 -208 ) ( 128 -160 -208 ) ( 128 -160 -288 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 393
+// brush 392
 {
 ( 3 -64 -256 ) ( -13 -32 -272 ) ( -13 -64 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 88 -128 -352 ) ( 48 -128 -368 ) ( 88 -128 -368 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3488,7 +3480,7 @@
 ( 0 -160 -192 ) ( 0 -544 -192 ) ( 0 -544 -272 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 ( 128 -544 -192 ) ( 128 -160 -192 ) ( 128 -160 -272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 394
+// brush 393
 {
 ( 3 -96 -240 ) ( -13 -64 -256 ) ( -13 -96 -240 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 112 -192 -320 ) ( 96 -192 -336 ) ( 112 -192 -336 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
@@ -3496,7 +3488,7 @@
 ( 0 -192 -160 ) ( 0 -576 -160 ) ( 0 -576 -240 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 ( 128 -576 -160 ) ( 128 -192 -160 ) ( 128 -192 -240 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 395
+// brush 394
 {
 ( 96 96 0 ) ( 96 72 0 ) ( 96 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 40 128 0 ) ( 72 128 0 ) ( 40 128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3505,7 +3497,7 @@
 ( 32 160 64 ) ( 32 160 -64 ) ( 128 64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 160 -64 ) ( 0 160 64 ) ( 96 64 64 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 396
+// brush 395
 {
 ( 444 40 64 ) ( 444 -8 64 ) ( 428 40 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 -384 -16 ) ( 168 -384 -16 ) ( 152 -384 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3514,7 +3506,7 @@
 ( 160 -384 -16 ) ( 160 -408 -16 ) ( 160 -384 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 128 -336 ) ( 144 128 240 ) ( 144 16 240 ) e7/e7panelwood2 32 0 0 0.5 0.5 0 0 0
 }
-// brush 397
+// brush 396
 {
 ( 136 -700 64 ) ( 88 -700 64 ) ( 136 -684 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 -400 0 ) ( 128 -360 0 ) ( 128 -400 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3523,26 +3515,26 @@
 ( 144 -416 0 ) ( 128 -416 0 ) ( 144 -416 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 -400 -320 ) ( 224 -400 256 ) ( 112 -400 256 ) e7/e7panelwood2 0 0 0 0.5 0.5 0 0 0
 }
+// brush 397
+{
+( 144 -400 -145 ) ( 128 -384 -145 ) ( 144 -400 -129 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 144 -224 -192 ) ( 128 -224 -192 ) ( 128 -400 -192 ) e7/e7trim01 0 -30 -90 0.5 0.5 0 0 0
+( 136 -400 -160 ) ( 136 -224 -160 ) ( 152 -224 -160 ) e7/e7panelwood2 0 0 0 0.5 0.5 0 0 0
+( 144 -400 56 ) ( 144 -224 56 ) ( 144 -224 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 144 -224 56 ) ( 128 -224 56 ) ( 128 -224 -192 ) e7/e7panelwood2 0 0 0 0.5 0.5 0 0 0
+( 128 -224 56 ) ( 128 -400 56 ) ( 128 -400 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+}
 // brush 398
 {
-( 144 -400 -145 ) ( 128 -384 -145 ) ( 144 -400 -129 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 144 -224 -192 ) ( 128 -224 -192 ) ( 128 -400 -192 ) e7/e7trim01 0 -30 -90 0.5 0.5 134217728 0 0
-( 136 -400 -160 ) ( 136 -224 -160 ) ( 152 -224 -160 ) e7/e7panelwood2 0 0 0 0.5 0.5 134217728 0 0
-( 144 -400 56 ) ( 144 -224 56 ) ( 144 -224 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 144 -224 56 ) ( 128 -224 56 ) ( 128 -224 -192 ) e7/e7panelwood2 0 0 0 0.5 0.5 134217728 0 0
-( 128 -224 56 ) ( 128 -400 56 ) ( 128 -400 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 144 -400 -129 ) ( 128 -384 -145 ) ( 144 -400 -145 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 144 -384 -192 ) ( -32 -384 -192 ) ( -32 -400 -192 ) e7/e7trim01 0 -30 -180 0.5 0.5 0 0 0
+( -32 -408 -160 ) ( -32 -392 -160 ) ( 144 -392 -160 ) e7/e7panelwood2 256 -1 -90 0.5 0.5 0 0 0
+( -32 -400 -192 ) ( -32 -400 56 ) ( 144 -400 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -384 -192 ) ( 0 -384 56 ) ( 0 -400 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 144 -384 -192 ) ( 144 -384 56 ) ( -32 -384 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
 // brush 399
 {
-( 144 -400 -129 ) ( 128 -384 -145 ) ( 144 -400 -145 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 144 -384 -192 ) ( -32 -384 -192 ) ( -32 -400 -192 ) e7/e7trim01 0 -30 -180 0.5 0.5 134217728 0 0
-( -32 -408 -160 ) ( -32 -392 -160 ) ( 144 -392 -160 ) e7/e7panelwood2 256 -1 -90 0.5 0.5 134217728 0 0
-( -32 -400 -192 ) ( -32 -400 56 ) ( 144 -400 56 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -384 -192 ) ( 0 -384 56 ) ( 0 -400 56 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 144 -384 -192 ) ( 144 -384 56 ) ( -32 -384 56 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-}
-// brush 400
-{
 ( -192 -384 -49 ) ( -192 -400 -49 ) ( -192 -384 -33 ) e7/e7panelwood2 128 0 -90 0.5 0.5 0 0 0
 ( -176 -388 -112 ) ( -352 -388 -112 ) ( -352 -404 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -408 -64 ) ( -352 -392 -64 ) ( -176 -392 -64 ) e7/e7panelwood2 -257 0 -90 0.5 0.5 0 0 0
@@ -3550,7 +3542,7 @@
 ( -320 -384 -96 ) ( -320 -384 152 ) ( -320 -400 152 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 -384 -96 ) ( -176 -384 152 ) ( -352 -384 152 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 401
+// brush 400
 {
 ( -320 -384 -64 ) ( -336 -384 -64 ) ( -336 -400 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 -400 64 ) ( -336 -384 64 ) ( -320 -384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3559,7 +3551,7 @@
 ( -320 -384 24 ) ( -336 -384 24 ) ( -336 -384 -224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 -384 24 ) ( -336 -400 24 ) ( -336 -400 -224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 402
+// brush 401
 {
 ( -160 -384 -256 ) ( -176 -384 -256 ) ( -176 -400 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 -400 -128 ) ( -176 -384 -128 ) ( -160 -384 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3568,7 +3560,7 @@
 ( -160 -384 -136 ) ( -176 -384 -136 ) ( -176 -384 -384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 -384 -136 ) ( -176 -400 -136 ) ( -176 -400 -384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 403
+// brush 402
 {
 ( 144 -400 -241 ) ( 128 -384 -241 ) ( 144 -400 -225 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -224 -288 ) ( 128 -224 -288 ) ( 128 -400 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3577,7 +3569,7 @@
 ( 144 64 -40 ) ( 128 64 -40 ) ( 128 64 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 -224 -40 ) ( 128 -400 -40 ) ( 128 -400 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 404
+// brush 403
 {
 ( 144 -400 -225 ) ( 128 -384 -241 ) ( 144 -400 -241 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 112 -384 -288 ) ( -64 -384 -288 ) ( -64 -400 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3586,7 +3578,7 @@
 ( -192 -392 -288 ) ( -192 -392 -40 ) ( -192 -408 -40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 112 -384 -288 ) ( 112 -384 -40 ) ( -64 -384 -40 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 405
+// brush 404
 {
 ( 176 95 288 ) ( 120 95 288 ) ( 176 111 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 256 154 ) ( 176 256 154 ) ( 152 256 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3595,7 +3587,7 @@
 ( 288 -64 304 ) ( 288 272 304 ) ( 288 272 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 272 304 ) ( 32 -64 304 ) ( 32 -64 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 406
+// brush 405
 {
 ( 192 320 0 ) ( 160 320 0 ) ( 192 320 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 256 128 ) ( 144 256 128 ) ( 144 112 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3604,7 +3596,7 @@
 ( 224 352 376 ) ( 144 352 376 ) ( 144 352 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 256 376 ) ( 160 112 376 ) ( 160 112 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 407
+// brush 406
 {
 ( 288 -32 138 ) ( 288 -64 138 ) ( 288 -32 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 0 128 ) ( 256 0 128 ) ( 192 64 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3613,7 +3605,7 @@
 ( 224 64 376 ) ( 144 64 376 ) ( 144 64 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 -32 256 ) ( 256 -32 128 ) ( 192 32 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 408
+// brush 407
 {
 ( 352 -40 267 ) ( 352 -24 267 ) ( 352 -40 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 -152 376 ) ( 384 -8 376 ) ( 384 -8 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -3622,7 +3614,7 @@
 ( 240 16 256 ) ( 240 160 256 ) ( 320 160 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 272 -64 376 ) ( 352 -64 376 ) ( 352 -64 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 409
+// brush 408
 {
 ( 88 697 112 ) ( 120 697 112 ) ( 88 713 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 -96 23 ) ( 192 -128 23 ) ( 192 -96 39 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3631,7 +3623,7 @@
 ( 120 -160 624 ) ( 248 -160 624 ) ( 248 -160 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 160 624 ) ( 128 -96 624 ) ( 128 -96 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 410
+// brush 409
 {
 ( 288 120 624 ) ( 288 -136 624 ) ( 288 -136 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 -24 23 ) ( 512 -64 23 ) ( 512 -24 39 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3640,7 +3632,7 @@
 ( 576 -64 96 ) ( 576 64 96 ) ( 448 -64 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 64 128 ) ( 576 -64 128 ) ( 448 -192 128 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 }
-// brush 411
+// brush 410
 {
 ( 384 -32 154 ) ( 352 0 138 ) ( 384 -32 138 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( 336 0 138 ) ( 360 0 138 ) ( 336 0 154 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
@@ -3649,7 +3641,7 @@
 ( 336 -32 128 ) ( 336 -32 376 ) ( 416 -32 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -16 128 ) ( 288 -16 376 ) ( 288 -160 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 412
+// brush 411
 {
 ( 256 192 0 ) ( 296 192 0 ) ( 256 192 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 64 0 ) ( 256 64 0 ) ( 288 64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3658,7 +3650,7 @@
 ( 288 64 256 ) ( 288 64 128 ) ( 288 0 128 ) e7/e7walldesign01 128 -128 0 0.5 0.5 0 0 0
 ( 256 64 128 ) ( 256 64 256 ) ( 256 0 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 413
+// brush 412
 {
 ( 320 0 267 ) ( 320 -24 267 ) ( 320 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -24 14 ) ( 288 8 14 ) ( 288 -24 30 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3667,7 +3659,7 @@
 ( 248 -32 432 ) ( 248 -64 432 ) ( 192 -64 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 344 0 304 ) ( 344 0 432 ) ( 288 0 432 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 414
+// brush 413
 {
 ( 640 64 154 ) ( 672 64 154 ) ( 640 64 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -16 154 ) ( 576 8 154 ) ( 576 -16 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3676,7 +3668,7 @@
 ( 640 64 432 ) ( 640 32 432 ) ( 576 -32 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 64 304 ) ( 640 64 432 ) ( 576 0 432 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 415
+// brush 414
 {
 ( 152 256 154 ) ( 176 256 154 ) ( 152 256 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 0 154 ) ( 288 0 154 ) ( 304 0 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3685,7 +3677,7 @@
 ( 288 -8 360 ) ( 288 24 360 ) ( 288 -8 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 -136 320 ) ( 304 184 320 ) ( 304 184 240 ) e7/e7panelwood2 464 -21 -270 0.5 0.5 0 0 0
 }
-// brush 416
+// brush 415
 {
 ( 640 -32 267 ) ( 664 -32 267 ) ( 640 -32 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 664 -64 106 ) ( 648 -64 106 ) ( 664 -64 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3694,7 +3686,7 @@
 ( 648 320 128 ) ( 680 320 128 ) ( 680 352 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 320 256 ) ( 640 320 224 ) ( 640 352 224 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 417
+// brush 416
 {
 ( 648 384 154 ) ( 672 384 154 ) ( 648 384 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 256 154 ) ( 640 296 154 ) ( 640 256 170 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
@@ -3703,7 +3695,7 @@
 ( 640 392 432 ) ( 608 392 432 ) ( 608 448 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 672 296 304 ) ( 672 296 432 ) ( 672 352 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 418
+// brush 417
 {
 ( 512 -224 138 ) ( 512 -192 138 ) ( 512 -224 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 -64 106 ) ( 672 -64 106 ) ( 640 -64 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3712,7 +3704,7 @@
 ( 480 -224 128 ) ( 512 -224 128 ) ( 672 -64 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 480 -224 256 ) ( 480 -224 128 ) ( 640 -64 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 419
+// brush 418
 {
 ( 480 -200 267 ) ( 480 -176 267 ) ( 480 -200 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 -192 106 ) ( 512 -224 106 ) ( 512 -192 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3721,7 +3713,7 @@
 ( 576 -200 128 ) ( 576 -232 128 ) ( 608 -232 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -192 256 ) ( 576 -192 224 ) ( 608 -192 224 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 420
+// brush 419
 {
 ( 264 128 0 ) ( 224 128 0 ) ( 264 128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 192 74 ) ( 224 216 74 ) ( 224 192 90 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3730,7 +3722,7 @@
 ( 256 184 440 ) ( 256 224 440 ) ( 256 224 -136 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 ( 64 256 448 ) ( -48 256 448 ) ( -48 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 421
+// brush 420
 {
 ( 440 -48 267 ) ( 448 -64 267 ) ( 440 -48 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 -56 138 ) ( 384 -48 138 ) ( 384 -56 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3739,7 +3731,7 @@
 ( 216 -64 200 ) ( 248 -64 184 ) ( 216 -64 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 376 -48 64 ) ( 376 -48 144 ) ( 56 -48 144 ) e7/e7panelwood2 304 -21 -270 0.5 0.5 0 0 0
 }
-// brush 422
+// brush 421
 {
 ( 544 128 0 ) ( 520 128 0 ) ( 544 128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 256 106 ) ( 544 256 106 ) ( 512 256 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3748,7 +3740,7 @@
 ( 512 0 64 ) ( 512 -32 64 ) ( 448 -96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 -32 -64 ) ( 512 0 -64 ) ( 448 -64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 423
+// brush 422
 {
 ( -288 296 267 ) ( -288 272 267 ) ( -288 296 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -152 287 304 ) ( -184 271 304 ) ( -152 271 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3757,7 +3749,7 @@
 ( -136 304 89 ) ( -104 304 89 ) ( -136 304 105 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 272 528 ) ( -80 272 528 ) ( -80 272 -48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 424
+// brush 423
 {
 ( 288 408 267 ) ( 288 432 267 ) ( 288 408 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 416 106 ) ( 320 416 106 ) ( 288 416 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3766,7 +3758,7 @@
 ( 320 480 224 ) ( 320 480 256 ) ( 320 512 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 296 480 128 ) ( 328 480 128 ) ( 328 512 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 425
+// brush 424
 {
 ( 448 320 64 ) ( 480 320 64 ) ( 544 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 608 320 -86 ) ( 640 320 -86 ) ( 608 320 -70 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3775,7 +3767,7 @@
 ( 480 320 -64 ) ( 448 320 -64 ) ( 512 256 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 320 -64 ) ( 448 320 64 ) ( 512 256 64 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 426
+// brush 425
 {
 ( -544 88 164 ) ( -544 128 164 ) ( -544 88 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 544 164 ) ( -448 544 164 ) ( -608 544 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3784,7 +3776,7 @@
 ( -424 712 -64 ) ( -456 712 -64 ) ( -456 160 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 160 64 ) ( -448 712 64 ) ( -416 712 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 427
+// brush 426
 {
 ( -384 800 272 ) ( -360 800 272 ) ( -384 800 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 736 0 ) ( -448 736 0 ) ( -416 736 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3793,7 +3785,7 @@
 ( -288 864 64 ) ( -288 864 -64 ) ( -416 736 -64 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 ( -352 832 -64 ) ( -352 832 64 ) ( -480 704 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 428
+// brush 427
 {
 ( -288 1160 272 ) ( -288 1072 272 ) ( -288 1160 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 1024 64 ) ( -352 1024 -64 ) ( -288 1088 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3802,7 +3794,7 @@
 ( -352 992 64 ) ( -352 1024 64 ) ( -288 1088 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 1096 48 ) ( -352 544 48 ) ( -352 544 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 429
+// brush 428
 {
 ( -16 896 272 ) ( 16 896 272 ) ( -16 896 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 576 23 ) ( -16 512 23 ) ( 16 576 39 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3811,7 +3803,7 @@
 ( 16 480 48 ) ( 16 1032 48 ) ( 16 1032 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 1032 48 ) ( -16 480 48 ) ( -16 480 -176 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 430
+// brush 429
 {
 ( -448 312 164 ) ( -448 344 164 ) ( -448 312 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 512 164 ) ( -344 512 164 ) ( -416 512 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3820,7 +3812,7 @@
 ( -64 192 -96 ) ( -448 192 -96 ) ( -448 -128 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -456 -128 -64 ) ( -456 192 -64 ) ( -72 192 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 }
-// brush 431
+// brush 430
 {
 ( -416 736 179 ) ( -448 736 179 ) ( -416 736 195 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 800 272 ) ( -360 800 272 ) ( -384 800 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3829,7 +3821,7 @@
 ( -448 704 128 ) ( -448 704 256 ) ( -320 832 256 ) e7/e7walldesign01b -188 -128 0 0.5 0.5 0 0 0
 ( -480 704 256 ) ( -480 704 128 ) ( -352 832 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 432
+// brush 431
 {
 ( -288 1160 272 ) ( -288 1072 272 ) ( -288 1160 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 992 128 ) ( -352 992 256 ) ( -288 1056 256 ) e7/e7walldesign01b -64 -128 0 0.5 0.5 0 0 0
@@ -3838,7 +3830,7 @@
 ( -352 1024 128 ) ( -352 992 128 ) ( -288 1056 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 952 128 ) ( -352 952 376 ) ( -352 704 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 433
+// brush 432
 {
 ( 0 576 42 ) ( 16 576 42 ) ( 0 576 58 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 8 544 32 ) ( -16 544 32 ) ( 8 544 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3847,7 +3839,7 @@
 ( 0 640 128 ) ( 0 640 376 ) ( 0 888 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 888 128 ) ( -16 888 376 ) ( -16 640 376 ) e7/e7walldesign01b -124 -128 0 0.5 0.5 0 0 0
 }
-// brush 434
+// brush 433
 {
 ( -147 696 80 ) ( -147 656 80 ) ( -131 696 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 640 112 ) ( -147 680 112 ) ( -131 640 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3856,7 +3848,7 @@
 ( -432 384 96 ) ( -432 384 344 ) ( -432 632 344 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( -448 632 96 ) ( -448 632 344 ) ( -448 384 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 435
+// brush 434
 {
 ( -147 696 80 ) ( -147 656 80 ) ( -131 696 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 640 112 ) ( -147 680 112 ) ( -131 640 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3865,7 +3857,7 @@
 ( -368 664 96 ) ( -368 664 344 ) ( -368 912 344 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( -384 920 96 ) ( -384 920 344 ) ( -384 672 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 436
+// brush 435
 {
 ( -147 696 80 ) ( -147 656 80 ) ( -131 696 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 640 112 ) ( -147 680 112 ) ( -131 640 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3874,7 +3866,7 @@
 ( -464 704 96 ) ( -464 704 224 ) ( -336 832 224 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( -480 704 224 ) ( -480 704 96 ) ( -352 832 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 437
+// brush 436
 {
 ( -147 696 80 ) ( -147 656 80 ) ( -131 696 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 640 112 ) ( -147 680 112 ) ( -131 640 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3883,7 +3875,7 @@
 ( -352 1024 128 ) ( -352 1024 64 ) ( -288 1088 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 944 96 ) ( -368 944 344 ) ( -368 696 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 438
+// brush 437
 {
 ( -147 696 80 ) ( -147 656 80 ) ( -131 696 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 640 112 ) ( -147 680 112 ) ( -131 640 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3892,7 +3884,7 @@
 ( 16 640 96 ) ( 16 640 344 ) ( 16 888 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 888 96 ) ( 0 888 344 ) ( 0 640 344 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 }
-// brush 439
+// brush 438
 {
 ( 320 416 16 ) ( 320 392 0 ) ( 320 416 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 416 416 64 ) ( 448 416 64 ) ( 448 352 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3901,7 +3893,7 @@
 ( 448 416 64 ) ( 448 416 -64 ) ( 448 352 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 416 -64 ) ( 416 416 -64 ) ( 416 352 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 440
+// brush 439
 {
 ( 416 224 0 ) ( 416 176 0 ) ( 416 224 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 192 0 ) ( 352 216 0 ) ( 352 192 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3910,7 +3902,7 @@
 ( 512 256 -96 ) ( 408 256 -96 ) ( 408 56 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 408 56 -64 ) ( 408 256 -64 ) ( 512 256 -64 ) savdm6ish/sfloor1_2 256 0 0 -0.125 0.125 0 0 0
 }
-// brush 441
+// brush 440
 {
 ( 272 240 267 ) ( 112 400 267 ) ( 272 240 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 416 267 ) ( 256 360 267 ) ( 256 416 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3920,7 +3912,7 @@
 ( -200 -448 -64 ) ( -200 -128 -64 ) ( 184 -128 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( 184 512 -48 ) ( -200 512 -48 ) ( -200 512 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 442
+// brush 441
 {
 ( 96 640 96 ) ( -32 640 96 ) ( -32 384 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -48 384 128 ) ( -48 640 128 ) ( 80 640 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -3929,7 +3921,7 @@
 ( 104 512 624 ) ( -24 512 624 ) ( -24 512 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 640 624 ) ( -32 384 624 ) ( -32 384 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 443
+// brush 442
 {
 ( 64 280 267 ) ( 64 256 267 ) ( 64 280 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 40 288 154 ) ( 64 288 154 ) ( 40 288 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3938,7 +3930,7 @@
 ( 256 584 304 ) ( 288 584 304 ) ( 288 640 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 584 432 ) ( 256 584 432 ) ( 256 640 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 444
+// brush 443
 {
 ( 464 384 48 ) ( 480 384 48 ) ( 464 384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 352 304 ) ( 384 352 432 ) ( 320 288 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3947,7 +3939,7 @@
 ( 384 320 304 ) ( 384 352 304 ) ( 320 288 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 352 432 ) ( 384 320 432 ) ( 320 256 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 445
+// brush 444
 {
 ( 616 416 154 ) ( 640 416 154 ) ( 616 416 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 576 154 ) ( 448 616 154 ) ( 448 576 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3956,7 +3948,7 @@
 ( 608 424 432 ) ( 576 424 432 ) ( 576 480 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 328 304 ) ( 640 328 432 ) ( 640 384 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 446
+// brush 445
 {
 ( -81 176 -233 ) ( -81 164 -248 ) ( -65 176 -233 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -81 150 -148 ) ( -81 176 -233 ) ( -65 150 -148 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3967,7 +3959,7 @@
 ( -336 72 -176 ) ( -336 176 -176 ) ( -336 176 -256 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 ( -352 176 -176 ) ( -352 72 -176 ) ( -352 72 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 447
+// brush 446
 {
 ( -336 184 -54 ) ( -336 152 -54 ) ( -336 184 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -262 80 -233 ) ( -262 92 -248 ) ( -246 80 -233 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3977,7 +3969,7 @@
 ( -352 64 -176 ) ( -320 64 -176 ) ( -320 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 192 -176 ) ( -352 64 -176 ) ( -352 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 448
+// brush 447
 {
 ( -336 184 -54 ) ( -336 152 -54 ) ( -336 184 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -319 150 -148 ) ( -319 150 -151 ) ( -303 150 -148 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3986,7 +3978,7 @@
 ( -352 64 -128 ) ( -352 192 -128 ) ( -320 192 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 107 -148 ) ( -352 128 -148 ) ( -352 128 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 449
+// brush 448
 {
 ( -336 184 -54 ) ( -336 152 -54 ) ( -336 184 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -246 176 -233 ) ( -262 164 -248 ) ( -262 176 -233 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -3996,7 +3988,7 @@
 ( -320 192 -256 ) ( -320 192 -176 ) ( -352 192 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 192 -256 ) ( -352 192 -176 ) ( -352 64 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 450
+// brush 449
 {
 ( -81 92 -252 ) ( -81 92 -248 ) ( -65 92 -252 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -81 164 -248 ) ( -81 164 -252 ) ( -65 164 -248 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4005,7 +3997,7 @@
 ( -336 72 -176 ) ( -336 176 -176 ) ( -336 176 -256 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 ( -352 176 -176 ) ( -352 72 -176 ) ( -352 72 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 451
+// brush 450
 {
 ( -208 -352 0 ) ( -160 -352 0 ) ( -208 -352 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 -384 -256 ) ( -160 -384 -256 ) ( -192 -352 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4014,7 +4006,7 @@
 ( -160 -384 -256 ) ( -160 -384 -128 ) ( -192 -352 -128 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -192 -384 -128 ) ( -192 -384 -256 ) ( -224 -352 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 452
+// brush 451
 {
 ( -216 -64 0 ) ( -192 -64 0 ) ( -216 -64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -208 -320 16 ) ( -136 -320 0 ) ( -208 -320 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4023,7 +4015,7 @@
 ( -192 56 224 ) ( -192 96 224 ) ( -192 96 -352 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 ( -224 -216 224 ) ( -224 -256 224 ) ( -224 -256 -352 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 453
+// brush 452
 {
 ( -216 -64 16 ) ( -192 -64 0 ) ( -216 -64 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -32 0 ) ( -208 -32 0 ) ( -224 -32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4032,7 +4024,7 @@
 ( -192 56 224 ) ( -192 96 224 ) ( -192 96 -352 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -224 -216 224 ) ( -224 -256 224 ) ( -224 -256 -352 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 454
+// brush 453
 {
 ( -208 -352 16 ) ( -160 -352 0 ) ( -208 -352 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -208 -320 0 ) ( -136 -320 0 ) ( -208 -320 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4041,7 +4033,7 @@
 ( -192 56 224 ) ( -192 96 224 ) ( -192 96 -352 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -224 -216 224 ) ( -224 -256 224 ) ( -224 -256 -352 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 455
+// brush 454
 {
 ( -328 -256 16 ) ( -352 -256 0 ) ( -328 -256 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 512 -64 ) ( -360 512 -64 ) ( -360 -40 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4050,7 +4042,7 @@
 ( -320 -40 48 ) ( -320 512 48 ) ( -320 512 -176 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -352 512 48 ) ( -352 -40 48 ) ( -352 -40 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 456
+// brush 455
 {
 ( -328 -224 16 ) ( -344 -224 0 ) ( -328 -224 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 -256 0 ) ( -352 -256 0 ) ( -328 -256 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4059,7 +4051,7 @@
 ( -320 -40 48 ) ( -320 512 48 ) ( -320 512 -176 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -352 512 48 ) ( -352 -40 48 ) ( -352 -40 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 457
+// brush 456
 {
 ( -384 24 16 ) ( -384 -8 0 ) ( -384 24 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 32 16 ) ( -344 32 0 ) ( -328 32 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4068,7 +4060,7 @@
 ( -320 32 64 ) ( -352 0 64 ) ( -384 0 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 32 -64 ) ( -352 0 -64 ) ( -352 0 64 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 458
+// brush 457
 {
 ( -328 32 0 ) ( -344 32 0 ) ( -328 32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 64 16 ) ( -352 64 0 ) ( -328 64 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4077,7 +4069,7 @@
 ( -320 -704 -176 ) ( -320 -704 48 ) ( -320 -152 48 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -352 -152 -176 ) ( -352 -152 48 ) ( -352 -704 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 459
+// brush 458
 {
 ( -448 0 0 ) ( -480 32 0 ) ( -448 0 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -512 32 0 ) ( -480 32 0 ) ( -512 32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4086,7 +4078,7 @@
 ( -512 -8 64 ) ( -512 544 64 ) ( -480 544 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 144 48 ) ( -384 696 48 ) ( -384 696 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 460
+// brush 459
 {
 ( -424 -128 16 ) ( -456 -128 0 ) ( -424 -128 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 -192 0 ) ( -480 -224 0 ) ( -448 -192 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4095,7 +4087,7 @@
 ( -448 -224 16 ) ( -448 32 16 ) ( -448 32 -64 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -480 32 16 ) ( -480 -224 16 ) ( -480 -224 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 461
+// brush 460
 {
 ( -464 -64 16 ) ( -432 -64 0 ) ( -464 -64 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -480 32 0 ) ( -448 0 0 ) ( -480 32 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4104,7 +4096,7 @@
 ( -448 -224 16 ) ( -448 32 16 ) ( -448 32 -64 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -480 32 16 ) ( -480 -224 16 ) ( -480 -224 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 462
+// brush 461
 {
 ( -456 -96 0 ) ( -472 -96 0 ) ( -456 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -464 -64 0 ) ( -432 -64 0 ) ( -464 -64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4113,7 +4105,7 @@
 ( -448 -224 16 ) ( -448 32 16 ) ( -448 32 -64 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -480 32 16 ) ( -480 -224 16 ) ( -480 -224 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 463
+// brush 462
 {
 ( -456 -96 16 ) ( -472 -96 0 ) ( -456 -96 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -424 -128 0 ) ( -456 -128 0 ) ( -424 -128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4122,7 +4114,7 @@
 ( -448 -224 16 ) ( -448 32 16 ) ( -448 32 -64 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -480 32 16 ) ( -480 -224 16 ) ( -480 -224 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 464
+// brush 463
 {
 ( -320 32 16 ) ( -280 32 0 ) ( -320 32 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -200 384 0 ) ( -128 384 0 ) ( -200 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4131,7 +4123,7 @@
 ( -328 -128 -64 ) ( -328 192 -64 ) ( 56 192 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -320 192 -48 ) ( -320 -128 -48 ) ( -320 -128 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 465
+// brush 464
 {
 ( -256 -224 16 ) ( -296 -224 0 ) ( -256 -224 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 -384 138 ) ( -216 -384 138 ) ( -176 -384 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4140,7 +4132,7 @@
 ( -328 -128 -64 ) ( -328 192 -64 ) ( 56 192 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -320 192 -48 ) ( -320 -128 -48 ) ( -320 -128 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 466
+// brush 465
 {
 ( -312 112 0 ) ( -312 88 0 ) ( -312 112 16 ) e7/e7walldesign01b 0 -320 0 0.5 0.5 0 0 0
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4149,7 +4141,7 @@
 ( -320 192 0 ) ( -304 184 0 ) ( -320 192 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 64 -96 ) ( -352 192 -96 ) ( -304 192 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 467
+// brush 466
 {
 ( -244 256 0 ) ( -312 188 0 ) ( -244 256 16 ) e7/e7walldesign01b 0 -320 0 0.5 0.5 0 0 0
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4158,7 +4150,7 @@
 ( -304 184 -128 ) ( -320 192 -128 ) ( -304 184 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 192 -96 ) ( -352 288 -96 ) ( -256 288 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 468
+// brush 467
 {
 ( -312 68 0 ) ( -244 0 0 ) ( -312 68 16 ) e7/e7walldesign01b 0 -320 0 0.5 0.5 0 0 0
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4167,7 +4159,7 @@
 ( -304 72 -96 ) ( -320 64 -128 ) ( -304 72 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 -32 -96 ) ( -352 -32 -96 ) ( -352 64 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 469
+// brush 468
 {
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 0 -128 ) ( -192 -32 -128 ) ( -224 0 -112 ) e7/e7walldesign01b 0 -320 0 0.5 0.5 0 0 0
@@ -4176,7 +4168,7 @@
 ( -192 0 -48 ) ( -256 0 -48 ) ( -256 0 -128 ) e7/e7walldesign01b 0 -320 0 0.5 0.5 0 0 0
 ( -256 0 -48 ) ( -256 -32 -48 ) ( -256 -32 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 470
+// brush 469
 {
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 -145 -112 ) ( -192 -145 -96 ) ( -160 -129 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4186,7 +4178,7 @@
 ( -192 -384 -96 ) ( -192 -384 -128 ) ( -224 -352 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 -384 -128 ) ( -160 -384 -96 ) ( -192 -352 -96 ) e7/e7bmtrim2 0 0 0 0.5 0.5 0 0 0
 }
-// brush 471
+// brush 470
 {
 ( 0 16 -112 ) ( 0 -32 -112 ) ( 16 16 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -352 16 ) ( -200 -352 0 ) ( -224 -352 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4195,7 +4187,7 @@
 ( -192 -96 -48 ) ( -192 -32 -48 ) ( -192 -32 -128 ) e7/e7walldesign01b 0 -322 0 0.5 0.5 0 0 0
 ( -192 -32 -48 ) ( -224 -32 -48 ) ( -224 -32 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 472
+// brush 471
 {
 ( -128 -400 16 ) ( -128 -424 0 ) ( -128 -400 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 -400 -16 ) ( 128 -360 -32 ) ( 128 -400 -32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4204,7 +4196,7 @@
 ( 128 -432 -352 ) ( 128 -432 224 ) ( 240 -432 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 -400 -352 ) ( 192 -400 224 ) ( 80 -400 224 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 }
-// brush 473
+// brush 472
 {
 ( 152 32 16 ) ( 144 32 0 ) ( 152 32 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -352 -16 ) ( 176 -352 -32 ) ( 144 -352 -32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4213,7 +4205,7 @@
 ( 176 32 -352 ) ( 176 32 224 ) ( 176 144 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 128 -352 ) ( 144 128 224 ) ( 144 16 224 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 }
-// brush 474
+// brush 473
 {
 ( 96 96 0 ) ( 96 72 0 ) ( 96 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 128 -161 ) ( 80 128 -161 ) ( 64 128 -145 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4222,7 +4214,7 @@
 ( 96 96 -128 ) ( 96 96 -256 ) ( 192 0 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 128 -256 ) ( 32 128 -128 ) ( 128 32 -128 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 475
+// brush 474
 {
 ( 0 264 16 ) ( 0 288 0 ) ( 0 264 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 264 0 ) ( -256 296 0 ) ( -256 264 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4231,7 +4223,7 @@
 ( -192 256 224 ) ( -80 256 224 ) ( -80 256 -352 ) e7/e7bricks01 0 0 0 0.5 0.5 0 0 0
 ( -64 288 224 ) ( -176 288 224 ) ( -176 288 -352 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 476
+// brush 475
 {
 ( -56 165 -112 ) ( -32 165 -112 ) ( -56 181 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 104 96 0 ) ( 120 96 0 ) ( 104 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4240,7 +4232,7 @@
 ( 128 304 -128 ) ( 128 304 448 ) ( 128 416 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 80 -144 ) ( 64 80 432 ) ( 104 80 432 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 }
-// brush 477
+// brush 476
 {
 ( -192 -32 -104 ) ( -208 -16 -104 ) ( -192 -32 -88 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -208 256 -104 ) ( -192 256 -104 ) ( -208 256 -88 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4249,7 +4241,7 @@
 ( -192 -32 -96 ) ( -192 1456 -96 ) ( -192 1456 -112 ) e7/e7walldesign01b 0 -322 0 0.5 0.5 0 0 0
 ( -208 1456 -96 ) ( -208 -32 -96 ) ( -208 -32 -112 ) e7/e7walldesign01b 0 -320 0 0.5 0.5 0 0 0
 }
-// brush 478
+// brush 477
 {
 ( 348 -351 -60 ) ( 348 -351 -56 ) ( 348 -367 -60 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 420 -351 -56 ) ( 420 -351 -60 ) ( 420 -367 -56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4258,7 +4250,7 @@
 ( 328 -96 16 ) ( 432 -96 16 ) ( 432 -96 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 432 -80 16 ) ( 328 -80 16 ) ( 328 -80 -64 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 }
-// brush 479
+// brush 478
 {
 ( 336 175 -41 ) ( 348 175 -56 ) ( 336 191 -41 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 362 175 44 ) ( 336 175 -41 ) ( 362 191 44 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4269,7 +4261,7 @@
 ( 440 -80 16 ) ( 336 -80 16 ) ( 336 -80 -64 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 ( 336 -96 16 ) ( 440 -96 16 ) ( 440 -96 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 480
+// brush 479
 {
 ( 288 0 14 ) ( 288 -24 14 ) ( 288 0 30 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -32 304 ) ( 288 0 304 ) ( 224 -64 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4278,7 +4270,7 @@
 ( 224 -256 784 ) ( 224 -368 784 ) ( 224 -368 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -32 432 ) ( 288 -32 304 ) ( 224 -96 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 481
+// brush 480
 {
 ( 32 -16 343 ) ( 32 0 343 ) ( 32 -16 359 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -64 560 ) ( 96 -96 560 ) ( 96 -64 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4287,7 +4279,7 @@
 ( 96 -64 304 ) ( 96 -64 432 ) ( 32 0 432 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( 64 -64 432 ) ( 64 -64 304 ) ( 0 0 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 482
+// brush 481
 {
 ( 160 -80 -54 ) ( 184 -80 -54 ) ( 160 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 182 -6 413 ) ( 182 -6 410 ) ( 182 10 413 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4297,7 +4289,7 @@
 ( 224 -96 384 ) ( 224 -64 384 ) ( 224 -64 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -96 384 ) ( 224 -96 384 ) ( 224 -96 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 483
+// brush 482
 {
 ( 160 -80 -54 ) ( 184 -80 -54 ) ( 160 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -64 288 ) ( 96 -96 288 ) ( 224 -96 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4306,7 +4298,7 @@
 ( 96 -64 352 ) ( 96 -96 352 ) ( 96 -96 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -96 352 ) ( 224 -96 352 ) ( 224 -96 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 484
+// brush 483
 {
 ( 160 -80 -54 ) ( 184 -80 -54 ) ( 160 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 138 10 413 ) ( 138 -6 410 ) ( 138 -6 413 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4316,7 +4308,7 @@
 ( 96 -64 304 ) ( 96 -64 384 ) ( 96 -96 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -96 304 ) ( 96 -96 384 ) ( 224 -96 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 485
+// brush 484
 {
 ( 160 -80 -54 ) ( 184 -80 -54 ) ( 160 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 208 -6 327 ) ( 196 -6 312 ) ( 208 10 327 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4326,7 +4318,7 @@
 ( 224 -96 384 ) ( 224 -64 384 ) ( 224 -64 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -96 384 ) ( 224 -96 384 ) ( 224 -96 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 486
+// brush 485
 {
 ( 160 -80 -54 ) ( 184 -80 -54 ) ( 160 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 138 -63 412 ) ( 138 -63 409 ) ( 138 -47 412 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4335,7 +4327,7 @@
 ( 224 -96 432 ) ( 96 -96 432 ) ( 96 -64 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 181 -96 412 ) ( 160 -96 412 ) ( 160 -96 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 487
+// brush 486
 {
 ( 160 -80 -54 ) ( 184 -80 -54 ) ( 160 -80 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 112 10 327 ) ( 124 -6 312 ) ( 112 -6 327 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4345,7 +4337,7 @@
 ( 96 -64 304 ) ( 96 -64 384 ) ( 96 -96 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -96 304 ) ( 96 -96 384 ) ( 224 -96 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 488
+// brush 487
 {
 ( -352 32 113 ) ( -328 32 97 ) ( -352 32 97 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 128 64 ) ( -352 128 64 ) ( -352 -256 64 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -4354,7 +4346,7 @@
 ( -320 256 312 ) ( -352 256 312 ) ( -352 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 128 312 ) ( -352 -256 312 ) ( -352 -256 64 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 489
+// brush 488
 {
 ( -320 -224 113 ) ( -360 -224 97 ) ( -320 -224 97 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 128 64 ) ( -352 128 64 ) ( -352 -256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4363,7 +4355,7 @@
 ( -320 -256 312 ) ( -320 128 312 ) ( -320 128 64 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
 ( -352 128 312 ) ( -352 -256 312 ) ( -352 -256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 490
+// brush 489
 {
 ( -352 2 96 ) ( -336 2 80 ) ( -352 18 96 ) e7/e7walldesign01b 4 -688 -450 0.5 0.5 0 0 0
 ( -160 -144 80 ) ( -176 -104 80 ) ( -176 -144 80 ) e7/e7panelwood2 -352 0 -360 0.5 0.5 0 0 0
@@ -4372,7 +4364,7 @@
 ( -352 -256 96 ) ( -352 128 96 ) ( -320 128 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -256 312 ) ( -320 128 312 ) ( -320 128 64 ) e7/e7panelwood2 -416 0 -270 0.5 0.5 0 0 0
 }
-// brush 491
+// brush 490
 {
 ( -448 0 97 ) ( -480 32 97 ) ( -448 0 113 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 32 97 ) ( -352 0 97 ) ( -320 32 113 ) e7/e7panelwood2 -384 0 -270 0.5 0.5 0 0 0
@@ -4381,7 +4373,7 @@
 ( -640 -112 80 ) ( -624 -72 80 ) ( -624 -112 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 -224 64 ) ( -448 160 64 ) ( -480 160 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 492
+// brush 491
 {
 ( -448 -192 113 ) ( -480 -224 97 ) ( -448 -192 97 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -224 113 ) ( -352 -192 97 ) ( -320 -224 97 ) e7/e7panelwood2 -384 0 -270 0.5 0.5 0 0 0
@@ -4390,7 +4382,7 @@
 ( -624 -80 80 ) ( -624 -120 80 ) ( -640 -80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -480 -352 64 ) ( -448 -352 64 ) ( -448 32 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 493
+// brush 492
 {
 ( -432 -176 97 ) ( -448 -192 97 ) ( -432 -176 113 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 0 97 ) ( -432 -16 97 ) ( -448 0 113 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4398,7 +4390,7 @@
 ( -432 18 96 ) ( -448 2 80 ) ( -432 2 96 ) e7/e7walldesign01b 4 -400 -270 0.5 0.5 0 0 0
 ( -464 128 96 ) ( -432 128 96 ) ( -432 -256 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 494
+// brush 493
 {
 ( -448 -208 -9 ) ( -448 -192 -9 ) ( -448 -208 7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 -192 80 ) ( -384 -208 80 ) ( -368 -192 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -4408,7 +4400,7 @@
 ( -254 -176 96 ) ( -254 -192 80 ) ( -238 -176 96 ) e7/e7walldesign01b 4 -272 -180 0.5 0.5 0 0 0
 ( -512 -176 96 ) ( -128 -176 96 ) ( -128 -208 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 495
+// brush 494
 {
 ( -352 -16 96 ) ( -432 -16 96 ) ( -432 -176 96 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -432 -176 112 ) ( -432 -16 112 ) ( -352 -16 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4417,7 +4409,7 @@
 ( -352 -16 1632 ) ( -432 -16 1632 ) ( -432 -16 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -432 -16 1632 ) ( -432 -176 1632 ) ( -432 -176 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 496
+// brush 495
 {
 ( -448 16 7 ) ( -448 0 -9 ) ( -448 16 -9 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 0 80 ) ( -384 16 80 ) ( -384 0 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -4427,16 +4419,16 @@
 ( -238 -16 96 ) ( -254 0 80 ) ( -254 -16 96 ) e7/e7walldesign01b -12 -656 -360 0.5 0.5 0 0 0
 ( -128 16 96 ) ( -128 -16 96 ) ( -512 -16 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 497
+// brush 496
 {
-( 0 -320 -34 ) ( 0 -296 -50 ) ( 0 -320 -50 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -96 -381 -144 ) ( -128 -397 -128 ) ( -96 -397 -144 ) e7/e7panelwood2 -176 -232 -180 0.5 0.5 134217728 0 0
-( 0 -381 -176 ) ( 32 -397 -192 ) ( 0 -397 -176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -192 -280 -224 ) ( -192 -304 -240 ) ( -192 -280 -240 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -480 -384 -176 ) ( -480 -384 -96 ) ( -96 -384 -96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -96 -256 -176 ) ( -96 -256 -96 ) ( -480 -256 -96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 0 -320 -34 ) ( 0 -296 -50 ) ( 0 -320 -50 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -96 -381 -144 ) ( -128 -397 -128 ) ( -96 -397 -144 ) e7/e7panelwood2 -176 -232 -180 0.5 0.5 0 0 0
+( 0 -381 -176 ) ( 32 -397 -192 ) ( 0 -397 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -192 -280 -224 ) ( -192 -304 -240 ) ( -192 -280 -240 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -480 -384 -176 ) ( -480 -384 -96 ) ( -96 -384 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -96 -256 -176 ) ( -96 -256 -96 ) ( -480 -256 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 498
+// brush 497
 {
 ( -16 64 415 ) ( 0 80 415 ) ( -16 64 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 -192 415 ) ( -16 -176 415 ) ( 0 -192 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4444,7 +4436,7 @@
 ( 16 64 448 ) ( 16 -16 448 ) ( -16 -16 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 -16 512 ) ( 0 64 512 ) ( 0 64 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 499
+// brush 498
 {
 ( 0 -192 431 ) ( -16 -176 415 ) ( 0 -192 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 -176 431 ) ( -224 -192 415 ) ( -216 -176 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4452,7 +4444,7 @@
 ( -48 -176 448 ) ( -48 -208 448 ) ( -128 -208 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -192 432 ) ( -128 -192 512 ) ( -48 -192 512 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 500
+// brush 499
 {
 ( -216 -176 448 ) ( -304 -88 448 ) ( -320 -96 432 ) e7/e7walldesign01b 652 -3744 -405 0.5 0.5 0 0 0
 ( -216 -176 415 ) ( -224 -192 415 ) ( -216 -176 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4460,7 +4452,7 @@
 ( -224 -192 415 ) ( -320 -96 415 ) ( -224 -192 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -192 448 ) ( -320 -88 448 ) ( -216 -88 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 501
+// brush 500
 {
 ( -320 80 415 ) ( -304 64 415 ) ( -320 80 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 -88 415 ) ( -320 -96 415 ) ( -304 -88 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4468,7 +4460,7 @@
 ( -336 0 448 ) ( -336 80 448 ) ( -304 80 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 80 512 ) ( -320 0 512 ) ( -320 0 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 502
+// brush 501
 {
 ( -16 256 415 ) ( 0 272 415 ) ( -16 256 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 80 415 ) ( -16 96 415 ) ( 0 80 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4477,7 +4469,7 @@
 ( -16 272 496 ) ( -16 -48 496 ) ( -16 -48 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 -48 496 ) ( 0 272 496 ) ( 0 272 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 503
+// brush 502
 {
 ( -304 256 431 ) ( -320 272 415 ) ( -304 256 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 80 431 ) ( -304 96 415 ) ( -320 80 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4486,7 +4478,7 @@
 ( -304 -48 416 ) ( -304 -48 496 ) ( -304 272 496 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 272 416 ) ( -320 272 496 ) ( -320 -48 496 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 504
+// brush 503
 {
 ( -16 256 448 ) ( -304 256 448 ) ( -304 160 448 ) e7/e7panelwood2 208 0 0 0.5 0.5 0 0 0
 ( -304 160 468 ) ( -304 256 468 ) ( -16 256 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4495,7 +4487,7 @@
 ( -16 256 496 ) ( -304 256 496 ) ( -304 256 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 256 496 ) ( -304 160 496 ) ( -304 160 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 505
+// brush 504
 {
 ( 32 -176 415 ) ( 16 -192 415 ) ( 32 -176 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 95 256 ) ( 32 95 272 ) ( 16 111 256 ) e7/e7walldesign01b 4 -1968 -630 0.5 0.5 0 0 0
@@ -4503,7 +4495,7 @@
 ( 32 128 336 ) ( 16 128 336 ) ( 16 128 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 128 336 ) ( 16 -192 336 ) ( 16 -192 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 506
+// brush 505
 {
 ( 504 -176 415 ) ( 512 -192 415 ) ( 504 -176 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 -176 431 ) ( 16 -192 415 ) ( 32 -176 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4511,7 +4503,7 @@
 ( 336 -176 272 ) ( 336 -192 272 ) ( 16 -192 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 -192 256 ) ( 16 -192 336 ) ( 336 -192 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 507
+// brush 506
 {
 ( 624 8 267 ) ( 640 48 267 ) ( 624 8 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 -64 415 ) ( 624 -56 415 ) ( 640 -64 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4519,7 +4511,7 @@
 ( 624 256 272 ) ( 640 256 272 ) ( 640 -64 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 -64 256 ) ( 640 -64 336 ) ( 640 256 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 508
+// brush 507
 {
 ( 512 -192 239 ) ( 504 -176 239 ) ( 512 -192 255 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 -64 256 ) ( 624 -56 272 ) ( 536 -144 272 ) e7/e7walldesign01b 4 -1582 -495 0.5 0.5 0 0 0
@@ -4527,7 +4519,7 @@
 ( 544 -160 255 ) ( 640 -64 239 ) ( 544 -160 239 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 536 -56 272 ) ( 640 -56 272 ) ( 640 -160 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 509
+// brush 508
 {
 ( 624 -48 267 ) ( 624 -64 267 ) ( 624 -48 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 616 -64 415 ) ( 504 -176 415 ) ( 616 -64 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4537,7 +4529,7 @@
 ( 288 -176 352 ) ( 320 -176 352 ) ( 320 -176 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -64 352 ) ( 288 -176 352 ) ( 288 -176 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 510
+// brush 509
 {
 ( 144 360 163 ) ( 160 352 163 ) ( 144 360 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 64 415 ) ( 144 56 415 ) ( 160 64 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4545,7 +4537,7 @@
 ( 144 256 272 ) ( 160 256 272 ) ( 160 -64 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 -64 256 ) ( 160 -64 336 ) ( 160 256 336 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 511
+// brush 510
 {
 ( 384 -64 267 ) ( 400 -80 267 ) ( 384 -64 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 280 -80 415 ) ( 288 -64 415 ) ( 280 -80 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4553,7 +4545,7 @@
 ( 160 -64 272 ) ( 480 -64 272 ) ( 480 -80 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 480 -64 336 ) ( 160 -64 336 ) ( 160 -64 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 512
+// brush 511
 {
 ( 288 -64 256 ) ( 160 64 256 ) ( 144 56 272 ) e7/e7walldesign01b 4 -980 -405 0.5 0.5 0 0 0
 ( 288 -64 239 ) ( 280 -80 239 ) ( 288 -64 255 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4561,7 +4553,7 @@
 ( 160 64 239 ) ( 288 -64 239 ) ( 160 64 255 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 -80 272 ) ( 152 64 272 ) ( 296 64 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 513
+// brush 512
 {
 ( -280 120 415 ) ( -296 104 415 ) ( -280 120 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 256 415 ) ( -288 240 415 ) ( -304 256 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4569,7 +4561,7 @@
 ( -320 112 448 ) ( -320 192 448 ) ( -288 192 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 192 512 ) ( -304 112 512 ) ( -304 112 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 514
+// brush 513
 {
 ( -40 120 431 ) ( -24 104 415 ) ( -40 120 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 256 431 ) ( -32 240 415 ) ( -16 256 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4577,7 +4569,7 @@
 ( -32 192 448 ) ( 0 192 448 ) ( 0 112 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 112 432 ) ( -16 112 512 ) ( -16 192 512 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 515
+// brush 514
 {
 ( -288 240 415 ) ( -304 256 415 ) ( -288 240 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 256 415 ) ( -32 240 415 ) ( -16 256 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4585,7 +4577,7 @@
 ( -352 272 448 ) ( -272 272 448 ) ( -272 240 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -272 256 512 ) ( -352 256 512 ) ( -352 256 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 516
+// brush 515
 {
 ( 368 -40 267 ) ( 384 -32 267 ) ( 368 -40 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 384 -48 267 ) ( 384 -64 267 ) ( 384 -48 283 ) e7/e7beam01 0 0 -90 0.5 0.5 0 0 0
@@ -4594,7 +4586,7 @@
 ( 432 -64 192 ) ( 408 -64 192 ) ( 432 -64 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 -96 128 ) ( 320 -96 128 ) ( 320 -48 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 517
+// brush 516
 {
 ( 448 320 128 ) ( 512 256 128 ) ( 496 248 120 ) e7/e7panelwood2 62 -21 -135 0.6560000181 0.5 0 0 0
 ( 496 248 104 ) ( 512 256 96 ) ( 432 312 104 ) e7/e7panelwood2 62 -21 -135 0.6560000181 0.5 0 0 0
@@ -4603,7 +4595,7 @@
 ( 432 312 96 ) ( 496 248 128 ) ( 496 248 96 ) e7/e7panelwood2 304 -21 -270 0.5 0.5 0 0 0
 ( 512 256 128 ) ( 448 320 128 ) ( 448 320 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 518
+// brush 517
 {
 ( 240 415 64 ) ( 224 415 80 ) ( 240 431 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 136 400 80 ) ( 256 256 64 ) ( 272 264 80 ) e7/e7walldesign01b 4 -1382 -585 0.5 0.5 0 0 0
@@ -4611,7 +4603,7 @@
 ( 128 384 0 ) ( 136 400 0 ) ( 128 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 256 80 ) ( 128 400 80 ) ( 264 400 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 519
+// brush 518
 {
 ( -448 384 164 ) ( -456 400 164 ) ( -448 384 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 400 -58 ) ( -16 384 -58 ) ( -32 400 -42 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4619,7 +4611,7 @@
 ( -160 384 96 ) ( -160 400 96 ) ( 136 400 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 384 96 ) ( 136 384 96 ) ( 136 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 520
+// brush 519
 {
 ( 232 304 16 ) ( 144 392 16 ) ( 232 304 32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 184 496 16 ) ( 224 456 16 ) ( 184 496 32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4629,24 +4621,24 @@
 ( 256 496 96 ) ( 128 496 96 ) ( 128 496 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 136 504 96 ) ( 136 248 96 ) ( 136 248 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
+// brush 520
+{
+( -62 576 96 ) ( -78 608 80 ) ( -78 576 96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -80 608 184 ) ( -104 608 168 ) ( -80 608 168 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -32 40 168 ) ( -32 72 152 ) ( -32 40 152 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 -64 96 ) ( -168 256 96 ) ( 216 256 96 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -160 256 112 ) ( -160 -64 112 ) ( -160 -64 32 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+}
 // brush 521
 {
-( -62 576 96 ) ( -78 608 80 ) ( -78 576 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -80 608 184 ) ( -104 608 168 ) ( -80 608 168 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -32 40 168 ) ( -32 72 152 ) ( -32 40 152 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 -64 96 ) ( -168 256 96 ) ( 216 256 96 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -160 256 112 ) ( -160 -64 112 ) ( -160 -64 32 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( -62 544 112 ) ( -78 576 96 ) ( -78 544 112 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -80 576 200 ) ( -104 576 184 ) ( -80 576 184 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -32 8 184 ) ( -32 40 168 ) ( -32 8 168 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -168 -96 112 ) ( -168 224 112 ) ( 216 224 112 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -160 224 128 ) ( -160 -96 128 ) ( -160 -96 48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
 }
 // brush 522
 {
-( -62 544 112 ) ( -78 576 96 ) ( -78 544 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -80 576 200 ) ( -104 576 184 ) ( -80 576 184 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -32 8 184 ) ( -32 40 168 ) ( -32 8 168 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -168 -96 112 ) ( -168 224 112 ) ( 216 224 112 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -160 224 128 ) ( -160 -96 128 ) ( -160 -96 48 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-}
-// brush 523
-{
 ( 32 272 288 ) ( 0 272 288 ) ( 0 256 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 256 432 ) ( 0 272 432 ) ( 32 272 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 256 360 ) ( 32 256 360 ) ( 32 256 280 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -4654,7 +4646,7 @@
 ( 32 272 360 ) ( 0 272 360 ) ( 0 272 280 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 272 360 ) ( 0 256 360 ) ( 0 256 280 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 524
+// brush 523
 {
 ( -8 928 272 ) ( 8 928 272 ) ( -8 928 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 896 288 ) ( 16 896 272 ) ( -16 896 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4663,7 +4655,7 @@
 ( 16 480 48 ) ( 16 1032 48 ) ( 16 1032 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 1032 48 ) ( -16 480 48 ) ( -16 480 -176 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 525
+// brush 524
 {
 ( -8 928 288 ) ( 8 928 272 ) ( -8 928 272 ) common/caulk -32 0 0 0.5 0.5 0 4 0
 ( -8 1056 0 ) ( 24 1056 0 ) ( -8 1056 16 ) common/caulk -32 0 0 0.5 0.5 0 4 0
@@ -4672,7 +4664,7 @@
 ( 16 480 48 ) ( 16 1032 48 ) ( 16 1032 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 1032 48 ) ( -16 480 48 ) ( -16 480 -176 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 526
+// brush 525
 {
 ( -131 696 80 ) ( -131 656 80 ) ( -115 696 80 ) common/caulk -32 0 0 0.5 0.5 0 4 0
 ( -131 640 112 ) ( -131 680 112 ) ( -115 640 112 ) common/caulk -32 0 0 0.5 0.5 0 4 0
@@ -4681,7 +4673,7 @@
 ( 0 928 0 ) ( 0 952 0 ) ( 0 928 16 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( 16 1184 138 ) ( 16 1160 138 ) ( 16 1184 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 527
+// brush 526
 {
 ( -147 696 80 ) ( -147 656 80 ) ( -131 696 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 640 112 ) ( -147 680 112 ) ( -131 640 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4690,7 +4682,7 @@
 ( 8 1072 0 ) ( -16 1072 0 ) ( 8 1072 16 ) e7/e7bmtrim 0 -32 0 0.5 0.5 0 0 0
 ( -288 1088 138 ) ( -264 1088 138 ) ( -288 1088 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 528
+// brush 527
 {
 ( -96 1088 0 ) ( -96 1056 0 ) ( -96 1088 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 1064 0 ) ( -224 1088 0 ) ( -224 1064 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4699,7 +4691,7 @@
 ( -288 1012 256 ) ( -312 1028 256 ) ( -288 1028 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 1016 128 ) ( -320 768 128 ) ( -288 768 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 529
+// brush 528
 {
 ( -288 1160 288 ) ( -288 1072 272 ) ( -288 1160 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 1088 272 ) ( -16 1064 272 ) ( -16 1088 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4708,7 +4700,7 @@
 ( -296 1160 -64 ) ( -328 1160 -64 ) ( -328 608 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 608 64 ) ( -320 1160 64 ) ( -288 1160 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 530
+// brush 529
 {
 ( -368 800 32 ) ( -392 800 32 ) ( -368 800 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 992 170 ) ( -328 992 170 ) ( -352 992 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4717,7 +4709,7 @@
 ( -352 672 128 ) ( -352 672 376 ) ( -352 920 376 ) e7/e7walldesign01b -64 -128 0 0.5 0.5 0 0 0
 ( -384 920 128 ) ( -384 920 376 ) ( -384 672 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 531
+// brush 530
 {
 ( -360 800 0 ) ( -392 800 0 ) ( -360 800 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 992 0 ) ( -336 992 0 ) ( -368 992 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4726,7 +4718,7 @@
 ( -352 512 48 ) ( -352 1064 48 ) ( -352 1064 -176 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 ( -384 1064 48 ) ( -384 512 48 ) ( -384 512 -176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 532
+// brush 531
 {
 ( 24 539 96 ) ( -8 539 96 ) ( 24 555 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -24 232 64 ) ( 0 232 64 ) ( -24 248 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4735,7 +4727,7 @@
 ( 0 544 208 ) ( -32 544 208 ) ( -32 544 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 512 208 ) ( 32 544 208 ) ( 32 544 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 533
+// brush 532
 {
 ( 0 512 208 ) ( 0 544 208 ) ( 0 544 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 73 128 ) ( -16 73 128 ) ( -32 89 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4743,7 +4735,7 @@
 ( -32 512 208 ) ( 0 512 208 ) ( 0 512 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -32 512 256 ) ( -32 544 256 ) ( 0 544 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 534
+// brush 533
 {
 ( -8 1056 272 ) ( 16 1056 272 ) ( -8 1056 288 ) common/caulk -32 0 0 0.5 0.5 0 4 0
 ( 16 928 272 ) ( -8 928 272 ) ( 16 928 288 ) common/caulk -32 0 0 0.5 0.5 0 4 0
@@ -4752,7 +4744,7 @@
 ( -60 1184 256 ) ( -44 1208 256 ) ( -44 1184 256 ) common/caulk -32 0 0 0.5 0.5 0 4 0
 ( -56 1216 128 ) ( -304 1216 128 ) ( -304 1184 128 ) common/caulk -32 0 0 0.5 0.5 0 4 0
 }
-// brush 535
+// brush 534
 {
 ( -416 608 0 ) ( -448 608 0 ) ( -416 608 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 736 170 ) ( -392 736 170 ) ( -416 736 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4761,7 +4753,7 @@
 ( -416 384 128 ) ( -416 384 376 ) ( -416 632 376 ) e7/e7walldesign01 -188 -128 0 0.5 0.5 0 0 0
 ( -448 632 128 ) ( -448 632 376 ) ( -448 384 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 536
+// brush 535
 {
 ( -416 512 0 ) ( -416 496 0 ) ( -416 512 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -536 496 164 ) ( -544 512 164 ) ( -536 496 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4770,7 +4762,7 @@
 ( -416 496 96 ) ( -416 512 96 ) ( -160 512 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 512 96 ) ( -416 512 96 ) ( -416 512 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 537
+// brush 536
 {
 ( 16 236 80 ) ( 0 236 64 ) ( 16 252 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 512 323 ) ( 184 496 323 ) ( 192 512 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4778,7 +4770,7 @@
 ( 176 512 323 ) ( 192 512 323 ) ( 176 512 339 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 512 80 ) ( 64 512 80 ) ( 64 560 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 538
+// brush 537
 {
 ( 144 400 179 ) ( 88 400 179 ) ( 144 400 195 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 216 512 80 ) ( 88 512 80 ) ( 88 256 80 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
@@ -4787,7 +4779,7 @@
 ( 136 496 96 ) ( 0 496 96 ) ( 0 496 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 400 80 ) ( 16 496 80 ) ( 16 496 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 539
+// brush 538
 {
 ( 16 236 80 ) ( 0 236 64 ) ( 16 252 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 99 400 80 ) ( 99 384 64 ) ( 115 400 80 ) e7/e7walldesign01b 4 -1424 -540 0.5 0.5 0 0 0
@@ -4795,7 +4787,7 @@
 ( -160 384 80 ) ( -160 400 80 ) ( 136 400 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 384 80 ) ( 136 384 80 ) ( 136 384 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 540
+// brush 539
 {
 ( -448 312 164 ) ( -448 344 164 ) ( -448 312 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 384 64 ) ( -160 384 64 ) ( -160 368 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4804,7 +4796,7 @@
 ( 32 368 80 ) ( 32 384 80 ) ( 32 384 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 384 80 ) ( -160 384 80 ) ( -160 384 0 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 541
+// brush 540
 {
 ( -16 252 64 ) ( -16 236 88 ) ( -16 236 64 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 ( 0 236 64 ) ( 16 236 80 ) ( 0 252 64 ) e7/e7walldesign01b 20 -1296 -630 0.5 0.5 0 0 0
@@ -4814,7 +4806,7 @@
 ( 16 400 96 ) ( 16 496 96 ) ( 16 496 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 512 96 ) ( -16 512 96 ) ( -16 512 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 542
+// brush 541
 {
 ( 92 337 132 ) ( 92 337 136 ) ( 92 321 132 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 164 337 136 ) ( 164 337 132 ) ( 164 321 136 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4823,7 +4815,7 @@
 ( 72 592 208 ) ( 176 592 208 ) ( 176 592 128 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 ( 176 608 208 ) ( 72 608 208 ) ( 72 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 543
+// brush 542
 {
 ( 80 863 151 ) ( 92 863 136 ) ( 80 879 151 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 106 863 236 ) ( 80 863 151 ) ( 106 879 236 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4834,7 +4826,7 @@
 ( 184 608 208 ) ( 80 608 208 ) ( 80 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 80 592 208 ) ( 184 592 208 ) ( 184 592 128 ) savdm6ish/#teleport 0 0 0 0.5 0.5 0 0 0
 }
-// brush 544
+// brush 543
 {
 ( 128 592 -54 ) ( 88 592 -54 ) ( 128 592 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 150 666 237 ) ( 150 666 234 ) ( 150 682 237 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4844,7 +4836,7 @@
 ( 192 576 208 ) ( 192 608 208 ) ( 192 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 608 208 ) ( 64 608 208 ) ( 64 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 545
+// brush 544
 {
 ( 128 592 -54 ) ( 88 592 -54 ) ( 128 592 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 106 682 237 ) ( 106 666 234 ) ( 106 666 237 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4854,7 +4846,7 @@
 ( 64 608 128 ) ( 64 608 208 ) ( 64 576 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 608 128 ) ( 192 608 208 ) ( 64 608 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 546
+// brush 545
 {
 ( 128 592 -54 ) ( 88 592 -54 ) ( 128 592 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 666 151 ) ( 164 666 136 ) ( 176 682 151 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4864,7 +4856,7 @@
 ( 192 576 208 ) ( 192 608 208 ) ( 192 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 608 208 ) ( 64 608 208 ) ( 64 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 547
+// brush 546
 {
 ( 128 592 -54 ) ( 88 592 -54 ) ( 128 592 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 106 609 236 ) ( 106 609 233 ) ( 106 625 236 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4873,7 +4865,7 @@
 ( 192 576 256 ) ( 64 576 256 ) ( 64 608 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 608 208 ) ( 64 608 208 ) ( 64 608 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 548
+// brush 547
 {
 ( 128 592 -54 ) ( 88 592 -54 ) ( 128 592 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 80 682 151 ) ( 92 666 136 ) ( 80 666 151 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4883,7 +4875,7 @@
 ( 64 608 128 ) ( 64 608 208 ) ( 64 576 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 608 128 ) ( 192 608 208 ) ( 64 608 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 549
+// brush 548
 {
 ( 128 592 -54 ) ( 88 592 -54 ) ( 128 592 -38 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 608 112 ) ( 64 608 112 ) ( 64 576 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4892,7 +4884,7 @@
 ( 192 608 192 ) ( 64 608 192 ) ( 64 608 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 608 192 ) ( 64 576 192 ) ( 64 576 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 550
+// brush 549
 {
 ( -528 322 272 ) ( -592 322 272 ) ( -528 338 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -720 264 300 ) ( -736 256 300 ) ( -720 264 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4900,7 +4892,7 @@
 ( -736 488 316 ) ( -736 440 300 ) ( -736 488 300 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -736 41 256 ) ( -720 57 272 ) ( -736 57 256 ) e7/e7walldesign01b 20 -1744 -990 0.5 0.5 0 0 0
 }
-// brush 551
+// brush 550
 {
 ( -528 322 272 ) ( -592 322 272 ) ( -528 338 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 128 300 ) ( -600 144 300 ) ( -608 128 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4908,7 +4900,7 @@
 ( -584 128 316 ) ( -536 128 300 ) ( -584 128 300 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -137 128 256 ) ( -153 144 272 ) ( -153 128 256 ) e7/e7walldesign01b 4 -912 -540 0.5 0.5 0 0 0
 }
-// brush 552
+// brush 551
 {
 ( -576 120 316 ) ( -576 96 300 ) ( -576 120 300 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 544 170 ) ( -416 512 170 ) ( -448 544 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4917,7 +4909,7 @@
 ( -568 512 376 ) ( -320 512 376 ) ( -320 512 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( -320 544 376 ) ( -568 544 376 ) ( -568 544 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 553
+// brush 552
 {
 ( -736 384 256 ) ( -720 376 272 ) ( -608 512 256 ) e7/e7walldesign01b 24 -1634 -675 0.5 0.5 0 0 0
 ( -736 384 252 ) ( -608 512 252 ) ( -736 384 268 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4925,7 +4917,7 @@
 ( -608 512 252 ) ( -600 496 252 ) ( -608 512 268 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -728 376 272 ) ( -728 512 272 ) ( -592 512 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 554
+// brush 553
 {
 ( -608 128 256 ) ( -720 264 272 ) ( -736 256 256 ) e7/e7walldesign01b 4 -1260 -585 0.5 0.5 0 0 0
 ( -736 256 268 ) ( -608 128 252 ) ( -736 256 252 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4933,7 +4925,7 @@
 ( -608 128 268 ) ( -600 144 252 ) ( -608 128 252 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -592 128 272 ) ( -728 128 272 ) ( -728 264 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 555
+// brush 554
 {
 ( -528 322 272 ) ( -592 322 272 ) ( -528 338 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -528 224 272 ) ( -560 280 256 ) ( -576 272 272 ) e7/e7walldesign01b 4 -413 -405 0.5 0.5 0 0 0
@@ -4942,7 +4934,7 @@
 ( -576 272 252 ) ( -544 288 252 ) ( -576 272 268 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -512 288 256 ) ( -576 288 256 ) ( -576 224 256 ) e7/e7mlight -12 84 -135 0.5 0.5 0 0 0
 }
-// brush 556
+// brush 555
 {
 ( -512 384 300 ) ( -520 400 300 ) ( -512 384 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 384 179 ) ( 32 416 163 ) ( 0 384 163 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4951,7 +4943,7 @@
 ( -368 132 256 ) ( -392 116 256 ) ( -368 116 256 ) e7/e7mlight 0 128 -90 0.5 0.5 0 0 0
 ( -368 384 64 ) ( -368 384 640 ) ( -256 384 640 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 557
+// brush 556
 {
 ( -600 144 300 ) ( -720 264 300 ) ( -600 144 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -720 376 300 ) ( -600 496 300 ) ( -720 376 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4962,7 +4954,7 @@
 ( -344 496 288 ) ( -712 496 288 ) ( -712 496 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -720 400 288 ) ( -720 320 288 ) ( -720 320 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 558
+// brush 557
 {
 ( -352 192 -256 ) ( -384 192 -256 ) ( -384 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 64 -128 ) ( -384 192 -128 ) ( -352 192 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4971,7 +4963,7 @@
 ( -352 192 -176 ) ( -384 192 -176 ) ( -384 192 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 192 -176 ) ( -368 64 -176 ) ( -368 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 559
+// brush 558
 {
 ( 192 608 128 ) ( 192 640 128 ) ( 64 640 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 640 256 ) ( 192 640 256 ) ( 192 608 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4980,7 +4972,7 @@
 ( 192 608 208 ) ( 192 640 208 ) ( 192 640 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 624 208 ) ( 64 624 208 ) ( 64 624 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 560
+// brush 559
 {
 ( 224 -112 304 ) ( 224 -80 304 ) ( 96 -80 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 -80 432 ) ( 224 -80 432 ) ( 224 -112 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4989,7 +4981,7 @@
 ( 224 -112 384 ) ( 224 -80 384 ) ( 224 -80 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 -96 384 ) ( 96 -96 384 ) ( 96 -96 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 561
+// brush 560
 {
 ( 448 -112 -64 ) ( 448 -80 -64 ) ( 320 -80 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 -80 64 ) ( 448 -80 64 ) ( 448 -112 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -4998,7 +4990,7 @@
 ( 448 -112 16 ) ( 448 -80 16 ) ( 448 -80 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 -96 16 ) ( 320 -96 16 ) ( 320 -96 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 562
+// brush 561
 {
 ( 144 -224 -48 ) ( 128 -224 -64 ) ( 144 -208 -48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 112 -224 -80 ) ( 112 -224 -112 ) ( 112 -208 -80 ) e7/e7trim01 0 -1 -270 0.5 0.5 0 0 0
@@ -5007,7 +4999,7 @@
 ( -24 -400 154 ) ( -56 -400 138 ) ( -24 -400 138 ) e7/e7trim01 0 -1 -270 0.5 0.5 0 0 0
 ( 96 -432 -128 ) ( 96 -432 448 ) ( 208 -432 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 563
+// brush 562
 {
 ( 141 48 -80 ) ( 141 64 -64 ) ( 157 48 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 141 48 -112 ) ( 141 48 -80 ) ( 157 48 -112 ) e7/e7trim01 0 -1 -450 0.5 0.5 0 0 0
@@ -5016,7 +5008,7 @@
 ( 144 -88 154 ) ( 144 -120 138 ) ( 144 -88 138 ) e7/e7trim01 0 -1 -270 0.5 0.5 0 0 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 564
+// brush 563
 {
 ( 168 -336 -119 ) ( 152 -336 -119 ) ( 168 -336 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 -240 -119 ) ( 176 -240 -119 ) ( 160 -240 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5025,7 +5017,7 @@
 ( 136 16 -64 ) ( 136 128 -64 ) ( 176 128 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 565
+// brush 564
 {
 ( 160 -80 -119 ) ( 136 -80 -119 ) ( 160 -80 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 16 -119 ) ( 168 16 -119 ) ( 144 16 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5034,7 +5026,7 @@
 ( -80 192 -128 ) ( -144 192 -128 ) ( -144 160 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 566
+// brush 565
 {
 ( 0 80 415 ) ( -16 64 415 ) ( 0 80 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 64 415 ) ( -320 80 415 ) ( -304 64 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5042,7 +5034,7 @@
 ( -480 96 448 ) ( -400 96 448 ) ( -400 64 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -400 80 512 ) ( -480 80 512 ) ( -480 80 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 567
+// brush 566
 {
 ( -320 80 415 ) ( -304 96 415 ) ( -320 80 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 96 415 ) ( 0 80 415 ) ( -16 96 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5051,7 +5043,7 @@
 ( -320 80 496 ) ( 0 80 496 ) ( 0 80 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 96 496 ) ( -320 96 496 ) ( -320 96 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 568
+// brush 567
 {
 ( -288 112 431 ) ( -304 96 415 ) ( -288 112 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 96 431 ) ( -32 112 415 ) ( -16 96 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5059,7 +5051,7 @@
 ( -272 112 448 ) ( -272 80 448 ) ( -352 80 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 96 432 ) ( -352 96 512 ) ( -272 96 512 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 569
+// brush 568
 {
 ( -80 288 -114 ) ( -80 272 -114 ) ( -80 288 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 272 -114 ) ( -176 288 -114 ) ( -176 272 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5067,7 +5059,7 @@
 ( -176 176 80 ) ( -72 160 80 ) ( -176 160 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( 304 272 312 ) ( 272 272 312 ) ( 272 272 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 570
+// brush 569
 {
 ( -248 80 112 ) ( -272 64 112 ) ( -248 64 112 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( -320 272 96 ) ( -320 248 96 ) ( -64 248 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5077,7 +5069,7 @@
 ( -320 272 128 ) ( -320 272 96 ) ( -64 272 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 272 320 ) ( -320 248 320 ) ( -320 248 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 571
+// brush 570
 {
 ( -216 -176 383 ) ( -304 -88 383 ) ( -216 -176 399 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 64 576 ) ( -304 64 576 ) ( -304 -176 576 ) stralenex1/strale_brown_box 0 0 0 0.5 0.5 0 0 0
@@ -5087,7 +5079,7 @@
 ( -16 64 592 ) ( -304 64 592 ) ( -304 64 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 64 592 ) ( -304 -176 592 ) ( -304 -176 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 572
+// brush 571
 {
 ( 624 72 486 ) ( 568 16 486 ) ( 624 72 502 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 ( 336 248 486 ) ( 456 368 486 ) ( 336 248 502 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
@@ -5098,7 +5090,7 @@
 ( 624 368 584 ) ( 336 368 584 ) ( 336 368 568 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 ( 336 368 584 ) ( 336 16 584 ) ( 336 16 568 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 }
-// brush 573
+// brush 572
 {
 ( -448 -180 80 ) ( -432 -180 96 ) ( -448 -196 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -432 -152 80 ) ( -432 -136 80 ) ( -448 -136 80 ) evil8_lights/evil8_rlight 0 32 0 -0.25 0.25 134217728 0 0
@@ -5106,7 +5098,7 @@
 ( -432 -152 176 ) ( -432 -136 176 ) ( -432 -136 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -432 -136 176 ) ( -448 -136 176 ) ( -448 -136 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 574
+// brush 573
 {
 ( -448 -84 80 ) ( -432 -84 96 ) ( -448 -100 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -432 -56 80 ) ( -432 -40 80 ) ( -448 -40 80 ) evil8_lights/evil8_rlight 0 32 0 -0.25 0.25 134217728 0 0
@@ -5114,7 +5106,7 @@
 ( -432 -56 176 ) ( -432 -40 176 ) ( -432 -40 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -432 -40 176 ) ( -448 -40 176 ) ( -448 -40 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 575
+// brush 574
 {
 ( -420 0 80 ) ( -420 -16 96 ) ( -436 0 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -392 -16 80 ) ( -376 -16 80 ) ( -376 0 80 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.2500019968 134217728 0 0
@@ -5122,7 +5114,7 @@
 ( -392 -16 176 ) ( -376 -16 176 ) ( -376 -16 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -376 -16 176 ) ( -376 0 176 ) ( -376 0 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 576
+// brush 575
 {
 ( -436 -192 80 ) ( -420 -176 96 ) ( -420 -192 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -376 -192 80 ) ( -376 -176 80 ) ( -392 -176 80 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.2500019968 134217728 0 0
@@ -5130,7 +5122,7 @@
 ( -376 -176 80 ) ( -376 -176 176 ) ( -392 -176 176 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -376 -192 80 ) ( -376 -192 176 ) ( -376 -176 176 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 577
+// brush 576
 {
 ( 0 704 0 ) ( -72 704 0 ) ( 0 704 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 832 0 ) ( 32 832 0 ) ( -16 832 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5139,7 +5131,7 @@
 ( 0 640 128 ) ( 0 640 376 ) ( 0 888 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 888 128 ) ( -16 888 376 ) ( -16 640 376 ) e7/e7walldesign01 -124 -128 0 0.5 0.5 0 0 0
 }
-// brush 578
+// brush 577
 {
 ( 100 384 64 ) ( 100 400 80 ) ( 116 384 64 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 72 400 64 ) ( 56 400 64 ) ( 56 384 64 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 134217728 0 0
@@ -5147,7 +5139,7 @@
 ( 72 400 160 ) ( 56 400 160 ) ( 56 400 64 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 56 400 160 ) ( 56 384 160 ) ( 56 384 64 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 579
+// brush 578
 {
 ( 116 512 64 ) ( 100 496 80 ) ( 100 512 64 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 56 512 64 ) ( 56 496 64 ) ( 72 496 64 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 134217728 0 0
@@ -5155,7 +5147,7 @@
 ( 56 496 64 ) ( 56 496 160 ) ( 72 496 160 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 56 512 64 ) ( 56 512 160 ) ( 56 496 160 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 580
+// brush 579
 {
 ( 210 326 80 ) ( 198 314 64 ) ( 198 338 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 208 324 42 ) ( 200 316 42 ) ( 208 324 58 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -5163,7 +5155,7 @@
 ( 196 340 42 ) ( 212 324 42 ) ( 196 340 58 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 204 340 64 ) ( 180 340 64 ) ( 180 316 64 ) evil8_lights/evil8_rlight 54 43 -45 -0.25 0.2500309944 134217728 0 0
 }
-// brush 581
+// brush 580
 {
 ( 190 490 80 ) ( 202 502 64 ) ( 202 478 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 192 492 42 ) ( 200 500 42 ) ( 192 492 58 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -5171,7 +5163,7 @@
 ( 204 476 42 ) ( 188 492 42 ) ( 204 476 58 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 196 476 64 ) ( 220 476 64 ) ( 220 500 64 ) evil8_lights/evil8_rlight 48 69 -45 -0.25 0.2500309944 134217728 0 0
 }
-// brush 582
+// brush 581
 {
 ( 388 -192 256 ) ( 388 -176 272 ) ( 404 -192 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 360 -176 256 ) ( 344 -176 256 ) ( 344 -192 256 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.2500460148 134217728 0 0
@@ -5179,7 +5171,7 @@
 ( 360 -176 352 ) ( 344 -176 352 ) ( 344 -176 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 344 -176 352 ) ( 344 -192 352 ) ( 344 -192 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 583
+// brush 582
 {
 ( 132 -192 256 ) ( 132 -176 272 ) ( 148 -192 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 104 -176 256 ) ( 88 -176 256 ) ( 88 -192 256 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.2500460148 134217728 0 0
@@ -5187,7 +5179,7 @@
 ( 104 -176 352 ) ( 88 -176 352 ) ( 88 -176 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 88 -176 352 ) ( 88 -192 352 ) ( 88 -192 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 584
+// brush 583
 {
 ( 260 -192 256 ) ( 260 -176 272 ) ( 276 -192 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 232 -176 256 ) ( 216 -176 256 ) ( 216 -192 256 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.2500460148 134217728 0 0
@@ -5195,7 +5187,7 @@
 ( 232 -176 352 ) ( 216 -176 352 ) ( 216 -176 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 216 -176 352 ) ( 216 -192 352 ) ( 216 -192 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 585
+// brush 584
 {
 ( 160 76 256 ) ( 144 92 272 ) ( 160 92 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 160 136 256 ) ( 144 136 256 ) ( 144 120 256 ) evil8_lights/evil8_rlight 63 32 0 -0.2500309944 0.25 134217728 0 0
@@ -5203,7 +5195,7 @@
 ( 144 136 256 ) ( 144 136 352 ) ( 144 120 352 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 160 136 256 ) ( 160 136 352 ) ( 144 136 352 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 586
+// brush 585
 {
 ( 570 -110 272 ) ( 582 -122 256 ) ( 558 -122 272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 572 -112 234 ) ( 580 -120 234 ) ( 572 -112 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -5211,7 +5203,7 @@
 ( 556 -124 234 ) ( 572 -108 234 ) ( 556 -124 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 556 -116 256 ) ( 556 -140 256 ) ( 580 -140 256 ) evil8_lights/evil8_rlight 67 84 -45 -0.2500309944 0.25 134217728 0 0
 }
-// brush 587
+// brush 586
 {
 ( -320 -356 96 ) ( -304 -356 112 ) ( -320 -372 96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -304 -328 96 ) ( -304 -312 96 ) ( -320 -312 96 ) evil8_lights/evil8_rlight 0 32 0 -0.25 0.25 134217728 0 0
@@ -5219,7 +5211,7 @@
 ( -304 -328 192 ) ( -304 -312 192 ) ( -304 -312 96 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -304 -312 192 ) ( -320 -312 192 ) ( -320 -312 96 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 588
+// brush 587
 {
 ( -156 384 80 ) ( -156 400 96 ) ( -140 384 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -184 400 80 ) ( -200 400 80 ) ( -200 384 80 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 134217728 0 0
@@ -5227,7 +5219,7 @@
 ( -184 400 176 ) ( -200 400 176 ) ( -200 400 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -200 400 176 ) ( -200 384 176 ) ( -200 384 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 589
+// brush 588
 {
 ( -176 272 80 ) ( -176 272 112 ) ( -160 264 112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -80 272 112 ) ( -80 272 80 ) ( -96 264 80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -5236,7 +5228,7 @@
 ( -328 264 144 ) ( -264 264 144 ) ( -264 264 64 ) e7/e7trimlight 320 -1 -90 0.5 0.5 0 0 0
 ( -176 272 112 ) ( -176 272 80 ) ( -80 272 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 590
+// brush 589
 {
 ( -488 352 -219 ) ( -520 352 -235 ) ( -488 352 -235 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -512 256 32 ) ( -544 288 32 ) ( -512 256 47 ) e7/e7walldesign01b -256 -128 0 0.5 0.5 0 0 0
@@ -5246,7 +5238,7 @@
 ( -344 312 128 ) ( -344 344 128 ) ( -592 344 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -600 256 376 ) ( -352 256 376 ) ( -352 256 128 ) e7/e7walldesign01b -356 -128 0 0.5 0.5 0 0 0
 }
-// brush 591
+// brush 590
 {
 ( -666 430 272 ) ( -678 442 256 ) ( -654 442 272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -668 432 234 ) ( -676 440 234 ) ( -668 432 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -5254,7 +5246,7 @@
 ( -652 444 234 ) ( -668 428 234 ) ( -652 444 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -652 436 256 ) ( -652 460 256 ) ( -676 460 256 ) evil8_lights/evil8_rlight 36 39 -45 -0.25 0.2500309944 134217728 0 0
 }
-// brush 592
+// brush 591
 {
 ( -654 198 272 ) ( -666 186 256 ) ( -666 210 272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -656 196 234 ) ( -664 188 234 ) ( -656 196 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -5262,7 +5254,7 @@
 ( -668 212 234 ) ( -652 196 234 ) ( -668 212 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -660 212 256 ) ( -684 212 256 ) ( -684 188 256 ) evil8_lights/evil8_rlight 20 51 -45 -0.25 0.2500309944 134217728 0 0
 }
-// brush 593
+// brush 592
 {
 ( -460 512 256 ) ( -476 496 272 ) ( -476 512 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -520 512 256 ) ( -520 496 256 ) ( -504 496 256 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.25 134217728 0 0
@@ -5270,7 +5262,7 @@
 ( -520 496 256 ) ( -520 496 352 ) ( -504 496 352 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -520 512 256 ) ( -520 512 352 ) ( -520 496 352 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 594
+// brush 593
 {
 ( -476 128 256 ) ( -476 144 272 ) ( -460 128 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -504 144 256 ) ( -520 144 256 ) ( -520 128 256 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 134217728 0 0
@@ -5278,7 +5270,7 @@
 ( -504 144 352 ) ( -520 144 352 ) ( -520 144 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -520 144 352 ) ( -520 128 352 ) ( -520 128 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 595
+// brush 594
 {
 ( -348 128 256 ) ( -348 144 272 ) ( -332 128 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -376 144 256 ) ( -392 144 256 ) ( -392 128 256 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 134217728 0 0
@@ -5286,7 +5278,7 @@
 ( -376 144 352 ) ( -392 144 352 ) ( -392 144 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -392 144 352 ) ( -392 128 352 ) ( -392 128 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 596
+// brush 595
 {
 ( -400 240 192 ) ( -424 240 176 ) ( -400 240 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -528 322 272 ) ( -592 322 272 ) ( -528 338 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5294,7 +5286,7 @@
 ( -352 256 300 ) ( -352 224 300 ) ( -352 256 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -113 240 256 ) ( -113 224 272 ) ( -97 240 256 ) e7/e7walldesign01b 4 -816 -360 0.5 0.5 0 0 0
 }
-// brush 597
+// brush 596
 {
 ( -736 284 256 ) ( -720 284 272 ) ( -736 268 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -720 312 256 ) ( -720 328 256 ) ( -736 328 256 ) evil8_lights/evil8_rlight 63 32 0 -0.249962002 0.25 134217728 0 0
@@ -5302,7 +5294,7 @@
 ( -720 312 352 ) ( -720 328 352 ) ( -720 328 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -720 328 352 ) ( -736 328 352 ) ( -736 328 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 598
+// brush 597
 {
 ( 160 204 256 ) ( 144 220 272 ) ( 160 220 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 160 264 256 ) ( 144 264 256 ) ( 144 248 256 ) evil8_lights/evil8_rlight 63 32 0 -0.2500309944 0.25 134217728 0 0
@@ -5310,16 +5302,16 @@
 ( 144 264 256 ) ( 144 264 352 ) ( 144 248 352 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 160 264 256 ) ( 160 264 352 ) ( 144 264 352 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 }
-// brush 599
+// brush 598
 {
-( 144 -240 -256 ) ( 0 -240 -256 ) ( 0 -256 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -256 -192 ) ( 0 -240 -192 ) ( 144 -240 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -256 -176 ) ( 144 -256 -176 ) ( 144 -256 -256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
-( 144 -256 -176 ) ( 144 -240 -176 ) ( 144 -240 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 144 -240 -176 ) ( 0 -240 -176 ) ( 0 -240 -256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
-( 0 -240 -176 ) ( 0 -256 -176 ) ( 0 -256 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 144 -240 -256 ) ( 0 -240 -256 ) ( 0 -256 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -256 -192 ) ( 0 -240 -192 ) ( 144 -240 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -256 -176 ) ( 144 -256 -176 ) ( 144 -256 -256 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
+( 144 -256 -176 ) ( 144 -240 -176 ) ( 144 -240 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 144 -240 -176 ) ( 0 -240 -176 ) ( 0 -240 -256 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
+( 0 -240 -176 ) ( 0 -256 -176 ) ( 0 -256 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 600
+// brush 599
 {
 ( -84 736 0 ) ( -84 864 -64 ) ( -68 736 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 864 -64 ) ( -160 864 -64 ) ( -160 784 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5327,7 +5319,7 @@
 ( -16 784 0 ) ( -16 864 0 ) ( -16 864 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 864 0 ) ( -176 784 0 ) ( -176 784 -64 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
-// brush 601
+// brush 600
 {
 ( 24 256 -23 ) ( 0 256 -23 ) ( 24 256 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 344 0 ) ( 16 320 0 ) ( 16 344 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5336,7 +5328,7 @@
 ( -268 16 256 ) ( -268 -8 256 ) ( -252 16 256 ) e7/e7mlight 0 128 -180 0.5 0.5 0 0 0
 ( 0 128 640 ) ( 0 16 640 ) ( 0 16 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 602
+// brush 601
 {
 ( 206 -6 272 ) ( 218 6 256 ) ( 218 -18 272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( 208 -4 234 ) ( 216 4 234 ) ( 208 -4 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -5344,7 +5336,7 @@
 ( 220 -20 234 ) ( 204 -4 234 ) ( 220 -20 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( 212 -20 256 ) ( 236 -20 256 ) ( 236 4 256 ) evil8_lights/evil8_rlight 91 56 -45 -0.2500309944 0.25 134217728 0 0
 }
-// brush 603
+// brush 602
 {
 ( -128 976 0 ) ( -128 1000 0 ) ( -128 976 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -112 960 0 ) ( -152 960 0 ) ( -112 960 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5353,7 +5345,7 @@
 ( -360 -32 -64 ) ( -360 288 -64 ) ( 24 288 -64 ) savdm6ish/sfloor1_2 256 0 0 -0.125 0.125 0 0 0
 ( 32 1024 -48 ) ( -352 1024 -48 ) ( -352 1024 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 604
+// brush 603
 {
 ( -416 -96 16 ) ( -416 -72 0 ) ( -416 -96 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -464 0 0 ) ( -424 0 0 ) ( -464 0 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5362,7 +5354,7 @@
 ( -520 64 -64 ) ( -520 384 -64 ) ( -136 384 -64 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -448 376 -48 ) ( -448 56 -48 ) ( -448 56 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 605
+// brush 604
 {
 ( -416 -64 16 ) ( -352 -64 0 ) ( -416 -64 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 -96 0 ) ( -416 -72 0 ) ( -416 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5371,7 +5363,7 @@
 ( -128 384 -96 ) ( -512 384 -96 ) ( -512 64 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -520 64 -64 ) ( -520 384 -64 ) ( -136 384 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 }
-// brush 606
+// brush 605
 {
 ( -352 -128 16 ) ( -416 -128 0 ) ( -352 -128 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 -96 0 ) ( -416 -72 0 ) ( -416 -96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5380,7 +5372,7 @@
 ( -128 384 -96 ) ( -512 384 -96 ) ( -512 64 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -520 64 -64 ) ( -520 384 -64 ) ( -136 384 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 }
-// brush 607
+// brush 606
 {
 ( 32 128 -23 ) ( 96 64 -23 ) ( 32 128 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 48 64 -23 ) ( -8 64 -23 ) ( 48 64 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5389,7 +5381,7 @@
 ( -304 -280 -256 ) ( -304 256 -256 ) ( -48 256 -256 ) e7/e7sbrickfloor 1 -128 0 0.25 0.25 0 0 0
 ( -320 256 288 ) ( -320 -280 288 ) ( -320 -280 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 608
+// brush 607
 {
 ( -64 -304 16 ) ( -64 -336 0 ) ( -64 -304 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -152 -288 0 ) ( -80 -288 0 ) ( -152 -288 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5398,7 +5390,7 @@
 ( -320 -384 288 ) ( -64 -384 288 ) ( -64 -384 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 -264 288 ) ( 128 272 288 ) ( 128 272 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 609
+// brush 608
 {
 ( -128 -360 16 ) ( -128 -288 0 ) ( -128 -360 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -152 -288 0 ) ( -80 -288 0 ) ( -152 -288 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5407,7 +5399,7 @@
 ( -320 -384 288 ) ( -64 -384 288 ) ( -64 -384 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 256 288 ) ( -320 -280 288 ) ( -320 -280 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 610
+// brush 609
 {
 ( -88 -352 16 ) ( -112 -352 0 ) ( -88 -352 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -360 0 ) ( -128 -288 0 ) ( -128 -360 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5416,7 +5408,7 @@
 ( -304 -280 -256 ) ( -304 256 -256 ) ( -48 256 -256 ) e7/e7sbrickfloor 1 -128 0 0.25 0.25 0 0 0
 ( -320 -384 288 ) ( -64 -384 288 ) ( -64 -384 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 611
+// brush 610
 {
 ( 512 320 16 ) ( 512 360 0 ) ( 512 320 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 256 200 ) ( 448 320 200 ) ( 512 256 216 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5425,7 +5417,7 @@
 ( 576 64 96 ) ( 576 192 96 ) ( 448 64 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 192 128 ) ( 576 64 128 ) ( 448 -64 128 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 }
-// brush 612
+// brush 611
 {
 ( 480 288 154 ) ( 544 288 138 ) ( 480 288 138 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 312 23 ) ( 576 336 23 ) ( 576 312 39 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5434,7 +5426,7 @@
 ( 576 192 128 ) ( 576 64 128 ) ( 448 -64 128 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( 640 96 624 ) ( 640 352 624 ) ( 640 352 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 613
+// brush 612
 {
 ( 248 128 16 ) ( 224 128 0 ) ( 248 128 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 111 288 ) ( 120 95 288 ) ( 176 95 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5444,7 +5436,7 @@
 ( 288 -64 304 ) ( 288 272 304 ) ( 288 272 56 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 272 304 ) ( 32 -64 304 ) ( 32 -64 56 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
 }
-// brush 614
+// brush 613
 {
 ( 160 152 16 ) ( 160 208 0 ) ( 160 152 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 232 128 0 ) ( 208 128 0 ) ( 232 128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5453,7 +5445,7 @@
 ( 32 -64 304 ) ( 32 272 304 ) ( 288 272 304 ) evil6_floors/e6c_floor -68 0 0 0.5 0.5 0 0 0
 ( 32 272 304 ) ( 32 -64 304 ) ( 32 -64 56 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
 }
-// brush 615
+// brush 614
 {
 ( -368 43 96 ) ( -352 43 80 ) ( -368 59 96 ) e7/e7walldesign01b -12 -720 -90 0.5 0.5 0 0 0
 ( -352 144 16 ) ( -368 160 16 ) ( -352 144 32 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5461,7 +5453,7 @@
 ( -368 144 96 ) ( -368 256 96 ) ( -352 256 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 144 96 ) ( -352 256 96 ) ( -352 256 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 616
+// brush 615
 {
 ( -352 96 16 ) ( -352 128 0 ) ( -352 96 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -544 88 164 ) ( -544 128 164 ) ( -544 88 180 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5470,7 +5462,7 @@
 ( -328 512 -64 ) ( -360 512 -64 ) ( -360 -40 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -40 64 ) ( -352 512 64 ) ( -320 512 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 617
+// brush 616
 {
 ( -80 960 16 ) ( -120 960 0 ) ( -80 960 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 104 8 ) ( 0 136 -7 ) ( 0 104 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5479,7 +5471,7 @@
 ( -328 0 -64 ) ( -328 320 -64 ) ( 56 320 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -352 320 -48 ) ( -352 0 -48 ) ( -352 0 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 618
+// brush 617
 {
 ( -352 960 -114 ) ( -352 992 -114 ) ( -352 960 -98 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 1008 16 ) ( -128 1032 0 ) ( -128 1008 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5489,7 +5481,7 @@
 ( -328 0 -64 ) ( -328 320 -64 ) ( 56 320 -64 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( 64 1056 -48 ) ( -320 1056 -48 ) ( -320 1056 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 619
+// brush 618
 {
 ( 288 195 304 ) ( 304 195 296 ) ( 288 211 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 192 304 ) ( 288 272 304 ) ( 304 272 304 ) evil6_floors/e6c_floor -68 0 0 0.5 0.5 0 0 0
@@ -5497,7 +5489,7 @@
 ( 304 192 304 ) ( 304 272 304 ) ( 304 272 296 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
 ( 320 256 304 ) ( 304 256 304 ) ( 304 256 296 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 620
+// brush 619
 {
 ( -8 160 -23 ) ( -56 160 -23 ) ( -8 160 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 160 -23 ) ( -64 192 -23 ) ( -64 160 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5506,7 +5498,7 @@
 ( 0 -296 288 ) ( 0 240 288 ) ( 0 240 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 224 288 ) ( -352 224 288 ) ( -352 224 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 621
+// brush 620
 {
 ( 48 64 -7 ) ( -8 64 -23 ) ( 48 64 -23 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -152 -288 16 ) ( -80 -288 0 ) ( -152 -288 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5515,7 +5507,7 @@
 ( 128 -264 288 ) ( 128 272 288 ) ( 128 272 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 256 288 ) ( -320 -280 288 ) ( -320 -280 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 622
+// brush 621
 {
 ( -64 192 -7 ) ( -64 224 -23 ) ( -64 192 -23 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -24 128 -7 ) ( 40 128 -23 ) ( -24 128 -23 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5524,7 +5516,7 @@
 ( -64 256 288 ) ( -320 256 288 ) ( -320 256 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 256 288 ) ( -320 -280 288 ) ( -320 -280 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 623
+// brush 622
 {
 ( -16 160 -7 ) ( -64 160 -23 ) ( -16 160 -23 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 192 -23 ) ( -64 224 -23 ) ( -64 192 -7 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5533,7 +5525,7 @@
 ( -336 -280 -256 ) ( -336 256 -256 ) ( -80 256 -256 ) e7/e7sbrickfloor 1 -128 0 0.25 0.25 0 0 0
 ( 0 -264 288 ) ( 0 272 288 ) ( 0 272 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 624
+// brush 623
 {
 ( -544 288 300 ) ( -560 280 300 ) ( -544 288 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -560 304 0 ) ( -560 336 0 ) ( -560 304 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5542,7 +5534,7 @@
 ( -560 360 256 ) ( -560 328 256 ) ( -544 328 256 ) e7/e7mlight 0 64 -180 0.5 0.5 0 0 0
 ( -544 144 640 ) ( -544 256 640 ) ( -544 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 625
+// brush 624
 {
 ( -528 322 272 ) ( -592 322 272 ) ( -528 338 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -576 368 272 ) ( -560 360 256 ) ( -528 416 272 ) e7/e7walldesign01b -12 -38 -135 0.5 0.5 0 0 0
@@ -5551,7 +5543,7 @@
 ( -576 368 268 ) ( -544 352 252 ) ( -576 368 252 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -576 416 256 ) ( -576 352 256 ) ( -512 352 256 ) e7/e7mlight -12 96 -45 0.5 0.5 0 0 0
 }
-// brush 626
+// brush 625
 {
 ( -16 256 431 ) ( 0 272 415 ) ( -16 256 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 272 431 ) ( -304 256 415 ) ( -320 272 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5560,7 +5552,7 @@
 ( 0 272 416 ) ( 0 272 496 ) ( -320 272 496 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 256 416 ) ( -320 256 496 ) ( 0 256 496 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 627
+// brush 626
 {
 ( 544 128 16 ) ( 520 128 0 ) ( 544 128 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 16 106 ) ( 512 64 106 ) ( 512 16 122 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
@@ -5569,7 +5561,7 @@
 ( 512 0 64 ) ( 512 -32 64 ) ( 448 -96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 512 -32 -64 ) ( 512 0 -64 ) ( 448 -64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 628
+// brush 627
 {
 ( 264 128 16 ) ( 224 128 0 ) ( 264 128 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 224 192 74 ) ( 224 216 74 ) ( 224 192 90 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5578,7 +5570,7 @@
 ( -64 0 448 ) ( 48 0 448 ) ( 48 0 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 184 440 ) ( 256 224 440 ) ( 256 224 -136 ) e7/e7walldesign01b 0 128 0 0.5 0.5 0 0 0
 }
-// brush 629
+// brush 628
 {
 ( -416 512 16 ) ( -416 496 0 ) ( -416 512 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 14 496 80 ) ( 14 496 96 ) ( 30 496 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5587,7 +5579,7 @@
 ( 16 496 96 ) ( 16 512 96 ) ( 16 512 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 512 96 ) ( -416 512 96 ) ( -416 512 16 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
-// brush 630
+// brush 629
 {
 ( 144 145 -112 ) ( 160 129 -128 ) ( 144 129 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 157 64 -128 ) ( 141 48 -112 ) ( 141 64 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5595,7 +5587,7 @@
 ( -80 192 -128 ) ( -144 192 -128 ) ( -144 160 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 -88 154 ) ( 144 -120 138 ) ( 144 -88 138 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 631
+// brush 630
 {
 ( 144 16 -103 ) ( 168 16 -119 ) ( 144 16 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 129 -112 ) ( 160 129 -128 ) ( 144 145 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5604,7 +5596,7 @@
 ( -80 192 -128 ) ( -144 192 -128 ) ( -144 160 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 632
+// brush 631
 {
 ( 176 -336 -119 ) ( 160 -336 -119 ) ( 176 -336 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 -240 -119 ) ( 176 -240 -119 ) ( 160 -240 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5613,7 +5605,7 @@
 ( -80 192 -128 ) ( -144 192 -128 ) ( -144 160 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 633
+// brush 632
 {
 ( 160 145 -64 ) ( 144 129 -80 ) ( 160 129 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 157 48 -80 ) ( 141 64 -64 ) ( 141 48 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5621,7 +5613,7 @@
 ( 144 -88 154 ) ( 144 -120 138 ) ( 144 -88 138 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 ( 136 16 -64 ) ( 136 128 -64 ) ( 176 128 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 634
+// brush 633
 {
 ( 152 16 -103 ) ( 168 16 -119 ) ( 152 16 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 129 -64 ) ( 144 129 -80 ) ( 160 145 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5630,7 +5622,7 @@
 ( 136 16 -64 ) ( 136 128 -64 ) ( 176 128 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 635
+// brush 634
 {
 ( 160 -80 -103 ) ( 176 -80 -119 ) ( 160 -80 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 16 -119 ) ( 168 16 -119 ) ( 152 16 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5639,7 +5631,7 @@
 ( 136 16 -64 ) ( 136 128 -64 ) ( 176 128 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 636
+// brush 635
 {
 ( 160 -240 -103 ) ( 176 -240 -119 ) ( 160 -240 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 168 -80 -103 ) ( 144 -80 -119 ) ( 168 -80 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5648,7 +5640,7 @@
 ( -80 192 -128 ) ( -144 192 -128 ) ( -144 160 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 637
+// brush 636
 {
 ( 160 -240 -103 ) ( 176 -240 -119 ) ( 160 -240 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 -80 -119 ) ( 176 -80 -119 ) ( 160 -80 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5657,7 +5649,7 @@
 ( 136 16 -64 ) ( 136 128 -64 ) ( 176 128 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 638
+// brush 637
 {
 ( 168 -336 -103 ) ( 152 -336 -119 ) ( 168 -336 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 129 -112 ) ( 160 129 -128 ) ( 144 145 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5666,7 +5658,7 @@
 ( -80 192 -128 ) ( -144 192 -128 ) ( -144 160 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 639
+// brush 638
 {
 ( 168 -336 -103 ) ( 152 -336 -119 ) ( 168 -336 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 160 129 -64 ) ( 144 129 -80 ) ( 160 145 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5675,7 +5667,7 @@
 ( 136 16 -64 ) ( 136 128 -64 ) ( 176 128 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 176 32 -128 ) ( 176 32 448 ) ( 176 144 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 640
+// brush 639
 {
 ( -16 -408 -119 ) ( -16 -392 -119 ) ( -16 -408 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 80 -400 -119 ) ( 80 -416 -119 ) ( 80 -400 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5684,7 +5676,7 @@
 ( 96 -432 -128 ) ( 96 -432 448 ) ( 208 -432 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -104 -266 -112 ) ( -64 -282 -112 ) ( -104 -282 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
-// brush 641
+// brush 640
 {
 ( -16 -408 -119 ) ( -16 -392 -119 ) ( -16 -408 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 80 -400 -119 ) ( 80 -416 -119 ) ( 80 -400 -103 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5693,7 +5685,7 @@
 ( 96 -432 -128 ) ( 96 -432 448 ) ( 208 -432 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 -266 -80 ) ( -144 -282 -80 ) ( -96 -282 -80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
-// brush 642
+// brush 641
 {
 ( 170 -416 -64 ) ( 154 -400 -80 ) ( 154 -416 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 80 -392 -64 ) ( 192 -392 -64 ) ( 192 -432 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5701,7 +5693,7 @@
 ( -176 -208 -80 ) ( -192 -224 -64 ) ( -176 -224 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -24 -400 154 ) ( -56 -400 138 ) ( -24 -400 138 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 643
+// brush 642
 {
 ( 170 -400 -112 ) ( 154 -416 -128 ) ( 154 -400 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 -400 -128 ) ( -160 -400 -128 ) ( -160 -432 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5709,7 +5701,7 @@
 ( -192 -208 -128 ) ( -176 -224 -112 ) ( -192 -224 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -24 -400 154 ) ( -56 -400 138 ) ( -24 -400 138 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 644
+// brush 643
 {
 ( 80 -400 -103 ) ( 80 -416 -119 ) ( 80 -400 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 -416 -64 ) ( 154 -400 -80 ) ( 170 -416 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5718,7 +5710,7 @@
 ( 128 -208 -64 ) ( 112 -224 -80 ) ( 128 -224 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 -266 -80 ) ( -144 -282 -80 ) ( -96 -282 -80 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 645
+// brush 644
 {
 ( 80 -400 -103 ) ( 80 -416 -119 ) ( 80 -400 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 -400 -112 ) ( 154 -416 -128 ) ( 170 -400 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5727,7 +5719,7 @@
 ( 112 -208 -112 ) ( 128 -224 -128 ) ( 112 -224 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -104 -266 -112 ) ( -64 -282 -112 ) ( -104 -282 -112 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 646
+// brush 645
 {
 ( -16 -408 -103 ) ( -16 -392 -119 ) ( -16 -408 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 -416 -64 ) ( 154 -400 -80 ) ( 170 -416 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5736,7 +5728,7 @@
 ( -176 -208 -80 ) ( -192 -224 -64 ) ( -176 -224 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -96 -266 -80 ) ( -144 -282 -80 ) ( -96 -282 -80 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 647
+// brush 646
 {
 ( -16 -408 -103 ) ( -16 -392 -119 ) ( -16 -408 -119 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 -400 -112 ) ( 154 -416 -128 ) ( 170 -400 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5745,7 +5737,7 @@
 ( -192 -208 -128 ) ( -176 -224 -112 ) ( -192 -224 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -104 -266 -112 ) ( -64 -282 -112 ) ( -104 -282 -112 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 648
+// brush 647
 {
 ( 170 256 -80 ) ( 154 272 -64 ) ( 154 256 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -160 181 -80 ) ( -176 165 -64 ) ( -160 165 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5753,7 +5745,7 @@
 ( 32 256 138 ) ( 16 240 138 ) ( 32 256 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 256 -48 ) ( -192 256 -48 ) ( -192 256 -128 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 649
+// brush 648
 {
 ( 170 272 -128 ) ( 154 256 -112 ) ( 154 272 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -176 181 -128 ) ( -160 165 -112 ) ( -176 165 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5761,7 +5753,7 @@
 ( -192 288 -128 ) ( -256 288 -128 ) ( -256 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 256 -48 ) ( -192 256 -48 ) ( -192 256 -128 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 650
+// brush 649
 {
 ( -16 288 -98 ) ( -16 264 -114 ) ( -16 288 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 256 -80 ) ( 154 272 -64 ) ( 170 256 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5770,7 +5762,7 @@
 ( -8 -159 -80 ) ( -56 -175 -80 ) ( -8 -175 -80 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 651
+// brush 650
 {
 ( -16 288 -98 ) ( -16 264 -114 ) ( -16 288 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 272 -128 ) ( 154 256 -112 ) ( 170 272 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5779,7 +5771,7 @@
 ( -192 288 -128 ) ( -256 288 -128 ) ( -256 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 652
+// brush 651
 {
 ( -112 264 -98 ) ( -112 288 -114 ) ( -112 264 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 256 -80 ) ( 154 272 -64 ) ( 170 256 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5788,7 +5780,7 @@
 ( -8 -159 -80 ) ( -56 -175 -80 ) ( -8 -175 -80 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 653
+// brush 652
 {
 ( -112 264 -98 ) ( -112 288 -114 ) ( -112 264 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 272 -128 ) ( 154 256 -112 ) ( 170 272 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5797,7 +5789,7 @@
 ( -192 288 -128 ) ( -256 288 -128 ) ( -256 256 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 288 -48 ) ( -256 288 -48 ) ( -256 288 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 654
+// brush 653
 {
 ( 170 272 64 ) ( 154 256 80 ) ( 154 272 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 80 64 ) ( -304 64 80 ) ( -320 64 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5805,7 +5797,7 @@
 ( -368 352 64 ) ( -400 352 64 ) ( -400 -32 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 256 312 ) ( -384 256 312 ) ( -384 256 64 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 655
+// brush 654
 {
 ( 170 256 112 ) ( 154 272 128 ) ( 154 256 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -175 112 ) ( -16 -175 128 ) ( -32 -159 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5813,7 +5805,7 @@
 ( -80 3 128 ) ( -56 -12 128 ) ( -80 -12 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 256 312 ) ( -384 256 312 ) ( -384 256 64 ) e7/e7trim01 0 -65 -180 0.5 0.5 0 0 0
 }
-// brush 656
+// brush 655
 {
 ( -176 272 -98 ) ( -176 288 -114 ) ( -176 272 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 272 64 ) ( 154 256 80 ) ( 170 272 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5821,7 +5813,7 @@
 ( -176 176 80 ) ( -72 160 80 ) ( -176 160 80 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( 304 272 312 ) ( 272 272 312 ) ( 272 272 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 657
+// brush 656
 {
 ( -176 264 -98 ) ( -176 280 -114 ) ( -176 264 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 256 112 ) ( 154 272 128 ) ( 170 256 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5830,7 +5822,7 @@
 ( -80 3 128 ) ( -56 -12 128 ) ( -80 -12 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 288 312 ) ( 272 288 312 ) ( 272 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 658
+// brush 657
 {
 ( -80 288 -98 ) ( -80 272 -114 ) ( -80 288 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 272 64 ) ( 154 256 80 ) ( 170 272 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5838,7 +5830,7 @@
 ( -176 176 80 ) ( -72 160 80 ) ( -176 160 80 ) e7/e7trim01 0 -33 -360 0.5 0.5 0 0 0
 ( 304 272 312 ) ( 272 272 312 ) ( 272 272 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 659
+// brush 658
 {
 ( -80 288 -98 ) ( -80 272 -114 ) ( -80 288 -114 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 154 256 112 ) ( 154 272 128 ) ( 170 256 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5847,7 +5839,7 @@
 ( -80 3 128 ) ( -56 -12 128 ) ( -80 -12 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 304 288 312 ) ( 272 288 312 ) ( 272 288 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 660
+// brush 659
 {
 ( -16 164 80 ) ( 0 148 64 ) ( -16 148 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 20 896 64 ) ( 4 880 80 ) ( 4 896 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5855,7 +5847,7 @@
 ( -16 888 64 ) ( -16 640 64 ) ( 16 640 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 888 96 ) ( -16 888 344 ) ( -16 640 344 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 661
+// brush 660
 {
 ( 0 164 128 ) ( -16 148 112 ) ( 0 148 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 20 880 112 ) ( 4 896 128 ) ( 4 880 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5863,7 +5855,7 @@
 ( -241 760 128 ) ( -241 792 128 ) ( -225 760 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 888 96 ) ( -16 888 344 ) ( -16 640 344 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 662
+// brush 661
 {
 ( -8 816 -17 ) ( 8 816 -33 ) ( -8 816 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 148 128 ) ( -16 148 112 ) ( 0 164 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5872,7 +5864,7 @@
 ( -241 760 128 ) ( -241 792 128 ) ( -225 760 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 640 96 ) ( 16 640 344 ) ( 16 888 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 663
+// brush 662
 {
 ( -8 816 -17 ) ( 8 816 -33 ) ( -8 816 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 148 80 ) ( 0 148 64 ) ( -16 164 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5881,7 +5873,7 @@
 ( -16 888 64 ) ( -16 640 64 ) ( 16 640 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 640 96 ) ( 16 640 344 ) ( 16 888 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 664
+// brush 663
 {
 ( 8 720 -17 ) ( -16 720 -33 ) ( 8 720 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 148 128 ) ( -16 148 112 ) ( 0 164 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5890,7 +5882,7 @@
 ( -241 760 128 ) ( -241 792 128 ) ( -225 760 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 640 96 ) ( 16 640 344 ) ( 16 888 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 665
+// brush 664
 {
 ( 16 720 -17 ) ( -8 720 -33 ) ( 16 720 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 148 80 ) ( 0 148 64 ) ( -16 164 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5899,7 +5891,7 @@
 ( -16 888 64 ) ( -16 640 64 ) ( 16 640 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 640 96 ) ( 16 640 344 ) ( 16 888 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 666
+// brush 665
 {
 ( -161 1072 64 ) ( -177 1056 80 ) ( -177 1072 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 1088 121 ) ( -16 1056 121 ) ( 16 1088 137 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5907,7 +5899,7 @@
 ( -16 1056 0 ) ( -40 1056 0 ) ( -16 1056 16 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 ( -328 1016 64 ) ( -328 768 64 ) ( -296 768 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 667
+// brush 666
 {
 ( -161 1056 112 ) ( -177 1072 128 ) ( -177 1056 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 1088 121 ) ( -16 1056 121 ) ( 16 1088 137 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5915,7 +5907,7 @@
 ( -225 856 128 ) ( -225 888 128 ) ( -209 856 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 1056 0 ) ( -40 1056 0 ) ( -16 1056 16 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 668
+// brush 667
 {
 ( -112 1072 -17 ) ( -112 1056 -33 ) ( -112 1072 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -177 1056 112 ) ( -177 1072 128 ) ( -161 1056 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5924,7 +5916,7 @@
 ( -225 856 128 ) ( -225 888 128 ) ( -209 856 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 1088 138 ) ( -264 1088 138 ) ( -288 1088 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 669
+// brush 668
 {
 ( -112 1072 -17 ) ( -112 1056 -33 ) ( -112 1072 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -177 1072 64 ) ( -177 1056 80 ) ( -161 1072 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5933,7 +5925,7 @@
 ( -288 1088 138 ) ( -264 1088 138 ) ( -288 1088 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 1016 64 ) ( -328 768 64 ) ( -296 768 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 670
+// brush 669
 {
 ( -208 1064 -17 ) ( -208 1088 -33 ) ( -208 1064 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -177 1056 112 ) ( -177 1072 128 ) ( -161 1056 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5942,7 +5934,7 @@
 ( -225 856 128 ) ( -225 888 128 ) ( -209 856 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 1088 138 ) ( -264 1088 138 ) ( -288 1088 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 671
+// brush 670
 {
 ( -208 1064 -17 ) ( -208 1088 -33 ) ( -208 1064 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -177 1072 64 ) ( -177 1056 80 ) ( -161 1072 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5951,7 +5943,7 @@
 ( -288 1088 138 ) ( -264 1088 138 ) ( -288 1088 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 1016 64 ) ( -328 768 64 ) ( -296 768 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 672
+// brush 671
 {
 ( -352 738 112 ) ( -368 722 128 ) ( -352 722 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -257 792 128 ) ( -257 824 128 ) ( -241 792 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5959,7 +5951,7 @@
 ( -352 992 138 ) ( -328 992 138 ) ( -352 992 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 672 96 ) ( -352 672 344 ) ( -352 920 344 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 673
+// brush 672
 {
 ( -368 738 64 ) ( -352 722 80 ) ( -368 722 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 800 0 ) ( -392 800 0 ) ( -368 800 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5967,7 +5959,7 @@
 ( -384 928 64 ) ( -384 680 64 ) ( -352 680 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 672 96 ) ( -352 672 344 ) ( -352 920 344 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 674
+// brush 673
 {
 ( -368 944 -17 ) ( -352 944 -33 ) ( -368 944 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 722 112 ) ( -368 722 128 ) ( -352 738 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5976,7 +5968,7 @@
 ( -352 992 138 ) ( -328 992 138 ) ( -352 992 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 920 96 ) ( -384 920 344 ) ( -384 672 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 675
+// brush 674
 {
 ( -368 944 -17 ) ( -352 944 -33 ) ( -368 944 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 722 64 ) ( -352 722 80 ) ( -368 738 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5985,7 +5977,7 @@
 ( -384 928 64 ) ( -384 680 64 ) ( -352 680 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 920 96 ) ( -384 920 344 ) ( -384 672 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 676
+// brush 675
 {
 ( -352 848 -17 ) ( -368 848 -33 ) ( -352 848 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 722 112 ) ( -368 722 128 ) ( -352 738 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -5994,7 +5986,7 @@
 ( -368 800 0 ) ( -392 800 0 ) ( -368 800 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 920 96 ) ( -384 920 344 ) ( -384 672 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 677
+// brush 676
 {
 ( -352 848 -17 ) ( -368 848 -33 ) ( -352 848 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 722 64 ) ( -352 722 80 ) ( -368 738 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6003,7 +5995,7 @@
 ( -384 928 64 ) ( -384 680 64 ) ( -352 680 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 920 96 ) ( -384 920 344 ) ( -384 672 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 678
+// brush 677
 {
 ( -416 738 112 ) ( -432 722 128 ) ( -416 722 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -131 528 128 ) ( -147 544 112 ) ( -147 528 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6011,7 +6003,7 @@
 ( -416 736 138 ) ( -392 736 138 ) ( -416 736 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 384 96 ) ( -416 384 344 ) ( -416 632 344 ) e7/e7trim01 0 -1 -180 0.5 0.5 0 0 0
 }
-// brush 679
+// brush 678
 {
 ( -432 738 64 ) ( -416 722 80 ) ( -432 722 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -147 528 64 ) ( -147 544 80 ) ( -131 528 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6019,7 +6011,7 @@
 ( -448 632 64 ) ( -448 384 64 ) ( -416 384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 384 96 ) ( -416 384 344 ) ( -416 632 344 ) e7/e7trim01 0 -1 0 0.5 0.5 0 0 0
 }
-// brush 680
+// brush 679
 {
 ( -424 688 -17 ) ( -408 688 -33 ) ( -424 688 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -432 722 64 ) ( -416 722 80 ) ( -432 738 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6028,7 +6020,7 @@
 ( -448 632 64 ) ( -448 384 64 ) ( -416 384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 632 96 ) ( -448 632 344 ) ( -448 384 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 681
+// brush 680
 {
 ( -424 688 -17 ) ( -408 688 -33 ) ( -424 688 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 722 112 ) ( -432 722 128 ) ( -416 738 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6037,7 +6029,7 @@
 ( -416 736 138 ) ( -392 736 138 ) ( -416 736 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 632 96 ) ( -448 632 344 ) ( -448 384 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 682
+// brush 681
 {
 ( -408 592 -17 ) ( -432 592 -33 ) ( -408 592 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -432 722 64 ) ( -416 722 80 ) ( -432 738 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6047,7 +6039,7 @@
 ( -448 632 64 ) ( -448 384 64 ) ( -416 384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 632 96 ) ( -448 632 344 ) ( -448 384 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 683
+// brush 682
 {
 ( -408 592 -17 ) ( -432 592 -33 ) ( -408 592 -33 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 722 112 ) ( -432 722 128 ) ( -416 738 112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6057,7 +6049,7 @@
 ( -448 544 154 ) ( -416 512 138 ) ( -448 544 138 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -448 632 96 ) ( -448 632 344 ) ( -448 384 344 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 684
+// brush 683
 {
 ( -352 800 197 ) ( -344 784 197 ) ( -352 800 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -400 728 312 ) ( -416 736 312 ) ( -400 728 328 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6065,7 +6057,7 @@
 ( -336 792 272 ) ( -248 880 272 ) ( -256 896 256 ) e7/e7walldesign01b 668 -3004 -495 0.5 0.5 0 0 0
 ( -144 864 272 ) ( -160 832 272 ) ( -160 864 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 685
+// brush 684
 {
 ( -416 447 256 ) ( -400 447 272 ) ( -416 463 256 ) e7/e7walldesign01b 656 -3488 -810 0.5 0.5 0 0 0
 ( -400 560 257 ) ( -416 544 257 ) ( -400 560 273 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6073,7 +6065,7 @@
 ( -408 544 272 ) ( -408 736 272 ) ( -392 736 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 736 336 ) ( -416 544 336 ) ( -416 544 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 686
+// brush 685
 {
 ( -416 544 369 ) ( -400 560 369 ) ( -416 544 385 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -120 536 272 ) ( -136 520 272 ) ( -136 536 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6081,7 +6073,7 @@
 ( -56 560 272 ) ( -56 544 256 ) ( -40 560 272 ) e7/e7walldesign01b 656 -3488 -1080 0.5 0.5 0 0 0
 ( -8 528 163 ) ( 0 512 163 ) ( -8 528 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 687
+// brush 686
 {
 ( -8 528 163 ) ( 0 512 163 ) ( -8 528 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 560 272 ) ( -416 560 272 ) ( -416 544 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6090,7 +6082,7 @@
 ( -416 544 205 ) ( -400 560 205 ) ( -416 544 221 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 560 288 ) ( -416 560 288 ) ( -416 560 208 ) e7/e7trim01 1 -29 -540 0.5 0.5 0 0 0
 }
-// brush 688
+// brush 687
 {
 ( -416 736 197 ) ( -400 728 197 ) ( -416 736 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 544 221 ) ( -400 560 205 ) ( -416 544 205 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6099,7 +6091,7 @@
 ( -416 608 208 ) ( -416 608 288 ) ( -416 544 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -400 544 208 ) ( -400 544 288 ) ( -400 608 288 ) e7/e7trim01 1 -29 -540 0.5 0.5 0 0 0
 }
-// brush 689
+// brush 688
 {
 ( -352 800 197 ) ( -344 784 197 ) ( -352 800 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 792 205 ) ( -400 728 205 ) ( -336 792 221 ) e7/e7trim01 1 -29 -540 0.5 0.5 0 0 0
@@ -6108,7 +6100,7 @@
 ( -336 800 272 ) ( -416 800 272 ) ( -416 728 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -416 728 288 ) ( -416 800 288 ) ( -336 800 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 690
+// brush 689
 {
 ( -352 992 197 ) ( -336 984 197 ) ( -352 992 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 792 205 ) ( -352 800 205 ) ( -336 792 221 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6117,7 +6109,7 @@
 ( -336 792 288 ) ( -336 992 288 ) ( -336 992 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 992 288 ) ( -352 792 288 ) ( -352 792 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 691
+// brush 690
 {
 ( -96 832 213 ) ( -80 832 197 ) ( -96 832 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 984 205 ) ( -280 1040 205 ) ( -336 984 221 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6127,7 +6119,7 @@
 ( -48 1040 288 ) ( -336 1040 288 ) ( -336 1040 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 1040 288 ) ( -336 896 288 ) ( -336 896 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 692
+// brush 691
 {
 ( -56 800 272 ) ( -344 800 272 ) ( -344 784 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -344 784 288 ) ( -344 800 288 ) ( -56 800 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6136,7 +6128,7 @@
 ( -40 800 288 ) ( -328 800 288 ) ( -328 800 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -344 800 288 ) ( -344 784 288 ) ( -344 784 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 693
+// brush 692
 {
 ( -16 917 256 ) ( -32 917 272 ) ( -16 933 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -130 800 256 ) ( -130 784 272 ) ( -114 800 256 ) e7/e7walldesign01b 656 -2976 -900 0.5 0.5 0 0 0
@@ -6144,7 +6136,7 @@
 ( -344 792 272 ) ( -344 808 272 ) ( -56 808 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -40 800 280 ) ( -328 800 280 ) ( -328 800 200 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 694
+// brush 693
 {
 ( -336 917 272 ) ( -352 917 256 ) ( -336 933 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 917 256 ) ( -32 917 272 ) ( -16 933 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6153,7 +6145,7 @@
 ( -320 800 272 ) ( -32 800 272 ) ( -32 800 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 816 272 ) ( -320 816 272 ) ( -320 816 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 695
+// brush 694
 {
 ( -16 917 256 ) ( -32 917 272 ) ( -16 933 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -106 832 272 ) ( -106 816 256 ) ( -90 832 272 ) e7/e7walldesign01b 656 -2944 -720 0.5 0.5 0 0 0
@@ -6161,7 +6153,7 @@
 ( -352 816 272 ) ( -352 832 272 ) ( -32 832 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -336 816 280 ) ( -16 816 280 ) ( -16 816 200 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 696
+// brush 695
 {
 ( -600 496 300 ) ( -608 512 300 ) ( -600 496 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -608 504 -128 ) ( -608 528 -128 ) ( -608 504 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6171,7 +6163,7 @@
 ( -129 512 256 ) ( -129 496 272 ) ( -113 512 256 ) e7/e7walldesign01b 4 -912 -360 0.5 0.5 0 0 0
 ( -384 796 256 ) ( -408 796 256 ) ( -384 780 256 ) e7/e7beam01 0 0 -270 0.5 0.5 0 0 0
 }
-// brush 697
+// brush 696
 {
 ( -400 728 213 ) ( -416 728 197 ) ( -400 728 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -400 928 288 ) ( -416 928 288 ) ( -416 560 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6180,7 +6172,7 @@
 ( -400 560 368 ) ( -400 928 368 ) ( -400 928 272 ) e7/e7walldesign01b 0 -64 -180 0.5 0.5 0 0 0
 ( -416 928 384 ) ( -416 560 384 ) ( -416 560 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 698
+// brush 697
 {
 ( -32 560 392 ) ( -32 1040 392 ) ( -32 1040 312 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 ( -344 560 301 ) ( -376 560 301 ) ( -344 560 317 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
@@ -6190,7 +6182,7 @@
 ( -328 784 285 ) ( -296 784 285 ) ( -328 784 301 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 ( -400 776 456 ) ( -400 552 456 ) ( -400 552 376 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 }
-// brush 699
+// brush 698
 {
 ( -80 -208 197 ) ( -112 -208 197 ) ( -80 -208 213 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -224 368 ) ( -160 -192 368 ) ( -128 -224 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6199,7 +6191,7 @@
 ( -160 -224 448 ) ( -160 -192 448 ) ( -32 -192 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -192 448 ) ( -160 -192 448 ) ( -160 -192 368 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 700
+// brush 699
 {
 ( 152 -256 -80 ) ( 152 -256 -112 ) ( 160 -240 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( 168 -352 -80 ) ( 168 -352 -112 ) ( 152 -320 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6208,7 +6200,7 @@
 ( 152 -256 -112 ) ( 152 -256 -80 ) ( 152 -320 -80 ) e7/e7trimlight 192 -1 -90 0.5 0.5 0 0 0
 ( 160 -240 -80 ) ( 160 -240 -112 ) ( 160 -352 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 701
+// brush 700
 {
 ( 384 -8 256 ) ( 400 -24 272 ) ( 384 -24 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -16 267 ) ( 584 -32 267 ) ( 576 -16 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6216,7 +6208,7 @@
 ( 104 -16 272 ) ( 424 -16 272 ) ( 424 -32 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 424 -16 336 ) ( 104 -16 336 ) ( 104 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 702
+// brush 701
 {
 ( -128 -224 304 ) ( -128 -224 432 ) ( -160 -192 432 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -128 -256 432 ) ( -128 -256 304 ) ( -160 -224 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6225,7 +6217,7 @@
 ( -160 -200 0 ) ( -160 -176 0 ) ( -160 -200 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -248 16 ) ( -128 -232 0 ) ( -128 -248 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 703
+// brush 702
 {
 ( -192 -224 432 ) ( -224 -224 432 ) ( -224 -224 184 ) e7/e7beam02 0 0 0 0.5 0.5 0 0 0
 ( -40 -256 432 ) ( -8 -256 432 ) ( -8 -256 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6234,7 +6226,7 @@
 ( -64 -216 0 ) ( -64 -248 0 ) ( -64 -216 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -248 0 ) ( -128 -232 0 ) ( -128 -248 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 704
+// brush 703
 {
 ( -64 -256 304 ) ( -64 -256 432 ) ( -32 -224 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 -256 432 ) ( -64 -224 432 ) ( -32 -192 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6243,7 +6235,7 @@
 ( -64 -224 16 ) ( -64 -256 0 ) ( -64 -224 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 -224 349 ) ( -32 -192 349 ) ( -64 -224 365 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 705
+// brush 704
 {
 ( -192 -192 432 ) ( -224 -192 432 ) ( -224 -192 184 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( 0 32 432 ) ( 0 96 432 ) ( 0 96 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6252,7 +6244,7 @@
 ( 8 96 304 ) ( -24 96 304 ) ( -24 32 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -216 0 ) ( -32 -200 0 ) ( -32 -216 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 706
+// brush 705
 {
 ( 0 128 432 ) ( 0 64 432 ) ( 0 64 184 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( 32 64 432 ) ( 32 128 432 ) ( 32 128 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6261,7 +6253,7 @@
 ( 40 128 304 ) ( 8 128 304 ) ( 8 64 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 24 -160 16 ) ( 8 -160 0 ) ( 24 -160 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 707
+// brush 706
 {
 ( 0 128 432 ) ( 0 64 432 ) ( 0 64 184 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( 32 64 432 ) ( 32 128 432 ) ( 32 128 184 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
@@ -6270,7 +6262,7 @@
 ( 24 -160 0 ) ( 8 -160 0 ) ( 24 -160 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 96 0 ) ( 48 96 0 ) ( 0 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 708
+// brush 707
 {
 ( 0 128 432 ) ( 0 64 432 ) ( 0 64 184 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( 32 128 432 ) ( 0 128 432 ) ( 0 128 184 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -6279,7 +6271,7 @@
 ( 40 128 304 ) ( 8 128 304 ) ( 8 64 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 96 16 ) ( 48 96 0 ) ( 0 96 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 709
+// brush 708
 {
 ( 32 464 -96 ) ( 32 464 480 ) ( 32 352 480 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( 0 128 -104 ) ( 0 128 472 ) ( 40 128 472 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6288,7 +6280,7 @@
 ( 332 376 64 ) ( 332 328 64 ) ( 316 376 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 288 138 ) ( 80 304 138 ) ( 64 288 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 710
+// brush 709
 {
 ( -416 288 180 ) ( -464 288 164 ) ( -416 288 164 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -40 64 ) ( -352 512 64 ) ( -320 512 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6297,7 +6289,7 @@
 ( -448 288 172 ) ( -448 368 172 ) ( -448 288 188 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 264 16 ) ( 0 288 0 ) ( 0 264 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 711
+// brush 710
 {
 ( 160 256 376 ) ( 160 112 376 ) ( 160 112 128 ) e7/e7walldesign01 0 -128 0 0.5 0.5 0 0 0
 ( 192 104 376 ) ( 192 248 376 ) ( 192 248 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6306,7 +6298,7 @@
 ( 160 256 0 ) ( 192 256 0 ) ( 160 256 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 192 128 0 ) ( 160 128 0 ) ( 192 128 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 712
+// brush 711
 {
 ( 160 16 -80 ) ( 160 16 -112 ) ( 160 -80 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 152 -88 154 ) ( 152 -120 138 ) ( 152 -88 138 ) e7/e7trimlight 192 -1 -90 0.5 0.5 0 0 0
@@ -6315,7 +6307,7 @@
 ( 160 16 -112 ) ( 160 16 -80 ) ( 152 0 -80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( 160 -80 -80 ) ( 160 -80 -112 ) ( 152 -64 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
-// brush 713
+// brush 712
 {
 ( -304 -280 -256 ) ( -304 256 -256 ) ( -48 256 -256 ) e7/e7sbrickfloor_ow 1 -128 0 0.25 0.25 0 0 0
 ( -64 256 -288 ) ( -320 256 -288 ) ( -320 -280 -288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6324,45 +6316,45 @@
 ( -128 -360 0 ) ( -128 -288 0 ) ( -128 -360 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -88 -352 0 ) ( -112 -352 0 ) ( -88 -352 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
+// brush 713
+{
+( -32 -240 -192 ) ( -32 -256 -192 ) ( -32 -240 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -80 -256 0 ) ( -128 -256 0 ) ( -80 -256 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -96 -365 -144 ) ( -128 -381 -128 ) ( -96 -381 -144 ) e7/e7panelwood2 -224 -232 -90 0.5 0.5 0 0 0
+( 0 -365 -176 ) ( 32 -381 -192 ) ( 0 -381 -176 ) e7/e7panelwood2 -224 0 -90 0.5 0.5 0 0 0
+( -192 -264 -224 ) ( -192 -288 -240 ) ( -192 -264 -240 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -96 -240 -176 ) ( -96 -240 -96 ) ( -480 -240 -96 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
+}
 // brush 714
 {
-( -32 -240 -192 ) ( -32 -256 -192 ) ( -32 -240 -80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -80 -256 0 ) ( -128 -256 0 ) ( -80 -256 16 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -96 -365 -144 ) ( -128 -381 -128 ) ( -96 -381 -144 ) e7/e7panelwood2 -224 -232 -90 0.5 0.5 134217728 0 0
-( 0 -365 -176 ) ( 32 -381 -192 ) ( 0 -381 -176 ) e7/e7panelwood2 -224 0 -90 0.5 0.5 134217728 0 0
-( -192 -264 -224 ) ( -192 -288 -240 ) ( -192 -264 -240 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -96 -240 -176 ) ( -96 -240 -96 ) ( -480 -240 -96 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
+( 456 -224 -160 ) ( -16 -224 -160 ) ( -16 -224 -192 ) e7/e7panelwood2 -224 0 0 0.5 0.5 0 0 0
+( 0 -264 -160 ) ( 0 -232 -160 ) ( 0 -232 -192 ) e7/e7panelwood2 -32 0 0 0.5 0.5 134217728 0 0
+( 456 -224 -256 ) ( -16 -224 -256 ) ( -16 -256 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -32 -68 -160 ) ( 0 -84 -160 ) ( -32 -84 -160 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
+( -80 -256 0 ) ( -128 -256 0 ) ( -80 -256 16 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
+( -32 -240 -256 ) ( -16 -224 -256 ) ( -32 -240 -240 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
+( -32 -224 -160 ) ( -32 -256 -160 ) ( -32 -256 -192 ) e7/e7panelwood2 -256 0 0 0.5 0.5 0 0 0
 }
 // brush 715
 {
-( 456 -224 -160 ) ( -16 -224 -160 ) ( -16 -224 -192 ) e7/e7panelwood2 -224 0 0 0.5 0.5 134217728 0 0
-( 0 -264 -160 ) ( 0 -232 -160 ) ( 0 -232 -192 ) e7/e7panelwood2 -32 0 0 0.5 0.5 0 0 0
-( 456 -224 -256 ) ( -16 -224 -256 ) ( -16 -256 -256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( -32 -68 -160 ) ( 0 -84 -160 ) ( -32 -84 -160 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
-( -80 -256 0 ) ( -128 -256 0 ) ( -80 -256 16 ) e7/e7beam01 0 0 -180 0.5 0.5 134217728 0 0
-( -32 -240 -256 ) ( -16 -224 -256 ) ( -32 -240 -240 ) e7/e7beam01 0 0 -180 0.5 0.5 134217728 0 0
-( -32 -224 -160 ) ( -32 -256 -160 ) ( -32 -256 -192 ) e7/e7panelwood2 -256 0 0 0.5 0.5 134217728 0 0
+( 16 -256 -192 ) ( 32 -256 -192 ) ( 16 -256 -160 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 128 -224 -192 ) ( 0 -224 -192 ) ( 0 -384 -192 ) e7/e7panelwood2 -224 -232 -90 0.5 0.5 0 0 0
+( 0 -384 -160 ) ( 0 -224 -160 ) ( 128 -224 -160 ) evil6_floors/e6c_floordented 0 0 0 0.5 0.5 0 0 0
+( 0 -384 56 ) ( 128 -384 56 ) ( 128 -384 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 128 -416 48 ) ( 128 -256 48 ) ( 128 -256 -200 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 0 -224 56 ) ( 0 -384 56 ) ( 0 -384 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
 // brush 716
 {
-( 16 -256 -192 ) ( 32 -256 -192 ) ( 16 -256 -160 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 128 -224 -192 ) ( 0 -224 -192 ) ( 0 -384 -192 ) e7/e7panelwood2 -224 -232 -90 0.5 0.5 134217728 0 0
-( 0 -384 -160 ) ( 0 -224 -160 ) ( 128 -224 -160 ) evil6_floors/e6c_floordented 0 0 0 0.5 0.5 134217728 0 0
-( 0 -384 56 ) ( 128 -384 56 ) ( 128 -384 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 128 -416 48 ) ( 128 -256 48 ) ( 128 -256 -200 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 0 -224 56 ) ( 0 -384 56 ) ( 0 -384 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( 32 -256 -192 ) ( 16 -256 -192 ) ( 16 -256 -160 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 128 -224 -192 ) ( 0 -224 -192 ) ( 0 -384 -192 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
+( 0 -384 -160 ) ( 0 -224 -160 ) ( 128 -224 -160 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
+( 128 -416 48 ) ( 128 -256 48 ) ( 128 -256 -200 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( 160 -224 64 ) ( 32 -224 64 ) ( 32 -224 -184 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
+( 0 -224 56 ) ( 0 -384 56 ) ( 0 -384 -192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
 // brush 717
 {
-( 32 -256 -192 ) ( 16 -256 -192 ) ( 16 -256 -160 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 128 -224 -192 ) ( 0 -224 -192 ) ( 0 -384 -192 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
-( 0 -384 -160 ) ( 0 -224 -160 ) ( 128 -224 -160 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
-( 128 -416 48 ) ( 128 -256 48 ) ( 128 -256 -200 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-( 160 -224 64 ) ( 32 -224 64 ) ( 32 -224 -184 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
-( 0 -224 56 ) ( 0 -384 56 ) ( 0 -384 -192 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
-}
-// brush 718
-{
 ( 32 160 -64 ) ( 32 160 -96 ) ( 128 64 -96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 165 -80 ) ( -64 165 -80 ) ( -16 181 -80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 8 168 -96 ) ( 8 168 -64 ) ( 104 72 -64 ) e7/e7trimlight 192 28 -90 0.5 0.3659999967 0 0 0
@@ -6370,7 +6362,7 @@
 ( 96 96 0 ) ( 96 72 0 ) ( 96 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -56 165 -112 ) ( -32 165 -112 ) ( -56 181 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 719
+// brush 718
 {
 ( -112 272 -80 ) ( -112 272 -112 ) ( -16 272 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 264 -48 ) ( -192 264 -48 ) ( -192 264 -128 ) e7/e7trimlight 192 -1 -90 0.5 0.5 0 0 0
@@ -6379,7 +6371,7 @@
 ( -16 272 -80 ) ( -16 272 -112 ) ( -32 264 -112 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -112 272 -112 ) ( -112 272 -80 ) ( -96 264 -80 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 }
-// brush 720
+// brush 719
 {
 ( 128 64 24 ) ( 144 64 24 ) ( 144 64 -224 ) e7/e7trim01 0 -32 -270 0.5 0.5 0 0 0
 ( 144 80 -128 ) ( 144 64 -128 ) ( 144 64 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6388,7 +6380,7 @@
 ( 128 64 -80 ) ( 128 80 -80 ) ( 144 80 -64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 128 80 -112 ) ( 128 64 -112 ) ( 144 64 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 721
+// brush 720
 {
 ( -320 96 -64 ) ( -328 96 -64 ) ( -320 96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -40 64 ) ( -352 512 64 ) ( -320 512 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6397,7 +6389,7 @@
 ( -352 96 0 ) ( -352 128 0 ) ( -352 96 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -40 48 ) ( -320 512 48 ) ( -320 512 -176 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
-// brush 722
+// brush 721
 {
 ( -328 96 -64 ) ( -320 96 -64 ) ( -320 96 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -40 64 ) ( -352 512 64 ) ( -320 512 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6406,7 +6398,7 @@
 ( -320 -40 48 ) ( -320 512 48 ) ( -320 512 -176 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -352 64 16 ) ( -320 64 0 ) ( -352 64 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 723
+// brush 722
 {
 ( 32 160 -128 ) ( 64 160 -128 ) ( 160 64 -128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 64 160 -256 ) ( 32 160 -256 ) ( 128 64 -256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6415,7 +6407,7 @@
 ( 96 72 0 ) ( 96 96 0 ) ( 96 72 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 144 64 24 ) ( 144 80 24 ) ( 144 80 -224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 724
+// brush 723
 {
 ( 144 80 -64 ) ( 128 80 -64 ) ( 144 64 -64 ) e7/e7trim01 0 -33 -450 0.5 0.5 0 0 0
 ( 144 80 24 ) ( 128 80 24 ) ( 128 80 -224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6424,7 +6416,7 @@
 ( 128 64 64 ) ( 128 80 64 ) ( 144 80 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 96 400 -96 ) ( 96 400 480 ) ( 96 288 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 725
+// brush 724
 {
 ( 0 496 96 ) ( -16 496 96 ) ( -16 496 16 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -16 400 96 ) ( -16 496 96 ) ( 0 496 96 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
@@ -6432,7 +6424,7 @@
 ( -16 236 64 ) ( -16 236 88 ) ( -16 252 64 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 ( -32 236 96 ) ( -16 236 80 ) ( -32 252 96 ) e7/e7walldesign01b -12 -688 -90 0.5 0.5 134217728 0 0
 }
-// brush 726
+// brush 725
 {
 ( -32 80 80 ) ( -32 40 80 ) ( -16 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 384 339 ) ( 464 400 323 ) ( 448 384 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6441,7 +6433,7 @@
 ( 448 272 96 ) ( 400 272 96 ) ( 400 400 96 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 256 416 64 ) ( 264 416 72 ) ( 256 384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 727
+// brush 726
 {
 ( -16 80 80 ) ( -32 40 80 ) ( -32 80 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 448 384 339 ) ( 464 400 323 ) ( 448 384 323 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6450,7 +6442,7 @@
 ( 448 356 64 ) ( 432 340 64 ) ( 448 340 64 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( 256 416 64 ) ( 264 416 72 ) ( 256 384 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 728
+// brush 727
 {
 ( -352 96 170 ) ( -320 128 170 ) ( -352 96 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -132 256 ) ( -344 -132 256 ) ( -320 -116 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6458,7 +6450,7 @@
 ( -320 -120 376 ) ( -320 128 376 ) ( -320 128 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -320 96 128 ) ( -336 96 128 ) ( -320 96 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 729
+// brush 728
 {
 ( -256 256 640 ) ( -368 256 640 ) ( -368 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -368 524 256 ) ( -392 524 256 ) ( -368 508 256 ) e7/e7trim01 0 -61 -360 0.5 0.5 0 0 0
@@ -6467,7 +6459,7 @@
 ( -352 256 300 ) ( -352 224 300 ) ( -352 256 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 240 256 ) ( -384 264 256 ) ( -384 240 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 730
+// brush 729
 {
 ( -528 224 300 ) ( -520 240 300 ) ( -528 224 316 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -256 256 640 ) ( -368 256 640 ) ( -368 256 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6476,7 +6468,7 @@
 ( -400 240 176 ) ( -424 240 176 ) ( -400 240 192 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -384 264 256 ) ( -384 240 256 ) ( -384 240 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 731
+// brush 730
 {
 ( -32 -200 16 ) ( -32 -224 0 ) ( -32 -200 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -224 256 ) ( 576 -192 256 ) ( 608 -192 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6485,7 +6477,7 @@
 ( 576 -192 256 ) ( 576 -192 224 ) ( 608 -192 224 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( 224 -208 128 ) ( 224 -224 128 ) ( 224 -208 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 732
+// brush 731
 {
 ( 576 -224 256 ) ( 576 -192 256 ) ( 608 -192 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -224 224 ) ( 576 -224 256 ) ( 608 -224 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6494,7 +6486,7 @@
 ( 224 -224 128 ) ( 224 -208 128 ) ( 224 -208 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 -216 128 ) ( 352 -232 128 ) ( 352 -216 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 733
+// brush 732
 {
 ( 480 -200 283 ) ( 480 -176 267 ) ( 480 -200 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -224 256 ) ( 576 -192 256 ) ( 608 -192 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6503,15 +6495,15 @@
 ( 576 -192 256 ) ( 576 -192 224 ) ( 608 -192 224 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( 352 -216 128 ) ( 352 -200 128 ) ( 352 -200 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 734
+// brush 733
 {
-( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -288 208 0 ) ( -288 176 -16 ) ( -288 208 -16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( -96 136 144 ) ( -96 256 144 ) ( 288 256 144 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 0 0 0
-( -96 128 160 ) ( 288 128 160 ) ( 288 128 80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 0 0 0
-( 288 256 160 ) ( -96 256 160 ) ( -96 256 80 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -192 131 176 ) ( -224 115 160 ) ( -192 115 176 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
+( -288 208 0 ) ( -288 176 -16 ) ( -288 208 -16 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( -96 136 144 ) ( -96 256 144 ) ( 288 256 144 ) evil6_floors/e6c_floor 0 0 0 0.5 0.5 134217728 0 0
+( -96 128 160 ) ( 288 128 160 ) ( 288 128 80 ) evil6_floors/e6l_stepedge 0 0 0 0.5 0.5 134217728 0 0
+( 288 256 160 ) ( -96 256 160 ) ( -96 256 80 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 735
+// brush 734
 {
 ( 16 344 16 ) ( 16 320 0 ) ( 16 344 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 384 163 ) ( 32 416 163 ) ( 0 384 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6519,7 +6511,7 @@
 ( 24 128 -128 ) ( 0 128 -128 ) ( 24 128 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 24 416 272 ) ( 40 416 272 ) ( 40 128 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 736
+// brush 735
 {
 ( 24 256 -7 ) ( 0 256 -23 ) ( 24 256 -23 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 344 0 ) ( 16 320 0 ) ( 16 344 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6528,7 +6520,7 @@
 ( 0 128 640 ) ( 0 16 640 ) ( 0 16 64 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 16 256 272 ) ( 32 256 272 ) ( 32 128 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 737
+// brush 736
 {
 ( 32 72 201 ) ( 32 40 201 ) ( 32 72 217 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 32 256 272 ) ( 16 256 272 ) ( 32 128 272 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6537,7 +6529,7 @@
 ( 24 128 -128 ) ( 0 128 -128 ) ( 24 128 -112 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 24 256 -7 ) ( 0 256 -23 ) ( 24 256 -23 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 738
+// brush 737
 {
 ( 0 128 272 ) ( 0 112 272 ) ( 0 112 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 0 112 272 ) ( 0 128 272 ) ( -16 128 264 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6546,7 +6538,7 @@
 ( -16 128 0 ) ( 0 128 0 ) ( -16 128 16 ) e7/e7panelwood2 288 -21 -360 0.5 0.5 0 0 0
 ( 0 112 256 ) ( -8 112 256 ) ( 0 112 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 739
+// brush 738
 {
 ( -168 80 288 ) ( -136 64 288 ) ( -168 64 288 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
 ( -200 -192 -112 ) ( -224 -192 -128 ) ( -200 -192 -128 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6555,7 +6547,7 @@
 ( -300 -16 256 ) ( -300 -40 256 ) ( -284 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 -208 256 ) ( -192 -200 256 ) ( -192 -200 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 740
+// brush 739
 {
 ( -128 -224 213 ) ( -160 -192 197 ) ( -128 -224 197 ) e7/e7panelwood2 448 -21 -270 0.5 0.5 0 0 0
 ( -168 64 288 ) ( -136 64 288 ) ( -168 80 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6564,7 +6556,7 @@
 ( -48 8 304 ) ( -48 48 304 ) ( -32 8 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 -208 288 ) ( -192 -200 288 ) ( -192 -200 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 741
+// brush 740
 {
 ( -192 -192 432 ) ( -224 -192 432 ) ( -224 -192 184 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -40 -224 432 ) ( -8 -224 432 ) ( -8 -224 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6573,7 +6565,7 @@
 ( -160 -200 16 ) ( -160 -176 0 ) ( -160 -200 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 -208 304 ) ( -192 -200 304 ) ( -192 -200 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 742
+// brush 741
 {
 ( -160 -224 16 ) ( -160 -176 0 ) ( -160 -224 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -224 256 ) ( 576 -192 256 ) ( 608 -192 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6582,7 +6574,7 @@
 ( 576 -192 256 ) ( 576 -192 224 ) ( 608 -192 224 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( -192 -208 128 ) ( -192 -200 128 ) ( -192 -200 256 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 }
-// brush 743
+// brush 742
 {
 ( -192 -200 128 ) ( -192 -208 128 ) ( -192 -200 256 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( 576 -192 256 ) ( 576 -192 224 ) ( 608 -192 224 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -6591,7 +6583,7 @@
 ( 576 -224 256 ) ( 576 -192 256 ) ( 608 -192 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -240 106 ) ( -224 -224 106 ) ( -224 -240 122 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 744
+// brush 743
 {
 ( -352 -64 432 ) ( -352 -64 304 ) ( -224 -192 304 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -352 -96 304 ) ( -352 -96 432 ) ( -224 -224 432 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
@@ -6600,7 +6592,7 @@
 ( -304 -128 0 ) ( -328 -128 0 ) ( -304 -128 16 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -288 -96 320 ) ( -304 -96 320 ) ( -288 -128 320 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 }
-// brush 745
+// brush 744
 {
 ( -352 -64 432 ) ( -352 -64 304 ) ( -224 -192 304 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
 ( -224 32 432 ) ( -224 96 432 ) ( -224 96 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6609,7 +6601,7 @@
 ( -304 -128 16 ) ( -328 -128 0 ) ( -304 -128 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -288 -128 320 ) ( -304 -128 320 ) ( -288 -224 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 746
+// brush 745
 {
 ( -224 -192 128 ) ( -288 -128 128 ) ( -288 -160 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 -128 320 ) ( -288 -128 320 ) ( -288 -224 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6618,7 +6610,7 @@
 ( -352 -96 256 ) ( -352 -96 304 ) ( -224 -224 304 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 40 201 ) ( -224 8 201 ) ( -224 40 217 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 747
+// brush 746
 {
 ( -352 -64 432 ) ( -352 -128 432 ) ( -352 -128 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 360 432 ) ( -320 424 432 ) ( -320 424 184 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
@@ -6627,7 +6619,7 @@
 ( -344 -64 0 ) ( -320 -64 0 ) ( -344 -64 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 -64 320 ) ( -344 -64 320 ) ( -344 -96 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 748
+// brush 747
 {
 ( -352 -64 432 ) ( -352 -128 432 ) ( -352 -128 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -504 256 432 ) ( -536 256 432 ) ( -536 256 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6636,7 +6628,7 @@
 ( -344 -64 16 ) ( -320 -64 0 ) ( -344 -64 0 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -328 256 320 ) ( -344 256 320 ) ( -344 -64 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 749
+// brush 748
 {
 ( -428 112 256 ) ( -428 88 256 ) ( -412 112 256 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -160 -96 186 ) ( -136 -96 170 ) ( -160 -96 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6645,7 +6637,7 @@
 ( -504 256 432 ) ( -536 256 432 ) ( -536 256 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 -64 432 ) ( -352 -128 432 ) ( -352 -128 184 ) e7/e7walldesign01b 4 -864 -360 0.5 0.5 0 0 0
 }
-// brush 750
+// brush 749
 {
 ( -320 192 432 ) ( -320 272 432 ) ( 0 272 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -312 256 368 ) ( 8 256 368 ) ( 8 256 128 ) evil4_walls/drk_brnbrick 0 0 0 0.5 0.5 0 0 0
@@ -6654,7 +6646,7 @@
 ( -320 272 368 ) ( -320 192 368 ) ( -320 192 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 272 320 ) ( -320 272 320 ) ( -320 256 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 751
+// brush 750
 {
 ( -312 256 368 ) ( 8 256 368 ) ( 8 256 128 ) e7/e7walldesign01b 0 -128 0 0.5 0.5 0 0 0
 ( 0 192 368 ) ( 0 272 368 ) ( 0 272 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6663,7 +6655,7 @@
 ( -320 272 320 ) ( -304 272 320 ) ( -320 256 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 192 128 ) ( 0 192 288 ) ( -320 208 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 752
+// brush 751
 {
 ( -192 -200 304 ) ( -192 -208 304 ) ( -192 -200 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 32 432 ) ( -32 96 432 ) ( 0 96 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6672,7 +6664,7 @@
 ( -224 -192 432 ) ( -224 -256 432 ) ( -224 -256 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -208 -192 320 ) ( -232 -192 320 ) ( -208 -224 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 753
+// brush 752
 {
 ( -300 -16 256 ) ( -300 -40 256 ) ( -284 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -232 -192 320 ) ( -208 -192 320 ) ( -208 -224 320 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6681,7 +6673,7 @@
 ( -40 -224 432 ) ( -8 -224 432 ) ( -8 -224 184 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -192 -200 304 ) ( -192 -208 304 ) ( -192 -200 432 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 754
+// brush 753
 {
 ( 288 -128 304 ) ( 288 208 304 ) ( 288 208 56 ) common/caulk 32 0 0 0.5 0.5 0 4 0
 ( 16 -112 304 ) ( 16 224 304 ) ( 272 224 304 ) evil6_floors/e6c_floordented -68 0 0 0.5 0.5 0 0 0
@@ -6690,7 +6682,7 @@
 ( 248 128 0 ) ( 224 128 0 ) ( 248 128 16 ) common/caulk 32 0 0 0.5 0.5 0 4 0
 ( 160 184 0 ) ( 160 240 0 ) ( 160 184 16 ) common/caulk 32 0 0 0.5 0.5 0 4 0
 }
-// brush 755
+// brush 754
 {
 ( 288 56 288 ) ( 304 56 288 ) ( 304 56 208 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( 304 72 288 ) ( 288 72 288 ) ( 288 72 208 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6698,7 +6690,7 @@
 ( 288 72 272 ) ( 288 56 272 ) ( 304 56 272 ) evil8_lights/evil8_rlight 0 32 0 -0.2499690056 0.25 0 0 0
 ( 288 72 272 ) ( 304 72 280 ) ( 288 56 272 ) common/caulk 0 0 90 0.5 0.5 0 4 0
 }
-// brush 756
+// brush 755
 {
 ( 288 184 288 ) ( 304 184 288 ) ( 304 184 208 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( 304 200 288 ) ( 288 200 288 ) ( 288 200 208 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6706,7 +6698,7 @@
 ( 288 200 272 ) ( 288 184 272 ) ( 304 184 272 ) evil8_lights/evil8_rlight 0 32 0 -0.2499690056 0.25 0 0 0
 ( 288 200 272 ) ( 304 200 280 ) ( 288 184 272 ) common/caulk 0 0 90 0.5 0.5 0 4 0
 }
-// brush 757
+// brush 756
 {
 ( 0 -224 288 ) ( 0 80 288 ) ( 0 80 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -128 208 ) ( -16 -128 288 ) ( -16 -208 288 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6715,7 +6707,7 @@
 ( -8 112 256 ) ( 0 112 256 ) ( 0 112 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 8 112 280 ) ( -16 112 280 ) ( 8 -192 280 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 758
+// brush 757
 {
 ( 0 -224 288 ) ( 0 80 288 ) ( 0 80 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 0 264 ) ( 0 0 256 ) ( -16 16 264 ) e7/e7panelwood2 288 -21 -360 0.5 0.5 0 0 0
@@ -6724,7 +6716,7 @@
 ( -8 112 256 ) ( 0 112 256 ) ( 0 112 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 112 280 ) ( 8 112 280 ) ( 8 -192 280 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 759
+// brush 758
 {
 ( -160 -192 208 ) ( -128 -160 208 ) ( -160 -192 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -160 256 ) ( -160 -160 256 ) ( -160 -192 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6733,7 +6725,7 @@
 ( -32 -160 288 ) ( -160 -160 288 ) ( -160 -160 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -120 -168 256 ) ( -120 -176 256 ) ( -120 -168 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 760
+// brush 759
 {
 ( -40 -160 256 ) ( -168 -160 256 ) ( -168 -192 256 ) e7/e7trimlight 32 -65 -90 0.5 0.3659999967 0 0 0
 ( -168 -192 288 ) ( -168 -160 288 ) ( -40 -160 288 ) e7/e7panelwood 0 0 0 0.5 0.5 0 0 0
@@ -6742,7 +6734,7 @@
 ( -120 -176 256 ) ( -120 -168 256 ) ( -120 -168 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -72 -168 256 ) ( -72 -176 256 ) ( -72 -168 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 761
+// brush 760
 {
 ( -64 -160 208 ) ( -32 -192 208 ) ( -64 -160 224 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -160 256 ) ( -160 -160 256 ) ( -160 -192 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6751,7 +6743,7 @@
 ( -32 -160 288 ) ( -160 -160 288 ) ( -160 -160 208 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -72 -176 256 ) ( -72 -168 256 ) ( -72 -168 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 762
+// brush 761
 {
 ( -216 -168 399 ) ( -216 -192 383 ) ( -216 -168 383 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -176 488 ) ( -304 -176 488 ) ( -304 -192 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6760,7 +6752,7 @@
 ( -16 -192 576 ) ( -16 -176 576 ) ( -16 -176 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -176 576 ) ( -304 -176 576 ) ( -304 -176 464 ) e7/e7walldesign01b 0 -464 -180 0.5 0.5 0 0 0
 }
-// brush 763
+// brush 762
 {
 ( -320 -88 383 ) ( -304 -88 383 ) ( -320 -88 399 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 -168 383 ) ( -216 -192 383 ) ( -216 -168 399 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6769,7 +6761,7 @@
 ( -304 -88 576 ) ( -304 -88 464 ) ( -216 -176 464 ) e7/e7walldesign01b 0 -464 -180 0.5 0.5 0 0 0
 ( -208 -88 488 ) ( -216 -88 488 ) ( -208 -192 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 764
+// brush 763
 {
 ( -320 -88 383 ) ( -304 -88 383 ) ( -320 -88 399 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 -168 383 ) ( -216 -192 383 ) ( -216 -168 399 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6778,7 +6770,7 @@
 ( -216 -88 488 ) ( -208 -88 488 ) ( -208 -192 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -212 -88 468 ) ( -224 -88 468 ) ( -212 -192 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 765
+// brush 764
 {
 ( -96 -176 468 ) ( -216 -176 468 ) ( -216 -192 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 -192 488 ) ( -216 -176 488 ) ( -96 -176 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6787,7 +6779,7 @@
 ( -96 -176 488 ) ( -216 -176 488 ) ( -216 -176 464 ) e7/e7trim01 1 -41 -540 0.5 0.5 0 0 0
 ( -216 -176 488 ) ( -216 -192 488 ) ( -216 -192 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 766
+// brush 765
 {
 ( -16 -176 415 ) ( 0 -192 415 ) ( -16 -176 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -216 -176 431 ) ( -224 -192 415 ) ( -216 -176 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6796,7 +6788,7 @@
 ( 128 -176 416 ) ( 128 -176 496 ) ( -224 -176 496 ) e7/e7walldesign01b 656 -3540 -1080 0.5 0.5 0 0 0
 ( -224 -192 416 ) ( -224 -192 496 ) ( 128 -192 496 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 767
+// brush 766
 {
 ( -216 -176 415 ) ( -224 -192 415 ) ( -216 -176 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 -88 415 ) ( -216 -176 415 ) ( -304 -88 431 ) e7/e7walldesign01b 656 -3540 -1080 0.5 0.5 0 0 0
@@ -6805,7 +6797,7 @@
 ( -208 -192 468 ) ( -224 -192 468 ) ( -320 -96 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -224 -192 464 ) ( -224 -192 448 ) ( -320 -96 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 768
+// brush 767
 {
 ( -16 -176 576 ) ( -16 64 576 ) ( 0 64 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -176 576 ) ( 0 -176 576 ) ( 0 -176 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6814,7 +6806,7 @@
 ( -16 64 580 ) ( -16 -176 580 ) ( -16 -176 468 ) e7/e7walldesign01b 0 -464 -180 0.5 0.5 0 0 0
 ( -244 64 488 ) ( -252 64 488 ) ( -244 -176 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 769
+// brush 768
 {
 ( 0 64 468 ) ( -16 64 468 ) ( -16 -176 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -176 576 ) ( 0 -176 576 ) ( 0 -176 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6823,7 +6815,7 @@
 ( -16 64 580 ) ( -16 -176 580 ) ( -16 -176 468 ) e7/e7trim01 1 -41 -540 0.5 0.5 0 0 0
 ( -252 64 488 ) ( -244 64 488 ) ( -244 -176 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 770
+// brush 769
 {
 ( -16 64 419 ) ( 0 80 419 ) ( -16 64 435 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -16 -176 431 ) ( 0 -192 415 ) ( -16 -176 415 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6832,7 +6824,7 @@
 ( -16 32 500 ) ( -16 -320 500 ) ( -16 -320 420 ) e7/e7walldesign01b 656 -3540 -1080 0.5 0.5 0 0 0
 ( 0 -320 496 ) ( 0 32 496 ) ( 0 32 416 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 771
+// brush 770
 {
 ( 0 80 419 ) ( -16 64 419 ) ( 0 80 435 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 64 419 ) ( -320 80 419 ) ( -304 64 435 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6841,7 +6833,7 @@
 ( -576 64 496 ) ( -224 64 496 ) ( -224 64 416 ) e7/e7walldesign01b 656 -3540 -1080 0.5 0.5 0 0 0
 ( -224 80 500 ) ( -576 80 500 ) ( -576 80 420 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 772
+// brush 771
 {
 ( -304 64 576 ) ( -304 80 576 ) ( -16 80 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 64 576 ) ( -16 64 576 ) ( -16 64 464 ) e7/e7walldesign01b 0 -464 -180 0.5 0.5 0 0 0
@@ -6850,7 +6842,7 @@
 ( -304 80 580 ) ( -304 64 580 ) ( -304 64 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -244 80 488 ) ( -252 80 488 ) ( -244 64 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 773
+// brush 772
 {
 ( -16 80 468 ) ( -304 80 468 ) ( -304 64 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 64 576 ) ( -16 64 576 ) ( -16 64 464 ) e7/e7trim01 1 -41 -540 0.5 0.5 0 0 0
@@ -6859,7 +6851,7 @@
 ( -304 80 580 ) ( -304 64 580 ) ( -304 64 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -252 80 488 ) ( -244 80 488 ) ( -244 64 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 774
+// brush 773
 {
 ( -320 80 419 ) ( -304 64 419 ) ( -320 80 435 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -304 -88 415 ) ( -320 -96 415 ) ( -304 -88 431 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6868,7 +6860,7 @@
 ( -304 -160 500 ) ( -304 192 500 ) ( -304 192 420 ) e7/e7walldesign01b 656 -3540 -1080 0.5 0.5 0 0 0
 ( -320 256 500 ) ( -320 -96 500 ) ( -320 -96 420 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 775
+// brush 774
 {
 ( -320 -176 576 ) ( -320 64 576 ) ( -304 64 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -88 576 ) ( -304 -88 576 ) ( -304 -88 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6877,7 +6869,7 @@
 ( -320 64 580 ) ( -320 -176 580 ) ( -320 -176 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -244 64 488 ) ( -252 64 488 ) ( -244 -88 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 776
+// brush 775
 {
 ( -304 64 468 ) ( -320 64 468 ) ( -320 -176 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 -88 576 ) ( -304 -88 576 ) ( -304 -88 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6886,7 +6878,7 @@
 ( -320 64 580 ) ( -320 -176 580 ) ( -320 -176 468 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -252 64 488 ) ( -244 64 488 ) ( -244 -88 488 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 777
+// brush 776
 {
 ( -80 -208 213 ) ( -112 -208 197 ) ( -80 -208 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -224 368 ) ( -160 -192 368 ) ( -128 -224 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6894,7 +6886,7 @@
 ( -160 -224 448 ) ( -160 -192 448 ) ( -32 -192 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 -212 432 ) ( -128 -216 432 ) ( -128 -212 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 778
+// brush 777
 {
 ( -80 -208 213 ) ( -112 -208 197 ) ( -80 -208 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -192 432 ) ( -160 -192 432 ) ( -160 -224 432 ) e7/e7mlight 0 0 -90 0.5 0.5 0 0 0
@@ -6903,7 +6895,7 @@
 ( -128 -216 432 ) ( -128 -212 432 ) ( -128 -212 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 -212 432 ) ( -64 -220 432 ) ( -64 -212 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 779
+// brush 778
 {
 ( -80 -208 213 ) ( -112 -208 197 ) ( -80 -208 197 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -32 -192 368 ) ( -64 -224 368 ) ( -32 -192 384 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6911,7 +6903,7 @@
 ( -160 -224 448 ) ( -160 -192 448 ) ( -32 -192 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -64 -220 432 ) ( -64 -212 432 ) ( -64 -212 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 780
+// brush 779
 {
 ( -660 212 256 ) ( -684 212 256 ) ( -684 188 256 ) evil8_lights/evil8_rlight 20 51 -45 -0.25 0.2500309944 134217728 0 0
 ( -668 212 234 ) ( -652 196 234 ) ( -668 212 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -6919,7 +6911,7 @@
 ( -656 196 234 ) ( -664 188 234 ) ( -656 196 250 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -654 198 272 ) ( -666 186 256 ) ( -666 210 272 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 781
+// brush 780
 {
 ( -520 144 352 ) ( -520 128 352 ) ( -520 128 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -504 144 352 ) ( -520 144 352 ) ( -520 144 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -6927,7 +6919,7 @@
 ( -504 144 256 ) ( -520 144 256 ) ( -520 128 256 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 134217728 0 0
 ( -476 128 256 ) ( -476 144 272 ) ( -460 128 256 ) common/caulk 0 0 0 0.5 0.5 134217728 4 0
 }
-// brush 782
+// brush 781
 {
 ( -392 144 352 ) ( -392 128 352 ) ( -392 128 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
 ( -376 144 352 ) ( -392 144 352 ) ( -392 144 256 ) e7/e7brnmetal 0 0 0 0.5 0.5 0 0 0
@@ -6935,7 +6927,7 @@
 ( -376 144 256 ) ( -392 144 256 ) ( -392 128 256 ) evil8_lights/evil8_rlight 32 63 0 -0.25 0.2500309944 0 0 0
 ( -348 128 256 ) ( -348 144 272 ) ( -332 128 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 783
+// brush 782
 {
 ( -576 120 316 ) ( -576 96 300 ) ( -576 120 300 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -564 128 256 ) ( -580 104 256 ) ( -580 128 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6944,7 +6936,7 @@
 ( -568 96 128 ) ( -568 96 376 ) ( -320 96 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 120 128 ) ( -352 112 128 ) ( -352 120 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 784
+// brush 783
 {
 ( -352 96 186 ) ( -320 128 170 ) ( -352 96 170 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -564 128 256 ) ( -580 104 256 ) ( -580 128 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6952,7 +6944,7 @@
 ( -320 128 128 ) ( -320 128 376 ) ( -568 128 376 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 ( -352 112 128 ) ( -352 120 128 ) ( -352 120 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 785
+// brush 784
 {
 ( -480 368 32 ) ( -480 392 32 ) ( -480 368 48 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -580 256 256 ) ( -580 280 256 ) ( -564 256 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6961,16 +6953,8 @@
 ( -320 288 376 ) ( -568 288 376 ) ( -568 288 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -352 256 128 ) ( -352 244 128 ) ( -352 244 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 786
+// brush 785
 {
-( -352 244 128 ) ( -352 256 128 ) ( -352 244 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -568 256 376 ) ( -320 256 376 ) ( -320 256 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
-( -320 256 128 ) ( -320 288 128 ) ( -568 288 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -580 256 256 ) ( -580 280 256 ) ( -564 256 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-( -352 288 170 ) ( -320 256 170 ) ( -352 288 186 ) common/caulk 0 0 0 0.5 0.5 0 4 0
-}
-// brush 787
-{
 ( 248 272 138 ) ( 272 272 138 ) ( 248 272 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 312 256 138 ) ( 296 256 138 ) ( 312 256 154 ) e7/e7beam02 0 0 -90 0.5 0.5 0 0 0
 ( 320 520 256 ) ( 320 520 288 ) ( 320 552 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6978,7 +6962,7 @@
 ( 256 232 288 ) ( 256 232 256 ) ( 256 264 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 272 288 ) ( 352 272 288 ) ( 320 256 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 788
+// brush 786
 {
 ( 248 272 138 ) ( 272 272 138 ) ( 248 272 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 312 256 138 ) ( 296 256 138 ) ( 312 256 154 ) e7/e7panelwood2 448 -33 -270 0.5 0.5 0 0 0
@@ -6987,7 +6971,7 @@
 ( 256 232 288 ) ( 256 232 256 ) ( 256 264 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 272 288 ) ( 320 272 288 ) ( 320 256 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 789
+// brush 787
 {
 ( 432 384 267 ) ( 448 384 267 ) ( 432 384 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 264 138 ) ( 320 280 138 ) ( 320 264 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -6996,7 +6980,7 @@
 ( 320 272 304 ) ( 320 272 256 ) ( 448 400 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 384 288 ) ( 352 384 288 ) ( 320 256 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 790
+// brush 788
 {
 ( 432 384 267 ) ( 448 384 267 ) ( 432 384 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 264 138 ) ( 320 280 138 ) ( 320 264 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7005,7 +6989,7 @@
 ( 320 272 304 ) ( 320 272 256 ) ( 448 400 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 384 288 ) ( 320 384 288 ) ( 320 256 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 791
+// brush 789
 {
 ( 448 408 283 ) ( 448 384 267 ) ( 448 408 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 424 138 ) ( 640 400 138 ) ( 640 424 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7014,7 +6998,7 @@
 ( 584 416 288 ) ( 584 416 256 ) ( 616 416 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 416 288 ) ( 352 416 288 ) ( 320 384 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 792
+// brush 790
 {
 ( 448 408 283 ) ( 448 384 267 ) ( 448 408 267 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 424 138 ) ( 640 400 138 ) ( 640 424 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7023,7 +7007,7 @@
 ( 584 416 288 ) ( 584 416 256 ) ( 616 416 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 416 288 ) ( 320 416 288 ) ( 320 384 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 793
+// brush 791
 {
 ( 632 384 138 ) ( 656 384 138 ) ( 632 384 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 664 64 138 ) ( 648 64 138 ) ( 664 64 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7032,7 +7016,7 @@
 ( 640 328 288 ) ( 640 328 256 ) ( 640 360 256 ) e7/e7beam02 0 0 -90 0.5 0.5 0 0 0
 ( 320 384 288 ) ( 352 384 288 ) ( 320 64 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 794
+// brush 792
 {
 ( 632 384 138 ) ( 656 384 138 ) ( 632 384 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 664 64 138 ) ( 648 64 138 ) ( 664 64 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7041,7 +7025,7 @@
 ( 640 328 288 ) ( 640 328 256 ) ( 640 360 256 ) e7/e7panelwood2 448 -33 -270 0.5 0.5 0 0 0
 ( 352 384 288 ) ( 320 384 288 ) ( 320 64 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 795
+// brush 793
 {
 ( 576 0 267 ) ( 576 -16 267 ) ( 576 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -16 138 ) ( 288 8 138 ) ( 288 -16 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7050,7 +7034,7 @@
 ( 320 -16 288 ) ( 320 -16 256 ) ( 288 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 0 288 ) ( 352 0 288 ) ( 320 -16 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 796
+// brush 794
 {
 ( 576 0 267 ) ( 576 -16 267 ) ( 576 0 283 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 288 -16 138 ) ( 288 8 138 ) ( 288 -16 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7059,7 +7043,7 @@
 ( 320 -16 288 ) ( 320 -16 256 ) ( 288 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 0 288 ) ( 320 0 288 ) ( 320 -16 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 797
+// brush 795
 {
 ( 648 64 138 ) ( 672 64 138 ) ( 648 64 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -16 138 ) ( 576 8 138 ) ( 576 -16 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7068,7 +7052,7 @@
 ( 672 80 288 ) ( 672 80 256 ) ( 576 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 64 288 ) ( 352 64 288 ) ( 320 -16 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 798
+// brush 796
 {
 ( 648 64 138 ) ( 672 64 138 ) ( 648 64 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 576 -16 138 ) ( 576 8 138 ) ( 576 -16 154 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7077,7 +7061,7 @@
 ( 672 80 288 ) ( 672 80 256 ) ( 576 -16 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 352 64 288 ) ( 320 64 288 ) ( 320 -16 288 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 799
+// brush 797
 {
 ( 624 72 502 ) ( 640 72 486 ) ( 624 72 486 ) common/caulk 0 -16 0 0.5 0.5 0 4 0
 ( 624 16 568 ) ( 624 368 568 ) ( 640 368 568 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7086,7 +7070,7 @@
 ( 624 368 568 ) ( 624 16 568 ) ( 624 16 456 ) e7/e7walldesign01b 0 -448 -180 0.5 0.5 0 0 0
 ( 640 368 480 ) ( 624 368 480 ) ( 640 72 480 ) e7/e7walldesign01b 0 -464 -180 0.5 0.5 0 0 0
 }
-// brush 800
+// brush 798
 {
 ( 624 72 510 ) ( 640 72 494 ) ( 624 72 494 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 368 448 ) ( 624 368 448 ) ( 624 16 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7095,7 +7079,7 @@
 ( 624 368 560 ) ( 624 16 560 ) ( 624 16 448 ) e7/e7trim01 1 -63 -540 0.5 0.5 0 0 0
 ( 624 368 480 ) ( 640 368 480 ) ( 640 72 480 ) e7/e7walldesign01b 0 -464 -180 0.5 0.5 0 0 0
 }
-// brush 801
+// brush 799
 {
 ( 336 0 568 ) ( 336 16 568 ) ( 624 16 568 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 0 576 ) ( 624 0 576 ) ( 624 0 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7104,7 +7088,7 @@
 ( 336 16 552 ) ( 336 0 552 ) ( 336 0 440 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 16 480 ) ( 632 16 480 ) ( 640 0 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 802
+// brush 800
 {
 ( 336 248 510 ) ( 320 248 494 ) ( 336 248 494 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 320 16 568 ) ( 320 368 568 ) ( 336 368 568 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7113,7 +7097,7 @@
 ( 320 368 576 ) ( 320 16 576 ) ( 320 16 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 248 480 ) ( 632 248 480 ) ( 640 16 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 803
+// brush 801
 {
 ( 456 384 470 ) ( 456 368 470 ) ( 456 384 486 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 248 494 ) ( 320 248 494 ) ( 336 248 510 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7122,7 +7106,7 @@
 ( 440 368 464 ) ( 440 368 576 ) ( 320 248 576 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 384 480 ) ( 632 384 480 ) ( 640 248 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 804
+// brush 802
 {
 ( 336 368 568 ) ( 336 384 568 ) ( 624 384 568 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 368 576 ) ( 624 368 576 ) ( 624 368 464 ) e7/e7walldesign01b 0 -448 -180 0.5 0.5 0 0 0
@@ -7131,7 +7115,7 @@
 ( 456 384 552 ) ( 456 368 552 ) ( 456 368 440 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 640 384 480 ) ( 632 384 480 ) ( 640 368 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 805
+// brush 803
 {
 ( 568 0 494 ) ( 568 16 494 ) ( 568 0 510 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 624 72 494 ) ( 640 72 494 ) ( 624 72 510 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7140,7 +7124,7 @@
 ( 568 16 576 ) ( 568 16 464 ) ( 624 72 464 ) e7/e7walldesign01b 0 -448 -180 0.5 0.5 0 0 0
 ( 616 72 480 ) ( 600 72 480 ) ( 616 0 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 806
+// brush 804
 {
 ( 568 16 448 ) ( 584 16 448 ) ( 640 72 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 600 72 480 ) ( 616 72 480 ) ( 616 0 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7149,7 +7133,7 @@
 ( 624 72 494 ) ( 640 72 494 ) ( 624 72 510 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 568 0 494 ) ( 568 16 494 ) ( 568 0 510 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 807
+// brush 805
 {
 ( 624 16 448 ) ( 336 16 448 ) ( 336 0 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 632 16 480 ) ( 640 16 480 ) ( 640 0 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7158,7 +7142,7 @@
 ( 568 0 560 ) ( 568 16 560 ) ( 568 16 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 0 576 ) ( 624 0 576 ) ( 624 0 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 808
+// brush 806
 {
 ( 336 368 448 ) ( 320 368 448 ) ( 320 16 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 632 248 480 ) ( 640 248 480 ) ( 640 16 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7167,7 +7151,7 @@
 ( 320 16 576 ) ( 336 16 576 ) ( 336 16 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 248 510 ) ( 320 248 494 ) ( 336 248 494 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 809
+// brush 807
 {
 ( 456 368 448 ) ( 440 368 448 ) ( 320 248 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 632 384 480 ) ( 640 384 480 ) ( 640 248 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7176,7 +7160,7 @@
 ( 336 248 494 ) ( 320 248 494 ) ( 336 248 510 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 456 384 478 ) ( 456 368 478 ) ( 456 384 494 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 810
+// brush 808
 {
 ( 624 384 448 ) ( 336 384 448 ) ( 336 368 448 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 632 384 480 ) ( 640 384 480 ) ( 640 368 480 ) common/caulk 0 0 0 0.5 0.5 0 4 0
@@ -7185,7 +7169,7 @@
 ( 624 368 576 ) ( 624 384 576 ) ( 624 384 464 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( 336 368 576 ) ( 624 368 576 ) ( 624 368 464 ) e7/e7trim01 1 -63 -540 0.5 0.5 0 0 0
 }
-// brush 811
+// brush 809
 {
 ( -260 256 432 ) ( -260 240 448 ) ( -276 256 432 ) common/caulk -63 0 -180 0.5 0.5 134217728 4 0
 ( -232 240 432 ) ( -216 240 432 ) ( -216 256 432 ) evil8_lights/evil8_rlight 32 63 0 0.25 -0.2500309944 134217728 0 0
@@ -7193,7 +7177,7 @@
 ( -232 240 528 ) ( -216 240 528 ) ( -216 240 432 ) e7/e7brnmetal -192 96 -180 0.5 -0.5 134217728 0 0
 ( -216 240 528 ) ( -216 256 528 ) ( -216 256 432 ) e7/e7brnmetal 0 96 -180 0.5 -0.5 134217728 0 0
 }
-// brush 812
+// brush 810
 {
 ( -88 240 528 ) ( -88 256 528 ) ( -88 256 432 ) e7/e7brnmetal 0 96 -180 0.5 -0.5 134217728 0 0
 ( -104 240 528 ) ( -88 240 528 ) ( -88 240 432 ) e7/e7brnmetal 64 96 -180 0.5 -0.5 134217728 0 0
@@ -7201,7 +7185,7 @@
 ( -104 240 432 ) ( -88 240 432 ) ( -88 256 432 ) evil8_lights/evil8_rlight -32 -1 0 0.25 -0.2500309944 134217728 0 0
 ( -132 256 432 ) ( -132 240 448 ) ( -148 256 432 ) common/caulk 1 0 -180 0.5 0.5 134217728 4 0
 }
-// brush 813
+// brush 811
 {
 ( -232 -384 192 ) ( -232 -400 192 ) ( -232 -400 96 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
 ( -216 -384 192 ) ( -232 -384 192 ) ( -232 -384 96 ) e7/e7brnmetal 0 0 0 0.5 0.5 134217728 0 0
@@ -7209,7 +7193,7 @@
 ( -216 -384 96 ) ( -232 -384 96 ) ( -232 -400 96 ) evil8_lights/evil8_rlight 32 0 0 -0.25 0.2500039935 134217728 0 0
 ( -188 -400 96 ) ( -188 -384 112 ) ( -172 -400 96 ) common/caulk 32 0 0 -0.25 0.2500199974 134217728 4 0
 }
-// brush 814
+// brush 812
 {
 ( -24 448 272 ) ( -24 384 272 ) ( -24 384 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( 8 528 272 ) ( -24 528 272 ) ( -24 528 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7218,7 +7202,7 @@
 ( -32 384 288 ) ( -32 448 288 ) ( 0 448 288 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( 0 448 112 ) ( -32 448 112 ) ( -32 384 112 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 815
+// brush 813
 {
 ( 0 208 112 ) ( -32 208 112 ) ( -32 144 112 ) common/hint 0 -32 0 0.5 0.5 0 15 0
 ( -32 144 268 ) ( -32 208 268 ) ( 0 208 268 ) common/hint 0 -32 0 0.5 0.5 0 15 0
@@ -7227,7 +7211,7 @@
 ( 8 288 272 ) ( -24 288 272 ) ( -24 288 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -12 208 272 ) ( -12 144 272 ) ( -12 144 248 ) common/hint 32 0 0 0.5 0.5 0 15 0
 }
-// brush 816
+// brush 814
 {
 ( -416 448 112 ) ( -448 448 112 ) ( -448 384 112 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -448 384 288 ) ( -448 448 288 ) ( -416 448 288 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7236,7 +7220,7 @@
 ( -408 528 272 ) ( -440 528 272 ) ( -440 528 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -440 448 272 ) ( -440 384 272 ) ( -440 384 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 817
+// brush 815
 {
 ( -504 192 272 ) ( -504 128 272 ) ( -504 128 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -472 272 272 ) ( -504 272 272 ) ( -504 272 248 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7245,7 +7229,7 @@
 ( -512 128 288 ) ( -512 192 288 ) ( -480 192 288 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -480 192 112 ) ( -512 192 112 ) ( -512 128 112 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 818
+// brush 816
 {
 ( -440 448 88 ) ( -440 384 88 ) ( -440 384 64 ) common/hint 0 16 0 0.5 0.5 0 15 0
 ( -408 528 88 ) ( -440 528 88 ) ( -440 528 64 ) common/hint 0 16 0 0.5 0.5 0 15 0
@@ -7254,7 +7238,7 @@
 ( -448 384 104 ) ( -448 448 104 ) ( -416 448 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -416 448 -72 ) ( -448 448 -72 ) ( -448 384 -72 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 819
+// brush 817
 {
 ( -320 192 -80 ) ( -352 192 -80 ) ( -352 128 -80 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -352 128 96 ) ( -352 192 96 ) ( -320 192 96 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7263,7 +7247,7 @@
 ( -312 272 80 ) ( -344 272 80 ) ( -344 272 56 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -344 192 80 ) ( -344 128 80 ) ( -344 128 56 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 820
+// brush 818
 {
 ( -16 -152 88 ) ( -16 -152 104 ) ( 0 -152 96 ) e7/e7brnmetal 128 0 -180 0.5 -0.5 134217728 0 0
 ( -16 -136 104 ) ( -16 -152 104 ) ( -16 -152 96 ) e7/e7brnmetal 96 0 -180 0.5 -0.5 134217728 0 0
@@ -7271,7 +7255,7 @@
 ( -16 -136 96 ) ( -16 -152 96 ) ( 0 -152 96 ) evil8_lights/evil8_rlight 0 32 0 0.25 -0.25 134217728 0 0
 ( -16 -152 104 ) ( -16 -136 104 ) ( 0 -136 96 ) common/caulk 63 32 -180 0.5 0.5 134217728 4 0
 }
-// brush 821
+// brush 819
 {
 ( -16 -40 104 ) ( -16 -24 104 ) ( 0 -24 96 ) common/caulk 0 0 -180 0.5 0.5 134217728 4 0
 ( -16 -24 96 ) ( -16 -40 96 ) ( 0 -40 96 ) evil8_lights/evil8_rlight 0 -32 0 0.25 -0.25 134217728 0 0
@@ -7279,7 +7263,7 @@
 ( -16 -24 104 ) ( -16 -40 104 ) ( -16 -40 96 ) e7/e7brnmetal 64 0 -180 0.5 -0.5 134217728 0 0
 ( -16 -40 88 ) ( -16 -40 104 ) ( 0 -40 96 ) e7/e7brnmetal 128 0 -180 0.5 -0.5 134217728 0 0
 }
-// brush 822
+// brush 820
 {
 ( -16 88 88 ) ( -16 88 104 ) ( 0 88 96 ) e7/e7brnmetal 128 0 -180 0.5 -0.5 134217728 0 0
 ( -16 104 104 ) ( -16 88 104 ) ( -16 88 96 ) e7/e7brnmetal 64 0 -180 0.5 -0.5 134217728 0 0
@@ -7287,7 +7271,7 @@
 ( -16 104 96 ) ( -16 88 96 ) ( 0 88 96 ) evil8_lights/evil8_rlight 0 -32 0 0.25 -0.25 134217728 0 0
 ( -16 88 104 ) ( -16 104 104 ) ( 0 104 96 ) common/caulk 0 0 -180 0.5 0.5 134217728 4 0
 }
-// brush 823
+// brush 821
 {
 ( -224 200 -104 ) ( -224 184 -104 ) ( -208 184 -104 ) evil8_lights/evil8_rlight 0 -32 0 0.25 -0.25 0 0 0
 ( -208 200 -8 ) ( -224 200 -8 ) ( -224 200 -104 ) e7/e7brnmetal -32 -15 -180 0.5 -0.5 0 0 0
@@ -7296,7 +7280,7 @@
 ( -208 200 -104 ) ( -208 184 -104 ) ( -208 184 -88 ) common/caulk 16 0 -90 0.5 0.5 0 0 0
 ( -216 200 -96 ) ( -200 200 -96 ) ( -200 184 -96 ) common/caulk 16 0 -90 0.5 0.5 0 0 0
 }
-// brush 824
+// brush 822
 {
 ( -216 72 -96 ) ( -200 72 -96 ) ( -200 56 -96 ) common/caulk -48 0 -90 0.5 0.5 0 0 0
 ( -208 72 -104 ) ( -208 56 -104 ) ( -208 56 -88 ) common/caulk 16 0 -90 0.5 0.5 0 0 0
@@ -7305,7 +7289,7 @@
 ( -208 72 -8 ) ( -224 72 -8 ) ( -224 72 -104 ) e7/e7brnmetal -32 -15 -180 0.5 -0.5 0 0 0
 ( -224 72 -104 ) ( -224 56 -104 ) ( -208 56 -104 ) evil8_lights/evil8_rlight 0 32 0 0.25 -0.25 0 0 0
 }
-// brush 825
+// brush 823
 {
 ( -16 -152 264 ) ( -16 -136 264 ) ( 0 -136 256 ) common/caulk -1 32 -180 0.5 0.5 134217728 4 0
 ( -16 -136 256 ) ( -16 -152 256 ) ( 0 -152 256 ) evil8_lights/evil8_rlight 0 32 0 0.25 -0.25 134217728 0 0
@@ -7313,7 +7297,7 @@
 ( -16 -136 264 ) ( -16 -152 264 ) ( -16 -152 256 ) e7/e7brnmetal 96 64 -180 0.5 -0.5 134217728 0 0
 ( -16 -152 248 ) ( -16 -152 264 ) ( 0 -152 256 ) e7/e7brnmetal 128 64 -180 0.5 -0.5 134217728 0 0
 }
-// brush 826
+// brush 824
 {
 ( -16 -48 248 ) ( -16 -48 264 ) ( 0 -48 256 ) e7/e7brnmetal 128 64 -180 0.5 -0.5 134217728 0 0
 ( -16 -32 264 ) ( -16 -48 264 ) ( -16 -48 256 ) e7/e7brnmetal 48 64 -180 0.5 -0.5 134217728 0 0
@@ -7321,7 +7305,7 @@
 ( -16 -32 256 ) ( -16 -48 256 ) ( 0 -48 256 ) evil8_lights/evil8_rlight 0 0 0 0.25 -0.25 134217728 0 0
 ( -16 -48 264 ) ( -16 -32 264 ) ( 0 -32 256 ) common/caulk 0 16 -180 0.5 0.5 134217728 4 0
 }
-// brush 827
+// brush 825
 {
 ( -16 40 264 ) ( -16 56 264 ) ( 0 56 256 ) common/caulk 0 32 -180 0.5 0.5 134217728 4 0
 ( -16 56 256 ) ( -16 40 256 ) ( 0 40 256 ) evil8_lights/evil8_rlight 0 32 0 0.25 -0.25 134217728 0 0
@@ -7329,7 +7313,7 @@
 ( -16 56 264 ) ( -16 40 264 ) ( -16 40 256 ) e7/e7brnmetal -32 64 -180 0.5 -0.5 134217728 0 0
 ( -16 40 248 ) ( -16 40 264 ) ( 0 40 256 ) e7/e7brnmetal 128 64 -180 0.5 -0.5 134217728 0 0
 }
-// brush 828
+// brush 826
 {
 ( -568 352 128 ) ( -568 352 376 ) ( -320 352 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -320 384 128 ) ( -320 384 376 ) ( -568 384 376 ) e7/e7walldesign01 -256 -128 0 0.5 0.5 0 0 0
@@ -7338,7 +7322,7 @@
 ( -384 376 0 ) ( -384 424 0 ) ( -384 376 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 ( -128 384 0 ) ( -128 352 0 ) ( -128 384 16 ) common/caulk 0 0 0 0.5 0.5 0 4 0
 }
-// brush 829
+// brush 827
 {
 ( -160 528 104 ) ( -456 528 104 ) ( -456 512 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -456 512 112 ) ( -456 528 112 ) ( -160 528 112 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7347,7 +7331,7 @@
 ( -160 1080 120 ) ( -456 1080 120 ) ( -456 1080 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -448 544 120 ) ( -448 528 120 ) ( -448 528 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 830
+// brush 828
 {
 ( 512 376 104 ) ( 264 376 104 ) ( 264 -16 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( 264 -16 112 ) ( 264 376 112 ) ( 512 376 112 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7356,7 +7340,7 @@
 ( 512 392 112 ) ( 264 392 112 ) ( 264 392 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( 280 376 112 ) ( 280 -16 112 ) ( 280 -16 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 831
+// brush 829
 {
 ( -8 120 104 ) ( -136 120 104 ) ( -136 -80 104 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -136 -80 112 ) ( -136 120 112 ) ( -8 120 112 ) common/hint 0 0 0 0.5 0.5 0 15 0
@@ -7365,7 +7349,7 @@
 ( 0 280 128 ) ( -128 280 128 ) ( -128 280 88 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -328 128 128 ) ( -328 -72 128 ) ( -328 -72 88 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 832
+// brush 830
 {
 ( -328 128 296 ) ( -328 -72 296 ) ( -328 -72 256 ) common/hint 0 16 0 0.5 0.5 0 15 0
 ( 0 280 296 ) ( -128 280 296 ) ( -128 280 256 ) common/hint 0 16 0 0.5 0.5 0 15 0
@@ -7374,7 +7358,7 @@
 ( -136 -80 280 ) ( -136 120 280 ) ( -8 120 280 ) common/hint 0 0 0 0.5 0.5 0 15 0
 ( -8 120 272 ) ( -136 120 272 ) ( -136 -80 272 ) common/hint 0 0 0 0.5 0.5 0 15 0
 }
-// brush 833
+// brush 831
 {
 ( 632 232 272 ) ( 504 232 272 ) ( 504 32 272 ) common/hint -16 32 0 0.5 0.5 0 15 0
 ( 512 32 304 ) ( 512 232 304 ) ( 640 232 304 ) common/hint -16 32 0 0.5 0.5 0 15 0
@@ -7383,7 +7367,7 @@
 ( 648 392 296 ) ( 520 392 296 ) ( 520 392 256 ) common/hint -16 16 0 0.5 0.5 0 15 0
 ( 296 240 296 ) ( 296 40 296 ) ( 296 40 256 ) common/hint -32 16 0 0.5 0.5 0 15 0
 }
-// brush 834
+// brush 832
 {
 ( -104 -328 -52 ) ( -88 -328 -52 ) ( -88 -328 -148 ) e7/e7brnmetal -48 -104 -180 0.5 -0.5 134217728 0 0
 ( -104 -312 -52 ) ( -104 -328 -52 ) ( -104 -328 -148 ) e7/e7brnmetal 0 -103 -180 0.5 -0.5 134217728 0 0
@@ -7391,7 +7375,16 @@
 ( -104 -312 -148 ) ( -104 -328 -148 ) ( -88 -328 -148 ) evil8_lights/evil8_rlight -32 32 0 0.25 -0.25 134217728 0 0
 ( -104 -328 -140 ) ( -88 -328 -148 ) ( -104 -344 -140 ) common/caulk 15 0 -180 0.5 0.5 134217728 4 0
 }
+// brush 833
+{
+( -336 288 163 ) ( -312 288 163 ) ( -336 288 179 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -352 504 128 ) ( -352 256 128 ) ( -320 256 128 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -320 256 128 ) ( -320 256 376 ) ( -320 504 376 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -352 64 256 ) ( -336 64 256 ) ( -352 -64 256 ) common/caulk 0 0 0 0.5 0.5 0 0 0
+( -352 244 128 ) ( -352 256 128 ) ( -352 244 256 ) common/caulk 0 0 0 0.5 0.5 0 4 0
+( -568 256 376 ) ( -320 256 376 ) ( -320 256 128 ) e7/e7beam01 0 0 -180 0.5 0.5 0 0 0
 }
+}
 // entity 1
 {
 "classname" "info_null"

Modified: branches/nexuiz-2.0/data/maps/campaignNexuiz25.txt
===================================================================
--- branches/nexuiz-2.0/data/maps/campaignNexuiz25.txt	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/maps/campaignNexuiz25.txt	2009-07-11 14:55:44 UTC (rev 7190)
@@ -26,7 +26,7 @@
 "dom","slimepit",5,7,100,,"DOM: The Slime Pit","An old, rusty industrial arena on which you have to watch out for slime...\n\nNote: while trying to capture one control point after another, you should keep an eye on your already captured control points, and defend them from incoming enemies."
 "dom","ruiner",5,8,100,,"DOM: RUINER","You got through The Slime Pit, go wash off that goo and try one last round of Domination here.\n\nYou may want to enable reflections in the Effects menu, but don't get carried away by them, as there still are control points to worry about..."
 "ctf","eggandbacon",7,7,200,,"SPECIAL: Egg & Bacon","An arena especially for spamming around with all the weapons. Enjoy it, and when you had enough of it, bring the enemy flag home...\n\nYou will notice some odd weapons here that haven't appeared before, by the way. Learn using them."
-"race","racetrack",0,0,333,,"Race: Racetrack","Race is about running as fast as possible on the map, by jumping at the right times, and using your weapons to gain more speed.\n\nOn this map, you have to finish a lap in 33.3 seconds to proceed. The mortar which you will find behind you may be an useful tool for this."
+"race","racetrack",0,0,360,,"Race: Racetrack","Race is about running as fast as possible on the map, by jumping at the right times, and using your weapons to gain more speed.\n\nOn this map, you have to finish a lap in 36.0 seconds to proceed. The mortar which you will find behind you may be an useful tool for this."
 "dm","final_rage",3,8,20,"g_laserguided_missile 1; g_weaponarena rocketlauncher","SPECIAL: Final rage","Laser Guided Missiles... try playing with them, to let them blow up directly in the face of your enemies. Secondary fire button toggles the guiding.\n\nThe final is near..."
 "lms","reslimed",2,7,9,,"LMS: Slimepit Revisited","In Last Man Standing, everyone starts out with the same amount of lives, and you have to stay alive as long as possible. It is crucial to actually dodge rockets here. Also, there are traps on this map that you can activate to hurt your opponents - find then!\n\nEveryone gets 9 lives, and if you stay alive, you're in the next round."
 "lms","bluesky",3,8,9,,"LMS: Blue Sky","And the sky is the limit... enjoy the view and try to keep alive! Your 3 enemies will try to hit you using the Nex and other weapons suitable for long distances, so never stop moving!"

Copied: branches/nexuiz-2.0/data/models/null.md3 (from rev 7090, trunk/data/models/null.md3)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/racers (from rev 7090, trunk/data/models/racers)

Copied: branches/nexuiz-2.0/data/models/spiderbot (from rev 7090, trunk/data/models/spiderbot)

Modified: branches/nexuiz-2.0/data/models/sprites/as-defend_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/as-destroy_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/as-push_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/dom-blue_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/dom-neut_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/dom-pink_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/dom-red_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/dom-yellow_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-extralife_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-extralife_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-fuelregen_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-fuelregen_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-invis_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-invis_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-jetpack_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-jetpack_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-shield_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-shield_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-speed_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-speed_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-strength_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/item-strength_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/make-sprites.sh
===================================================================
--- branches/nexuiz-2.0/data/models/sprites/make-sprites.sh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/sprites/make-sprites.sh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,9 +1,9 @@
 #!/bin/bash
 
-width=256
+width=512
 height=64
 
-sprwidth=256
+sprwidth=512
 sprheight=64
 
 pngsprite()
@@ -13,7 +13,7 @@
 	color=$2
 	bgcolor=$3
 	text=$4
-	svgwidth=512
+	svgwidth=1024
 	svgheight=128
 
 	cat <<EOF >$name.svg
@@ -27,7 +27,7 @@
    xmlns="http://www.w3.org/2000/svg"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="512"
+   width="1024"
    height="128"
    id="svg2"
    sodipodi:version="0.32"
@@ -57,7 +57,7 @@
      inkscape:cy="75.53288"
      inkscape:document-units="px"
      inkscape:current-layer="layer1"
-     width="512px"
+     width="1024px"
      height="128px"
      showgrid="true"
      gridspacingx="8px"
@@ -86,15 +86,15 @@
      inkscape:groupmode="layer"
      id="layer1">
     <path
-       style="opacity:1;fill:#$color;fill-opacity:1;stroke:#$bgcolor;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
-       d="M 256,126 L 280,102 L 264,102 L 264,62 L 248,62 L 248,102 L 232,102 L 256,126 z "
+       style="opacity:1;fill:#$color;fill-opacity:1;stroke:#$bgcolor;stroke-width:6;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
+       d="M 512,124 L 536,100 L 520,100 L 520,60 L 504,60 L 504,100 L 488,100 L 512,124 z "
        id="path1872"
        sodipodi:nodetypes="cccccccc" />
     <text
        xml:space="preserve"
-       style="font-size:56px;font-weight:bold;text-align:center;text-anchor:middle;opacity:1;fill:#$color;fill-opacity:1;stroke:#$bgcolor;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
-       x="255.49414"
-       y="49.957031"
+       style="font-size:120px;font-weight:bold;text-align:center;text-anchor:middle;opacity:1;fill:#$color;fill-opacity:1;stroke:#$bgcolor;stroke-width:6;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118;font-family:xscale"
+       x="512"
+       y="49"
        id="text1874"><tspan
          sodipodi:role="line"
          id="tspan1876"
@@ -131,71 +131,71 @@
 		shift
 		pngsprite "${name}_frame$frame" "$color" "$bgcolor" "$text"
 		convert "${name}_frame$frame.png" "${name}_frame$frame.tga"
+		rm -f "${name}_frame$frame.png"
 		args="$args -sprite ${name}_frame$frame.png $(($sprwidth / 2)) $(($sprheight - 1)) $interval"
 		frame=$(($frame + 1))
 	done
-	./makespr32 -o "$name.sp2" -proj 5 -group $args
+	#./makespr32 -o "$name.sp2" -proj 5 -group $args
 }
 
-sprite as-push            "PUSH"          ff8000 000000 0.0
-sprite as-destroy         "DESTROY"       ff8000 000000 0.0
-sprite as-defend          "DEFEND"        0080ff 000000 0.0
-sprite bluebase           "BLUE BASE"     0000ff 000000 0.0
-sprite bluebase           "BLUE BASE"     0000ff 000000 0.0
-sprite bluebase           "BLUE BASE"     0000ff 000000 0.0
+sprite as-push            "Push"          ff8000 000000 0.0
+sprite as-destroy         "Destroy"       ff8000 000000 0.0
+sprite as-defend          "Defend"        0080ff 000000 0.0
+sprite bluebase           "Blue Base"     0000ff 000000 0.0
 sprite danger             "DANGER"        ff0000 ffff00 0.0
-sprite flagcarrier        "FLAG CARRIER"  ffff00 000000 0.0
-sprite helpme             "HELP ME"       ffff00 ff0000 0.0
-sprite here               "HERE"          00ff00 000000 0.0
-sprite key-dropped        "DROPPED KEY"   00ffff 000000 0.0
-sprite keycarrier-blue    "KEY CARRIER"   0000ff 000000 0.0
-sprite keycarrier-finish  "RUN HERE"      00ffff 000000 0.0
-sprite keycarrier-friend  "KEY CARRIER"   00ff00 000000 0.0
-sprite keycarrier-pink    "KEY CARRIER"   ff00ff 000000 0.0
-sprite keycarrier-red     "KEY CARRIER"   ff0000 000000 0.0
-sprite keycarrier-yellow  "KEY CARRIER"   ffff00 000000 0.0
-sprite redbase            "RED BASE"      ff0000 000000 0.0
-sprite waypoint           "WAYPOINT"      008080 000000 0.0
-sprite ons-gen-red        "GENERATOR"     ff0000 000000 0.0
-sprite ons-gen-blue       "GENERATOR"     0000ff 000000 0.0
-sprite ons-gen-shielded   "GENERATOR"     808080 000000 0.0
-sprite ons-cp-neut        "CONTROL POINT" ffff00 000000 0.0
-sprite ons-cp-red         "CONTROL POINT" ff0000 000000 0.0
-sprite ons-cp-blue        "CONTROL POINT" 0000ff 000000 0.0
-sprite ons-cp-atck-neut   "CONTROL POINT" ffff00 000000 0.5 000000 ffff00 0.5
-sprite ons-cp-atck-red    "CONTROL POINT" ff0000 000000 0.5 ff0000 ffff00 0.5
-sprite ons-cp-atck-blue   "CONTROL POINT" 0000ff 000000 0.5 0000ff ffff00 0.5
-sprite ons-cp-dfnd-red    "CONTROL POINT" ff0000 000000 0.5 ff0000 ffffff 0.5
-sprite ons-cp-dfnd-blue   "CONTROL POINT" 0000ff 000000 0.5 0000ff ffffff 0.5
-sprite race-checkpoint    "CHECKPOINT"    ff8000 000000 0.0
-sprite race-finish        "FINISH"        ff8000 000000 0.0
+sprite flagcarrier        "Flag carrier"  ffff00 000000 0.0
+sprite helpme             "Help me!"      ffff00 ff0000 0.0
+sprite here               "Here"          00ff00 000000 0.0
+sprite key-dropped        "Dropped key"   00ffff 000000 0.0
+sprite keycarrier-blue    "Key carrier"   0000ff 000000 0.0
+sprite keycarrier-finish  "Run here"      00ffff 000000 0.0
+sprite keycarrier-friend  "Key carrier"   00ff00 000000 0.0
+sprite keycarrier-pink    "Key carrier"   ff00ff 000000 0.0
+sprite keycarrier-red     "Key carrier"   ff0000 000000 0.0
+sprite keycarrier-yellow  "Key carrier"   ffff00 000000 0.0
+sprite redbase            "Red base"      ff0000 000000 0.0
+sprite waypoint           "Waypoint"      008080 000000 0.0
+sprite ons-gen-red        "Generator"     ff0000 000000 0.0
+sprite ons-gen-blue       "Generator"     0000ff 000000 0.0
+sprite ons-gen-shielded   "Generator"     808080 000000 0.0
+sprite ons-cp-neut        "Control point" ffff00 000000 0.0
+sprite ons-cp-red         "Control point" ff0000 000000 0.0
+sprite ons-cp-blue        "Control point" 0000ff 000000 0.0
+sprite ons-cp-atck-neut   "Control point" ffff00 000000 0.5 000000 ffff00 0.5
+sprite ons-cp-atck-red    "Control point" ff0000 000000 0.5 ff0000 ffff00 0.5
+sprite ons-cp-atck-blue   "Control point" 0000ff 000000 0.5 0000ff ffff00 0.5
+sprite ons-cp-dfnd-red    "Control point" ff0000 000000 0.5 ff0000 ffffff 0.5
+sprite ons-cp-dfnd-blue   "Control point" 0000ff 000000 0.5 0000ff ffffff 0.5
+sprite race-checkpoint    "Checkpoint"    ff8000 000000 0.0
+sprite race-finish        "Finish"        ff8000 000000 0.0
+sprite nb-ball            "Ball"          e8d8a0 000000 0.0
 
-sprite wpn-laser          "LASER"         ff8080 000000 0.0 # bright red
-sprite wpn-shotgun        "SG"            804000 000000 0.0 # brown
-sprite wpn-uzi            "MG"            ffff00 000000 0.0 # yellow
-sprite wpn-gl             "GL"            ff0000 000000 0.0 # red
-sprite wpn-electro        "ELECTRO"       0080ff 000000 0.0 # bluish cyan
-sprite wpn-crylink        "CRYLINK"       ff80ff 000000 0.0 # bright pink
-sprite wpn-nex            "NEX"           00ffff 000000 0.0 # cyan
-sprite wpn-hagar          "HAGAR"         ffff80 000000 0.0 # bright yellow
-sprite wpn-rl             "RL"            ffff00 000000 0.0 # yellow
-sprite wpn-porto          "PORTO"         808080 000000 0.0 # grey
-sprite wpn-minstanex      "MINSTANEX"     80ffff 000000 0.0 # bright cyan
-sprite wpn-hookgun        "HOOK"          008000 000000 0.0 # dark green
-sprite wpn-seeker         "SEEKER"        ff8000 000000 0.0 # orange
+sprite wpn-laser          "Laser"         ff8080 000000 0.0 # bright red
+sprite wpn-shotgun        "Shotgun"       804000 000000 0.0 # brown
+sprite wpn-uzi            "Machine Gun"   ffff00 000000 0.0 # yellow
+sprite wpn-gl             "Mortar"        ff0000 000000 0.0 # red
+sprite wpn-electro        "Electro"       0080ff 000000 0.0 # bluish cyan
+sprite wpn-crylink        "Crylink"       ff80ff 000000 0.0 # bright pink
+sprite wpn-nex            "Nex"           00ffff 000000 0.0 # cyan
+sprite wpn-hagar          "Hagar"         ffff80 000000 0.0 # bright yellow
+sprite wpn-rl             "Rocket Launcher" ffff00 000000 0.0 # yellow
+sprite wpn-porto          "Port-O-Launch" 808080 000000 0.0 # grey
+sprite wpn-minstanex      "Minstanex"     80ffff 000000 0.0 # bright cyan
+sprite wpn-hookgun        "Hook"          008000 000000 0.0 # dark green
+sprite wpn-seeker         "Seeker"        ff8000 000000 0.0 # orange
 sprite wpn-hlac           "HLAC"          00ff00 000000 0.0 # green
-sprite wpn-campingrifle   "RIFLE"         80ff00 000000 0.0 # orange
+sprite wpn-campingrifle   "Rifle"         80ff00 000000 0.0 # orange
 
-sprite dom-neut           "CONTROL POINT" 00ffff 000000 0.0
-sprite dom-red            "CONTROL POINT" ff0000 000000 0.0
-sprite dom-blue           "CONTROL POINT" 0000ff 000000 0.0
-sprite dom-yellow         "CONTROL POINT" ffff00 000000 0.0
-sprite dom-pink           "CONTROL POINT" ff00ff 000000 0.0
+sprite dom-neut           "Control point" 00ffff 000000 0.0
+sprite dom-red            "Control point" ff0000 000000 0.0
+sprite dom-blue           "Control point" 0000ff 000000 0.0
+sprite dom-yellow         "Control point" ffff00 000000 0.0
+sprite dom-pink           "Control point" ff00ff 000000 0.0
 
-sprite item-invis         "INVISIBILITY"  0000ff 000000 0.5 0000ff ffff00 0.5
-sprite item-extralife     "EXTRA LIFE"    ff0000 000000 0.5 ff0000 ffff00 0.5
-sprite item-speed         "SPEED"         ff00ff 000000 0.5 ff00ff ffff00 0.5
-sprite item-strength      "STRENGTH"      0000ff 000000 0.5 0000ff ffff00 0.5
-sprite item-shield        "SHIELD"        ff00ff 000000 0.5 ff00ff ffff00 0.5
-sprite item-fuelregen     "FUEL REGEN"    ff8000 000000 0.5 ff8000 ffff00 0.5
-sprite item-jetpack       "JET PACK"      808080 000000 0.5 808080 ffff00 0.5
+sprite item-invis         "Invisibility"  0000ff 000000 0.5 0000ff ffff00 0.5
+sprite item-extralife     "Extra life"    ff0000 000000 0.5 ff0000 ffff00 0.5
+sprite item-speed         "Speed"         ff00ff 000000 0.5 ff00ff ffff00 0.5
+sprite item-strength      "Strength"      0000ff 000000 0.5 0000ff ffff00 0.5
+sprite item-shield        "Shield"        ff00ff 000000 0.5 ff00ff ffff00 0.5
+sprite item-fuelregen     "Fuel regen"    ff8000 000000 0.5 ff8000 ffff00 0.5
+sprite item-jetpack       "Jet Pack"      808080 000000 0.5 808080 ffff00 0.5

Copied: branches/nexuiz-2.0/data/models/sprites/nb-ball.png (from rev 7090, trunk/data/models/sprites/nb-ball.png)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/sprites/nb-ball.sp2 (from rev 7090, trunk/data/models/sprites/nb-ball.sp2)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/sprites/nb-ball.svg (from rev 7090, trunk/data/models/sprites/nb-ball.svg)
===================================================================
--- branches/nexuiz-2.0/data/models/sprites/nb-ball.svg	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/sprites/nb-ball.svg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="512"
+   height="128"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.45"
+   version="1.0"
+   inkscape:export-filename="bluebase.tga"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90"
+   sodipodi:docname="template.svg"
+   sodipodi:docbase="/home/rpolzer/software/games/nexuiz/data/models/sprites"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape"
+   sodipodi:modified="true">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#000000"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="375"
+     inkscape:cy="75.53288"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     width="512px"
+     height="128px"
+     showgrid="true"
+     gridspacingx="8px"
+     gridspacingy="8px"
+     gridempspacing="8"
+     inkscape:grid-points="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="849"
+     inkscape:window-height="590"
+     inkscape:window-x="198"
+     inkscape:window-y="66" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <path
+       style="opacity:1;fill:#e8d8a0;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294119"
+       d="M 256,126 L 280,102 L 264,102 L 264,62 L 248,62 L 248,102 L 232,102 L 256,126 z "
+       id="path1872"
+       sodipodi:nodetypes="cccccccc" />
+    <text
+       xml:space="preserve"
+       style="font-size:56px;font-weight:bold;text-align:center;text-anchor:middle;opacity:1;fill:#e8d8a0;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.75294118"
+       x="255.49414"
+       y="49.957031"
+       id="text1874"><tspan
+         sodipodi:role="line"
+         id="tspan1876"
+         x="255.49414"
+         y="49.957031">BALL</tspan></text>
+  </g>
+</svg>

Copied: branches/nexuiz-2.0/data/models/sprites/nb-ball.tga (from rev 7090, trunk/data/models/sprites/nb-ball.tga)
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-blue_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-blue_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-neut_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-neut_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-red_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-atck-red_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-blue_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-blue_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-red_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/ons-cp-dfnd-red_frame1.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-campingrifle_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-crylink_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-electro_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-gl_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-hagar_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-hlac_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-hookgun_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-laser_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-minstanex_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-nex_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-porto_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-rl_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-seeker_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-shotgun_frame0.tga
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/models/sprites/wpn-uzi_frame0.tga
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/teamfx (from rev 7090, trunk/data/models/teamfx)

Copied: branches/nexuiz-2.0/data/models/vhshield.md3 (from rev 7090, trunk/data/models/vhshield.md3)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_campingrifle.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_campingrifle.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_crylink.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_crylink.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_electro.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_electro.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_gl.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_gl.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_hagar.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_hagar.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_hlac.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_hlac.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_hookgun.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_hookgun.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_laser.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_laser.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_minstanex.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_minstanex.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_nex.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_nex.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_porto.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_porto.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_rl.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_rl.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_seeker.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_seeker.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_shotgun.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_shotgun.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_tuba.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_tuba.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Deleted: branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.animinfo
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.animinfo	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.animinfo	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +0,0 @@
-1 8 20 // fire
-9 5 20 // fire2
-15 200 20 // idle
-215 40 20 // reload

Copied: branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.framegroups (from rev 7090, trunk/data/models/weapons/h_uzi.dpm.framegroups)
===================================================================
--- branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.framegroups	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/weapons/h_uzi.dpm.framegroups	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,4 @@
+1 8 20 0 // fire
+9 5 20 0 // fire2
+15 200 20 1 // idle
+215 40 20 0 // reload

Modified: branches/nexuiz-2.0/data/qcsrc/client/Defs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/Defs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/Defs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -150,6 +150,8 @@
 // Additional OPTIONAL Fields and Globals
 float		intermission;
 float		sb_showscores;
+float		sb_showaccuracy;
+float		sbar_currentammo;
 .string		message;
 .float renderflags;
 // float		coop;

Modified: branches/nexuiz-2.0/data/qcsrc/client/Main.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/Main.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/Main.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -87,6 +87,7 @@
 	registercmd("-button3");
 	registercmd("+button4");
 	registercmd("-button4");
+	registercmd("+showaccuracy");registercmd("-showaccuracy");
 
 #ifndef CAMERATEST
 	if(isdemo())
@@ -331,6 +332,12 @@
 	} else if(strCmd == "-showscores") {
 		sb_showscores = false;
 		return true;
+	} else if(strCmd == "+showaccuracy") {
+		sb_showaccuracy = true;
+		return true;
+	} else if(strCmd == "-showaccuracy") {
+		sb_showaccuracy = false;
+		return true;
 	}
 
 	if(camera_active)
@@ -748,7 +755,7 @@
 	else
 	{
 		serverprevtime = time;
-		serverdeltatime = getstatf(STAT_SYS_TICRATE) * getstatf(STAT_MOVEVARS_TIMESCALE);
+		serverdeltatime = getstatf(STAT_MOVEVARS_TICRATE) * getstatf(STAT_MOVEVARS_TIMESCALE);
 		time = serverprevtime + serverdeltatime;
 	}
 

Modified: branches/nexuiz-2.0/data/qcsrc/client/View.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/View.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/View.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,3 +1,10 @@
+#define spider_rocket_icon "gfx/spiderbot/rocket_ico.tga"
+#define spider_rocket_targ "gfx/spiderbot/target.tga"
+#define SPIDER_CROSS "textures/spiderbot/cross.tga"
+#define rkt_size 32
+#define rld_size_x 256
+#define rld_size_y 16
+
 entity porto;
 vector polyline[16];
 float trace_dphitcontents;
@@ -216,6 +223,7 @@
 
 	switch(activeweapon)
 	{
+		case WEP_TUBA: // no aim
 		case WEP_PORTO: // shoots from eye
 		case WEP_HOOK: // no trueaim
 		case WEP_GRENADE_LAUNCHER: // toss curve
@@ -254,7 +262,7 @@
 	// now move the vecs forward as much as requested if possible
 	tracebox(w_shotorg, mi, ma, w_shotorg + view_forward * (vecs_x + nudge), MOVE_NORMAL, trueaim); // FIXME this MOVE_NORMAL part will misbehave a little in csqc
 	w_shotorg = trace_endpos - view_forward * nudge;
-	
+
 	// now test whether we will actually hit the trueaimpoint...
 	tracebox(w_shotorg, mi, ma, trueaimpoint, MOVE_NOMONSTERS, trueaim);
 
@@ -272,6 +280,7 @@
 float view_set;
 float camera_mode;
 string NextFrameCommand;
+void CSQC_spider_HUD();
 void CSQC_UpdateView(float w, float h)
 {
 	entity e;
@@ -281,7 +290,7 @@
 	dprint_load();
 	WaypointSprite_Load();
 
-	ticrate = getstatf(STAT_SYS_TICRATE) * getstatf(STAT_MOVEVARS_TIMESCALE);
+	ticrate = getstatf(STAT_MOVEVARS_TICRATE) * getstatf(STAT_MOVEVARS_TIMESCALE);
 
 	// Render the Scene
 	if(!intermission || !view_set)
@@ -352,7 +361,9 @@
 	}
 
 	sbar_alpha_fg = cvar("sbar_alpha_fg" );
+	sbar_currentammo = cvar("sbar_showcurrentammo");
 	sbar_hudselector = cvar("sbar_hudselector");
+	sbar_hud_accuracy = cvar("sbar_hud_accuracy");
 	ColorTranslateMode = cvar("cl_stripcolorcodes");
 	activeweapon = getstati(STAT_SWITCHWEAPON);
 	f = cvar("teamplay");
@@ -486,79 +497,96 @@
 		if(spectatee_status > 0 || cvar("cl_showpressedkeys") >= 2)
 			Sbar_DrawPressedKeys();
 	}
-
+	
+	if (cvar("cl_showspeed"))
+		Sbar_ShowSpeed();
+	
 	// draw sbar
- 	if(cvar("r_letterbox") == 0) {
+ 	if(cvar("r_letterbox") == 0)
  		Sbar_DrawCenterPrint(); // draw centerprint messages even if viewsize >= 120
- 		
- 		if(cvar("viewsize") < 120)
- 			CSQC_common_hud();
- 	}
 
-	// crosshair goes VERY LAST
-	if(!scoreboard_active && !ons_showmap && !camera_active) {
-		// TrueAim check
-		float goodshot;
+    float hud;
+    hud = getstati(STAT_HUD);
+    if(hud == HUD_SPIDEBOT)
+    {
+        vector sz;
+        CSQC_spider_HUD();
+        sz = drawgetimagesize(SPIDER_CROSS);
+        sz_x *= cvar_or("cl_vehicle_spiderbot_cross_size",1);
+        sz_y *= cvar_or("cl_vehicle_spiderbot_cross_size",1);
+        drawpic('0.5 0 0' * (vid_conwidth - sz_x) + '0 0.5 0' * (vid_conheight - sz_y), SPIDER_CROSS, sz, '1 1 1', cvar_or("cl_vehicle_spiderbot_cross_alpha",0.6), DRAWFLAG_NORMAL);
+    }
+    else
+    {
+        if(cvar("r_letterbox") == 0)
+            if(cvar("viewsize") < 120)
+                CSQC_common_hud();
 
-		if(cvar("crosshair_hittest"))
-			goodshot = TrueAimCheck();
-		else
-			goodshot = TRUE;
+        // crosshair goes VERY LAST
+        if(!scoreboard_active && !ons_showmap && !camera_active) {
+            // TrueAim check
+            float goodshot;
 
-		string wcross_style;
-		wcross_style = cvar_string("crosshair");
+            if(cvar("crosshair_hittest"))
+                goodshot = TrueAimCheck();
+            else
+                goodshot = TRUE;
 
-		if (wcross_style != "0") {
-			vector wcross_color, wcross_size;
-			string wcross_wep, wcross_name;
-			float wcross_alpha, wcross_sizefloat;
+            string wcross_style;
+            wcross_style = cvar_string("crosshair");
 
-			wcross_color_x = cvar("crosshair_color_red");
-			wcross_color_y = cvar("crosshair_color_green");
-			wcross_color_z = cvar("crosshair_color_blue");
-			wcross_alpha = cvar("crosshair_color_alpha");
-			wcross_sizefloat = cvar("crosshair_size");
-			if (cvar("crosshair_per_weapon")) {
-				e = get_weaponinfo(activeweapon);
-				if (e && e.netname != "")
-				{
-					wcross_wep = e.netname;
-					wcross_style = cvar_string(strcat("crosshair_", wcross_wep));
-					if(wcross_style == "")
-						wcross_style = e.netname;
+            if (wcross_style != "0") {
+                vector wcross_color, wcross_size;
+                string wcross_wep, wcross_name;
+                float wcross_alpha, wcross_sizefloat;
 
-					if(!cvar("crosshair_color_override"))
-					{
-						wcross_color_x = cvar(strcat("crosshair_", wcross_wep, "_color_red"));
-						wcross_color_y = cvar(strcat("crosshair_", wcross_wep, "_color_green"));
-						wcross_color_z = cvar(strcat("crosshair_", wcross_wep, "_color_blue"));
-					}
+                wcross_color_x = cvar("crosshair_color_red");
+                wcross_color_y = cvar("crosshair_color_green");
+                wcross_color_z = cvar("crosshair_color_blue");
+                wcross_alpha = cvar("crosshair_color_alpha");
+                wcross_sizefloat = cvar("crosshair_size");
+                if (cvar("crosshair_per_weapon")) {
+                    e = get_weaponinfo(activeweapon);
+                    if (e && e.netname != "")
+                    {
+                        wcross_wep = e.netname;
+                        wcross_style = cvar_string(strcat("crosshair_", wcross_wep));
+                        if(wcross_style == "")
+                            wcross_style = e.netname;
 
-					wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha"));
-					wcross_sizefloat *= cvar(strcat("crosshair_", wcross_wep, "_size"));
-				}
-			}
+                        if(!cvar("crosshair_color_override"))
+                        {
+                            wcross_color_x = cvar(strcat("crosshair_", wcross_wep, "_color_red"));
+                            wcross_color_y = cvar(strcat("crosshair_", wcross_wep, "_color_green"));
+                            wcross_color_z = cvar(strcat("crosshair_", wcross_wep, "_color_blue"));
+                        }
 
-			wcross_name = strcat("gfx/crosshair", wcross_style);
+                        wcross_alpha *= cvar(strcat("crosshair_", wcross_wep, "_color_alpha"));
+                        wcross_sizefloat *= cvar(strcat("crosshair_", wcross_wep, "_size"));
+                    }
+                }
 
-			wcross_size = drawgetimagesize(wcross_name);
-			wcross_size_x *= wcross_sizefloat;
-			wcross_size_y *= wcross_sizefloat;
+                wcross_name = strcat("gfx/crosshair", wcross_style);
 
-			if(goodshot)
-			{
-				drawpic('0.5 0 0' * (vid_conwidth - wcross_size_x) + '0 0.5 0' * (vid_conheight - wcross_size_y), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
-			}
-			else
-			{
-				wcross_alpha *= 0.04 * 0.75;
-				for(i = -2; i <= 2; ++i)
-					for(j = -2; j <= 2; ++j)
-						drawpic('0.5 0 0' * (vid_conwidth - wcross_size_x + i) + '0 0.5 0' * (vid_conheight - wcross_size_y + j), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
-			}
-		}
-	}
+                wcross_size = drawgetimagesize(wcross_name);
+                wcross_size_x *= wcross_sizefloat;
+                wcross_size_y *= wcross_sizefloat;
 
+                if(goodshot)
+                {
+                    drawpic('0.5 0 0' * (vid_conwidth - wcross_size_x) + '0 0.5 0' * (vid_conheight - wcross_size_y), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
+                }
+                else
+                {
+                    wcross_alpha *= 0.04 * 0.75;
+                    for(i = -2; i <= 2; ++i)
+                        for(j = -2; j <= 2; ++j)
+                            drawpic('0.5 0 0' * (vid_conwidth - wcross_size_x + i) + '0 0.5 0' * (vid_conheight - wcross_size_y + j), wcross_name, wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL);
+                }
+            }
+        }
+    }
+
 	if(NextFrameCommand)
 	{
 		localcmd("\n", NextFrameCommand, "\n");
@@ -567,12 +595,88 @@
 }
 
 void Sbar_Draw();
+void CSQC_spider_HUD()
+{
+    float rockets,reload,heat,hp,shield,i;
+    vector p,pp;
+
+    rockets = getstati(STAT_SPIDERBOT_ROCKETS);
+    heat    = min(getstatf(STAT_SPIDERBOT_HEAT),1);
+    reload  = min(getstatf(STAT_SPIDERBOT_RELOAD),1);
+    hp      = min(getstatf(STAT_SPIDERBOT_HEALTH),1);
+    shield  = min(getstatf(STAT_SPIDERBOT_SHIELD),1);
+
+    // Draw health bar
+    p = '0.5 0 0' * (vid_conwidth - (rkt_size * 8));
+    p = p + '0 1 0' * vid_conheight - '0 32 0';
+    //pp = ('0 1 0' * hp) + ('1 0 0' * (1-hp));
+    drawfill(p, '256 0 0' * shield + '0 8 0' , '0.5 0.5 1', 0.75, DRAWFLAG_NORMAL);
+    p_y += 8;
+    drawfill(p, '256 0 0' * hp + '0 8 0' , '0 1 0', 0.75, DRAWFLAG_NORMAL);
+    p_x += 256 * hp;
+    drawfill(p, '256 0 0' * (1-hp) + '0 8 0' , '0 0 0', 0.75, DRAWFLAG_NORMAL);
+
+    // Draw minigun heat indicator
+    p = '0.5 0 0' * (vid_conwidth - 256);
+    p = p + '0 1 0' * vid_conheight - '0 34  0';
+    drawfill(p, '256 0 0' * (1-heat) + '0 2 0' ,'0 0 1', 0.5, DRAWFLAG_NORMAL);
+    p_x += 256 * (1-heat);
+    drawfill(p, '256 0 0' * heat  + '0 2 0' , '1 0 0', 0.5, DRAWFLAG_NORMAL);
+
+    // Draw rocket icons for loaded/empty tubes.
+    pp = '0.5 0 0' * (vid_conwidth - (rkt_size * 8));
+    pp += '0 1 0' * vid_conheight - '0 64 0';
+    for(i = 0; i < 8; ++i)
+    {
+        p = pp + '1 0 0' * (rkt_size * i);
+        if(rockets == 8)
+        {
+            if(floor(reload * 8) == i)
+            {
+                drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '1 0 0' + '0 1 0' * ((reload*8)-i), 0.75 , DRAWFLAG_NORMAL);
+            }
+            else if(i < reload * 8)
+                drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '1 1 0', 0.75 , DRAWFLAG_NORMAL);
+            else
+                drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '0.5 0.5 0.5', 0.75, DRAWFLAG_NORMAL);
+        }
+        else
+        {
+            if(i < rockets)
+                drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '0 0 0', 0.25, DRAWFLAG_NORMAL);
+            else
+                drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '0 1 0' * reload, 0.75, DRAWFLAG_NORMAL);
+        }
+    }
+
+	if (sb_showscores)
+	{
+		Sbar_DrawScoreboard();
+		Sbar_DrawCenterPrint();
+	}
+
+}
 void CSQC_common_hud(void)
 {
+
 	// Sbar_SortFrags(); done in Sbar_Draw
-	Sbar_Draw();
+    float hud;
+    hud = getstati(STAT_HUD);
+
+    //hud = 10;
+    switch(hud)
+    {
+        case HUD_NORMAL:
+            Sbar_Draw();
+            break;
+
+        case HUD_SPIDEBOT:
+            CSQC_spider_HUD();
+            break;
+    }
 }
 
+
 // following vectors must be global to allow seamless switching between camera modes
 vector camera_offset, current_camera_offset, mouse_angles, current_angles, current_origin, current_position;
 void CSQC_Demo_Camera()

Modified: branches/nexuiz-2.0/data/qcsrc/client/casings.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/casings.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/casings.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,12 +1,13 @@
-float  casecount;
-entity caselist;
-
-void Casing_Delete()
-{
-    --casecount;
-    remove(self);
-}
-
+float  casecount;
+entity caselist;
+.float silent;
+
+void Casing_Delete()
+{
+    --casecount;
+    remove(self);
+}
+
 void Casing_Draw()
 {
 	if(self.move_flags & FL_ONGROUND)
@@ -35,6 +36,7 @@
 		return;
 	}
 
+	if(!self.silent)
 	if(!trace_ent || trace_ent.solid == SOLID_BSP)
 	{
 		if(vlen(self.velocity) > 50)
@@ -74,16 +76,18 @@
 void Ent_Casing()
 {
 	entity casing;
-
-	if not(caselist)
-        caselist = spawn();
 
-	casing = RubbleNew(caselist);
-	++casecount;
-	if(casecount >= cvar_or("cl_casings_maxcount",100))
-        RubbleDrop(caselist,Casing_Delete);
+	if not(caselist)
+        caselist = spawn();
 
+	casing = RubbleNew(caselist);
+	++casecount;
+	if(casecount >= cvar_or("cl_casings_maxcount",100))
+        RubbleDrop(caselist,Casing_Delete);
+
 	casing.state = ReadByte();
+	casing.silent = (casing.state & 0x80);
+	casing.state = (casing.state & 0x7F);
 	casing.origin_x = ReadCoord();
 	casing.origin_y = ReadCoord();
 	casing.origin_z = ReadCoord();
@@ -117,8 +121,8 @@
 		}
 
 		setsize(casing, '0 0 -1', '0 0 -1');
-	}
-    else
+	}
+    else
         Casing_Delete();
 }
 

Modified: branches/nexuiz-2.0/data/qcsrc/client/csqc_constants.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/csqc_constants.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/csqc_constants.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -58,6 +58,7 @@
 const float		STAT_MONSTERS					= 14;
 const float		STAT_ITEMS						= 15;
 const float		STAT_VIEWHEIGHT					= 16;
+const float		STAT_MOVEVARS_TICRATE           = 240;
 const float		STAT_MOVEVARS_TIMESCALE         = 241;
 const float		STAT_FRAGLIMIT					= 235;
 const float		STAT_TIMELIMIT					= 236;

Modified: branches/nexuiz-2.0/data/qcsrc/client/damage.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/damage.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/damage.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,12 +1,19 @@
+.float silent;
+
 void Ent_DamageInfo()
 {
 	float hittype, dmg, rad, edge, thisdmg, forcemul;
+	float issilent;
 	vector force, org, thisforce;
 	entity oldself;
 
 	oldself = self;
 
 	hittype = ReadShort();
+
+	issilent = (hittype & 0x8000);
+	hittype = (hittype & 0x7FFF);
+
 	org_x = ReadCoord();
 	org_y = ReadCoord();
 	org_z = ReadCoord();
@@ -59,6 +66,9 @@
 				//print("pushed ", ftos(num_for_edict(self)), " loose\n");
 			}
 
+		if(issilent)
+			self.silent = 1;
+
 		if(self.event_damage)
 			self.event_damage(thisdmg, hittype, org, thisforce);
 	}
@@ -92,39 +102,46 @@
 			case WEP_LASER:
 				org2 = org + backoff * 6;
 				pointparticles(particleeffectnum("laser_impact"), org2, backoff * 1000, 1);
-				sound (self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_SHOTGUN:
 				org2 = org + backoff * 2;
 				pointparticles(particleeffectnum("shotgun_impact"), org2, backoff * 1000, 1);
-				if(r < 0.05)
-					sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
-				else if(r < 0.1)
-					sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
-				else if(r < 0.2)
-					sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+				{
+					if(r < 0.05)
+						sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
+					else if(r < 0.1)
+						sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
+					else if(r < 0.2)
+						sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+				}
 				break;
 			case WEP_UZI:
 				org2 = org + backoff * 2;
 				pointparticles(particleeffectnum("machinegun_impact"), org2, backoff * 1000, 1);
-				if(r < 0.05)
-					sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
-				else if(r < 0.1)
-					sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
-				else if(r < 0.2)
-					sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					if(r < 0.05)
+						sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
+					else if(r < 0.1)
+						sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
+					else if(r < 0.2)
+						sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_GRENADE_LAUNCHER:
 				org2 = org + backoff * 12;
 				pointparticles(particleeffectnum("grenade_explode"), org2, '0 0 0', 1);
-				sound (self, CHAN_PROJECTILE, "weapons/grenade_impact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/grenade_impact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_ELECTRO:
 				org2 = org + backoff * 6;
 				if(secondary)
 				{
 					pointparticles(particleeffectnum("electro_ballexplode"), org2, '0 0 0', 1);
-					sound (self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
+					if(!issilent)
+						sound(self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
 				}
 				else
 				{
@@ -132,12 +149,14 @@
 					{
 						// this is sent as "primary bounce" to distinguish it from secondary bounced balls
 						pointparticles(particleeffectnum("electro_combo"), org2, '0 0 0', 1);
-						sound (self, CHAN_PROJECTILE, "weapons/electro_impact_combo.wav", VOL_BASE, ATTN_NORM);
+						if(!issilent)
+							sound(self, CHAN_PROJECTILE, "weapons/electro_impact_combo.wav", VOL_BASE, ATTN_NORM);
 					}
 					else
 					{
 						pointparticles(particleeffectnum("electro_impact"), org2, '0 0 0', 1);
-						sound (self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
+						if(!issilent)
+							sound(self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
 					}
 				}
 				break;
@@ -146,33 +165,40 @@
 				if(secondary)
 				{
 					pointparticles(particleeffectnum("crylink_impact"), org2, '0 0 0', 1);
-					sound (self, CHAN_PROJECTILE, "weapons/crylink_impact2.wav", VOL_BASE, ATTN_NORM);
+					if(!issilent)
+						sound(self, CHAN_PROJECTILE, "weapons/crylink_impact2.wav", VOL_BASE, ATTN_NORM);
 				}
 				else
 				{
 					pointparticles(particleeffectnum("crylink_impactbig"), org2, '0 0 0', 1);
-					sound (self, CHAN_PROJECTILE, "weapons/crylink_impact.wav", VOL_BASE, ATTN_NORM);
+					if(!issilent)
+						sound(self, CHAN_PROJECTILE, "weapons/crylink_impact.wav", VOL_BASE, ATTN_NORM);
 				}
 				break;
 			case WEP_NEX:
 				org2 = org + backoff * 6;
 				pointparticles(particleeffectnum("nex_impact"), org2, '0 0 0', 1);
-				sound(self, CHAN_PROJECTILE, "weapons/neximpact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/neximpact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_HAGAR:
 				org2 = org + backoff * 6;
 				pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
-				if (r<0.15)
-					sound (self, CHAN_PROJECTILE, "weapons/hagexp1.wav", VOL_BASE, ATTN_NORM);
-				else if (r<0.7)
-					sound (self, CHAN_PROJECTILE, "weapons/hagexp2.wav", VOL_BASE, ATTN_NORM);
-				else
-					sound (self, CHAN_PROJECTILE, "weapons/hagexp3.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+				{
+					if (r<0.15)
+						sound(self, CHAN_PROJECTILE, "weapons/hagexp1.wav", VOL_BASE, ATTN_NORM);
+					else if (r<0.7)
+						sound(self, CHAN_PROJECTILE, "weapons/hagexp2.wav", VOL_BASE, ATTN_NORM);
+					else
+						sound(self, CHAN_PROJECTILE, "weapons/hagexp3.wav", VOL_BASE, ATTN_NORM);
+				}
 				break;
 			case WEP_ROCKET_LAUNCHER:
 				org2 = org + backoff * 12;
 				pointparticles(particleeffectnum("rocket_explode"), org2, '0 0 0', 1);
-				sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_PORTO:
 				print("Since when does Porto send DamageInfo?\n");
@@ -180,68 +206,86 @@
 			case WEP_MINSTANEX:
 				org2 = org + backoff * 6;
 				pointparticles(particleeffectnum("nex_impact"), org2, '0 0 0', 1);
-				sound(self, CHAN_PROJECTILE, "weapons/neximpact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/neximpact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_HOOK:
 				org2 = org + backoff * 2;
 				pointparticles(particleeffectnum("hookbomb_explode"), org2, '0 0 0', 1);
-				sound (self, CHAN_PROJECTILE, "weapons/hookbomb_impact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/hookbomb_impact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_SEEKER:
 				org2 = org + backoff * 6;
 				if(secondary)
 				{
 					pointparticles(particleeffectnum("flac_explode"), org2, '0 0 0', 1);
-					if (r<0.15)
-						sound (self, CHAN_PROJECTILE, "weapons/flacexp1.wav", 1, ATTN_NORM);
-					else if (r<0.7)
-						sound (self, CHAN_PROJECTILE, "weapons/flacexp2.wav", 1, ATTN_NORM);
-					else
-						sound (self, CHAN_PROJECTILE, "weapons/flacexp3.wav", 1, ATTN_NORM);
+					if(!issilent)
+					{
+						if (r<0.15)
+							sound(self, CHAN_PROJECTILE, "weapons/flacexp1.wav", 1, ATTN_NORM);
+						else if (r<0.7)
+							sound(self, CHAN_PROJECTILE, "weapons/flacexp2.wav", 1, ATTN_NORM);
+						else
+							sound(self, CHAN_PROJECTILE, "weapons/flacexp3.wav", 1, ATTN_NORM);
+					}
 				}
 				else
 				{
 					if(bounce)
 					{
 						pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
-						if (r<0.15)
-							sound (self, CHAN_PROJECTILE, "weapons/tagexp1.wav", 1, ATTN_NORM);
-						else if (r<0.7)
-							sound (self, CHAN_PROJECTILE, "weapons/tagexp2.wav", 1, ATTN_NORM);
-						else
-							sound (self, CHAN_PROJECTILE, "weapons/tagexp3.wav", 1, ATTN_NORM);
+						if(!issilent)
+						{
+							if (r<0.15)
+								sound(self, CHAN_PROJECTILE, "weapons/tagexp1.wav", 1, ATTN_NORM);
+							else if (r<0.7)
+								sound(self, CHAN_PROJECTILE, "weapons/tagexp2.wav", 1, ATTN_NORM);
+							else
+								sound(self, CHAN_PROJECTILE, "weapons/tagexp3.wav", 1, ATTN_NORM);
+						}
 					}
 					else if(headshot)
 					{
-						sound (self, CHAN_PROJECTILE, "weapons/tag_impact.wav", 1, ATTN_NORM);
+						if(!issilent)
+							sound(self, CHAN_PROJECTILE, "weapons/tag_impact.wav", 1, ATTN_NORM);
 					}
 					else
 					{
 						pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
-						if (r<0.15)
-							sound (self, CHAN_PROJECTILE, "weapons/seekerexp1.wav", 1, ATTN_NORM);
-						else if (r<0.7)
-							sound (self, CHAN_PROJECTILE, "weapons/seekerexp2.wav", 1, ATTN_NORM);
-						else
-							sound (self, CHAN_PROJECTILE, "weapons/seekerexp3.wav", 1, ATTN_NORM);
+						if(!issilent)
+						{
+							if (r<0.15)
+								sound(self, CHAN_PROJECTILE, "weapons/seekerexp1.wav", 1, ATTN_NORM);
+							else if (r<0.7)
+								sound(self, CHAN_PROJECTILE, "weapons/seekerexp2.wav", 1, ATTN_NORM);
+							else
+								sound(self, CHAN_PROJECTILE, "weapons/seekerexp3.wav", 1, ATTN_NORM);
+						}
 					}
 				}
 				break;
 			case WEP_HLAC:
 				org2 = org + backoff * 6;
 				pointparticles(particleeffectnum("laser_impact"), org2, backoff * 1000, 1);
-				sound (self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+					sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
 				break;
 			case WEP_CAMPINGRIFLE:
 				org2 = org + backoff * 2;
 				pointparticles(particleeffectnum("machinegun_impact"), org2, backoff * 1000, 1);
-				if(r < 0.2)
-					sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
-				else if(r < 0.4)
-					sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
-				else if(r < 0.5)
-					sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+				if(!issilent)
+				{
+					if(r < 0.2)
+						sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
+					else if(r < 0.4)
+						sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
+					else if(r < 0.5)
+						sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+				}
 				break;
+			case WEP_TUBA:
+				break;
 			default:
 				dprint("Unhandled damage of weapon ", ftos(hitwep), "\n");
 				break;
@@ -265,9 +309,9 @@
 	precache_sound("weapons/hookbomb_impact.wav");
 	precache_sound("weapons/laserimpact.wav");
 	precache_sound("weapons/neximpact.wav");
-	precache_sound ("weapons/ric1.wav");
-	precache_sound ("weapons/ric2.wav");
-	precache_sound ("weapons/ric3.wav");
+	precache_sound("weapons/ric1.wav");
+	precache_sound("weapons/ric2.wav");
+	precache_sound("weapons/ric3.wav");
 	precache_sound("weapons/rocket_impact.wav");
 	precache_sound("weapons/seekerexp1.wav");
 	precache_sound("weapons/seekerexp2.wav");

Modified: branches/nexuiz-2.0/data/qcsrc/client/gibs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/gibs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/gibs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,12 +1,13 @@
-float  gibcount;
-entity giblist;
-
-void Gib_Delete()
-{
-    --gibcount;
-    remove(self);
-}
-
+float  gibcount;
+entity giblist;
+.float silent;
+
+void Gib_Delete()
+{
+    --gibcount;
+    remove(self);
+}
+
 string species_prefix(float specnum)
 {
 	switch(specnum)
@@ -45,7 +46,8 @@
 		return;
 	}
 
-	sound(self, CHAN_PAIN, strcat("misc/gib_splat0", ftos(floor(prandom() * 4 + 1)), ".wav"), VOL_BASE, ATTN_NORM);
+	if(!self.silent)
+		sound(self, CHAN_PAIN, strcat("misc/gib_splat0", ftos(floor(prandom() * 4 + 1)), ".wav"), VOL_BASE, ATTN_NORM);
 	pointparticles(particleeffectnum(strcat(species_prefix(self.cnt), "blood")), self.origin + '0 0 1', '0 0 30', 10);
 
 	Gib_Delete();
@@ -74,26 +76,27 @@
 		R_AddEntity(self);
 }
 
-void TossGib (string mdlname, vector org, vector vconst, vector vrand, float specnum, float destroyontouch)
+void TossGib (string mdlname, vector org, vector vconst, vector vrand, float specnum, float destroyontouch, float issilent)
 {
 	entity gib;
 
-	if not(giblist)
-        giblist = spawn();
-
-	// TODO remove some gibs according to cl_nogibs
-	gib = RubbleNew(giblist);
-	++gibcount;
-	if(gibcount >= cvar_or("cl_gibs_maxcount",100))
-        RubbleDrop(giblist,Gib_Delete);
+	if not(giblist)
+        giblist = spawn();
 
-	//gib = spawn();
+	// TODO remove some gibs according to cl_nogibs
+	gib = RubbleNew(giblist);
+	++gibcount;
+	if(gibcount >= cvar_or("cl_gibs_maxcount",100))
+        RubbleDrop(giblist,Gib_Delete);
 
+	//gib = spawn();
+
 	gib.classname = "gib";
 	gib.move_movetype = MOVETYPE_BOUNCE;
 	gib.gravity = 1;
 	gib.solid = SOLID_CORPSE;
 	gib.cnt = specnum;
+	gib.silent = issilent;
 
 	setmodel (gib, mdlname); // precision set above
 	gib.skin = specnum;
@@ -120,6 +123,7 @@
 	float amount, type, specnum;
 	vector org, vel;
 	string specstr;
+	float issilent;
 
 	float c, gibfactor, randomvalue;
 
@@ -144,47 +148,49 @@
 
 	self.origin = org; // for the sounds
 
-	specnum = (type & 0x78) / 8; // blood/gibmodel type: using four bits (0..15, bit indexes 3,4,5,6)
+	specnum = (type & 0x78) / 8; // blood/gibmodel type: using four bits (0..7, bit indexes 3,4,5)
+	issilent = (type & 0x40);
 	type = type & 0x87; // remove the species bits: bit 7 = gentle, bit 0,1,2 = kind of gib
 	specstr = species_prefix(specnum);
 
 	switch(type)
 	{
 		case 0x01:
-			sound (self, CHAN_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM);
+			if(!issilent)
+				sound (self, CHAN_PAIN, "misc/gib.wav", VOL_BASE, ATTN_NORM);
 
 			if(prandom() < amount)
-				TossGib ("models/gibs/eye.md3", org, vel, prandomvec() * 150, specnum, 0);
+				TossGib ("models/gibs/eye.md3", org, vel, prandomvec() * 150, specnum, 0, issilent);
 			new_te_bloodshower(particleeffectnum(strcat(specstr, "bloodshower")), org, 1200, amount);
 			if(prandom() < amount)
-				TossGib ("models/gibs/bloodyskull.md3", org, vel, prandomvec() * 100, specnum, 0);
+				TossGib ("models/gibs/bloodyskull.md3", org, vel, prandomvec() * 100, specnum, 0, issilent);
 
 			for(c = 0; c < amount; ++c)
 			{
 				randomvalue = amount - c;
 
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/arm.md3", org, vel, prandomvec() * (prandom() * 120 + 90), specnum,0);
+					TossGib ("models/gibs/arm.md3", org, vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/arm.md3", org, vel, prandomvec() * (prandom() * 120 + 90), specnum,0);
+					TossGib ("models/gibs/arm.md3", org, vel, prandomvec() * (prandom() * 120 + 90), specnum,0, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/chest.md3", org + '0 0 -12', vel, prandomvec() * (prandom() * 120 + 80), specnum,0);
+					TossGib ("models/gibs/chest.md3", org + '0 0 -12', vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/smallchest.md3", org, vel, prandomvec() * (prandom() * 120 + 80), specnum,0);
+					TossGib ("models/gibs/smallchest.md3", org, vel, prandomvec() * (prandom() * 120 + 80), specnum,0, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/leg1.md3", org + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0);
+					TossGib ("models/gibs/leg1.md3", org + '0 0 -5', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/leg2.md3", org + '0 0 -9', vel, prandomvec() * (prandom() * 120 + 85), specnum,0);
+					TossGib ("models/gibs/leg2.md3", org + '0 0 -9', vel, prandomvec() * (prandom() * 120 + 85), specnum,0, issilent);
 
 				// these splat on impact
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1);
+					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1);
+					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1);
+					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1, issilent);
 				if(prandom() < randomvalue)
-					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1);
+					TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * 450, specnum,1, issilent);
 			}
 			break;
 		case 0x02:
@@ -192,7 +198,7 @@
 			break;
 		case 0x03:
 			if(prandom() < amount)
-				TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1); // TODO maybe adjust to more randomization?
+				TossGib ("models/gibs/chunk.mdl", org, vel, prandomvec() * (prandom() * 30 + 20), specnum, 1, issilent); // TODO maybe adjust to more randomization?
 			break;
 		case 0x81:
 			pointparticles(particleeffectnum("damage_dissolve"), org, vel, amount);

Modified: branches/nexuiz-2.0/data/qcsrc/client/projectile.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/projectile.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/projectile.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -15,6 +15,7 @@
 .float cnt; // sound index
 .float gravity;
 .float snd_looping;
+.float silent;
 
 void Projectile_DrawTrail(vector to)
 {
@@ -166,6 +167,9 @@
 
 void loopsound(entity e, float ch, string samp, float vol, float attn)
 {
+	if(self.silent)
+		return;
+
 	sound(e, ch, samp, vol, attn);
 	e.snd_looping = 1;
 }
@@ -250,6 +254,9 @@
 	{
 		self.cnt = ReadByte();
 
+		self.silent = (self.cnt & 0x80);
+		self.cnt = (self.cnt & 0x7F);
+
 		self.scale = 1;
 		switch(self.cnt)
 		{

Modified: branches/nexuiz-2.0/data/qcsrc/client/sbar.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/sbar.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/sbar.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,3 +1,12 @@
+void drawstringright(vector, string, vector, vector, float, float);
+void drawstringcenter(vector, string, vector, vector, float, float);
+void Sbar_DrawAccuracyStats();
+void Sbar_DrawAccuracyStats_Description_Splash(vector);
+void Sbar_DrawAccuracyStats_Description_Hitscan(vector);
+float weapon_hits[WEP_COUNT];
+float weapon_fired[WEP_COUNT];
+float weapon_number;
+
 float last_weapon;
 float weapontime;
 
@@ -4,6 +13,7 @@
 float sbar_alpha_fg;
 float sbar_alpha_bg;
 float sbar_hudselector;
+float sbar_hud_accuracy;
 
 float ps_primary, ps_secondary;
 float ts_primary, ts_secondary;
@@ -21,9 +31,9 @@
 	pos_x = (vid_conwidth - 1)/2;
 	pos_y = 16;
 	pos_z = 0;*/
-	
+
 	//drawpic(pos, "gfx/finale", '0 0 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
-	
+
 	//drawstring(pos, "END", sbar_fontsize, '1 1 1', 1, DRAWFLAG_NORMAL);
 	MapVote_Draw();
 }
@@ -47,17 +57,19 @@
 		}
 	}
 }
-void Sbar_DrawWeapon(float nr, float fade, float active)
+void Sbar_DrawWeapon(float nr, float fade, float active, float wc)
 {
-	vector pos, vsize;
-	float value, idx, imp, sp;
+	vector pos, vsize, fill_colour;
+	float value, idx, imp, sp, weapon_hit, weapon_damage, weapon_stats;
 
 	imp = weaponimpulse[nr];
+	weapon_hit = weapon_hits[wc];
+ 	weapon_damage = weapon_fired[wc];
 	if(imp == 0)
 		idx = 9;
 	else
 		idx = imp - 1;
-	
+
 	value = (active) ? 1 : 0.6;
 	color_x = color_y = color_z = value;
 
@@ -66,7 +78,7 @@
 
 	sp = weaponspace[idx] + 1;
 	weaponspace[idx] = sp;
-	
+
 	pos_x = (vid_conwidth + 10 - w_width * 9) * 0.5 + w_width * idx;
 	pos_y = (vid_conheight - w_height * sp) - 38; // move 38 pixels up
 	pos_z = 0;
@@ -82,6 +94,15 @@
 	vsize_y = font_size;
 	vsize_z = 0;
 	drawstring(pos, ftos(imp), vsize, '1 1 1', sbar_alpha_fg, 0);
+
+	// draw the weapon accuracy on the HUD
+	if(sbar_hud_accuracy)
+ 	{
+ 		weapon_stats = rint(100*weapon_hit/weapon_damage);
+ 		fill_colour_x = 1 - 0.015 * weapon_stats;
+ 		fill_colour_y = 1 - 0.015 * (100 - weapon_stats);
+ 		drawstringright(pos + '22 0 0', strcat(ftos(weapon_stats),"%"), '6 6 0', fill_colour, sbar_alpha_fg, 0);
+ 	}
 }
 
 void Sbar_DrawXNum (vector pos, float num, float digits, float lettersize, vector rgb, float highlighted, float a, float dflags)
@@ -101,7 +122,7 @@
 		pos_x -= lettersize;
 	} else
 		minus = false;
-	
+
 	if(digits < 0)
 	{
 		tmp = ftos(num);
@@ -109,10 +130,10 @@
 		str = strcat(substring("0000000000", 0, digits - strlen(tmp)), tmp);
 	} else
 		str = ftos(num);
-	
+
 	l = strlen(str);
 	l_length = ftos(l);
-	
+
 	if(l > digits)
 	{
 		str = substring(str, l-digits, 999);
@@ -127,21 +148,21 @@
 		hl_size_z = 0;
 		if(minus)
 			hl_size_x = hl_size_x + vsize_x;
-		
+
 		vector hl_pos;
 		hl_pos_x = pos_x - lettersize/10;
 		hl_pos_y = pos_y - lettersize/30;
 		hl_pos_z = 0;
-		
+
 		drawpic(hl_pos, strcat("gfx/hud/sb_highlight_", l_length), hl_size, '1 1 1', sbar_alpha_fg, dflags);
 	}
-	
+
 	if(minus)
 	{
 		drawpic(pos, "gfx/hud/num_minus", vsize, rgb, a * sbar_alpha_fg, dflags);
 		pos_x += lettersize;
 	}
-	
+
 	for(i = 0; i < l; ++i)
 	{
 		drawpic(pos, strcat("gfx/hud/num_", substring(str, i, 1)), vsize, rgb, a * sbar_alpha_fg, dflags);
@@ -149,40 +170,40 @@
 	}
 }
 
-void Sbar_DrawXNum_Colored (vector pos, float x, float lettersize)
+void Sbar_DrawXNum_Colored (vector pos, float x, float lettersize, float alpha)
 {
 	if(x > 200) {
 		color_x = 0;
 		color_y = 1;
 		color_z = 0;
-		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, 1, 0);
+		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, alpha, 0);
 	}
 	else if(x > 150) {
 		color_x = 0.4 - ((x-150)*0.02 * 0.4); //red value between 0.4 -> 0
 		color_y = 0.9 + ((x-150)*0.02 * 0.1); // green value between 0.9 -> 1
 		color_z = 0;
-		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, 1, 0);
+		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, alpha, 0);
 	}
 	else if(x > 100) {
 		color_x = 0.6 - ((x-100)*0.02 * 0.2); //red value between 0.6 -> 0.4
 		color_y = 0.7 + ((x-100)*0.02 * 0.2); // green value between 0.7 -> 0.9
 		color_z = 0.8 - ((x-100)*0.02 * 0.8); // blue value between 0.8 -> 0
-		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, 1, 0);
+		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, alpha, 0);
 	}
 	else if(x > 50) {
 		color_x = 1 - ((x-50)*0.02 * 0.4); //red value between 1 -> 0.6
 		color_y = 1 - ((x-50)*0.02 * 0.3); // green value between 1 -> 0.7
 		color_z = 0.2 + ((x-50)*0.02 * 0.6); // blue value between 0.2 -> 0.8
-		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, 1, 0);
+		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, alpha, 0);
 	}
 	else if(x > 20) {
 		color_x = 1;
 		color_y = (x-20)*90/27/100; // green value between 0 -> 1
 		color_z = (x-20)*90/27/100 * 0.2; // blue value between 0 -> 0.2
-		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, 1, 0);
+		Sbar_DrawXNum(pos, x, 3, lettersize, color, 0, alpha, 0);
 	}
 	else
-		Sbar_DrawXNum(pos, x, 3, lettersize, '1 0 0', 0, 1, 0);
+		Sbar_DrawXNum(pos, x, 3, lettersize, '1 0 0', 0, alpha, 0);
 }
 
 void Cmd_Sbar_SetFields(float argc);
@@ -201,7 +222,7 @@
 	}
 	if(ps_secondary == -1)
 		ps_secondary = ps_primary;
-	
+
 	for(i = 0; i < MAX_TEAMSCORE; ++i)
 	{
 		f = (teamscores_flags[i] & SFL_SORT_PRIO_MASK);
@@ -257,7 +278,7 @@
 		vl = COLOR_SPECTATOR;
 	if(!right.gotscores)
 		vr = COLOR_SPECTATOR;
-	
+
 	if(vl > vr)
 		return true;
 	if(vl < vr)
@@ -285,7 +306,7 @@
 		return IS_INCREASING(scores_flags[ps_primary]);
 	if(vl < vr)
 		return IS_DECREASING(scores_flags[ps_primary]);
-	
+
 	vl = left.scores[ps_secondary];
 	vr = right.scores[ps_secondary];
 	if(scores_flags[ps_secondary] & SFL_ZERO_IS_WORST)
@@ -299,7 +320,7 @@
 		return IS_INCREASING(scores_flags[ps_secondary]);
 	if(vl < vr)
 		return IS_DECREASING(scores_flags[ps_secondary]);
-	
+
 	return false;
 }
 
@@ -323,14 +344,14 @@
 		return 1;
 	if(right.team == COLOR_SPECTATOR)
 		return 0;
-	
+
 	vl = left.teamscores[ts_primary];
 	vr = right.teamscores[ts_primary];
 	if(vl > vr)
 		return IS_INCREASING(teamscores_flags[ts_primary]);
 	if(vl < vr)
 		return IS_DECREASING(teamscores_flags[ts_primary]);
-	
+
 	vl = left.teamscores[ts_secondary];
 	vr = right.teamscores[ts_secondary];
 	if(vl > vr)
@@ -363,7 +384,7 @@
 	print("^2sbar_columns_set ^7filed1 field2 ...\n");
 	print("The following field names are recognized (case INsensitive):\n");
 	print("You can use a ^3|^7 to start the right-aligned fields.\n");
-	
+
 	print("^3name^7 or ^3nick^7             Name of a player\n");
 	print("^3ping^7                     Ping time\n\n");
 	print("^3kd^7 or ^3kdr^7 or ^3kdratio^7 or ^3k/d\n");
@@ -437,8 +458,8 @@
 			argc = tokenizebyseparator(strcat("x ", s), " ");
 		}
 	}
-		
-	
+
+
 	sbar_num_fields = 0;
 
 	drawfont = sbar_font;
@@ -622,7 +643,7 @@
 			tmp = max(0, min(220, stof(str)-80)) / 220;
 			sbar_field_rgb = '1 1 1' - '0 1 1'*tmp;
 			return str;
-		
+
 		case SP_PL:
 			if not(pl.gotscores)
 				return "N/A";
@@ -632,7 +653,7 @@
 			tmp = bound(0, stof(str), 20) / 20; // 20% is REALLY BAD pl
 			sbar_field_rgb = '1 0.5 0.5' - '0 0.5 0.5'*tmp;
 			return str;
-		
+
 		case SP_NAME:
 			if(ready_waiting && pl.ready)
 			{
@@ -668,12 +689,12 @@
 				str = ftos(num/denom);
 			} else
 				str = ftos(num/denom);
-		
+
 			tmp = strstrofs(str, ".", 0);
 			if(tmp > 0)
 				str = substring(str, 0, tmp+2);
 			return str;
-			
+
 		default:
 			tmp = pl.(scores[field]);
 			f = scores_flags[field];
@@ -720,7 +741,7 @@
 	}
 	else
 		sbar_fixscoreboardcolumnwidth_len = stringwidth(str, FALSE);
-	
+
 	sbar_fixscoreboardcolumnwidth_iconlen = 0;
 
 	if(sbar_field_icon0 != "")
@@ -776,9 +797,9 @@
 		tmp_x = sbwidth;
 		tmp_y = sbar_fontsize_y;
 		drawfill(pos - '1 1 0', tmp + '2 2 0', '1 1 1', 0.3, DRAWFLAG_NORMAL);
-	}	
+	}
 	tmp_y = 0;
-	
+
 	for(i = 0; i < sbar_num_fields; ++i)
 	{
 		field = sbar_field[i];
@@ -810,7 +831,7 @@
 		if(sbar_field_icon2 != "")
 			drawpic(pos - tmp, sbar_field_icon2, '0 1 0' * sbar_fontsize_y + '1 0 0' * sbar_fontsize_x * sbar_fixscoreboardcolumnwidth_iconlen, sbar_field_icon2_rgb, sbar_field_icon2_alpha, 0);
 	}
-	
+
 	if(sbar_field[i] == SP_SEPARATOR)
 	{
 		pos_x = xmax;
@@ -819,12 +840,12 @@
 			field = sbar_field[i];
 			if(field == SP_SEPARATOR)
 				break;
-			
+
 			if(is_spec && field != SP_NAME && field != SP_PING) {
 				pos_x -= sbar_fontsize_x*sbar_size[i] + sbar_fontsize_x;
 				continue;
 			}
-			
+
 			str = Sbar_GetField(pl, field);
 			str = Sbar_FixScoreboardColumnWidth(i, str);
 
@@ -893,7 +914,7 @@
 	tmp_x = sbwidth;
 	tmp_y = sbar_fontsize_y;
 	drawfill(pos - '1 1 0', tmp + '2 2 0', '0.5 0.5 0.5', 0.5, DRAWFLAG_NORMAL);
-	
+
 	drawfont = sbar_font;
 
 	for(i = 0; i < sbar_num_fields; ++i)
@@ -903,7 +924,7 @@
 		drawstring(pos, sbar_title[i], sbar_fontsize, '1 1 1', 1, DRAWFLAG_NORMAL);
 		pos_x += sbar_fontsize_x*sbar_size[i] + sbar_fontsize_x;
 	}
-	
+
 	if(sbar_field[i] == SP_SEPARATOR)
 	{
 		pos_x = xmax + sbar_fontsize_x;
@@ -925,13 +946,13 @@
 			drawstring(pos + tmp, sbar_title[i], sbar_fontsize, '1 1 1', 1, DRAWFLAG_NORMAL);
 		}
 	}
-		
+
 	pos_x = xmin;
 	pos_y += 1.5 * sbar_fontsize_y;
 
 	sbar_save = sbar;
 	sbar = '0 0 0';
-	
+
 	if(teamplay)
 	{
 		//for(tm = sortedTeams.sort_next; tm; tm = tm.sort_next)
@@ -948,16 +969,16 @@
 
 			if(ts_primary != ts_secondary)
 			Sbar_DrawXNum(sbar + pos - '4.5 0 0' * sbar_fontsize_y + '0 1.5 0' * sbar_fontsize_y, tm.(teamscores[ts_secondary]), 4, sbar_fontsize_y * 1, rgb, 0, 1, DRAWFLAG_NORMAL);
-			
+
 			specs = tm.team_size;
 
 			if(specs < 2)
 				specs = 2;
-			
+
 			tmp_x = sbwidth;
 			tmp_y = 1.25 * sbar_fontsize_y * specs;
 			drawfill(pos - '1 1 0', tmp + '2 0 0', rgb, 0.2, DRAWFLAG_NORMAL);
-			
+
 			for(pl = players.sort_next; pl; pl = pl.sort_next)
 			{
 				if(pl.team != tm.team)
@@ -980,7 +1001,7 @@
 			pos += '0 1.25 0' * sbar_fontsize_y;
 			++specs;
 		}
-			
+
 		if(specs)
 			drawstring(rgb, "Spectators", sbar_fontsize, '1 1 1', 1, 0);
 	} else {
@@ -1006,16 +1027,17 @@
 			pos += '0 1.25 0' * sbar_fontsize_y;
 			++specs;
 		}
-			
+
 		if(specs)
 			drawstring(rgb, "Spectators", sbar_fontsize, '1 1 1', 1, 0);
 	}
 
 	string str;
-	float tl, fl;
+	float tl, fl, ll;
 	str = strcat("playing on ^2", shortmapname, "^7");
 	tl = getstatf(STAT_TIMELIMIT);
 	fl = getstatf(STAT_FRAGLIMIT);
+	ll = getstatf(STAT_LEADLIMIT);
 	if(gametype == GAME_LMS)
 	{
 		if(tl > 0)
@@ -1050,12 +1072,37 @@
 					str = strcat(str, " ", scores_label[ps_primary]);
 			}
 		}
+		if(ll > 0)
+		{
+			if(tl > 0 || fl > 0)
+				str = strcat(str, " or");
+			if(teamplay)
+			{
+				str = strcat(str, " until a lead of ^3", ScoreString(teamscores_flags[ts_primary], ll));
+				if(teamscores_label[ts_primary] == "score")
+					str = strcat(str, " points^7");
+				else if(teamscores_label[ts_primary] == "fastest")
+					str = strcat(str, " is beaten^7");
+				else
+					str = strcat(str, " ", teamscores_label[ts_primary]);
+			}
+			else
+			{
+				str = strcat(str, " until a lead of ^3", ScoreString(scores_flags[ps_primary], ll));
+				if(scores_label[ps_primary] == "score")
+					str = strcat(str, " points^7");
+				else if(scores_label[ps_primary] == "fastest")
+					str = strcat(str, " is beaten^7");
+				else
+					str = strcat(str, " ", scores_label[ps_primary]);
+			}
+		}
 	}
-	
 
+
 	pos_y += 1.2 * sbar_fontsize_y;
 	drawcolorcodedstring(pos + '0.5 0 0' * (sbwidth - sbar_fontsize_x * stringwidth(str, TRUE)), str, sbar_fontsize, 0.8, 0);
-	
+
 	sbar = sbar_save;
 	scoreboard_bottom = pos_y + 2 * sbar_fontsize_y;
 }
@@ -1112,7 +1159,7 @@
 		cpname = strcat("Intermediate ", ftos(cp));
 	else
 		cpname = "Finish line";
-	
+
 	if(histime < 0)
 		return strcat(col, cpname);
 	else if(hisname == "")
@@ -1127,17 +1174,17 @@
 	vector sbar_save, place, timer_color, offset;
 	entity tm, pl, me;
 	sbar_save = sbar;
-	
+
  	vector bottomright;
  	bottomright_x = vid_conwidth;
  	bottomright_y = vid_conheight;
  	bottomright_z = 0;
- 	
+
  	vector topright;
  	topright_x = vid_conwidth;
  	topright_y = 0;
  	topright_z = 0;
- 	
+
  	sbar_alpha_bg = cvar("sbar_alpha_bg");
 	//get the ID (could be "me", or the player I'm spectating)
 	desiredPlayerId = player_localentnum - 1;
@@ -1146,12 +1193,12 @@
 			desiredPlayerId = spectatee_status - 1;
 		}
 	}
-	
+
 	myteam = GetPlayerColor(desiredPlayerId);
 
 	sbar_y = vid_conheight - (32+12);
 	sbar_x -= margin;
-	
+
 	offset = '0 0 0';
 	place_z = 0;
 	if(teamplay)
@@ -1165,13 +1212,13 @@
 		if (cvar("vid_conwidth") >= 800) {
 			place_x = 196;
 			place_y = 36;
-			
+
 		}
 		else {
 			place_x = 196;
 			place_y = 86;
 		}
-		
+
 		float max_fragcount;
 		max_fragcount = -999;
 
@@ -1181,12 +1228,12 @@
 				continue;
 			// -32*4 = -128
 			score = tm.(teamscores[ts_primary]);
-			
+
 			if (score > max_fragcount)
 				max_fragcount = score;
-				
+
 			if(tm.team == myteam) {
-				if (max_fragcount == score) 
+				if (max_fragcount == score)
 					Sbar_DrawXNum(bottomright - element_offset - place, score, 4, 34, GetTeamRGB(tm.team) * 0.8, 1, 1, DRAWFLAG_NORMAL);
 				else
 					Sbar_DrawXNum(bottomright - element_offset - place, score, 4, 34, GetTeamRGB(tm.team) * 0.8, 0, 1, DRAWFLAG_NORMAL);
@@ -1202,7 +1249,7 @@
 		}
 	} else {
 		// me vector := [team/connected frags id]
-		
+
 		myplace = 0;
 		for(me = players.sort_next; me; me = me.sort_next)
 		{
@@ -1211,11 +1258,11 @@
 			if(me.sv_entnum == desiredPlayerId)
 				break;
 		}
-		
+
 		pl = players.sort_next;
 		if(pl == me)
 			pl = pl.sort_next;
-		
+
 		if(pl) {
 			distribution = me.(scores[ps_primary]);
 			distribution -= pl.(scores[ps_primary]);
@@ -1225,40 +1272,40 @@
 		if (cvar("vid_conwidth") >= 800) {
 			place_x = 196;
 			place_y = 36;
-			
+
 		}
 		else { // move the scores if vid_conwidth < 800
 			place_x = 196;
 			place_y = 86;
 		}
 		score = me.(scores[ps_primary]);
-		
+
 		if(distribution >= 0)
 		{
-			if (distribution != 0) { 
+			if (distribution != 0) {
 				// draw a + sign in front of the score
 				if (distribution < 10) { drawpic(bottomright - element_offset - place + '132 -5 0' + '32 0 0', "gfx/hud/num_plus", '16 16 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_ADDITIVE); }
 				else if (distribution < 100) { drawpic(bottomright - element_offset - place + '132 -5 0' + '16 0 0', "gfx/hud/num_plus", '16 16 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_ADDITIVE); }
 				else if (distribution < 1000) { drawpic(bottomright - element_offset - place + '132 -5 0', "gfx/hud/num_plus", '16 16 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_ADDITIVE); }
 			}
-				
+
 			Sbar_DrawXNum(bottomright - element_offset - place + '132 -6 0', distribution, 4, 16, ' 1 1 1', 0, 1, DRAWFLAG_NORMAL);
 			Sbar_DrawXNum(bottomright - element_offset - place, score, 4, 34, '1 1 1', 1, 1, DRAWFLAG_NORMAL);
-		}	
+		}
 		else if(distribution >= -5)
 		{
 			Sbar_DrawXNum(bottomright - element_offset - place + '132 -6 0', distribution, 4, 16, ' 1 1 0', 0, 1, DRAWFLAG_NORMAL);
 			Sbar_DrawXNum(bottomright - element_offset - place, score, 4, 34, '1 1 0', 0, 1, DRAWFLAG_NORMAL);
-		} 
+		}
 		else {
 			Sbar_DrawXNum(bottomright - element_offset - place + '132 -6 0', distribution, 4, 16, ' 1 0 0', 0, 1, DRAWFLAG_NORMAL);
 			Sbar_DrawXNum(bottomright - element_offset - place, score, 4, 34, '1 0 0', 0, 1, DRAWFLAG_NORMAL);
 		}
 	}
-	
+
 	//draw the remaining or elapsed time
 	timelimit = getstatf(STAT_TIMELIMIT);
-	
+
 	vector bgpos;
 	if(timelimit > 0)
 	{
@@ -1266,7 +1313,7 @@
 		timeleft = ceil(timeleft);
 		minutesLeft = floor(timeleft / 60);
 		secondsLeft = timeleft - minutesLeft*60;
-		
+
 		if(minutesLeft >= 5) {
 			timer_color = '1 1 1'; //white
 		} else if(minutesLeft >= 1) {
@@ -1274,11 +1321,11 @@
 		} else {
 			timer_color = '1 0 0'; //red
 		}
-		
+
 		if (warmup_stage) {
 			timer_color = '1 1 1'; //don't use red or yellow for timer during warmup
 		}
-		
+
 		if (cvar("sbar_increment_maptime")) {
 			if (time < getstatf(STAT_GAMESTARTTIME)) {
 				//while restart is still active, show negative counter
@@ -1294,18 +1341,18 @@
 			minutes = minutesLeft;
 			seconds = secondsLeft;
 		}
-		
+
 		if (minutes == 0)
 			bgpos_x = topright_x - 36 - 7 - 12;
 		else if (minutes < 10) // nudge the timer background left if more digits are drawn
 			bgpos_x = topright_x - 54 - 17 - 12;
-		else if (minutes < 100)	
+		else if (minutes < 100)
 			bgpos_x = topright_x - 72 - 17 - 12;
 		else
 			bgpos_x = topright_x - 90 - 17 - 12;
 		bgpos_y = 0;
 		bgpos_z = 0;
-		
+
 		if (cvar("viewsize") <= 100) { // draw timer background when viewsize <= 100
 			if (teamplay)
 				drawpic(bgpos, "gfx/hud/sb_timerbg", '120 30 0', GetTeamRGB(myteam) * cvar("sbar_color_bg_team"), sbar_alpha_bg, 0); // timer bg color = myteam color
@@ -1313,11 +1360,11 @@
 				color_x = cvar("sbar_color_bg_r");
 				color_y = cvar("sbar_color_bg_g");
 				color_z = cvar("sbar_color_bg_b");
-				
+
 				drawpic(bgpos, "gfx/hud/sb_timerbg", '120 30 0', color, sbar_alpha_bg, 0);
 			}
 		}
-		
+
 		if(minutesLeft >= 1 || (cvar("sbar_increment_maptime") && minutes >= 1) ) {
 			Sbar_DrawXNum(topright - '103 0 0', minutes, 3, 18, timer_color, 0, sbar_alpha_fg, 0);
 			drawpic(topright - '53 0 0', "gfx/hud/num_colon", '18 18 0', timer_color, sbar_alpha_fg, 0);
@@ -1328,8 +1375,8 @@
 		timer_color = '1 1 1'; //white
 		minutes = floor(time / 60);
 		seconds = floor(time - minutes*60);
-		
-		if (minutes < 10) 
+
+		if (minutes < 10)
 			bgpos_x = topright_x - 54 - 17 - 12;
 		else if (minutes < 100)	// nudge the timer background left if more digits are drawn
 			bgpos_x = topright_x - 72 - 17 - 12;
@@ -1337,7 +1384,7 @@
 			bgpos_x = topright_x - 90 - 17 - 12;
 		bgpos_y = 0;
 		bgpos_z = 0;
-		
+
 		if (cvar("viewsize") <= 100) { // draw timer background when viewsize <= 100
 			if (teamplay)
 				drawpic(bgpos, "gfx/hud/sb_timerbg", '120 30 0', GetTeamRGB(myteam), sbar_alpha_bg, 0); // timer bg color = myteam color
@@ -1345,11 +1392,11 @@
 				color_x = cvar("sbar_color_bg_r");
 				color_y = cvar("sbar_color_bg_g");
 				color_z = cvar("sbar_color_bg_b");
-				
+
 				drawpic(bgpos, "gfx/hud/sb_timerbg", '120 30 0', color, sbar_alpha_bg, 0);
 			}
 		}
-		
+
 		Sbar_DrawXNum(topright - '103 0 0', minutes, 3, 18, timer_color, 0, 1, DRAWFLAG_NORMAL);
 		drawpic(topright - '53 0 0', "gfx/hud/num_colon", '18 18 0', timer_color, sbar_alpha_fg, 0);
 		Sbar_DrawXNum(topright - '36 0 0' - '3 0 0', seconds, -2, 18, timer_color, 0, 1, DRAWFLAG_NORMAL);
@@ -1463,10 +1510,10 @@
 		if not(stat_items & IT_INVINCIBLE)
 			return;
 	*/
-	
+
 	if (getstati(STAT_HEALTH) <= 0)
 		return;
-	
+
 	vector picsize;
 	float strength_time, invincibility_time, countdown_fontsize;
 
@@ -1524,8 +1571,8 @@
 }
 
 #define CENTERPRINT_MAX_LINES 30
-string centerprint_messages[CENTERPRINT_MAX_LINES]; 
-float centerprint_width[CENTERPRINT_MAX_LINES]; 
+string centerprint_messages[CENTERPRINT_MAX_LINES];
+float centerprint_width[CENTERPRINT_MAX_LINES];
 vector centerprint_start;
 float centerprint_expire;
 float centerprint_num;
@@ -1543,7 +1590,7 @@
 
 	if(cvar("scr_centertime") <= 0)
 		return;
-	
+
 	if(strMessage == "")
 		return;
 
@@ -1552,7 +1599,7 @@
 	while(substring(strMessage, j, 1) == "\n" && j >= 0)
 		j = j - 1;
 	strMessage = substring(strMessage, 0, j + 1);
-	
+
 	if(strMessage == "")
 		return;
 
@@ -1568,7 +1615,7 @@
 
 	// if we get here, we have a message. Initialize its height.
 	centerprint_num = 0;
-	
+
 	n = tokenizebyseparator(strMessage, "\n");
 	i = hcount = 0;
 	for(j = 0; j < n; ++j)
@@ -1676,14 +1723,14 @@
 
 	//if(time > centerprint_expire)
 	//	return;
-	
+
 	//a = bound(0, 1 - 2 * (time - centerprint_expire), 1);
 	a = bound(0, 1 - 4 * (time - centerprint_expire), 1);
 	//sz = 1.2 / (a + 0.2);
 
 	if(a <= 0)
 		return;
-	
+
 	pos = centerprint_start;
 	for (i=0; i<centerprint_num; i = i + 1)
 	{
@@ -1719,7 +1766,7 @@
 {
 	vector pos, bgsize;
 	float pressedkeys;
-	
+
 	pos = stov(cvar_string("cl_showpressedkeys_position"));
 
 	bgsize = '126 75 0';
@@ -1727,7 +1774,7 @@
 	pos = '1 0 0' * (vid_conwidth - bgsize_x) * pos_x
 	    + '0 1 0' * (vid_conheight - bgsize_y) * pos_y;
 	pos -= '-15 -6 0'; // adjust to the origin of these numbers
-	
+
 	pressedkeys = getstatf(STAT_PRESSED_KEYS);
 	drawpic(pos + '-15   -6   0', "gfx/hud/keys/key_bg.tga",           bgsize, '1 1 1', .1, DRAWFLAG_NORMAL);
 	drawpic(pos + ' 83.5  9   0', ((pressedkeys & KEY_CROUCH) ? "gfx/hud/keys/key_crouch_inv.tga" : "gfx/hud/keys/key_crouch.tga"), ' 24 24 0', '1 1 1', 1, DRAWFLAG_NORMAL);
@@ -1738,6 +1785,206 @@
 	drawpic(pos + ' 65   32   0', ((pressedkeys & KEY_RIGHT) ? "gfx/hud/keys/key_right_inv.tga" : "gfx/hud/keys/key_right.tga"),    ' 32 32 0', '1 1 1', 1, DRAWFLAG_NORMAL);
 }
 
+void Sbar_ShowSpeed(void)
+{
+	vector numsize;
+	float pos;
+	string speed;
+	
+	if (cvar("cl_showspeed_z") == 1)
+		speed = ftos(floor(vlen(pmove_vel) + 0.5));
+	else
+		speed = ftos(floor(vlen(pmove_vel - pmove_vel_z * '0 0 1') + 0.5));
+		
+	pos = cvar("cl_showspeed_position");
+	numsize_x = numsize_y = cvar("cl_showspeed_size");
+	pos = (vid_conheight - numsize_y) * pos;
+	
+	drawstringcenter('1 0 0' + pos * '0 1 0', speed, numsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+}
+
+void Sbar_DrawAccuracyStats()
+{
+	float i, count_hitscan, count_splash, row;  // count is the number of 'colums'
+	float weapon_hit, weapon_damage, weapon_stats;
+	float left_border;  // position where the weapons start, the description is in the border
+	float border_thickness = 2;
+	vector fill_colour, fill_size;
+	vector pos;
+
+	float col_margin = 20;  // pixels between the columns
+	float row_margin = 20;  // pixels between the rows
+	float top_border;  // position where the first row starts: pixels down the screen
+
+	fill_size_x = 5 * sbar_fontsize_x;  // width of the background
+	fill_size_y = 10 * sbar_fontsize_y;  // height of the background
+
+	// 45 pixels is the same as the 'Scoreboard' heading
+	drawfont = sbar_bigfont;
+	drawstringcenter('0 45 0', "Weapon Accuracy", 2 * sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	left_border = col_margin + 11 * sbar_fontsize_x;
+
+	top_border = 80;
+	Sbar_DrawAccuracyStats_Description_Hitscan('1 0 0' * col_margin + '0 1 0' * top_border);
+
+	top_border = 220;
+	Sbar_DrawAccuracyStats_Description_Splash('1 0 0' * col_margin + '0 1 0' * top_border);
+
+
+	for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+	{
+		weapon_hit = weapon_hits[i];
+		weapon_damage = weapon_fired[i];
+		self = get_weaponinfo(i);
+
+		//if ((weapon_number != 42))  // print them all :)
+ 		if ((self.weapon_type == WEP_TYPE_SPLASH) && (weapon_damage))
+		{
+			top_border = 220;
+			weapon_stats = rint(100 * weapon_hit / weapon_damage);
+
+			fill_colour_x = 1 - 0.015 * weapon_stats;
+			fill_colour_y = 1 - 0.015 * (100 - weapon_stats);
+
+// 			how the background colour is calculated
+// 			%	red	green	red_2		green_2
+// 			0	1	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			10	0.85	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			20	0.70	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			30	0.55	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			40	0.40	0.10	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			50	0.25	0.25	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			60	0.10	0.40	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			70	0	0.55	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			80	0	0.70	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			90	0	0.85	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			100	0	1	1 - % * 0.015	1 - (100 - %) * 0.015
+
+			if ((left_border + count_splash * (fill_size_x + col_margin) + fill_size_x) >= vid_conwidth)
+			{
+				count_splash = 0;
+				++row;
+				Sbar_DrawAccuracyStats_Description_Splash('1 0 0' * col_margin + '0 1 0' * (top_border + row * (fill_size_y + row_margin)));
+			}
+
+			pos_x = left_border + count_splash * (fill_size_x + col_margin);
+			pos_y = top_border + row * (fill_size_y + row_margin);
+
+			// background
+			drawpic(pos, "gfx/hud/sb_accuracy", fill_size , fill_colour, sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos, pos + '1 0 0' * fill_size_x, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos, pos + '0 1 0' * fill_size_y, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos + '1 0 0' * fill_size_x, pos + '1 0 0' * fill_size_x + '0 1 0' * fill_size_y, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos + '0 1 0' * fill_size_y, pos + '0 1 0' * fill_size_y + '1 0 0' * fill_size_x, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+
+			// the weapon
+			drawpic(pos, strcat("gfx/hud/inv_weapon", ftos(i-1)), '1 0.5 0' * fill_size_x , '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the amount of shots fired or max damage
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 3 0' * sbar_fontsize_y, ftos(weapon_damage), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the amount of hits or actual damage
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 5 0' * sbar_fontsize_y, ftos(weapon_hit), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the accuracy
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 7 0' * sbar_fontsize_y, strcat(ftos(weapon_stats),"%"), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the amount of shots missed or damage wasted
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 9 0' * sbar_fontsize_y, ftos(weapon_damage - weapon_hit), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			++count_splash;
+		}
+		else if ((self.weapon_type == WEP_TYPE_HITSCAN) && (weapon_damage))
+		{
+			top_border = 80;
+			weapon_stats = rint(100 * weapon_hit / weapon_damage);
+
+			fill_colour_x = 1 - 0.015 * weapon_stats;
+			fill_colour_y = 1 - 0.015 * (100 - weapon_stats);
+
+// 			how the background colour is calculated
+// 			%	red	green	red_2		green_2
+// 			0	1	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			10	0.85	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			20	0.70	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			30	0.55	0	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			40	0.40	0.10	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			50	0.25	0.25	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			60	0.10	0.40	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			70	0	0.55	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			80	0	0.70	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			90	0	0.85	1 - % * 0.015	1 - (100 - %) * 0.015
+// 			100	0	1	1 - % * 0.015	1 - (100 - %) * 0.015
+
+			if ((left_border + count_hitscan * (fill_size_x + col_margin) + fill_size_x + cvar("stats_right_margin")) >= vid_conwidth)
+			{
+				count_hitscan = 0;
+				++row;
+				Sbar_DrawAccuracyStats_Description_Hitscan('1 0 0' * col_margin + '0 1 0' * (top_border + row * (fill_size_y + row_margin)));
+			}
+
+			pos_x = left_border + count_hitscan * (fill_size_x + col_margin);
+			pos_y = top_border + row * (fill_size_y + row_margin);
+
+			// background
+			drawpic(pos, "gfx/hud/sb_accuracy", fill_size , fill_colour, sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos, pos + '1 0 0' * fill_size_x, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos, pos + '0 1 0' * fill_size_y, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos + '1 0 0' * fill_size_x, pos + '1 0 0' * fill_size_x + '0 1 0' * fill_size_y, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+			drawline(border_thickness, pos + '0 1 0' * fill_size_y, pos + '0 1 0' * fill_size_y + '1 0 0' * fill_size_x, '0 0 0', sbar_alpha_bg, DRAWFLAG_NORMAL);
+
+			// the weapon
+			drawpic(pos, strcat("gfx/hud/inv_weapon", ftos(i-1)), '1 0.5 0' * fill_size_x , '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the amount of shots fired or max damage
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 3 0' * sbar_fontsize_y, ftos(weapon_damage), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the amount of hits or actual damage
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 5 0' * sbar_fontsize_y, ftos(weapon_hit), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the accuracy
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 7 0' * sbar_fontsize_y, strcat(ftos(weapon_stats),"%"), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			// the amount of shots missed or damage wasted
+			drawstringright(pos + '4.5 0 0' * sbar_fontsize_x + '0 9 0' * sbar_fontsize_y, ftos(weapon_damage - weapon_hit), sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+
+			++count_hitscan;
+		}
+	}
+}
+
+void Sbar_DrawAccuracyStats_Description_Hitscan(vector position)
+{
+	drawfont = sbar_font;
+	 // hitscan stats
+	drawstring(position + '0 3 0' * sbar_fontsize_y, "Shots fired:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	drawstring(position + '0 5 0' * sbar_fontsize_y, "Shots hit:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	drawstring(position + '0 7 0' * sbar_fontsize_y, "Accuracy:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	drawstring(position + '0 9 0' * sbar_fontsize_y, "Shots missed:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+}
+
+void Sbar_DrawAccuracyStats_Description_Splash(vector position)
+{
+	//splash stats
+	drawfont = sbar_font;
+	drawstring(position + '0 3 0' * sbar_fontsize_y, "Maximum damage:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	drawstring(position + '0 5 0' * sbar_fontsize_y, "Actual damage:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	drawstring(position + '0 7 0' * sbar_fontsize_y, "Accuracy:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+	drawstring(position + '0 9 0' * sbar_fontsize_y, "Damage wasted:", sbar_fontsize, '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+}
+
+void drawstringright(vector position, string text, vector scale, vector rgb, float alpha, float flag)
+{
+	position_x -= 2 / 3 * strlen(text) * scale_x;
+	drawstring(position, text, scale, rgb, alpha, flag);
+}
+
+void drawstringcenter(vector position, string text, vector scale, vector rgb, float alpha, float flag)
+{
+	position_x = 0.5 * (vid_conwidth - 0.6025 * strlen(text) * scale_x);
+	drawstring(position, text, scale, rgb, alpha, flag);
+}
+
 float GetAmmoStat(float i)
 {
 	switch(i)
@@ -1785,7 +2032,7 @@
 	vector bottom;
 	vector bottomright;
 	vector bottomleft;
-	
+
 	topright_x = vid_conwidth;
 	topright_y = 0;
 	topright_z = 0;
@@ -1793,7 +2040,7 @@
 	bottom_x = vid_conwidth/2;
 	bottom_y = vid_conheight;
 	bottom_z = 0;
-	
+
 	bottomright_x = vid_conwidth;
 	bottomright_y = vid_conheight;
 	bottomright_z = 0;
@@ -1801,20 +2048,29 @@
 	bottomleft_x = 0;
 	bottomleft_y = vid_conheight;
 	bottomleft_z = 0;
-	
+
 	sbar_alpha_bg = cvar("sbar_alpha_bg");
-	
+
 	float i;
+	float weapon_stats;
 	float x, fade;
 	float stat_items, stat_weapons;
-	
+
+	weapon_stats = getstati(STAT_DAMAGE_HITS);
+ 	weapon_number = weapon_stats & 63;
+ 	weapon_hits[weapon_number] = rint(weapon_stats / 64);
+
+ 	weapon_stats = getstati(STAT_DAMAGE_FIRED);
+ 	weapon_number = weapon_stats & 63;
+ 	weapon_fired[weapon_number] = rint(weapon_stats / 64);
+
 	vector o; o = '1 0 0' * vid_conwidth;
 	o_y = 28; // move spectator text slightly down to prevent overlapping the timer
-	
+
 	string s;
 
 	sbar_fontsize = Sbar_GetFontsize("sbar_fontsize");
-	
+
 	if(spectatee_status && !intermission)
 	{
 		if(spectatee_status == -1)
@@ -1854,7 +2110,7 @@
 		else
 			s = strcat("^1Press ^3", getcommandkey("jump", "+jump"), "^1 to join");
 		o = Sbar_DrawNoteLine(o, s);
-		
+
 		//show restart countdown:
 		if (time < getstatf(STAT_GAMESTARTTIME)) {
 			float countdown;
@@ -1883,21 +2139,21 @@
 	{
 		if(ready_waiting_for_me)
 		{
-			if(warmup_stage) 
+			if(warmup_stage)
 				s = strcat(blinkcolor, "Press ^3", getcommandkey("ready", "ready"), blinkcolor, " to end warmup");
 			else
 				s = strcat(blinkcolor, "Press ^3", getcommandkey("ready", "ready"), blinkcolor, " once you are ready");
 		}
 		else
 		{
-			if(warmup_stage) 
+			if(warmup_stage)
 				s = strcat("^2Waiting for others to ready up to end warmup...");
 			else
 				s = strcat("^2Waiting for others to ready up...");
 		}
 		o = Sbar_DrawNoteLine(o, s);
 	}
-	else if(warmup_stage && !intermission) 
+	else if(warmup_stage && !intermission)
 	{
 		s = strcat("^2Press ^3", getcommandkey("ready", "ready"), "^2 to end warmup");
 		o = Sbar_DrawNoteLine(o, s);
@@ -1956,288 +2212,296 @@
 
 	Sbar_UpdatePlayerTeams();
 
-	if (intermission == 1)
+	if (intermission == 2) // map voting screen
 	{
-		Sbar_DrawScoreboard();
-		Sbar_DrawCenterPrint();
-		return;
+		if(sb_showscores) {
+			Sbar_DrawScoreboard();
+			Sbar_Score(16);
+		}
+		else if(sb_showaccuracy) {
+			Sbar_DrawAccuracyStats();
+			Sbar_Score(16);
+		}
+  		else
+			Sbar_FinaleOverlay();
 	}
-	else if (intermission == 2)
+	else if (sb_showscores_force || getstati(STAT_HEALTH) <= 0 || intermission == 1)
 	{
-		Sbar_FinaleOverlay();
-		Sbar_DrawCenterPrint();
-	}
+  		if(sb_showaccuracy)
+  			Sbar_DrawAccuracyStats();
+  		else
+			Sbar_DrawScoreboard();
+		Sbar_Score(16);
+  	}
 	else
 	{
-		if (sb_showscores_force || (getstati(STAT_HEALTH) <= 0 && cvar("cl_deathscoreboard")))
+		if (sb_showscores)
+			Sbar_DrawScoreboard();
+		else if(sb_showaccuracy)
+			Sbar_DrawAccuracyStats();
+
+		float armor, health;
+		armor = getstati(STAT_ARMOR);
+		health = getstati(STAT_HEALTH);
+
+		stat_items = getstati(STAT_ITEMS);
+		stat_weapons = getstati(STAT_WEAPONS);
+
+		fade = 3.2 - 2 * (time - weapontime);
+		fade = bound(0.7, fade, 1);
+
+		vector bg_size; // hud background size
+		bg_size_x = 800;
+		if (vid_conwidth > 800) // if conwidth > 800, resize the background image
+			bg_size_x = vid_conwidth;
+		bg_size_y = 58;
+		bg_size_z = 0;
+
+		vector bgoffset; // hud background offset
+		bgoffset_x = 0;
+		bgoffset_y = 0;
+		bgoffset_z = 0;
+		if (vid_conwidth < 800) // if conwidth < 800 we need to offset the background image to keep it centered, as it will be scaled up
+			bgoffset_x = (vid_conwidth - 800) / 2;
+
+		if (cvar("viewsize") <= 100) {
+			if (teamplay)
+				drawpic(bottomleft - '0 58 0' + bgoffset, "gfx/hud/sbar", bg_size, GetTeamRGB(myteam) * cvar("sbar_color_bg_team"), sbar_alpha_bg, 0); // hud color = myteam color
+			else {
+				// allow for custom HUD colors in non-teamgames
+				color_x = cvar("sbar_color_bg_r");
+				color_y = cvar("sbar_color_bg_g");
+				color_z = cvar("sbar_color_bg_b");
+
+				drawpic(bottomleft - '0 58 0' + bgoffset, "gfx/hud/sbar", bg_size, color, sbar_alpha_bg, 0);
+			}
+		}
+
+		if(sbar_hudselector == 2) // combined health and armor display
 		{
-			sbar_x = (vid_conwidth - 640.0)*0.5;
-			sbar_y = vid_conheight - 47;
-			//Sbar_DrawAlphaPic (sbar_x, sbar_y, sb_scorebar, sbar_alpha_bg.value);
-			//drawpic('0 0 0', "gfx/hud/scorebar", '0 0 0', '1 1 1', cvar("sbar_alpha_bg"), 0);
-			Sbar_DrawScoreboard ();
+			// NOTE: we'll always choose the SMALLER value...
+			float healthdamage, armordamage, armorideal;
+			healthdamage = (health - 1) / (1 - armorblockpercent); // damage we can take if we could use more health
+			armordamage = armor + (health - 1); // damage we can take if we could use more armor
+			armorideal = healthdamage * armorblockpercent;
+
+			vector num_pos;
+			num_pos = bottom - element_offset - '0 24 0' + '-96 0 0';
+
+			if(armordamage < healthdamage)
+			{
+				// here, armorideal > armor
+				x = floor(armordamage + 1);
+				drawpic(num_pos + '78 -3 0', "gfx/hud/sb_health", '32 32 0', '1 1 1', sbar_alpha_fg, 0);
+				drawpic(num_pos + '108 -3 0', "gfx/hud/sb_armor", '20 20 0', '1 1 1', sbar_alpha_fg * armor / armorideal, 0);
+			}
+			else
+			{
+				x = floor(healthdamage + 1);
+				drawpic(num_pos + '108 -3 0', "gfx/hud/sb_health", '20 20 0', '1 1 1', sbar_alpha_fg * armorideal / armor, 0);
+				drawpic(num_pos + '78 -3 0', "gfx/hud/sb_armor", '32 32 0', '1 1 1', sbar_alpha_fg, 0);
+			}
+			Sbar_DrawXNum_Colored(num_pos, x, 24, sbar_alpha_fg); // draw the combined health and armor
 		}
+
 		else
 		{
-			if (sb_showscores) // do not hide the hud if sb_showscores is shown
+			vector health_pos, armor_pos;
+
+			if (sbar_hudselector == 0) { // old style layout with armor left of health
+				health_pos = bottom - element_offset - '0 24 0' + '14 0 0';
+				armor_pos = bottom - element_offset - '0 24 0' + '-96 0 0';
+			}
+
+			else {
+				health_pos = bottom - element_offset - '0 24 0' + '-96 0 0';
+				armor_pos = bottom - element_offset - '0 24 0' + '14 0 0';
+			}
+
+			// armor
+			x = armor;
+			if (x > 0)
 			{
-				Sbar_DrawScoreboard();
-				Sbar_DrawCenterPrint();
+				drawpic(armor_pos + '78 -3 0', "gfx/hud/sb_armor", '32 32 0', '1 1 1', (x+10)/55 * sbar_alpha_fg, 0);
+				if (x > 45)
+					Sbar_DrawXNum_Colored(armor_pos, x, 24, sbar_alpha_fg);
+				else
+					Sbar_DrawXNum_Colored(armor_pos, x, 24, (x+10)/55 * sbar_alpha_fg);
 			}
-			
-			float armor, health;
-			armor = getstati(STAT_ARMOR);
-			health = getstati(STAT_HEALTH);
 
-			stat_items = getstati(STAT_ITEMS);
-			stat_weapons = getstati(STAT_WEAPONS);
+			// health
+			x = health;
+			drawpic(health_pos + '78 -3 0', "gfx/hud/sb_health", '32 32 0', '1 1 1', sbar_alpha_fg, 0);
+			Sbar_DrawXNum_Colored(health_pos, x, 24, sbar_alpha_fg);
+		}
 
-			fade = 3.2 - 2 * (time - weapontime);
-			fade = bound(0.7, fade, 1);
-			
-			vector bg_size; // hud background size
-			bg_size_x = 800;
-			if (vid_conwidth > 800) // if conwidth > 800, resize the background image
-				bg_size_x = vid_conwidth;
-			bg_size_y = 58;
-			bg_size_z = 0;
-			
-			vector bgoffset; // hud background offset
-			bgoffset_x = 0;
-			bgoffset_y = 0;
-			bgoffset_z = 0;
-			if (vid_conwidth < 800) // if conwidth < 800 we need to offset the background image to keep it centered, as it will be scaled up
-				bgoffset_x = (vid_conwidth - 800) / 2;
-			
-			if (cvar("viewsize") <= 100) {
-				if (teamplay) {
-					//if (myteam == 13) // 13 = blue shirt color
-					//	drawpic(bottomleft - '0 58 0' + bgoffset, "gfx/hud/sbar", bg_size, '0 0.3 1', sbar_alpha_bg, 0); // blue hud is too dark at '0 0 1'
-					//else
-						drawpic(bottomleft - '0 58 0' + bgoffset, "gfx/hud/sbar", bg_size, GetTeamRGB(myteam) * cvar("sbar_color_bg_team"), sbar_alpha_bg, 0); // hud color = myteam color
-					}
-				else {
-					// allow for custom HUD colors in non-teamgames
-					color_x = cvar("sbar_color_bg_r");
-					color_y = cvar("sbar_color_bg_g");
-					color_z = cvar("sbar_color_bg_b");
-				
-					drawpic(bottomleft - '0 58 0' + bgoffset, "gfx/hud/sbar", bg_size, color, sbar_alpha_bg, 0);
-				}
+		// weapon icons
+		x = 1.0;
+		Sbar_DrawWeapon_Clear();
+		for(i = 1; i <= 24; ++i)
+		{
+			if(weaponimpulse[i-1] >= 0)
+			if(stat_weapons & x)
+			{
+				Sbar_DrawWeapon(i-1, fade, (i == activeweapon), i);
 			}
-			
-			if(health != 0)
+			x *= 2;
+		}
+
+		// ammo
+		float a; // i will be the ammo type (already declared), a will contain how much ammo there is of type i
+		vector pos;
+		pos_z = 0;
+
+		for (i = 0; i < 4; ++i) {
+			a = getstati(GetAmmoStat(i)); // how much ammo do we have of type i?
+
+			if(sbar_currentammo)
 			{
-				if(sbar_hudselector == 2) // combined health and armor display
+				pos = '0 0 0';
+				if (stat_items & GetAmmoItemCode(i))
 				{
-					// NOTE: we'll always choose the SMALLER value...
-					float healthdamage, armordamage, armorideal;
-					healthdamage = (health - 1) / (1 - armorblockpercent); // damage we can take if we could use more health
-					armordamage = armor + (health - 1); // damage we can take if we could use more armor
-					armorideal = healthdamage * armorblockpercent;
-					
-					vector num_pos;
-					num_pos = bottom - element_offset - '0 24 0' + '-96 0 0';
-					
-					if(armordamage < healthdamage)
+					if(cvar("vid_conwidth") >= 800)
 					{
-						// here, armorideal > armor
-						x = floor(armordamage + 1);
-						drawpic(num_pos + '78 -3 0', "gfx/hud/sb_health", '32 32 0', '1 1 1', sbar_alpha_fg, 0);
-						drawpic(num_pos + '108 -3 0', "gfx/hud/sb_armor", '20 20 0', '1 1 1', sbar_alpha_fg * armor / armorideal, 0);
+						pos_x = 170;
+						pos_y = -40;
+						drawpic(bottomleft + pos + '0 1.5 0', "gfx/hud/sb_ammobg", '107 29 0', '1 1 1', sbar_alpha_fg, 0);
+						drawpic(bottomleft + pos + '76 3 0', GetAmmoPicture(i), '24 24 0', '1 1 1', sbar_alpha_fg, 0);
+						if(a > 10)
+							Sbar_DrawXNum(bottomleft + pos + '5 4 0', a, 3, 24, '0.6 0.7 0.8', 0, 1, 0);
+						else
+							Sbar_DrawXNum(bottomleft + pos + '5 4 0', a, 3, 24, '0.7 0 0', 0, 1, 0);
 					}
 					else
 					{
-						x = floor(healthdamage + 1);
-						drawpic(num_pos + '108 -3 0', "gfx/hud/sb_health", '20 20 0', '1 1 1', sbar_alpha_fg * armorideal / armor, 0);
-						drawpic(num_pos + '78 -3 0', "gfx/hud/sb_armor", '32 32 0', '1 1 1', sbar_alpha_fg, 0);
-					}
-					Sbar_DrawXNum_Colored(num_pos, x, 24); // draw the combined health and armor
-				}
-				
-				else
-				{
-					vector health_pos, armor_pos;
-					
-					if (sbar_hudselector == 0) { // old style layout with armor left of health
-						health_pos = bottom - element_offset - '0 24 0' + '14 0 0';
-						armor_pos = bottom - element_offset - '0 24 0' + '-96 0 0';
-					}
-					
-					else {
-						health_pos = bottom - element_offset - '0 24 0' + '-96 0 0';
-						armor_pos = bottom - element_offset - '0 24 0' + '14 0 0';
-					}
-					
-					// armor
-					x = armor;
-					if (x > 0)
-					{
-						drawpic(armor_pos + '78 -3 0', "gfx/hud/sb_armor", '32 32 0', '1 1 1', sbar_alpha_fg, 0);	
-						
-						Sbar_DrawXNum_Colored(armor_pos, x, 24);
-					}
-					
-					// health
-					x = health;
-					drawpic(health_pos + '78 -3 0', "gfx/hud/sb_health", '32 32 0', '1 1 1', sbar_alpha_fg, 0);
-					
-					Sbar_DrawXNum_Colored(health_pos, x, 24);
-				}
-				
-				// weapon icons
-				x = 1.0;
-				Sbar_DrawWeapon_Clear();
-				for(i = 1; i <= 24; ++i)
-				{
-					if(weaponimpulse[i-1] >= 0)
-					if(stat_weapons & x)
-					{
-						Sbar_DrawWeapon(i-1, fade, (i == activeweapon));
-					}
-					x *= 2;
-				}
-				
-				// ammo
-				float a; // i will be the ammo type (already declared), a will contain how much ammo there is of type i
-				vector pos;
-				pos_z = 0;
-				
-				for (i = 0; i < 4; ++i) {
-					a = getstati(GetAmmoStat(i)); // how much ammo do we have of type i? 
-					
-					if (a > 0) {
-						pos = '0 0 0';
-						if (cvar("vid_conwidth") >= 800)
-							switch (i) {
-								case 0: pos_x = 114; pos_y = -48; break; // shells
-								case 1: pos_x = 114; pos_y = -26; break; // bullets
-								case 2: pos_x = 200; pos_y = -48; break; // rockets
-								case 3: pos_x = 200; pos_y = -26; break; // cells
-							}
-						else // if vid_conwidth is lower than 800, ammo will overlap with weapon icons and health so we'll move it to the right
-							switch (i) {
-								case 0: pos_x = vid_conwidth - 158; pos_y = -150; break; // shells
-								case 1: pos_x = vid_conwidth - 158; pos_y = -128; break; // bullets
-								case 2: pos_x = vid_conwidth - 84; pos_y = -150; break; // rockets
-								case 3: pos_x = vid_conwidth - 84; pos_y = -128; break; // cells
-							}
-							
-						if (stat_items & GetAmmoItemCode(i))
-							drawpic(bottomleft + pos + '0 1.5 0', "gfx/hud/sb_ammobg", '80 22 0', '1 1 1', sbar_alpha_fg, 0);
-						drawpic(bottomleft + pos + '56 3 0', GetAmmoPicture(i), '18 18 0', '1 1 1', sbar_alpha_fg, 0);
-						if (a > 10)
-							Sbar_DrawXNum(bottomleft + pos + '6 4 0', a, 3, 16, '0.6 0.7 0.8', 0, 1, 0);
+						pos_x = vid_conwidth - 110;
+						pos_y = -128;
+						drawpic(bottomleft + pos + '0 1.5 0', "gfx/hud/sb_ammobg", '107 29 0', '1 1 1', sbar_alpha_fg, 0);
+						drawpic(bottomleft + pos + '76 3 0', GetAmmoPicture(i), '24 24 0', '1 1 1', sbar_alpha_fg, 0);
+						if(a > 10)
+							Sbar_DrawXNum(bottomleft + pos + '5 4 0', a, 3, 24, '0.6 0.7 0.8', 0, 1, 0);
 						else
-							Sbar_DrawXNum(bottomleft + pos + '6 4 0', a, 3, 16, '0.7 0 0', 0, 1, 0);
+							Sbar_DrawXNum(bottomleft + pos + '5 4 0', a, 3, 24, '0.7 0 0', 0, 1, 0);
 					}
 				}
-					
-				// fuel ammo
-				a = getstati(GetAmmoStat(4)); // how much fuel do we have? 
-				
-				if (a > 0) { // if we have fuel, draw the amount
-					float invincibility_time, dt;
-					invincibility_time = getstatf(STAT_INVINCIBLE_FINISHED);
-					dt = invincibility_time - time;
-					if (dt > 0) { // if the invincibility timer is active, draw fuel ammo elsewhere
-						pos_x = bottom_x + 140;
-						pos_y = bottom_y - 72;
-					}
-					else { // if the invincibility timer is inactive, draw the fuel ammo there (it's rare to have invincibility + fuel anyway)
-						pos_x = bottom_x + 140;
-						pos_y = bottom_y - 22;
-					}
-					drawpic(pos - '0 2 0' + '52 0 0', GetAmmoPicture(4), '20 20 0', '1 1 1', sbar_alpha_fg, 0);
+			}
+			else
+			{
+				if (a > 0) {
+					pos = '0 0 0';
+					if (cvar("vid_conwidth") >= 800)
+						switch (i) {
+							case 0: pos_x = 114; pos_y = -48; break; // shells
+							case 1: pos_x = 114; pos_y = -26; break; // bullets
+							case 2: pos_x = 200; pos_y = -48; break; // rockets
+							case 3: pos_x = 200; pos_y = -26; break; // cells
+						}
+					else // if vid_conwidth is lower than 800, ammo will overlap with weapon icons and health so we'll move it to the right
+						switch (i) {
+							case 0: pos_x = vid_conwidth - 158; pos_y = -150; break; // shells
+							case 1: pos_x = vid_conwidth - 158; pos_y = -128; break; // bullets
+							case 2: pos_x = vid_conwidth - 84; pos_y = -150; break; // rockets
+							case 3: pos_x = vid_conwidth - 84; pos_y = -128; break; // cells
+						}
+
+					if (stat_items & GetAmmoItemCode(i))
+						drawpic(bottomleft + pos + '0 1.5 0', "gfx/hud/sb_ammobg", '80 22 0', '1 1 1', sbar_alpha_fg, 0);
+					drawpic(bottomleft + pos + '56 3 0', GetAmmoPicture(i), '18 18 0', '1 1 1', sbar_alpha_fg, 0);
 					if (a > 10)
-						Sbar_DrawXNum(pos, a, 3, 16, '0.6 0.7 0.8', 0, 1, 0);
+						Sbar_DrawXNum(bottomleft + pos + '6 4 0', a, 3, 16, '0.6 0.7 0.8', 0, 1, 0);
 					else
-						Sbar_DrawXNum(pos, a, 3, 16, '0.7 0 0', 0, 1, 0);
+						Sbar_DrawXNum(bottomleft + pos + '6 4 0', a, 3, 16, '0.7 0 0', 0, 1, 0);
 				}
-				
-				// draw scores and timer
-				Sbar_Score(16); 
 			}
-			
-			//show strength/invincibility ICON and timer:
-			CSQC_Strength_Timer();
+		}
 
-			if(gametype == GAME_KEYHUNT)
-			{
-				CSQC_kh_hud();
-			} else if(gametype == GAME_CTF)
-			{
-				CSQC_ctf_hud();
-			} else if(gametype == GAME_NEXBALL)
-			{
-				CSQC_nb_hud();
+		// fuel ammo
+		a = getstati(GetAmmoStat(4)); // how much fuel do we have?
+
+		if (a > 0) { // if we have fuel, draw the amount
+			float invincibility_time, dt;
+			invincibility_time = getstatf(STAT_INVINCIBLE_FINISHED);
+			dt = invincibility_time - time;
+			if (dt > 0) { // if the invincibility timer is active, draw fuel ammo elsewhere
+				pos_x = bottom_x + 140;
+				pos_y = bottom_y - 72;
 			}
+			else { // if the invincibility timer is inactive, draw the fuel ammo there (it's rare to have invincibility + fuel anyway)
+				pos_x = bottom_x + 140;
+				pos_y = bottom_y - 22;
+			}
+			drawpic(pos - '0 2 0' + '52 0 0', GetAmmoPicture(4), '20 20 0', '1 1 1', sbar_alpha_fg, 0);
+			if (a > 10)
+				Sbar_DrawXNum(pos, a, 3, 16, '0.6 0.7 0.8', 0, 1, 0);
+			else
+				Sbar_DrawXNum(pos, a, 3, 16, '0.7 0 0', 0, 1, 0);
 		}
+
+		// draw scores and timer
+		Sbar_Score(16);
+
+		//show strength/invincibility ICON and timer:
+		CSQC_Strength_Timer();
+
+		if(gametype == GAME_KEYHUNT)
+		{
+			CSQC_kh_hud();
+		} else if(gametype == GAME_CTF)
+		{
+			CSQC_ctf_hud();
+		} else if(gametype == GAME_NEXBALL)
+		{
+			CSQC_nb_hud();
+  		}
 	}
 }
 
 // CTF HUD
 void CSQC_ctf_hud(void)
 {
-	vector bottomleft;
+	vector bottomleft, redflag_pos, blueflag_pos;
 	bottomleft_x = 0;
 	bottomleft_y = vid_conheight;
 	bottomleft_z = 0;
 
 	float redflag, blueflag;
 	float stat_items;
-	
+
 	stat_items = getstati(STAT_ITEMS);
 	redflag = (stat_items/IT_RED_FLAG_TAKEN) & 3;
 	blueflag = (stat_items/IT_BLUE_FLAG_TAKEN) & 3;
-	
+
 	if (myteam == COLOR_TEAM1) { // always draw own flag on left
-		switch(redflag)
-		{
-		case 1: drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_red_taken", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		case 2: drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_red_lost", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		case 3: drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_red_carrying", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		default:
-			if(stat_items & IT_CTF_SHIELDED)
-				if(myteam == COLOR_TEAM2)
-					drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_red_shielded", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		}
-
-		switch(blueflag)
-		{
-		case 1: drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_blue_taken", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
-		case 2: drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_blue_lost", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
-		case 3: drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_blue_carrying", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
-		default:
-			if(stat_items & IT_CTF_SHIELDED)
-				if(myteam == COLOR_TEAM1)
-					drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_blue_shielded", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		}
+		redflag_pos = bottomleft - element_offset - '-4 36 0';
+		blueflag_pos = bottomleft - element_offset - '-72 36 0';
 	}
 	
 	else {
-		switch(blueflag)
-		{
-		case 1: drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_blue_taken", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
-		case 2: drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_blue_lost", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
-		case 3: drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_blue_carrying", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
-		default:
-			if(stat_items & IT_CTF_SHIELDED)
-				if(myteam == COLOR_TEAM1)
-					drawpic(bottomleft - element_offset - '-4 36 0', "gfx/hud/sb_flag_blue_shielded", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		}
-		
-		switch(redflag)
-		{
-		case 1: drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_red_taken", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		case 2: drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_red_lost", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		case 3: drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_red_carrying", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		default:
-			if(stat_items & IT_CTF_SHIELDED)
-				if(myteam == COLOR_TEAM2)
-					drawpic(bottomleft - element_offset - '-72 36 0', "gfx/hud/sb_flag_red_shielded", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
-		}
+		blueflag_pos = bottomleft - element_offset - '-4 36 0';
+		redflag_pos = bottomleft - element_offset - '-72 36 0';
 	}
+	
+	switch(redflag)
+	{
+	case 1: drawpic(redflag_pos, "gfx/hud/sb_flag_red_taken", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
+	case 2: drawpic(redflag_pos, "gfx/hud/sb_flag_red_lost", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
+	case 3: drawpic(redflag_pos, "gfx/hud/sb_flag_red_carrying", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
+	default:
+		if(stat_items & IT_CTF_SHIELDED)
+			if(myteam == COLOR_TEAM2)
+				drawpic(redflag_pos, "gfx/hud/sb_flag_red_shielded", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
+	}
+
+	switch(blueflag)
+	{
+	case 1: drawpic(blueflag_pos, "gfx/hud/sb_flag_blue_taken", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
+	case 2: drawpic(blueflag_pos, "gfx/hud/sb_flag_blue_lost", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
+	case 3: drawpic(blueflag_pos, "gfx/hud/sb_flag_blue_carrying", '48 48 0', '1 1 1', sbar_alpha_fg, 0); break;
+	default:
+		if(stat_items & IT_CTF_SHIELDED)
+			if(myteam == COLOR_TEAM1)
+				drawpic(blueflag_pos, "gfx/hud/sb_flag_blue_shielded", '48 48 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL); break;
+	}
 }
 
 // Keyhunt HUD
@@ -2245,7 +2509,7 @@
 {
 	float kh_keys, kh_keys_status, kh_teams_set;
 	vector red_pos, blue_pos, yellow_pos, pink_pos, kh_size;
-	
+
 	vector bottomleft;
 	bottomleft_x = 0;
 	bottomleft_y = vid_conheight;
@@ -2254,15 +2518,15 @@
 	red_pos_x = 6;
 	red_pos_y = vid_conheight - 35 - 6;
 	red_pos_z = 0;
-	
+
 	blue_pos_x = 6 + (24 * 1);
 	blue_pos_y = vid_conheight - 35 - 6;
 	blue_pos_z = 0;
-	
+
 	yellow_pos_x = 6 + (24 * 2);
 	yellow_pos_y = vid_conheight - 35 - 6;
 	yellow_pos_z = 0;
-	
+
 	pink_pos_x = 6 + (24 * 3);
 	pink_pos_y = vid_conheight - 35 - 6;
 	pink_pos_z = 0;
@@ -2314,10 +2578,10 @@
 {
 	float stat_items, nb_pb_starttime, dt, p;
 	vector pos;
-	
+
 	stat_items = getstati(STAT_ITEMS);
 	nb_pb_starttime = getstatf(STAT_NB_METERSTART);
-	
+
 	pos_x = 4;
 	pos_y = vid_conheight - 42;
 	pos_z = 0;
@@ -2343,10 +2607,10 @@
 		drawline(NBPB_BT, pos + s, pos + '1 0 0' * s_x, NBPB_BRGB, NBPB_BALPH, NBPB_BFLAG);
 		drawline(NBPB_BT, pos + s, pos + '0 1 0' * s_y, NBPB_BRGB, NBPB_BALPH, NBPB_BFLAG);
 	}
-	
+
 	pos_x += 12; //horizontal margin to the picture
 	pos_y += 2; //vertical margin to the picture
-	
+
 	if (stat_items & IT_KEY1)
 		drawpic(pos, "gfx/hud/sb_nexball_carrying", '80 34 0', '1 1 1', 1, DRAWFLAG_NORMAL);
 }

Modified: branches/nexuiz-2.0/data/qcsrc/client/waypointsprites.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/waypointsprites.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/client/waypointsprites.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -17,9 +17,16 @@
 .float maxdistance;
 .float hideflags;
 .float spawntime;
+.float health;
 
-vector SPRITE_SIZE = '128 32 0';
-vector SPRITE_HOTSPOT = '64 32 0';
+vector SPRITE_SIZE = '256 32 0';
+vector SPRITE_HOTSPOT = '128 32 0';
+float SPRITE_HEALTHBAR_WIDTH = 96;
+float SPRITE_HEALTHBAR_HEIGHT = 6;
+float SPRITE_HEALTHBAR_MARGIN = 4;
+float SPRITE_HEALTHBAR_BORDER = 1;
+float SPRITE_HEALTHBAR_BORDERALPHA = 1;
+float SPRITE_HEALTHBAR_HEALTHALPHA = 0.5;
 
 void drawrotpic(vector org, float rot, string pic, vector sz, vector hotspot, vector rgb, float a, float f)
 {
@@ -49,6 +56,43 @@
 	R_EndPolygon();
 }
 
+void drawquad(vector o, vector ri, vector up, string pic, vector rgb, float a, float f)
+{
+	R_BeginPolygon(pic, f);
+	R_PolygonVertex(o, '0 0 0', rgb, a);
+	R_PolygonVertex(o + ri, '1 0 0', rgb, a);
+	R_PolygonVertex(o + up + ri, '1 1 0', rgb, a);
+	R_PolygonVertex(o + up, '0 1 0', rgb, a);
+	R_EndPolygon();
+}
+
+void drawhealthbar(vector org, float rot, float h, vector sz, vector hotspot, float width, float height, float margin, float border, vector rgb, float a, vector hrgb, float ha, float f)
+{
+	vector o, ri, up;
+	float owidth; // outer width
+
+	hotspot = -1 * hotspot;
+
+	// hotspot-relative coordinates of the healthbar corners
+	o = hotspot;
+	ri = '1 0 0';
+	up = '0 1 0';
+	
+	rot = -rot; // rotate by the opposite angle, as our coordinate system is reversed
+	o = rotate(o, rot) + org;
+	ri = rotate(ri, rot);
+	up = rotate(up, rot);
+
+	owidth = width + 2 * border;
+	o = o - up * (margin + border + height) + ri * (sz_x - owidth) * 0.5;
+
+	drawquad(o - up * border,            ri * owidth,    up * border, "", rgb,  a,  f);
+	drawquad(o + up * height,            ri * owidth,    up * border, "", rgb,  a,  f);
+	drawquad(o,                          ri * border,    up * height, "", rgb,  a,  f);
+	drawquad(o + ri * (owidth - border), ri * border,    up * height, "", rgb,  a,  f);
+	drawquad(o + ri * border,            ri * width * h, up * height, "", hrgb, ha, f);
+}
+
 void Draw_WaypointSprite()
 {
 	string spriteimage;
@@ -191,6 +235,11 @@
 		spriteimage = strcat("models/sprites/", spriteimage, "_frame", ftos(mod(floor((max(0, time - self.spawntime)) * 2), t)));
 
 	drawrotpic(o, rot * 90 * DEG2RAD, spriteimage, SPRITE_SIZE * waypointsprite_scale * vidscale, SPRITE_HOTSPOT * waypointsprite_scale * vidscale, '1 1 1', a, DRAWFLAG_MIPMAP);
+
+	if(self.health >= 0)
+	{
+		drawhealthbar(o, rot * 90 * DEG2RAD, self.health, SPRITE_SIZE * waypointsprite_scale * vidscale, SPRITE_HOTSPOT * waypointsprite_scale * vidscale, SPRITE_HEALTHBAR_WIDTH, SPRITE_HEALTHBAR_HEIGHT, SPRITE_HEALTHBAR_MARGIN, SPRITE_HEALTHBAR_BORDER, self.teamradar_color, a * SPRITE_HEALTHBAR_BORDERALPHA, self.teamradar_color, a * SPRITE_HEALTHBAR_HEALTHALPHA, DRAWFLAG_NORMAL);
+	}
 }
 
 void Ent_RemoveWaypointSprite()
@@ -215,6 +264,11 @@
 
 	InterpolateOrigin_Undo();
 
+	if(sendflags & 0x80)
+		self.health = ReadByte() / 255.0;
+	else
+		self.health = -1;
+
 	if(sendflags & 64)
 	{
 		// unfortunately, this needs to be exact (for the 3D display)

Modified: branches/nexuiz-2.0/data/qcsrc/common/constants.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/common/constants.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/common/constants.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -47,7 +47,7 @@
 const float TE_CSQC_RACE = 101;
 const float TE_CSQC_SPAWN = 102;
 const float TE_CSQC_ZCURVEPARTICLES = 103;
-const float TE_CSQC_NEXGUNBEAMPARTICLE = 104;
+const float TE_CSQC_NEXGUNBEAMPARTICLE = 104;
 const float TE_CSQC_LIGHTNINGARC = 105;
 
 const float RACE_NET_CHECKPOINT_HIT_QUALIFYING = 0; // byte checkpoint, short time, short recordtime, string recordholder
@@ -77,7 +77,10 @@
 const float ENT_CLIENT_MAPVOTE = 17;
 const float ENT_CLIENT_CLIENTDATA = 18;
 const float ENT_CLIENT_RANDOMSEED = 19;
-const float ENT_CLIENT_WALL = 20;
+const float ENT_CLIENT_WALL = 20;
+const float ENT_CLIENT_SPIDERBOT = 21;
+
+const float ENT_CLIENT_TURRET = 40;
 
 const float SPRITERULE_DEFAULT = 0;
 const float SPRITERULE_TEAMPLAY = 1;
@@ -241,20 +244,40 @@
 
 const float STAT_KH_KEYS = 32;
 const float STAT_CTF_STATE = 33;
-const float STAT_SYS_TICRATE = 34;
 const float STAT_WEAPONS = 35;
 const float STAT_SWITCHWEAPON = 36;
 const float STAT_GAMESTARTTIME = 37;
 const float STAT_STRENGTH_FINISHED = 38;
 const float STAT_INVINCIBLE_FINISHED = 39;
+const float STAT_DAMAGE_HITS = 40; // Used by the weapon stats code, represents the total amount of damage done to other players
+const float STAT_DAMAGE_FIRED = 41;// Used by the weapon stats code, represents the total amount of potential damage fired
 const float STAT_PRESSED_KEYS = 42;
 const float STAT_ALLOW_OLDNEXBEAM = 43; // this stat could later contain some other bits of info, like, more server-side particle config
 const float STAT_FUEL = 44;
 const float STAT_NB_METERSTART = 45;
 const float STAT_SHOTORG = 46; // compressShotOrigin
+const float STAT_LEADLIMIT = 47;
 const float CTF_STATE_ATTACK = 1;
 const float CTF_STATE_DEFEND = 2;
 const float CTF_STATE_COMMANDER = 3;
+
+const float STAT_HUD = 50;
+const float HUD_NORMAL = 0;
+const float HUD_SPIDEBOT = 10;
+
+const float STAT_SPIDERBOT_HEALTH  = 60;
+const float STAT_SPIDERBOT_ROCKETS = 61;
+const float STAT_SPIDERBOT_HEAT    = 62;
+const float STAT_SPIDERBOT_RELOAD  = 63;
+const float STAT_SPIDERBOT_ENERGY  = 64;
+const float STAT_SPIDERBOT_SHIELD  = 65;
+
+//const float STAT_SPIDERBOT_AIM     53 // compressShotOrigin
+
+//const float STAT_SPIDERBOT_TARGET  54 // compressShotOrigin
+
+
+
 
 // moved that here so the client knows the max.
 // # of maps, I'll use arrays for them :P

Modified: branches/nexuiz-2.0/data/qcsrc/common/items.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/common/items.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/common/items.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -2,7 +2,7 @@
 entity weapon_info[24];
 entity dummy_weapon_info;
 
-void register_weapon_real(float id, float(float) func, float ammotype, float i, float normalweapon, float canclimb, float pickupbasevalue, string modelname, string shortname, string wname)
+void register_weapon_real(float id, float(float) func, float ammotype, float i, float normalweapon, float canclimb, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname)
 {
 	entity e;
 	weapon_info[id - 1] = e = spawn();
@@ -24,6 +24,7 @@
 	if(canclimb)
 		e.spawnflags |= WEPSPAWNFLAG_CANCLIMB;
 	e.impulse = i;
+	e.weapon_type = weapontype;
 	e.bot_pickupbasevalue = pickupbasevalue;
 }
 float w_null(float dummy)
@@ -45,6 +46,7 @@
 	dummy_weapon_info.model = "";
 	dummy_weapon_info.spawnflags = 0;
 	dummy_weapon_info.impulse = -1;
+	dummy_weapon_info.weapon_type = WEP_TYPE_OTHER;
 	dummy_weapon_info.bot_pickupbasevalue = 0;
 	dummy_weapon_info.model2 = "";
 
@@ -89,33 +91,33 @@
 }
 
 #ifdef SVQC
-#define register_weapon(id,func,ammotype,i,normalweapon,canclimb,pickupbasevalue,modelname,shortname,wname) \
-	register_weapon_real(id,func,ammotype,i,normalweapon,canclimb,pickupbasevalue,modelname,shortname,wname)
+#define register_weapon(id,func,ammotype,i,normalweapon,canclimb,weapontype,pickupbasevalue,modelname,shortname,wname) \
+	register_weapon_real(id,func,ammotype,i,normalweapon,canclimb,weapontype,pickupbasevalue,modelname,shortname,wname)
 #else
 // no weapon funcs here!
-#define register_weapon(id,func,ammotype,i,normalweapon,canclimb,pickupbasevalue,modelname,shortname,wname) \
-	register_weapon_real(id,w_null,ammotype,i,normalweapon,canclimb,pickupbasevalue,modelname,shortname,wname)
+#define register_weapon(id,func,ammotype,i,normalweapon,canclimb,weapontype,pickupbasevalue,modelname,shortname,wname) \
+	register_weapon_real(id,w_null,ammotype,i,normalweapon,canclimb,weapontype,pickupbasevalue,modelname,shortname,wname)
 #endif
 
 void RegisterWeapons()
 {
 	// %weaponaddpoint
-	register_weapon(WEP_LASER,            w_laser,        0,                1,  1, 1, 0,                      "laser",        "laser",           "Laser");
-	register_weapon(WEP_SHOTGUN,          w_shotgun,      IT_SHELLS,        2,  1, 0, BOT_PICKUP_RATING_LOW,  "shotgun",      "shotgun",         "Shotgun");
-	register_weapon(WEP_UZI,              w_uzi,          IT_NAILS,         3,  1, 0, BOT_PICKUP_RATING_MID,  "uzi",          "uzi",             "Machine Gun");
-	register_weapon(WEP_GRENADE_LAUNCHER, w_glauncher,    IT_ROCKETS,       4,  1, 1, BOT_PICKUP_RATING_MID,  "gl",           "grenadelauncher", "Mortar");
-	register_weapon(WEP_ELECTRO,          w_electro,      IT_CELLS,         5,  1, 0, BOT_PICKUP_RATING_MID,  "electro",      "electro",         "Electro");
-	register_weapon(WEP_CRYLINK,          w_crylink,      IT_CELLS,         6,  1, 0, BOT_PICKUP_RATING_MID,  "crylink",      "crylink",         "Crylink");
-	register_weapon(WEP_NEX,              w_nex,          IT_CELLS,         7,  1, 0, BOT_PICKUP_RATING_HIGH, "nex",          "nex",             "Nex");
-	register_weapon(WEP_HAGAR,            w_hagar,        IT_ROCKETS,       8,  1, 1, BOT_PICKUP_RATING_MID,  "hagar",        "hagar",           "Hagar");
-	register_weapon(WEP_ROCKET_LAUNCHER,  w_rlauncher,    IT_ROCKETS,       9,  1, 1, BOT_PICKUP_RATING_HIGH, "rl",           "rocketlauncher",  "Rocket Launcher");
-	register_weapon(WEP_PORTO,            w_porto,        0,                0,  0, 0, 0,                      "porto" ,       "porto",           "Port-O-Launch");
-	register_weapon(WEP_MINSTANEX,        w_minstanex,    IT_CELLS,         7, -1, 1, BOT_PICKUP_RATING_HIGH, "minstanex",    "minstanex",       "MinstaNex");
-	register_weapon(WEP_HOOK,             w_hook,         IT_CELLS|IT_FUEL, 0,  0, 1, 0,                      "hookgun",      "hook",            "Grappling Hook");
-	register_weapon(WEP_SEEKER,           w_seeker,       IT_ROCKETS,       8,  0, 0, BOT_PICKUP_RATING_HIGH, "seeker",       "seeker",          "T.A.G. Seeker");
-	register_weapon(WEP_HLAC,             w_hlac,         IT_CELLS,         6,  1, 0, BOT_PICKUP_RATING_MID,  "hlac",         "hlac",            "Heavy Laser Assault Cannon");
-	register_weapon(WEP_CAMPINGRIFLE,     w_campingrifle, IT_NAILS,         3,  1, 0, BOT_PICKUP_RATING_MID,  "campingrifle", "campingrifle",    "Rifle");
-	register_weapon(WEP_TUBA,             w_tuba,         0,                1, -1, 0, BOT_PICKUP_RATING_MID,  "tuba",         "tuba",            "@!#%'n Tuba");
+	register_weapon(WEP_LASER,            w_laser,        0,                1,  1, 1, WEP_TYPE_SPLASH, 0,                      "laser",        "laser",           "Laser");
+	register_weapon(WEP_SHOTGUN,          w_shotgun,      IT_SHELLS,        2,  1, 0, WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_LOW,  "shotgun",      "shotgun",         "Shotgun");
+	register_weapon(WEP_UZI,              w_uzi,          IT_NAILS,         3,  1, 0, WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID,  "uzi",          "uzi",             "Machine Gun");
+	register_weapon(WEP_GRENADE_LAUNCHER, w_glauncher,    IT_ROCKETS,       4,  1, 1, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID,  "gl",           "grenadelauncher", "Mortar");
+	register_weapon(WEP_ELECTRO,          w_electro,      IT_CELLS,         5,  1, 0, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID,  "electro",      "electro",         "Electro");
+	register_weapon(WEP_CRYLINK,          w_crylink,      IT_CELLS,         6,  1, 0, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID,  "crylink",      "crylink",         "Crylink");
+	register_weapon(WEP_NEX,              w_nex,          IT_CELLS,         7,  1, 0, WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "nex",          "nex",             "Nex");
+	register_weapon(WEP_HAGAR,            w_hagar,        IT_ROCKETS,       8,  1, 1, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID,  "hagar",        "hagar",           "Hagar");
+	register_weapon(WEP_ROCKET_LAUNCHER,  w_rlauncher,    IT_ROCKETS,       9,  1, 1, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "rl",           "rocketlauncher",  "Rocket Launcher");
+	register_weapon(WEP_PORTO,            w_porto,        0,                0,  0, 0, WEP_TYPE_OTHER, 0,                      "porto" ,       "porto",           "Port-O-Launch");
+	register_weapon(WEP_MINSTANEX,        w_minstanex,    IT_CELLS,         7, -1, 1, WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_HIGH, "minstanex",    "minstanex",       "MinstaNex");
+	register_weapon(WEP_HOOK,             w_hook,         IT_CELLS|IT_FUEL, 0,  0, 1, WEP_TYPE_SPLASH, 0,                      "hookgun",      "hook",            "Grappling Hook");
+	register_weapon(WEP_SEEKER,           w_seeker,       IT_ROCKETS,       8,  0, 0, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_HIGH, "seeker",       "seeker",          "T.A.G. Seeker");
+	register_weapon(WEP_HLAC,             w_hlac,         IT_CELLS,         6,  1, 0, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID,  "hlac",         "hlac",            "Heavy Laser Assault Cannon");
+	register_weapon(WEP_CAMPINGRIFLE,     w_campingrifle, IT_NAILS,         3,  1, 0, WEP_TYPE_HITSCAN, BOT_PICKUP_RATING_MID,  "campingrifle", "campingrifle",    "Rifle");
+	register_weapon(WEP_TUBA,             w_tuba,         0,                1, -1, 0, WEP_TYPE_SPLASH, BOT_PICKUP_RATING_MID,  "tuba",         "tuba",            "@!#%'n Tuba");
 
 	register_weapons_done();
 }

Modified: branches/nexuiz-2.0/data/qcsrc/common/items.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/common/items.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/common/items.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -24,6 +24,10 @@
 float BOT_PICKUP_RATING_MID	= 5000;
 float BOT_PICKUP_RATING_HIGH	= 10000;
 
+float WEP_TYPE_OTHER	= 0;	// e.g: Hook, Port-o-launch, etc
+float WEP_TYPE_SPLASH	= 1;
+float WEP_TYPE_HITSCAN	= 2;
+
 float	IT_UNLIMITED_WEAPON_AMMO  = 1;
 // when this bit is set, using a weapon does not reduce ammo. Checkpoints can give this powerup.
 float	IT_UNLIMITED_SUPERWEAPONS = 2;
@@ -87,5 +91,6 @@
 .string model; // full name of g_ model
 .float spawnflags; // WEPSPAWNFLAG_... combined
 .float impulse; // weapon impulse
+.float weapon_type; // see WEP_TYPE_* constants
 .float bot_pickupbasevalue; // bot weapon priority
 .string model2; // wpn- sprite name

Modified: branches/nexuiz-2.0/data/qcsrc/common/mapinfo.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/common/mapinfo.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/common/mapinfo.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -446,6 +446,10 @@
 			cvar_set("fraglimit", sa);
 		s = cdr(s);
 	}
+
+	sa = car(s); if(sa == "") sa = "0";
+	cvar_set("leadlimit", sa);
+	s = cdr(s);
 }
 
 float MapInfo_Type_FromString(string t)

Modified: branches/nexuiz-2.0/data/qcsrc/common/util.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/common/util.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/common/util.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -235,7 +235,7 @@
 		case  2: return '0.000000 1.000000 0.501961';
 		case  3: return '0.000000 1.000000 0.000000';
 		case  4: return '1.000000 0.000000 0.000000';
-		case  5: return '0.000000 0.501961 1.000000';
+		case  5: return '0.000000 0.658824 1.000000';
 		case  6: return '0.000000 1.000000 1.000000';
 		case  7: return '0.501961 1.000000 0.000000';
 		case  8: return '0.501961 0.000000 1.000000';
@@ -243,7 +243,7 @@
 		case 10: return '1.000000 0.000000 0.501961';
 		case 11: return '0.600000 0.600000 0.600000';
 		case 12: return '1.000000 1.000000 0.000000';
-		case 13: return '0.000000 0.000000 1.000000';
+		case 13: return '0.000000 0.313725 1.000000';
 		case 14: return '1.000000 0.501961 0.000000';
 		case 15:
 			if(isPants)

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -11,6 +11,7 @@
 	ATTRIB(NexuizServerCreateTab, sliderFraglimit, entity, NULL)
 	ATTRIB(NexuizServerCreateTab, sliderTimelimit, entity, NULL)
 	ATTRIB(NexuizServerCreateTab, checkboxFraglimit, entity, NULL)
+	ATTRIB(NexuizServerCreateTab, checkboxFraglimitMapinfo, entity, NULL)
 ENDCLASS(NexuizServerCreateTab)
 entity makeNexuizServerCreateTab();
 #endif
@@ -96,13 +97,14 @@
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2.8, e = makeNexuizSliderCheckBox(-1, 0, me.sliderFraglimit, "Use map specified default"));
+			me.checkboxFraglimitMapinfo = e;
 	me.TR(me);
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Player slots:"));
 		me.TD(me, 1, 2, makeNexuizSlider(1, 32, 1, "menu_maxplayers"));
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Number of bots:"));
-		me.TD(me, 1, 2, makeNexuizSlider(0, 7, 1, "bot_number"));
+		me.TD(me, 1, 2, makeNexuizSlider(0, 9, 1, "bot_number"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Bot skill:"));
@@ -173,28 +175,41 @@
 	me.gameTypeChangeNotify(me);
 }
 
-void GameType_ConfigureSliders(entity e, entity l, string pLabel, float pMin, float pMax, float pStep, string pCvar)
+void GameType_ConfigureSliders(entity e, entity l, entity l2, string pLabel, float pMin, float pMax, float pStep, string pCvar)
 {
-	e.configureNexuizSlider(e, pMin, pMax, pStep, pCvar);
-	l.setText(l, pLabel);
+	if(pCvar == "")
+	{
+		e.disabled = l.disabled = l2.disabled = TRUE;
+	}
+	else
+	{
+		e.configureNexuizSlider(e, pMin, pMax, pStep, pCvar);
+		l.setText(l, pLabel);
+		e.disabled = l.disabled = l2.disabled = FALSE;
+	}
 }
 
 void gameTypeChangeNotifyNexuizServerCreateTab(entity me)
 {
 	// tell the map list to update
 	float gt;
-	entity e, l;
+	entity e, l, l2;
 	gt = MapInfo_CurrentGametype();
 	e = me.sliderFraglimit;
 	l = me.checkboxFraglimit;
+	l2 = me.checkboxFraglimitMapinfo;
 	switch(gt)
 	{
-		case MAPINFO_TYPE_CTF:        GameType_ConfigureSliders(e, l, "Point limit:",  50,  500, 10, "g_ctf_capture_limit");      break;
-		case MAPINFO_TYPE_DOMINATION: GameType_ConfigureSliders(e, l, "Point limit:",  50,  500, 10, "g_domination_point_limit"); break;
-		case MAPINFO_TYPE_KEYHUNT:    GameType_ConfigureSliders(e, l, "Point limit:", 200, 1500, 50, "g_keyhunt_point_limit");    break;
-		case MAPINFO_TYPE_RUNEMATCH:  GameType_ConfigureSliders(e, l, "Point limit:",  50,  500, 10, "g_runematch_point_limit");  break;
-		case MAPINFO_TYPE_LMS:        GameType_ConfigureSliders(e, l, "Lives:",         3,   50,  1, "g_lms_lives_override");     break;
-		default:                      GameType_ConfigureSliders(e, l, "Frag limit:",    5,  100,  5, "fraglimit_override");       break;
+		case MAPINFO_TYPE_CTF:        GameType_ConfigureSliders(e, l, l2, "Capture limit:",   1,   20, 1, "capturelimit_override");     break;
+		case MAPINFO_TYPE_DOMINATION: GameType_ConfigureSliders(e, l, l2, "Point limit:",    50,  500, 10, "g_domination_point_limit"); break;
+		case MAPINFO_TYPE_KEYHUNT:    GameType_ConfigureSliders(e, l, l2, "Point limit:",   200, 1500, 50, "g_keyhunt_point_limit");    break;
+		case MAPINFO_TYPE_RUNEMATCH:  GameType_ConfigureSliders(e, l, l2, "Point limit:",    50,  500, 10, "g_runematch_point_limit");  break;
+		case MAPINFO_TYPE_LMS:        GameType_ConfigureSliders(e, l, l2, "Lives:",           3,   50,  1, "g_lms_lives_override");     break;
+		case MAPINFO_TYPE_RACE:       GameType_ConfigureSliders(e, l, l2, "Laps:",            1,   25,  1, "g_race_laps_limit");        break;
+		case MAPINFO_TYPE_NEXBALL:    GameType_ConfigureSliders(e, l, l2, "Goals:",           1,   50,  1, "g_nexball_goallimit");      break;
+		case MAPINFO_TYPE_ASSAULT:    GameType_ConfigureSliders(e, l, l2, "Point limit:",    50,  500, 10, "");                         break;
+		case MAPINFO_TYPE_ONSLAUGHT:  GameType_ConfigureSliders(e, l, l2, "Point limit:",    50,  500, 10, "");                         break;
+		default:                      GameType_ConfigureSliders(e, l, l2, "Frag limit:",      5,  100,  5, "fraglimit_override");       break;
 	}
 	me.mapListBox.refilter(me.mapListBox);
 }

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_advanced.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -29,16 +29,16 @@
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.2, e = makeNexuizTextLabel(0, "Spawn shield:"));
-		me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 15, 0.5, "g_spawnshieldtime"));
+		me.TD(me, 1, 1.7, e = makeNexuizSlider(0, 15, 0.5, "g_spawnshieldtime"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.2, e = makeNexuizTextLabel(0, "Start delay:"));
-		me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 30, 0.5, "g_start_delay"));
+		me.TD(me, 1, 1.7, e = makeNexuizSlider(0, 30, 0.5, "g_start_delay"));
 	me.TR(me);
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.2, e = makeNexuizTextLabel(0, "Game speed:"));
-		me.TD(me, 1, 1.6, e = makeNexuizSlider(0.5, 2.0, 0.1, "slowmo"));
+		me.TD(me, 1, 1.7, e = makeNexuizSlider(0.5, 2.0, 0.1, "slowmo"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.2, e = makeNexuizCheckBoxEx(2, 0, "g_antilag", "AntiLag"));
@@ -48,11 +48,11 @@
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.2, e = makeNexuizTextLabel(0, "Friendly fire scale:"));
-		me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 1.0, 0.05, "g_friendlyfire"));
+		me.TD(me, 1, 1.7, e = makeNexuizSlider(0, 1.0, 0.05, "g_friendlyfire"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
 		me.TD(me, 1, 1.2, e = makeNexuizTextLabel(0, "Mirror damage:"));
-		me.TD(me, 1, 1.6, e = makeNexuizSlider(0, 1.0, 0.05, "g_mirrordamage"));
+		me.TD(me, 1, 1.7, e = makeNexuizSlider(0, 1.0, 0.05, "g_mirrordamage"));
 
 	me.gotoRC(me, me.rows - 1, 0);
 		me.TD(me, 1, me.columns, e = makeNexuizButton("OK", '0 0 0'));

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mutators.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mutators.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mutators.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -6,7 +6,7 @@
 	METHOD(NexuizMutatorsDialog, close, void(entity))
 	ATTRIB(NexuizMutatorsDialog, title, string, "Mutators")
 	ATTRIB(NexuizMutatorsDialog, color, vector, SKINCOLOR_DIALOG_MUTATORS)
-	ATTRIB(NexuizMutatorsDialog, intendedWidth, float, 0.8)
+	ATTRIB(NexuizMutatorsDialog, intendedWidth, float, 0.9)
 	ATTRIB(NexuizMutatorsDialog, rows, float, 17)
 	ATTRIB(NexuizMutatorsDialog, columns, float, 6)
 	ATTRIB(NexuizMutatorsDialog, refilterEntity, entity, NULL)
@@ -161,47 +161,59 @@
 	me.TR(me);
 		me.TD(me, 1, 2, makeNexuizTextLabel(0, "Gameplay mutators:"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_cloaked", "Cloaked"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_footsteps", "Footsteps"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_midair", "Midair"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_vampire", "Vampire"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		s = makeNexuizSlider(10, 50, 1, "g_bloodloss");
 		me.TD(me, 1, 2, e = makeNexuizSliderCheckBox(0, 1, s, "Blood loss"));
 	me.TR(me);
-		me.TDempty(me, 0.2);
+		me.TDempty(me, 0.4);
 		me.TD(me, 1, 1.8, s);
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		s = makeNexuizSlider(80, 400, 8, "sv_gravity");
 			s.valueDigits = 0;
 			s.valueDisplayMultiplier = 0.125; // show gravity in percent
 		me.TD(me, 1, 2, e = makeNexuizSliderCheckBox(800, 1, s, "Low gravity"));
 			e.savedValue = 200; // good on silvercity
 	me.TR(me);
-		me.TDempty(me, 0.2);
+		me.TDempty(me, 0.4);
 		me.TD(me, 1, 1.8, s);
 	me.TR(me);
 	me.TR(me);
 		me.TD(me, 1, 2, makeNexuizTextLabel(0, "Weapon & item mutators:"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_grappling_hook", "Grappling hook"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_jetpack", "Jet pack"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_laserguided_missile", "Laser guided missiles"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "g_pinata", "Pinata"));
 	me.TR(me);
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizCheckBoxEx(2, 0, "g_weapon_stay", "Weapons stay"));
 	me.TR(me);
 
 	me.gotoRC(me, 0, 2); me.setFirstColumn(me, me.currentColumn);
 		me.TD(me, 1, 4, makeNexuizTextLabel(0, "Weapon arenas:"));
 	me.TR(me);
-		me.TD(me, 1, 4, e = makeNexuizRadioButton(1, string_null, string_null, "Regular (no arena)"));
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, string_null, string_null, "Regular (no arena)"));
 	for(i = WEP_FIRST, j = 0; i <= WEP_LAST; ++i)
 	{
 		w = get_weaponinfo(i);
@@ -211,6 +223,7 @@
 			me.TR(me);
 		str = w.netname;
 		hstr = w.message;
+		me.TDempty(me, 0.2);
 		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_weaponarena", strzone(str), strzone(hstr)));
 			e.cvarOffValue = "0";
 			// custom load/save logic that ignores a " laser" suffix, or adds it 
@@ -221,7 +234,7 @@
 	}
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 3.8, e = makeNexuizCheckBox(0, "menu_weaponarena_with_laser", "with laser"));
+		me.TD(me, 1, 1, e = makeNexuizCheckBox(0, "menu_weaponarena_with_laser", "with laser"));
 			// hook the draw function to gray it out
 			e.draw_weaponarena = e.draw;
 			e.draw = preDrawLaserWeaponArenaLaserButton;
@@ -231,15 +244,18 @@
 	me.TR(me);
 		me.TD(me, 1, 4, makeNexuizTextLabel(0, "Special arenas:"));
 	me.TR(me);
-		me.TD(me, 1, 4, e = makeNexuizRadioButton(1, "g_minstagib", string_null, "MinstaGib"));
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_minstagib", string_null, "MinstaGib"));
 	me.TR(me);
-		me.TD(me, 1, 4, e = makeNexuizRadioButton(1, "g_nixnex", string_null, "NixNex"));
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_nixnex", string_null, "NixNex"));
 	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 3.8, e = makeNexuizCheckBox(0, "g_nixnex_with_laser", "with laser"));
+		me.TDempty(me, 0.4);
+		me.TD(me, 1, 1, e = makeNexuizCheckBox(0, "g_nixnex_with_laser", "with laser"));
 			setDependent(e, "g_nixnex", 1, 1);
 	me.TR(me);
-		me.TD(me, 1, 4, e = makeNexuizRadioButton(1, "g_weaponarena", "most", "Most weapons"));
+		me.TDempty(me, 0.2);
+		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_weaponarena", "most", "Most weapons"));
 			e.cvarOffValue = "0";
 
 	me.gotoRC(me, me.rows - 1, 0);

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -105,9 +105,8 @@
 			e0.allowCut = 1;
 	me.TR(me);
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "crosshair_per_weapon", "Per weapon crosshairs"));
-	me.TR(me);
-		me.TD(me, 1, 3, e = makeNexuizCheckBox(1, "crosshair_color_override", "Per weapon crosshair colors"));
+		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "crosshair_per_weapon", "Per weapon crosshairs"));
+		me.TD(me, 1, 1.3, e = makeNexuizCheckBox(1, "crosshair_color_override", "& crosshair colors"));
 		setDependent(e, "crosshair_per_weapon", 1, 1);
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Crosshair:"));
@@ -147,8 +146,13 @@
 			e.onClickEntity = main.radarDialog;
 		me.TDempty(me, 0.5);
 	me.TR(me);
+	me.TR(me);
+		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Force Models:"));
+		me.TD(me, 1, 2/3, e = makeNexuizRadioButton(1, string_null, string_null, "None"));
+		me.TD(me, 1, 2/3, e = makeNexuizRadioButton(1, "cl_forceplayermodelsfromnexuiz", string_null, "Custom"));
+		me.TD(me, 1, 2/3, e = makeNexuizRadioButton(1, "cl_forceplayermodels", string_null, "All"));
 
 	me.gotoRC(me, me.rows - 1, 0);
-		me.TD(me, 1, me.columns, makeNexuizCommandButton("Apply immediately", '0 0 0', "color -1 -1;name \"$_cl_name\";sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_shownames", COMMANDBUTTON_APPLY));
+		me.TD(me, 1, me.columns, makeNexuizCommandButton("Apply immediately", '0 0 0', "color -1 -1;name \"$_cl_name\";sendcvar cl_weaponpriority;sendcvar cl_zoomfactor;sendcvar cl_zoomspeed;sendcvar cl_autoswitch;sendcvar cl_shownames;sendcvar cl_forceplayermodelsfromnexuiz;sendcvar cl_forceplayermodels", COMMANDBUTTON_APPLY));
 }
 #endif

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_playersetup_radar.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -6,7 +6,7 @@
 	ATTRIB(NexuizRadarDialog, title, string, "Radar, HUD & Waypoints")
 	ATTRIB(NexuizRadarDialog, color, vector, SKINCOLOR_DIALOG_RADAR)
 	ATTRIB(NexuizRadarDialog, intendedWidth, float, 0.7)
-	ATTRIB(NexuizRadarDialog, rows, float, 17)
+	ATTRIB(NexuizRadarDialog, rows, float, 18)
 	ATTRIB(NexuizRadarDialog, columns, float, 4)
 ENDCLASS(NexuizRadarDialog)
 #endif
@@ -58,20 +58,29 @@
 		me.TD(me, 1, 4, makeNexuizTextLabel(0, "HUD settings:"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
-		me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Default Red:"));
-		me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_color_bg_r"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Default Green:"));
-		me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_color_bg_g"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Default Blue:"));
-		me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_color_bg_b"));
-	me.TR(me);
-		me.TDempty(me, 0.2);
-		me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Alpha:"));
+		me.TD(me, 1, 0.8, e = makeNexuizCheckBoxEx(100, 110, "viewsize", "Background:"));
 		me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_alpha_bg"));
+			setDependent(e, "viewsize", 0, 100);
+		me.TR(me);
+			me.TDempty(me, 0.2);
+			me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Default Red:"));
+			me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_color_bg_r"));
+				setDependent(e, "viewsize", 0, 100);
+		me.TR(me);
+			me.TDempty(me, 0.2);
+			me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Default Green:"));
+			me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_color_bg_g"));
+				setDependent(e, "viewsize", 0, 100);
+		me.TR(me);
+			me.TDempty(me, 0.2);
+			me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Default Blue:"));
+			me.TD(me, 1, 3, e = makeNexuizSlider(0, 1, 0.01, "sbar_color_bg_b"));
+				setDependent(e, "viewsize", 0, 100);
+		me.TR(me);
+			me.TDempty(me, 0.2);
+			me.TD(me, 1, 0.8, e = makeNexuizTextLabel(0, "Team brightness:"));
+			me.TD(me, 1, 3, e = makeNexuizSlider(0.1, 1, 0.01, "sbar_color_bg_team"));
+				setDependent(e, "viewsize", 0, 100);
 	me.TR(me);
 	me.TR(me);
 		me.TD(me, 1, 4, makeNexuizTextLabel(0, "Waypoint settings:"));

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_effects.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_effects.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_effects.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -160,7 +160,8 @@
 	me.TR(me);
 
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "r_coronas", "Coronas"));
+		me.TD(me, 1, 1, e = makeNexuizCheckBox(0, "r_coronas", "Coronas"));
+		me.TD(me, 1, 2, e = makeNexuizCheckBox(0, "r_coronas_occlusionquery", "Use occlusion queries"));
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizCheckBox(0, "r_bloom", "Bloom"));
 			setDependent(e, "r_hdr", 0, 0);

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_video.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_video.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_settings_video.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -36,9 +36,7 @@
 	me.TR(me);
 		me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "r_glsl", "Use OpenGL 2.0 shaders (GLSL)"));
 	me.TR(me);
-		me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "r_coronas_occlusionquery", "Use occlusion queries"));
 	me.TR(me);
-	me.TR(me);
 		me.TD(me, 1, 3, e = makeNexuizTextLabel(0, "Vertex Buffer Objects (VBOs)"));
 	me.TR(me);
 		me.TDempty(me, 0.2);
@@ -82,7 +80,7 @@
 	me.TR(me);
 		me.TD(me, 1, 1, e = makeNexuizTextLabel(0, "Saturation:"));
 			setDependent(e, "r_glsl", 1, 1);
-		me.TD(me, 1, 2, e = makeNexuizSlider(0.0, 2.0, 0.1, "r_glsl_saturation"));
+		me.TD(me, 1, 2, e = makeNexuizSlider(0.0, 2.0, 0.05, "r_glsl_saturation"));
 			setDependent(e, "r_glsl", 1, 1);
 	me.TR(me);
 		me.TD(me, 1, 3, e = makeNexuizCheckBox(0, "v_glslgamma", "Use GLSL to handle color control"));

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -41,7 +41,7 @@
 		vp *= 10;
 	me.configureSliderVisuals(me, me.fontSize, me.align, me.valueSpace, me.image);
 	me.configureSliderValues(me, theValueMin, v, theValueMax, theValueStep, vk, vp);
-	if(theCvar)
+	if(theCvar && tooltipdb >= 0)
 	{
 		me.cvarName = theCvar;
 		me.tooltip = getZonedTooltipForIdentifier(theCvar);

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider_resolution.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider_resolution.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/slider_resolution.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -25,17 +25,19 @@
 {
 	me.configureNexuizTextSlider(me, "vid_width");
 	me.addResolution(me, 640, 480, 640, 480);
+	me.addResolution(me, 800, 480, 800, 480);
 	me.addResolution(me, 800, 600, 800, 600);
+	me.addResolution(me, 1024, 600, 800, 468.75);
 	me.addResolution(me, 1024, 768, 800, 600);
 	me.addResolution(me, 1152, 864, 800, 600);
-	me.addResolution(me, 1280, 800, 800, 600);
+	me.addResolution(me, 1280, 800, 800, 500);
 	me.addResolution(me, 1280, 960, 800, 600);
-	me.addResolution(me, 1280, 1024, 800, 600);
-	me.addResolution(me, 1440, 900, 800, 600);
-	me.addResolution(me, 1600, 900, 800, 600);
+	me.addResolution(me, 1280, 1024, 800, 640);
+	me.addResolution(me, 1440, 900, 800, 500);
+	me.addResolution(me, 1600, 900, 800, 450);
 	me.addResolution(me, 1600, 1200, 800, 600);
-	me.addResolution(me, 1680, 1050, 800, 600);
-	me.addResolution(me, 1920, 1200, 800, 600);
+	me.addResolution(me, 1680, 1050, 800, 500);
+	me.addResolution(me, 1920, 1200, 800, 500);
 	me.addResolution(me, 2048, 1536, 800, 600);
 	me.configureNexuizTextSliderValues(me);
 }

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/util.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/util.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/util.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -10,6 +10,7 @@
 void setDependentAND3(entity e, string theCvarName, float theCvarMin, float theCvarMax, string theCvar2Name, float theCvar2Min, float theCvar2Max, string theCvar3Name, float theCvar3Min, float theCvar3Max);
 void setDependentStringNotEqual(entity e, string theCvarName, string theCvarValue);
 
+float tooltipdb;
 void loadTooltips();
 void unloadTooltips();
 string getZonedTooltipForIdentifier(string s);

Modified: branches/nexuiz-2.0/data/qcsrc/server/bots.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/bots.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/bots.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -66,6 +66,7 @@
 // can be traveled, used for waypoint linking and havocbot
 
 vector stepheightvec;
+float bot_navigation_movemode;
 float navigation_testtracewalk;
 float tracewalk(entity e, vector start, vector m1, vector m2, vector end, float movemode)
 {
@@ -574,6 +575,7 @@
 	local vector sv, sm1, sm2, ev, em1, em2, dv;
 
 	stepheightvec = cvar("sv_stepheight") * '0 0 1';
+	bot_navigation_movemode = ((cvar("bot_navigation_ignoreplayers")) ? MOVE_NOMONSTERS : MOVE_NORMAL);
 
 	//dprint("waypoint_think wpisbox = ", ftos(self.wpisbox), "\n");
 	sm1 = self.origin + self.mins;
@@ -1318,6 +1320,14 @@
 {
 	entity w;
 
+	// drop the waypoint to a proper location:
+	//   first move it up by a player height
+	//   then move it down to hit the floor with player bbox size
+	traceline(position, position + '0 0 1' * (PL_MAX_z - PL_MIN_z), MOVE_NOMONSTERS, world);
+	tracebox(trace_endpos, PL_MIN, PL_MAX, trace_endpos + '0 0 -1024', MOVE_NOMONSTERS, world);
+	if(trace_fraction < 1)
+		position = trace_endpos;
+
 	w = waypoint_spawn(position, position, WAYPOINTFLAG_GENERATED | WAYPOINTFLAG_PERSONAL);
 	w.nearestwaypoint = world;
 	w.nearestwaypointtimeout = 0;
@@ -1506,7 +1516,7 @@
 					if (walkfromwp)
 					{
 						//print("^1can I reach ", vtos(org), " from ", vtos(v), "?\n");
-						if (tracewalk(ent, v, PL_MIN, PL_MAX, org, MOVE_NORMAL))
+						if (tracewalk(ent, v, PL_MIN, PL_MAX, org, bot_navigation_movemode))
 						{
 							bestdist = dist;
 							best = w;
@@ -1514,7 +1524,7 @@
 					}
 					else
 					{
-						if (tracewalk(ent, org, PL_MIN, PL_MAX, v, MOVE_NORMAL))
+						if (tracewalk(ent, org, PL_MIN, PL_MAX, v, bot_navigation_movemode))
 						{
 							bestdist = dist;
 							best = w;
@@ -1557,7 +1567,7 @@
 			if (vlen(diff) < maxdist)
 			{
 				head.wpconsidered = TRUE;
-				if (tracewalk(self, self.origin, self.mins, self.maxs, v, MOVE_NORMAL))
+				if (tracewalk(self, self.origin, self.mins, self.maxs, v, bot_navigation_movemode))
 				{
 					head.wpnearestpoint = v;
 					head.wpcost = vlen(v - self.origin) + head.dmg;
@@ -1790,7 +1800,7 @@
 	navigation_pushroute(e);
 
 	// if it can reach the goal there is nothing more to do
-	if (tracewalk(self, startposition, PL_MIN, PL_MAX, e.origin, MOVE_NORMAL))
+	if (tracewalk(self, startposition, PL_MIN, PL_MAX, e.origin, bot_navigation_movemode))
 		return TRUE;
 
 	// see if there are waypoints describing a path to the item
@@ -1917,16 +1927,23 @@
 	if not (self.navigation_hasgoals)
 	{
 		dprint(self.netname, " can't walk to any goal, going to a near waypoint\n");
-		local entity head;
-		head = findradius(self.origin,500);
+
+		entity head;
+
+		RandomSelection_Init();
+		head = findradius(self.origin,1000);
 		while(head)
 		{
 			if(head.classname=="waypoint")
-			if(checkpvs(self.origin,head))
-				navigation_routetogoal(head,self.origin);
-
+			if(!(head.wpflags & WAYPOINTFLAG_GENERATED))
+			if(vlen(self.origin-head.origin)>100)
+			if(checkpvs(self.view_ofs,head))
+				RandomSelection_Add(head, 0, string_null, 1 + (vlen(self.origin-head.origin)<500), 0);
 			head = head.chain;
 		}
+		if(RandomSelection_chosen_ent)
+			navigation_routetogoal(RandomSelection_chosen_ent, self.origin);
+
 		self.navigation_hasgoals = FALSE; // Reset this value
 	}
 };
@@ -1982,12 +1999,16 @@
 
 void bot_setnameandstuff()
 {
-	local string readfile, s;
-	local float file, tokens;
+	string readfile, s;
+	float file, tokens, prio;
+	entity p;
 
-	local string bot_name, bot_model, bot_skin, bot_shirt, bot_pants;
-	local string name, prefix, suffix;
+	string bot_name, bot_model, bot_skin, bot_shirt, bot_pants;
+	string name, prefix, suffix;
 
+	prefix = cvar_string("bot_prefix");
+	suffix = cvar_string("bot_suffix");
+
 	file = fopen(cvar_string("bot_config_file"), FILE_READ);
 
 	if(file < 0)
@@ -1997,16 +2018,27 @@
 		RandomSelection_Init();
 		for(;;)
 		{
-			s = fgets(file);
-			if(!s)
+			readfile = fgets(file);
+			if(!readfile)
 				break;
-			if(substring(s, 0, 2) == "//")
+			if(substring(readfile, 0, 2) == "//")
 				continue;
-			if(substring(s, 0, 1) == "#")
+			if(substring(readfile, 0, 1) == "#")
 				continue;
-			RandomSelection_Add(world, 0, s, 1, 0);
-			readfile = RandomSelection_chosen_string;
+			tokens = tokenizebyseparator(readfile, "\t");
+			s = argv(0);
+			prio = 1;
+			FOR_EACH_CLIENT(p)
+			{
+				if(strcat(prefix, s, suffix) == p.netname)
+				{
+					prio = 0;
+					break;
+				}
+			}
+			RandomSelection_Add(world, 0, readfile, 1, prio);
 		}
+		readfile = RandomSelection_chosen_string;
 		fclose(file);
 	}
 
@@ -2028,8 +2060,6 @@
 
 	self.bot_forced_team = stof(argv(5));
 	self.bot_config_loaded = TRUE;
-	prefix = cvar_string("bot_prefix");
-	suffix = cvar_string("bot_suffix");
 
 	// this is really only a default, JoinBestTeam is called later
 	setcolor(self, stof(bot_shirt) * 16 + stof(bot_pants));
@@ -2042,7 +2072,9 @@
 		name = bot_name;
 
 	// pick the model and skin
-	self.playermodel = self.playermodel_freeme = strzone(strcat("models/player/", bot_model, ".zym"));
+	if(substring(bot_model, -4, 1) != ".")
+		bot_model = strcat(bot_model, ".zym");
+	self.playermodel = self.playermodel_freeme = strzone(strcat("models/player/", bot_model));
 	self.playerskin = self.playerskin_freeme = strzone(bot_skin);
 
  	if(!cvar("g_campaign"))
@@ -2679,7 +2711,7 @@
 		{
 			//navigation_testtracewalk = TRUE;
 			head = navigation_findnearestwaypoint(player, FALSE);
-			print("currently selected WP is ", etos(head), "\n");
+		//	print("currently selected WP is ", etos(head), "\n");
 			//navigation_testtracewalk = FALSE;
 			if (head)
 			{
@@ -2832,6 +2864,7 @@
 		return;
 
 	stepheightvec = cvar("sv_stepheight") * '0 0 1';
+	bot_navigation_movemode = ((cvar("bot_navigation_ignoreplayers")) ? MOVE_NOMONSTERS : MOVE_NORMAL);
 
 	if(time > autoskill_nextthink)
 	{
@@ -2857,7 +2890,7 @@
 	// But don't remove bots immediately on level change, as the real players
 	// usually haven't rejoined yet
 	bots_would_leave = FALSE;
-	if (realplayers || cvar("bot_join_empty") || (currentbots > 0 && time < 5))
+	if ((realplayers || cvar("bot_join_empty") || (currentbots > 0 && time < 5)))
 	{
 		float realminplayers, minplayers;
 		realminplayers = cvar("minplayers");

Modified: branches/nexuiz-2.0/data/qcsrc/server/bots_scripting.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/bots_scripting.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/bots_scripting.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,3 +1,114 @@
+.float bot_cmdqueuebuf_allocated;
+.float bot_cmdqueuebuf;
+.float bot_cmdqueuebuf_start;
+.float bot_cmdqueuebuf_end;
+
+void bot_clearqueue(entity bot)
+{
+	if(!bot.bot_cmdqueuebuf_allocated)
+		error("readcommand but no queue allocated");
+	buf_del(bot.bot_cmdqueuebuf);
+	bot.bot_cmdqueuebuf_allocated = FALSE;
+	print("bot ", bot.netname, " queue cleared\n");
+}
+
+void bot_queuecommand(entity bot, string cmdstring)
+{
+	if(!bot.bot_cmdqueuebuf_allocated)
+	{
+		bot.bot_cmdqueuebuf = buf_create();
+		bot.bot_cmdqueuebuf_start = 0;
+		bot.bot_cmdqueuebuf_end = 0;
+		bot.bot_cmdqueuebuf_allocated = TRUE;
+	}
+
+	bufstr_set(bot.bot_cmdqueuebuf, bot.bot_cmdqueuebuf_end, cmdstring);
+	bot.bot_cmdqueuebuf_end += 1;
+}
+
+void bot_dequeuecommand(entity bot, float idx)
+{
+	if(!bot.bot_cmdqueuebuf_allocated)
+		error("dequeuecommand but no queue allocated");
+	if(idx < bot.bot_cmdqueuebuf_start)
+		error("dequeueing a command in the past");
+	if(idx >= bot.bot_cmdqueuebuf_end)
+		error("dequeueing a command in the future");
+	bufstr_set(bot.bot_cmdqueuebuf, idx, "");
+	if(idx == bot.bot_cmdqueuebuf_start)
+		bot.bot_cmdqueuebuf_start += 1;
+	if(bot.bot_cmdqueuebuf_start >= bot.bot_cmdqueuebuf_end)
+		bot_clearqueue(bot);
+}
+
+string bot_readcommand(entity bot, float idx)
+{
+	if(!bot.bot_cmdqueuebuf_allocated)
+		error("readcommand but no queue allocated");
+	if(idx < bot.bot_cmdqueuebuf_start)
+		error("reading a command in the past");
+	if(idx >= bot.bot_cmdqueuebuf_end)
+		error("reading a command in the future");
+	return bufstr_get(bot.bot_cmdqueuebuf, idx);
+}
+
+float bot_havecommand(entity bot, float idx)
+{
+	if(!bot.bot_cmdqueuebuf_allocated)
+		return 0;
+	if(idx < bot.bot_cmdqueuebuf_start)
+		return 0;
+	if(idx >= bot.bot_cmdqueuebuf_end)
+		return 0;
+	return 1;
+}
+
+#define MAX_BOT_PLACES 4
+.float bot_places_count;
+.entity bot_places[MAX_BOT_PLACES];
+.string bot_placenames[MAX_BOT_PLACES];
+entity bot_getplace(string placename)
+{
+	entity e;
+	if(substring(placename, 0, 1) == "@")
+	{
+		float i, p;
+		placename = substring(placename, 1, -1);
+		string s, s2;
+		for(i = 0; i < self.bot_places_count; ++i)
+			if(self.(bot_placenames[i]) == placename)
+				return self.(bot_places[i]);
+		// now: i == self.bot_places_count
+		s = s2 = cvar_string(placename);
+		p = strstrofs(s2, " ", 0);
+		if(p >= 0)
+		{
+			s = substring(s2, 0, p);
+			//print("places: ", placename, " -> ", cvar_string(placename), "\n");
+			cvar_set(placename, strcat(substring(s2, p+1, -1), " ", s));
+			//print("places: ", placename, " := ", cvar_string(placename), "\n");
+		}
+		e = find(world, targetname, s);
+		if(!e)
+			print("invalid place ", s, "\n");
+		if(i < MAX_BOT_PLACES)
+		{
+			self.(bot_placenames[i]) = strzone(placename);
+			self.(bot_places[i]) = e;
+			self.bot_places_count += 1;
+		}
+		return e;
+	}
+	else
+	{
+		e = find(world, targetname, placename);
+		if(!e)
+			print("invalid place ", s, "\n");
+		return e;
+	}
+}
+
+
 // NOTE: New commands should be added here. Do not forget to update BOT_CMD_COUNTER
 #define BOT_CMD_NULL			0
 #define BOT_CMD_PAUSE			1
@@ -17,14 +128,15 @@
 #define BOT_CMD_SELECTWEAPON		15
 #define BOT_CMD_IMPULSE			16
 #define BOT_CMD_WAIT_UNTIL		17
-#define BOT_CMD_RESETQUEUE		18
-#define BOT_CMD_MOVETOTARGET    19
-#define BOT_CMD_AIMTARGET       20
-#define BOT_CMD_WHILE			21	// TODO: Not implemented yet
-#define BOT_CMD_WEND			22	// TODO: Not implemented yet
-#define BOT_CMD_CHASE			23	// TODO: Not implemented yet
+#define BOT_CMD_MOVETOTARGET    18
+#define BOT_CMD_AIMTARGET       19
+#define BOT_CMD_BARRIER         20
+#define BOT_CMD_CONSOLE			21
+#define BOT_CMD_WHILE			22	// TODO: Not implemented yet
+#define BOT_CMD_WEND			23	// TODO: Not implemented yet
+#define BOT_CMD_CHASE			24	// TODO: Not implemented yet
 
-#define BOT_CMD_COUNTER			21	// Update this value if you add/remove a command
+#define BOT_CMD_COUNTER			22	// Update this value if you add/remove a command
 
 // NOTE: Following commands should be implemented on the bot ai
 //		 If a new command should be handled by the target ai(s) please declare it here
@@ -36,14 +148,14 @@
 #define BOT_CMD_PARAMETER_FLOAT		1
 #define BOT_CMD_PARAMETER_STRING	2
 #define BOT_CMD_PARAMETER_VECTOR	3
-#define BOT_CMD_PARAMETER_FLOAT_RELATIVE_TO_TIME		4
 
 float bot_cmds_initialized;
 float bot_cmd_parm_type[BOT_CMD_COUNTER];
 string bot_cmd_string[BOT_CMD_COUNTER];
 
 // Bots command queue
-entity bot_cmd;				// Current command
+entity bot_cmd;	// global current command
+.entity bot_cmd_current; // current command of this bot
 
 .float is_bot_cmd;			// Tells if the entity is a bot command
 .float bot_cmd_index;			// Position of the command in the queue
@@ -51,81 +163,82 @@
 .float bot_cmd_parm_float;		// Field to store a float parameter
 .string bot_cmd_parm_string;		// Field to store a string parameter
 .vector bot_cmd_parm_vector;		// Field to store a vector parameter
-.float bot_cmd_execution_counter;	// How many times this command on the queue was executed
 
+float bot_barriertime;
+.float bot_barrier;
+
 .float bot_cmd_execution_index;		// Position in the queue of the command to be executed
-.float bot_cmd_queue_index;		// Position of the last command in the queue
 
-.entity bot_cmd_next; // next command of the same bot (field on a command), or next command for this bot to execute (field on a bot)
-.entity bot_cmd_newest; // last command of this bot (field on a bot, used for adding new commands)
-
 // Initialize global commands list
 // NOTE: New commands should be initialized here
 void bot_commands_init()
 {
-	bot_cmd_string[BOT_CMD_NULL]			= "";
-	bot_cmd_parm_type[BOT_CMD_NULL]			= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_NULL] = "";
+	bot_cmd_parm_type[BOT_CMD_NULL] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_PAUSE]			= "pause";
-	bot_cmd_parm_type[BOT_CMD_PAUSE]		= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_PAUSE] = "pause";
+	bot_cmd_parm_type[BOT_CMD_PAUSE] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_CONTINUE]		= "continue";
-	bot_cmd_parm_type[BOT_CMD_CONTINUE]		= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_CONTINUE] = "continue";
+	bot_cmd_parm_type[BOT_CMD_CONTINUE] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_WAIT]			= "wait";
-	bot_cmd_parm_type[BOT_CMD_WAIT]			= BOT_CMD_PARAMETER_FLOAT;
+	bot_cmd_string[BOT_CMD_WAIT] = "wait";
+	bot_cmd_parm_type[BOT_CMD_WAIT] = BOT_CMD_PARAMETER_FLOAT;
 
-	bot_cmd_string[BOT_CMD_TURN]			= "turn";
-	bot_cmd_parm_type[BOT_CMD_TURN]			= BOT_CMD_PARAMETER_FLOAT;
+	bot_cmd_string[BOT_CMD_TURN] = "turn";
+	bot_cmd_parm_type[BOT_CMD_TURN] = BOT_CMD_PARAMETER_FLOAT;
 
-	bot_cmd_string[BOT_CMD_MOVETO]			= "moveto";
-	bot_cmd_parm_type[BOT_CMD_MOVETO]		= BOT_CMD_PARAMETER_VECTOR;
+	bot_cmd_string[BOT_CMD_MOVETO] = "moveto";
+	bot_cmd_parm_type[BOT_CMD_MOVETO] = BOT_CMD_PARAMETER_VECTOR;
 
-	bot_cmd_string[BOT_CMD_MOVETOTARGET]			= "movetotarget";
-	bot_cmd_parm_type[BOT_CMD_MOVETOTARGET]		= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_MOVETOTARGET] = "movetotarget";
+	bot_cmd_parm_type[BOT_CMD_MOVETOTARGET] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_RESETGOAL]		= "resetgoal";
-	bot_cmd_parm_type[BOT_CMD_RESETGOAL]		= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_RESETGOAL] = "resetgoal";
+	bot_cmd_parm_type[BOT_CMD_RESETGOAL] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_CC]			= "cc";
-	bot_cmd_parm_type[BOT_CMD_CC]			= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_CC] = "cc";
+	bot_cmd_parm_type[BOT_CMD_CC] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_IF]			= "if";
-	bot_cmd_parm_type[BOT_CMD_IF]			= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_IF] = "if";
+	bot_cmd_parm_type[BOT_CMD_IF] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_ELSE]			= "else";
-	bot_cmd_parm_type[BOT_CMD_ELSE]			= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_ELSE] = "else";
+	bot_cmd_parm_type[BOT_CMD_ELSE] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_FI]			= "fi";
-	bot_cmd_parm_type[BOT_CMD_FI]			= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_FI] = "fi";
+	bot_cmd_parm_type[BOT_CMD_FI] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_RESETAIM]		= "resetaim";
-	bot_cmd_parm_type[BOT_CMD_RESETAIM]		= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_RESETAIM] = "resetaim";
+	bot_cmd_parm_type[BOT_CMD_RESETAIM] = BOT_CMD_PARAMETER_NONE;
 
-	bot_cmd_string[BOT_CMD_AIM]			= "aim";
-	bot_cmd_parm_type[BOT_CMD_AIM]			= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_AIM] = "aim";
+	bot_cmd_parm_type[BOT_CMD_AIM] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_AIMTARGET]			= "aimtarget";
-	bot_cmd_parm_type[BOT_CMD_AIMTARGET]			= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_AIMTARGET] = "aimtarget";
+	bot_cmd_parm_type[BOT_CMD_AIMTARGET] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_PRESSKEY]		= "presskey";
-	bot_cmd_parm_type[BOT_CMD_PRESSKEY]		= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_PRESSKEY] = "presskey";
+	bot_cmd_parm_type[BOT_CMD_PRESSKEY] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_RELEASEKEY]		= "releasekey";
-	bot_cmd_parm_type[BOT_CMD_RELEASEKEY]		= BOT_CMD_PARAMETER_STRING;
+	bot_cmd_string[BOT_CMD_RELEASEKEY] = "releasekey";
+	bot_cmd_parm_type[BOT_CMD_RELEASEKEY] = BOT_CMD_PARAMETER_STRING;
 
-	bot_cmd_string[BOT_CMD_SELECTWEAPON]		= "selectweapon";
-	bot_cmd_parm_type[BOT_CMD_SELECTWEAPON]		= BOT_CMD_PARAMETER_FLOAT;
+	bot_cmd_string[BOT_CMD_SELECTWEAPON] = "selectweapon";
+	bot_cmd_parm_type[BOT_CMD_SELECTWEAPON] = BOT_CMD_PARAMETER_FLOAT;
 
-	bot_cmd_string[BOT_CMD_IMPULSE]			= "impulse";
-	bot_cmd_parm_type[BOT_CMD_IMPULSE]		= BOT_CMD_PARAMETER_FLOAT;
+	bot_cmd_string[BOT_CMD_IMPULSE] = "impulse";
+	bot_cmd_parm_type[BOT_CMD_IMPULSE] = BOT_CMD_PARAMETER_FLOAT;
 
-	bot_cmd_string[BOT_CMD_WAIT_UNTIL]		= "wait_until";
-	bot_cmd_parm_type[BOT_CMD_WAIT_UNTIL]	= BOT_CMD_PARAMETER_FLOAT_RELATIVE_TO_TIME;
+	bot_cmd_string[BOT_CMD_WAIT_UNTIL] = "wait_until";
+	bot_cmd_parm_type[BOT_CMD_WAIT_UNTIL] = BOT_CMD_PARAMETER_FLOAT;
 
-	bot_cmd_string[BOT_CMD_RESETQUEUE]		= "resetqueue";
-	bot_cmd_parm_type[BOT_CMD_RESETQUEUE]	= BOT_CMD_PARAMETER_NONE;
+	bot_cmd_string[BOT_CMD_BARRIER] = "barrier";
+	bot_cmd_parm_type[BOT_CMD_BARRIER] = BOT_CMD_PARAMETER_NONE;
 
+	bot_cmd_string[BOT_CMD_CONSOLE] = "console";
+	bot_cmd_parm_type[BOT_CMD_CONSOLE] = BOT_CMD_PARAMETER_STRING;
+
 	bot_cmds_initialized = TRUE;
 }
 
@@ -153,6 +266,9 @@
 	local entity bot;
 	local float c;
 
+	if(!number)
+		return world;
+
 	bot = findchainflags(flags, FL_CLIENT);
 	while (bot)
 	{
@@ -167,68 +283,23 @@
 	return world;
 }
 
-void bot_clearqueue()
+float bot_decodecommand(string cmdstring)
 {
-	entity head, newhead;
+	local float cmd_parm_type, i;
+	float sp;
+	string parm;
 
-	head = findchainfloat(is_bot_cmd, TRUE);
-	newhead = head;
-
-	while(newhead)
+	sp = strstrofs(cmdstring, " ", 0);
+	if(sp < 0)
 	{
-		newhead = head.chain;
-
-		if(head.owner==self)
-			remove(head);
-
-		head = newhead;
+		parm = "";
 	}
+	else
+	{
+		parm = substring(cmdstring, sp + 1, -1);
+		cmdstring = substring(cmdstring, 0, sp);
+	}
 
-	self.bot_cmd_queue_index = 0;
-	self.bot_cmd_execution_index = 0;
-}
-
-entity bot_spawncmd(entity bot, float type)
-{
-	entity cmd;
-
-	bot.bot_cmd_queue_index++;
-
-	cmd = spawn();
-	cmd.owner = bot;
-	cmd.is_bot_cmd = TRUE;
-	cmd.bot_cmd_type = type;
-	cmd.bot_cmd_index = bot.bot_cmd_queue_index;
-
-	if(bot.bot_cmd_newest)
-		bot.bot_cmd_newest.bot_cmd_next = cmd;
-	bot.bot_cmd_newest = cmd;
-
-	return cmd;
-}
-
-void bot_debugcmd(entity cmd)
-{
-	print(strcat("Owner: ",cmd.owner.netname, "\n"));
-	print(strcat("Cmd Type: ",ftos(cmd.bot_cmd_type), "\n"));
-	print(strcat("Cmd Index: ",ftos(cmd.bot_cmd_index), "\n"));
-
-	print(strcat("Param Float: ",ftos(cmd.bot_cmd_parm_float), "\n"));
-	print(strcat("Param String: ",cmd.bot_cmd_parm_string, "\n"));
-	print(strcat("Param Vector: ",vtos(cmd.bot_cmd_parm_vector), "\n"));
-
-	print(strcat("Bot queue index: ",	ftos(cmd.owner.bot_cmd_queue_index), "\n"));
-	print(strcat("Bot execution index: ",	ftos(cmd.owner.bot_cmd_execution_index), "\n\n"));
-}
-
-void bot_queuecommand(entity bot, string cmdstring, string parm)
-{
-	entity cmd;
-	local float cmd_parm_type, i;
-
-	if not(bot.isbot)
-		return;
-
 	if(!bot_cmds_initialized)
 		bot_commands_init();
 
@@ -242,33 +313,33 @@
 		if(cmd_parm_type!=BOT_CMD_PARAMETER_NONE&&parm=="")
 		{
 			print("ERROR: A parameter is required for this command\n");
-			return;
+			return 0;
 		}
 
 		// Load command into queue
-		cmd = bot_spawncmd(bot, i);
+		bot_cmd.bot_cmd_type = i;
 
 		// Attach parameter
 		switch(cmd_parm_type)
 		{
 			case BOT_CMD_PARAMETER_FLOAT:
-				cmd.bot_cmd_parm_float = stof(parm);
+				bot_cmd.bot_cmd_parm_float = stof(parm);
 				break;
-			case BOT_CMD_PARAMETER_FLOAT_RELATIVE_TO_TIME:
-				cmd.bot_cmd_parm_float = stof(parm) + time;
-				break;
 			case BOT_CMD_PARAMETER_STRING:
-				cmd.bot_cmd_parm_string = strzone(parm);
+				if(bot_cmd.bot_cmd_parm_string)
+					strunzone(bot_cmd.bot_cmd_parm_string);
+				bot_cmd.bot_cmd_parm_string = strzone(parm);
 				break;
 			case BOT_CMD_PARAMETER_VECTOR:
-				cmd.bot_cmd_parm_vector = stov(parm);
+				bot_cmd.bot_cmd_parm_vector = stov(parm);
 				break;
 			default:
 				break;
 		}
-		return;
+		return 1;
 	}
-	print("ERROR: No such command\n");
+	print("ERROR: No such command '", cmdstring, "'\n");
+	return 0;
 }
 
 void bot_cmdhelp(string scmd)
@@ -289,7 +360,6 @@
 		switch(ntype)
 		{
 			case BOT_CMD_PARAMETER_FLOAT:
-			case BOT_CMD_PARAMETER_FLOAT_RELATIVE_TO_TIME:
 				stype = "float number";
 				break;
 			case BOT_CMD_PARAMETER_STRING:
@@ -318,8 +388,11 @@
 				print("Pause command parsing and bot ai for N seconds. Pressed key will remain pressed");
 				break;
 			case BOT_CMD_WAIT_UNTIL:
-				print("Pause command parsing and bot ai until time is N from NOW (when the command is added). Pressed key will remain pressed");
+				print("Pause command parsing and bot ai until time is N from the last barrier. Pressed key will remain pressed");
 				break;
+			case BOT_CMD_BARRIER:
+				print("Waits till all bots that have a command queue reach this command. Pressed key will remain pressed");
+				break;
 			case BOT_CMD_TURN:
 				print("Look to the right or left N degrees. For turning to the left use positive numbers.");
 				break;
@@ -394,7 +467,6 @@
 		switch(bot_cmd_parm_type[i])
 		{
 			case BOT_CMD_PARAMETER_FLOAT:
-			case BOT_CMD_PARAMETER_FLOAT_RELATIVE_TO_TIME:
 				ptype = "float number";
 				break;
 			case BOT_CMD_PARAMETER_STRING:
@@ -462,7 +534,7 @@
 
 float bot_cmd_wait_until()
 {
-	if(time < bot_cmd.bot_cmd_parm_float)
+	if(time < bot_cmd.bot_cmd_parm_float + bot_barriertime)
 	{
 		self.bot_exec_status |= BOT_EXEC_STATUS_WAITING;
 		return CMD_STATUS_EXECUTING;
@@ -471,6 +543,45 @@
 	return CMD_STATUS_FINISHED;
 }
 
+float bot_cmd_barrier()
+{
+	entity cl;
+
+	// 0 = no barrier, 1 = waiting, 2 = waiting finished
+	
+	if(self.bot_barrier == 0) // initialization
+	{
+		self.bot_barrier = 1;
+
+		//self.colormod = '4 4 0';
+	}
+
+	if(self.bot_barrier == 1) // find other bots
+	{
+		FOR_EACH_CLIENT(cl) if(cl.isbot)
+		{
+			if(cl.bot_cmdqueuebuf_allocated)
+				if(cl.bot_barrier != 1)
+					return CMD_STATUS_EXECUTING; // not all are at the barrier yet
+		}
+
+		// all bots hit the barrier!
+		FOR_EACH_CLIENT(cl) if(cl.isbot)
+		{
+			cl.bot_barrier = 2; // acknowledge barrier
+		}
+
+		bot_barriertime = time;
+	}
+
+	// if we get here, the barrier is finished
+	// so end it...
+	self.bot_barrier = 0;
+	//self.colormod = '0 0 0';
+
+	return CMD_STATUS_FINISHED;
+}
+
 float bot_cmd_turn()
 {
 	self.v_angle_y = self.v_angle_y + bot_cmd.bot_cmd_parm_float;
@@ -489,6 +600,8 @@
 
 	if(client_hasweapon(self, id, TRUE, FALSE))
 		self.switchweapon = id;
+	else
+		return CMD_STATUS_ERROR;
 
 	return CMD_STATUS_FINISHED;
 }
@@ -539,7 +652,7 @@
 	{
 		// Only one "if" block is allowed at time
 		print("ERROR: Only one conditional block can be processed at time");
-		bot_clearqueue();
+		bot_clearqueue(self);
 		return CMD_STATUS_ERROR;
 	}
 
@@ -692,7 +805,7 @@
 
 	tokens = tokenizebyseparator(parms, " ");
 
-	e = find(world, targetname, argv(0));
+	e = bot_getplace(argv(0));
 	if(!e)
 		return CMD_STATUS_ERROR;
 
@@ -701,6 +814,7 @@
 	if(tokens==1)
 	{
 		self.v_angle = vectoangles(v - (self.origin + self.view_ofs));
+		self.v_angle_x = -self.v_angle_x;
 		return CMD_STATUS_FINISHED;
 	}
 
@@ -711,6 +825,7 @@
 
 	self.bot_cmd_aim_begin = self.v_angle;
 	self.bot_cmd_aim_end = vectoangles(v - (self.origin + self.view_ofs));
+	self.bot_cmd_aim_end_x = -self.bot_cmd_aim_end_x;
 
 	self.bot_cmd_aim_begintime = time;
 	self.bot_cmd_aim_endtime = time + step;
@@ -731,6 +846,7 @@
 #define BOT_CMD_KEY_USE		128
 #define BOT_CMD_KEY_HOOK	256
 #define BOT_CMD_KEY_CROUCH	512
+#define BOT_CMD_KEY_CHAT	1024
 
 float bot_presskeys()
 {
@@ -764,6 +880,12 @@
 	if(self.bot_cmd_keys & BOT_CMD_KEY_USE)
 		self.BUTTON_USE = TRUE;
 
+	if(self.bot_cmd_keys & BOT_CMD_KEY_HOOK)
+		self.BUTTON_HOOK = TRUE;
+
+	if(self.bot_cmd_keys & BOT_CMD_KEY_CHAT)
+		self.BUTTON_CHAT = TRUE;
+
 	return TRUE;
 }
 
@@ -843,6 +965,18 @@
 			else
 				self.bot_cmd_keys &~= BOT_CMD_KEY_USE;
 			break;
+		case "hook":
+			if(enabled)
+				self.bot_cmd_keys |= BOT_CMD_KEY_HOOK;
+			else
+				self.bot_cmd_keys &~= BOT_CMD_KEY_HOOK;
+			break;
+		case "chat":
+			if(enabled)
+				self.bot_cmd_keys |= BOT_CMD_KEY_CHAT;
+			else
+				self.bot_cmd_keys &~= BOT_CMD_KEY_CHAT;
+			break;
 		default:
 			break;
 	}
@@ -897,7 +1031,7 @@
 float bot_cmd_movetotarget()
 {
 	entity e;
-	e = find(world, targetname, bot_cmd.bot_cmd_parm_string);
+	e = bot_getplace(bot_cmd.bot_cmd_parm_string);
 	if(!e)
 		return CMD_STATUS_ERROR;
 	return self.cmd_moveto(e.origin + (e.mins + e.maxs) * 0.5);
@@ -908,78 +1042,81 @@
 	return self.cmd_resetgoal();
 }
 
+
+
+
+
+
+
+
+
 void bot_command_executed(float rm)
 {
 	entity cmd;
 
 	cmd = bot_cmd;
 
-	self.bot_cmd_execution_index++;
-
 	if(rm)
-	{
-		if(bot_cmd_parm_type[cmd.bot_cmd_type]==BOT_CMD_PARAMETER_STRING)
-		{
-			strunzone(cmd.bot_cmd_parm_string);
-		}
-		self.bot_cmd_next = cmd.bot_cmd_next;
-		if(cmd == self.bot_cmd_newest)
-			self.bot_cmd_newest = world;
-		remove(cmd);
-		return;
-	}
+		bot_dequeuecommand(self, self.bot_cmd_execution_index);
 
-	cmd.bot_cmd_execution_counter++;
+	self.bot_cmd_execution_index++;
 }
 
 void bot_setcurrentcommand()
 {
-	entity cmd;
-
 	bot_cmd = world;
 
-	if(!self.bot_cmd_newest) // no command in the queue?
-		return;
-
-	if(self.bot_cmd_execution_index==0)
-		self.bot_cmd_execution_index=1;
-
-	cmd = self.bot_cmd_next;
-	if(cmd)
-	if(cmd.owner == self)
-	if(cmd.bot_cmd_index == self.bot_cmd_execution_index)
+	if(self.bot_cmd_execution_index == 0)
+		self.bot_cmd_execution_index = 1;
+	
+	if(!self.bot_cmd_current)
 	{
-		bot_cmd = cmd;
-		return;
+		self.bot_cmd_current = spawn();
+		self.bot_cmd_current.classname = "bot_cmd";
+		self.bot_cmd_current.is_bot_cmd = 1;
+		self.bot_cmd_current.bot_cmd_index = 0;
 	}
 
-/*
-	if(!cmd)
+	bot_cmd = self.bot_cmd_current;
+	if(bot_cmd.bot_cmd_index != self.bot_cmd_execution_index)
 	{
-		print("next bot cmd not set\n");
+		if(bot_havecommand(self, self.bot_cmd_execution_index))
+		{
+			string cmdstring;
+			cmdstring = bot_readcommand(self, self.bot_cmd_execution_index);
+			if(bot_decodecommand(cmdstring))
+			{
+				bot_cmd.owner = self;
+				bot_cmd.bot_cmd_index = self.bot_cmd_execution_index;
+			}
+			else
+				bot_cmd = world;
+		}
+		else
+			bot_cmd = world;
 	}
+}
 
-	if(cmd && cmd.owner != self)
-	{
-		print("next bot cmd has wrong owner ", etos(cmd.owner), " for ", etos(self), "\n");
-	}
+void bot_resetqueues()
+{
+	entity cl;
+	float i;
 
-	if(cmd && cmd.owner == self && cmd.bot_cmd_index != self.bot_cmd_execution_index)
+	FOR_EACH_CLIENT(cl) if(cl.isbot)
 	{
-		print("next bot cmd has wrong index ", ftos(cmd.bot_cmd_execution_index), " for ", ftos(self.bot_cmd_execution_index), "\n");
-	}
-*/
-
-	for (cmd = findchainfloat(bot_cmd_index, self.bot_cmd_execution_index); cmd; cmd = cmd.chain)
-	{
-		if(cmd.owner==self)
+		if(cl.bot_cmdqueuebuf_allocated)
+			bot_clearqueue(cl);
+		// also, cancel all barriers
+		cl.bot_barrier = 0;
+		for(i = 0; i < cl.bot_places_count; ++i)
 		{
-			bot_cmd = cmd;
-			self.bot_cmd_next = cmd;
-			//print(etos(self), " probably a jump...\n");
-			return;
+			strunzone(cl.(bot_placenames[i]));
+			cl.(bot_placenames[i]) = string_null;
 		}
+		cl.bot_places_count = 0;
 	}
+
+	bot_barriertime = time;
 }
 
 // This function should be (the only) called directly from the bot ai loop
@@ -1092,8 +1229,11 @@
 			case BOT_CMD_IMPULSE:
 				status = bot_cmd_impulse();
 				break;
-			case BOT_CMD_RESETQUEUE:
-				bot_clearqueue();
+			case BOT_CMD_BARRIER:
+				status = bot_cmd_barrier();
+				break;
+			case BOT_CMD_CONSOLE:
+				localcmd(strcat(bot_cmd.bot_cmd_parm_string, "\n"));
 				status = CMD_STATUS_FINISHED;
 				break;
 			default:
@@ -1118,7 +1258,6 @@
 				switch(bot_cmd_parm_type[bot_cmd.bot_cmd_type])
 				{
 					case BOT_CMD_PARAMETER_FLOAT:
-					case BOT_CMD_PARAMETER_FLOAT_RELATIVE_TO_TIME:
 						parms = ftos(bot_cmd.bot_cmd_parm_float);
 						break;
 					case BOT_CMD_PARAMETER_STRING:

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -398,6 +398,26 @@
 */
 float Client_customizeentityforclient()
 {
+	entity modelsource;
+
+	if(self.modelindex == 0)
+		return TRUE;
+
+	modelsource = self;
+	if(other.cvar_cl_forceplayermodelsfromnexuiz)
+		if not(self.modelindex_lod0_from_nexuiz)
+			modelsource = other;
+	if(other.cvar_cl_forceplayermodels && sv_clforceplayermodels)
+		modelsource = other;
+
+	self.skin = modelsource.skinindex;
+#if 0
+	if(modelsource == self)
+		self.skin = modelsource.skinindex;
+	else
+		self.skin = mod(modelsource.skinindex, 3); // forbid the fbskins as forced skins
+#endif
+
 #ifdef ALLOW_VARIABLE_LOD
 	// self: me
 	// other: the player viewing me
@@ -410,23 +430,25 @@
 	if(other.cvar_cl_playerdetailreduction <= 0)
 	{
 		if(other.cvar_cl_playerdetailreduction <= -2)
-			self.modelindex = self.modelindex_lod2;
+			self.modelindex = modelsource.modelindex_lod2;
 		else if(other.cvar_cl_playerdetailreduction <= -1)
-			self.modelindex = self.modelindex_lod1;
+			self.modelindex = modelsource.modelindex_lod1;
 		else
-			self.modelindex = self.modelindex_lod0;
+			self.modelindex = modelsource.modelindex_lod0;
 	}
 	else
 	{
 		distance = vlen(self.origin - other.origin);
 		f = (distance + 100.0) * other.cvar_cl_playerdetailreduction;
 		if(f > 10000)
-			self.modelindex = self.modelindex_lod2;
+			self.modelindex = modelsource.modelindex_lod2;
 		else if(f > 5000)
-			self.modelindex = self.modelindex_lod1;
+			self.modelindex = modelsource.modelindex_lod1;
 		else
-			self.modelindex = self.modelindex_lod0;
+			self.modelindex = modelsource.modelindex_lod0;
 	}
+#else
+	self.modelindex = modelsource.modelindex_lod0;
 #endif
 
 	return TRUE;
@@ -471,7 +493,14 @@
 #else
 	precache_model(modelname);
 	setmodel(e, modelname); // players have high precision
+	self.modelindex_lod0 = self.modelindex;
+		// save it for possible player model forcing
 #endif
+
+	string s;
+	s = whichpack(self.model);
+	self.modelindex_lod0_from_nexuiz = ((s == "") || (substring(s, 0, 4) == "data"));
+
 	player_setupanimsformodel();
 	UpdatePlayerSounds();
 }
@@ -553,6 +582,8 @@
 	self.pain_finished = 0;
 	self.strength_finished = 0;
 	self.invincible_finished = 0;
+	self.damage_hits = 0;
+	self.maxdamage_fired = 0;
 	self.pushltime = 0;
 	self.think = SUB_Null;
 	self.nextthink = 0;
@@ -661,8 +692,8 @@
 			chmdl = TRUE;
 		}
 
-		oldskin = self.skin;
-		self.skin = defaultskin;
+		oldskin = self.skinindex;
+		self.skinindex = defaultskin;
 	} else {
 		if (self.playermodel != self.model)
 		{
@@ -674,11 +705,11 @@
 			chmdl = TRUE;
 		}
 
-		oldskin = self.skin;
-		self.skin = RestrictSkin(stof(self.playerskin));
+		oldskin = self.skinindex;
+		self.skinindex = RestrictSkin(stof(self.playerskin));
 	}
 	
-	if(chmdl || oldskin != self.skin)
+	if(chmdl || oldskin != self.skinindex)
 		self.species = player_getspecies(); // model or skin has changed
 
 	if(!teams_matter)
@@ -821,6 +852,8 @@
 		self.pain_finished = 0;
 		self.strength_finished = 0;
 		self.invincible_finished = 0;
+		self.maxdamage_fired = 0;
+		self.damage_hits = 0;
 		self.pushltime = 0;
 		//self.speed_finished = 0;
 		//self.slowmo_finished = 0;
@@ -1640,7 +1673,7 @@
 {
 	if((self.items & IT_USING_JETPACK) && !self.deadflag)
 	{
-		SoundEntity_StartSound(self, CHAN_PLAYER, "misc/jetpack_fly.wav", VOL_BASE, ATTN_IDLE);
+		SoundEntity_StartSound(self, CHAN_PLAYER, "misc/jetpack_fly.wav", VOL_BASE, cvar("g_jetpack_attenuation"));
 		self.modelflags |= MF_ROCKET;
 	}
 	else
@@ -1881,7 +1914,10 @@
 void SetZoomState(float z)
 {
 	if(z != self.zoomstate)
+	{
+		self.zoomstate = z;
 		ClientData_Touch(self);
+	}
 	zoomstate_set = 1;
 }
 
@@ -1948,6 +1984,8 @@
 	self.metertime = spectatee.metertime;
 	self.strength_finished = spectatee.strength_finished;
 	self.invincible_finished = spectatee.invincible_finished;
+	self.maxdamage_fired = spectatee.maxdamage_fired;
+	self.damage_hits = spectatee.damage_hits;
 	self.pressedkeys = spectatee.pressedkeys;
 	self.weapons = spectatee.weapons;
 	self.switchweapon = spectatee.switchweapon;
@@ -2215,9 +2253,9 @@
 .float items_added;
 void PlayerPreThink (void)
 {
-	self.stat_sys_ticrate = cvar("sys_ticrate");
 	self.stat_game_starttime = game_starttime;
 	self.stat_allow_oldnexbeam = cvar("g_allow_oldnexbeam");
+	self.stat_leadlimit = cvar("leadlimit");
 
 	if(blockSpectators && frametime)
 		// WORKAROUND: only use dropclient in server frames (frametime set). Never use it in cl_movement frames (frametime zero).
@@ -2738,7 +2776,7 @@
 		self.idlekick_lasttimeleft = timeleft;
 	}
 
-	if(sv_cheats)
+	if(sv_cheats || self.maycheat)
 		if(Drag_CanDrag(self))
 			if(self.BUTTON_DRAG)
 				if(!self.dragentity)

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_impulse.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -311,7 +311,7 @@
 	{
 		if(self.deadflag == DEAD_NO)
 		{
-			if(sv_cheats || (self.lip < sv_clones))
+			if(sv_cheats || self.maycheat || (self.lip < sv_clones))
 			{
 				switch(imp)
 				{
@@ -329,7 +329,7 @@
 				 }
 			}
 
-			if(sv_cheats)
+			if(sv_cheats || self.maycheat)
 			{
 				switch(imp)
 				{

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -62,10 +62,10 @@
 	if(!sv_pogostick)
 		if (!(self.flags & FL_JUMPRELEASED))
 			return;
-			
+
 	if(self.health <= g_bloodloss)
 		return;
-	
+
 	if(sv_doublejump)
 		if(time < self.doublejump_nextjumptime)
 			return;
@@ -103,7 +103,7 @@
 
 	if(g_jump_grunt)
 		PlayerSound(playersound_jump, CHAN_PLAYER, VOICETYPE_PLAYERSOUND);
-	
+
 	if(sv_doublejump)
 	{
 		// we're moving upwards at self.velocity_z
@@ -421,10 +421,10 @@
 	vector curvel, wishvel, acceldir, curdir;
 	float addspeed, accelspeed, curspeed, f;
 	float dot;
-	
+
 	if(wishspeed == 0)
 		return;
-	
+
 	curvel = self.velocity;
 	curvel_z = 0;
 	curspeed = vlen(curvel);
@@ -462,6 +462,7 @@
 .string lastclassname;
 
 void Nixnex_GiveCurrentWeapon();
+.float() PlayerPhysplug;
 void SV_PlayerPhysics()
 {
 	local vector wishvel, wishdir, v;
@@ -469,6 +470,10 @@
 	string temps;
 	float buttons_prev;
 
+    if(self.PlayerPhysplug)
+        if(self.PlayerPhysplug())
+            return;
+
 	buttons = self.BUTTON_ATCK + 2 * self.BUTTON_JUMP + 4 * self.BUTTON_ATCK2 + 8 * self.BUTTON_ZOOM + 16 * self.BUTTON_CROUCH + 32 * self.BUTTON_HOOK + 64 * self.BUTTON_USE;
 	if(!sv_maxidle_spectatorsareidle || self.movetype == MOVETYPE_WALK)
 	{

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -45,10 +45,16 @@
 	self.armortype = oldself.armortype;
 	self.model = oldself.model;
 	self.modelindex = oldself.modelindex;
+	self.modelindex_lod0 = oldself.modelindex_lod0;
+	self.modelindex_lod0_from_nexuiz = oldself.modelindex_lod0_from_nexuiz;
+#ifdef ALLOW_VARIABLE_LOD
+	self.modelindex_lod1 = oldself.modelindex_lod1;
+	self.modelindex_lod2 = oldself.modelindex_lod2;
+#endif
+	self.skinindex = oldself.skinindex;
 	self.species = oldself.species;
 	self.movetype = oldself.movetype;
 	self.nextthink = oldself.nextthink;
-	self.skin = oldself.skin;
 	self.solid = oldself.solid;
 	self.takedamage = oldself.takedamage;
 	self.think = oldself.think;
@@ -89,7 +95,7 @@
 				continue;
 			fgets(fh); fgets(fh);
 			sk = stof(fgets(fh));
-			if(sk == (j ? 0 : self.skin)) // 2nd pass skips the skin test
+			if(sk == (j ? 0 : self.skinindex)) // 2nd pass skips the skin test
 			if(fgets(fh) == self.model)
 			{
 				l = fgets(fh);
@@ -276,7 +282,7 @@
 void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
 {
 	local float take, save;
-	Violence_GibSplash_At(hitloc, force, 2, bound(0, damage, 200) / 16);
+	Violence_GibSplash_At(hitloc, force, 2, bound(0, damage, 200) / 16, self, attacker);
 
 	// damage resistance (ignore most of the damage from a bullet or similar)
 	damage = max(damage - 5, 1);
@@ -284,17 +290,20 @@
 	save = bound(0, damage * cvar("g_balance_armor_blockpercent"), self.armorvalue);
 	take = bound(0, damage - save, damage);
 
-	if (save > 10)
-		sound (self, CHAN_PROJECTILE, "misc/armorimpact.wav", VOL_BASE, ATTN_NORM);
-	else if (take > 30)
-		sound (self, CHAN_PROJECTILE, "misc/bodyimpact2.wav", VOL_BASE, ATTN_NORM);
-	else if (take > 10)
-		sound (self, CHAN_PROJECTILE, "misc/bodyimpact1.wav", VOL_BASE, ATTN_NORM);
+	if(sound_allowed(MSG_BROADCAST, attacker))
+	{
+		if (save > 10)
+			sound (self, CHAN_PROJECTILE, "misc/armorimpact.wav", VOL_BASE, ATTN_NORM);
+		else if (take > 30)
+			sound (self, CHAN_PROJECTILE, "misc/bodyimpact2.wav", VOL_BASE, ATTN_NORM);
+		else if (take > 10)
+			sound (self, CHAN_PROJECTILE, "misc/bodyimpact1.wav", VOL_BASE, ATTN_NORM);
+	}
 
 	if (take > 50)
-		Violence_GibSplash_At(hitloc, force * -0.1, 3, 1);
+		Violence_GibSplash_At(hitloc, force * -0.1, 3, 1, self, attacker);
 	if (take > 100)
-		Violence_GibSplash_At(hitloc, force * -0.2, 3, 1);
+		Violence_GibSplash_At(hitloc, force * -0.2, 3, 1, self, attacker);
 
 	if (!(self.flags & FL_GODMODE))
 	{
@@ -315,7 +324,7 @@
 		// view just above the floor
 		self.view_ofs = '0 0 4';
 
-		Violence_GibSplash(self, 1, 1);
+		Violence_GibSplash(self, 1, 1, attacker);
 		self.modelindex = 0; // restore later
 		self.solid = SOLID_NOT; // restore later
 	}
@@ -349,8 +358,8 @@
 		d = inflictor.origin - self.origin;
 		f = (d * v_right) / vlen(d); // this is cos of angle of d and v_right!
 		force = v_right * vlen(force);
-		Violence_GibSplash_At(ear1, force * -1, 2, bound(0, damage, 25) / 2 * (0.5 - 0.5 * f));
-		Violence_GibSplash_At(ear2, force,      2, bound(0, damage, 25) / 2 * (0.5 + 0.5 * f));
+		Violence_GibSplash_At(ear1, force * -1, 2, bound(0, damage, 25) / 2 * (0.5 - 0.5 * f), self, attacker);
+		Violence_GibSplash_At(ear2, force,      2, bound(0, damage, 25) / 2 * (0.5 + 0.5 * f), self, attacker);
 		if(f > 0)
 		{
 			hitloc = ear1;
@@ -363,7 +372,7 @@
 		}
 	}
 	else
-		Violence_GibSplash_At(hitloc, force, 2, bound(0, damage, 200) / 16);
+		Violence_GibSplash_At(hitloc, force, 2, bound(0, damage, 200) / 16, self, attacker);
 
 	if(g_arena)
 	if(numspawned < 2)
@@ -380,17 +389,20 @@
 		take = damage;
 	}
 
-	if (save > 10)
-		sound (self, CHAN_PROJECTILE, "misc/armorimpact.wav", VOL_BASE, ATTN_NORM);
-	else if (take > 30)
-		sound (self, CHAN_PROJECTILE, "misc/bodyimpact2.wav", VOL_BASE, ATTN_NORM);
-	else if (take > 10)
-		sound (self, CHAN_PROJECTILE, "misc/bodyimpact1.wav", VOL_BASE, ATTN_NORM); // FIXME possibly remove them?
+	if(sound_allowed(MSG_BROADCAST, attacker))
+	{
+		if (save > 10)
+			sound (self, CHAN_PROJECTILE, "misc/armorimpact.wav", VOL_BASE, ATTN_NORM);
+		else if (take > 30)
+			sound (self, CHAN_PROJECTILE, "misc/bodyimpact2.wav", VOL_BASE, ATTN_NORM);
+		else if (take > 10)
+			sound (self, CHAN_PROJECTILE, "misc/bodyimpact1.wav", VOL_BASE, ATTN_NORM); // FIXME possibly remove them?
+	}
 
 	if (take > 50)
-		Violence_GibSplash_At(hitloc, force * -0.1, 3, 1);
+		Violence_GibSplash_At(hitloc, force * -0.1, 3, 1, self, attacker);
 	if (take > 100)
-		Violence_GibSplash_At(hitloc, force * -0.2, 3, 1);
+		Violence_GibSplash_At(hitloc, force * -0.2, 3, 1, self, attacker);
 
 	if (time > self.spawnshieldtime)
 	{
@@ -414,6 +426,7 @@
 							setanim(self, self.anim_pain2, FALSE, TRUE, TRUE);
 					}
 
+					if(sound_allowed(MSG_BROADCAST, attacker))
 					if(!DEATH_ISWEAPON(deathtype, WEP_LASER) || attacker != self || self.health < 2 * cvar("g_balance_laser_primary_damage") * cvar("g_balance_selfdamagepercent") + 1)
 					// exclude pain sounds for laserjumps as long as you aren't REALLY low on health and would die of the next two
 					{
@@ -467,6 +480,7 @@
 		defer_ClientKill_Now_TeamChange = FALSE;
 
 		if(sv_gentle < 1) // TODO make a "gentle" version?
+		if(sound_allowed(MSG_BROADCAST, attacker))
 		{
 			if(deathtype == DEATH_DROWN)
 				PlayerSound(playersound_drown, CHAN_PAIN, VOICETYPE_PLAYERSOUND);

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -187,7 +187,6 @@
 	wep.classname = "droppedweapon";
 	wep.velocity = velo;
 	wep.owner = wep.enemy = own;
-	wep.classname = "droppedweapon";
 	wep.flags |= FL_TOSSED;
 	wep.colormap = own.colormap;
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -126,7 +126,7 @@
 // this function calculates w_shotorg and w_shotdir based on the weapon model
 // offset, trueaim and antilag, and won't put w_shotorg inside a wall.
 // make sure you call makevectors first (FIXME?)
-void W_SetupShot_ProjectileSize(entity ent, vector mi, vector ma, float antilag, float recoil, string snd)
+void W_SetupShot_ProjectileSize(entity ent, vector mi, vector ma, float antilag, float recoil, string snd, float maxdamage)
 {
 	float nudge = 1; // added to traceline target and subtracted from result
 	local vector trueaimpoint;
@@ -136,6 +136,9 @@
 	ent.dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE;
 	traceline(ent.origin + ent.view_ofs, ent.origin + ent.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NOMONSTERS, ent); // no antilag needed
 	trueaimpoint = trace_endpos;
+	
+	self.max_damage[self.weapon] += maxdamage;
+	self.maxdamage_fired = self.weapon + 64 * rint(self.max_damage[self.weapon]);
 
 	W_HitPlotAnalysis(ent, v_forward, v_right, v_up);
 
@@ -294,9 +297,9 @@
 		sound (ent, CHAN_AUTO, "weapons/strength_fire.wav", VOL_BASE, ATTN_NORM);
 };
 
-void W_SetupShot(entity ent, float antilag, float recoil, string snd)
+void W_SetupShot(entity ent, float antilag, float recoil, string snd, float maxdamage)
 {
-	W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd);
+	W_SetupShot_ProjectileSize(ent, '0 0 0', '0 0 0', antilag, recoil, snd, maxdamage);
 }
 
 void LaserTarget_Think()
@@ -899,6 +902,7 @@
 			if (!f)
 			{
 				if (complain)
+				if(clienttype(cl) == CLIENTTYPE_REAL)
 				{
 					play2(cl, "weapons/unavailable.wav");
 					sprint(cl, strcat("You don't have any ammo for the ^2", W_Name(wpn), "\n"));
@@ -1133,11 +1137,6 @@
 			a_z *= g_weaponspeedfactor;
 			setanim(self.weaponentity, a, restartanim == FALSE, restartanim, restartanim);
 		}
-
-		if(restartanim)
-		{
-			BITXOR_ASSIGN(self.weaponentity.effects, EF_TELEPORT_BIT);
-		}
 	}
 
 	v_forward = of;

Modified: branches/nexuiz-2.0/data/qcsrc/server/clientcommands.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/clientcommands.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/clientcommands.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -34,7 +34,7 @@
 		else
 			WriteString(MSG_ENTITY, "");
 	}
-	
+
 	if(nags & 1)
 	{
 		for(i = 1; i <= maxclients; i += 8)
@@ -313,7 +313,7 @@
 	} else if(argv(0) == "cvar_changes") {
 		sprint(self, cvar_changes);
 	} else if(argv(0) == "pointparticles") {
-		if(sv_cheats && tokens == 5)
+		if((sv_cheats || self.maycheat) && tokens == 5)
 		{
 			// arguments:
 			//   effectname
@@ -330,24 +330,24 @@
 		else
 			sprint(self, "Usage: sv_cheats 1; restart; cmd pointparticles effectname position(0..1) velocityvector multiplier\n");
 	} else if(argv(0) == "trailparticles") {
-		if(sv_cheats && tokens == 2)
+		if((sv_cheats || self.maycheat) && tokens == 2)
 		{
 			// arguments:
 			//   effectname
 			effectnum = particleeffectnum(argv(1));
-			W_SetupShot(self, FALSE, FALSE, "");
+			W_SetupShot(self, FALSE, FALSE, "",0);
 			traceline(w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, MOVE_NORMAL, self);
 			trailparticles(self, effectnum, w_shotorg, trace_endpos);
 		}
 		else
 			sprint(self, "Usage: sv_cheats 1; restart; cmd trailparticles effectname\n");
 	} else if(argv(0) == "make") {
-		if(sv_cheats && tokens == 3)
+		if((sv_cheats || self.maycheat) && tokens == 3)
 		{
 			// arguments:
 			//   modelname mode
 			f = stof(argv(2));
-			W_SetupShot(self, FALSE, FALSE, "");
+			W_SetupShot(self, FALSE, FALSE, "", 0);
 			traceline(w_shotorg, w_shotorg + w_shotdir * 2048, MOVE_NORMAL, self);
 			if((trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT) || trace_fraction == 1)
 			{
@@ -431,7 +431,7 @@
 			else
 				self.nickspamcount += 1;
 			self.nickspamtime = time + cvar("g_nick_flood_penalty");
-			
+
 			if (timeoutStatus == 2) //when game is paused, no flood protection
 				self.nickspamcount = self.nickspamtime = 0;
 		}
@@ -456,10 +456,10 @@
 		newTL -= checkrules_overtimesadded * cvar("timelimit_overtime");
 		cvar_set("timelimit", ftos(newTL));
 	}
-	
+
 	checkrules_suddendeathend = checkrules_overtimesadded = checkrules_suddendeathwarning = 0;
-	
 
+
 	readyrestart_happened = 1;
 	game_starttime = time + RESTART_COUNTDOWN;
 	restart_mapalreadyrestarted = 0; //reset this var, needed when cvar sv_ready_restart_repeatable is in use
@@ -506,7 +506,7 @@
 	if(g_arena | g_assault | gameover | intermission_running | race_completing)
 		localcmd("restart\n");
 
-	// reset ALL scores, but only do that at the beginning 
+	// reset ALL scores, but only do that at the beginning
 	//of the countdown if sv_ready_restart_after_countdown is off!
 	//Otherwise scores could be manipulated during the countdown!
 	if (!cvar("sv_ready_restart_after_countdown"))

Modified: branches/nexuiz-2.0/data/qcsrc/server/constants.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/constants.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/constants.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,5 +1,5 @@
-string CVAR_CHECK_DEFAULT = "265422ea51f974b6529d2414fb9e9d75";
-string CVAR_CHECK_WEAPONS = "e85f111d2e89ae3a36fb432de7d2266a";
+string CVAR_CHECK_DEFAULT = "40e11dd2f984335c9e27adf5beccb2d1";
+string CVAR_CHECK_WEAPONS = "4f7b4c1e2feeef4988b02a93ff35a2ca";
 
 float	FALSE					= 0;
 float	TRUE					= 1;

Modified: branches/nexuiz-2.0/data/qcsrc/server/csqcprojectile.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/csqcprojectile.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/csqcprojectile.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -59,6 +59,8 @@
 		e.gravity = 0;
 
 	e.csqcprojectile_type = type;
+	if(!sound_allowed(MSG_BROADCAST, e))
+		type |= 0x80;
 }
 
 void UpdateCSQCProjectile(entity e)

Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -330,10 +330,15 @@
 .string cvar_g_nexuizversion;
 .string cvar_cl_weaponpriority;
 .string cvar_cl_weaponpriorities[10];
+.float cvar_cl_forceplayermodels;
+.float cvar_cl_forceplayermodelsfromnexuiz;
+float sv_clforceplayermodels;
 
 .float version_nagtime;
 
 .float modelindex_lod0;
+.float modelindex_lod0_from_nexuiz;
+.float skinindex;
 #ifdef ALLOW_VARIABLE_LOD
 .float modelindex_lod1;
 .float modelindex_lod2;
@@ -590,3 +595,9 @@
 string matchid;
 .float hitplotfh;
 .string noise4;
+
+.float damage_hits, maxdamage_fired;
+.float maycheat;
+.float stat_leadlimit;
+
+float radar_showennemies;

Modified: branches/nexuiz-2.0/data/qcsrc/server/ent_cs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/ent_cs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/ent_cs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -32,7 +32,7 @@
 		return FALSE;
 	if(other.classname == "player")
 		if(o.team != other.team)
-			if(!sv_cheats)
+			if not (sv_cheats || radar_showennemies)
 				return FALSE;
 	return TRUE;
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/extensions.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/extensions.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/extensions.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1146,6 +1146,15 @@
 //on level change ClientConnect and PutClientInServer are called by the engine to spawn in the bot (this is why clienttype() exists to tell you on the next level what type of client this is).
 //parms work the same on bot clients as they do on real clients, and do carry from level to level
 
+//DP_SV_BOUNCEFACTOR
+//idea: divVerent
+//darkplaces implementation: divVerent
+//field definitions:
+.float bouncefactor; // velocity multiplier after a bounce
+.float bouncestop; // bounce stops if velocity to bounce plane is < bouncestop * gravity AFTER the bounce
+//description:
+//allows qc to customize MOVETYPE_BOUNCE a bit
+
 //DP_SV_CLIENTCOLORS
 //idea: LordHavoc
 //darkplaces implementation: LordHavoc

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_casings.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_casings.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_casings.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -12,13 +12,16 @@
 	return TRUE;
 }
 
-void SpawnCasing(vector vel, float randomvel, vector ang, vector avel, float randomavel, float casingtype)
+void SpawnCasing(vector vel, float randomvel, vector ang, vector avel, float randomavel, float casingtype, entity casingowner)
 {
 	entity e;
 	vector org;
 
 	org = self.origin + self.view_ofs + self.weaponentity.spawnorigin_x * v_forward - self.weaponentity.spawnorigin_y * v_right + self.weaponentity.spawnorigin_z * v_up;
 
+	if(!sound_allowed(MSG_BROADCAST, casingowner))
+		casingtype |= 0x80;
+
 	e = spawn();
 	e.state = casingtype;
 	e.origin = org;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -17,13 +17,16 @@
 	return TRUE;
 }
 
-void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad, vector force, float deathtype)
+void Damage_DamageInfo(vector org, float coredamage, float edgedamage, float rad, vector force, float deathtype, entity dmgowner)
 {
 	// TODO maybe call this from non-edgedamage too?
 	// TODO maybe make the client do the particle effects for the weapons and the impact sounds using this info?
 
 	entity e;
 
+	if(!sound_allowed(MSG_BROADCAST, dmgowner))
+		deathtype |= 0x8000;
+
 	e = spawn();
 	setorigin(e, org);
 	e.projectiledeathtype = deathtype;
@@ -576,7 +579,7 @@
         damage_inflictor = inflictor;
         damage_attacker = attacker;
 		attacker_save = attacker;
-	
+
 	if(targ.classname == "player")
 		if(targ.hook)
 			if(targ.hook.aiment)
@@ -921,6 +924,15 @@
 	return nearest;
 }
 
+.float actual_damage[WEP_COUNT]; //amount of damage done
+.float max_damage[WEP_COUNT]; //the maximum damage of the weapon
+
+FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(actual_damage);
+FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(max_damage);
+
+
+float RadiusDamage_EnemyDamageDone;
+float RadiusDamage_EnemyMaxDamage;
 float RadiusDamage_running;
 float RadiusDamage (entity inflictor, entity attacker, float coredamage, float edgedamage, float rad, entity ignore, float forceintensity, float deathtype, entity directhitentity)
 // Returns total damage applies to creatures
@@ -963,11 +975,14 @@
 		else
 			force = normalize(force);
 		if(forceintensity >= 0)
-			Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * force, deathtype);
+			Damage_DamageInfo(blastorigin, coredamage, edgedamage, rad, forceintensity * force, deathtype, attacker);
 		else
-			Damage_DamageInfo(blastorigin, coredamage, edgedamage, -rad, (-forceintensity) * force, deathtype);
+			Damage_DamageInfo(blastorigin, coredamage, edgedamage, -rad, (-forceintensity) * force, deathtype, attacker);
 	}
 
+	RadiusDamage_EnemyDamageDone = 0;
+	RadiusDamage_EnemyMaxDamage = 0;
+
 	targ = findradius (blastorigin, rad);
 	while (targ)
 	{
@@ -1010,7 +1025,30 @@
 							    || cvar("g_throughfloor"))
 							{
 								if(targ.iscreature)
+								{
 									total_damage_to_creatures += finaldmg;
+
+									if(targ.flags & FL_CLIENT)
+									if(targ.deadflag == DEAD_NO)
+									if (targ != attacker)
+									{
+										if (!teamplay)
+										{
+											RadiusDamage_EnemyDamageDone += finaldmg;
+											//print("DmgDone:",ftos(RadiusDamage_EnemyDamageDone), "\n");
+											RadiusDamage_EnemyMaxDamage += coredamage;
+											//print("MaxDamage:",ftos(RadiusDamage_EnemyMaxDamage), "\n");
+										}
+										else if(targ.team != attacker.team)
+										{
+											RadiusDamage_EnemyDamageDone += finaldmg;
+											//print("DmgDone",ftos(RadiusDamage_EnemyDamageDone, "\n"));
+											RadiusDamage_EnemyMaxDamage += coredamage;
+											//print("MaxDamage",ftos(RadiusDamage_EnemyMaxDamage), "\n");
+										}
+									}
+								}
+
 								if(targ == directhitentity || DEATH_ISSPECIAL(deathtype))
 									Damage (targ, inflictor, attacker, finaldmg, deathtype, nearest, force);
 								else
@@ -1029,5 +1067,17 @@
 
 	RadiusDamage_running = 0;
 
+	//Calculates stats for all RadiusDamage weapons
+	if(clienttype(attacker) == CLIENTTYPE_REAL)
+	{
+		float f;
+		f = min(RadiusDamage_EnemyMaxDamage, RadiusDamage_EnemyDamageDone);
+		attacker.actual_damage[attacker.weapon] += f;  // actual damage done
+		//attacker.max_damage[attacker.weapon] += coredamage;  // max damage, potential damage
+		// update the client and store into addstat() in g_world
+		attacker.damage_hits = attacker.weapon + 64 * rint(attacker.actual_damage[attacker.weapon]);
+		attacker.maxdamage_fired = attacker.weapon + 64 * rint(attacker.max_damage[attacker.weapon]);
+	}
+
 	return total_damage_to_creatures;
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_subs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_subs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_subs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,6 @@
 void SUB_Null() {};
+float SUB_True() { return 1; }
+float SUB_False() { return 0; }
 
 void(vector destangle, float tspeed, void() func) SUB_CalcAngleMove;
 void()  SUB_CalcMoveDone;
@@ -14,11 +16,18 @@
 
 void setanim(entity e, vector anim, float looping, float override, float restart)
 {
-	if (!restart)
 	if (anim_x == e.animstate_startframe)
 	if (anim_y == e.animstate_numframes)
 	if (anim_z == e.animstate_framerate)
-		return;
+	{
+		if(restart)
+		{
+			if(anim_y == 1) // ZYM animation
+				BITXOR_ASSIGN(e.effects, EF_TELEPORT_BIT);
+		}
+		else
+			return;
+	}
 	e.animstate_startframe = anim_x;
 	e.animstate_numframes = anim_y;
 	e.animstate_framerate = anim_z;
@@ -54,7 +63,7 @@
 		return '0 1 2';
 	line = fgets(animfile);
 	c = tokenize_console(line);
-	if (c != 3)
+	if (c < 3)
 	{
 		animparseerror = TRUE;
 		return '0 1 2';
@@ -240,14 +249,14 @@
 
 	if (!tspeed)
 		objerror ("No speed is defined!");
-	
+
 	// take the shortest distance for the angles
 	self.angles_x -= 360 * floor((self.angles_x - destangle_x) / 360 + 0.5);
 	self.angles_y -= 360 * floor((self.angles_y - destangle_y) / 360 + 0.5);
 	self.angles_z -= 360 * floor((self.angles_z - destangle_z) / 360 + 0.5);
 	delta = destangle - self.angles;
 	traveltime = vlen (delta) / tspeed;
-  
+
 	self.think1 = func;
 	self.finalangle = destangle;
 	self.think = SUB_CalcAngleMoveDone;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_triggers.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_triggers.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_triggers.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -162,8 +162,11 @@
 
 	if (self.wait > 0)
 	{
-		self.think = multi_wait;
-		self.nextthink = time + self.wait;
+		if(self.wait > 0.01)
+		{
+			self.think = multi_wait;
+			self.nextthink = time + self.wait;
+		}
 	}
 	else
 	{	// we can't just remove (self) here, because this is a touch function
@@ -265,8 +268,6 @@
 		self.noise = "misc/trigger1.wav";
 	}
 
-	if (!self.wait)
-		self.wait = 0.2;
 	self.use = multi_use;
 
 	EXACTTRIGGER_INIT;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_violence.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -11,7 +11,7 @@
 }
 
 // TODO maybe convert this to a TE?
-void Violence_GibSplash_At(vector org, vector dir, float type, float amount)
+void Violence_GibSplash_At(vector org, vector dir, float type, float amount, entity gibowner, entity attacker)
 {
 	entity e;
 
@@ -21,6 +21,8 @@
 	e.state = type; // should stay smaller than 15
 	if(sv_gentle)
 		e.state |= 0x80; // "force gentle" bit
+	if(!sound_allowed(MSG_BROADCAST, gibowner) || !sound_allowed(MSG_BROADCAST, attacker))
+		e.state |= 0x40; // "silence" bit
 	e.state |= 8 * self.species; // gib type, ranges from 0 to 15
 	setorigin(e, org);
 	e.velocity = dir;
@@ -30,7 +32,7 @@
 	Net_LinkEntity(e, FALSE, 0.2, Violence_GibSplash_SendEntity);
 }
 
-void Violence_GibSplash(entity source, float type, float amount)
+void Violence_GibSplash(entity source, float type, float amount, entity attacker)
 {
-	Violence_GibSplash_At(source.origin + source.view_ofs, source.velocity, type, amount);
+	Violence_GibSplash_At(source.origin + source.view_ofs, source.velocity, type, amount, source, attacker);
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -548,7 +548,6 @@
 	Ban_LoadBans();
 
 	//initialise globals related to sv_timeout
-	sys_ticrate = cvar("sys_ticrate");
 	orig_slowmo = cvar("slowmo");
 
 	MapInfo_Enumerate();
@@ -589,7 +588,6 @@
 		}
 	}
 
-	addstat(STAT_SYS_TICRATE, AS_FLOAT, stat_sys_ticrate);
 	addstat(STAT_WEAPONS, AS_INT, weapons);
 	addstat(STAT_SWITCHWEAPON, AS_INT, switchweapon);
 	addstat(STAT_GAMESTARTTIME, AS_FLOAT, stat_game_starttime);
@@ -600,7 +598,10 @@
 	addstat(STAT_INVINCIBLE_FINISHED, AS_FLOAT, invincible_finished);
 	addstat(STAT_PRESSED_KEYS, AS_FLOAT, pressedkeys);
 	addstat(STAT_FUEL, AS_INT, ammo_fuel);
+	addstat(STAT_DAMAGE_HITS, AS_INT, damage_hits);
+ 	addstat(STAT_DAMAGE_FIRED, AS_INT, maxdamage_fired);
 	addstat(STAT_SHOTORG, AS_INT, stat_shotorg);
+	addstat(STAT_LEADLIMIT, AS_FLOAT, stat_leadlimit);
 
 	next_pingtime = time + 5;
 	InitializeEntity(self, cvar_changes_init, INITPRIO_CVARS);
@@ -1640,7 +1641,7 @@
 	ClearWinners();
 	if(WinningConditionHelper_winner)
 		WinningConditionHelper_winner.winning = TRUE;
-	if(WinningConditionHelper_equality)
+	if(WinningConditionHelper_topscore == WinningConditionHelper_secondscore)
 		return WINNING_NEVER;
 
 	// Top two have different scores? Way to go for our beloved TIMELIMIT!
@@ -1653,7 +1654,7 @@
 }
 
 float leaderfrags;
-float WinningCondition_Scores(float limit)
+float WinningCondition_Scores(float limit, float leadlimit)
 {
 	// TODO make everything use THIS winning condition (except LMS)
 	WinningConditionHelper();
@@ -1675,9 +1676,13 @@
 	if(WinningConditionHelper_lowerisbetter)
 	{
 		WinningConditionHelper_topscore = -WinningConditionHelper_topscore;
+		WinningConditionHelper_secondscore = -WinningConditionHelper_secondscore;
 		limit = -limit;
 	}
 
+	if(WinningConditionHelper_zeroisworst)
+		leadlimit = 0; // not supported in this mode
+
 	if(g_dm || g_tdm || g_arena || (g_race && !g_race_qualifying) || g_nexball)
 	// these modes always score in increments of 1, thus this makes sense
 	{
@@ -1695,14 +1700,22 @@
 		}
 	}
 
-	return GetWinningCode(limit && WinningConditionHelper_topscore && (WinningConditionHelper_topscore >= limit), WinningConditionHelper_equality);
+	return GetWinningCode(
+		WinningConditionHelper_topscore &&
+		(
+			(limit && (WinningConditionHelper_topscore >= limit))
+			||
+			(leadlimit && (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit))
+		),
+		WinningConditionHelper_equality
+	);
 }
 
 float WinningCondition_Race(float fraglimit)
 {
 	float wc;
 	entity p;
-	wc = WinningCondition_Scores(fraglimit);
+	wc = WinningCondition_Scores(fraglimit, 0);
 
 	// ALWAYS initiate overtime, unless EVERYONE has finished the race!
 	if(wc == WINNING_YES || wc == WINNING_STARTSUDDENDEATHOVERTIME)
@@ -1720,7 +1733,7 @@
 float WinningCondition_QualifyingThenRace(float limit)
 {
 	float wc;
-	wc = WinningCondition_Scores(limit);
+	wc = WinningCondition_Scores(limit, 0);
 
 	// NEVER initiate overtime
 	if(wc == WINNING_YES || wc == WINNING_STARTSUDDENDEATHOVERTIME)
@@ -1805,8 +1818,9 @@
 */
 void CheckRules_World()
 {
-	local float timelimit;
-	local float fraglimit;
+	float timelimit;
+	float fraglimit;
+	float leadlimit;
 
 	VoteThink();
 	MapVote_Think();
@@ -1835,6 +1849,7 @@
 
 	timelimit = cvar("timelimit") * 60;
 	fraglimit = cvar("fraglimit");
+	leadlimit = cvar("leadlimit");
 
 	if(inWarmupStage || time <= game_starttime) // NOTE: this is <= to prevent problems in the very tic where the game starts
 	{
@@ -1842,6 +1857,7 @@
 			timelimit = 0; // timelimit is not made for warmup
 		if(fraglimit > 0)
 			fraglimit = 0; // no fraglimit for now
+		leadlimit = 0; // no leadlimit for now
 	}
 
 	if(timelimit > 0)
@@ -1934,7 +1950,7 @@
 	}
 	else
 	{
-		checkrules_status = WinningCondition_Scores(fraglimit);
+		checkrules_status = WinningCondition_Scores(fraglimit, leadlimit);
 	}
 
 	if(checkrules_status == WINNING_STARTSUDDENDEATHOVERTIME)

Modified: branches/nexuiz-2.0/data/qcsrc/server/gamecommand.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/gamecommand.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/gamecommand.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -580,6 +580,7 @@
 	entity client, e;
 	vector v;
 	float entno, i;
+	string s;
 	argc = tokenize_console(command);
 
 	if(argv(0) == "help" || argc == 0)
@@ -645,7 +646,6 @@
 	if(argv(0) == "gametype") if(argc == 2)
 	{
 		float t, tsave;
-		string s;
 		s = argv(1);
 		t = MapInfo_Type_FromString(s);
 		tsave = MapInfo_CurrentGametype();
@@ -924,6 +924,8 @@
 
 	if(argv(0) == "bot_cmd")
 	{
+		local entity bot;
+
 		if(argv(1) == "help")
 		{
 			if(argc==2)
@@ -937,6 +939,49 @@
 			return;
 		}
 
+		if(argv(1) == "reset")
+		{
+			bot_resetqueues();
+			return;
+		}
+
+		if(argv(1) == "load" && argc == 3)
+		{
+			float fh;
+			fh = fopen(argv(2), FILE_READ);
+			if(fh < 0)
+			{
+				print("cannot open the file\n");
+				return;
+			}
+
+			i = 0;
+			while((s = fgets(fh)))
+			{
+				argc = tokenize_console(s);
+
+				if(argc >= 3 && argv(0) == "sv_cmd" && argv(1) == "bot_cmd")
+				{
+					// let's start at token 2 so we can skip sv_cmd bot_cmd
+					bot = find_bot_by_number(stof(argv(2)));
+					if(bot == world)
+						bot = find_bot_by_name(argv(2));
+					if(bot)
+						bot_queuecommand(bot, strcat(argv(3), " ", argv(4)));
+				}
+				else
+					localcmd(strcat(s, "\n"));
+
+				++i;
+			}
+
+			print(ftos(i), " commands read\n");
+
+			fclose(fh);
+
+			return;
+		}
+
 		if(argc < 3)
 		{
 			print("Usage: sv_cmd bot_cmd <bot name or number> <command> [argument]\n");
@@ -946,21 +991,16 @@
 			return;
 		}
 
-		local entity bot;
-		bot = find_bot_by_name(argv(1));
-		if(bot==world)
-			bot = find_bot_by_number(stof(argv(1)));
+		bot = find_bot_by_number(stof(argv(2)));
+		if(bot == world)
+			bot = find_bot_by_name(argv(2));
 
 		if(bot)
-		{
-			if(argc==4)
-				bot_queuecommand(bot,argv(2),argv(3));
-			else
-				bot_queuecommand(bot,argv(2),"");
-		}
+			bot_queuecommand(bot, strcat(argv(2), " ", argv(3)));
 		else
 			print(strcat("Error: Unable to find a bot with the name or number '",argv(1),"'\n"));
-        	return;
+
+		return;
 	}
 
 	print("Invalid command. For a list of supported commands, try sv_cmd help.\n");

Modified: branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/havocbot.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -721,6 +721,7 @@
 	{
 		v = (head.absmin + head.absmax) * 0.5;
 		rating = vlen(v - eye);
+		if (rating<cvar("bot_ai_enemydetectionradius"))
 		if (bestrating > rating)
 		if (bot_shouldattack(head))
 		{
@@ -1131,6 +1132,19 @@
 };
 
 .entity havocbot_personal_waypoint;
+.float havocbot_personal_waypoint_searchtime;
+float havocbot_moveto_refresh_route()
+{
+	// Refresh path to goal if necessary
+	entity wp;
+	wp = self.havocbot_personal_waypoint;
+	navigation_goalrating_start();
+	navigation_routerating(wp, 10000, 10000);
+	navigation_goalrating_end();
+	return self.navigation_hasgoals;
+}
+
+.float havocbot_personal_waypoint_failcounter;
 float havocbot_moveto(vector pos)
 {
 	local entity wp;
@@ -1146,25 +1160,29 @@
 		}
 
 		if (!bot_strategytoken_taken)
-		if(self.bot_strategytime<time)
+		if(self.havocbot_personal_waypoint_searchtime<time)
 		{
-			// Refresh path to goal if necessary
-			wp = self.havocbot_personal_waypoint;
-			navigation_goalrating_start();
-			navigation_routerating(wp, 10000, 10000);
-			navigation_goalrating_end();
-
-			if(self.navigation_hasgoals)
-				dprint(self.netname, " walking to its personal waypoint\n");
+			bot_strategytoken_taken = TRUE;
+			if(havocbot_moveto_refresh_route())
+			{
+				dprint(self.netname, " walking to its personal waypoint (after ", ftos(self.havocbot_personal_waypoint_failcounter), " failed attempts)\n");
+				self.havocbot_personal_waypoint_searchtime = time + 10;
+				self.havocbot_personal_waypoint_failcounter = 0;
+			}
 			else
 			{
-				dprint("Warning: can't walk to the personal waypoint located at ", vtos(wp.origin),"\n");
-				self.aistatus &~= AI_STATUS_WAYPOINT_PERSONAL_GOING;
-				return CMD_STATUS_ERROR;
+				self.havocbot_personal_waypoint_failcounter += 1;
+				self.havocbot_personal_waypoint_searchtime = time + 2;
+				if(self.havocbot_personal_waypoint_failcounter >= 30)
+				{
+					dprint("Warning: can't walk to the personal waypoint located at ", vtos(self.havocbot_personal_waypoint.origin),"\n");
+					self.aistatus &~= AI_STATUS_WAYPOINT_PERSONAL_LINKING;
+					remove(self.havocbot_personal_waypoint);
+					return CMD_STATUS_ERROR;
+				}
+				else
+					dprint(self.netname, " can't walk to its personal waypoint (after ", ftos(self.havocbot_personal_waypoint_failcounter), " failed attempts), trying later\n");
 			}
-
-			bot_strategytoken_taken = TRUE;
-			self.bot_strategytime = time + 10;
 		}
 
 		#ifdef DEBUG_BOT_GOALSTACK
@@ -1201,26 +1219,11 @@
 			return CMD_STATUS_EXECUTING;
 		}
 
-		// Step 3: Route to waypoint
-		wp = self.havocbot_personal_waypoint;
-		navigation_goalrating_start();
-		navigation_routerating(wp, 10000, 10000);
-		navigation_goalrating_end();
-
-		if(!self.navigation_hasgoals)
-		{
-			dprint("Warning: can't walk to the personal waypoint located at ", vtos(wp.origin),"\n");
-			self.aistatus &~= AI_STATUS_WAYPOINT_PERSONAL_LINKING;
-			remove(wp);
-			return CMD_STATUS_ERROR;
-		}
-
-		bot_strategytoken_taken = TRUE;
-		self.bot_strategytime = time + 10;
-
+		self.havocbot_personal_waypoint_searchtime = time; // so we set the route next frame
 		self.aistatus &~= AI_STATUS_WAYPOINT_PERSONAL_LINKING;
 		self.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_GOING;
 
+		// Step 3: Route to waypoint
 		dprint(self.netname, " walking to its personal waypoint\n");
 
 		return CMD_STATUS_EXECUTING;
@@ -1235,6 +1238,7 @@
 	}
 
 	self.havocbot_personal_waypoint = wp;
+	self.havocbot_personal_waypoint_failcounter = 0;
 	self.aistatus |= AI_STATUS_WAYPOINT_PERSONAL_LINKING;
 
 	return CMD_STATUS_EXECUTING;

Modified: branches/nexuiz-2.0/data/qcsrc/server/havocbot_ons.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/havocbot_ons.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/havocbot_ons.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -23,6 +23,52 @@
 .float isgenneighbor_blue, iscpneighbor_blue;
 .float isgenneighbor_red, iscpneighbor_red;
 
+float havocbot_pickupevalfunc(entity item);
+
+void havocbot_goalrating_ons_offenseitems(float ratingscale, vector org, float sradius)
+{
+	local entity head;
+	local float t, i, c, needarmor, needweapons;
+
+	// Needs armor/health?
+	if(self.health<100)
+		needarmor = TRUE;
+
+	// Needs weapons?
+	for(i = WEP_FIRST; i < WEP_LAST ; ++i)
+	{
+		// Find weapon
+		if(power2of(i-1) & self.weapons)
+		if(++c>=4)
+			break;
+	}
+
+	if(c<4)
+		needweapons = TRUE;
+
+	if(!needweapons && !needarmor)
+		return;
+
+//	dprint(self.netname, " needs weapons ", ftos(needweapons) , "\n");
+//	dprint(self.netname, " needs armor ", ftos(needarmor) , "\n");
+
+	// See what is around
+	head = findchainfloat(bot_pickup, TRUE);
+	while (head)
+	{
+		// gather health and armor only
+		if (head.solid)
+		if ( ((head.health || head.armorvalue) && needarmor) || (head.weapons && needweapons ) )
+		if (vlen(head.origin - org) < sradius)
+		{
+			t = havocbot_pickupevalfunc(head);
+			if (t > 0)
+				navigation_routerating(head, t * ratingscale, 500);
+		}
+		head = head.chain;
+	}
+};
+
 void havocbot_role_ons_setrole(entity bot, float role)
 {
 	dprint(strcat(bot.netname," switched to "));
@@ -117,6 +163,7 @@
 				navigation_routerating(bestwp, ratingscale, 10000);
 				bestwp.cnt += 1;
 
+				self.havocbot_attack_time = 0;
 				if(checkpvs(self.view_ofs,cp))
 				if(checkpvs(self.view_ofs,bestwp))
 					self.havocbot_attack_time = time + 2;
@@ -167,7 +214,7 @@
 		bestwp = world;
 		best = 99999999999;
 
-		for(wp=findradius(g.origin,350); wp; wp=wp.chain)
+		for(wp=findradius(g.origin,400); wp; wp=wp.chain)
 		{
 			if(wp.classname=="waypoint")
 			if(checkpvs(wp.origin,g))
@@ -187,6 +234,7 @@
 			navigation_routerating(bestwp, ratingscale, 10000);
 			bestwp.cnt += 1;
 
+			self.havocbot_attack_time = 0;
 			if(checkpvs(self.view_ofs,g))
 			if(checkpvs(self.view_ofs,bestwp))
 				self.havocbot_attack_time = time + 5;
@@ -231,15 +279,9 @@
 	{
 		navigation_goalrating_start();
 		havocbot_goalrating_enemyplayers(20000, self.origin, 650);
-
-		if(havocbot_goalrating_ons_generator_attack(20000))
-			havocbot_goalrating_items(10000, self.origin, 300);
-		else
-		{
+		if(!havocbot_goalrating_ons_generator_attack(20000))
 			havocbot_goalrating_ons_controlpoints_attack(20000);
-			havocbot_goalrating_items(10000, self.origin, 500);
-		}
-		havocbot_goalrating_items(500, self.origin, 10000);
+		havocbot_goalrating_ons_offenseitems(10000, self.origin, 10000);
 		navigation_goalrating_end();
 
 		self.bot_strategytime = time + cvar("bot_ai_strategyinterval");

Modified: branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -526,6 +526,8 @@
 	GetCvars_handleFloat(s, f, cvar_cl_voice_directional, "cl_voice_directional");
 	GetCvars_handleFloat(s, f, cvar_cl_voice_directional_taunt_attenuation, "cl_voice_directional_taunt_attenuation");
 	GetCvars_handleFloat(s, f, cvar_cl_hitsound, "cl_hitsound");
+	GetCvars_handleFloat(s, f, cvar_cl_forceplayermodels, "cl_forceplayermodels");
+	GetCvars_handleFloat(s, f, cvar_cl_forceplayermodelsfromnexuiz, "cl_forceplayermodelsfromnexuiz");
 
 	// fixup of switchweapon (needed for LMS or when spectating is disabled, as PutClientInServer comes too early)
 	if(f > 0)
@@ -760,6 +762,11 @@
 			}
 		}
 	}
+	else if(s == "none")
+	{
+		g_weaponarena_list = "No Weapons";
+		g_weaponarena = WEPBIT_ALL + 1; // this supports no single weapon bit!
+	}
 	else
 	{
 		t = tokenize_console(s);
@@ -997,6 +1004,7 @@
 	g_touchexplode_edgedamage = cvar("g_touchexplode_edgedamage");
 	g_touchexplode_force = cvar("g_touchexplode_force");
 
+ 	sv_clforceplayermodels = cvar("sv_clforceplayermodels");
  	sv_clones = cvar("sv_clones");
 	sv_cheats = cvar("sv_cheats");
 	sv_gentle = cvar("sv_gentle");
@@ -1111,7 +1119,7 @@
 
 // Sound functions
 string precache_sound (string s) = #19;
-void(entity e, float chan, string samp, float vol, float atten) sound = #8;
+void(entity e, float chan, string samp, float vol, float atten) sound_builtin = #8;
 float precache_sound_index (string s) = #19;
 
 #define SND_VOLUME      1
@@ -1119,9 +1127,43 @@
 #define SND_LARGEENTITY 8
 #define SND_LARGESOUND  16
 
+float sound_allowed(float dest, entity e)
+{
+	// sounds from world may always pass
+	for(;;)
+	{
+		if(e.classname == "body")
+			e = e.enemy;
+		if(e.owner && e.owner != e)
+			e = e.owner;
+		else
+			break;
+	}
+	// sounds to self may always pass
+	if(dest == MSG_ONE)
+		if(e == msg_entity)
+			return TRUE;
+	// sounds by players can be removed
+	if(cvar("bot_sound_monopoly"))
+		if(clienttype(e) == CLIENTTYPE_REAL)
+			return FALSE;
+	// anything else may pass
+	return TRUE;
+}
+
+void sound(entity e, float chan, string samp, float vol, float atten)
+{
+	if(!sound_allowed(MSG_BROADCAST, e))
+		return;
+	sound_builtin(e, chan, samp, vol, atten);
+}
 void soundtoat(float dest, entity e, vector o, float chan, string samp, float vol, float atten)
 {
 	float entno, idx;
+
+	if(!sound_allowed(dest, e))
+		return;
+
 	entno = num_for_edict(e);
 	idx = precache_sound_index(samp);
 
@@ -1167,6 +1209,10 @@
 void soundto(float dest, entity e, float chan, string samp, float vol, float atten)
 {
 	vector o;
+
+	if(!sound_allowed(dest, e))
+		return;
+
 	o = e.origin + 0.5 * (e.mins + e.maxs);
 	soundtoat(dest, e, o, chan, samp, vol, atten);
 }
@@ -1177,6 +1223,10 @@
 void stopsoundto(float dest, entity e, float chan)
 {
 	float entno;
+
+	if(!sound_allowed(dest, e))
+		return;
+
 	entno = num_for_edict(e);
 
 	if(entno >= 8192)
@@ -1206,6 +1256,9 @@
 }
 void stopsound(entity e, float chan)
 {
+	if(!sound_allowed(MSG_BROADCAST, e))
+		return;
+
 	stopsoundto(MSG_BROADCAST, e, chan); // unreliable, gets there fast
 	stopsoundto(MSG_ALL, e, chan); // in case of packet loss
 }
@@ -1232,6 +1285,9 @@
 // use this one if you might be causing spam (e.g. from touch functions that might get called more than once per frame)
 float spamsound(entity e, float chan, string samp, float vol, float atten)
 {
+	if(!sound_allowed(MSG_BROADCAST, e))
+		return FALSE;
+
 	if(time > e.announcetime)
 	{
 		e.announcetime = time;
@@ -1244,6 +1300,10 @@
 void play2team(float t, string filename)
 {
 	local entity head;
+
+	if(cvar("bot_sound_monopoly"))
+		return;
+
 	FOR_EACH_REALPLAYER(head)
 	{
 		if (head.team == t)
@@ -1253,6 +1313,9 @@
 
 void play2all(string samp)
 {
+	if(cvar("bot_sound_monopoly"))
+		return;
+
 	sound(world, CHAN_AUTO, samp, VOL_BASE, ATTN_NONE);
 }
 
@@ -2179,6 +2242,7 @@
 {
 	pl.soundentity = spawn();
 	pl.soundentity.classname = "soundentity";
+	pl.soundentity.owner = pl;
 	setattachment(pl.soundentity, pl, "");
 	setmodel(pl.soundentity, "null");
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/mode_onslaught.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/mode_onslaught.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/mode_onslaught.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -531,7 +531,7 @@
 		if(random() < 0.01)
 		{
 			pointparticles(particleeffectnum("electro_ballexplode"), self.origin + randompos('-50 -50 -20', '50 50 50'), '0 0 0', 1);
-			sound(self, CHAN_TRIGGER, "onslaught/electricity_explode.ogg", VOL_BASE, ATTN_NORM);
+			sound(self, CHAN_TRIGGER, "onslaught/electricity_explode.wav", VOL_BASE, ATTN_NORM);
 		}
 		else
 			pointparticles(particleeffectnum("torch_small"), self.origin + randompos('-60 -60 -20', '60 60 60'), '0 0 0', 1);

Modified: branches/nexuiz-2.0/data/qcsrc/server/movelib.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/movelib.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/movelib.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -169,14 +169,17 @@
 {
     float mspeed;
     vector mdir;
+    float vz;
 
     mspeed = max(0,vlen(self.velocity) - force);
     mdir   = normalize(self.velocity);
+    vz = self.velocity_z;
     self.velocity = mdir * mspeed;
+    self.velocity_z = vz;
 }
 
 
-void movelib_groundalign4point(float spring_length,float spring_up)
+void movelib_groundalign4point(float spring_length,float spring_up,float blendrate)
 {
     vector a,b,c,d,e,r,push_angle, ahead,side;
 
@@ -219,9 +222,13 @@
     push_angle_z = (b_z - a_z) * 45;
     push_angle_z += (d_z - c_z) * 45;
 
-    self.angles_x += push_angle_x * 0.95;
-    self.angles_z += push_angle_z * 0.95;
+    //self.angles_x += push_angle_x * 0.95;
+    //self.angles_z += push_angle_z * 0.95;
 
+    self.angles_x = ((1-blendrate) *  self.angles_x)  + (push_angle_x * blendrate);
+    self.angles_z = ((1-blendrate) *  self.angles_z)  + (push_angle_z * blendrate);
+
+    //a = self.origin;
     setorigin(self,r);
 }
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/nexball.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/nexball.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/nexball.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -3,6 +3,7 @@
 #define BALL_MINS '-16 -16 -16'  // The model is 24*24*24
 #define BALL_MAXS '16 16 16'
 #define BALL_ATTACHORG '3 0 16'
+#define BALL_SPRITECOLOR '.91 .85 .62'
 #define BALL_FOOT   1
 #define BALL_BASKET 2
 //spawnflags
@@ -41,6 +42,8 @@
 	CVTOV(g_nexball_delay_idle);               //10
 	CVTOV(g_nexball_football_physics);         //0
 
+	radar_showennemies = cvar("g_nexball_radar_showallplayers");
+
 	InitializeEntity(world, nb_delayedinit, INITPRIO_GAMETYPE);
 }
 
@@ -114,11 +117,55 @@
 	ownr.flags &~= FL_ONGROUND;
 }
 
+void GiveBall (entity plyr, entity ball)
+{
+	local entity ownr;
+
+	if ((ownr = ball.owner))
+	{
+		ownr.effects &~= g_nexball_basketball_effects_default;
+		ownr.ballcarried = world;
+		if (ownr.metertime)
+		{
+			ownr.metertime = 0;
+			ownr.weaponentity.state = WS_READY;
+		}
+	}
+
+	setattachment(ball, plyr, "");
+	setorigin(ball, BALL_ATTACHORG);
+
+	if (ball.team != plyr.team)
+		ball.teamtime = time + g_nexball_basketball_delay_hold_forteam;
+
+	ball.owner = ball.pusher = plyr; //"owner" is set to the player carrying, "pusher" to the last player who touched it
+	ball.team = plyr.team;
+	plyr.ballcarried = ball;
+	ball.dropperid = plyr.playerid;
+
+	plyr.effects |= g_nexball_basketball_effects_default;
+	ball.effects &~= g_nexball_basketball_effects_default;
+
+	ball.velocity = '0 0 0';
+	ball.movetype = MOVETYPE_NONE;
+	ball.touch = SUB_Null;
+	ball.effects |= EF_NOSHADOW;
+	ball.scale = 1; // scale down.
+
+	ball.waypointsprite_attachedforcarrier.exteriormodeltoclient = plyr;
+
+	if (g_nexball_basketball_delay_hold)
+	{
+		ball.think = DropOwner;
+		ball.nextthink = time + g_nexball_basketball_delay_hold;
+	}
+}
+
 void DropBall (entity ball, vector org, vector vel)
 {
 	ball.effects |= g_nexball_basketball_effects_default;
 	ball.effects &~= EF_NOSHADOW;
-	ball.owner.effects &~= g_nexball_basketball_effects_default; // this may be problematic.
+	ball.owner.effects &~= g_nexball_basketball_effects_default;
 
 	setattachment(ball, world, "");
 	setorigin (ball, org);
@@ -137,6 +184,8 @@
 		ball.owner.weaponentity.state = WS_READY;
 	}
 
+	ball.waypointsprite_attachedforcarrier.exteriormodeltoclient = world;
+
 	ball.owner.ballcarried = world;
 	ball.owner = world;
 }
@@ -157,6 +206,7 @@
 	self.pusher = world;
 	self.team = FALSE;
 	sound (self, CHAN_PROJECTILE, self.noise1, VOL_BASE, ATTN_NORM);
+	WaypointSprite_Ping(self.waypointsprite_attachedforcarrier);
 	LogNB("init", world);
 }
 
@@ -239,28 +289,7 @@
 		if (other.health <= 0)
 			return;
 		LogNB("caught", other);
-
-		if (self.team != other.team)
-			self.teamtime = time + g_nexball_basketball_delay_hold_forteam;
-
-		self.owner = self.pusher = other; //"owner" is set to the player carrying, "pusher" to the last player who touched it
-		self.team = other.team;
-		other.ballcarried = self;
-		other.effects = other.effects | g_nexball_basketball_effects_default;
-		self.effects &~= g_nexball_basketball_effects_default;
-		self.effects |= EF_NOSHADOW;
-		self.scale = 1; // scale down.
-		self.dropperid = other.playerid;
-		setattachment(self, other, "");
-		setorigin(self, BALL_ATTACHORG);
-		self.velocity = '0 0 0';
-		self.movetype = MOVETYPE_NONE;
-		self.touch = SUB_Null;
-		if (g_nexball_basketball_delay_hold)
-		{
-			self.think = DropOwner;
-			self.nextthink = time + g_nexball_basketball_delay_hold;
-		}
+		GiveBall(other, self);
 	} else if (other.solid == SOLID_BSP) {
 		sound (self, CHAN_PROJECTILE, self.noise, VOL_BASE, ATTN_NORM);
 		if (vlen(self.velocity) && !self.cnt)
@@ -325,6 +354,9 @@
 
 	if (ball.owner) // Happens on spawnflag GOAL_TOUCHPLAYER
 		DropBall(ball, ball.owner.origin, ball.owner.velocity);
+
+	WaypointSprite_Ping(ball.waypointsprite_attachedforcarrier);
+
 	ball.cnt = 1;
 	ball.think = ResetBall;
 	if (ball.classname == "nexball_basketball")
@@ -361,7 +393,7 @@
 		switch(e.team)
 		{
 			case COLOR_TEAM1: if(!t_r) { nb_spawnteam ("Red", e.team-1)   ; t_r = 1; } break;
-			case COLOR_TEAM2: if(!t_b) { nb_spawnteam ("Blue", e.team-1)  ; t_b = 1; } break; 
+			case COLOR_TEAM2: if(!t_b) { nb_spawnteam ("Blue", e.team-1)  ; t_b = 1; } break;
 			case COLOR_TEAM3: if(!t_y) { nb_spawnteam ("Yellow", e.team-1); t_y = 1; } break;
 			case COLOR_TEAM4: if(!t_p) { nb_spawnteam ("Pink", e.team-1)  ; t_p = 1; } break;
 		}
@@ -384,6 +416,8 @@
 {
 	if(!g_nexball) { remove(self); return; }
 
+//	balls += 4; // using the remaining bits to count balls will leave more than the max edict count, so it's fine
+
 	if (!self.model) {
 		self.model = "models/nexball/ball.md3";
 		self.scale = 1.3;
@@ -410,18 +444,21 @@
 	if (!cvar("g_nexball_sound_bounce"))
 		self.noise = "";
 	else if (!self.noise)
-		self.noise = "sound/nexball/bounce.ogg";
+		self.noise = "sound/nexball/bounce.wav";
 		//bounce sound placeholder (FIXME)
 	if (!self.noise1)
-		self.noise1 = "sound/nexball/drop.ogg";
+		self.noise1 = "sound/nexball/drop.wav";
 		//ball drop sound placeholder (FIXME)
 	if (!self.noise2)
-		self.noise2 = "sound/nexball/steal.ogg";
+		self.noise2 = "sound/nexball/steal.wav";
 		//stealing sound placeholder (FIXME)
 	if (self.noise) precache_sound (self.noise);
 	precache_sound (self.noise1);
 	precache_sound (self.noise2);
 
+	WaypointSprite_AttachCarrier("nb-ball", self); // the ball's team is not set yet, no rule update needed
+	WaypointSprite_UpdateTeamRadar(self.waypointsprite_attachedforcarrier, RADARICON_FLAGCARRIER, BALL_SPRITECOLOR);
+
 	self.reset = ball_restart;
 	self.think = InitBall;
 	self.nextthink = game_starttime + cvar("g_nexball_delay_start");
@@ -442,6 +479,8 @@
 		self.effects = g_nexball_basketball_effects_default;
 	self.solid = SOLID_TRIGGER;
 	balls |= BALL_BASKET;
+	self.bouncefactor = cvar("g_nexball_basketball_bouncefactor");
+	self.bouncestop = cvar("g_nexball_basketball_bouncestop");
 	SpawnBall();
 }
 
@@ -450,6 +489,8 @@
 	self.classname = "nexball_football";
 	self.solid = SOLID_TRIGGER;
 	balls |= BALL_FOOT;
+	self.bouncefactor = cvar("g_nexball_football_bouncefactor");
+	self.bouncestop = cvar("g_nexball_football_bouncestop");
 	SpawnBall();
 }
 
@@ -531,31 +572,6 @@
 		other.flags &~= FL_ONGROUND;
 		if(!attacker.ballcarried)
 		{
-			other.effects &~= g_nexball_basketball_effects_default;
-			other.ballcarried = world;
-
-			if (g_nexball_basketball_delay_hold)
-			{
-				ball.think = DropOwner;
-				ball.nextthink = time + g_nexball_basketball_delay_hold;
-			}
-
-			attacker.effects = attacker.effects | g_nexball_basketball_effects_default;
-			attacker.ballcarried = ball;
-			if (other.metertime)
-			{
-				other.metertime = 0;
-				other.weaponentity.state = WS_READY;
-			}
-
-			setattachment(ball, attacker, "");
-			ball.owner = ball.pusher = attacker;
-			ball.team = attacker.team;
-			ball.dropperid = attacker.playerid;
-
-			if (other.team != attacker.team)
-				ball.teamtime = time + g_nexball_basketball_delay_hold_forteam;
-
 			LogNB("stole", attacker);
 			sound (other, CHAN_AUTO, ball.noise2, VOL_BASE, ATTN_NORM);
 
@@ -565,6 +581,8 @@
 				attacker.teamkill_soundtime = time + 0.4;
 				attacker.teamkill_soundsource = other;
 			}
+
+			GiveBall(attacker, other.ballcarried);
 		}
 	}
 	remove(self);
@@ -577,7 +595,7 @@
 	if (!(ball = self.ballcarried))
 		return;
 
-	W_SetupShot (self, FALSE, 4, "nexball/shoot1.wav");
+	W_SetupShot (self, FALSE, 4, "nexball/shoot1.wav",0);
 	tracebox(w_shotorg, BALL_MINS, BALL_MAXS, w_shotorg, MOVE_WORLDONLY, world);
 	if(trace_startsolid)
 	{
@@ -608,7 +626,7 @@
 	local entity missile;
 	if (!(balls & BALL_BASKET))
 		return;
-	W_SetupShot (self, FALSE, 2, "nexball/shoot2.ogg");
+	W_SetupShot (self, FALSE, 2, "nexball/shoot2.wav",0);
 //	pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 	missile = spawn ();
 
@@ -657,7 +675,7 @@
 			W_Nexball_Attack2();
 			weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_nexball_secondary_animtime"), w_ready);
 		}
-		
+
 		if (!self.BUTTON_ATCK && self.metertime && self.ballcarried)
 		{
 			W_Nexball_Attack(time - self.metertime);
@@ -672,7 +690,7 @@
 		precache_model ("models/weapons/h_porto.dpm");
 		precache_model ("models/elaser.mdl");
 		precache_sound ("nexball/shoot1.wav");
-		precache_sound ("nexball/shoot2.ogg");
+		precache_sound ("nexball/shoot2.wav");
 	}
 	else if (req == WR_SETUP)
 		weapon_setup(WEP_PORTO);

Copied: branches/nexuiz-2.0/data/qcsrc/server/pathlib (from rev 7090, trunk/data/qcsrc/server/pathlib)

Modified: branches/nexuiz-2.0/data/qcsrc/server/progs.src
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/progs.src	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/progs.src	2009-07-11 14:55:44 UTC (rev 7190)
@@ -74,7 +74,7 @@
 verbstack.qc
 movelib.qc
 steerlib.qc
-pathlib.qc
+pathlib/pathlib.qh
 
 g_world.qc
 g_casings.qc
@@ -159,6 +159,7 @@
 
 //// tZork Turrets ////
 tturrets/include/turrets.qh
+vehicles/vehicles.qh
 
 scores.qc
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/race.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/race.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/race.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -612,6 +612,7 @@
 		g_race_qualifying = 0;
 		independent_players = 0;
 		cvar_set("fraglimit", ftos(race_fraglimit));
+		cvar_set("leadlimit", ftos(race_leadlimit));
 		ScoreRules_race();
 	}
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/race.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/race.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/race.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -12,6 +12,7 @@
 float race_highest_place_spawn; // number of places; a place higher gets spawned at 0
 float race_lowest_place_spawn; // where to spawn in qualifying
 float race_fraglimit;
+float race_leadlimit;
 .float race_place;
 .float race_completed;
 float race_completing;

Modified: branches/nexuiz-2.0/data/qcsrc/server/scores.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/scores.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/scores.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -336,6 +336,9 @@
 	string s;
 	entity p;
 	float fullstatus;
+	entity winnerscorekeeper;
+	entity secondscorekeeper;
+	entity sk;
 
 	s = GetGametype();
 	s = strcat(s, ":", cvar_string("g_nexuizversion"));
@@ -352,91 +355,110 @@
 			if(teamscorekeepers[t])
 				s = strcat(s, ":", ftos(t+1), ":", GetTeamScoreString(t+1, 1));
 
-		WinningConditionHelper_equality = 0;
-		WinningConditionHelper_winnerteam = 0;
-		for(t = 1; t < 16; ++t)
+		WinningConditionHelper_winnerteam = -1;
+		WinningConditionHelper_secondteam = -1;
+		winnerscorekeeper = world;
+		secondscorekeeper = world;
+		for(t = 0; t < 16; ++t)
 		{
-			entity sk1, sk2;
-			sk1 = teamscorekeepers[WinningConditionHelper_winnerteam];
-			sk2 = teamscorekeepers[t];
-			c = TeamScore_Compare(sk1, sk2);
-			if(c == 0)
-				WinningConditionHelper_equality = 1;
-			else if(c < 0)
+			sk = teamscorekeepers[t];
+			c = TeamScore_Compare(winnerscorekeeper, sk);
+			if(c < 0)
 			{
-				WinningConditionHelper_equality = 0;
-				WinningConditionHelper_winnerteam = t;
+				WinningConditionHelper_secondteam = WinningConditionHelper_winnerteam;
+				WinningConditionHelper_winnerteam = t + 1;
+				secondscorekeeper = winnerscorekeeper;
+				winnerscorekeeper = sk;
 			}
+			else
+			{
+				c = TeamScore_Compare(secondscorekeeper, sk);
+				if(c < 0)
+				{
+					WinningConditionHelper_secondteam = t + 1;
+					secondscorekeeper = sk;
+				}
+			}
 		}
 
-		WinningConditionHelper_topscore = teamscorekeepers[WinningConditionHelper_winnerteam].teamscores_primary;
+		WinningConditionHelper_equality = (TeamScore_Compare(winnerscorekeeper, secondscorekeeper) == 0);
+		if(WinningConditionHelper_equality)
+			WinningConditionHelper_winnerteam = WinningConditionHelper_secondteam = -1;
+
+		WinningConditionHelper_topscore = winnerscorekeeper.teamscores_primary;
+		WinningConditionHelper_secondscore = secondscorekeeper.teamscores_primary;
 		WinningConditionHelper_lowerisbetter = (teamscores_flags_primary & SFL_LOWER_IS_BETTER);
 		WinningConditionHelper_zeroisworst = (teamscores_flags_primary & SFL_ZERO_IS_WORST);
 
-		if(teamscores_flags_primary & SFL_TIME)
-			WinningConditionHelper_topscore /= 10;
-
-		if(WinningConditionHelper_equality)
-			WinningConditionHelper_winnerteam = -1;
-
-		WinningConditionHelper_winner = world;
-		if(WinningConditionHelper_equality)
-			WinningConditionHelper_winnerteam = -1;
-		else
-			++WinningConditionHelper_winnerteam; // map to Nexuiz team numbers (as opposed to colors)
-
-		if(WinningConditionHelper_topscore == 0)
-		{
-			if(scores_flags_primary & SFL_ZERO_IS_WORST)
-			{
-				if(WinningConditionHelper_lowerisbetter)
-					WinningConditionHelper_topscore = 999999999;
-				else
-					WinningConditionHelper_topscore = -999999999;
-			}
-			WinningConditionHelper_equality = 0;
-		}
+		WinningConditionHelper_winner = world; // not supported in teamplay
+		WinningConditionHelper_second = world; // not supported in teamplay
 	}
 	else
 	{
-		WinningConditionHelper_equality = 0;
 		WinningConditionHelper_winner = world;
+		WinningConditionHelper_second = world;
+		winnerscorekeeper = world;
+		secondscorekeeper = world;
 		FOR_EACH_PLAYER(p)
 		{
-			c = PlayerScore_Compare(WinningConditionHelper_winner.scorekeeper, p.scorekeeper);
-			if(c == 0)
-				WinningConditionHelper_equality = 1;
-			else if(c < 0)
+			sk = p.scorekeeper;
+			c = PlayerScore_Compare(winnerscorekeeper, sk);
+			if(c < 0)
 			{
-				WinningConditionHelper_equality = 0;
+				WinningConditionHelper_second = WinningConditionHelper_winner;
 				WinningConditionHelper_winner = p;
+				secondscorekeeper = winnerscorekeeper;
+				winnerscorekeeper = sk;
 			}
+			else
+			{
+				c = PlayerScore_Compare(secondscorekeeper, sk);
+				if(c < 0)
+				{
+					WinningConditionHelper_second = p;
+					secondscorekeeper = sk;
+				}
+			}
 		}
 
-		WinningConditionHelper_topscore = WinningConditionHelper_winner.scorekeeper.scores_primary;
+		WinningConditionHelper_equality = (PlayerScore_Compare(winnerscorekeeper, secondscorekeeper) == 0);
+		if(WinningConditionHelper_equality)
+			WinningConditionHelper_winner = WinningConditionHelper_second = world;
+
+		WinningConditionHelper_topscore = winnerscorekeeper.scores_primary;
+		WinningConditionHelper_secondscore = secondscorekeeper.scores_primary;
 		WinningConditionHelper_lowerisbetter = (scores_flags_primary & SFL_LOWER_IS_BETTER);
-		WinningConditionHelper_zeroisworst = (teamscores_flags_primary & SFL_ZERO_IS_WORST);
+		WinningConditionHelper_zeroisworst = (scores_flags_primary & SFL_ZERO_IS_WORST);
 
-		if(teamscores_flags_primary & SFL_TIME)
-			WinningConditionHelper_topscore /= 10;
+		WinningConditionHelper_winnerteam = -1; // no teamplay
+		WinningConditionHelper_secondteam = -1; // no teamplay
+	}
 
-		WinningConditionHelper_winnerteam = -1;
-		if(WinningConditionHelper_equality)
-			WinningConditionHelper_winner = world;
+	if(teamscores_flags_primary & SFL_TIME)
+		WinningConditionHelper_topscore /= 10;
 
-		if(WinningConditionHelper_topscore == 0)
+	if(WinningConditionHelper_topscore == 0)
+	{
+		if(scores_flags_primary & SFL_ZERO_IS_WORST)
 		{
-			if(scores_flags_primary & SFL_ZERO_IS_WORST)
-			{
-				if(WinningConditionHelper_lowerisbetter)
-					WinningConditionHelper_topscore = 999999999;
-				else
-					WinningConditionHelper_topscore = -999999999;
-			}
-			WinningConditionHelper_equality = 0;
+			if(WinningConditionHelper_lowerisbetter)
+				WinningConditionHelper_topscore = 999999999;
+			else
+				WinningConditionHelper_topscore = -999999999;
 		}
 	}
 
+	if(WinningConditionHelper_secondscore == 0)
+	{
+		if(scores_flags_primary & SFL_ZERO_IS_WORST)
+		{
+			if(WinningConditionHelper_lowerisbetter)
+				WinningConditionHelper_secondscore = 999999999;
+			else
+				WinningConditionHelper_secondscore = -999999999;
+		}
+	}
+
 	if(worldstatus)
 		strunzone(worldstatus);
 	worldstatus = strzone(s);

Modified: branches/nexuiz-2.0/data/qcsrc/server/scores.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/scores.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/scores.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -88,10 +88,13 @@
  * Sets the following results for the current scores entities.
  */
 void WinningConditionHelper();
-float WinningConditionHelper_topscore;   ///< highest score
-float WinningConditionHelper_equality;   ///< 1 if and only if the top two have equal scores
-float WinningConditionHelper_winnerteam; ///< the color of the winning team, or -1 if none
-entity WinningConditionHelper_winner;    ///< the winning player, or world if none
+float WinningConditionHelper_topscore;      ///< highest score
+float WinningConditionHelper_secondscore;   ///< second highest score
+float WinningConditionHelper_winnerteam;    ///< the color of the winning team, or -1 if none
+float WinningConditionHelper_secondteam;    ///< the color of the second team, or -1 if none
+float WinningConditionHelper_equality;      ///< we have no winner
+entity WinningConditionHelper_winner;       ///< the winning player, or world if none
+entity WinningConditionHelper_second;       ///< the second player, or world if none
 float WinningConditionHelper_lowerisbetter; ///< lower is better, duh
 float WinningConditionHelper_zeroisworst;   ///< zero is worst, duh
 #define WINNINGCONDITIONHELPER_LOWERISBETTER_WORST 999999999

Modified: branches/nexuiz-2.0/data/qcsrc/server/t_items.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/t_items.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/t_items.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,6 +1,8 @@
+#define ITEM_RESPAWN_TICKS 10
+
 #define ITEM_RESPAWNTIME(i)         ((i).respawntime + crandom() * (i).respawntimejitter)
 	// range: respawntime - respawntimejitter .. respawntime + respawntimejitter
-#define ITEM_RESPAWNTIME_INITIAL(i) (10 + random() * ((i).respawntime + (i).respawntimejitter - 10))
+#define ITEM_RESPAWNTIME_INITIAL(i) (ITEM_RESPAWN_TICKS + random() * ((i).respawntime + (i).respawntimejitter - ITEM_RESPAWN_TICKS))
 	// range: 10 .. respawntime + respawntimejitter
 
 floatfield Item_CounterField(float it)
@@ -57,7 +59,7 @@
 
 void Item_RespawnCountdown (void)
 {
-	if(self.count >= 5)
+	if(self.count >= ITEM_RESPAWN_TICKS)
 	{
 		if(self.waypointsprite_attached)
 			WaypointSprite_Kill(self.waypointsprite_attached);
@@ -98,12 +100,18 @@
 			{
 				WaypointSprite_Spawn(name, 0, 0, self, '0 0 64', world, 0, self, waypointsprite_attached, FALSE);
 				if(self.waypointsprite_attached)
+				{
 					WaypointSprite_UpdateTeamRadar(self.waypointsprite_attached, RADARICON_POWERUP, rgb);
+					WaypointSprite_UpdateMaxHealth(self.waypointsprite_attached, ITEM_RESPAWN_TICKS + 1);
+				}
 			}
 		}
 		sound (self, CHAN_TRIGGER, "misc/itemrespawncountdown.wav", VOL_BASE, ATTN_NORM);	// play respawn sound
 		if(self.waypointsprite_attached)
+		{
 			WaypointSprite_Ping(self.waypointsprite_attached);
+			WaypointSprite_UpdateHealth(self.waypointsprite_attached, self.count);
+		}
 	}
 }
 
@@ -112,7 +120,7 @@
 	if(e.flags & FL_POWERUP)
 	{
 		e.think = Item_RespawnCountdown;
-		e.nextthink = time + max(0, t - 5);
+		e.nextthink = time + max(0, t - ITEM_RESPAWN_TICKS);
 		e.count = 0;
 	}
 	else
@@ -1384,22 +1392,28 @@
 	n = tokenize_console(self.netname);
 	for(i = 0; i < n; ++i)
 	{
-		if(argv(i) == "unlimited_ammo")         self.items |= IT_UNLIMITED_AMMO;
-		if(argv(i) == "unlimited_weapon_ammo")  self.items |= IT_UNLIMITED_WEAPON_AMMO;
-		if(argv(i) == "unlimited_superweapons") self.items |= IT_UNLIMITED_SUPERWEAPONS;
-		if(argv(i) == "strength")               self.items |= IT_STRENGTH;
-		if(argv(i) == "invincible")             self.items |= IT_INVINCIBLE;
-		if(argv(i) == "jetpack")                self.items |= IT_JETPACK;
-		if(argv(i) == "fuel_regen")             self.items |= IT_FUEL_REGEN;
-		for(j = WEP_FIRST; j <= WEP_LAST; ++j)
+		if     (argv(i) == "unlimited_ammo")         self.items |= IT_UNLIMITED_AMMO;
+		else if(argv(i) == "unlimited_weapon_ammo")  self.items |= IT_UNLIMITED_WEAPON_AMMO;
+		else if(argv(i) == "unlimited_superweapons") self.items |= IT_UNLIMITED_SUPERWEAPONS;
+		else if(argv(i) == "strength")               self.items |= IT_STRENGTH;
+		else if(argv(i) == "invincible")             self.items |= IT_INVINCIBLE;
+		else if(argv(i) == "jetpack")                self.items |= IT_JETPACK;
+		else if(argv(i) == "fuel_regen")             self.items |= IT_FUEL_REGEN;
+		else
 		{
-			e = get_weaponinfo(j);
-			if(argv(i) == e.netname)
+			for(j = WEP_FIRST; j <= WEP_LAST; ++j)
 			{
-				self.weapons |= e.weapons;
-				if(self.spawnflags == 0 || self.spawnflags == 2)
-					weapon_action(e.weapon, WR_PRECACHE);
+				e = get_weaponinfo(j);
+				if(argv(i) == e.netname)
+				{
+					self.weapons |= e.weapons;
+					if(self.spawnflags == 0 || self.spawnflags == 2)
+						weapon_action(e.weapon, WR_PRECACHE);
+					break;
+				}
 			}
+			if(j > WEP_LAST)
+				print("target_items: invalid item ", argv(i), "\n");
 		}
 	}
 }

Modified: branches/nexuiz-2.0/data/qcsrc/server/t_teleporters.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/t_teleporters.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/t_teleporters.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -29,12 +29,16 @@
 				if(boxesoverlap(deathmin, deathmax, head.absmin, head.absmax))
 				{
 					if ((player.classname == "player") && (player.health >= 1))
+					{
+						if(head.classname == "player")
+						if(head.health >= 1)
+							++tdeath_hit;
 						Damage (head, teleporter, telefragger, 10000, DEATH_TELEFRAG, head.origin, '0 0 0');
+					}
 					else if (telefragger.health < 1) // corpses gib
 						Damage (head, teleporter, telefragger, 10000, DEATH_TELEFRAG, head.origin, '0 0 0');
 					else // dead bodies and monsters gib themselves instead of telefragging
 						Damage (telefragger, teleporter, telefragger, 10000, DEATH_TELEFRAG, telefragger.origin, '0 0 0');
-					++tdeath_hit;
 				}
 }
 
@@ -79,7 +83,7 @@
 
 	if(player.classname == "player")
 	{
-		if(player.takedamage && player.deadflag == DEAD_NO && !g_race)
+		if(player.takedamage && player.deadflag == DEAD_NO && !g_race && cvar("g_telefrags"))
 			tdeath(player, teleporter, telefragger, telefragmin, telefragmax);
 
 		// player no longer is on ground

Modified: branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -163,7 +163,7 @@
 
 void InitGameplayMode()
 {
-	float fraglimit_override, timelimit_override;
+	float fraglimit_override, timelimit_override, leadlimit_override;
 
 	VoteReset();
 
@@ -201,6 +201,7 @@
 	// set both here, gamemode can override it later
 	timelimit_override = cvar("timelimit_override");
 	fraglimit_override = cvar("fraglimit_override");
+	leadlimit_override = cvar("leadlimit_override");
 
 	if(g_dm)
 	{
@@ -222,6 +223,7 @@
 		gamemode_name = "Domination";
 		ActivateTeamplay();
 		fraglimit_override = cvar("g_domination_point_limit");
+		leadlimit_override = cvar("g_domination_point_leadlimit");
 		dom_init();
 	}
 
@@ -236,9 +238,15 @@
 			g_ctf_win_mode = cvar("g_ctf_win_mode");
 		g_ctf_ignore_frags = cvar("g_ctf_ignore_frags");
 		if(g_ctf_win_mode == 2)
+		{
 			fraglimit_override = cvar("g_ctf_capture_limit");
+			leadlimit_override = cvar("g_ctf_capture_leadlimit");
+		}
 		else
+		{
 			fraglimit_override = cvar("capturelimit_override");
+			leadlimit_override = cvar("captureleadlimit_override");
+		}
 		ctf_init();
 	}
 
@@ -249,6 +257,7 @@
 		if(cvar("deathmatch_force_teamplay"))
 			ActivateTeamplay();
 		fraglimit_override = cvar("g_runematch_point_limit");
+		leadlimit_override = cvar("g_runematch_point_leadlimit");
 		runematch_init();
 	}
 
@@ -257,6 +266,7 @@
 		game = GAME_LMS;
 		gamemode_name = "Last Man Standing";
 		fraglimit_override = cvar("g_lms_lives_override");
+		leadlimit_override = 0; // not supported by LMS
 		if(fraglimit_override == 0)
 			fraglimit_override = -1;
 		lms_lowest_lives = 9999;
@@ -269,6 +279,7 @@
 		game = GAME_ARENA;
 		gamemode_name = "Arena";
 		fraglimit_override = cvar("g_arena_point_limit");
+		leadlimit_override = cvar("g_arena_point_leadlimit");
 		maxspawned = cvar("g_arena_maxspawned");
 		if(maxspawned < 2)
 			maxspawned = 2;
@@ -281,6 +292,7 @@
 		gamemode_name = "Key Hunt";
 		ActivateTeamplay();
 		fraglimit_override = cvar("g_keyhunt_point_limit");
+		leadlimit_override = cvar("g_keyhunt_point_leadlimit");
 		kh_init();
 	}
 
@@ -319,6 +331,8 @@
 		else
 			fraglimit_override = cvar("g_race_laps_limit");
 
+		leadlimit_override = 0; // currently not supported by race
+
 		if(g_race_qualifying)
 			independent_players = 1;
 
@@ -330,6 +344,7 @@
 		game = GAME_NEXBALL;
 		gamemode_name = "Nexball";
 		fraglimit_override = cvar("g_nexball_goallimit");
+		leadlimit_override = cvar("g_nexball_goalleadlimit");
 		ActivateTeamplay();
 		nb_init();
 	}
@@ -350,12 +365,16 @@
 			cvar_set("fraglimit", ftos(fraglimit_override));
 		if(timelimit_override >= 0)
 			cvar_set("timelimit", ftos(timelimit_override));
+		if(leadlimit_override >= 0)
+			cvar_set("leadlimit", ftos(leadlimit_override));
 	}
 
 	if(g_race && g_race_qualifying == 2)
 	{
 		race_fraglimit = cvar("fraglimit");
 		cvar_set("fraglimit", "0");
+		race_leadlimit = cvar("leadlimit");
+		cvar_set("leadlimit", "0");
 	}
 
 	InitializeEntity(world, default_delayedinit, INITPRIO_GAMETYPE_FALLBACK);

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -17,12 +17,13 @@
 #include "../units/unit_mlrs.qc"    /// Basic multibay RL
 #include "../units/unit_hellion.qc" /// Seeking missiles MLRS
 #include "../units/unit_flac.qc"    /// anti missile turret
-#include "../units/unit_phaser.qc"   /// ZzzapT
-#include "../units/unit_hk.qc"      /// Hunter killers
+#include "../units/unit_phaser.qc"     /// ZzzapT
+#include "../units/unit_hk.qc"         /// Hunter killers
 #include "../units/unit_machinegun.qc" /// whacka
-#include "../units/unit_tessla.qc"  /// Chain lightning capabale turret
-#include "../units/unit_walker.qc"
-#include "../units/unit_ewheel.qc"
-//#include "../units/unit_hive.qc"
+#include "../units/unit_tessla.qc"     /// Chain lightning capabale turret
+#include "../units/unit_walker.qc"     /// Moving minigun-rocket-meele err thing
+#include "../units/unit_ewheel.qc"     /// A evil wheel. with guns on.
+//#include "../units/unit_repulsor.qc" /// Fires a wave that knocks foes back
+//#include "../units/unit_hive.qc"     /// Swarm AI
 
 #endif // TTURRETS_ENABLED

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets_early.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets_early.qh	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/include/turrets_early.qh	2009-07-11 14:55:44 UTC (rev 7190)
@@ -264,7 +264,7 @@
 // Aim from this point,
 //.vector     tur_aimorg;
 
-/// and shoot from here. (could be non constant, think MLRS)
+/// and shoot from here. (can be non constant, think MLRS)
 .vector     tur_shotorg;
 
 /// Aim at this spot
@@ -273,8 +273,8 @@
 /// Predicted time the round will impact
 .float      tur_impacttime;
 
-/// Predicted place the round will impact
-.vector     tur_impactpoint;
+// Predicted place the round will impact
+//.vector     tur_impactpoint; // unused
 
 /// What entity the aimtrace hit, if any.
 .entity     tur_impactent;
@@ -318,8 +318,8 @@
 .float target_range;
 /// Dont consider targets closer then
 .float target_range_min;
-/// Engage fire routine on targets within
-.float target_range_fire;
+// Engage fire routine on targets within
+//.float target_range_fire; // no practical use aymore, work with target_range insted.
 /// Targets closer to this are prefered
 .float target_range_optimal;
 
@@ -340,6 +340,8 @@
 .float target_select_playerbias;
 /// Field of view
 //.float target_select_fov;
+/// Last thimestamp this surret aquierd a valid target
+.float target_select_time;
 
 /*
 * Aim refers to real aiming, not gun pos (thats done by track)

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_aimprocs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_aimprocs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_aimprocs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -58,7 +58,7 @@
         }
 
 
-        // tnx and all credit to Rudolf "div0" Polzer for this solution.
+        // tnx to Rudolf "div0" Polzer for this solution.
         // hmm tobad it dont work.
         /*
         vector q;
@@ -69,7 +69,7 @@
             impact_time = q_y;
         */
 
-        prep = pre_pos + (self.enemy.velocity * (impact_time+mintime));
+        prep = pre_pos + (self.enemy.velocity * (impact_time + mintime));
 
         if(self.aim_flags & TFL_AIM_ZPREDICT)
         if not(self.enemy.flags & FL_ONGROUND)

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_damage.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_damage.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_damage.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -144,6 +144,8 @@
 
     self.alpha             = -1;
     self.tur_head.alpha    = self.alpha;
+    self.customizeentityforclient = SUB_False;
+    self.tur_head.customizeentityforclient = SUB_False;
 
     self.event_damage           = SUB_Null;
     self.tur_head.event_damage  = SUB_Null;
@@ -246,8 +248,11 @@
     self.tur_head.solid     = self.solid;
 
     self.alpha = 1;
-    self.tur_head.alpha     = self.alpha;
+    self.tur_head.alpha     = self.alpha;
+    self.customizeentityforclient = SUB_True;
+    self.tur_head.customizeentityforclient = SUB_True;
 
+
     self.takedamage = DAMAGE_AIM;
     self.tur_head.takedamage    = self.takedamage;
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_main.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_main.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_main.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,8 +1,26 @@
 #define cvar_base "g_turrets_unit_"
 
+/*
+float turret_customizeentityforclient()
+{
+}
+
+float Turret_SendEntity(entity to, float sf)
+{
+
+	WriteByte(MSG_ENTITY, ENT_CLIENT_TURRET);
+	WriteCoord(MSG_ENTITY, self.tur_head.angles_x);
+	WriteCoord(MSG_ENTITY, self.tur_head.angles_y);
+    WriteByte(MSG_ENTITY, self.tur_head.frame);
+
+	//WriteCoord(MSG_ENTITY, self.tur_head.angles_z);
+
+	return TRUE;
+}
+*/
+
 void load_unit_settings(entity ent,string unitname,float is_reload)
 {
-
     string sbase;
 
     // dprint("Reloading turret ",e_turret.netname,"\n");
@@ -44,7 +62,7 @@
 
     ent.target_range         = cvar(strcat(sbase,"_target_range")) * ent.turret_scale_range;
     ent.target_range_min     = cvar(strcat(sbase,"_target_range_min")) * ent.turret_scale_range;
-    ent.target_range_fire    = cvar(strcat(sbase,"_target_range_fire")) * ent.turret_scale_range;
+    //ent.target_range_fire    = cvar(strcat(sbase,"_target_range_fire")) * ent.turret_scale_range;
     ent.target_range_optimal = cvar(strcat(sbase,"_target_range_optimal")) * ent.turret_scale_range;
 
     ent.target_select_rangebias  = cvar(strcat(sbase,"_target_select_rangebias"));
@@ -96,7 +114,7 @@
 **/
 void turret_do_updates(entity t_turret)
 {
-    vector enemy_pos;
+    vector enemy_pos,oldpos;
     entity oldself;
 
     oldself = self;
@@ -106,7 +124,7 @@
 
     turret_tag_fire_update();
 
-    self.tur_shotdir_updated = v_forward;
+    self.tur_shotdir_updated = normalize(v_forward);
 
     self.tur_dist_enemy  = vlen(self.tur_shotorg - enemy_pos);
     self.tur_dist_aimpos = vlen(self.tur_shotorg - self.tur_aimpos);
@@ -114,7 +132,7 @@
     if(self.firecheck_flags & TFL_FIRECHECK_VERIFIED)
     if(self.enemy)
     {
-        enemy_pos = self.enemy.origin;
+        oldpos = self.enemy.origin;
         setorigin(self.enemy,self.tur_aimpos);
     }
 
@@ -124,11 +142,11 @@
 
     if(self.firecheck_flags & TFL_FIRECHECK_VERIFIED)
         if(self.enemy)
-            setorigin(self.enemy,enemy_pos);
+            setorigin(self.enemy,oldpos);
 
-    self.tur_impactpoint           = trace_endpos;
+    //self.tur_impactpoint           = trace_endpos;
     self.tur_impactent             = trace_ent;
-    self.tur_dist_impact_to_aimpos = vlen(trace_endpos - self.tur_aimpos);
+    self.tur_dist_impact_to_aimpos = vlen(trace_endpos - self.tur_aimpos) - (vlen(self.enemy.maxs - self.enemy.mins)*0.5);
     self.tur_impacttime            = vlen(self.tur_shotorg - trace_endpos) / self.shot_speed;
 
     self = oldself;
@@ -388,7 +406,7 @@
     if (self.firecheck_flags & TFL_FIRECHECK_DISTANCES)
     {
         // Not close enougth?
-        if (self.tur_dist_aimpos > self.target_range_fire) return 0;
+        //if (self.tur_dist_aimpos > self.target_range_fire) return 0;
 
         // To close?
         if (self.tur_dist_aimpos < self.target_range_min) return 0;
@@ -400,7 +418,9 @@
 
     // aim<->predicted impact
     if (self.firecheck_flags & TFL_FIRECHECK_AIMDIST)
-        if (self.tur_dist_impact_to_aimpos  > self.aim_firetolerance_dist) return 0;
+        if (self.tur_dist_impact_to_aimpos  > self.aim_firetolerance_dist)
+            if (self.tur_impactent != self.enemy)
+                return 0;
 
     // Volly status
     if (self.shot_volly > 1)
@@ -702,7 +722,7 @@
     }
     else if(self.shoot_flags & TFL_SHOOT_CUSTOM)
     {
-        // This one is doing something oddball. assume its handles what needs to be handled.
+        // This one is doing something.. oddball. assume its handles what needs to be handled.
 
         // Predict?
         if not((self.aim_flags & TFL_AIM_NO))
@@ -745,10 +765,14 @@
             }
 
         // Check if we have a vailid enemy, and try to find one if we dont.
-        if ((turret_validate_target(self,self.enemy,self.target_validate_flags) <= 0) && (self.cnt < time))
+        if( ((self.target_select_time + cvar("g_turrets_targetscan_maxdelay")) < time)
+          || (turret_validate_target(self,self.enemy,self.target_validate_flags) <= 0) )
+        if not (self.target_select_time + cvar("g_turrets_targetscan_mindelay") > time)
         {
             self.enemy = turret_select_target();
-            self.cnt = time + cvar("g_turrets_targetscan_mindelay");
+            //if(self.enemy)
+                self.target_select_time = time;
+
         }
 
 
@@ -824,7 +848,7 @@
 }
 
 /*
-    When .used a turret switched team to activator.team.
+    When .used a turret switch team to activator.team.
     If activator is world, the turrets goes inactive.
 */
 void turret_stdproc_use()
@@ -840,17 +864,28 @@
 
 }
 
+void turret_link()
+{
+    //Net_LinkEntity(self, FALSE, 0, Turret_SendEntity);
+    self.think      = turret_think;
+    self.nextthink  = time;
+}
+
 /*
 * Standard turret initialization. use this!
 * (unless you have a very good reason not to)
-* Any special stuff like multiple cannon models should be done
-* after this is proc called.
-* if the return value is 0, the turret _must_ be removed.
+* if the return value is 0, the turret should be removed.
 */
-float turret_stdproc_init (string cvar_base_name)
+float turret_stdproc_init (string cvar_base_name, float csqc_shared)
 {
 	entity e,ee;
 
+    if(csqc_shared)
+    {
+        dprint("turrets: csqc_shared requested but not implemented. expect strange things to happen.\n");
+        csqc_shared = 0;
+    }
+
     // Are turrets allowed atm?
     if (cvar("g_turrets") == 0)
         return 0;
@@ -975,12 +1010,12 @@
         self.target_range_min = self.shot_radius * 2;
     self.target_range_min = bound(0,self.target_range_min,MAX_SHOT_DISTANCE);
 
-    if (!self.target_range_fire)
-        self.target_range_fire = self.target_range * 0.8;
-    self.target_range_fire = bound(0,self.target_range_fire,MAX_SHOT_DISTANCE);
+    //if (!self.target_range_fire)
+    //    self.target_range_fire = self.target_range * 0.8;
+    //self.target_range_fire = bound(0,self.target_range_fire,MAX_SHOT_DISTANCE);
 
     if (!self.target_range_optimal)
-        self.target_range_optimal = self.target_range_fire * 0.5;
+        self.target_range_optimal = self.target_range * 0.5;
     self.target_range_optimal = bound(0,self.target_range_optimal,MAX_SHOT_DISTANCE);
 
 
@@ -1185,7 +1220,11 @@
     self.bot_attack = TRUE;
 
     // Initiate the main AI loop
-    self.think     = turret_think;
+    if(csqc_shared)
+        self.think     = turret_link;
+    else
+        self.think     = turret_think;
+
     self.nextthink = time + self.ticrate;
 
     self.tur_head.team = self.team;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_scoreprocs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_scoreprocs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_scoreprocs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -36,11 +36,12 @@
     float d_dist;       // Defendmode Distance
 
     float score;        // Total score
+
     float d_score;      // Distance score
-    //float da_score;   // Distance from aimpoint score
     float a_score;      // Angular score
     float m_score;      // missile score
     float p_score;      // player score
+    //float da_score;   // Distance from aimpoint score
 
     float ikr;          // ideal kill range
 
@@ -92,12 +93,15 @@
             (m_score * e_turret.target_select_missilebias) +
             (p_score * e_turret.target_select_playerbias);
 
-    if(e_turret.target_range_fire < vlen(e_turret.tur_shotorg - real_origin(e_target)))
-        score *= 0.1;
+    if(e_turret.target_range < vlen(e_turret.tur_shotorg - real_origin(e_target)))
+    {
+        dprint("Wtf?\n");
+        score *= 0.001;
+    }
 
 #ifdef TURRET_DEBUG
-    string sd,sv,sa,sm,sp,ss;
-    string sdt,svt,sat,smt,spt;
+    string sd,sa,sm,sp,ss;
+    string sdt,sat,smt,spt;
 
     sd = ftos(d_score);
     d_score *= e_turret.target_select_rangebias;
@@ -123,7 +127,6 @@
     ss = ftos(score);
     bprint("^3Target scores^7 \[  ",e_turret.netname, "  \] ^3for^7 \[  ", e_target.netname,"  \]\n");
     bprint("^5Range:\[  ",sd,  "  \]^2+bias:\[  ",sdt,"  \]\n");
-    //bprint("^5Volly:\[  ",sv,  "  \]^2+bias:\[  ",svt,"  \]\n");
     bprint("^5Angle:\[  ",sa,  "  \]^2+bias:\[  ",sat,"  \]\n");
     bprint("^5Missile:\[  ",sm,"  \]^2+bias:\[  ",smt,"  \]\n");
     bprint("^5Player:\[  ",sp, "  \]^2+bias:\[  ",spt,"  \]\n");

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_ewheel.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_ewheel.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_ewheel.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -439,7 +439,7 @@
     self.turret_respawnhook = ewheel_respawnhook;
     self.turret_diehook = ewheel_diehook;
 
-    if (turret_stdproc_init("ewheel_std") == 0)
+    if (turret_stdproc_init("ewheel_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_flac.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_flac.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_flac.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -28,6 +28,7 @@
     proj.angles             = vectoangles(proj.velocity);
     proj.touch              = turret_flac_projectile_explode;
     proj.think              = turret_flac_projectile_explode;
+    //proj.nextthink          = time + vlen(self.tur_shotorg - self.enemy.origin) / self.shot_speed;
     proj.nextthink          = time + max(self.tur_impacttime,(self.shot_radius * 3) / self.shot_speed);
     proj.enemy              = self.enemy;
     proj.cnt                = time + 5;
@@ -47,15 +48,17 @@
 
     //w_deathtypestring = "got caught in the flack.";
 
-    if(self.enemy != world)
-    if(self.cnt < time)
-    if(vlen(self.origin - self.enemy.origin) > self.owner.shot_radius * 0.25)
+
+
+    if( (self.enemy != world) &&
+        (vlen(self.origin - self.enemy.origin) < self.owner.shot_radius * 3) )
     {
-        self.nextthink = time; //vlen(self.origin - self.enemy.origin) / self.owner.shot_speed;
-        return;
+        // OMG HAXX!
+        setorigin(self,self.enemy.origin + randomvec() * self.owner.shot_radius);
     }
 
 
+
     te_explosion (self.origin);
 
     ftmp = crandom();
@@ -91,7 +94,7 @@
     self.ammo_flags     = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
     self.aim_flags      = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE;
 
-    if (turret_stdproc_init("flac_std") == 0)
+    if (turret_stdproc_init("flac_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_fusionreactor.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_fusionreactor.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_fusionreactor.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -11,7 +11,7 @@
 
     if (self.ammo < self.shot_dmg) return 0;
     if (self.enemy.ammo >= self.enemy.ammo_max) return 0;
-    if (self.tur_dist_aimpos > self.target_range_fire) return 0;
+    if (self.tur_dist_aimpos > self.target_range) return 0;
     if (self.tur_dist_aimpos < self.target_range_min) return 0;
 
     return 1;
@@ -49,7 +49,7 @@
     self.aim_flags = TFL_AIM_NO;
     self.track_flags = TFL_TRACK_NO;
     self.turret_respawnhook = turret_fusionreactor_respawnhook;
-    if (turret_stdproc_init("fusreac_std") == 0)
+    if (turret_stdproc_init("fusreac_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hellion.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hellion.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hellion.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -188,7 +188,7 @@
     self.firecheck_flags = TFL_FIRECHECK_WORLD | TFL_FIRECHECK_DEAD | TFL_FIRECHECK_DISTANCES | TFL_FIRECHECK_TEAMCECK | TFL_FIRECHECK_REFIRE | TFL_FIRECHECK_AFF | TFL_FIRECHECK_OWM_AMMO;
     self.ammo_flags = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
 
-    if (turret_stdproc_init("hellion_std") == 0)
+    if (turret_stdproc_init("hellion_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hk.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hk.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_hk.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -433,7 +433,7 @@
 
     self.shoot_flags = TFL_SHOOT_CLEARTARGET;
 
-    if (turret_stdproc_init("hk_std") == 0)
+    if (turret_stdproc_init("hk_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_machinegun.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_machinegun.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_machinegun.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -42,7 +42,7 @@
     else
         self.aim_flags      |= TFL_AIM_SHOTTIMECOMPENSATE;
 
-    if (turret_stdproc_init("machinegun_std") == 0)
+    if (turret_stdproc_init("machinegun_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_mlrs.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_mlrs.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_mlrs.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -103,7 +103,7 @@
     self.ammo_flags = TFL_AMMO_ROCKETS | TFL_AMMO_RECHARGE;
     self.aim_flags = TFL_AIM_LEAD | TFL_AIM_ZEASE | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_INFRONT;
 
-    if (turret_stdproc_init("mlrs_std") == 0)
+    if (turret_stdproc_init("mlrs_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_phaser.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_phaser.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_phaser.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -50,7 +50,7 @@
     if (time - self.shot_spread > 0)
     {
         self.shot_spread = time + 2;
-        sound (self, CHAN_VOICE, "turrets/phaser.ogg", VOL_BASE, ATTN_NORM);
+        sound (self, CHAN_VOICE, "turrets/phaser.wav", VOL_BASE, ATTN_NORM);
     }
 
 
@@ -62,7 +62,7 @@
     self = self.owner;
     //w_deathtypestring = "was phased out of existence";
     FireImoBeam (   self.tur_shotorg,
-                    self.tur_shotorg + self.tur_shotdir_updated * self.target_range_fire,
+                    self.tur_shotorg + self.tur_shotdir_updated * self.target_range,
                     '-1 -1 -1' * self.shot_radius,
                     '1 1 1' * self.shot_radius,
                     self.shot_force,
@@ -89,12 +89,12 @@
     beam.nextthink = time;
     beam.owner = self;
     beam.shot_dmg = self.shot_dmg / (self.shot_speed / beam.ticrate);
-    beam.scale = self.target_range_fire / 256;
+    beam.scale = self.target_range / 256;
     beam.movetype = MOVETYPE_NONE;
     beam.enemy = self.enemy;
     beam.bot_dodge = TRUE;
     beam.bot_dodgerating = beam.shot_dmg;
-    sound (beam, CHAN_PROJECTILE, "turrets/phaser.ogg", VOL_BASE, ATTN_NORM);
+    sound (beam, CHAN_PROJECTILE, "turrets/phaser.wav", VOL_BASE, ATTN_NORM);
     self.fireflag = 1;
 
     beam.attack_finished_single = self.attack_finished_single;
@@ -116,7 +116,7 @@
     self.ammo_flags = TFL_AMMO_ENERGY | TFL_AMMO_RECHARGE | TFL_AMMO_RECIVE;
     self.aim_flags = TFL_AIM_ZEASE | TFL_AIM_LEAD;
 
-    if (turret_stdproc_init("phaser_std") == 0)
+    if (turret_stdproc_init("phaser_std",0) == 0)
     {
         remove(self);
         return;
@@ -138,7 +138,7 @@
 */
 void spawnfunc_turret_phaser()
 {
-    precache_sound ("turrets/phaser.ogg");
+    precache_sound ("turrets/phaser.wav");
     precache_model ("models/turrets/phaser.md3");
     precache_model ("models/turrets/phaser_beam.md3");
     precache_model ("models/turrets/base.md3");

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_plasma.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_plasma.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_plasma.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -127,7 +127,7 @@
     self.aim_flags      = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE | TFL_AIM_GROUND2;
     self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_MEDPROJ | TFL_TURRCAPS_PLAYERKILL | TFL_TURRCAPS_MISSILEKILL;
 
-    if (turret_stdproc_init("plasma_std") == 0)
+    if (turret_stdproc_init("plasma_std",FALSE) == 0)
     {
         remove(self);
         return;
@@ -143,6 +143,7 @@
 
     setmodel(self,"models/turrets/base.md3");
     setmodel(self.tur_head,"models/turrets/plasma.md3");
+    // self.tur_head.alpha = -1;
 
     if (!turret_tag_setup())
         dprint("Warning: Turret ",self.classname, " faild to initialize md3 tags\n");
@@ -167,7 +168,7 @@
     self.aim_flags      = TFL_AIM_LEAD | TFL_AIM_SHOTTIMECOMPENSATE  | TFL_AIM_GROUND2 ;
     self.turrcaps_flags = TFL_TURRCAPS_RADIUSDMG | TFL_TURRCAPS_MEDPROJ | TFL_TURRCAPS_PLAYERKILL;
 
-    if (turret_stdproc_init("plasma_dual") == 0)
+    if (turret_stdproc_init("plasma_dual",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_tessla.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_tessla.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_tessla.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -144,7 +144,7 @@
     self.aim_flags           = TFL_AIM_NO;
     self.track_flags         = TFL_TRACK_NO;
 
-    if (turret_stdproc_init("tesla_std") == 0)
+    if (turret_stdproc_init("tesla_std",0) == 0)
     {
         remove(self);
         return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_walker.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_walker.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/units/unit_walker.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -256,7 +256,7 @@
     self.velocity_z = vz;
 
     if (self.flags & FL_ONGROUND)
-        movelib_groundalign4point(300,100);
+        movelib_groundalign4point(300,100,0.25);
 
 }
 
@@ -939,7 +939,7 @@
     self.turret_diehook = walker_diehook;
 
     self.ticrate = 0.05;
-    if (turret_stdproc_init("walker_std") == 0)
+    if (turret_stdproc_init("walker_std",0) == 0)
     {
         remove(self);
         return;

Copied: branches/nexuiz-2.0/data/qcsrc/server/vehicles (from rev 7090, trunk/data/qcsrc/server/vehicles)

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_campingrifle.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_campingrifle.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_campingrifle.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -52,9 +52,9 @@
 		self.ammo_nails -= pAmmo;
 
 	if(deathtype & HITTYPE_SECONDARY)
-		W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire2.wav");
+		W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire2.wav", cvar("g_balance_campingrifle_secondary_damage"));
 	else
-		W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire.wav");
+		W_SetupShot (self, cvar("g_antilag_bullets") && pSpeed >= cvar("g_antilag_bullets"), 2, "weapons/campingrifle_fire.wav", cvar("g_balance_campingrifle_primary_damage"));
 
 	pointparticles(particleeffectnum("shotgun_muzzleflash"), w_shotorg, w_shotdir * 2000, 1);
 
@@ -67,7 +67,7 @@
 	fireBallisticBullet(w_shotorg, w_shotdir, pSpread, pSpeed, pLifetime, pDamage, pHeadshotAddedDamage / pDamage, pForce, deathtype, EF_RED, 1, pBulletConstant);
 
 	if (cvar("g_casings") >= 2)
-		SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3);
+		SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
 	
 	self.campingrifle_bulletcounter = self.campingrifle_bulletcounter + 1;
 }
@@ -149,6 +149,7 @@
 	else if (req == WR_SETUP)
 	{
 		weapon_setup(WEP_CAMPINGRIFLE);
+		if(cvar("g_balance_campingrifle_auto_reload_after_changing_weapons"))
 		if(self.campingrifle_bulletcounter != 0)
 			self.campingrifle_bulletcounter = -1;
 	}

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_common.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_common.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_common.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,9 @@
+.float bullets_hit[WEP_COUNT]; 		//for hitscan bullets hit
+.float bullets_fired[WEP_COUNT];	//for hitscan bullets fired
 
+FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(bullets_hit);
+FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(bullets_fired);
+
 void W_GiveWeapon (entity e, float wep, string name)
 {
 	entity oldself;
@@ -28,7 +33,10 @@
 	local entity ent, endent;
 	local float endq3surfaceflags;
 	//local entity explosion;
-	
+	float did_hit;
+
+	did_hit = 0;
+
 	railgun_start = start;
 	railgun_end = end;
 
@@ -91,6 +99,15 @@
 		ent.railgunhitsolidbackup = SOLID_NOT;
 		ent.railgunhit = FALSE;
 
+		//for stats so that team hit will count as a miss
+		if(ent.flags & FL_CLIENT)
+		if(ent.deadflag == DEAD_NO)
+			did_hit = 1;
+
+		if(teams_matter)
+		if(ent.team == self.team)
+			did_hit = 0;
+
 		// apply the damage
 		if (ent.takedamage || ent.classname == "case")
 			Damage (ent, self, self, bdamage, deathtype, hitloc, force);
@@ -102,7 +119,18 @@
 		// advance to the next entity
 		ent = findfloat(ent, railgunhit, TRUE);
 	}
+	//calculate hits and fired shots for hitscan
+	if not(self.isbot)
+	{
+		self.bullets_fired[self.weapon] += 1;
+		if(did_hit)
+			self.bullets_hit[self.weapon] += 1;
 
+		// update the client and store in addstat() in g_world
+		self.damage_hits = self.weapon + 64 * rint(self.bullets_hit[self.weapon]);
+		self.maxdamage_fired = self.weapon + 64 * rint(self.bullets_fired[self.weapon]);
+	}
+
 	// we're done with the explosion entity, remove it
 	//remove(explosion);
 
@@ -118,10 +146,13 @@
 {
 	float f;
 
+	float hit;
+	hit = 0;
+
 	f = pow(bound(0, vlen(self.velocity) / vlen(self.oldvelocity), 1), 2); // energy multiplier
 
 	if(other.solid == SOLID_BSP)
-		Damage_DamageInfo(self.origin, self.dmg * f, 0, 0, self.dmg_force * normalize(self.velocity) * f, self.projectiledeathtype);
+		Damage_DamageInfo(self.origin, self.dmg * f, 0, 0, self.dmg_force * normalize(self.velocity) * f, self.projectiledeathtype, self);
 
 	if(other && other != self.enemy)
 	{
@@ -131,6 +162,14 @@
 		railgun_start = self.origin - 2 * frametime * self.velocity;
 		railgun_end = self.origin + 2 * frametime * self.velocity;
 
+		if(other.flags & FL_CLIENT)
+		if(other.deadflag == DEAD_NO)
+			hit = 1;
+
+		if(teamplay)
+		if(other.team == self.owner.team)
+			hit = 0;
+
 		Damage(other, self, self.owner, self.dmg * f, self.projectiledeathtype, self.origin, self.dmg_force * normalize(self.velocity) * f);
 		damage_headshotbonus = 0;
 
@@ -142,6 +181,15 @@
 				announce(self.owner, "announcer/male/awesome.wav");
 		}
 
+		//calculate hits for ballistic weapons
+		if not(self.owner.isbot)
+		{
+			if(hit)
+				self.owner.bullets_hit[self.owner.weapon] += 1;
+			// update the client
+			self.owner.damage_hits = self.owner.weapon + 64 * rint(self.owner.bullets_hit[self.owner.weapon]);
+		}
+
 		//sound (self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_NORM);
 	}
 
@@ -168,9 +216,9 @@
 	{
 		float f;
 		f = pow(bound(0, vlen(self.velocity) / vlen(self.oldvelocity), 1), 2); // energy multiplier
-		Damage_DamageInfo(self.origin, 0, 0, 0, self.dmg_force * normalize(self.velocity) * -f, self.projectiledeathtype);
+		Damage_DamageInfo(self.origin, 0, 0, 0, self.dmg_force * normalize(self.velocity) * -f, self.projectiledeathtype, self);
 	}
-	
+
 	UpdateCSQCProjectile(self);
 }
 
@@ -187,7 +235,7 @@
 float W_BallisticBullet_LeaveSolid(entity e, vector vel, float constant)
 {
 	// move the entity along its velocity until it's out of solid, then let it resume
-	
+
 	float dt, dst, velfactor, v0, vs;
 	float maxdist;
 	float E0_m, Es_m;
@@ -297,6 +345,13 @@
 
 	proj.oldvelocity = proj.velocity;
 
+	//calculate fired bullets for ballistics
+	if not(self.isbot)
+	{
+		self.bullets_fired[self.weapon] += 1;
+		self.maxdamage_fired = self.weapon + 64 * rint(self.bullets_fired[self.weapon]);
+	}
+
 	if(cvar("g_antilag_bullets"))
 	if(pSpeed >= cvar("g_antilag_bullets"))
 	{
@@ -335,6 +390,12 @@
 			self.velocity = v0;
 			self.gravity = g0;
 
+			if not(self.isbot)
+			{
+				self.bullets_fired[self.weapon] += 1;
+				self.maxdamage_fired = self.weapon + 64 * rint(self.bullets_fired[self.weapon]);
+			}
+
 			if(vlen(trace_endpos - self.origin) > 32)
 				zcurveparticles_from_tracetoss(particleeffectnum("tr_bullet"), self.origin, trace_endpos, self.velocity);
 			if(trace_fraction == 1)
@@ -381,54 +442,33 @@
 		CSQCProjectile(proj, TRUE, PROJECTILE_BULLET, TRUE);
 }
 
-/*
- * not used any more
+
 void fireBullet (vector start, vector dir, float spread, float damage, float force, float dtype, float tracer)
 {
 	vector  end;
-	local entity e;
+	//local entity e;
 
-	if(cvar("g_ballistics_force"))
-	{
-		if (DEATH_ISWEAPON(dtype, WEP_SHOTGUN))
-			fireBallisticBullet(start, dir, spread, cvar("g_ballistics_force_shotgun_speed"), 5, damage, 0, force, dtype, 0, 1, cvar("g_ballistics_force_shotgun_bulletconstant"));
-		else
-			fireBallisticBullet(start, dir, spread, cvar("g_ballistics_force_uzi_speed"), 5, damage, 0, force, dtype, 0, 1, cvar("g_ballistics_force_shotgun_bulletconstant"));
-		return;
-	}
-
-	dir = dir + randomvec() * spread;
+	dir = normalize(dir + randomvec() * spread);
 	end = start + dir * MAX_SHOT_DISTANCE;
 	if(self.antilag_debug)
 		traceline_antilag (self, start, end, FALSE, self, self.antilag_debug);
 	else
 		traceline_antilag (self, start, end, FALSE, self, ANTILAG_LATENCY(self));
 
-	if (tracer)
-	{
-		e = spawn();
-		e.owner = self;
-		e.movetype = MOVETYPE_FLY;
-		e.solid = SOLID_NOT;
-		e.think = SUB_Remove;
-		e.nextthink = time + vlen(trace_endpos - start) / 6000;
-		e.velocity = dir * 6000;
-		e.angles = vectoangles(e.velocity);
-		setorigin (e, start);
-		e.flags = FL_PROJECTILE;
+    end = trace_endpos;
 
-		CSQCProjectile(e, TRUE, PROJECTILE_BULLET, TRUE);
-	}
-
 	if ((trace_fraction != 1.0) && (pointcontents (trace_endpos) != CONTENT_SKY))
 	{
+		pointparticles(particleeffectnum("TE_KNIGHTSPIKE"),end,trace_plane_normal * 2500,1);
 		if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
-			Damage_DamageInfo(trace_endpos, damage, 0, 0, dir * force, dtype);
+			Damage_DamageInfo(trace_endpos, damage, 0, 0, dir * force, dtype, self);
 		Damage (trace_ent, self, self, damage, dtype, trace_endpos, dir * force);
+		//void(float effectnum, vector org, vector vel, float howmany) pointparticles = #337; // same as in CSQC
 	}
+	trace_endpos = end;
 }
-*/
 
+
 void W_PrepareExplosionByDamage(entity attacker, void() explode)
 {
 	self.takedamage = DAMAGE_NO;

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -67,7 +67,7 @@
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_crylink_primary_ammo");
 
-	W_SetupShot (self, FALSE, 2, "weapons/crylink_fire.wav");
+	W_SetupShot (self, FALSE, 2, "weapons/crylink_fire.wav", (cvar("g_balance_crylink_primary_damage")*cvar("g_balance_crylink_primary_shots")));
 	forward = v_forward;
 	right = v_right;
 	up = v_up;
@@ -134,7 +134,7 @@
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_crylink_secondary_ammo");
 
-	W_SetupShot (self, FALSE, 2, "weapons/crylink_fire2.wav");
+	W_SetupShot (self, FALSE, 2, "weapons/crylink_fire2.wav", (cvar("g_balance_crylink_secondary_damage")*cvar("g_balance_crylink_secondary_shots")));
 
 	shots = cvar("g_balance_crylink_secondary_shots");
 	pointparticles(particleeffectnum("crylink_muzzleflash"), w_shotorg, w_shotdir * 1000, shots);

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -4,8 +4,9 @@
 	if(other.takedamage == DAMAGE_AIM)
 		if(other.classname == "player")
 			if(IsDifferentTeam(self.owner, other))
-				if(IsFlying(other))
-					announce(self.owner, "announcer/male/electrobitch.wav");
+				if(other.deadflag == DEAD_NO)
+					if(IsFlying(other))
+						announce(self.owner, "announcer/male/electrobitch.wav");
 
 	self.event_damage = SUB_Null;
 	if (self.movetype == MOVETYPE_BOUNCE)
@@ -69,7 +70,7 @@
 {
 	local entity proj;
 
-	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire.wav", cvar("g_balance_electro_primary_damage"));
 
 	pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
@@ -105,7 +106,7 @@
 {
 	local entity proj;
 
-	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire2.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 2, "weapons/electro_fire2.wav", cvar("g_balance_electro_secondary_damage"));
 	w_shotdir = v_forward; // no TrueAim for grenades please
 
 	pointparticles(particleeffectnum("electro_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -202,6 +203,7 @@
 		precache_sound ("weapons/electro_bounce.wav");
 		precache_sound ("weapons/electro_fire.wav");
 		precache_sound ("weapons/electro_fire2.wav");
+		precache_sound ("weapons/electro_impact.wav");
 		precache_sound ("weapons/electro_impact_combo.wav");
 	}
 	else if (req == WR_SETUP)

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -3,8 +3,9 @@
 	if(other.takedamage == DAMAGE_AIM)
 		if(other.classname == "player")
 			if(IsDifferentTeam(self.owner, other))
-				if(IsFlying(other))
-					announce(self.owner, "announcer/male/airshot.wav");
+				if(other.deadflag == DEAD_NO)
+					if(IsFlying(other))
+						announce(self.owner, "announcer/male/airshot.wav");
 
 	self.event_damage = SUB_Null;
 	RadiusDamage (self, self.owner, cvar("g_balance_grenadelauncher_primary_damage"), cvar("g_balance_grenadelauncher_primary_edgedamage"), cvar("g_balance_grenadelauncher_primary_radius"), world, cvar("g_balance_grenadelauncher_primary_force"), self.projectiledeathtype, other);
@@ -76,7 +77,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_primary_ammo");
-	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav", cvar("g_balance_grenadelauncher_primary_damage"));
 	w_shotdir = v_forward; // no TrueAim for grenades please
 
 	pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
@@ -111,7 +112,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_grenadelauncher_secondary_ammo");
-	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav");
+	W_SetupShot_ProjectileSize (self, '0 0 -3', '0 0 -3', FALSE, 4, "weapons/grenade_fire.wav", cvar("g_balance_grenadelauncher_secondary_damage"));
 	w_shotdir = v_forward; // no TrueAim for grenades please
 
 	pointparticles(particleeffectnum("grenadelauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -42,7 +42,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_hagar_primary_ammo");
-	W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav");
+	W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", cvar("g_balance_hagar_primary_damage"));
 
 	pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
@@ -76,7 +76,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_hagar_secondary_ammo");
-	W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav");
+	W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav", cvar("g_balance_hagar_secondary_damage"));
 	//W_SetupShot (self, FALSE, 2, "weapons/hagar_fire.wav"); // TODO: move model a little to the right
 
 	pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_hlac.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_hlac.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_hlac.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -36,7 +36,7 @@
     if(self.crouch)
         spread = spread * cvar("g_balance_hlac_primary_spread_crouchmod");
 
-	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav");
+	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_hlac_primary_damage"));
 	pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 	if (!g_norecoil)
 	{
@@ -85,7 +85,7 @@
     if(self.crouch)
         spread = spread * cvar("g_balance_hlac_secondary_spread_crouchmod");
 
-	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav");
+	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_hlac_secondary_damage"));
 	pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
 	missile = spawn ();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_hook.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_hook.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_hook.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -60,7 +60,7 @@
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_hook_secondary_ammo");
-	W_SetupShot (self, FALSE, 4, "weapons/hookbomb_fire.wav");
+	W_SetupShot (self, FALSE, 4, "weapons/hookbomb_fire.wav", cvar("g_balance_hook_secondary_damage"));
 
 	gren = spawn ();
 	gren.owner = self;

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -17,7 +17,7 @@
 {
 	local entity missile;
 
-	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav");
+	W_SetupShot (self, FALSE, 3, "weapons/lasergun_fire.wav", cvar("g_balance_laser_secondary_damage"));
 	pointparticles(particleeffectnum("laser_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
 	missile = spawn ();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_minstanex.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_minstanex.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_minstanex.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -5,7 +5,7 @@
 	float flying;
 	flying = IsFlying(self); // do this BEFORE to make the trace values from FireRailgunBullet last
 
-	W_SetupShot (self, TRUE, 5, "weapons/minstanexfire.wav");
+	W_SetupShot (self, TRUE, 5, "weapons/minstanexfire.wav", 0);
 
 	yoda = 0;
 	damage_goodhits = 0;
@@ -41,7 +41,7 @@
 	trailparticles(world, particleeffectnum("TE_TEI_G3"), w_shotorg, trace_endpos);
 	// flash and burn the wall
 	if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
-		Damage_DamageInfo(trace_endpos, 10000, 0, 0, 800 * w_shotdir, WEP_MINSTANEX);
+		Damage_DamageInfo(trace_endpos, 10000, 0, 0, 800 * w_shotdir, WEP_MINSTANEX, self);
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 	{

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -15,7 +15,7 @@
 	float flying;
 	flying = IsFlying(self); // do this BEFORE to make the trace values from FireRailgunBullet last
 
-	W_SetupShot (self, TRUE, 5, "weapons/nexfire.wav");
+	W_SetupShot (self, TRUE, 5, "weapons/nexfire.wav", cvar("g_balance_nex_damage"));
 
 	yoda = 0;
 	FireRailgunBullet (w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, cvar("g_balance_nex_damage"), cvar("g_balance_nex_force"), WEP_NEX);
@@ -28,7 +28,7 @@
 	
 	// flash and burn the wall
 	if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
-		Damage_DamageInfo(trace_endpos, cvar("g_balance_nex_damage"), 0, 0, cvar("g_balance_nex_force") * w_shotdir, WEP_NEX);
+		Damage_DamageInfo(trace_endpos, cvar("g_balance_nex_damage"), 0, 0, cvar("g_balance_nex_force") * w_shotdir, WEP_NEX, self);
 
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_cells = self.ammo_cells - cvar("g_balance_nex_ammo");

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_porto.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_porto.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_porto.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -156,7 +156,7 @@
 
 	if not(self.items & IT_UNLIMITED_SUPERWEAPONS)
 		self.weapons = self.weapons - (self.weapons & WEPBIT_PORTO);
-	W_SetupShot (self, FALSE, 4, "porto/fire.wav");
+	W_SetupShot (self, FALSE, 4, "porto/fire.wav", 0);
 	// always shoot from the eye
 	w_shotdir = v_forward;
 	w_shotorg = self.origin + self.view_ofs + ((w_shotorg - self.origin - self.view_ofs) * v_forward) * v_forward;

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -255,7 +255,7 @@
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_rocketlauncher_ammo");
 
-	W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-3 -3 -3', '3 3 3', FALSE, 5, "weapons/rocket_fire.wav", cvar("g_balance_rocketlauncher_damage"));
 	pointparticles(particleeffectnum("rocketlauncher_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
 	missile = spawn ();

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -163,7 +163,7 @@
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_missile_ammo");
 
 	makevectors(self.v_angle);
-	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/seeker_fire.wav", cvar("g_balance_seeker_missile_damage"));
 	w_shotorg += f_diff;
 	pointparticles(particleeffectnum("seeker_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
 
@@ -255,7 +255,7 @@
 {
 	//if(other==self.owner)
 	//    return;
-	Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_BOUNCE);
+	Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_BOUNCE, self);
 
 	remove (self);
 }
@@ -286,7 +286,7 @@
 	te_knightspike(org2);
 
 	self.event_damage = SUB_Null;
-	Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_HEADSHOT);
+	Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_HEADSHOT, self);
 
 	if (other.takedamage == DAMAGE_AIM && other.deadflag == DEAD_NO)
 	{
@@ -317,7 +317,7 @@
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
 		self.ammo_rockets = self.ammo_rockets - cvar("g_balance_seeker_tag_ammo");
 
-	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/tag_fire.wav", 0);
 
 	missile                 = spawn();
 	missile.owner           = self;
@@ -326,7 +326,7 @@
 	missile.bot_dodgerating = 50;
 	missile.touch           = Seeker_Tag_Touch;
 	missile.think           = Seeker_Tag_Think;
-	missile.nextthink       = time + 15;
+	missile.nextthink       = time + cvar("g_balance_seeker_tag_lifetime");
 	missile.movetype        = MOVETYPE_FLY;
 	missile.solid           = SOLID_BBOX;
 	missile.owner           = self;
@@ -392,7 +392,7 @@
 			f_diff = '+1.25 +3.75 0';
 			break;
 	}
-	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav");
+	W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", cvar("g_balance_seeker_flac_damage"));
 	w_shotorg += f_diff;
 
 	pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -19,7 +19,7 @@
 	bulletspeed = cvar("g_balance_shotgun_primary_speed");
 	bulletconstant = cvar("g_balance_shotgun_primary_bulletconstant");
 
-	W_SetupShot (self, cvar("g_antilag_bullets") && bulletspeed >= cvar("g_antilag_bullets"), 5, "weapons/shotgun_fire.wav");
+	W_SetupShot (self, cvar("g_antilag_bullets") && bulletspeed >= cvar("g_antilag_bullets"), 5, "weapons/shotgun_fire.wav", cvar("g_balance_shotgun_primary_damage"));
 	for (sc = 0;sc < bullets;sc = sc + 1)
 		fireBallisticBullet(w_shotorg, w_shotdir, spread, bulletspeed, 5, d, 0, f, WEP_SHOTGUN, 0, 1, bulletconstant);
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
@@ -30,7 +30,7 @@
 	// casing code
 	if (cvar("g_casings") >= 1)
 		for (sc = 0;sc < ammoamount;sc = sc + 1)
-			SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 30) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 1);
+			SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 30) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 1, self);
 
 	// muzzle flash for 1st person view
 	flash = spawn();
@@ -62,7 +62,7 @@
 	bulletspeed = cvar("g_balance_shotgun_secondary_speed");
 	bulletconstant = cvar("g_balance_shotgun_secondary_bulletconstant");
 
-	W_SetupShot (self, cvar("g_antilag_bullets") && bulletspeed >= cvar("g_antilag_bullets"), 5, "weapons/shotgun_fire.wav");
+	W_SetupShot (self, cvar("g_antilag_bullets") && bulletspeed >= cvar("g_antilag_bullets"), 5, "weapons/shotgun_fire.wav", cvar("g_balance_shotgun_secondary_damage"));
 	for (sc = 0;sc < bullets;sc = sc + 1)
 		fireBallisticBullet(w_shotorg, w_shotdir, spread, bulletspeed, 5, d, 0, f, WEP_SHOTGUN | HITTYPE_SECONDARY, 0, 1, bulletconstant);
 	if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
@@ -73,7 +73,7 @@
 	// casing code
 	if (cvar("g_casings") >= 1)
 		for (sc = 0;sc < ammoamount;sc = sc + 1)
-			SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 30) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 1);
+			SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 30) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 1, self);
 
 	flash = spawn();
 	setmodel(flash, "models/uziflash.md3"); // precision set below

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_tuba.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_tuba.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_tuba.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -71,12 +71,19 @@
 void W_Tuba_Attack(float hittype)
 {
 	vector o;
-	W_SetupShot(self, FALSE, 2, "");
-	self.tuba_notecount = !self.tuba_notecount;
+	float c;
+	W_SetupShot(self, FALSE, 2, "", cvar("g_balance_tuba_damage"));
 	if(self.tuba_notecount)
-		sound(self, CHAN_WEAPON, TUBA_NOTE(Tuba_GetNote(self, hittype)), VOL_BASE, cvar("g_balance_tuba_attenuation"));
+	{
+		self.tuba_notecount = FALSE;
+		c = CHAN_WEAPON;
+	}
 	else
-		sound(self, CHAN_WEAPON2, TUBA_NOTE(Tuba_GetNote(self, hittype)), VOL_BASE, cvar("g_balance_tuba_attenuation"));
+	{
+		self.tuba_notecount = TRUE;
+		c = CHAN_WEAPON2;
+	}
+	sound(self, c, TUBA_NOTE(Tuba_GetNote(self, hittype)), bound(0, VOL_BASE * cvar("g_balance_tuba_volume"), 1), cvar("g_balance_tuba_attenuation"));
 	RadiusDamage(self, self, cvar("g_balance_tuba_damage"), cvar("g_balance_tuba_edgedamage"), cvar("g_balance_tuba_radius"), world, cvar("g_balance_tuba_force"), hittype | WEP_TUBA, world);
 
 	o = gettaginfo(self.exteriorweaponentity, 0);

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -22,7 +22,7 @@
 		else
 			self.ammo_nails = self.ammo_nails - cvar("g_balance_uzi_sustained_ammo");
 	}
-	W_SetupShot (self, cvar("g_antilag_bullets") && cvar("g_balance_uzi_speed") >= cvar("g_antilag_bullets"), 0, "weapons/uzi_fire.wav");
+	W_SetupShot (self, cvar("g_antilag_bullets") && cvar("g_balance_uzi_speed") >= cvar("g_antilag_bullets"), 0, "weapons/uzi_fire.wav", cvar("g_balance_uzi_first_damage"));
 	if (!g_norecoil)
 	{
 		self.punchangle_x = random () - 0.5;
@@ -52,7 +52,7 @@
 
 	// casing code
 	if (cvar("g_casings") >= 2)
-		SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3);
+		SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self);
 }
 
 // weapon frames

Modified: branches/nexuiz-2.0/data/qcsrc/server/waypointsprites.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/waypointsprites.qc	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/qcsrc/server/waypointsprites.qc	2009-07-11 14:55:44 UTC (rev 7190)
@@ -25,6 +25,24 @@
 	}
 }
 
+void WaypointSprite_UpdateHealth(entity e, float f)
+{
+	if(f != e.health)
+	{
+		e.health = f;
+		e.SendFlags |= 0x80;
+	}
+}
+
+void WaypointSprite_UpdateMaxHealth(entity e, float f)
+{
+	if(f != e.max_health)
+	{
+		e.max_health = f;
+		e.SendFlags |= 0x80;
+	}
+}
+
 void WaypointSprite_UpdateOrigin(entity e, vector o)
 {
 	if(o != e.origin)
@@ -59,21 +77,21 @@
 
 void WaypointSprite_FadeOutIn(entity e, float t)
 {
-	if(!e.health)
+	if(!e.fade_time)
 	{
-		e.health = t;
+		e.fade_time = t;
 		e.teleport_time = time + t;
 	}
 	else if(t < (e.teleport_time - time))
 	{
 		// accelerate the waypoint's dying
 		// ensure:
-		//   (e.teleport_time - time) / wp.health stays
+		//   (e.teleport_time - time) / wp.fade_time stays
 		//   e.teleport_time = time + fadetime
 		float current_fadetime;
 		current_fadetime = e.teleport_time - time;
 		e.teleport_time = time + t;
-		e.health = e.health * t / current_fadetime;
+		e.fade_time = e.fade_time * t / current_fadetime;
 	}
 
 	e.SendFlags |= 16;
@@ -125,7 +143,7 @@
 
 	doremove = FALSE;
 
-	if(self.health)
+	if(self.fade_time)
 	{
 		if(time >= self.teleport_time)
 			doremove = TRUE;
@@ -175,8 +193,17 @@
 float WaypointSprite_SendEntity(entity to, float sendflags)
 {
 	WriteByte(MSG_ENTITY, ENT_CLIENT_WAYPOINT);
+
+	sendflags = sendflags & 0x7F;
+	
+	if(self.max_health)
+		sendflags |= 0x80;
+
 	WriteByte(MSG_ENTITY, sendflags);
 
+	if(self.max_health)
+		WriteByte(MSG_ENTITY, (self.health / self.max_health) * 255.0);
+
 	if(sendflags & 64)
 	{
 		WriteCoord(MSG_ENTITY, self.origin_x);
@@ -201,9 +228,9 @@
 
 	if(sendflags & 16)
 	{
-		WriteCoord(MSG_ENTITY, self.health);
+		WriteCoord(MSG_ENTITY, self.fade_time);
 		WriteCoord(MSG_ENTITY, self.teleport_time);
-		WriteShort(MSG_ENTITY, self.max_health); // maxdist
+		WriteShort(MSG_ENTITY, self.fade_rate); // maxdist
 		float f;
 		f = 0;
 		if(self.currentammo)
@@ -228,7 +255,7 @@
 {
 	// if a WP wants to time out, let it time out immediately; other WPs ought to be reset/killed by their owners
 
-	if(self.health) // there was there before: || g_keyhunt, do we really need this?
+	if(self.fade_time) // there was there before: || g_keyhunt, do we really need this?
 		WaypointSprite_Kill(self);
 }
 
@@ -245,7 +272,7 @@
 	wp = spawn();
 	wp.classname = "sprite_waypoint";
 	wp.teleport_time = time + lifetime;
-	wp.health = lifetime;
+	wp.fade_time = lifetime;
 	wp.exteriormodeltoclient = ref;
 	if(ref)
 	{
@@ -265,7 +292,7 @@
 		own.ownfield = wp;
 		wp.owned_by_field = ownfield;
 	}
-	wp.max_health = maxdistance;
+	wp.fade_rate = maxdistance;
 	wp.think = WaypointSprite_Think;
 	wp.nextthink = time;
 	wp.model1 = spr;

Modified: branches/nexuiz-2.0/data/scripts/common.shader
===================================================================
--- branches/nexuiz-2.0/data/scripts/common.shader	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/scripts/common.shader	2009-07-11 14:55:44 UTC (rev 7190)
@@ -118,12 +118,6 @@
 textures/common/invisible // solid, transparent polygons, casts shadows
 {
 	surfaceparm nolightmap			
-	{
-		map textures/common/invisible.tga
-		alphaFunc GE128
-		depthWrite
-		rgbGen vertex
-	}
 }
 
 textures/common/mirror1
@@ -197,6 +191,12 @@
 textures/common/noimpact
 {
 	qer_editorimage textures/common/nolightmap.tga
+	qer_nocarve
+	qer_trans 0.5
+	surfaceparm nodraw
+	surfaceparm nolightmap
+	surfaceparm trans
+	surfaceparm nomarks
 	surfaceparm noimpact
 }
 

Modified: branches/nexuiz-2.0/data/scripts/eX.shader
===================================================================
--- branches/nexuiz-2.0/data/scripts/eX.shader	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/scripts/eX.shader	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,166 +1,166 @@
-//----------------------------------------------------------------------//
-// 						 eX texture set									//
-// 				"eX" is evil lair's texture set #10						//
-// 					 http://www.evillair.net							//
-//					   el at evillair.net								//
-//----------------------------------------------------------------------//
-
-textures/eX/eX_lightpanel_01
-{
-	qer_EditorImage	textures/eX/eX_lightpanel_01.tga
-	{
+//----------------------------------------------------------------------//
+// 						 eX texture set									//
+// 				"eX" is evil lair's texture set #10						//
+// 					 http://www.evillair.net							//
+//					   el at evillair.net								//
+//----------------------------------------------------------------------//
+
+textures/eX/eX_lightpanel_01
+{
+	qer_EditorImage	textures/eX/eX_lightpanel_01.tga
+	{
 		map textures/eX/eX_lightpanel_01
 	}
 	{
 		map $lightmap
-	}
-}
-
-textures/eX/eX_light_u201
-{
-	qer_EditorImage	textures/eX/eX_light_u201.tga
+	}
+}
+
+textures/eX/eX_light_u201
+{
+	qer_EditorImage	textures/eX/eX_light_u201.tga
 	{
 		map textures/eX/eX_light_u201
 	}
 	{
 		map $lightmap
-	}
-}
-
-
-
-textures/eX/eX_clangfloor_01
-{
-	qer_EditorImage	textures/eX/eX_clangfloor_01.tga
+	}
+}
+
+
+
+textures/eX/eX_clangfloor_01
+{
+	qer_EditorImage	textures/eX/eX_clangfloor_01.tga
 	{
 		map textures/eX/eX_clangfloor_01
 	}
 	{
 		map $lightmap
-	}	
-}
+	}	
+}
 
-textures/eX/eX_cretebase_01
-{
+textures/eX/eX_cretebase_01
+{
 	qer_EditorImage		textures/eX/eX_cretebase_01.tga
 	{
 		map textures/eX/eX_cretebase_01.tga
 	}
 	{
 		map $lightmap
-	}
-}
+	}
+}
 
-textures/eX/eX_cretefloor_01
-{
+textures/eX/eX_cretefloor_01
+{
 	qer_EditorImage		textures/eX/eX_cretefloor_01.tga
 	{
 		map textures/eX/eX_cretefloor_01
 	}
 	{
 		map $lightmap
-	}
+	}
 }
-
-textures/eX/eX_cretewall_01
-{
+
+textures/eX/eX_cretewall_01
+{
 	qer_EditorImage		textures/eX/eX_cretewall_01.tga
 	{
 		map textures/eX/eX_cretewall_01
 	}
 	{
 		map $lightmap
-	}	
-}
+	}	
+}
 
-textures/eX/eX_cretewall_02
-{
+textures/eX/eX_cretewall_02
+{
 	qer_EditorImage		textures/eX/eX_cretewall_02.tga
 	{
 		map textures/eX/eX_cretewall_02
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
-textures/eX/eX_cretewall_03
-{
+textures/eX/eX_cretewall_03
+{
 	qer_EditorImage		textures/eX/eX_cretewall_03.tga
 	{
 		map textures/eX/eX_cretewall_03
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
-textures/eX/eX_cretewall_03b
-{
+textures/eX/eX_cretewall_03b
+{
 	qer_EditorImage		textures/eX/eX_cretewall_03b.tga
 	{
 		map textures/eX/eX_cretewall_03b
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
 
 
-textures/eX/eX_deswall_01
-{
+textures/eX/eX_deswall_01
+{
 	qer_EditorImage		textures/eX/eX_deswall_01.tga
 	{
 		map textures/eX/eX_deswall_01
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
-textures/eX/eX_floor_grate_03_128
-{
+textures/eX/eX_floor_grate_03_128
+{
 	qer_EditorImage		textures/eX/eX_floor_grate_03_128.tga
 	{
 		map textures/eX/eX_floor_grate_03_128
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
-textures/eX/eX_floor_grate_03
-{
+textures/eX/eX_floor_grate_03
+{
 	qer_EditorImage		textures/eX/eX_floor_grate_03.tga
 	{
 		map textures/eX/eX_floor_grate_03
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
-textures/eX/eX_floor_mtl_grate_01
-{
+textures/eX/eX_floor_mtl_grate_01
+{
 	qer_EditorImage		textures/eX/eX_floor_mtl_grate_01.tga
 	{
 		map textures/eX/eX_floor_mtl_grate_01
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
-textures/eX/eX_floor_mtl_wrn_01
-{
+textures/eX/eX_floor_mtl_wrn_01
+{
 	qer_EditorImage		textures/eX/eX_floor_mtl_wrn_01.tga
 	{
 		map textures/eX/eX_floor_mtl_wrn_01
 	}
 	{
 		map $lightmap
-	}	
+	}	
 }
 
 textures/eX/eX_floor_simple_05
@@ -713,3 +713,90 @@
 	}
 }
 
+textures/eX/eX_clangfloor_01b
+{
+	qer_EditorImage textures/eX/eX_clangfloor_01b.tga
+	{
+		map textures/eX/eX_clangfloor_01b
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eX_cretebase_02
+{
+	qer_EditorImage textures/eX/eX_cretebase_02.tga
+	{
+		map textures/eX/eX_cretebase_02
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eX_cretebase_03_dark
+{
+	qer_EditorImage textures/eX/eX_cretebase_03_dark.tga
+	{
+		map textures/eX/eX_cretebase_03_dark
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eX_cretefloor_01b
+{
+	qer_EditorImage textures/eX/eX_cretefloor_01b.tga
+	{
+		map textures/eX/eX_cretefloor_01b
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eX_floor_grate03
+{
+	qer_EditorImage textures/eX/eX_floor_grate03.tga
+	{
+		map textures/eX/eX_floor_grate03
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eXmetalBase06rust
+{
+	qer_EditorImage textures/eX/eXmetalBase06rust.tga
+	{
+		map textures/eX/eXmetalBase06rust
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eXmetalBase07rust
+{
+	qer_EditorImage textures/eX/eXmetalBase07rust.tga
+	{
+		map textures/eX/eXmetalBase07rust
+	}
+	{
+		map $lightmap
+	}
+}
+
+textures/eX/eX_wall_01b
+{
+	qer_EditorImage textures/eX/eX_wall_01b.tga
+	{
+		map textures/eX/eX_wall_01b
+	}
+	{
+		map $lightmap
+	}
+}

Copied: branches/nexuiz-2.0/data/scripts/sbshield.shader (from rev 7090, trunk/data/scripts/sbshield.shader)
===================================================================
--- branches/nexuiz-2.0/data/scripts/sbshield.shader	                        (rev 0)
+++ branches/nexuiz-2.0/data/scripts/sbshield.shader	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,8 @@
+sb_shield
+{
+	cull none
+ {
+	map textures/sb_shield.tga
+	blendfunc add
+ }
+}
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/scripts/spiderbot.shader (from rev 7090, trunk/data/scripts/spiderbot.shader)
===================================================================
--- branches/nexuiz-2.0/data/scripts/spiderbot.shader	                        (rev 0)
+++ branches/nexuiz-2.0/data/scripts/spiderbot.shader	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,10 @@
+darkvisor
+{
+	qer_editorimage darkvisor.tga
+	{
+		map darkvisor.tga
+		rgbGen vertex
+		tcgen environment
+		tcmod scale 4 4
+	}	
+}
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/scripts/teamfx.shader (from rev 7090, trunk/data/scripts/teamfx.shader)
===================================================================
--- branches/nexuiz-2.0/data/scripts/teamfx.shader	                        (rev 0)
+++ branches/nexuiz-2.0/data/scripts/teamfx.shader	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,42 @@
+teamfx/blobblue
+{
+surfaceparm trans
+deformVertexes autosprite
+{
+	map models/teamfx/blobblue.tga
+	blendfunc add
+}
+}
+
+teamfx/blobred
+{
+surfaceparm trans
+deformVertexes autosprite
+{
+	map models/teamfx/blobred.tga
+	blendfunc add
+}
+
+}
+
+teamfx/blobyellow
+{
+surfaceparm trans
+deformVertexes autosprite
+{
+	map models/teamfx/blobyellow.tga
+	blendfunc add
+}
+
+}
+
+teamfx/blobpink
+{
+surfaceparm trans
+deformVertexes autosprite
+{
+	map models/teamfx/blobpink.tga
+	blendfunc add
+}
+
+}
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/scripts/tuba.shader (from rev 7090, trunk/data/scripts/tuba.shader)
===================================================================
--- branches/nexuiz-2.0/data/scripts/tuba.shader	                        (rev 0)
+++ branches/nexuiz-2.0/data/scripts/tuba.shader	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,19 @@
+textures/tuba
+{
+	{
+		map textures/tuba
+		tcgen environment
+	}
+	{
+		map $lightmap
+	}
+}
+textures/tuba_misc
+{
+	{
+		map textures/tuba
+	}
+	{
+		map $lightmap
+	}
+}

Deleted: branches/nexuiz-2.0/data/sound/cdtracks/creation.ogg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/cockpit.tga (from rev 7090, trunk/data/textures/cockpit.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/cockpit_glow.tga (from rev 7090, trunk/data/textures/cockpit_glow.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/darkvisor.tga (from rev 7090, trunk/data/textures/darkvisor.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/sb_shield.tga (from rev 7090, trunk/data/textures/sb_shield.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/spiderbot (from rev 7090, trunk/data/textures/spiderbot)

Copied: branches/nexuiz-2.0/data/textures/spiderbot.tga (from rev 7090, trunk/data/textures/spiderbot.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/spiderbot_gloss.tga (from rev 7090, trunk/data/textures/spiderbot_gloss.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/spiderbot_glow.tga (from rev 7090, trunk/data/textures/spiderbot_glow.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/spiderbot_norm.tga (from rev 7090, trunk/data/textures/spiderbot_norm.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/spiderbot_pants.tga (from rev 7090, trunk/data/textures/spiderbot_pants.tga)
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/textures/tuba.tga
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/wakazachi.tga (from rev 7090, trunk/data/textures/wakazachi.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/wakazachi_gloss.tga (from rev 7090, trunk/data/textures/wakazachi_gloss.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/wakazachi_norm.tga (from rev 7090, trunk/data/textures/wakazachi_norm.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/textures/wakazachi_pants.tga (from rev 7090, trunk/data/textures/wakazachi_pants.tga)
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/tooltips.db
===================================================================
--- branches/nexuiz-2.0/data/tooltips.db	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/tooltips.db	2009-07-11 14:55:44 UTC (rev 7190)
@@ -102,55 +102,55 @@
 \NexuizSettingsDialog/Video\Video settings
 \vid_width\Screen resolution
 \vid_bitsperpixel\How many bits per pixel (BPP) to render at, 32 is recommended
-\vid_fullscreen\Enable fullscreen mode
+\vid_fullscreen\Enable fullscreen mode (default: enabled)
 \vid_vsync\Enable vertical synchronization to prevent tearing, will cap your fps to the screen refresh rate (default: disabled)
 \r_glsl\Enable OpenGL 2.0 pixel shaders for lightning (default: enabled)
-\r_coronas_occlusionquery\Fade coronas according to visibility (default: enabled)
 \gl_vbo\Make use of Vertex Buffer Objects to store static geometry in video memory for faster rendering (default: Vertex and Triangles)
 \r_depthfirst\Eliminate overdraw by rendering a depth-only version of the scene before the normal rendering starts (default: disabled)
 \gl_texturecompression\Compress the textures for video cards with small amounts of video memory available (default: None)
 \gl_finish\Make the CPU wait for the GPU to finish each frame, can help with some strange input or video lag on some machines (default: disabled)
-\v_brightness\Brightness of black
-\v_contrast\Brightness of white
-\v_gamma\Inverse gamma correction value, a brightness effect that does not affect white or black
-\v_contrastboost\By how much to multiply the contrast in dark areas
-\r_glsl_saturation\Saturation adjustment (0 = gray, 1 = normal, 2 = oversaturated), note that it might decrease performance by a lot to set this to anything other than 1
+\v_brightness\Brightness of black (default: 0)
+\v_contrast\Brightness of white (default: 1)
+\v_gamma\Inverse gamma correction value, a brightness effect that does not affect white or black (default: 1.125)
+\v_contrastboost\By how much to multiply the contrast in dark areas (default: 1)
+\r_glsl_saturation\Saturation adjustment (0 = grayscale, 1 = normal, 2 = oversaturated), requires GLSL color control (default: 1)
 \v_glslgamma\Enable use of GLSL to apply gamma correction, note that it might decrease performance by a lot (default: disabled)
 \r_ambient\Ambient lighting, if set too high it tends to make light on maps look dull and flat (default: 4)
 \r_hdr_scenebrightness\Global rendering brightness (default: 1)
 \vid_samples\Enable 4x antialiasing, which smooths the edges of 3D geometry. Note that it might decrease performance by quite a lot (default: off)
-\v_flipped\Poor man's left handed mode
+\v_flipped\Poor man's left handed mode (default: off)
 
 \NexuizSettingsDialog/Effects\Effect settings
-\r_subdivisions_tolerance\Change the smoothness of the curves on the map
-\gl_picmip\Change the sharpness of the textures. Lowering it will effectively reduce texture memory usage, but make the textures appear very blurry.
-\r_picmipworld\If set, only reduce the texture quality of models
+\r_subdivisions_tolerance\Change the smoothness of the curves on the map (default: normal)
+\gl_picmip\Change the sharpness of the textures. Lowering it will effectively reduce texture memory usage, but make the textures appear very blurry. (default: good)
+\r_picmipworld\If set, only reduce the texture quality of models (default: enabled)
 \mod_q3bsp_nolightmaps\Use high resolution lightmaps, which will look pretty but use up some extra video memory (default: enabled)
 \cl_particles_quality\Multiplier for amount of particles. Less means less particles, which in turn gives for better performance (default: 0.5)
-\r_drawparticles_drawdistance\Particles further away than this will not be drawn
-\cl_decals\Enable decals (bullet holes and blood)
-\r_drawdecals_drawdistance\Decals further away than this will not be drawn
-\cl_decals_time\Time in seconds before decals fade away
-\cl_gentle\Replace blood and gibs with content that does not have any gore effects
-\cl_nogibs\Reduce the amount of gibs or remove them completely
-\v_kicktime\How long a view kick from damage lasts
-\gl_texture_anisotropy\Anisotropic filtering quality
-\r_glsl_deluxemapping\Use per-pixel lighting effects
-\r_shadow_gloss\Enable the use of glossmaps on textures that support it
-\gl_flashblend\Enable faster but uglier dynamic lights by rendering bright coronas instead of real dynamic lights
-\r_shadow_realtime_dlight\Enable rendering of dynamic lights such as explosions and rocket lights
-\r_shadow_realtime_dlight_shadows\Enable rendering of shadows from dynamic lights
-\r_shadow_realtime_world\Enable rendering of full realtime world lighting on maps that support it. Note that this might have a big impact on performance.
-\r_shadow_realtime_world_shadows\Enable rendering of shadows from realtime world lights
-\r_shadow_usenormalmap\Enable use of directional shading on textures
-\r_showsurfaces\Disable textures completely for very slow hardware. This gives a huge performance boost, but looks very ugly.
-\r_glsl_offsetmapping\Offset mapping effect that will make textures with bumpmaps appear like they "pop out" of the in fact flat 2D surface
-\r_glsl_offsetmapping_reliefmapping\Higher quality offset mapping, which also has a huge impact on performance
-\r_water\Reflection and refraction quality, has a huge impact on performance on maps with reflecting surfaces
-\r_water_resolutionmultiplier\Multiplier for screen resolution when rendering refracted/reflected scenes
-\r_coronas\Enable corona flares around certain lights
-\r_bloom\Enable bloom effect, which brightens the neighboring pixels of very bright pixels. Has a big impact on performance.
-\r_hdr\Higher quality version of bloom, which has a huge impact on performance.
+\r_drawparticles_drawdistance\Particles further away than this will not be drawn (default: 1000)
+\cl_decals\Enable decals (bullet holes and blood) (default: enabled)
+\r_drawdecals_drawdistance\Decals further away than this will not be drawn (default: 300)
+\cl_decals_time\Time in seconds before decals fade away (default: 2)
+\cl_gentle\Replace blood and gibs with content that does not have any gore effects (default: disabled)
+\cl_nogibs\Reduce the amount of gibs or remove them completely (default: lots)
+\v_kicktime\How long a view kick from damage lasts (default: 0)
+\gl_texture_anisotropy\Anisotropic filtering quality (default: 1x)
+\r_glsl_deluxemapping\Use per-pixel lighting effects (default: enabled)
+\r_shadow_gloss\Enable the use of glossmaps on textures supporting it (default: enabled)
+\gl_flashblend\Enable faster but uglier dynamic lights by rendering bright coronas instead of real dynamic lights (default: disabled)
+\r_shadow_realtime_dlight\Enable rendering of dynamic lights such as explosions and rocket lights (default: enabled)
+\r_shadow_realtime_dlight_shadows\Enable rendering of shadows from dynamic lights (default: disabled)
+\r_shadow_realtime_world\Enable rendering of full realtime world lighting on maps that support it. Note that this might have a big impact on performance. (default: disabled)
+\r_shadow_realtime_world_shadows\Enable rendering of shadows from realtime world lights (default: disabled)
+\r_shadow_usenormalmap\Enable use of directional shading on textures (default: enabled)
+\r_showsurfaces\Disable textures completely for very slow hardware. This gives a huge performance boost, but looks very ugly. (default: disabled)
+\r_glsl_offsetmapping\Offset mapping effect that will make textures with bumpmaps appear like they "pop out" of the flat 2D surface (default: disabled)
+\r_glsl_offsetmapping_reliefmapping\Higher quality offset mapping, which also has a huge impact on performance (default: disabled)
+\r_water\Reflection and refraction quality, has a huge impact on performance on maps with reflecting surfaces (default: disabled)
+\r_water_resolutionmultiplier\Resolution of reflections/refractions (default: good)
+\r_coronas\Enable corona flares around certain lights (default: enabled)
+\r_coronas_occlusionquery\Fade coronas according to visibility (default: enabled)
+\r_bloom\Enable bloom effect, which brightens the neighboring pixels of very bright pixels. Has a big impact on performance. (default: disabled)
+\r_hdr\Higher quality version of bloom, which has a huge impact on performance. (default: disabled)
 
 \NexuizSettingsDialog/Audio\Audio settings
 \bgmvolume\-
@@ -168,10 +168,10 @@
 \snd_swapstereo\Swap left/right channels
 \snd_spatialization_control\Enable spatialization (blend the right and left channel slightly to decrease stereo separation a bit for headphones)
 \cl_voice_directional\Enable directional voices
-\cl_voice_directional_taunt_attenuation\Define the distance from which taunts can be heared
-\cl_autotaunt\Automatically taunt enemies when fragging them
+\cl_voice_directional_taunt_attenuation\Distance from which taunts can be heard
+\cl_autotaunt\Automatically taunt enemies after fragging them
 \cl_sound_maptime_warning\Announcer sound telling you the remaining minutes of the match
-\cl_hitsound\Play a hit notifier sound when you have hit an enemy
+\cl_hitsound\Play a hit indicator sound when your shot hits an enemy
 
 \NexuizSettingsDialog/Network\Network settings
 \cl_movement\Enable clientside movement prediction

Modified: branches/nexuiz-2.0/data/turrets.cfg
===================================================================
--- branches/nexuiz-2.0/data/turrets.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/turrets.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -6,13 +6,16 @@
 // Dont let turrets look for new targets more frequently then this
 set g_turrets_targetscan_mindelay 0.1
 
+// Do a targetscan at least this often regarless.
+set g_turrets_targetscan_maxdelay 1
+
 // Turrets with no target returns to their idle aim after this much time.
 set g_turrets_aimidle_delay 5
 
 // --- Units ---
 
-// Machinegun on a stick. 
-exec unit_machinegun.cfg 
+// Machinegun on a stick.
+exec unit_machinegun.cfg
 
 // Hunter killer rocket turret. "smart rockets"
 exec unit_hk.cfg
@@ -27,7 +30,7 @@
 exec unit_flac.cfg
 
 // Support unit. Recharges friendly energy based turrets in range
-exec unit_fusreac.cfg	
+exec unit_fusreac.cfg
 
 // "Electro" turret.
 exec unit_plasma.cfg
@@ -41,14 +44,15 @@
 // Fires a constant beam that slows down and slowly damages its target.
 exec unit_phaser.cfg
 
-// The bastred son of a turret and a quake monster. 
+// The bastred son of a turret and a quake monster.
 // A walking minigun with longrage missiles and closerange meele attack.
 exec unit_walker.cfg
 
 // OMG! Its the Evil Wheel! :O
 exec unit_ewheel.cfg
-// not exec'd: gauss
 
+//
+exec unit_repulsor.cfg
 
 set g_turrets_reloadcvars 0 // reload when this cfg has been exec'd
 alias g_turrets_reload "set g_turrets_reloadcvars 1"

Modified: branches/nexuiz-2.0/data/unit_ewheel.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_ewheel.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_ewheel.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_ewheel_std_health 200	
+set g_turrets_unit_ewheel_std_health 200
 set g_turrets_unit_ewheel_std_respawntime 30
 
 // dgr / sec
@@ -20,7 +20,6 @@
 set g_turrets_unit_ewheel_std_shot_volly_refire 1
 
 set g_turrets_unit_ewheel_std_target_range 5000
-set g_turrets_unit_ewheel_std_target_range_fire 3500
 set g_turrets_unit_ewheel_std_target_range_optimal 900
 set g_turrets_unit_ewheel_std_target_range_min 0.1
 
@@ -39,4 +38,4 @@
 set g_turrets_unit_ewheel_std_aim_maxrot 20
 set g_turrets_unit_ewheel_std_aim_maxpitch 45
 
-set g_turrets_unit_ewheel_std_track_type 1
\ No newline at end of file
+set g_turrets_unit_ewheel_std_track_type 1

Modified: branches/nexuiz-2.0/data/unit_flac.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_flac.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_flac.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,22 +1,21 @@
-set g_turrets_unit_flac_std_health 700	
+set g_turrets_unit_flac_std_health 700
 set g_turrets_unit_flac_std_respawntime 90
 
-set g_turrets_unit_flac_std_shot_dmg 25
-set g_turrets_unit_flac_std_shot_refire 0.2
-set g_turrets_unit_flac_std_shot_radius 150
-set g_turrets_unit_flac_std_shot_speed 2500
-set g_turrets_unit_flac_std_shot_spread 0.015
-set g_turrets_unit_flac_std_shot_force 15
+set g_turrets_unit_flac_std_shot_dmg 20
+set g_turrets_unit_flac_std_shot_refire 0.1
+set g_turrets_unit_flac_std_shot_radius 100
+set g_turrets_unit_flac_std_shot_speed 2000
+set g_turrets_unit_flac_std_shot_spread 0.02
+set g_turrets_unit_flac_std_shot_force 25
 set g_turrets_unit_flac_std_shot_volly 0
 set g_turrets_unit_flac_std_shot_volly_refire 0
 
 set g_turrets_unit_flac_std_target_range 4000
 set g_turrets_unit_flac_std_target_range_min 500
-set g_turrets_unit_flac_std_target_range_fire 3900
 set g_turrets_unit_flac_std_target_range_optimal 1250
 
 set g_turrets_unit_flac_std_target_select_rangebias 0.25
-set g_turrets_unit_flac_std_target_select_samebias 0.25
+set g_turrets_unit_flac_std_target_select_samebias 1
 set g_turrets_unit_flac_std_target_select_anglebias 0.5
 set g_turrets_unit_flac_std_target_select_playerbias 0
 set g_turrets_unit_flac_std_target_select_missilebias 1

Modified: branches/nexuiz-2.0/data/unit_fusreac.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_fusreac.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_fusreac.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -7,7 +7,6 @@
 
 set g_turrets_unit_fusreac_std_target_range 1024
 set g_turrets_unit_fusreac_std_target_range_min 1
-set g_turrets_unit_fusreac_std_target_range_fire 1024
 
 set g_turrets_unit_fusreac_std_ammo_max 300
 set g_turrets_unit_fusreac_std_ammo 0

Modified: branches/nexuiz-2.0/data/unit_hellion.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_hellion.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_hellion.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_hellion_std_health 500	
+set g_turrets_unit_hellion_std_health 500
 set g_turrets_unit_hellion_std_respawntime 90
 
 set g_turrets_unit_hellion_std_shot_dmg 50
@@ -16,7 +16,6 @@
 
 set g_turrets_unit_hellion_std_target_range 6000
 set g_turrets_unit_hellion_std_target_range_min 150
-set g_turrets_unit_hellion_std_target_range_fire 5000
 set g_turrets_unit_hellion_std_target_range_optimal 4500
 
 set g_turrets_unit_hellion_std_target_select_rangebias 0.7

Modified: branches/nexuiz-2.0/data/unit_hk.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_hk.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_hk.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_hk_std_health 500	
+set g_turrets_unit_hk_std_health 500
 set g_turrets_unit_hk_std_respawntime 90
 
 set g_turrets_unit_hk_std_shot_dmg 120
@@ -19,7 +19,6 @@
 
 set g_turrets_unit_hk_std_target_range 6000
 set g_turrets_unit_hk_std_target_range_min 220
-set g_turrets_unit_hk_std_target_range_fire 5000
 set g_turrets_unit_hk_std_target_range_optimal 5000
 
 set g_turrets_unit_hk_std_target_select_rangebias 0.5
@@ -35,7 +34,7 @@
 set g_turrets_unit_hk_std_aim_firetolerance_dist 500
 set g_turrets_unit_hk_std_aim_speed 100
 set g_turrets_unit_hk_std_aim_maxrot 360
-set g_turrets_unit_hk_std_aim_maxpitch 20	
+set g_turrets_unit_hk_std_aim_maxpitch 20
 
 set g_turrets_unit_hk_std_track_type 3
 set g_turrets_unit_hk_std_track_accel_pitch 0.25

Modified: branches/nexuiz-2.0/data/unit_machinegun.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_machinegun.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_machinegun.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_machinegun_std_health 256	
+set g_turrets_unit_machinegun_std_health 256
 set g_turrets_unit_machinegun_std_respawntime 60
 
 set g_turrets_unit_machinegun_std_shot_dmg 10
@@ -12,7 +12,6 @@
 
 set g_turrets_unit_machinegun_std_target_range 4500
 set g_turrets_unit_machinegun_std_target_range_min 2
-set g_turrets_unit_machinegun_std_target_range_fire 3000
 set g_turrets_unit_machinegun_std_target_range_optimal 1000
 
 set g_turrets_unit_machinegun_std_target_select_rangebias 0.25

Modified: branches/nexuiz-2.0/data/unit_mlrs.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_mlrs.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_mlrs.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_mlrs_std_health 500	
+set g_turrets_unit_mlrs_std_health 500
 set g_turrets_unit_mlrs_std_respawntime 60
 
 set g_turrets_unit_mlrs_std_shot_dmg 70
@@ -13,7 +13,6 @@
 
 set g_turrets_unit_mlrs_std_target_range 3000
 set g_turrets_unit_mlrs_std_target_range_min 500
-set g_turrets_unit_mlrs_std_target_range_fire 2000
 set g_turrets_unit_mlrs_std_target_range_optimal 500
 
 set g_turrets_unit_mlrs_std_target_select_rangebias 0.25
@@ -34,4 +33,4 @@
 set g_turrets_unit_mlrs_std_track_type 3
 set g_turrets_unit_mlrs_std_track_accel_pitch 0.25
 set g_turrets_unit_mlrs_std_track_accel_rot 0.8
-set g_turrets_unit_mlrs_std_track_blendrate 0.3
\ No newline at end of file
+set g_turrets_unit_mlrs_std_track_blendrate 0.3

Modified: branches/nexuiz-2.0/data/unit_phaser.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_phaser.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_phaser.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -13,7 +13,6 @@
 
 set g_turrets_unit_phaser_std_target_range 3000
 set g_turrets_unit_phaser_std_target_range_min 0
-set g_turrets_unit_phaser_std_target_range_fire 3000
 set g_turrets_unit_phaser_std_target_range_optimal 1500
 
 set g_turrets_unit_phaser_std_target_select_rangebias 0.85

Modified: branches/nexuiz-2.0/data/unit_plasma.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_plasma.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_plasma.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_plasma_std_health 500	
+set g_turrets_unit_plasma_std_health 500
 set g_turrets_unit_plasma_std_respawntime 60
 
 // Do this mutch damage
@@ -22,8 +22,6 @@
 set g_turrets_unit_plasma_std_target_range 3500
 // But no close then this
 set g_turrets_unit_plasma_std_target_range_min 200
-// If this or closer, fire
-set g_turrets_unit_plasma_std_target_range_fire 3000
 // If we have a choise, prefer the ones closer to this distance
 set g_turrets_unit_plasma_std_target_range_optimal 500
 
@@ -50,12 +48,12 @@
 // Aim how fast. for track_type 1 this is dgr/sec, for 2 & 3 its the maximum angle speed added each second
 set g_turrets_unit_plasma_std_aim_speed 200
 // Max rottation of head
-set g_turrets_unit_plasma_std_aim_maxrot 360	
+set g_turrets_unit_plasma_std_aim_maxrot 360
 // Max pitch  of head
 set g_turrets_unit_plasma_std_aim_maxpitch 30
 
-// How the head turns. 
-//   1 = hard steps, good for aiming preformace, bad for visuals. 
+// How the head turns.
+//   1 = hard steps, good for aiming preformace, bad for visuals.
 //   2 = smooth w/o inertia
 //   3 = smmoth with simulated inertia
 set g_turrets_unit_plasma_std_track_type 3

Modified: branches/nexuiz-2.0/data/unit_plasma2.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_plasma2.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_plasma2.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_plasma_dual_health 500	
+set g_turrets_unit_plasma_dual_health 500
 set g_turrets_unit_plasma_dual_respawntime 60
 
 set g_turrets_unit_plasma_dual_shot_dmg 80
@@ -13,7 +13,6 @@
 
 set g_turrets_unit_plasma_dual_target_range 3000
 set g_turrets_unit_plasma_dual_target_range_min 80
-set g_turrets_unit_plasma_dual_target_range_fire 2500
 set g_turrets_unit_plasma_dual_target_range_optimal 1000
 
 set g_turrets_unit_plasma_dual_target_select_rangebias 0.2

Modified: branches/nexuiz-2.0/data/unit_tesla.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_tesla.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_tesla.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_tesla_std_health 1000	
+set g_turrets_unit_tesla_std_health 1000
 set g_turrets_unit_tesla_std_respawntime 120
 
 set g_turrets_unit_tesla_std_shot_dmg 100
@@ -10,7 +10,6 @@
 
 set g_turrets_unit_tesla_std_target_range_min 0
 set g_turrets_unit_tesla_std_target_range      1000
-set g_turrets_unit_tesla_std_target_range_fire 1000
 
 set g_turrets_unit_tesla_std_target_select_playerbias 1
 set g_turrets_unit_tesla_std_target_select_missilebias 1

Modified: branches/nexuiz-2.0/data/unit_walker.cfg
===================================================================
--- branches/nexuiz-2.0/data/unit_walker.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/unit_walker.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set g_turrets_unit_walker_std_health 500	
+set g_turrets_unit_walker_std_health 500
 set g_turrets_unit_walker_std_respawntime 60
 
 set g_turrets_unit_walker_speed_run  300
@@ -20,7 +20,6 @@
 set g_turrets_unit_walker_std_shot_volly_refire 1
 
 set g_turrets_unit_walker_std_target_range 5000
-set g_turrets_unit_walker_std_target_range_fire 2000
 set g_turrets_unit_walker_std_target_range_optimal 100
 set g_turrets_unit_walker_std_target_range_min 0
 
@@ -34,9 +33,9 @@
 set g_turrets_unit_walker_std_ammo          500
 set g_turrets_unit_walker_std_ammo_recharge 100
 
-set g_turrets_unit_walker_std_aim_firetolerance_dist  64
+set g_turrets_unit_walker_std_aim_firetolerance_dist  100
 set g_turrets_unit_walker_std_aim_speed               45
-set g_turrets_unit_walker_std_aim_maxrot              90	
+set g_turrets_unit_walker_std_aim_maxrot              90
 set g_turrets_unit_walker_std_aim_maxpitch            15
 
 // Head (minigun) is attached. must use tractype 1
@@ -52,7 +51,7 @@
 set g_turrets_unit_walker_std_rocket_tunrate    0.4
 set g_turrets_unit_walker_std_rocket_speed      900
 
-// Meele attack. Only happens when theres a target directly in front 
+// Meele attack. Only happens when theres a target directly in front
 set g_turrets_unit_walker_std_meele_range 150
 set g_turrets_unit_walker_std_meele_dmg   100
-set g_turrets_unit_walker_std_meele_force 600
\ No newline at end of file
+set g_turrets_unit_walker_std_meele_force 600

Copied: branches/nexuiz-2.0/data/vehicle_racer.cfg (from rev 7090, trunk/data/vehicle_racer.cfg)
===================================================================
--- branches/nexuiz-2.0/data/vehicle_racer.cfg	                        (rev 0)
+++ branches/nexuiz-2.0/data/vehicle_racer.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,15 @@
+set g_vehicle_racer_health             250
+set g_vehicle_racer_turnspeed          360
+set g_vehicle_racer_speed_stop         0.1	
+set g_vehicle_racer_speed_forward      2000
+set g_vehicle_racer_speed_strafe       1000
+set g_vehicle_racer_movement_inertia   0.15
+set g_vehicle_racer_power_air          0
+set g_vehicle_racer_power_solid        5000
+set g_vehicle_racer_drag               0.25
+set g_vehicle_racer_dragexp            0.75
+set g_vehicle_racer_downforce          0.05
+set g_vehicle_racer_springlength       200
+set g_vehicle_racer_inert              0.25
+set g_vehicle_racer_drag2              0.01
+set g_vehicle_racer_drag2exp           0.85

Copied: branches/nexuiz-2.0/data/vehicle_spiderbot.cfg (from rev 7090, trunk/data/vehicle_spiderbot.cfg)
===================================================================
--- branches/nexuiz-2.0/data/vehicle_spiderbot.cfg	                        (rev 0)
+++ branches/nexuiz-2.0/data/vehicle_spiderbot.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,45 @@
+set g_vehicle_spiderbot_health                   875
+set g_vehicle_spiderbot_health_regen       	 10
+set g_vehicle_spiderbot_health_regen_dmgpause    10
+
+set g_vehicle_spiderbot_shield          125
+set g_vehicle_spiderbot_shield_block    1
+set g_vehicle_spiderbot_shield_regen    25
+set g_vehicle_spiderbot_shield_regen_dmgpause 0.25
+
+set g_vehicle_spiderbot_turnspeed       90
+set g_vehicle_spiderbot_head_turnspeed  120
+set g_vehicle_spiderbot_head_turnlimit  120
+set g_vehicle_spiderbot_head_pitchspeed 60
+set g_vehicle_spiderbot_head_pitchlimit_up   8
+set g_vehicle_spiderbot_head_pitchlimit_down -24
+
+set g_vehicle_spiderbot_speed_stop         50
+set g_vehicle_spiderbot_speed_walk         400
+set g_vehicle_spiderbot_speed_strafe       300
+set g_vehicle_spiderbot_movement_inertia   0.25
+
+set g_vehicle_spiderbot_minigun_bulletconstant 200
+set g_vehicle_spiderbot_minigun_damage         20
+set g_vehicle_spiderbot_minigun_spread         0.015
+set g_vehicle_spiderbot_minigun_speed          50000
+set g_vehicle_spiderbot_minigun_refire         0.025
+set g_vehicle_spiderbot_minigun_heat           0.015
+set g_vehicle_spiderbot_minigun_cooldown       0.015
+
+set g_vehicle_spiderbot_rocket_damage     75
+set g_vehicle_spiderbot_rocket_edgedamage 15
+set g_vehicle_spiderbot_rocket_force      150
+set g_vehicle_spiderbot_rocket_radius     150
+set g_vehicle_spiderbot_rocket_reload     2.5
+set g_vehicle_spiderbot_rocket_refire     0.15
+set g_vehicle_spiderbot_rocket_speed      900
+set g_vehicle_spiderbot_rocket_turnrate   0.25
+set g_vehicle_spiderbot_rocket_noise      0.25
+
+set g_vehicle_spiderbot_crush_dmg         50
+set g_vehicle_spiderbot_crush_force       50
+
+
+set cl_vehicle_spiderbot_cross_alpha 0.4
+set cl_vehicle_spiderbot_cross_size 1

Modified: branches/nexuiz-2.0/data/weapons.cfg
===================================================================
--- branches/nexuiz-2.0/data/weapons.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/weapons.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -3,7 +3,7 @@
 //
 // And... don't forget to edit weaponsHavoc.cfg too.
 
-set cvar_check_weapons e85f111d2e89ae3a36fb432de7d2266a
+set cvar_check_weapons 4f7b4c1e2feeef4988b02a93ff35a2ca
 
 // NOTE: this only replaces weapons on the map
 // use g_start_weapon_* to also replace the on-startup weapons!
@@ -345,6 +345,7 @@
 set g_balance_seeker_tag_refire  0.7
 set g_balance_seeker_tag_health  5
 set g_balance_seeker_tag_damageforcescale  4
+set g_balance_seeker_tag_lifetime  15
 
 set g_balance_seeker_missile_delay 0.25
 //set g_balance_seeker_missile_activate_delay 0.1
@@ -397,6 +398,7 @@
 
 set g_balance_campingrifle_magazinecapacity 8
 set g_balance_campingrifle_reloadtime 2 // matches reload anim
+set g_balance_campingrifle_auto_reload_after_changing_weapons 1
 set g_balance_campingrifle_primary_damage 60
 set g_balance_campingrifle_primary_headshotaddeddamage 100
 set g_balance_campingrifle_primary_spread 0
@@ -421,6 +423,7 @@
 set g_balance_tuba_refire 0.25
 set g_balance_tuba_animtime 0.25
 set g_balance_tuba_attenuation 0.5
+set g_balance_tuba_volume 1
 set g_balance_tuba_damage 25
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200

Modified: branches/nexuiz-2.0/data/weaponsHavoc.cfg
===================================================================
--- branches/nexuiz-2.0/data/weaponsHavoc.cfg	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/data/weaponsHavoc.cfg	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,4 +1,4 @@
-set cvar_check_weapons e85f111d2e89ae3a36fb432de7d2266a
+set cvar_check_weapons 4f7b4c1e2feeef4988b02a93ff35a2ca
 
 // NOTE: this only replaces weapons on the map
 // use g_start_weapon_* to also replace the on-startup weapons!
@@ -340,6 +340,7 @@
 set g_balance_seeker_tag_refire  0.7
 set g_balance_seeker_tag_health  5
 set g_balance_seeker_tag_damageforcescale  4
+set g_balance_seeker_tag_lifetime  15
 
 set g_balance_seeker_missile_delay 0.25
 //set g_balance_seeker_missile_activate_delay 0.1
@@ -392,6 +393,7 @@
 
 set g_balance_campingrifle_magazinecapacity 5
 set g_balance_campingrifle_reloadtime 1.5
+set g_balance_campingrifle_auto_reload_after_changing_weapons 1
 set g_balance_campingrifle_primary_damage 50
 set g_balance_campingrifle_primary_headshotaddeddamage 100
 set g_balance_campingrifle_primary_spread 0
@@ -416,6 +418,7 @@
 set g_balance_tuba_refire 0.25
 set g_balance_tuba_animtime 0.25
 set g_balance_tuba_attenuation 0.5
+set g_balance_tuba_volume 1
 set g_balance_tuba_damage 10
 set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200

Copied: branches/nexuiz-2.0/misc/mediasource/hud (from rev 7090, trunk/misc/mediasource/hud)

Modified: branches/nexuiz-2.0/misc/tools/crc16.c
===================================================================
--- branches/nexuiz-2.0/misc/tools/crc16.c	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/misc/tools/crc16.c	2009-07-11 14:55:44 UTC (rev 7190)
@@ -71,7 +71,7 @@
 
 int main()
 {
-	unsigned char *buf;
+	unsigned char *buf = NULL;
 	size_t bufsize = 0;
 	size_t newbufsize;
 	size_t nread;

Copied: branches/nexuiz-2.0/misc/tools/midi2cfg-ng-simple.conf (from rev 7090, trunk/misc/tools/midi2cfg-ng-simple.conf)
===================================================================
--- branches/nexuiz-2.0/misc/tools/midi2cfg-ng-simple.conf	                        (rev 0)
+++ branches/nexuiz-2.0/misc/tools/midi2cfg-ng-simple.conf	2009-07-11 14:55:44 UTC (rev 7190)
@@ -0,0 +1,384 @@
+bot tuba
+	channels 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16
+	init
+		cmd barrier
+		cmd selectweapon 16
+		cmd wait 0.5
+		cmd console "g_balance_tuba_attenuation 0.1"
+		cmd console "g_balance_tuba_damage 0"
+	note on -18
+		time -0.05
+		buttons left backward crouch
+		time 0
+		buttons attack1 left backward crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -17
+		time -0.05
+		buttons backward crouch
+		time 0
+		buttons attack1 backward crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -16
+		time -0.05
+		buttons backward right crouch
+		time 0
+		buttons attack1 backward right crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -13
+		time -0.05
+		buttons forward right crouch
+		time 0
+		buttons attack1 forward right crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -12
+		time -0.05
+		buttons crouch
+		time 0
+		buttons attack1 crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -11
+		time -0.05
+		buttons left backward crouch
+		time 0
+		buttons attack2 left backward crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -10
+		time -0.05
+		buttons right crouch
+		time 0
+		buttons attack1 right crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -9
+		time -0.05
+		buttons forward left crouch
+		time 0
+		buttons attack1 forward left crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -8
+		time -0.05
+		buttons forward crouch
+		time 0
+		buttons attack1 forward crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -7
+		time -0.05
+		buttons left crouch
+		time 0
+		buttons attack1 left crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -6
+		time -0.05
+		buttons left backward
+		time 0
+		buttons attack1 left backward
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -5
+		time -0.05
+		buttons backward
+		time 0
+		buttons attack1 backward
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -4
+		time -0.05
+		buttons backward right
+		time 0
+		buttons attack1 backward right
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -3
+		time -0.05
+		buttons right crouch
+		time 0
+		buttons attack2 right crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -2
+		time -0.05
+		buttons forward left crouch
+		time 0
+		buttons attack2 forward left crouch
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on -1
+		time -0.05
+		buttons forward right
+		time 0
+		buttons attack1 forward right
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 0
+		time -0.05
+		buttons
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 1
+		time -0.05
+		buttons left backward
+		time 0
+		buttons attack2 left backward
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 2
+		time -0.05
+		buttons right
+		time 0
+		buttons attack1 right
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 3
+		time -0.05
+		buttons forward left
+		time 0
+		buttons attack1 forward left
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 4
+		time -0.05
+		buttons forward
+		time 0
+		buttons attack1 forward
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 5
+		time -0.05
+		buttons left
+		time 0
+		buttons attack1 left
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 6
+		time -0.05
+		buttons forward right
+		time 0
+		buttons attack2 forward right
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 7
+		time -0.05
+		buttons
+		time 0
+		buttons attack2
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 8
+		time -0.05
+		buttons backward right jump
+		time 0
+		buttons attack1 backward right jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 9
+		time -0.05
+		buttons right
+		time 0
+		buttons attack2 right
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 10
+		time -0.05
+		buttons forward left
+		time 0
+		buttons attack2 forward left
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 11
+		time -0.05
+		buttons forward
+		time 0
+		buttons attack2 forward
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 12
+		time -0.05
+		buttons left
+		time 0
+		buttons attack2 left
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 13
+		time -0.05
+		buttons left backward jump
+		time 0
+		buttons attack2 left backward jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 14
+		time -0.05
+		buttons right jump
+		time 0
+		buttons attack1 right jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 15
+		time -0.05
+		buttons forward left jump
+		time 0
+		buttons attack1 forward left jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 16
+		time -0.05
+		buttons forward jump
+		time 0
+		buttons attack1 forward jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 17
+		time -0.05
+		buttons left jump
+		time 0
+		buttons attack1 left jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 18
+		time -0.05
+		buttons forward right jump
+		time 0
+		buttons attack2 forward right jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 19
+		time -0.05
+		buttons jump
+		time 0
+		buttons attack2 jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 21
+		time -0.05
+		buttons right jump
+		time 0
+		buttons attack2 right jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 22
+		time -0.05
+		buttons forward left jump
+		time 0
+		buttons attack2 forward left jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 23
+		time -0.05
+		buttons forward jump
+		time 0
+		buttons attack2 forward jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+	note on 24
+		time -0.05
+		buttons left jump
+		time 0
+		buttons attack2 left jump
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.25
+
+bot tuba_red
+	include tuba
+	count 256
+	transpose 0
+	init
+		cmd cc "color 68"
+		super 
+
+bot tuba_blue
+	include tuba
+	count 256
+	transpose 3
+	init
+		cmd cc "color 221"
+		super 

Modified: branches/nexuiz-2.0/misc/tools/midi2cfg-ng.conf
===================================================================
--- branches/nexuiz-2.0/misc/tools/midi2cfg-ng.conf	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/misc/tools/midi2cfg-ng.conf	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,9 +1,15 @@
+raw set places_tuba "tUba1 tUba2 tUba3 tUba4 tUba5 tUba6 tUba7 tUba8 tUba9 tUba10 tUba11 tUba12 tUba13 tUba14 tUba15 tUba16 tUba17 tUba18 tUba19 tUba20 tUba21 tUba22 tUba23 tUba24"
+raw set places_percussion "tChr1 tChr2 tChr3 tChr4 tChr5 tChr6 tChr7 tChr8 tChr9 tChr10 tChr11 tChr12 tChr13 tChr14 tChr15 tChr16 tChr17 tChr18 tChr19"
+raw set places_end "end1 end2 end3 end4 end5 end6 end7 end8 end9 end10 end11 end12 end13 end14 end15 end16 end17 end18 end19 end20 end21 end22 end23 end24 end25 end26 end27 end28 end29 end30 end31 end32 end33 end34 end35 end36 end37 end38 end39 end40 end41 end42 end43 end44 end45 end46 end47 end48 end49 end50 end51 end52 end53 end54 end55 end56 end57"
+
 bot tuba
-	count 0
+	channels 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16
 	init
-		time -2
+		cmd barrier
 		cmd selectweapon 16
-		time 0
+		cmd wait 0.5
+		cmd console "g_balance_tuba_attenuation 0.1"
+		cmd console "g_balance_tuba_damage 0"
 	note on -18
 		time -0.05
 		buttons left backward crouch
@@ -141,9 +147,9 @@
 		busy 0.25
 	note on -1
 		time -0.05
-		buttons forward left
+		buttons forward right
 		time 0
-		buttons attack1 forward left
+		buttons attack1 forward right
 		time 0.05
 		buttons
 		time 0.1
@@ -369,7 +375,6 @@
 	include tuba
 	transpose 0
 	init
-		time -4
 		cmd cc "color 68"
 		super 
 
@@ -377,14 +382,448 @@
 	include tuba
 	transpose 3
 	init
-		time -4
 		cmd cc "color 221"
 		super 
 
-bot red
+bot rocket
+	channels 10
+	init
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 9
+		cmd wait 0.5
+	percussion 25
+		time 0
+		buttons attack2
+		time 0.05
+		buttons
+		time 0.1
+		busy 1.0
+
+bot uzi
+	channels 10
+	init
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 3
+		cmd wait 0.5
+	percussion 27
+		time 0
+		buttons attack2
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.2
+	percussion 33
+		percussion 27
+	percussion 54
+		percussion 27
+
+bot crylink
+	channels 10
+	init
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 6
+		cmd wait 0.5
+	percussion 31
+		time 0
+		buttons attack2
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.5
+	percussion 34
+		percussion 31
+	percussion 42
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.4
+	percussion 44
+		percussion 42
+	percussion 46
+		percussion 42
+
+bot jetpack
+	init
+		cmd resetaim
+		cmd barrier
+		cmd console "g_jetpack_attenuation 0.5"
+	percussion 42
+		time 0
+		buttons hook
+		time 0.05
+		buttons
+		time 0.1
+	percussion 44
+		percussion 42
+	percussion 46
+		percussion 42
+	percussion 37
+		percussion 42
+	percussion 51
+		percussion 42
+	percussion 59
+		percussion 42
+
+bot jump
+	init
+		cmd resetaim
+		cmd barrier
+	percussion 42
+		time -0.5
+		buttons jump
+		time -0.45
+		buttons
+		time 0
+	percussion 44
+		percussion 42
+	percussion 46
+		percussion 42
+
+bot hagar
+	channels 10
+	init
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 8
+		cmd wait 0.5
+	percussion 35
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.15
+	percussion 38
+		percussion 35
+	percussion 40
+		percussion 35
+	percussion 60
+		percussion 35
+	percussion 65
+		percussion 35
+
+bot tag
+	channels 10
+	init
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 14
+		cmd wait 0.5
+		cmd console "g_balance_seeker_tag_lifetime 0.1"
+	percussion 36
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.7
+	percussion 61
+		percussion 36
+	percussion 66
+		percussion 36
+
+bot laser
+	channels 10
+	init
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 1
+		cmd wait 0.5
+	percussion 39
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.7
+
+bot electro
+	channels 10
+	init
+		time -2
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 5
+		cmd wait 0.5
+	percussion 49
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0.6
+
+bot hook
+	channels 10
+	init
+		time -2
+		cmd aimtarget "tPercussion 1"
+		cmd barrier
+		cmd selectweapon 12
+		cmd wait 0.5
+	percussion 58
+		time 0
+		buttons attack1
+		time 0.05
+		buttons
+		time 0.1
+		busy 0
+
+# instantiate our bots!
+
+bot instance_tuba_red
 	include tuba_red
-	count 256
+	count 16
+	init
+		cmd movetotarget @places_tuba
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
 
-bot blue
+bot instance_tuba_blue
 	include tuba_blue
-	count 256
+	count 16
+	init
+		cmd movetotarget @places_tuba
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_rocket
+	include rocket
+	count 1
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_uzi
+	include uzi
+	count 2
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_crylink
+	include crylink
+	count 0
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_jetpack
+	include jetpack
+	count 2
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_jump
+	include jump
+	count 0
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_hagar
+	include hagar
+	count 6
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_tag
+	include tag
+	count 5
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_laser
+	include laser
+	count 4
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_electro
+	include electro
+	count 2
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start
+
+bot instance_hook
+	include hook
+	count 2
+	init
+		cmd movetotarget @places_percussion
+		cmd barrier
+		super
+	done
+		cmd movetotarget @places_end
+		cmd resetaim
+		cmd aim "90 0"
+		cmd wait 1
+		barrier
+		buttons crouch
+		cmd wait 3
+		buttons
+		cmd wait 1
+		barrier
+		cmd console settemp bot_navigation_ignoreplayers 1
+		cmd movetotarget start

Modified: branches/nexuiz-2.0/misc/tools/midi2cfg-ng.pl
===================================================================
--- branches/nexuiz-2.0/misc/tools/midi2cfg-ng.pl	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/misc/tools/midi2cfg-ng.pl	2009-07-11 14:55:44 UTC (rev 7190)
@@ -1,8 +1,6 @@
 #!/usr/bin/perl
 
 # converter from Type 1 MIDI files to CFG files that control bots with the Tuba and other weapons for percussion (requires g_weaponarena all)
-# usage:
-#   perl midi2cfg.pl filename.mid basenote walktime "x y z" "x y z" "x y z" ... "/" "x y z" "x y z" ... > filename.cfg
 
 use strict;
 use warnings;
@@ -13,75 +11,24 @@
 use constant MIDI_FIRST_NONCHANNEL => 17;
 use constant MIDI_DRUMS_CHANNEL => 10;
 
-my ($filename, $transpose, $timeoffset, $timeoffset2, @preallocate) = @ARGV;
+die "Usage: $0 filename.conf timeoffset_preinit timeoffset_postinit timeoffset_predone timeoffset_postdone timeoffset_preintermission timeoffset_postintermission midifile1 transpose1 midifile2 transpose2 ..."
+	unless @ARGV > 7 and @ARGV % 2;
+my ($config, $timeoffset_preinit, $timeoffset_postinit, $timeoffset_predone, $timeoffset_postdone, $timeoffset_preintermission, $timeoffset_postintermission, @midilist) = @ARGV;
 
-my $opus = MIDI::Opus->new({from_file => $filename});
-#$opus->write_to_file("/tmp/y.mid");
-my $ticksperquarter = $opus->ticks();
-my $tracks = $opus->tracks_r();
-my @tempi = (); # list of start tick, time per tick pairs (calculated as seconds per quarter / ticks per quarter)
-my $tick;
-
-$tick = 0;
-for($tracks->[0]->events())
-{   
-    $tick += $_->[1];
-    if($_->[0] eq 'set_tempo')
-    {   
-        push @tempi, [$tick, $_->[2] * 0.000001 / $ticksperquarter];
-    }
-}
-sub tick2sec($)
-{
-    my ($tick) = @_;
-    my $sec = 0;
-    my $curtempo = [0, 0.5 / $ticksperquarter];
-    for(@tempi)
-    {
-        if($_->[0] < $tick)
-        {
-			# this event is in the past
-			# we add the full time since the last one then
-			$sec += ($_->[0] - $curtempo->[0]) * $curtempo->[1];
-        }   
-        else
-        {
-			# if this event is in the future, we break
-			last;
-        }
-		$curtempo = $_;
-    }
-	$sec += ($tick - $curtempo->[0]) * $curtempo->[1];
-	return $sec;
-}
-
-# merge all to a single track
-my @allmidievents = ();
-my $sequence = 0;
-for my $track(0..@$tracks-1)
-{
-	$tick = 0;
-	for($tracks->[$track]->events())
-	{
-		my ($command, $delta, @data) = @$_;
-		$tick += $delta;
-		push @allmidievents, [$command, $tick, $sequence++, $track, @data];
-	}
-}
- at allmidievents = sort { $a->[1] <=> $b->[1] or $a->[2] <=> $b->[2] } @allmidievents;
-
-
 sub unsort(@)
 {
 	return map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, rand] } @_;
 }
 
-
-
-
-
-my $inittime = undef;
+my $precommands = "";
+my $commands = "";
+my $busybots;
+my @busybots_allocated;
+my %notechannelbots;
+my $transpose = 0;
 my $notetime = undef;
+my $lowestnotestart = undef;
+my $noalloc = 0;
 sub botconfig_read($)
 {
 	my ($fn) = @_;
@@ -102,8 +49,13 @@
 			my @cmd = split /\s+/, $_;
 			if($cmd[0] eq 'super')
 			{
-				push @$appendref, @$super;
+				push @$appendref, @$super
+					if $super;
 			}
+			elsif($cmd[0] eq 'percussion') # simple import
+			{
+				push @$appendref, @{$currentbot->{percussion}->{$cmd[1]}};
+			}
 			else
 			{
 				push @$appendref, \@cmd;
@@ -144,6 +96,16 @@
 				$super = $currentbot->{init};
 				$currentbot->{init} = $appendref = [];
 			}
+			elsif(/^intermission$/)
+			{
+				$super = $currentbot->{intermission};
+				$currentbot->{intermission} = $appendref = [];
+			}
+			elsif(/^done$/)
+			{
+				$super = $currentbot->{done};
+				$currentbot->{done} = $appendref = [];
+			}
 			elsif(/^note on (-?\d+)/)
 			{
 				$super = $currentbot->{notes_on}->{$1};
@@ -166,35 +128,20 @@
 		}
 		elsif(/^bot (.*)/)
 		{
-			$currentbot = ($bots{$1} ||= {});
+			$currentbot = ($bots{$1} ||= {count => 0, transpose => 0});
 		}
+		elsif(/^raw (.*)/)
+		{
+			$precommands .= "$1\n";
+		}
 		else
 		{
 			print "unknown command: $_\n";
 		}
 	}
 
-	my $lowesttime = undef;
-	my $highesttime = undef;
-	my $highestbusytime = undef;
-	my $lowestnotestart = undef;
 	for(values %bots)
 	{
-		my $l = $_->{init};
-		next unless defined $l;
-		my $t = $l->[0]->[0] eq 'time' ? $l->[0]->[1] : 0;
-		$lowesttime = $t if not defined $lowesttime or $t < $lowesttime;
-		for(@$l)
-		{
-			if($_->[0] eq 'time')
-			{
-				$highesttime = $_->[1] if not defined $highesttime or $_->[1] > $highesttime;
-			}
-			if($_->[0] eq 'busy')
-			{
-				$highestbusytime = $_->[1] if not defined $highestbusytime or $_->[1] > $highestbusytime;
-			}
-		}
 		for(values %{$_->{notes_on}}, values %{$_->{percussion}})
 		{
 			my $t = $_->[0]->[0] eq 'time' ? $_->[0]->[1] : 0;
@@ -202,26 +149,11 @@
 		}
 	}
 
-	my $initdelta = $highesttime - $lowesttime - $lowestnotestart;
-	if(defined $highestbusytime)
-	{
-		my $initdelta2 = $highestbusytime - $lowesttime;
-		$initdelta = $initdelta2
-			if $initdelta2 > $initdelta;
-	}
-
-	# init shall take place at $timeoffset
-	# note playing shall take place at $timeoffset + $initdelta + $timeoffset2
-
-	$inittime = $timeoffset - $lowesttime;
-	$notetime = $timeoffset + $initdelta + $timeoffset2;
-
-	print STDERR "Initialization offset: $inittime (start: @{[$inittime + $lowesttime]}, end: @{[$inittime + $highesttime]})\n";
-	print STDERR "Note offset: $notetime (start: @{[$notetime + $lowestnotestart]})\n";
-
 	return \%bots;
 }
+my $busybots_orig = botconfig_read $config;
 
+
 sub busybot_cmd_bot_test($$@)
 {
 	my ($bot, $time, @commands) = @_;
@@ -248,7 +180,7 @@
 	{
 		if($_->[0] eq 'time')
 		{
-			printf "w %d %f\n", $bot->{id}, $time + $_->[1];
+			$commands .= sprintf "sv_cmd bot_cmd %d wait_until %f\n", $bot->{id}, $time + $_->[1];
 			$bot->{timer} = $time + $_->[1];
 		}
 		elsif($_->[0] eq 'busy')
@@ -265,29 +197,55 @@
 			}
 			for(keys %buttons_release)
 			{
-				printf "r %d %s\n", $bot->{id}, $_;
+				$commands .= sprintf "sv_cmd bot_cmd %d releasekey %s\n", $bot->{id}, $_;
 				delete $bot->{buttons}->{$_};
 			}
 			for(@{$_}[1..@$_-1])
 			{
 				/(.*)(\?)?/ or next;
 				defined $2 and next;
-				printf "p %d %s\n", $bot->{id}, $_;
+				$commands .= sprintf "sv_cmd bot_cmd %d presskey %s\n", $bot->{id}, $_;
 				$bot->{buttons}->{$_} = 1;
 			}
 		}
 		elsif($_->[0] eq 'cmd')
 		{
-			printf "sv_cmd bot_cmd %d %s\n", $bot->{id}, join " ", @{$_}[1..@$_-1];
+			$commands .= sprintf "sv_cmd bot_cmd %d %s\n", $bot->{id}, join " ", @{$_}[1..@$_-1];
 		}
+		elsif($_->[0] eq 'barrier')
+		{
+			$commands .= sprintf "sv_cmd bot_cmd %d barrier\n", $bot->{id};
+			$bot->{timer} = $bot->{busytimer} = 0;
+		}
+		elsif($_->[0] eq 'raw')
+		{
+			$commands .= sprintf "%s\n", join " ", @{$_}[1..@$_-1];
+		}
 	}
 
 	return 1;
 }
 
+my $intermissions = 0;
+
+sub busybot_intermission_bot($)
+{
+	my ($bot) = @_;
+	busybot_cmd_bot_execute $bot, 0, ['cmd', 'wait', $timeoffset_preintermission];
+	busybot_cmd_bot_execute $bot, 0, ['barrier'];
+	if($bot->{intermission})
+	{
+		busybot_cmd_bot_execute $bot, 0, @{$bot->{intermission}};
+	}
+	busybot_cmd_bot_execute $bot, 0, ['barrier'];
+	$notetime = $timeoffset_postintermission - $lowestnotestart;
+}
+
 sub busybot_note_off_bot($$$$)
 {
 	my ($bot, $time, $channel, $note) = @_;
+	return 1
+		if $channel == 10;
 	my $cmds = $bot->{notes_off}->{$note - $bot->{transpose} - $transpose};
 	return 1
 		if not defined $cmds; # note off cannot fail
@@ -300,28 +258,38 @@
 {
 	my ($bot, $time, $channel, $note, $init) = @_;
 	return -1 # I won't play on this channel
-		if defined $bot->{channels} and not grep { $_ == $channel } $bot->{channels};
+		if defined $bot->{channels} and not $bot->{channels}->{$channel};
 	return 0
 		if $bot->{busy};
-	my $cmds = $bot->{notes_on}->{$note - $bot->{transpose} - $transpose};
-	my $cmds_off = $bot->{notes_off}->{$note - $bot->{transpose} - $transpose};
-	if(defined $cmds_off)
+	my $cmds;
+	if($channel == 10)
 	{
-		$bot->{busy} = 1;
+		$cmds = $bot->{percussion}->{$note};
 	}
-	if(not defined $cmds)
+	else
 	{
-		$cmds = $bot->{percussion}->{$note};
-		return -1 # I won't play this note
-			if not defined $cmds;
+		$cmds = $bot->{notes_on}->{$note - $bot->{transpose} - $transpose};
+		my $cmds_off = $bot->{notes_off}->{$note - $bot->{transpose} - $transpose};
+		if(defined $cmds and defined $cmds_off)
+		{
+			$bot->{busy} = 1;
+		}
 	}
-	if($init && $bot->{init})
+	return -1 # I won't play this note
+		if not defined $cmds;
+	if($init)
 	{
 		return 0
-			if not busybot_cmd_bot_test $bot, $inittime, @{$bot->{init}};
-		return 0
 			if not busybot_cmd_bot_test $bot, $time + $notetime, @$cmds; 
-		busybot_cmd_bot_execute $bot, $inittime, @{$bot->{init}};
+		busybot_cmd_bot_execute $bot, 0, ['cmd', 'wait', $timeoffset_preinit];
+		busybot_cmd_bot_execute $bot, 0, ['barrier'];
+		busybot_cmd_bot_execute $bot, 0, @{$bot->{init}}
+			if @{$bot->{init}};
+		busybot_cmd_bot_execute $bot, 0, ['barrier'];
+		for(1..$intermissions)
+		{
+			busybot_intermission_bot $bot;
+		}
 		busybot_cmd_bot_execute $bot, $time + $notetime, @$cmds; 
 	}
 	else
@@ -333,14 +301,22 @@
 	return 1;
 }
 
-my $busybots = botconfig_read "midi2cfg-ng.conf";
-my @busybots_allocated;
-my %notechannelbots;
+sub busybots_reset()
+{
+	$busybots = Storable::dclone $busybots_orig;
+	@busybots_allocated = ();
+	%notechannelbots = ();
+	$transpose = 0;
+	$notetime = $timeoffset_postinit - $lowestnotestart;
+}
 
 sub busybot_note_off($$$)
 {
 	my ($time, $channel, $note) = @_;
 
+	return 0
+		if $channel == 10;
+
 	if(my $bot = $notechannelbots{$channel}{$note})
 	{
 		busybot_note_off_bot $bot, $time, $channel, $note;
@@ -384,6 +360,8 @@
 		my $canplay = busybot_note_on_bot $bot, $time, $channel, $note, 1;
 		if($canplay > 0)
 		{
+			die "noalloc\n"
+				if $noalloc;
 			--$busybots->{$_}->{count};
 			$notechannelbots{$channel}{$note} = $bot;
 			push @busybots_allocated, $bot;
@@ -395,77 +373,202 @@
 
 	if($overflow)
 	{
-		warn "Not enough bots to play this";
-		use Data::Dumper;
-		print STDERR Dumper \@busybots_allocated;
+		warn "Not enough bots to play this (when playing $channel:$note)";
 	}
 	else
 	{
-		warn "Note $channel:$note cannot be played by any bot"
+		warn "Note $channel:$note cannot be played by any bot";
 	}
 
 	return 0;
 }
 
-print 'alias p "sv_cmd bot_cmd $1 presskey $2"' . "\n";
-print 'alias r "sv_cmd bot_cmd $1 releasekey $2"' . "\n";
-print 'alias w "sv_cmd bot_cmd $1 wait_until $2"' . "\n";
-print 'alias m "sv_cmd bot_cmd $1 moveto \"$2 $3 $4\""' . "\n";
-
-for(@preallocate)
+sub Preallocate(@)
 {
-	die "Cannot preallocate any more $_ bots"
-		if $busybots->{$_}->{count} <= 0;
-	my $bot = Storable::dclone $busybots->{$_};
-	$bot->{id} = @busybots_allocated + 1;
-	$bot->{classname} = $_;
-	busybot_cmd_bot_execute $bot, $inittime, @{$bot->{init}};
-	--$busybots->{$_}->{count};
-	push @busybots_allocated, $bot;
+	my (@preallocate) = @_;
+	busybots_reset();
+	for(@preallocate)
+	{
+		die "Cannot preallocate any more $_ bots"
+			if $busybots->{$_}->{count} <= 0;
+		my $bot = Storable::dclone $busybots->{$_};
+		$bot->{id} = @busybots_allocated + 1;
+		$bot->{classname} = $_;
+		busybot_cmd_bot_execute $bot, 0, ['cmd', 'wait', $timeoffset_preinit];
+		busybot_cmd_bot_execute $bot, 0, ['barrier'];
+		busybot_cmd_bot_execute $bot, 0, @{$bot->{init}}
+			if @{$bot->{init}};
+		busybot_cmd_bot_execute $bot, 0, ['barrier'];
+		--$busybots->{$_}->{count};
+		push @busybots_allocated, $bot;
+	}
 }
 
-my %midinotes = ();
-my $note_min = undef;
-my $note_max = undef;
-my $notes_stuck = 0;
-for(@allmidievents)
+sub ConvertMIDI($$)
 {
-	my $t = tick2sec $_->[1];
-	my $track = $_->[3];
-	if($_->[0] eq 'note_on')
+	my ($filename, $trans) = @_;
+	$transpose = $trans;
+
+	my $opus = MIDI::Opus->new({from_file => $filename});
+	my $ticksperquarter = $opus->ticks();
+	my $tracks = $opus->tracks_r();
+	my @tempi = (); # list of start tick, time per tick pairs (calculated as seconds per quarter / ticks per quarter)
+	my $tick;
+
+	$tick = 0;
+	for($tracks->[0]->events())
+	{   
+		$tick += $_->[1];
+		if($_->[0] eq 'set_tempo')
+		{   
+			push @tempi, [$tick, $_->[2] * 0.000001 / $ticksperquarter];
+		}
+	}
+	my $tick2sec = sub
 	{
-		my $chan = $_->[4] + 1;
-		$note_min = $_->[5]
-			if not defined $note_min or $_->[5] < $note_min;
-		$note_max = $_->[5]
-			if not defined $note_max or $_->[5] > $note_max;
-		if($midinotes{$chan}{$_->[5]})
+		my ($tick) = @_;
+		my $sec = 0;
+		my $curtempo = [0, 0.5 / $ticksperquarter];
+		for(@tempi)
 		{
-			--$notes_stuck;
-			busybot_note_off($t, $chan, $_->[5]);
+			if($_->[0] < $tick)
+			{
+				# this event is in the past
+				# we add the full time since the last one then
+				$sec += ($_->[0] - $curtempo->[0]) * $curtempo->[1];
+			}   
+			else
+			{
+				# if this event is in the future, we break
+				last;
+			}
+			$curtempo = $_;
 		}
-		busybot_note_on($t, $chan, $_->[5]);
-		++$notes_stuck;
-		$midinotes{$chan}{$_->[5]} = 1;
+		$sec += ($tick - $curtempo->[0]) * $curtempo->[1];
+		return $sec;
+	};
+
+	# merge all to a single track
+	my @allmidievents = ();
+	my $sequence = 0;
+	for my $track(0..@$tracks-1)
+	{
+		$tick = 0;
+		for($tracks->[$track]->events())
+		{
+			my ($command, $delta, @data) = @$_;
+			$command = 'note_off' if $command eq 'note_on' and $data[2] == 0;
+			$tick += $delta;
+			push @allmidievents, [$command, $tick, $sequence++, $track, @data];
+		}
 	}
-	elsif($_->[0] eq 'note_off')
+	@allmidievents = sort { $a->[1] <=> $b->[1] or $a->[2] <=> $b->[2] } @allmidievents;
+
+	my %midinotes = ();
+	my $note_min = undef;
+	my $note_max = undef;
+	my $notes_stuck = 0;
+	my $t = 0;
+	for(@allmidievents)
 	{
-		my $chan = $_->[4] + 1;
-		if($midinotes{$chan}{$_->[5]})
+		$t = $tick2sec->($_->[1]);
+		my $track = $_->[3];
+		if($_->[0] eq 'note_on')
 		{
-			--$notes_stuck;
-			busybot_note_off($t, $chan, $_->[5]);
+			my $chan = $_->[4] + 1;
+			$note_min = $_->[5]
+				if not defined $note_min or $_->[5] < $note_min and $chan != 10;
+			$note_max = $_->[5]
+				if not defined $note_max or $_->[5] > $note_max and $chan != 10;
+			if($midinotes{$chan}{$_->[5]})
+			{
+				--$notes_stuck;
+				busybot_note_off($t, $chan, $_->[5]);
+			}
+			busybot_note_on($t, $chan, $_->[5]);
+			++$notes_stuck;
+			$midinotes{$chan}{$_->[5]} = 1;
 		}
-		$midinotes{$chan}{$_->[5]} = 0;
+		elsif($_->[0] eq 'note_off')
+		{
+			my $chan = $_->[4] + 1;
+			if($midinotes{$chan}{$_->[5]})
+			{
+				--$notes_stuck;
+				busybot_note_off($t, $chan, $_->[5]);
+			}
+			$midinotes{$chan}{$_->[5]} = 0;
+		}
 	}
+
+	print STDERR "For file $filename:\n";
+	print STDERR "  Range of notes: $note_min .. $note_max\n";
+	print STDERR "  Safe transpose range: @{[$note_max - 19]} .. @{[$note_min + 13]}\n";
+	print STDERR "  Unsafe transpose range: @{[$note_max - 27]} .. @{[$note_min + 18]}\n";
+	print STDERR "  Stuck notes: $notes_stuck\n";
+
+	while(my ($k1, $v1) = each %midinotes)
+	{
+		while(my ($k2, $v2) = each %$v1)
+		{
+			busybot_note_off($t, $k1, $k2);
+		}
+	}
+
+	for(@busybots_allocated)
+	{
+		busybot_intermission_bot $_;
+	}
+	++$intermissions;
 }
 
-print STDERR "Range of notes: $note_min .. $note_max\n";
-print STDERR "Safe transpose range: @{[$note_max - 19]} .. @{[$note_min + 13]}\n";
-print STDERR "Unsafe transpose range: @{[$note_max - 27]} .. @{[$note_min + 18]}\n";
-print STDERR "Stuck notes: $notes_stuck\n";
-print STDERR "Bots allocated:\n";
-for(@busybots_allocated)
+sub Deallocate()
 {
-	print STDERR "$_->{id} is a $_->{classname}\n";
+	print STDERR "Bots allocated:\n";
+	for(@busybots_allocated)
+	{
+		print STDERR "$_->{id} is a $_->{classname}\n";
+	}
+	for(@busybots_allocated)
+	{
+		busybot_cmd_bot_execute $_, 0, ['cmd', 'wait', $timeoffset_predone];
+		busybot_cmd_bot_execute $_, 0, ['barrier'];
+		if($_->{done})
+		{
+			busybot_cmd_bot_execute $_, 0, @{$_->{done}};
+		}
+		busybot_cmd_bot_execute $_, 0, ['cmd', 'wait', $timeoffset_postdone];
+		busybot_cmd_bot_execute $_, 0, ['barrier'];
+	}
 }
+
+my @preallocate = ();
+$noalloc = 0;
+for(;;)
+{
+	$commands = "";
+	eval
+	{
+		Preallocate(@preallocate);
+		my @l = @midilist;
+		while(@l)
+		{
+			my $filename = shift @l;
+			my $transpose = shift @l;
+			ConvertMIDI($filename, $transpose);
+		}
+		Deallocate();
+		my @preallocate_new = map { $_->{classname} } @busybots_allocated;
+		if(@preallocate_new == @preallocate)
+		{
+			print "$precommands$commands";
+			exit 0;
+		}
+		@preallocate = @preallocate_new;
+		$noalloc = 1;
+		1;
+	} or do {
+		die "$@"
+			unless $@ eq "noalloc\n";
+	};
+}

Modified: branches/nexuiz-2.0/misc/tools/midichannels.pl
===================================================================
--- branches/nexuiz-2.0/misc/tools/midichannels.pl	2009-07-11 14:51:14 UTC (rev 7189)
+++ branches/nexuiz-2.0/misc/tools/midichannels.pl	2009-07-11 14:55:44 UTC (rev 7190)
@@ -46,9 +46,15 @@
 		{
 			my %taken = (0 => 1);
 			my @t = ($tracks->[0]);
+			my $force = 0;
 			for(@arg)
 			{
-				next if $taken{$_}++;
+				if($_ eq '--force')
+				{
+					$force = 1;
+					next;
+				}
+				next if $taken{$_}++ and not $force;
 				push @t, $tracks->[$_];
 			}
 			$opus->tracks_r(\@t);
@@ -65,6 +71,7 @@
 				my $t = 0;
 				for($tracks->[$_]->events())
 				{
+					$_->[0] = 'note_off' if $_->[0] eq 'note_on' and $_->[4] == 0;
 					$t += $_->[1];
 					my $p = $chanpos{$_->[0]};
 					if(defined $p)



More information about the nexuiz-commits mailing list