r4930 - in branches/nexuiz-2.0: . data data/maps data/models/player data/qcsrc/menu/nexuiz data/qcsrc/server data/qcsrc/server/tturrets/system data/sound/announcer/male data/sound/ctf data/sound/domination data/sound/kh data/sound/misc data/sound/player data/sound/player/torus data/sound/porto data/sound/weapons

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Oct 28 16:50:08 EDT 2008


Author: div0
Date: 2008-10-28 16:50:08 -0400 (Tue, 28 Oct 2008)
New Revision: 4930

Added:
   branches/nexuiz-2.0/data/models/player/carni.zym.sounds
   branches/nexuiz-2.0/data/models/player/headhunter.zym.sounds
   branches/nexuiz-2.0/data/models/player/insurrectionist.zym.sounds
   branches/nexuiz-2.0/data/models/player/lurk.zym.sounds
   branches/nexuiz-2.0/data/models/player/lycanthrope.zym.sounds
   branches/nexuiz-2.0/data/models/player/marine.zym.sounds
   branches/nexuiz-2.0/data/models/player/nexus.zym.sounds
   branches/nexuiz-2.0/data/models/player/pyria.zym.sounds
   branches/nexuiz-2.0/data/models/player/shock.zym.sounds
   branches/nexuiz-2.0/data/models/player/skadi.zym.sounds
   branches/nexuiz-2.0/data/models/player/specop.zym.sounds
   branches/nexuiz-2.0/data/models/player/visitant.zym.sounds
   branches/nexuiz-2.0/data/models/player/xolar.zym.sounds
   branches/nexuiz-2.0/data/sound/kh/alarm.wav
   branches/nexuiz-2.0/data/sound/player/carni-lycan/
   branches/nexuiz-2.0/data/sound/player/fricka/
   branches/nexuiz-2.0/data/sound/player/headhunter/
   branches/nexuiz-2.0/data/sound/player/insurrectionist/
   branches/nexuiz-2.0/data/sound/player/lava.wav
   branches/nexuiz-2.0/data/sound/player/marine/
   branches/nexuiz-2.0/data/sound/player/pyria-skadi/
   branches/nexuiz-2.0/data/sound/player/reptilian/
   branches/nexuiz-2.0/data/sound/player/soldier/
   branches/nexuiz-2.0/data/sound/player/specop/
Modified:
   branches/nexuiz-2.0/.patchsets
   branches/nexuiz-2.0/data/build-compat-pack.sh
   branches/nexuiz-2.0/data/defaultNexuiz.cfg
   branches/nexuiz-2.0/data/maps/campaign.txt
   branches/nexuiz-2.0/data/mutator_reset.cfg
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mutators.c
   branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/radiobutton.c
   branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc
   branches/nexuiz-2.0/data/qcsrc/server/defs.qh
   branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
   branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
   branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc
   branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
   branches/nexuiz-2.0/data/qcsrc/server/t_items.qc
   branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
   branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_damage.qc
   branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc
   branches/nexuiz-2.0/data/sound/announcer/male/airshot.ogg
   branches/nexuiz-2.0/data/sound/announcer/male/electrobitch.ogg
   branches/nexuiz-2.0/data/sound/announcer/male/headshot.ogg
   branches/nexuiz-2.0/data/sound/announcer/male/impressive.ogg
   branches/nexuiz-2.0/data/sound/announcer/male/yoda.ogg
   branches/nexuiz-2.0/data/sound/ctf/bluecapture.ogg
   branches/nexuiz-2.0/data/sound/ctf/redcapture.ogg
   branches/nexuiz-2.0/data/sound/ctf/respawn.wav
   branches/nexuiz-2.0/data/sound/ctf/return.wav
   branches/nexuiz-2.0/data/sound/ctf/take.wav
   branches/nexuiz-2.0/data/sound/domination/claim.wav
   branches/nexuiz-2.0/data/sound/kh/capture.wav
   branches/nexuiz-2.0/data/sound/kh/collect.wav
   branches/nexuiz-2.0/data/sound/kh/destroy.wav
   branches/nexuiz-2.0/data/sound/kh/drop.wav
   branches/nexuiz-2.0/data/sound/misc/armor1.wav
   branches/nexuiz-2.0/data/sound/misc/armor25.wav
   branches/nexuiz-2.0/data/sound/misc/footstep01.wav
   branches/nexuiz-2.0/data/sound/misc/footstep02.wav
   branches/nexuiz-2.0/data/sound/misc/footstep03.wav
   branches/nexuiz-2.0/data/sound/misc/footstep04.wav
   branches/nexuiz-2.0/data/sound/misc/footstep05.wav
   branches/nexuiz-2.0/data/sound/misc/footstep06.wav
   branches/nexuiz-2.0/data/sound/misc/gib.wav
   branches/nexuiz-2.0/data/sound/misc/hit.wav
   branches/nexuiz-2.0/data/sound/misc/hitground1.ogg
   branches/nexuiz-2.0/data/sound/misc/hitground2.ogg
   branches/nexuiz-2.0/data/sound/misc/hitground3.ogg
   branches/nexuiz-2.0/data/sound/misc/hitground4.ogg
   branches/nexuiz-2.0/data/sound/misc/itempickup.ogg
   branches/nexuiz-2.0/data/sound/misc/jumppad.ogg
   branches/nexuiz-2.0/data/sound/misc/mediumhealth.ogg
   branches/nexuiz-2.0/data/sound/misc/metalfootstep01.wav
   branches/nexuiz-2.0/data/sound/misc/metalfootstep02.wav
   branches/nexuiz-2.0/data/sound/misc/metalfootstep03.wav
   branches/nexuiz-2.0/data/sound/misc/metalfootstep04.wav
   branches/nexuiz-2.0/data/sound/misc/metalfootstep05.wav
   branches/nexuiz-2.0/data/sound/misc/metalfootstep06.wav
   branches/nexuiz-2.0/data/sound/misc/metalhitground1.ogg
   branches/nexuiz-2.0/data/sound/misc/metalhitground2.ogg
   branches/nexuiz-2.0/data/sound/misc/metalhitground3.ogg
   branches/nexuiz-2.0/data/sound/misc/metalhitground4.ogg
   branches/nexuiz-2.0/data/sound/misc/minihealth.ogg
   branches/nexuiz-2.0/data/sound/misc/powerup.ogg
   branches/nexuiz-2.0/data/sound/misc/powerup_shield.ogg
   branches/nexuiz-2.0/data/sound/player/slime.ogg
   branches/nexuiz-2.0/data/sound/player/torus/attack.ogg
   branches/nexuiz-2.0/data/sound/player/torus/coverme.ogg
   branches/nexuiz-2.0/data/sound/player/torus/death.ogg
   branches/nexuiz-2.0/data/sound/player/torus/drown.ogg
   branches/nexuiz-2.0/data/sound/player/torus/fall.ogg
   branches/nexuiz-2.0/data/sound/player/torus/gasp.ogg
   branches/nexuiz-2.0/data/sound/player/torus/incoming.ogg
   branches/nexuiz-2.0/data/sound/player/torus/jump.ogg
   branches/nexuiz-2.0/data/sound/player/torus/letsgo.ogg
   branches/nexuiz-2.0/data/sound/player/torus/needhelp.ogg
   branches/nexuiz-2.0/data/sound/player/torus/pain100.ogg
   branches/nexuiz-2.0/data/sound/player/torus/pain25.ogg
   branches/nexuiz-2.0/data/sound/player/torus/pain50.ogg
   branches/nexuiz-2.0/data/sound/player/torus/pain75.ogg
   branches/nexuiz-2.0/data/sound/player/torus/taunt.ogg
   branches/nexuiz-2.0/data/sound/player/torus/teamshoot.ogg
   branches/nexuiz-2.0/data/sound/player/torus/waypoint.ogg
   branches/nexuiz-2.0/data/sound/porto/create.ogg
   branches/nexuiz-2.0/data/sound/weapons/crylink_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/electro_bounce.ogg
   branches/nexuiz-2.0/data/sound/weapons/electro_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/electro_fire2.ogg
   branches/nexuiz-2.0/data/sound/weapons/electro_fly.wav
   branches/nexuiz-2.0/data/sound/weapons/electro_impact.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_bounce1.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_bounce2.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_bounce3.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_bounce4.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_bounce5.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_bounce6.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/grenade_impact.ogg
   branches/nexuiz-2.0/data/sound/weapons/hagar_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/hagexp1.ogg
   branches/nexuiz-2.0/data/sound/weapons/hagexp2.ogg
   branches/nexuiz-2.0/data/sound/weapons/hagexp3.ogg
   branches/nexuiz-2.0/data/sound/weapons/hook_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/lasergun_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/laserimpact.ogg
   branches/nexuiz-2.0/data/sound/weapons/minstanexfire.ogg
   branches/nexuiz-2.0/data/sound/weapons/nexfire.ogg
   branches/nexuiz-2.0/data/sound/weapons/neximpact.ogg
   branches/nexuiz-2.0/data/sound/weapons/rocket_det.ogg
   branches/nexuiz-2.0/data/sound/weapons/rocket_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/rocket_fly.wav
   branches/nexuiz-2.0/data/sound/weapons/rocket_impact.ogg
   branches/nexuiz-2.0/data/sound/weapons/shotgun_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/strength_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/uzi_fire.ogg
   branches/nexuiz-2.0/data/sound/weapons/weapon_switch.ogg
   branches/nexuiz-2.0/data/sound/weapons/weaponpickup.ogg
