r4024 - in branches/nexuiz-2.0: . data data/gfx data/gfx/menu data/models/player data/models/turrets data/qcsrc/client data/qcsrc/common data/qcsrc/menu data/qcsrc/server data/sound data/sound/misc data/sound/player

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Tue Aug 5 02:56:01 EDT 2008


Author: div0
Date: 2008-08-05 02:56:01 -0400 (Tue, 05 Aug 2008)
New Revision: 4024

Added:
   branches/nexuiz-2.0/data/gfx/menu/wickedblack/
   branches/nexuiz-2.0/data/gfx/menu/wickedblue/
   branches/nexuiz-2.0/data/gfx/menu/wickedgreen/
   branches/nexuiz-2.0/data/gfx/menu/wickedred/
   branches/nexuiz-2.0/data/gfx/menu/wickedwhite/
   branches/nexuiz-2.0/data/gfx/menu/wickedyellow/
   branches/nexuiz-2.0/data/models/player/carni.tga
   branches/nexuiz-2.0/data/models/player/carniarmor.tga
   branches/nexuiz-2.0/data/models/player/fricka.tga
   branches/nexuiz-2.0/data/models/player/grunt.tga
   branches/nexuiz-2.0/data/models/player/headhunter.tga
   branches/nexuiz-2.0/data/models/player/heroine.tga
   branches/nexuiz-2.0/data/models/player/insurrectionist.tga
   branches/nexuiz-2.0/data/models/player/lurk.tga
   branches/nexuiz-2.0/data/models/player/lycanthrope.tga
   branches/nexuiz-2.0/data/models/player/marine.tga
   branches/nexuiz-2.0/data/models/player/mulder.tga
   branches/nexuiz-2.0/data/models/player/nexus.tga
   branches/nexuiz-2.0/data/models/player/pyria.tga
   branches/nexuiz-2.0/data/models/player/quark.tga
   branches/nexuiz-2.0/data/models/player/reptile.tga
   branches/nexuiz-2.0/data/models/player/shock.tga
   branches/nexuiz-2.0/data/models/player/skadi.tga
   branches/nexuiz-2.0/data/models/player/specop.tga
   branches/nexuiz-2.0/data/models/player/xolar.tga
   branches/nexuiz-2.0/data/models/turrets/radiant/
   branches/nexuiz-2.0/data/sound/debug/
   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/player/default.sounds
Removed:
   branches/nexuiz-2.0/data/models/player/carni.jpg
   branches/nexuiz-2.0/data/models/player/carniarmor.jpg
   branches/nexuiz-2.0/data/models/player/fricka.jpg
   branches/nexuiz-2.0/data/models/player/grunt.jpg
   branches/nexuiz-2.0/data/models/player/headhunter.jpg
   branches/nexuiz-2.0/data/models/player/heroine.jpg
   branches/nexuiz-2.0/data/models/player/insurrectionist.jpg
   branches/nexuiz-2.0/data/models/player/lurk.jpg
   branches/nexuiz-2.0/data/models/player/lycanthrope.jpg
   branches/nexuiz-2.0/data/models/player/marine.jpg
   branches/nexuiz-2.0/data/models/player/mulder.jpg
   branches/nexuiz-2.0/data/models/player/nexus.jpg
   branches/nexuiz-2.0/data/models/player/pyria.jpg
   branches/nexuiz-2.0/data/models/player/quark.jpg
   branches/nexuiz-2.0/data/models/player/reptile.jpg
   branches/nexuiz-2.0/data/models/player/shock.jpg
   branches/nexuiz-2.0/data/models/player/skadi.jpg
   branches/nexuiz-2.0/data/models/player/specop.jpg
   branches/nexuiz-2.0/data/models/player/xolar.jpg
   branches/nexuiz-2.0/data/sound/player/default.sounds.example
Modified:
   branches/nexuiz-2.0/.patchsets
   branches/nexuiz-2.0/data/Makefile
   branches/nexuiz-2.0/data/defaultNexuiz.cfg
   branches/nexuiz-2.0/data/gfx/colormap_palette.base
   branches/nexuiz-2.0/data/gfx/colormap_palette.lmp
   branches/nexuiz-2.0/data/qcsrc/client/sbar.qc
   branches/nexuiz-2.0/data/qcsrc/common/util.qc
   branches/nexuiz-2.0/data/qcsrc/menu/menu.qc
   branches/nexuiz-2.0/data/qcsrc/menu/skin.qh
   branches/nexuiz-2.0/data/qcsrc/server/cl_client.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/defs.qh
   branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
   branches/nexuiz-2.0/data/qcsrc/server/sv_main.qc
