]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/server/cl_player.qc
Simplify fall damage sound, as done in Xonotic
[voretournament/voretournament.git] / data / qcsrc / server / cl_player.qc
index 88020455cd82e0d970a3cf92ad8d94cdf20d5b95..932d0b96058e6b9daef3a21bec571518a8ed82aa 100644 (file)
@@ -279,8 +279,13 @@ void player_setupanimsformodel()
        }\r
        else\r
                dprint("File ", animfilename, " not found, assuming legacy .zym model animation timings\n");\r
+\r
+       // the line below is disabled due to issues with the stomach model, which cannot be animated.\r
+       // customizeentityforclient cannot let this part of the code know whether it's the stomach model or normal\r
+       // player model we're using. Attempting to animate the stomach model causes BIG issues, and must not be allowed.\r
+\r
        // reset animstate now\r
-       setanim(self, self.anim_idle, TRUE, FALSE, TRUE);\r
+       //setanim(self, self.anim_idle, TRUE, FALSE, TRUE);\r
 };\r
 \r
 void player_anim (void)\r
@@ -481,14 +486,17 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht
                                        }\r
 \r
                                        if(sound_allowed(MSG_BROADCAST, attacker))\r
+                                       if(self.health > 1)\r
                                        {\r
-                                               if(self.health > 75) // TODO make a "gentle" version?\r
+                                               if(deathtype == DEATH_FALL)\r
+                                                       PlayerSound(self, playersound_fall, CHAN_PAIN, VOICETYPE_PLAYERSOUND);\r
+                                               else if(self.health > 75) // TODO make a "gentle" version?\r
                                                        PlayerSound(self, playersound_pain100, CHAN_PAIN, VOICETYPE_PLAYERSOUND);\r
                                                else if(self.health > 50)\r
                                                        PlayerSound(self, playersound_pain75, CHAN_PAIN, VOICETYPE_PLAYERSOUND);\r
                                                else if(self.health > 25)\r
                                                        PlayerSound(self, playersound_pain50, CHAN_PAIN, VOICETYPE_PLAYERSOUND);\r
-                                               else if(self.health > 1)\r
+                                               else\r
                                                        PlayerSound(self, playersound_pain25, CHAN_PAIN, VOICETYPE_PLAYERSOUND);\r
                                        }\r
                                }\r
@@ -741,11 +749,11 @@ void UpdateSelectedPlayer()
        selected = world;\r
        selected_score = 0.95; // 18 degrees\r
 \r
-       if(self.eater.classname == "player")\r
+       if(self.predator.classname == "player")\r
        {\r
                if(!self.dropweapon_check)\r
-               if(self.eater.team != self.team) // don't disarm team mates when swallowing them\r
-               if(random() < cvar("g_vore_dropweapon"))\r
+               if(self.predator.team != self.team) // don't disarm team mates when swallowing them\r
+               if(random() < cvar("g_balance_vore_swallow_dropweapon"))\r
                        SpawnThrownWeapon (self.origin + (self.mins + self.maxs) * 0.5, self.switchweapon);\r
                self.dropweapon_check = TRUE;\r
        }\r
@@ -1224,7 +1232,12 @@ void GlobalSound(string sample, float chan, float voicetype)
                                        if(clienttype(msg_entity) == CLIENTTYPE_REAL)\r
                                        {\r
                                                if(msg_entity.cvar_cl_voice_directional == 1)\r
-                                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_MIN);\r
+                                               {\r
+                                                       if(self.predator.classname == "player")\r
+                                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE * bound(0, cvar("g_vore_soundocclusion"), 1), ATTN_MIN);\r
+                                                       else\r
+                                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_MIN);\r
+                                               }\r
                                                else\r
                                                        soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_NONE);\r
                                        }\r
@@ -1238,7 +1251,12 @@ void GlobalSound(string sample, float chan, float voicetype)
                                        if(clienttype(msg_entity) == CLIENTTYPE_REAL)\r
                                        {\r
                                                if(msg_entity.cvar_cl_voice_directional == 1)\r
-                                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_MIN);\r
+                                               {\r
+                                                       if(self.predator.classname == "player")\r
+                                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE * bound(0, cvar("g_vore_soundocclusion"), 1), ATTN_MIN);\r
+                                                       else\r
+                                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_MIN);\r
+                                               }\r
                                                else\r
                                                        soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_NONE);\r
                                        }\r
@@ -1252,7 +1270,12 @@ void GlobalSound(string sample, float chan, float voicetype)
                                if(!teams_matter || msg_entity.team == self.team)\r
                                {\r
                                        if(msg_entity.cvar_cl_voice_directional == 1)\r
-                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_MIN);\r
+                                       {\r
+                                               if(self.predator.classname == "player")\r
+                                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE * bound(0, cvar("g_vore_soundocclusion"), 1), ATTN_MIN);\r
+                                               else\r
+                                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_MIN);\r
+                                       }\r
                                        else\r
                                                soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_NONE);\r
                                }\r
@@ -1269,7 +1292,12 @@ void GlobalSound(string sample, float chan, float voicetype)
                                if (tauntrand < msg_entity.cvar_cl_autotaunt)\r
                                {\r
                                        if (msg_entity.cvar_cl_voice_directional >= 1)\r
-                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX));\r
+                                       {\r
+                                               if(self.predator.classname == "player")\r
+                                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE * bound(0, cvar("g_vore_soundocclusion"), 1), bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX));\r
+                                               else\r
+                                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX));\r
+                                       }\r
                                        else\r
                                                soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_NONE);\r
                                }\r
@@ -1285,12 +1313,20 @@ void GlobalSound(string sample, float chan, float voicetype)
                        FOR_EACH_REALCLIENT(msg_entity)\r
                        {\r
                                if (msg_entity.cvar_cl_voice_directional >= 1)\r
-                                       soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX));\r
+                               {\r
+                                       if(self.predator.classname == "player")\r
+                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE * bound(0, cvar("g_vore_soundocclusion"), 1), bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX));\r
+                                       else\r
+                                               soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, bound(ATTN_MIN, msg_entity.cvar_cl_voice_directional_taunt_attenuation, ATTN_MAX));\r
+                               }\r
                                else\r
                                        soundto(MSG_ONE, self, chan, sample, VOL_BASEVOICE, ATTN_NONE);\r
                        }\r
                case VOICETYPE_PLAYERSOUND:\r
-                       sound(self, chan, sample, VOL_BASE, ATTN_NORM);\r
+                       if(self.predator.classname == "player")\r
+                               sound(self, chan, sample, VOL_BASE * bound(0, cvar("g_vore_soundocclusion"), 1), ATTN_NORM);\r
+                       else\r
+                               sound(self, chan, sample, VOL_BASE, ATTN_NORM);\r
                        break;\r
                case VOICETYPE_GURGLE:\r
                        if(self.stomach_load)\r
@@ -1307,8 +1343,13 @@ void GlobalSound(string sample, float chan, float voicetype)
 void PlayerSound(entity player, .string samplefield, float chan, float voicetype)\r
 {\r
        string sample;\r
-       sample = player.samplefield;\r
+       entity oldself;\r
+\r
+       oldself = self;\r
+       self = player;\r
+       sample = self.samplefield;\r
        GlobalSound(sample, chan, voicetype);\r
+       self = oldself;\r
 }\r
 \r
 void VoiceMessage(string type, string msg)\r