Log:
r4917 | div0 | 2008-10-27 16:16:05 +0100 (Mon, 27 Oct 2008) | 2 lines
account for the case that a Damage function may remove(self) (currently this would abort the RadiusDamage loop, leaving some entities undamaged)
r4918 | div0 | 2008-10-28 07:49:47 +0100 (Tue, 28 Oct 2008) | 2 lines
New "weapon arena" and "weapon replace" cvars. InstaGib is back in a new form.
r4919 | div0 | 2008-10-28 07:54:20 +0100 (Tue, 28 Oct 2008) | 2 lines
fix weaponreplace
r4920 | div0 | 2008-10-28 07:59:01 +0100 (Tue, 28 Oct 2008) | 2 lines
make campaign use g_weaponarena
r4921 | div0 | 2008-10-28 08:02:30 +0100 (Tue, 28 Oct 2008) | 2 lines
adding InstaGib this way was wrong, true InstaGib needs more changes (e.g. no self damage, reduced player health so Nex shot reliably kills)
r4922 | div0 | 2008-10-28 09:11:14 +0100 (Tue, 28 Oct 2008) | 2 lines
Tenshihan v3.6.4 committed.
r4923 | div0 | 2008-10-28 10:32:05 +0100 (Tue, 28 Oct 2008) | 2 lines
fix #2178127r4924 | div0 | 2008-10-28 10:56:03 +0100 (Tue, 28 Oct 2008) | 2 lines
stop firing rockets when owner is dead
r4925 | div0 | 2008-10-28 11:12:42 +0100 (Tue, 28 Oct 2008) | 2 lines
remove the entity zeroing from remove again, to get better crash dumps possibly
r4926 | div0 | 2008-10-28 13:26:06 +0100 (Tue, 28 Oct 2008) | 2 lines
remove some accidentally empty dirs
r4927 | div0 | 2008-10-28 15:48:04 +0100 (Tue, 28 Oct 2008) | 2 lines
fix KH updating sprites wrong
r4928 | div0 | 2008-10-28 20:38:28 +0100 (Tue, 28 Oct 2008) | 2 lines
small seeker bug
r4929 | tzork | 2008-10-28 20:54:33 +0100 (Tue, 28 Oct 2008) | 2 lines
Fixed mismatch of takedamage in death/respawn vs initial spawn.
Set event_damage to sub_null on death.

Modified: branches/nexuiz-2.0/.patchsets
===================================================================
--- branches/nexuiz-2.0/.patchsets	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/.patchsets	2008-10-28 20:50:08 UTC (rev 4930)
@@ -1,2 +1,2 @@
 master = svn://svn.icculus.org/nexuiz/trunk
-revisions_applied = 1-4915
+revisions_applied = 1-4929

Modified: branches/nexuiz-2.0/data/build-compat-pack.sh
===================================================================
--- branches/nexuiz-2.0/data/build-compat-pack.sh	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/build-compat-pack.sh	2008-10-28 20:50:08 UTC (rev 4930)
@@ -36,6 +36,19 @@
 	gfx/teamradar_ping.tga
 	gfx/toxic_mini.tga
 	gfx/warfare_mini.tga
+	models/player/carni.zym.sounds
+	models/player/headhunter.zym.sounds
+	models/player/insurrectionist.zym.sounds
+	models/player/lurk.zym.sounds
+	models/player/lycanthrope.zym.sounds
+	models/player/marine.zym.sounds
+	models/player/nexus.zym.sounds
+	models/player/pyria.zym.sounds
+	models/player/shock.zym.sounds
+	models/player/skadi.zym.sounds
+	models/player/specop.zym.sounds
+	models/player/visitant.zym.sounds
+	models/player/xolar.zym.sounds
 	models/portal.md3
 	models/sprites/bluebase.tga
 	models/sprites/danger.tga
@@ -128,10 +141,256 @@
     models/weapons/w_seeker.zym
 	particles/particlefont.tga
 	sound/announcer/male/airshot.ogg
+	sound/announcer/male/electrobitch.ogg
 	sound/announcer/male/headshot.ogg
 	sound/announcer/male/impressive.ogg
+	sound/announcer/male/yoda.ogg
+	sound/ctf/bluecapture.ogg
+	sound/ctf/redcapture.ogg
+	sound/ctf/respawn.wav
+	sound/ctf/return.wav
+	sound/ctf/take.wav
+	sound/domination/claim.wav
+	sound/kh/alarm.wav
+	sound/kh/capture.wav
+	sound/kh/collect.wav
+	sound/kh/destroy.wav
+	sound/kh/drop.wav
+	sound/misc/armor1.wav
+	sound/misc/armor25.wav
+	sound/misc/footstep01.wav
+	sound/misc/footstep02.wav
+	sound/misc/footstep03.wav
+	sound/misc/footstep04.wav
+	sound/misc/footstep05.wav
+	sound/misc/footstep06.wav
+	sound/misc/gib.wav
+	sound/misc/hitground1.ogg
+	sound/misc/hitground2.ogg
+	sound/misc/hitground3.ogg
+	sound/misc/hitground4.ogg
+	sound/misc/hit.wav
+	sound/misc/itempickup.ogg
+	sound/misc/jumppad.ogg
+	sound/misc/mediumhealth.ogg
+	sound/misc/metalfootstep01.wav
+	sound/misc/metalfootstep02.wav
+	sound/misc/metalfootstep03.wav
+	sound/misc/metalfootstep04.wav
+	sound/misc/metalfootstep05.wav
+	sound/misc/metalfootstep06.wav
+	sound/misc/metalhitground1.ogg
+	sound/misc/metalhitground2.ogg
+	sound/misc/metalhitground3.ogg
+	sound/misc/metalhitground4.ogg
+	sound/misc/minihealth.ogg
+	sound/misc/powerup.ogg
+	sound/misc/powerup_shield.ogg
 	sound/misc/typehit.wav
+	sound/player/carni-lycan/coms/attackinfive.ogg
+	sound/player/carni-lycan/coms/attack.ogg
+	sound/player/carni-lycan/coms/coverme.ogg
+	sound/player/carni-lycan/coms/defend.ogg
+	sound/player/carni-lycan/coms/freelance1.ogg
+	sound/player/carni-lycan/coms/freelance2.ogg
+	sound/player/carni-lycan/coms/incoming.ogg
+	sound/player/carni-lycan/coms/meet.ogg
+	sound/player/carni-lycan/coms/needhelp1.ogg
+	sound/player/carni-lycan/coms/needhelp2.ogg
+	sound/player/carni-lycan/coms/seenflag.ogg
+	sound/player/carni-lycan/coms/taunt1.ogg
+	sound/player/carni-lycan/coms/taunt2.ogg
+	sound/player/carni-lycan/coms/taunt3.ogg
+	sound/player/carni-lycan/coms/teamshoot1.ogg
+	sound/player/carni-lycan/coms/teamshoot2.ogg
+	sound/player/carni-lycan/coms/teamshoot3.ogg
+	sound/player/carni-lycan/player/death1.ogg
+	sound/player/carni-lycan/player/death2.ogg
+	sound/player/carni-lycan/player/death3.ogg
+	sound/player/carni-lycan/player/drown.ogg
+	sound/player/carni-lycan/player/fall1.ogg
+	sound/player/carni-lycan/player/falling.ogg
+	sound/player/carni-lycan/player/gasp.ogg
+	sound/player/carni-lycan/player/jump.ogg
+	sound/player/carni-lycan/player/pain100.ogg
+	sound/player/carni-lycan/player/pain25.ogg
+	sound/player/carni-lycan/player/pain50.ogg
+	sound/player/carni-lycan/player/pain75.ogg
 	sound/player/default.sounds