Log:
r4006 | tzork | 2008-08-02 20:57:57 +0200 (Sat, 02 Aug 2008) | 1 line
editor models for turrets
r4007 | div0 | 2008-08-03 15:31:56 +0200 (Sun, 03 Aug 2008) | 3 lines
add -Ono-c -Ono-cs to work around a fteqcc bug that hides all array elements from prvm_edict
Savegames are STILL broken, due to the same fteqcc bug.
r4008 | div0 | 2008-08-03 15:53:23 +0200 (Sun, 03 Aug 2008) | 2 lines
MrBougo, try this commit (should fix impulse 13/14 + kill)
r4009 | div0 | 2008-08-03 17:34:55 +0200 (Sun, 03 Aug 2008) | 2 lines
add missing kdr column
r4010 | div0 | 2008-08-04 09:27:38 +0200 (Mon, 04 Aug 2008) | 2 lines
new stupidly recorded sounds for players
r4011 | div0 | 2008-08-04 09:35:59 +0200 (Mon, 04 Aug 2008) | 2 lines
exclude pain sounds for laserjumps as long as you aren't REALLY low on health and would die of the next one
r4012 | div0 | 2008-08-04 09:37:03 +0200 (Mon, 04 Aug 2008) | 2 lines
actually, better play the pain sound if the next TWO laser jumps would kill you
r4013 | div0 | 2008-08-04 09:37:55 +0200 (Mon, 04 Aug 2008) | 2 lines
louder
r4014 | div0 | 2008-08-04 09:56:53 +0200 (Mon, 04 Aug 2008) | 2 lines
play every player sound on CHAN_AUTO except say messages
r4015 | div0 | 2008-08-04 11:20:15 +0200 (Mon, 04 Aug 2008) | 2 lines
add cvar g_jump_grunt (default 0)
r4016 | m0rfar | 2008-08-04 11:50:52 +0200 (Mon, 04 Aug 2008) | 1 line
Wicked menuskins. wickedblack as new default.
r4017 | m0rfar | 2008-08-04 11:58:58 +0200 (Mon, 04 Aug 2008) | 1 line
new playermodel previews by sev
r4018 | div0 | 2008-08-04 12:16:51 +0200 (Mon, 04 Aug 2008) | 2 lines
use the default string of the menu_skin cvar in preference to the hardcoded "default" if the skin is not found
r4019 | div0 | 2008-08-04 13:27:47 +0200 (Mon, 04 Aug 2008) | 2 lines
oh, adding missing cvheck
r4020 | m0rfar | 2008-08-04 14:39:43 +0200 (Mon, 04 Aug 2008) | 2 lines
buttongray_d .tga -> buttongray_d.tga
Typo!
r4021 | div0 | 2008-08-04 16:19:18 +0200 (Mon, 04 Aug 2008) | 2 lines
clearer colors by sev
r4022 | div0 | 2008-08-04 17:54:52 +0200 (Mon, 04 Aug 2008) | 2 lines
un-xxd colormap_palette.lmp
r4023 | div0 | 2008-08-05 08:16:54 +0200 (Tue, 05 Aug 2008) | 2 lines
add to the playersound system a globalsound system; make the footsteps and fall sounds global ones; add support for metalsteps and nosteps (although the sound files currently are identical)

Modified: branches/nexuiz-2.0/.patchsets
===================================================================
--- branches/nexuiz-2.0/.patchsets	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/.patchsets	2008-08-05 06:56:01 UTC (rev 4024)
@@ -1,2 +1,2 @@
 master = svn://svn.icculus.org/nexuiz/trunk
-revisions_applied = 1-4004
+revisions_applied = 1-4023

Modified: branches/nexuiz-2.0/data/Makefile
===================================================================
--- branches/nexuiz-2.0/data/Makefile	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/Makefile	2008-08-05 06:56:01 UTC (rev 4024)
@@ -3,7 +3,7 @@
 PK3NAME ?= `date +../data%Y%m%d.pk3`
 ZIP ?= 7za a -tzip -mx=9
 
-FTEQCCFLAGS ?= -Wall -Wno-mundane -O3 -flo
+FTEQCCFLAGS ?= -Wall -Wno-mundane -O3 -Ono-c -Ono-cs -flo
 FTEQCCFLAGS_PROGS ?= 
 FTEQCCFLAGS_MENU ?= 
 

Modified: branches/nexuiz-2.0/data/defaultNexuiz.cfg
===================================================================
--- branches/nexuiz-2.0/data/defaultNexuiz.cfg	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/defaultNexuiz.cfg	2008-08-05 06:56:01 UTC (rev 4024)
@@ -942,7 +942,7 @@
 alias +userbind "_userbind_call userbind${1}_press"
 alias -userbind "_userbind_call userbind${1}_release"
 
-seta menu_skin ""
+seta menu_skin "wickedblack"
 set menu_slowmo 1
 
 // loadfont console     gfx/vera-mono
@@ -1063,3 +1063,5 @@
 prvm_leaktest_ignore_classnames "ctf_team dom_team tdm_team"
 
 sv_allowdownloads_inarchive 1 // for csprogs.dat
+
+set g_jump_grunt 0 // Do you make a grunting noise every time you jump? Is it the same grunting noise every time?

Modified: branches/nexuiz-2.0/data/gfx/colormap_palette.base
===================================================================
--- branches/nexuiz-2.0/data/gfx/colormap_palette.base	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/gfx/colormap_palette.base	2008-08-05 06:56:01 UTC (rev 4024)
@@ -1,19 +1,19 @@
-bbbbbb
-73571f
-00BBBB
-00FF00
-FF0000
-0080ff
-cf8f2b
-b7876b
-c38baa
-FF00FF
-a3877b
-4f6357
-FFFF00
-0000FF
-ff8000
-e30074
+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", $_'                     

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

Copied: branches/nexuiz-2.0/data/gfx/menu/wickedblack (from rev 4023, trunk/data/gfx/menu/wickedblack)

Copied: branches/nexuiz-2.0/data/gfx/menu/wickedblue (from rev 4023, trunk/data/gfx/menu/wickedblue)

Copied: branches/nexuiz-2.0/data/gfx/menu/wickedgreen (from rev 4023, trunk/data/gfx/menu/wickedgreen)

Copied: branches/nexuiz-2.0/data/gfx/menu/wickedred (from rev 4023, trunk/data/gfx/menu/wickedred)

