Merge branch 'master' into Mario/killsound
authorMario <mario@smbclan.net>
Sun, 25 Dec 2016 11:06:28 +0000 (21:06 +1000)
committerMario <mario@smbclan.net>
Sun, 25 Dec 2016 11:06:28 +0000 (21:06 +1000)
qcsrc/client/view.qc
qcsrc/common/sounds/all.inc
qcsrc/common/stats.qh
qcsrc/server/defs.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_world.qc
sound/misc/kill.ogg [new file with mode: 0644]

index 5f88e78edf4b13bcc8702fc030edb6f22cc1d8ac..4165da32ad5ebaa3359c2c0b62d0b2baadd0928c 100644 (file)
@@ -854,6 +854,14 @@ void HitSound()
                sound(NULL, CH_INFO, SND_TYPEHIT, VOL_BASE, ATTN_NONE);
                typehit_time_prev = typehit_time;
        }
+
+       static float kill_time_prev = 0;
+       float kill_time = STAT(KILL_TIME);
+       if (COMPARE_INCREASING(kill_time, kill_time_prev) > autocvar_cl_hitsound_antispam_time)
+       {
+               sound(NULL, CH_INFO, SND_KILL, VOL_BASE, ATTN_NONE);
+               kill_time_prev = kill_time;
+       }
 }
 
 vector crosshair_getcolor(entity this, float health_stat)
index 4394e174067ab93c12236e3f7b00fa574ffb65c6..7462239f7701d88886e59387b5dec24d3721996b 100644 (file)
@@ -266,6 +266,7 @@ Sound SND_GIB_SPLAT_RANDOM() {
 
 SOUND(HIT, "misc/hit");
 SOUND(TYPEHIT, "misc/typehit");
+SOUND(KILL, "misc/kill");
 
 SOUND(SPAWN, "misc/spawn");
 
index 7649954b325e6c40b85eefd3691bb12859840060..edfa47fd417625ea24758a442ea44c720dbefe91 100644 (file)
@@ -126,6 +126,7 @@ REGISTER_STAT(CAPTURE_PROGRESS, float)
 REGISTER_STAT(ENTRAP_ORB, float)
 REGISTER_STAT(ENTRAP_ORB_ALPHA, float)
 REGISTER_STAT(ITEMSTIME, int, autocvar_sv_itemstime)
+REGISTER_STAT(KILL_TIME, float)
 
 #ifdef SVQC
 int autocvar_g_multijump;
index fedd5eb1ab346354f6121da51fa247627a5de039..f719d60c253dae805b9981418346806d9317a118 100644 (file)
@@ -96,7 +96,7 @@ const float MAX_DAMAGEEXTRARADIUS = 16;
 .float         dmgtime;
 
 .float         killcount;
-.float damage_dealt, typehitsound;
+.float damage_dealt, typehitsound, killsound;
 
 .float watersound_finished;
 .float iscreature;
@@ -319,6 +319,7 @@ string matchid;
 
 .float hit_time = _STAT(HIT_TIME);
 .float typehit_time = _STAT(TYPEHIT_TIME);
+.float kill_time = _STAT(KILL_TIME);
 
 .float damage_dealt_total = _STAT(DAMAGE_DEALT_TOTAL);
 
index a604a2bade1ef61b8ac45bb1eeac7d068ed3b406..ab487eac20f142712f702bcd94b2f6bcd1151f45 100644 (file)
@@ -370,6 +370,8 @@ void Obituary(entity attacker, entity inflictor, entity targ, int deathtype)
                        attacker.taunt_soundtime = time + 1;
                        attacker.killcount = attacker.killcount + 1;
 
+                       attacker.killsound += 1;
+
                        #define SPREE_ITEM(counta,countb,center,normal,gentle) \
                                case counta: \
                                { \
index 4ca9ef77c8afb16b1b5fab0190bc1cbd1770e8f5..2acc67a6e947a655a23a6d64283fb7f5fb8c1b0f 100644 (file)
@@ -2068,6 +2068,8 @@ void EndFrame()
                entity e = IS_SPEC(it) ? it.enemy : it;
                if (e.typehitsound) {
                        it.typehit_time = time;
+               } else if (e.killsound) {
+                       it.kill_time = time;
                } else if (e.damage_dealt) {
                        it.hit_time = time;
                        it.damage_dealt_total += ceil(e.damage_dealt);
@@ -2082,6 +2084,7 @@ void EndFrame()
        FOREACH_CLIENT(true, {
                it.typehitsound = false;
                it.damage_dealt = 0;
+               it.killsound = false;
                antilag_record(it, CS(it), altime);
        });
        IL_EACH(g_monsters, true,
diff --git a/sound/misc/kill.ogg b/sound/misc/kill.ogg
new file mode 100644 (file)
index 0000000..7ef2bab
Binary files /dev/null and b/sound/misc/kill.ogg differ