+	sound/player/fricka/player/death1.ogg
+	sound/player/fricka/player/death2.ogg
+	sound/player/fricka/player/death3.ogg
+	sound/player/fricka/player/drown.ogg
+	sound/player/fricka/player/fall1.ogg
+	sound/player/fricka/player/falling.ogg
+	sound/player/fricka/player/gasp.ogg
+	sound/player/fricka/player/jump.ogg
+	sound/player/fricka/player/pain100.ogg
+	sound/player/fricka/player/pain25.ogg
+	sound/player/fricka/player/pain50.ogg
+	sound/player/fricka/player/pain75.ogg
+	sound/player/insurrectionist/coms/attackinfive.ogg
+	sound/player/insurrectionist/coms/attack.ogg
+	sound/player/insurrectionist/coms/coverme.ogg
+	sound/player/insurrectionist/coms/defend.ogg
+	sound/player/insurrectionist/coms/freelance1.ogg
+	sound/player/insurrectionist/coms/freelance2.ogg
+	sound/player/insurrectionist/coms/incoming.ogg
+	sound/player/insurrectionist/coms/meet.ogg
+	sound/player/insurrectionist/coms/needhelp1.ogg
+	sound/player/insurrectionist/coms/needhelp2.ogg
+	sound/player/insurrectionist/coms/seenflag.ogg
+	sound/player/insurrectionist/coms/taunt1.ogg
+	sound/player/insurrectionist/coms/taunt2.ogg
+	sound/player/insurrectionist/coms/taunt3.ogg
+	sound/player/insurrectionist/coms/taunt4.ogg
+	sound/player/insurrectionist/coms/teamshoot1.ogg
+	sound/player/insurrectionist/coms/teamshoot2.ogg
+	sound/player/insurrectionist/coms/teamshoot3.ogg
+	sound/player/insurrectionist/player/death1.ogg
+	sound/player/insurrectionist/player/death2.ogg
+	sound/player/insurrectionist/player/death3.ogg
+	sound/player/insurrectionist/player/drown.ogg
+	sound/player/insurrectionist/player/fall1.ogg
+	sound/player/insurrectionist/player/falling.ogg
+	sound/player/insurrectionist/player/gasp.ogg
+	sound/player/insurrectionist/player/jump.ogg
+	sound/player/insurrectionist/player/pain100.ogg
+	sound/player/insurrectionist/player/pain25.ogg
+	sound/player/insurrectionist/player/pain50.ogg
+	sound/player/insurrectionist/player/pain75.ogg
+	sound/player/lava.wav
+	sound/player/marine/coms/attackinfive.ogg
+	sound/player/marine/coms/attack.ogg
+	sound/player/marine/coms/coverme.ogg
+	sound/player/marine/coms/defend.ogg
+	sound/player/marine/coms/freelance1.ogg
+	sound/player/marine/coms/freelance2.ogg
+	sound/player/marine/coms/incoming.ogg
+	sound/player/marine/coms/meet.ogg
+	sound/player/marine/coms/needhelp1.ogg
+	sound/player/marine/coms/needhelp2.ogg
+	sound/player/marine/coms/seenflag.ogg
+	sound/player/marine/coms/taunt1.ogg
+	sound/player/marine/coms/taunt2.ogg
+	sound/player/marine/coms/taunt3.ogg
+	sound/player/marine/coms/teamshoot1.ogg
+	sound/player/marine/coms/teamshoot2.ogg
+	sound/player/marine/coms/teamshoot3.ogg
+	sound/player/marine/player/death1.ogg
+	sound/player/marine/player/death2.ogg
+	sound/player/marine/player/death3.ogg
+	sound/player/marine/player/drown.ogg
+	sound/player/marine/player/fall1.ogg
+	sound/player/marine/player/falling.ogg
+	sound/player/marine/player/gasp.ogg
+	sound/player/marine/player/jump.ogg
+	sound/player/marine/player/pain100.ogg
+	sound/player/marine/player/pain25.ogg
+	sound/player/marine/player/pain50.ogg
+	sound/player/marine/player/pain75.ogg
+	sound/player/pyria-skadi/player/death1.ogg
+	sound/player/pyria-skadi/player/death2.ogg
+	sound/player/pyria-skadi/player/death3.ogg
+	sound/player/pyria-skadi/player/drown.ogg
+	sound/player/pyria-skadi/player/fall1.ogg
+	sound/player/pyria-skadi/player/falling.ogg
+	sound/player/pyria-skadi/player/gasp.ogg
+	sound/player/pyria-skadi/player/jump.ogg
+	sound/player/pyria-skadi/player/pain100.ogg
+	sound/player/pyria-skadi/player/pain25.ogg
+	sound/player/pyria-skadi/player/pain50.ogg
+	sound/player/pyria-skadi/player/pain75.ogg
+	sound/player/reptilian/coms/attackinfive.ogg
+	sound/player/reptilian/coms/attack.ogg
+	sound/player/reptilian/coms/coverme.ogg
+	sound/player/reptilian/coms/defend.ogg
+	sound/player/reptilian/coms/freelance1.ogg
+	sound/player/reptilian/coms/freelance2.ogg
+	sound/player/reptilian/coms/incoming.ogg
+	sound/player/reptilian/coms/meet.ogg
+	sound/player/reptilian/coms/needhelp1.ogg
+	sound/player/reptilian/coms/needhelp2.ogg
+	sound/player/reptilian/coms/seenflag.ogg
+	sound/player/reptilian/coms/taunt1.ogg
+	sound/player/reptilian/coms/taunt2.ogg
+	sound/player/reptilian/coms/taunt3.ogg
+	sound/player/reptilian/coms/teamshoot1.ogg
+	sound/player/reptilian/coms/teamshoot2.ogg
+	sound/player/reptilian/coms/teamshoot3.ogg
+	sound/player/reptilian/player/death1.ogg
+	sound/player/reptilian/player/death2.ogg
+	sound/player/reptilian/player/death3.ogg
+	sound/player/reptilian/player/drown.ogg
+	sound/player/reptilian/player/fall1.ogg
+	sound/player/reptilian/player/falling.ogg
+	sound/player/reptilian/player/gasp.ogg
+	sound/player/reptilian/player/jump.ogg
+	sound/player/reptilian/player/pain100.ogg
+	sound/player/reptilian/player/pain25.ogg
+	sound/player/reptilian/player/pain50.ogg
+	sound/player/reptilian/player/pain75.ogg
+	sound/player/slime.ogg
+	sound/player/soldier/coms/attackinfive.ogg
+	sound/player/soldier/coms/attack.ogg
+	sound/player/soldier/coms/coverme.ogg
+	sound/player/soldier/coms/defend.ogg
+	sound/player/soldier/coms/freelance1.ogg
+	sound/player/soldier/coms/freelance2.ogg
+	sound/player/soldier/coms/ideas/flagcarriertakingdamage.ogg
+	sound/player/soldier/coms/ideas/getourflagback.ogg
+	sound/player/soldier/coms/incoming.ogg
+	sound/player/soldier/coms/meet.ogg
+	sound/player/soldier/coms/needhelp1.ogg
+	sound/player/soldier/coms/needhelp2.ogg
+	sound/player/soldier/coms/seenflag.ogg
+	sound/player/soldier/coms/taunt1.ogg
+	sound/player/soldier/coms/taunt2.ogg
+	sound/player/soldier/coms/taunt3.ogg
+	sound/player/soldier/coms/teamshoot1.ogg
+	sound/player/soldier/coms/teamshoot2.ogg
+	sound/player/soldier/coms/teamshoot3.ogg
+	sound/player/soldier/player/death1.ogg
+	sound/player/soldier/player/death2.ogg
+	sound/player/soldier/player/death3.ogg
+	sound/player/soldier/player/drown.ogg
+	sound/player/soldier/player/fall1.ogg
+	sound/player/soldier/player/falling.ogg
+	sound/player/soldier/player/gasp.ogg
+	sound/player/soldier/player/jump.ogg
+	sound/player/soldier/player/pain100.ogg
+	sound/player/soldier/player/pain25.ogg
+	sound/player/soldier/player/pain50.ogg
+	sound/player/soldier/player/pain75.ogg
+	sound/player/specop/coms/attackinfive.ogg
+	sound/player/specop/coms/attack.ogg
+	sound/player/specop/coms/coverme.ogg
+	sound/player/specop/coms/defend.ogg
+	sound/player/specop/coms/freelance1.ogg
+	sound/player/specop/coms/freelance2.ogg
+	sound/player/specop/coms/incoming.ogg
+	sound/player/specop/coms/meet.ogg
+	sound/player/specop/coms/needhelp1.ogg
+	sound/player/specop/coms/needhelp2.ogg
+	sound/player/specop/coms/seenflag.ogg
+	sound/player/specop/coms/taunt1.ogg
+	sound/player/specop/coms/taunt2.ogg
+	sound/player/specop/coms/taunt3.ogg
+	sound/player/specop/coms/teamshoot1.ogg
+	sound/player/specop/coms/teamshoot2.ogg
+	sound/player/specop/coms/teamshoot3.ogg
+	sound/player/specop/player/death1.ogg
+	sound/player/specop/player/death2.ogg
+	sound/player/specop/player/death3.ogg
+	sound/player/specop/player/drown.ogg
+	sound/player/specop/player/fall1.ogg
+	sound/player/specop/player/falling.ogg
+	sound/player/specop/player/gasp.ogg
+	sound/player/specop/player/jump.ogg
+	sound/player/specop/player/pain100.ogg
+	sound/player/specop/player/pain25.ogg
+	sound/player/specop/player/pain50.ogg
+	sound/player/specop/player/pain75.ogg
 	sound/player/torus/attack.ogg
 	sound/player/torus/coverme.ogg
 	sound/player/torus/death.ogg
@@ -157,6 +416,39 @@
 	sound/porto/explode.ogg
 	sound/porto/fire.ogg
 	sound/porto/unsupported.ogg