Copied: branches/nexuiz-2.0/data/gfx/menu/wickedwhite (from rev 4023, trunk/data/gfx/menu/wickedwhite)

Copied: branches/nexuiz-2.0/data/gfx/menu/wickedyellow (from rev 4023, trunk/data/gfx/menu/wickedyellow)

Deleted: branches/nexuiz-2.0/data/models/player/carni.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/carni.tga (from rev 4023, trunk/data/models/player/carni.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/carniarmor.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/carniarmor.tga (from rev 4023, trunk/data/models/player/carniarmor.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/fricka.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/fricka.tga (from rev 4023, trunk/data/models/player/fricka.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/grunt.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/grunt.tga (from rev 4023, trunk/data/models/player/grunt.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/headhunter.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/headhunter.tga (from rev 4023, trunk/data/models/player/headhunter.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/heroine.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/heroine.tga (from rev 4023, trunk/data/models/player/heroine.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/insurrectionist.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/insurrectionist.tga (from rev 4023, trunk/data/models/player/insurrectionist.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/lurk.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/lurk.tga (from rev 4023, trunk/data/models/player/lurk.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/lycanthrope.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/lycanthrope.tga (from rev 4023, trunk/data/models/player/lycanthrope.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/marine.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/marine.tga (from rev 4023, trunk/data/models/player/marine.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/mulder.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/mulder.tga (from rev 4023, trunk/data/models/player/mulder.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/nexus.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/nexus.tga (from rev 4023, trunk/data/models/player/nexus.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/pyria.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/pyria.tga (from rev 4023, trunk/data/models/player/pyria.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/quark.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/quark.tga (from rev 4023, trunk/data/models/player/quark.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/reptile.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/reptile.tga (from rev 4023, trunk/data/models/player/reptile.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/shock.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/shock.tga (from rev 4023, trunk/data/models/player/shock.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/skadi.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/skadi.tga (from rev 4023, trunk/data/models/player/skadi.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/specop.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/specop.tga (from rev 4023, trunk/data/models/player/specop.tga)
===================================================================
(Binary files differ)

Deleted: branches/nexuiz-2.0/data/models/player/xolar.jpg
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/player/xolar.tga (from rev 4023, trunk/data/models/player/xolar.tga)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/models/turrets/radiant (from rev 4023, trunk/data/models/turrets/radiant)

Modified: branches/nexuiz-2.0/data/qcsrc/client/sbar.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/client/sbar.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/client/sbar.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -395,6 +395,8 @@
 			sbar_field[sbar_num_fields] = SP_PING;
 		} else if(str == "pl") {
 			sbar_field[sbar_num_fields] = SP_PL;
+		} else if(str == "kd" || str == "kdr" || str == "kdratio" || str == "k/d") {
+			sbar_field[sbar_num_fields] = SP_KDRATIO;
 		} else if(str == "name" || str == "nick") {
 			sbar_field[sbar_num_fields] = SP_NAME;
 			sbar_size[sbar_num_fields] = MIN_NAMELEN; // minimum size? any use?

Modified: branches/nexuiz-2.0/data/qcsrc/common/util.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/common/util.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/common/util.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -230,21 +230,21 @@
 {
 	switch(c)
 	{
-		case  0: return '0.733 0.733 0.733';
-		case  1: return '0.451 0.341 0.122';
-		case  2: return '0.000 0.733 0.733';
-		case  3: return '0.000 1.000 0.000';
-		case  4: return '1.000 0.000 0.000';
-		case  5: return '0.000 0.502 1.000';
-		case  6: return '0.812 0.561 0.169';
-		case  7: return '0.718 0.529 0.420';
-		case  8: return '0.765 0.545 0.667';
-		case  9: return '1.000 0.000 1.000';
-		case 10: return '0.639 0.529 0.482';
-		case 11: return '0.310 0.388 0.341';
-		case 12: return '1.000 1.000 0.000';
-		case 13: return '0.000 0.000 1.000';
-		case 14: return '1.000 0.502 0.000';
+		case  0: return '0.800000 0.800000 0.800000';
+		case  1: return '0.600000 0.400000 0.000000';
+		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  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';
+		case  9: return '1.000000 0.000000 1.000000';
+		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 14: return '1.000000 0.501961 0.000000';
 		case 15:
 			if(isPants)
 				return

Modified: branches/nexuiz-2.0/data/qcsrc/menu/menu.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/menu.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/menu/menu.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -70,7 +70,13 @@
 		fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
 	}
 	if(fh < 0)
+	if(cvar_defstring("menu_skin") != "")
 	{
+		draw_currentSkin = strcat("gfx/menu/", cvar_defstring("menu_skin"));
+		fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
+	}
+	if(fh < 0)
+	{
 		draw_currentSkin = "gfx/menu/default";
 		fh = fopen(strcat(draw_currentSkin, "/skinvalues.txt"), FILE_READ);
 	}

Modified: branches/nexuiz-2.0/data/qcsrc/menu/skin.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/menu/skin.qh	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/menu/skin.qh	2008-08-05 06:56:01 UTC (rev 4024)
@@ -13,7 +13,7 @@
 #define SKINBEGIN void Skin_ApplySetting(string key, string value) { switch(key) {
 #define SKINVECTOR(name,def) case #name: SKIN##name = stov(value); break
 #define SKINFLOAT(name,def) case #name: SKIN##name = stof(value); break
-#define SKINSTRING(name,def)
+#define SKINSTRING(name,def) case #name: break
 #define SKINEND case "": break; case "//": break; default: print("Invalid key in skin file: ", key, "\n"); } }
 #include "skin-customizables.inc"
 #undef SKINEND

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -800,6 +800,13 @@
 
 	// in any case:
 	Damage(self, self, self, 100000, DEATH_KILL, self.origin, '0 0 0');
+
+	if(self.killindicator)
+	{
+		dprint("Cleaned up after a leaked kill indicator.\n");
+		remove(self.killindicator);
+		self.killindicator = world;
+	}
 }
 void KillIndicator_Think()
 {
@@ -1241,6 +1248,8 @@
 	if(self.netname_previous)
 		strunzone(self.netname_previous);
 
+	ClearPlayerSounds();
+
 	// free cvars
 	GetCvars(-1);
 	self.playerid = 0;

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_physics.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -80,6 +80,9 @@
 		player_setanim(self.anim_duckjump, FALSE, TRUE, TRUE);
 	else
 		player_setanim(self.anim_jump, FALSE, TRUE, TRUE);
+
+	if(g_jump_grunt)
+		PlayerSound(playersound_jump, CHAN_AUTO, 0);
 }
 
 void CheckWaterJump()
@@ -230,6 +233,21 @@
 		self.angles_z = 0;
 	}
 
+	if(self.flags & FL_ONGROUND)
+		if not(self.lastflags & FL_ONGROUND)
+		{
+			self.nextstep = time + 0.3 + random() * 0.1;
+			trace_dphitq3surfaceflags = 0;
+			tracebox(self.origin, self.mins, self.maxs, self.origin - '0 0 1', MOVE_NOMONSTERS, self);
+			if not(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOSTEPS)
+			{
+				if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_METALSTEPS)
+					GlobalSound(globalsound_metalfall, CHAN_AUTO, 0);
+				else
+					GlobalSound(globalsound_fall, CHAN_AUTO, 0);
+			}
+		}
+
 	if(self.classname == "player")
 	{
 		if(sv_doublejump)

Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_player.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -354,6 +354,7 @@
 void PlayerDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
 {
 	local float take, save, waves, sdelay;
+	float painsequence;
 
 	damage = damage * bound(1.0, self.cvar_cl_handicap, 100.0);
 	if(sv_gentle > 0) {
@@ -362,23 +363,6 @@
 		pointparticles(particleeffectnum("blood"), hitloc, force, bound(0, damage, 200));
 	}
 
-	if (self.pain_finished < time)		//Don't switch pain sequences like crazy
-	{
-		if(sv_gentle < 1) {		
-			if (random() > 0.5)
-				player_setanim(self.anim_pain1, FALSE, TRUE, TRUE);
-			else
-				player_setanim(self.anim_pain2, FALSE, TRUE, TRUE);
-		}
-		self.pain_finished = time + 0.5;	//Supajoe
-
-		// throw off bot aim temporarily
-		local float shake;
-		shake = damage * 5 / (bound(0,skill,100) + 1);
-		self.v_angle_x = self.v_angle_x + (random() * 2 - 1) * shake;
-		self.v_angle_y = self.v_angle_y + (random() * 2 - 1) * shake;
-	}
-
 	if(g_arena)
 	if(numspawned < 2)
 		return;
@@ -399,7 +383,7 @@
 	else if (take > 30)
 		sound (self, CHAN_IMPACT, "misc/bodyimpact2.wav", 1, ATTN_NORM);
 	else if (take > 10)
-		sound (self, CHAN_IMPACT, "misc/bodyimpact1.wav", 1, ATTN_NORM);
+		sound (self, CHAN_IMPACT, "misc/bodyimpact1.wav", 1, ATTN_NORM); // FIXME possibly remove them?
 
 	if (take > 50)
 		TossGib (world, "models/gibs/chunk.mdl", hitloc, force * -0.1,1);
@@ -414,6 +398,37 @@
 			self.health = self.health - take;
 			// pause regeneration for 5 seconds
 			self.pauseregen_finished = max(self.pauseregen_finished, time + cvar("g_balance_pause_health_regen"));
+
+			if (time > self.pain_finished)		//Don't switch pain sequences like crazy
+			{
+				self.pain_finished = time + 0.5;	//Supajoe
+
+				if(sv_gentle < 1) {		
+					if (random() > 0.5)
+						player_setanim(self.anim_pain1, FALSE, TRUE, TRUE);
+					else
+						player_setanim(self.anim_pain2, FALSE, TRUE, TRUE);
+
+					if(deathtype != IT_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
+					{
+						if(self.health > 75) // TODO make a "gentle" version?
+							PlayerSound(playersound_pain100, CHAN_AUTO, 0);
+						else if(self.health > 50)
+							PlayerSound(playersound_pain75, CHAN_AUTO, 0);
+						else if(self.health > 25)
+							PlayerSound(playersound_pain50, CHAN_AUTO, 0);
+						else if(self.health > 1)
+							PlayerSound(playersound_pain25, CHAN_AUTO, 0);
+					}
+				}
+
+				// throw off bot aim temporarily
+				local float shake;
+				shake = damage * 5 / (bound(0,skill,100) + 1);
+				self.v_angle_x = self.v_angle_x + (random() * 2 - 1) * shake;
+				self.v_angle_y = self.v_angle_y + (random() * 2 - 1) * shake;
+			}
 		}
 		else
 			self.max_armorvalue += (save + take);
@@ -446,6 +461,14 @@
 		float defer_ClientKill_Now_TeamChange;
 		defer_ClientKill_Now_TeamChange = FALSE;
 
+		if(sv_gentle < 1) // TODO make a "gentle" version?
+		{
+			if(deathtype == DEATH_DROWN)
+				PlayerSound(playersound_drown, CHAN_AUTO, 0);
+			else
+				PlayerSound(playersound_death, CHAN_AUTO, 0);
+		}
+
 		// get rid of kill indicator
 		if(self.killindicator)
 		{
@@ -729,20 +752,6 @@
 	WriteCoord(MSG_ONE, o_z);
 }
 
-#if 0
-.string playersound_attack;
-.string playersound_attackinfive;
-.string playersound_coverme;
-.string playersound_defend;
-.string playersound_freelance;
-.string playersound_incoming;
-.string playersound_meet;
-.string playersound_needhelp;
-.string playersound_seenflag;
-.string playersound_taunt;
-.string playersound_teamshoot;
-.float modelindex_for_playersound;
-
 float GetVoiceMessageTeamsayType(string type)
 {
 	if(type == "taunt")
@@ -754,9 +763,11 @@
 
 string allvoicesamples = "attack attackinfive coverme defend freelance incoming meet needhelp seenflag taunt teamshoot";
 float GetPlayerSoundSampleField_notFound;
+float GetPlayerSoundSampleField_fixed;
 .string GetVoiceMessageSampleField(string type)
 {
 	GetPlayerSoundSampleField_notFound = 0;
+	GetPlayerSoundSampleField_fixed = 0;
 	switch(type)
 	{
 		case "attack":       return playersound_attack;
@@ -778,17 +789,42 @@
 .string GetPlayerSoundSampleField(string type)
 {
 	GetPlayerSoundSampleField_notFound = 0;
+	GetPlayerSoundSampleField_fixed = 0;
 	switch(type)
 	{
-		case "attack":       return playersound_attack;
-		default:             return GetVoiceMessageSampleField(type);
+		case "death":        return playersound_death;
+		case "drown":        return playersound_drown;
+		case "falling":      return playersound_falling;
+		case "gasp":         return playersound_gasp;
+		case "jump":         return playersound_jump;
+		case "pain25":       return playersound_pain25;
+		case "pain50":       return playersound_pain50;
+		case "pain75":       return playersound_pain75;
+		case "pain100":      return playersound_pain100;
 	}
+	GetPlayerSoundSampleField_notFound = 1;
+	return playersound_taunt;
 }
 
+void PrecacheGlobalSound(string samplestring)
+{
+	float n, i;
+	tokenize(samplestring);
+	n = stof(argv(1));
+	if(n > 0)
+	{
+		for(i = 1; i <= n; ++i)
+			precache_sound(strcat(argv(0), ftos(i), ".wav"));
+	}
+	else
+	{
+		precache_sound(strcat(argv(0), ".wav"));
+	}
+}
+
 void PrecachePlayerSounds(string f)
 {
 	float fh;
-	float i, n;
 	string s;
 	fh = fopen(f, FILE_READ);
 	if(fh < 0)
@@ -800,15 +836,37 @@
 			dprint("Invalid sound info line: ", s, "\n");
 			continue;
 		}
-		n = stof(argv(2));
-		for(i = 1; i <= n; ++i)
-			precache_sound(strcat(argv(1), ftos(i), ".wav"));
+		PrecacheGlobalSound(strcat(argv(1), " ", argv(2)));
 	}
 	fclose(fh);
 }
 
-void LoadPlayerSounds(string f)
+void ClearPlayerSounds()
 {
+	if(self.playersound_attack      ) { strunzone(self.playersound_attack      ); self.playersound_attack = string_null; }
+	if(self.playersound_attackinfive) { strunzone(self.playersound_attackinfive); self.playersound_attackinfive = string_null; }
+	if(self.playersound_coverme     ) { strunzone(self.playersound_coverme     ); self.playersound_coverme = string_null; }
+	if(self.playersound_defend      ) { strunzone(self.playersound_defend      ); self.playersound_defend = string_null; }
+	if(self.playersound_freelance   ) { strunzone(self.playersound_freelance   ); self.playersound_freelance = string_null; }
+	if(self.playersound_incoming    ) { strunzone(self.playersound_incoming    ); self.playersound_incoming = string_null; }
+	if(self.playersound_meet        ) { strunzone(self.playersound_meet        ); self.playersound_meet = string_null; }
+	if(self.playersound_needhelp    ) { strunzone(self.playersound_needhelp    ); self.playersound_needhelp = string_null; }
+	if(self.playersound_seenflag    ) { strunzone(self.playersound_seenflag    ); self.playersound_seenflag = string_null; }
+	if(self.playersound_taunt       ) { strunzone(self.playersound_taunt       ); self.playersound_taunt = string_null; }
+	if(self.playersound_teamshoot   ) { strunzone(self.playersound_teamshoot   ); self.playersound_teamshoot = string_null; }
+	if(self.playersound_death       ) { strunzone(self.playersound_death       ); self.playersound_death = string_null; }
+	if(self.playersound_drown       ) { strunzone(self.playersound_drown       ); self.playersound_drown = string_null; }
+	if(self.playersound_falling     ) { strunzone(self.playersound_falling     ); self.playersound_falling = string_null; }
+	if(self.playersound_gasp        ) { strunzone(self.playersound_gasp        ); self.playersound_gasp = string_null; }
+	if(self.playersound_jump        ) { strunzone(self.playersound_jump        ); self.playersound_jump = string_null; }
+	if(self.playersound_pain25      ) { strunzone(self.playersound_pain25      ); self.playersound_pain25 = string_null; }
+	if(self.playersound_pain50      ) { strunzone(self.playersound_pain50      ); self.playersound_pain50 = string_null; }
+	if(self.playersound_pain75      ) { strunzone(self.playersound_pain75      ); self.playersound_pain75 = string_null; }
+	if(self.playersound_pain100     ) { strunzone(self.playersound_pain100     ); self.playersound_pain100 = string_null; }
+}
+
+void LoadPlayerSounds(string f, float first)
+{
 	float fh;
 	string s;
 	var .string field;
@@ -821,7 +879,12 @@
 			continue;
 		field = GetPlayerSoundSampleField(argv(0));
 		if(GetPlayerSoundSampleField_notFound)
+			field = GetVoiceMessageSampleField(argv(0));
+		if(GetPlayerSoundSampleField_notFound)
 			continue;
+		if not(GetPlayerSoundSampleField_fixed)
+			if not(first)
+				continue;
 		if(self.field)
 			strunzone(self.field);
 		self.field = strzone(strcat(argv(1), " ", argv(2)));
@@ -829,61 +892,75 @@
 	fclose(fh);
 }
 
+.float modelindex_for_playersound;
 void UpdatePlayerSounds()
 {
 	if(self.modelindex == self.modelindex_for_playersound)
 		return;
 	self.modelindex_for_playersound = self.modelindex;
-	LoadPlayerSounds("sound/player/default.sounds");
-	LoadPlayerSounds(strcat(self.model, ".sounds"));
+	ClearPlayerSounds();
+	LoadPlayerSounds("sound/player/default.sounds", 1);
+	LoadPlayerSounds(strcat(self.model, ".sounds"), 0);
 }
 
-void VoiceMessage(string type)
+void GlobalSound(string sample, float chan, float teamsay)
 {
-	// TODO precache voice messages?
-	var string sample;
-	var float teamsay;
-	sample = self.(GetPlayerSoundSampleField(type));
+	float n;
 
-	if(GetPlayerSoundSampleField_notFound)
-	{
-		sprint(self, strcat("Invalid voice. Use one of: ", allvoicesamples, "\n"));
+	if(sample == "")
 		return;
-	}
 
-	if(!sample)
-		return;
-
-	teamsay = GetVoiceMessageTeamsayType(type);
-
 	tokenize(sample);
-	sample = strcat(argv(0), ftos(ceil(random() * stof(argv(1)))), ".wav"); // randomization
+	n = stof(argv(1));
+	if(n > 0)
+		sample = strcat(argv(0), ftos(ceil(random() * n)), ".wav"); // randomization
+	else
+		sample = strcat(argv(0), ".wav"); // randomization
 
-	if(teamsay == 2)
+	if(teamsay == 2) // only to last attacker
 	{
 		if(teams_matter)
 			if(self.pusher)
 				if(self.pusher.team == self.team)
 				{
-					soundto(self, self.pusher, CHAN_VOICE, sample, 1, ATTN_NONE);
-					soundto(self, self, CHAN_VOICE, sample, 1, ATTN_NONE);
+					soundto(self, self.pusher, chan, sample, 1, ATTN_NONE);
+					soundto(self, self, chan, sample, 1, ATTN_NONE);
 				}
 	}
-	else if(teamsay == 0 || !teams_matter)
+	else if(teamsay == 0) // to everyone
 	{
 		// broadcast the sound, but it's directional
-		sound(self, CHAN_VOICE, sample, 1, ATTN_NORM);
+		sound(self, chan, sample, 1, ATTN_NORM);
 	}
-	else if(teamsay == 1)
+	else if(teamsay == 1) // to the same team
 	{
 		entity e;
 		FOR_EACH_REALCLIENT(e)
-			if(e.team == self.team)
-				soundto(self, e, CHAN_VOICE, sample, 1, ATTN_NONE);
+			if(!teams_matter || e.team == self.team)
+				soundto(self, e, chan, sample, 1, ATTN_NONE);
 	}
 }
-#else
-void PrecachePlayerSounds(string f) { }
-void UpdatePlayerSounds() { }
-void VoiceMessage(string type) { sprint(self, "Sorry, voice command support is not done yet. Maybe later.\n"); }
-#endif
+
+void PlayerSound(.string samplefield, float chan, float teamsay)
+{
+	string sample;
+	sample = self.samplefield;
+	GlobalSound(sample, chan, teamsay);
+}
+
+void VoiceMessage(string type)
+{
+	var .string sample;
+	var float teamsay;
+	sample = GetVoiceMessageSampleField(type);
+
+	if(GetPlayerSoundSampleField_notFound)
+	{
+		sprint(self, strcat("Invalid voice. Use one of: ", allvoicesamples, "\n"));
+		return;
+	}
+
+	teamsay = GetVoiceMessageTeamsayType(type);
+
+	PlayerSound(sample, CHAN_VOICE, teamsay);
+}

Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh	2008-08-05 06:56:01 UTC (rev 4024)
@@ -14,7 +14,7 @@
 // Globals
 
 float g_domination, g_ctf, g_tdm, g_keyhunt, g_onslaught, g_assault, g_arena, g_lms, g_runematch;
-float g_cloaked, g_footsteps, g_grappling_hook, g_instagib, 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_instagib, 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_tourney;
 float g_ctf_win_mode;
 float tourneyInMatchStage;
@@ -444,3 +444,36 @@
 
 .float Version;
 .float(entity to) SendEntity;
+
+// player sounds, voice messages
+.string playersound_attack;
+.string playersound_attackinfive;
+.string playersound_coverme;
+.string playersound_defend;
+.string playersound_freelance;
+.string playersound_incoming;
+.string playersound_meet;
+.string playersound_needhelp;
+.string playersound_seenflag;
+.string playersound_taunt;
+.string playersound_teamshoot;
+.string playersound_death;
+.string playersound_drown;
+.string playersound_falling; // not yet implemented, FIXME
+.string playersound_gasp;
+.string playersound_jump;
+.string playersound_pain25;
+.string playersound_pain50;
+.string playersound_pain75;
+.string playersound_pain100;
+string globalsound_fall;
+string globalsound_metalfall;
+string globalsound_step;
+string globalsound_metalstep;
+void PrecachePlayerSounds(string f);
+void PrecacheGlobalSound(string samplestring);
+void UpdatePlayerSounds();
+void ClearPlayerSounds();
+void PlayerSound(.string samplefield, float channel, float teamsay); // 0 is normal, 1 is team, 2 is last attacker
+void GlobalSound(string samplestring, float channel, float teamsay); // 0 is normal, 1 is team, 2 is last attacker
+void VoiceMessage(string type);

Modified: branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/server/miscfunctions.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -738,6 +738,7 @@
 	sv_gentle = cvar("sv_gentle");
 	sv_foginterval = cvar("sv_foginterval");
 	g_cloaked = cvar("g_cloaked");
+	g_jump_grunt = cvar("g_jump_grunt");
 	g_footsteps = cvar("g_footsteps");
 	g_grappling_hook = cvar("g_grappling_hook");
 	g_instagib = cvar("g_instagib");
@@ -1001,12 +1002,8 @@
 
 	if (g_footsteps)
 	{
-		precache_sound ("misc/footstep01.wav");
-		precache_sound ("misc/footstep02.wav");
-		precache_sound ("misc/footstep03.wav");
-		precache_sound ("misc/footstep04.wav");
-		precache_sound ("misc/footstep05.wav");
-		precache_sound ("misc/footstep06.wav");
+		PrecacheGlobalSound((globalsound_step = "misc/footstep0 6"));
+		PrecacheGlobalSound((globalsound_metalstep = "misc/metalfootstep0 6"));
 	}
 
 	// gore and miscellaneous sounds
@@ -1035,10 +1032,8 @@
 	precache_sound ("misc/gib_splat03.wav");
 	precache_sound ("misc/gib_splat04.wav");
 	precache_sound ("misc/hit.wav");
-	precache_sound ("misc/hitground1.wav");
-	precache_sound ("misc/hitground2.wav");
-	precache_sound ("misc/hitground3.wav");
-	precache_sound ("misc/hitground4.wav");
+	PrecacheGlobalSound((globalsound_fall = "misc/hitground 4"));
+	PrecacheGlobalSound((globalsound_metalfall = "misc/metalhitground 4"));
 	precache_sound ("misc/null.wav");
 	precache_sound ("misc/spawn.wav");
 	precache_sound ("misc/talk.wav");

Modified: branches/nexuiz-2.0/data/qcsrc/server/sv_main.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/sv_main.qc	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/qcsrc/server/sv_main.qc	2008-08-05 06:56:01 UTC (rev 4024)
@@ -24,6 +24,8 @@
 				}
 				if (self.waterlevel != 3)
 				{
+					if(self.air_finished < time + 9)
+						PlayerSound(playersound_gasp, CHAN_AUTO, 0);
 					self.air_finished = time + 12;
 					self.dmg = 2;
 				}
@@ -73,29 +75,15 @@
 			// check for falling damage
 			if(!self.hook.state)
 			{
-				dm = vlen(self.oldvelocity) - vlen(self.velocity); // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound.
+				dm = vlen(self.oldvelocity) - vlen(self.velocity); // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage.
 				if (self.deadflag)
 					dm = (dm - cvar("g_balance_falldamage_deadminspeed")) * cvar("g_balance_falldamage_factor");
 				else
-				{
-					if (self.oldvelocity_z < self.velocity_z - 160)
-					{
-						local float soundrandom;
-						soundrandom = random() * 4;
-						if (soundrandom < 1)
-							sound (self, CHAN_BODY, "misc/hitground1.wav", 1, ATTN_NORM);
-						else if (soundrandom < 2)
-							sound (self, CHAN_BODY, "misc/hitground2.wav", 1, ATTN_NORM);
-						else if (soundrandom < 3)
-							sound (self, CHAN_BODY, "misc/hitground3.wav", 1, ATTN_NORM);
-						else if (soundrandom < 4)
-							sound (self, CHAN_BODY, "misc/hitground4.wav", 1, ATTN_NORM);
-						self.nextstep = time + 0.3 + random() * 0.1;
-					}
 					dm = min((dm - cvar("g_balance_falldamage_minspeed")) * cvar("g_balance_falldamage_factor"), cvar("g_balance_falldamage_maxdamage"));
-				}
 				if (dm > 0)
+				{
 					Damage (self, world, world, dm, DEATH_FALL, self.origin, '0 0 0');
+				}
 				else if(vlen(self.velocity) > 100000 && cvar("developer"))
 				{
 					dprint(strcat(self.netname, " became too fast, please investigate: ", vtos(self.spawnorigin), "\n"));
@@ -109,24 +97,24 @@
 			if (self.flags & FL_ONGROUND)
 			if (vlen(self.velocity) > sv_maxspeed * 0.6)
 			if (!self.deadflag)
+			if (time < self.lastground + 0.2)
 			{
 				if((time > self.nextstep) || (time < (self.nextstep - 10.0)))
 				{
-					local float steprandom;
 					self.nextstep = time + 0.3 + random() * 0.1;
-					steprandom = random() * 6;
-					if (steprandom < 1)
-						sound (self, CHAN_BODY, "misc/footstep01.wav", 1, ATTN_NORM);
-					else if (steprandom < 2)
-						sound (self, CHAN_BODY, "misc/footstep02.wav", 1, ATTN_NORM);
-					else if (steprandom < 3)
-						sound (self, CHAN_BODY, "misc/footstep03.wav", 1, ATTN_NORM);
-					else if (steprandom < 4)
-						sound (self, CHAN_BODY, "misc/footstep04.wav", 1, ATTN_NORM);
-					else if (steprandom < 5)
-						sound (self, CHAN_BODY, "misc/footstep05.wav", 1, ATTN_NORM);
-					else if (steprandom <= 6)
-						sound (self, CHAN_BODY, "misc/footstep06.wav", 1, ATTN_NORM);
+					trace_dphitq3surfaceflags = 0;
+					tracebox(self.origin, self.mins, self.maxs, self.origin - '0 0 1', MOVE_NOMONSTERS, self);
+					if(trace_fraction == 1)
+						print("nohit\n");
+					else
+						print(ftos(trace_dphitq3surfaceflags), "\n");
+					if not(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOSTEPS)
+					{
+						if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_METALSTEPS)
+							GlobalSound(globalsound_metalstep, CHAN_AUTO, 0);
+						else
+							GlobalSound(globalsound_step, CHAN_AUTO, 0);
+					}
 				}
 			}
 			self.oldvelocity = self.velocity;

Copied: branches/nexuiz-2.0/data/sound/debug (from rev 4023, trunk/data/sound/debug)

Copied: branches/nexuiz-2.0/data/sound/misc/metalfootstep01.wav (from rev 4023, trunk/data/sound/misc/metalfootstep01.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalfootstep02.wav (from rev 4023, trunk/data/sound/misc/metalfootstep02.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalfootstep03.wav (from rev 4023, trunk/data/sound/misc/metalfootstep03.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalfootstep04.wav (from rev 4023, trunk/data/sound/misc/metalfootstep04.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalfootstep05.wav (from rev 4023, trunk/data/sound/misc/metalfootstep05.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalfootstep06.wav (from rev 4023, trunk/data/sound/misc/metalfootstep06.wav)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalhitground1.ogg (from rev 4023, trunk/data/sound/misc/metalhitground1.ogg)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalhitground2.ogg (from rev 4023, trunk/data/sound/misc/metalhitground2.ogg)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalhitground3.ogg (from rev 4023, trunk/data/sound/misc/metalhitground3.ogg)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/misc/metalhitground4.ogg (from rev 4023, trunk/data/sound/misc/metalhitground4.ogg)
===================================================================
(Binary files differ)

Copied: branches/nexuiz-2.0/data/sound/player/default.sounds (from rev 4023, trunk/data/sound/player/default.sounds)
===================================================================
--- branches/nexuiz-2.0/data/sound/player/default.sounds	                        (rev 0)
+++ branches/nexuiz-2.0/data/sound/player/default.sounds	2008-08-05 06:56:01 UTC (rev 4024)
@@ -0,0 +1,22 @@
+//attack sound/player/voice/attack 1
+//attackinfive sound/player/voice/attackinfive 1
+//coverme sound/player/voice/coverme 1
+//defend sound/player/voice/defend 1
+//freelance sound/player/voice/freelance 1
+//incoming sound/player/voice/incoming 1
+//meet sound/player/voice/meet 1
+//needhelp sound/player/voice/needhelp 1
+//seenflag sound/player/voice/seenflag 2
+//taunt sound/player/voice/taunt 9
+//teamshoot sound/player/voice/teamshoot 5
+death sound/debug/v_death 0
+drown sound/debug/v_drown 0
+falling sound/debug/v_falling 0
+gasp sound/debug/v_gasp 0
+jump sound/debug/v_jump 0
+pain25 sound/debug/v_pain25 0
+pain50 sound/debug/v_pain50 0
+pain75 sound/debug/v_pain75 0
+pain100 sound/debug/v_pain100 0
+
+// TODO take out ALL the debug sounds, before I will remove them again! Deadline is Oct 1 2008.

Deleted: branches/nexuiz-2.0/data/sound/player/default.sounds.example
===================================================================
--- branches/nexuiz-2.0/data/sound/player/default.sounds.example	2008-08-05 06:16:54 UTC (rev 4023)
+++ branches/nexuiz-2.0/data/sound/player/default.sounds.example	2008-08-05 06:56:01 UTC (rev 4024)
@@ -1,11 +0,0 @@
-attack sound/player/voice/attack 1
-attackinfive sound/player/voice/attackinfive 1
-coverme sound/player/voice/coverme 1
-defend sound/player/voice/defend 1
-freelance sound/player/voice/freelance 1
-incoming sound/player/voice/incoming 1
-meet sound/player/voice/meet 1
-needhelp sound/player/voice/needhelp 1
-seenflag sound/player/voice/seenflag 2
-taunt sound/player/voice/taunt 9
-teamshoot sound/player/voice/teamshoot 5




More information about the nexuiz-commits mailing list