+	sound/weapons/crylink_fire.ogg
+	sound/weapons/electro_bounce.ogg
+	sound/weapons/electro_fire2.ogg
+	sound/weapons/electro_fire.ogg
+	sound/weapons/electro_fly.wav
+	sound/weapons/electro_impact.ogg
+	sound/weapons/grenade_bounce1.ogg
+	sound/weapons/grenade_bounce2.ogg
+	sound/weapons/grenade_bounce3.ogg
+	sound/weapons/grenade_bounce4.ogg
+	sound/weapons/grenade_bounce5.ogg
+	sound/weapons/grenade_bounce6.ogg
+	sound/weapons/grenade_fire.ogg
+	sound/weapons/grenade_impact.ogg
+	sound/weapons/hagar_fire.ogg
+	sound/weapons/hagexp1.ogg
+	sound/weapons/hagexp2.ogg
+	sound/weapons/hagexp3.ogg
+	sound/weapons/hook_fire.ogg
+	sound/weapons/lasergun_fire.ogg
+	sound/weapons/laserimpact.ogg
+	sound/weapons/minstanexfire.ogg
+	sound/weapons/nexfire.ogg
+	sound/weapons/neximpact.ogg
+	sound/weapons/rocket_det.ogg
+	sound/weapons/rocket_fire.ogg
+	sound/weapons/rocket_fly.wav
+	sound/weapons/rocket_impact.ogg
+	sound/weapons/shotgun_fire.ogg
+	sound/weapons/strength_fire.ogg
+	sound/weapons/uzi_fire.ogg
+	sound/weapons/weaponpickup.ogg
+	sound/weapons/weapon_switch.ogg
 	textures/hookgun_gloss.tga
 	textures/hookgun_norm.tga
 	textures/hookgun_pants.tga

Modified: branches/nexuiz-2.0/data/defaultNexuiz.cfg
===================================================================
--- branches/nexuiz-2.0/data/defaultNexuiz.cfg	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/defaultNexuiz.cfg	2008-10-28 20:50:08 UTC (rev 4930)
@@ -284,8 +284,8 @@
 set g_minstagib_invis_alpha 0.05
 set g_minstagib_speed_jumpheight 1.8
 set g_minstagib_speed_moverate 1.25
-set g_rocketarena 0
 set g_vampire 0
+set g_weaponarena "0" // put in a list of weapons to enable a weapon arena mode
 set g_shocknex 0
 set g_laserguided_missile 0
 set g_midair 0
@@ -1112,6 +1112,7 @@
 
 alias allready "sv_cmd allready"
 
+// note: these cvars use weapon NUMBERS. Use the menu to edit this cvar, or look the numbers up in qcsrc/common/constants.qh.
 seta cl_weaponpriority "14 13 9 8 11 7 6 5 4 3 2 1 10 12" // default porto and hook as LOW priority, use the weapon key numbers otherwise
 seta cl_weaponpriority_useforcycling 0
 // impulse 200, 210, 220:
@@ -1130,22 +1131,22 @@
 
 // NOTE: this only replaces weapons on the map
 // use g_start_weapon_* to also replace the on-startup weapons!
-// example: g_weaponreplace_7 "7 11", then Nexes become MinstaNexes 50% of the times
-// set the cvars to 0 to totally disable a weapon
-set g_weaponreplace_1 ""
-set g_weaponreplace_2 ""
-set g_weaponreplace_3 ""
-set g_weaponreplace_4 ""
-set g_weaponreplace_5 ""
-set g_weaponreplace_6 ""
-set g_weaponreplace_7 ""
-set g_weaponreplace_8 ""
-set g_weaponreplace_9 ""
-set g_weaponreplace_10 ""
-set g_weaponreplace_11 ""
-set g_weaponreplace_12 ""
-set g_weaponreplace_13 ""
-set g_weaponreplace_14 ""
+// example: g_weaponreplace_nex "nex minstanex", then Nexes become MinstaNexes 50% of the times
+// set the cvars to "0" to totally disable a weapon
+set g_weaponreplace_laser ""
+set g_weaponreplace_shotgun ""
+set g_weaponreplace_uzi ""
+set g_weaponreplace_grenadelauncher ""
+set g_weaponreplace_electro ""
+set g_weaponreplace_crylink ""
+set g_weaponreplace_nex ""
+set g_weaponreplace_hagar ""
+set g_weaponreplace_rocketlauncher ""
+set g_weaponreplace_porto ""
+set g_weaponreplace_minstanex ""
+set g_weaponreplace_hook ""
+set g_weaponreplace_seeker ""
+set g_weaponreplace_hlac ""
 
 seta sv_status_privacy 1 // hide IP addresses from "status" replies shown to clients
 

Modified: branches/nexuiz-2.0/data/maps/campaign.txt
===================================================================
--- branches/nexuiz-2.0/data/maps/campaign.txt	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/maps/campaign.txt	2008-10-28 20:50:08 UTC (rev 4930)
@@ -2,7 +2,7 @@
 "//game","mapname","bots","skill","frag","mutator-sets","description","long description"
 "dm","downer","2","3","15",,"Downer","Welcome to your first taste of campaign deathmatch!\n\nYou will face off against two unskilled bots in the decaying industrial arena known as Downer with a fraglimit of 15, this should be good practice for later, so make the best of it."
 "dm","basement","3","3","10",,"Basement","Frenzied deathmatch in Basement against three bots, fraglimit is 10."
-"dm","skyway","2","3","15","g_rocketarena 1","Rocket Arena on Skyway","Rocket Arena DM mode!\n\n3 bots, everyone will start with Rocket Launchers with unlimited ammo.\n\nRemember, you can detonate your rockets in midair with the secondary fire, this is useful for getting the most damage.\n\nFraglimit of 15."
+"dm","skyway","2","3","15","g_weaponarena rocketlauncher","Rocket Arena on Skyway","Rocket Arena DM mode!\n\n3 bots, everyone will start with Rocket Launchers with unlimited ammo.\n\nRemember, you can detonate your rockets in midair with the secondary fire, this is useful for getting the most damage.\n\nFraglimit of 15."
 "tdm","toxic","3","4","20",,"Team DM on Toxic","Team deathmatch.\n\nYou will have one bot team mate on your team now against a team of 2.\n\nFraglimit of 20."
 "dom","bleach","3","4","200",,"Domination on Bleach","Capture and hold the Domination Points.\n\nThe more points your team owns, the more rapidly your team gains points.\n\nOne bot on your team against 2, first team to reach 200 points wins."
 "dm","silvercity","4","4","15","g_minstagib 1; sv_gravity 200","Silver City","Low gravity minstagib!\n\nYou face 4 bots and a fraglimit of 15 in this huge outdoor arena.\n\nWith the low gravity you should be able to navigate easily.\n\nBe careful not to run out of ammo or you will die within 10 seconds if you do not pick up a dropped Nex."
@@ -16,9 +16,9 @@
 "dm","runningman_1on1remix","1","6","10","g_footsteps 1","1on1 on Running Man","In this arena titled 'Running Man' you will face off against only one opponent to a fraglimit of 10.\n\nWill you be the victor?"
 "kh","aneurysm","3","7","500",,"Aneurysm","Keyhunt in another industrial Deathmatch arena.  Team up with one bot against two others.\nTo score the big points your team has to get all keys and meet!\nOr be selfish and get the keys yourself."
 "dm","darkzone","4","7","15",,"Q1Dm6 remake","This is a remake of a beloved level from the original Quake(r) from id Software, simple Deathmatch against 4 bots to a fraglimit of 15."
-"dm","stormkeep","5","8","15","g_laserguided_missile 1; g_rocketarena 1","LG missiles on StormKeep","Destroy your opponents with Laser guided missiles in the StormKeep arena, you are up against 5 bots and a fraglimit of 15.\n\nRocket Launcher altfire toggles laser guidance."
+"dm","stormkeep","5","8","15","g_laserguided_missile 1; g_weaponarena rocketlauncher","LG missiles on StormKeep","Destroy your opponents with Laser guided missiles in the StormKeep arena, you are up against 5 bots and a fraglimit of 15.\n\nRocket Launcher altfire toggles laser guidance."
 "lms","bloodprison","3","8","9",,"LMS on Blood Prison","Last Man Standing in Blood Prison, like a cat, you have nine lives.\n\nWill you survive?"
-"dm","farewell","3","9","20","g_rocketarena 1","Farewell","Rocket Arena returns in the arena Farewell, 3 bots, fraglimit of 20."
+"dm","farewell","3","9","20","g_weaponarena rocketlauncher","Farewell","Rocket Arena returns in the arena Farewell, 3 bots, fraglimit of 20."
 "dm","warfare","3","9","15",,"Warfare","In Stabilized Warfare you face 3 bots, and a fraglimit of 15."
 "dm","starship","3","10","15",,"Starship","You are getting closer. Only this map before you get to the final fight.\n3 bots with a 15 frag limit in the Starship arena."
 "dm","final_rage","3","10","15",,"Final RAGE!","The final battle on final rage - Now its 4 bots with a 15 frag limit .\n\nAre you up to the challenge?"

Copied: branches/nexuiz-2.0/data/models/player/carni.zym.sounds (from rev 4923, trunk/data/models/player/carni.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/carni.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/carni.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/carni-lycan/coms/attack 0
+//attackinfive sound/player/carni-lycan/letsgo 0
+coverme sound/player/carni-lycan/coms/coverme 0
+defend sound/player/carni-lycan/coms/defend 0
+freelance sound/player/carni-lycan/coms/freelance 2
+//incoming sound/player/carni-lycan/incoming 0
+//meet sound/player/carni-lycan/waypoint 0
+//needhelp sound/player/carni-lycan/needhelp 0
+//seenflag sound/player/carni-lycan/flagseen 0
+//taunt sound/player/carni-lycan/player/taunt 1
+teamshoot sound/player/carni-lycan/coms/teamshoot 3
+death sound/player/carni-lycan/player/death 3
+drown sound/player/carni-lycan/player/drown 0
+falling sound/player/carni-lycan/player/falling 0
+gasp sound/player/carni-lycan/player/gasp 0
+jump sound/player/carni-lycan/player/jump 0
+pain25 sound/player/carni-lycan/player/pain25 0
+pain50 sound/player/carni-lycan/player/pain50 0
+pain75 sound/player/carni-lycan/player/pain75 0
+pain100 sound/player/carni-lycan/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/headhunter.zym.sounds (from rev 4923, trunk/data/models/player/headhunter.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/headhunter.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/headhunter.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/carni-lycan/coms/attack 0
+//attackinfive sound/player/carni-lycan/letsgo 0
+coverme sound/player/carni-lycan/coms/coverme 0
+defend sound/player/carni-lycan/coms/defend 0
+freelance sound/player/carni-lycan/coms/freelance 2
+//incoming sound/player/carni-lycan/incoming 0
+//meet sound/player/carni-lycan/waypoint 0
+//needhelp sound/player/carni-lycan/needhelp 0
+//seenflag sound/player/carni-lycan/flagseen 0
+//taunt sound/player/carni-lycan/player/taunt 1
+teamshoot sound/player/carni-lycan/coms/teamshoot 3
+death sound/player/carni-lycan/player/death 3
+drown sound/player/carni-lycan/player/drown 0
+falling sound/player/carni-lycan/player/falling 0
+gasp sound/player/carni-lycan/player/gasp 0
+jump sound/player/carni-lycan/player/jump 0
+pain25 sound/player/carni-lycan/player/pain25 0
+pain50 sound/player/carni-lycan/player/pain50 0
+pain75 sound/player/carni-lycan/player/pain75 0
+pain100 sound/player/carni-lycan/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/insurrectionist.zym.sounds (from rev 4923, trunk/data/models/player/insurrectionist.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/insurrectionist.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/insurrectionist.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/insurrectionist/coms/attack 0
+//attackinfive sound/player/insurrectionist/letsgo 0
+coverme sound/player/insurrectionist/coms/coverme 0
+defend sound/player/insurrectionist/coms/defend 0
+freelance sound/player/insurrectionist/coms/freelance 2
+//incoming sound/player/insurrectionist/incoming 0
+//meet sound/player/insurrectionist/waypoint 0
+//needhelp sound/player/insurrectionist/needhelp 0
+//seenflag sound/player/insurrectionist/flagseen 0
+//taunt sound/player/insurrectionist/player/taunt 1
+teamshoot sound/player/insurrectionist/coms/teamshoot 3
+death sound/player/insurrectionist/player/death 3
+drown sound/player/insurrectionist/player/drown 0
+falling sound/player/insurrectionist/player/falling 0
+gasp sound/player/insurrectionist/player/gasp 0
+jump sound/player/insurrectionist/player/jump 0
+pain25 sound/player/insurrectionist/player/pain25 0
+pain50 sound/player/insurrectionist/player/pain50 0
+pain75 sound/player/insurrectionist/player/pain75 0
+pain100 sound/player/insurrectionist/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/lurk.zym.sounds (from rev 4923, trunk/data/models/player/lurk.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/lurk.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/lurk.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/reptilian/coms/attack 0
+//attackinfive sound/player/reptilian/letsgo 0
+coverme sound/player/reptilian/coms/coverme 0
+defend sound/player/reptilian/coms/defend 0
+freelance sound/player/reptilian/coms/freelance 2
+//incoming sound/player/reptilian/incoming 0
+//meet sound/player/reptilian/waypoint 0
+//needhelp sound/player/reptilian/needhelp 0
+//seenflag sound/player/reptilian/flagseen 0
+//taunt sound/player/reptilian/player/taunt 1
+teamshoot sound/player/reptilian/coms/teamshoot 3
+death sound/player/reptilian/player/death 3
+drown sound/player/reptilian/player/drown 0
+falling sound/player/reptilian/player/falling 0
+gasp sound/player/reptilian/player/gasp 0
+jump sound/player/reptilian/player/jump 0
+pain25 sound/player/reptilian/player/pain25 0
+pain50 sound/player/reptilian/player/pain50 0
+pain75 sound/player/reptilian/player/pain75 0
+pain100 sound/player/reptilian/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/lycanthrope.zym.sounds (from rev 4923, trunk/data/models/player/lycanthrope.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/lycanthrope.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/lycanthrope.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/carni-lycan/coms/attack 0
+//attackinfive sound/player/carni-lycan/letsgo 0
+coverme sound/player/carni-lycan/coms/coverme 0
+defend sound/player/carni-lycan/coms/defend 0
+freelance sound/player/carni-lycan/coms/freelance 2
+//incoming sound/player/carni-lycan/incoming 0
+//meet sound/player/carni-lycan/waypoint 0
+//needhelp sound/player/carni-lycan/needhelp 0
+//seenflag sound/player/carni-lycan/flagseen 0
+//taunt sound/player/carni-lycan/player/taunt 1
+teamshoot sound/player/carni-lycan/coms/teamshoot 3
+death sound/player/carni-lycan/player/death 3
+drown sound/player/carni-lycan/player/drown 0
+falling sound/player/carni-lycan/player/falling 0
+gasp sound/player/carni-lycan/player/gasp 0
+jump sound/player/carni-lycan/player/jump 0
+pain25 sound/player/carni-lycan/player/pain25 0
+pain50 sound/player/carni-lycan/player/pain50 0
+pain75 sound/player/carni-lycan/player/pain75 0
+pain100 sound/player/carni-lycan/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/marine.zym.sounds (from rev 4923, trunk/data/models/player/marine.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/marine.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/marine.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/marine/coms/attack 0
+attackinfive sound/player/marine/coms/attackinfive 0
+coverme sound/player/marine/coms/coverme 0
+defend sound/player/marine/coms/defend 0
+freelance sound/player/marine/coms/freelance 2
+incoming sound/player/marine/coms/incoming 0
+//meet sound/player/marine/waypoint 0
+needhelp sound/player/marine/coms/needhelp 2
+//seenflag sound/player/marine/coms/flagseen 0
+taunt sound/player/marine/coms/taunt 1
+teamshoot sound/player/marine/coms/teamshoot 4
+death sound/player/marine/player/death 3
+drown sound/player/marine/player/drown 0
+falling sound/player/marine/player/fall 1
+gasp sound/player/marine/player/gasp 0
+jump sound/player/marine/player/jump 0
+pain25 sound/player/marine/player/pain25 0
+pain50 sound/player/marine/player/pain50 0
+pain75 sound/player/marine/player/pain75 0
+pain100 sound/player/marine/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/nexus.zym.sounds (from rev 4923, trunk/data/models/player/nexus.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/nexus.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/nexus.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/soldier/coms/attack 0
+//attackinfive sound/player/soldier/letsgo 0
+coverme sound/player/soldier/coms/coverme 0
+defend sound/player/soldier/coms/defend 0
+freelance sound/player/soldier/coms/freelance 2
+//incoming sound/player/soldier/incoming 0
+//meet sound/player/soldier/waypoint 0
+//needhelp sound/player/soldier/needhelp 0
+//seenflag sound/player/soldier/flagseen 0
+//taunt sound/player/soldier/player/taunt 1
+teamshoot sound/player/soldier/coms/teamshoot 3
+death sound/player/soldier/player/death 3
+drown sound/player/soldier/player/drown 0
+falling sound/player/soldier/player/falling 0
+gasp sound/player/soldier/player/gasp 0
+jump sound/player/soldier/player/jump 0
+pain25 sound/player/soldier/player/pain25 0
+pain50 sound/player/soldier/player/pain50 0
+pain75 sound/player/soldier/player/pain75 0
+pain100 sound/player/soldier/player/pain100 0
+//

Copied: branches/nexuiz-2.0/data/models/player/pyria.zym.sounds (from rev 4923, trunk/data/models/player/pyria.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/pyria.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/pyria.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+//attack sound/player/pyria-skadi/coms/attack 0
+//attackinfive sound/player/pyria-skadi/letsgo 0
+//coverme sound/player/pyria-skadi/coms/coverme 0
+//defend sound/player/pyria-skadi/coms/defend 0
+//freelance sound/player/pyria-skadi/coms/freelance 2
+//incoming sound/player/pyria-skadi/incoming 0
+//meet sound/player/pyria-skadi/waypoint 0
+//needhelp sound/player/pyria-skadi/needhelp 0
+//seenflag sound/player/pyria-skadi/flagseen 0
+//taunt sound/player/pyria-skadi/player/taunt 1
+//teamshoot sound/player/pyria-skadi/coms/teamshoot 3
+death sound/player/pyria-skadi/player/death 3
+drown sound/player/pyria-skadi/player/drown 0
+falling sound/player/pyria-skadi/player/falling 0
+gasp sound/player/pyria-skadi/player/gasp 0
+jump sound/player/pyria-skadi/player/jump 0
+pain25 sound/player/pyria-skadi/player/pain25 0
+pain50 sound/player/pyria-skadi/player/pain50 0
+pain75 sound/player/pyria-skadi/player/pain75 0
+pain100 sound/player/pyria-skadi/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/shock.zym.sounds (from rev 4923, trunk/data/models/player/shock.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/shock.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/shock.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/marine/coms/attack 0
+attackinfive sound/player/marine/coms/attackinfive 0
+coverme sound/player/marine/coms/coverme 0
+defend sound/player/marine/coms/defend 0
+freelance sound/player/marine/coms/freelance 2
+incoming sound/player/marine/coms/incoming 0
+//meet sound/player/marine/waypoint 0
+needhelp sound/player/marine/coms/needhelp 2
+//seenflag sound/player/marine/coms/flagseen 0
+taunt sound/player/marine/coms/taunt 1
+teamshoot sound/player/marine/coms/teamshoot 4
+death sound/player/marine/player/death 3
+drown sound/player/marine/player/drown 0
+falling sound/player/marine/player/fall 1
+gasp sound/player/marine/player/gasp 0
+jump sound/player/marine/player/jump 0
+pain25 sound/player/marine/player/pain25 0
+pain50 sound/player/marine/player/pain50 0
+pain75 sound/player/marine/player/pain75 0
+pain100 sound/player/marine/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/skadi.zym.sounds (from rev 4923, trunk/data/models/player/skadi.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/skadi.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/skadi.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+//attack sound/player/pyria-skadi/coms/attack 0
+//attackinfive sound/player/pyria-skadi/letsgo 0
+//coverme sound/player/pyria-skadi/coms/coverme 0
+//defend sound/player/pyria-skadi/coms/defend 0
+//freelance sound/player/pyria-skadi/coms/freelance 2
+//incoming sound/player/pyria-skadi/incoming 0
+//meet sound/player/pyria-skadi/waypoint 0
+//needhelp sound/player/pyria-skadi/needhelp 0
+//seenflag sound/player/pyria-skadi/flagseen 0
+//taunt sound/player/pyria-skadi/player/taunt 1
+//teamshoot sound/player/pyria-skadi/coms/teamshoot 3
+death sound/player/pyria-skadi/player/death 3
+drown sound/player/pyria-skadi/player/drown 0
+falling sound/player/pyria-skadi/player/falling 0
+gasp sound/player/pyria-skadi/player/gasp 0
+jump sound/player/pyria-skadi/player/jump 0
+pain25 sound/player/pyria-skadi/player/pain25 0
+pain50 sound/player/pyria-skadi/player/pain50 0
+pain75 sound/player/pyria-skadi/player/pain75 0
+pain100 sound/player/pyria-skadi/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/specop.zym.sounds (from rev 4923, trunk/data/models/player/specop.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/specop.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/specop.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/specop/coms/attack 0
+//attackinfive sound/player/specop/letsgo 0
+coverme sound/player/specop/coms/coverme 0
+defend sound/player/specop/coms/defend 0
+freelance sound/player/specop/coms/freelance 2
+//incoming sound/player/specop/incoming 0
+//meet sound/player/specop/waypoint 0
+//needhelp sound/player/specop/needhelp 0
+//seenflag sound/player/specop/flagseen 0
+//taunt sound/player/specop/player/taunt 1
+teamshoot sound/player/specop/coms/teamshoot 3
+death sound/player/specop/player/death 3
+drown sound/player/specop/player/drown 0
+falling sound/player/specop/player/falling 0
+gasp sound/player/specop/player/gasp 0
+jump sound/player/specop/player/jump 0
+pain25 sound/player/specop/player/pain25 0
+pain50 sound/player/specop/player/pain50 0
+pain75 sound/player/specop/player/pain75 0
+pain100 sound/player/specop/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/visitant.zym.sounds (from rev 4923, trunk/data/models/player/visitant.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/visitant.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/visitant.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+//attack sound/player/fricka/coms/attack 0
+//attackinfive sound/player/fricka/letsgo 0
+//coverme sound/player/fricka/coms/coverme 0
+//defend sound/player/fricka/coms/defend 0
+//freelance sound/player/fricka/coms/freelance 2
+//incoming sound/player/fricka/incoming 0
+//meet sound/player/fricka/waypoint 0
+//needhelp sound/player/fricka/needhelp 0
+//seenflag sound/player/fricka/flagseen 0
+//taunt sound/player/fricka/player/taunt 1
+//teamshoot sound/player/fricka/coms/teamshoot 3
+death sound/player/fricka/player/death 3
+drown sound/player/fricka/player/drown 0
+falling sound/player/fricka/player/falling 0
+gasp sound/player/fricka/player/gasp 0
+jump sound/player/fricka/player/jump 0
+pain25 sound/player/fricka/player/pain25 0
+pain50 sound/player/fricka/player/pain50 0
+pain75 sound/player/fricka/player/pain75 0
+pain100 sound/player/fricka/player/pain100 0
+//
\ No newline at end of file

Copied: branches/nexuiz-2.0/data/models/player/xolar.zym.sounds (from rev 4923, trunk/data/models/player/xolar.zym.sounds)
===================================================================
--- branches/nexuiz-2.0/data/models/player/xolar.zym.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/models/player/xolar.zym.sounds	2008-10-28 20:50:08 UTC (rev 4930)
@@ -0,0 +1,21 @@
+attack sound/player/soldier/coms/attack 0
+//attackinfive sound/player/soldier/letsgo 0
+coverme sound/player/soldier/coms/coverme 0
+defend sound/player/soldier/coms/defend 0
+freelance sound/player/soldier/coms/freelance 2
+//incoming sound/player/soldier/incoming 0
+//meet sound/player/soldier/waypoint 0
+//needhelp sound/player/soldier/needhelp 0
+//seenflag sound/player/soldier/flagseen 0
+//taunt sound/player/soldier/player/taunt 1
+teamshoot sound/player/soldier/coms/teamshoot 3
+death sound/player/soldier/player/death 3
+drown sound/player/soldier/player/drown 0
+falling sound/player/soldier/player/falling 0
+gasp sound/player/soldier/player/gasp 0
+jump sound/player/soldier/player/jump 0
+pain25 sound/player/soldier/player/pain25 0
+pain50 sound/player/soldier/player/pain50 0
+pain75 sound/player/soldier/player/pain75 0
+pain100 sound/player/soldier/player/pain100 0
+//
\ No newline at end of file

Modified: branches/nexuiz-2.0/data/mutator_reset.cfg
===================================================================
--- branches/nexuiz-2.0/data/mutator_reset.cfg	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/mutator_reset.cfg	2008-10-28 20:50:08 UTC (rev 4930)
@@ -1,14 +1,13 @@
 set g_cloaked 0
 set g_footsteps 0
 set g_grappling_hook 0
-set g_instagib 0
 set g_laserguided_missile 0
 set g_midair 0
 set g_minstagib 0
 set g_nixnex 0
 set g_nixnex_with_laser 0
 set g_norecoil 0
-set g_rocketarena 0
+set g_weaponarena 0
 set g_vampire 0
 set slowmo 1.0
 set sv_gravity 800

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	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/dialog_multiplayer_create_mutators.c	2008-10-28 20:50:08 UTC (rev 4930)
@@ -78,7 +78,8 @@
 		me.TD(me, 1, 1.8, e = makeNexuizCheckBox(1, "g_nixnex_with_laser", "with laser"));
 			setDependent(e, "g_nixnex", 1, 1);
 	me.TR(me);
-		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_rocketarena", string_null, "Rocket launcher arena"));
+		me.TD(me, 1, 2, e = makeNexuizRadioButton(1, "g_weaponarena", "rocketlauncher", "Rocket launcher arena"));
+			e.cvarOffValue = "0";
 
 	me.gotoRC(me, me.rows - 2, 0);
 		s = makeNexuizSlider(80, 400, 8, "sv_gravity");

Modified: branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/radiobutton.c
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/radiobutton.c	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/menu/nexuiz/radiobutton.c	2008-10-28 20:50:08 UTC (rev 4930)
@@ -12,6 +12,7 @@
 
 	ATTRIB(NexuizRadioButton, cvarName, string, string_null)
 	ATTRIB(NexuizRadioButton, cvarValue, string, string_null)
+	ATTRIB(NexuizRadioButton, cvarOffValue, string, string_null)
 	METHOD(NexuizRadioButton, loadCvars, void(entity))
 	METHOD(NexuizRadioButton, saveCvars, void(entity))
 
@@ -92,6 +93,8 @@
 	{
 		if(me.checked)
 			cvar_set(me.cvarName, me.cvarValue);
+		else if(me.cvarOffValue)
+			cvar_set(me.cvarName, me.cvarOffValue);
 	}
 	else
 	{

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_weapons.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -214,7 +214,7 @@
 		return; // just in case
 	if (w == WEP_LASER)
 		return; // just in case
-	if (g_rocketarena)
+	if (g_weaponarena)
 		return;
 	if (g_lms)
 		return;

Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2008-10-28 20:50:08 UTC (rev 4930)
@@ -19,7 +19,7 @@
 float ctf_score_value(string parameter);
 
 float g_dm, g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_lms, g_runematch, g_race;
-float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_laserguided_missile, g_midair, g_minstagib, g_nixnex, g_nixnex_with_laser, g_norecoil, g_rocketarena, g_vampire, g_minstagib_invis_alpha;
+float g_cloaked, g_footsteps, g_jump_grunt, g_grappling_hook, g_laserguided_missile, g_midair, g_minstagib, g_nixnex, g_nixnex_with_laser, g_norecoil, g_vampire, g_minstagib_invis_alpha;
 float g_warmup_limit;
 float g_warmup_allguns;
 float g_warmup_allow_timeout;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_damage.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -832,6 +832,7 @@
 	vector  center;
 	vector  nearest;
 	float   total_damage_to_creatures;
+	entity  next;
 
 	if(RadiusDamage_running)
 	{
@@ -854,6 +855,7 @@
 	targ = findradius (blastorigin, rad);
 	while (targ)
 	{
+		next = targ.chain;
 		if (targ != inflictor)
 			if (ignore != targ)
 			{
@@ -906,7 +908,7 @@
 					}
 				}
 			}
-		targ = targ.chain;
+		targ = next;
 	}
 
 	RadiusDamage_running = 0;

Modified: branches/nexuiz-2.0/data/qcsrc/server/g_world.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/g_world.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -209,7 +209,6 @@
 	world_already_spawned = TRUE;
 
 	remove = remove_safely; // during spawning, watch what you remove!
-	remove_empty_template = spawn(); // make an empty entity
 
 	compressShortVector_init();
 
@@ -324,8 +323,8 @@
 			s = strcat(s, ":no_pickup_items");
 		if(cvar("g_instagib"))
 			s = strcat(s, ":instagib");
-		if(cvar("g_rocketarena"))
-			s = strcat(s, ":rockerarena");
+		if(cvar_string("g_weaponarena") != "0")
+			s = strcat(s, ":", cvar_string("g_weaponarena"), " arena");
 		if(cvar("g_nixnex"))
 			s = strcat(s, ":nixnex");
 		if(cvar("g_vampire"))
@@ -1613,8 +1612,10 @@
 
 	if(inWarmupStage || time <= game_starttime) // NOTE: this is <= to prevent problems in the very tic where the game starts
 	{
-		timelimit = 0; // timelimit is not made for warmup
-		fraglimit = 0; // no fraglimit for now
+		if(timelimit > 0)
+			timelimit = 0; // timelimit is not made for warmup
+		if(fraglimit > 0)
+			fraglimit = 0; // no fraglimit for now
 	}
 
 	if(timelimit > 0)

Modified: branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/keyhunt.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -339,7 +339,7 @@
 			FOR_EACH_KH_KEY(k)
 			{
 				if(k.owner)
-					WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model, "keycarrier-finish", k.owner.waypointsprite_attachedforcarrier.model);
+					WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model1, "keycarrier-finish", k.owner.waypointsprite_attachedforcarrier.model3);
 			}
 		}
 		else
@@ -350,7 +350,7 @@
 			FOR_EACH_KH_KEY(k)
 			{
 				if(k.owner)
-					WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model, "keycarrier-friend", k.owner.waypointsprite_attachedforcarrier.model);
+					WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model1, "keycarrier-friend", k.owner.waypointsprite_attachedforcarrier.model3);
 			}
 		}
 	}

Modified: branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -713,6 +713,8 @@
 float g_pickup_healthlarge_max;
 float g_pickup_healthmega;
 float g_pickup_healthmega_max;
+float g_weaponarena;
+string g_weaponarena_list;
 
 float start_weapons;
 float start_items;
@@ -735,7 +737,8 @@
 void readplayerstartcvars()
 {
 	entity e;
-	float i;
+	float i, j, t;
+	string s;
 
   	// initialize starting values for players
 	start_weapons = 0;
@@ -747,17 +750,54 @@
 	start_health = cvar("g_balance_health_start");
 	start_armorvalue = cvar("g_balance_armor_start");
 
-	if(g_rocketarena)
+	g_weaponarena = 0;
+	s = cvar_string("g_weaponarena");
+	if(s != "0")
 	{
-		start_weapons = WEPBIT_ROCKET_LAUNCHER;
-		weapon_action(WEP_ROCKET_LAUNCHER, WR_PRECACHE);
+		t = tokenize_sane(s);
+		g_weaponarena_list = "";
+		for(i = 0; i < t; ++i)
+		{
+			s = argv(i);
+			for(j = WEP_FIRST; j <= WEP_LAST; ++j)
+			{
+				e = get_weaponinfo(j);
+				if(e.netname == s)
+				{
+					g_weaponarena |= e.weapons;
+					weapon_action(e.weapon, WR_PRECACHE);
+					g_weaponarena_list = strcat(g_weaponarena_list, e.message, " & ");
+					break;
+				}
+			}
+			if(j > WEP_LAST)
+			{
+				print("The weapon mutator list contains an unknown weapon ", s, ". Skipped.\n");
+			}
+		}
+		g_weaponarena_list = strzone(substring(g_weaponarena_list, 0, strlen(g_weaponarena_list) - 3));
+	}
+
+	if(g_weaponarena)
+	{
+		start_weapons = g_weaponarena;
 		start_ammo_rockets = 999;
-		start_items |= IT_UNLIMITED_WEAPON_AMMO;
+		start_ammo_shells = 999;
+		start_ammo_cells = 999;
+		start_ammo_nails = 999;
+		start_items |= IT_UNLIMITED_AMMO;
 	}
 	else if(g_nixnex)
 	{
 		start_weapons = 0;
 		// will be done later
+		for(i = WEP_FIRST; i <= WEP_LAST; ++i)
+		{
+			e = get_weaponinfo(i);
+			if(!(e.weapon))
+				continue;
+			weapon_action(e.weapon, WR_PRECACHE);
+		}
 	}
 	else if(g_minstagib)
 	{
@@ -814,7 +854,7 @@
 		warmup_start_armorvalue = start_armorvalue;
 		warmup_start_weapons = start_weapons;
 
-		if(!g_rocketarena && !g_nixnex && !g_minstagib)
+		if(!g_weaponarena && !g_nixnex && !g_minstagib)
 		{
 			if(cvar("g_use_ammunition"))
 			{
@@ -864,7 +904,6 @@
 	g_nixnex = cvar("g_nixnex");
 	g_nixnex_with_laser = cvar("g_nixnex_with_laser");
 	g_norecoil = cvar("g_norecoil");
-	g_rocketarena = cvar("g_rocketarena");
 	g_vampire = cvar("g_vampire");
 	sv_maxidle = cvar("sv_maxidle");
 	sv_maxidle_spectatorsareidle = cvar("sv_maxidle_spectatorsareidle");
@@ -886,8 +925,9 @@
 	g_pickup_respawntime_long = cvar("g_pickup_respawntime_long");
 	g_pickup_respawntime_powerup = cvar("g_pickup_respawntime_powerup");
 
-	if(g_minstagib) g_nixnex = g_rocketarena = 0;
-	if(g_nixnex) g_rocketarena = 0;
+	if(g_minstagib) g_nixnex = g_weaponarena = 0;
+	if(g_nixnex) g_weaponarena = 0;
+	g_weaponarena = 0;
 
 	g_pickup_shells                    = cvar("g_pickup_shells");
 	g_pickup_shells_max                = cvar("g_pickup_shells_max");
@@ -1293,10 +1333,8 @@
 	objerror_builtin(s);
 }
 
-entity remove_empty_template;
 void remove_unsafely(entity e)
 { 
-	copyentity(remove_empty_template, e); // zero all fields
 	remove_builtin(e);
 }
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/t_items.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/t_items.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/t_items.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -445,7 +445,7 @@
 
 		weaponsInMap |= weaponid;
 
-		if(g_lms || g_rocketarena)
+		if(g_lms || g_weaponarena)
 		{
 			startitem_failed = TRUE;
 			remove(self);
@@ -598,7 +598,7 @@
 	var .float ammofield;
 	string s;
 	entity oldself;
-	float i;
+	float i, j;
 
 	// set the respawntime in advance (so replaced weapons can copy it)
 	if(!self.respawntime)
@@ -612,26 +612,63 @@
 
 	if(self.classname != "droppedweapon" && self.classname != "replacedweapon")
 	{
-		s = cvar_string(strcat("g_weaponreplace_", ftos(wpn)));
+		e = get_weaponinfo(wpn);
+		s = cvar_string(strcat("g_weaponreplace_", e.netname));
+		if(s == "0")
+		{
+			remove(self);
+			startitem_failed = TRUE;
+			return;
+		}
 		t = tokenize_sane(s);
 		if(t >= 2)
 		{
 			self.team = --internalteam;
+			oldself = self;
 			for(i = 1; i < t; ++i)
 			{
-				oldself = self;
-				self = spawn();
-				copyentity(oldself, self);
-				self.classname = "replacedweapon";
-				weapon_defaultspawnfunc(stof(argv(i)));
-				self = oldself;
+				s = argv(i);
+				for(j = WEP_FIRST; j <= WEP_LAST; ++j)
+				{
+					e = get_weaponinfo(j);
+					if(e.netname == s)
+					{
+						self = spawn();
+						copyentity(oldself, self);
+						self.classname = "replacedweapon";
+						weapon_defaultspawnfunc(j);
+						break;
+					}
+				}
+				if(j > WEP_LAST)
+				{
+					print("The weapon replace list for ", oldself.classname, " contains an unknown weapon ", s, ". Skipped.\n");
+				}
 			}
+			self = oldself;
 		}
 		if(t >= 1)
-			wpn = stof(argv(0));
+		{
+			s = argv(0);
+			wpn = 0;
+			for(j = WEP_FIRST; j <= WEP_LAST; ++j)
+			{
+				e = get_weaponinfo(j);
+				if(e.netname == s)
+				{
+					wpn = j;
+					break;
+				}
+			}
+			if(j > WEP_LAST)
+			{
+				print("The weapon replace list for ", self.classname, " contains an unknown weapon ", s, ". Skipped.\n");
+			}
+		}
 		if(wpn == 0)
 		{
 			remove(self);
+			startitem_failed = TRUE;
 			return;
 		}
 	}

Modified: branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -407,8 +407,8 @@
 :normal
 	if(g_minstagib)
 		mutator = "^2Minstagib ^1";
-	else if(g_rocketarena)
-		mutator = "^2Rocketarena ^1";
+	else if(g_weaponarena)
+		mutator = "^2", g_weaponarena_list, " Arena ^1";
 	else if(g_nixnex)
 		mutator = "^2No Items Nexuiz ^1";
 

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	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/tturrets/system/system_damage.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -125,11 +125,9 @@
     vector org2;
     vector t_dir;
 
-    // self.tur_active = 0;
+    self.deadflag           = DEAD_DEAD;
+    self.tur_head.deadflag  = self.deadflag;
 
-    self.deadflag = DEAD_DEAD;
-    self.tur_head.deadflag = self.deadflag;
-
     sound (self, CHAN_PLAYER, "weapons/rocket_impact.wav", 1, ATTN_NORM);
     org2 = self.origin + '0 0 40';
 
@@ -141,23 +139,23 @@
     WriteCoord (MSG_BROADCAST, org2_z);
 
 // Unsolidify and hide real parts
-    self.solid = SOLID_NOT;
-    self.tur_head.solid   = self.solid;
+    self.solid              = SOLID_NOT;
+    self.tur_head.solid     = self.solid;
 
-    self.alpha = -1;
-    self.tur_head.alpha = -1;
+    self.alpha             = -1;
+    self.tur_head.alpha    = self.alpha;
 
-    self.takedamage = DAMAGE_NO;
+    self.event_damage           = SUB_Null;
+    self.tur_head.event_damage  = SUB_Null;
+    self.takedamage             = DAMAGE_NO;
     self.tur_head.takedamage    = self.takedamage;
 
-    self.effects = 0;
+    self.effects            = 0;
     self.tur_head.effects   = self.effects;
-
     self.health             = 0;
 
 
 // Trow fake parts arround
-
     // base
     makevectors(self.angles);
     if (random() > 0.5)
@@ -205,10 +203,9 @@
 
 void turret_stdproc_respawn()
 {
-    // self.tur_active = 1;
-
     // Make sure all parts belong to the same team since
     // this function doubles as "teamchange" function.
+
     self.tur_head.team = self.team;
 	if (self.team == COLOR_TEAM1)
 		self.colormod = '1.4 0.8 0.8';
@@ -217,29 +214,31 @@
 	else
 		self.colormod = '0 0 0'; // reset
 
-    self.deadflag = DEAD_NO;
-    self.tur_head.deadflag = self.deadflag;
-    self.effects = self.tur_head.effects = 0;
+    self.deadflag           = DEAD_NO;
+    self.tur_head.deadflag  = self.deadflag;
+    self.effects            = 0;
+    self.tur_head.effects   = self.effects;
 
-    self.solid = SOLID_BBOX;
-    self.tur_head.solid   = self.solid;
+    self.solid              = SOLID_BBOX;
+    self.tur_head.solid     = self.solid;
 
     self.alpha = 1;
     self.tur_head.alpha     = self.alpha;
 
-    self.takedamage = DAMAGE_YES;
+    self.takedamage = DAMAGE_AIM;
     self.tur_head.takedamage    = self.takedamage;
 
-    self.avelocity = '0 0 0';
-    self.tur_head.avelocity    = self.avelocity;
-    self.tur_head.angles = self.idle_aim;
+    self.event_damage           = turret_stdproc_damage;
+    self.tur_head.event_damage  = self.event_damage;
 
-    self.health             = self.tur_health;
+    self.avelocity              = '0 0 0';
+    self.tur_head.avelocity     = self.avelocity;
+    self.tur_head.angles        = self.idle_aim;
+    self.health                 = self.tur_health;
+    self.enemy                  = world;
+    self.volly_counter          = self.shot_volly;
+    self.ammo                   = self.ammo_max;
 
-    self.enemy          = world;
-    self.volly_counter  = self.shot_volly;
-    self.ammo           = self.ammo_max;
-
     self.nextthink  = time + self.ticrate;
     self.think      = turret_think;
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc	2008-10-28 19:54:33 UTC (rev 4929)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_seeker.qc	2008-10-28 20:50:08 UTC (rev 4930)
@@ -222,11 +222,11 @@
 {
     entity oldself,oldenemy;
     self.cnt = self.cnt - 1;
-    if ((self.owner.ammo_rockets < cvar("g_balance_seeker_missile_ammo")) || (self.cnt <= -1))
+
+    if ((self.owner.ammo_rockets < cvar("g_balance_seeker_missile_ammo")) || (self.cnt <= -1) || (self.owner.deadflag != DEAD_NO))
     {
         remove(self);
         return;
-
     }
 
     self.nextthink = time + cvar("g_balance_seeker_missile_delay");
@@ -302,7 +302,7 @@
     self.event_damage = SUB_Null;
     sound (self, CHAN_PROJECTILE, "weapons/laserimpact.wav", 1, ATTN_NORM);
 
-    if (other.takedamage && other.deadflag == DEAD_NO)
+    if (other.takedamage != DAMAGE_AIM && other.deadflag == DEAD_NO)
     {
         entity e;
         e           = spawn();

Modified: branches/nexuiz-2.0/data/sound/announcer/male/airshot.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/announcer/male/electrobitch.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/announcer/male/headshot.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/announcer/male/impressive.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/announcer/male/yoda.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/ctf/bluecapture.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/ctf/redcapture.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/ctf/respawn.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/ctf/return.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/ctf/take.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/domination/claim.wav
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/kh/alarm.wav (from rev 4923, trunk/data/sound/kh/alarm.wav)
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/kh/capture.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/kh/collect.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/kh/destroy.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/kh/drop.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/armor1.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/armor25.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/footstep01.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/footstep02.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/footstep03.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/footstep04.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/footstep05.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/footstep06.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/gib.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/hit.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/hitground1.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/hitground2.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/hitground3.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/hitground4.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/itempickup.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/jumppad.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/mediumhealth.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalfootstep01.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalfootstep02.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalfootstep03.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalfootstep04.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalfootstep05.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalfootstep06.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalhitground1.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalhitground2.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalhitground3.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/metalhitground4.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/minihealth.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/powerup.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/misc/powerup_shield.ogg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/player/carni-lycan (from rev 4923, trunk/data/sound/player/carni-lycan)

Copied: branches/nexuiz-2.0/data/sound/player/fricka (from rev 4923, trunk/data/sound/player/fricka)

Copied: branches/nexuiz-2.0/data/sound/player/headhunter (from rev 4923, trunk/data/sound/player/headhunter)

Copied: branches/nexuiz-2.0/data/sound/player/insurrectionist (from rev 4923, trunk/data/sound/player/insurrectionist)

Copied: branches/nexuiz-2.0/data/sound/player/lava.wav (from rev 4923, trunk/data/sound/player/lava.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/player/marine (from rev 4923, trunk/data/sound/player/marine)

Copied: branches/nexuiz-2.0/data/sound/player/pyria-skadi (from rev 4923, trunk/data/sound/player/pyria-skadi)

Copied: branches/nexuiz-2.0/data/sound/player/reptilian (from rev 4923, trunk/data/sound/player/reptilian)

Modified: branches/nexuiz-2.0/data/sound/player/slime.ogg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/player/soldier (from rev 4923, trunk/data/sound/player/soldier)

Copied: branches/nexuiz-2.0/data/sound/player/specop (from rev 4923, trunk/data/sound/player/specop)

Modified: branches/nexuiz-2.0/data/sound/player/torus/attack.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/coverme.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/death.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/drown.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/fall.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/gasp.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/incoming.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/jump.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/letsgo.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/needhelp.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/pain100.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/pain25.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/pain50.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/pain75.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/taunt.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/teamshoot.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/player/torus/waypoint.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/porto/create.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/crylink_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/electro_bounce.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/electro_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/electro_fire2.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/electro_fly.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/electro_impact.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_bounce1.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_bounce2.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_bounce3.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_bounce4.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_bounce5.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_bounce6.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/grenade_impact.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/hagar_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/hagexp1.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/hagexp2.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/hagexp3.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/hook_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/lasergun_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/laserimpact.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/minstanexfire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/nexfire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/neximpact.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/rocket_det.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/rocket_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/rocket_fly.wav
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/rocket_impact.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/shotgun_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/strength_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/uzi_fire.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/weapon_switch.ogg
===================================================================
(Binary files differ)

Modified: branches/nexuiz-2.0/data/sound/weapons/weaponpickup.ogg
===================================================================
(Binary files differ)




More information about the nexuiz-commits mailing list