X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Feffects%2Fqc%2Fglobalsound.qc;h=8ce2b6ed3a4a8b7ea0fd09ddf75bf9b241b03847;hb=977d7262b039aa7771fccce01ce3f9846df19e4b;hp=4875a40ee98c4682b1d7cdf4f4c8818bce87ca39;hpb=15a474a8dd9705bfb43f00cbef66f4ab49e76aa8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/effects/qc/globalsound.qc b/qcsrc/common/effects/qc/globalsound.qc index 4875a40ee..8ce2b6ed3 100644 --- a/qcsrc/common/effects/qc/globalsound.qc +++ b/qcsrc/common/effects/qc/globalsound.qc @@ -85,7 +85,7 @@ NET_HANDLE(globalsound, bool isnew) { - entity gs = GlobalSounds_from(ReadByte()); + entity gs = REGISTRY_GET(GlobalSounds, ReadByte()); float r = ReadByte() / 255; string sample = GlobalSound_sample(gs.m_globalsoundstr, r); int who = ReadByte(); @@ -112,7 +112,7 @@ NET_HANDLE(playersound, bool isnew) { - entity ps = PlayerSounds_from(ReadByte()); + entity ps = REGISTRY_GET(PlayerSounds, ReadByte()); float r = ReadByte() / 255; int who = ReadByte(); entity e = entcs_receiver(who - 1); @@ -237,8 +237,7 @@ .string fld = it.m_playersoundfld; if (this.(fld)) { - strunzone(this.(fld)); - this.(fld) = string_null; + strfree(this.(fld)); } }); } @@ -264,13 +263,12 @@ if (GetPlayerSoundSampleField_notFound) field = GetVoiceMessageSampleField(key); if (GetPlayerSoundSampleField_notFound) { - LOG_TRACEF("Invalid sound info field: %s", key); + LOG_TRACEF("Invalid sound info field in player sound file '%s': %s", f, key); continue; } string file = argv(1); string variants = argv(2); - if (this.(field)) strunzone(this.(field)); - this.(field) = strzone(strcat(file, " ", variants)); + strcpy(this.(field), strcat(file, " ", variants)); } fclose(fh); return true; @@ -284,16 +282,15 @@ void UpdatePlayerSounds(entity this) { if (this.model == this.model_for_playersound && this.skin == this.skin_for_playersound) return; - if (this.model_for_playersound) strunzone(this.model_for_playersound); - this.model_for_playersound = strzone(this.model); + strcpy(this.model_for_playersound, this.model); this.skin_for_playersound = this.skin; ClearPlayerSounds(this); LoadPlayerSounds(this, "sound/player/default.sounds", true); if (this.model == "null" #ifdef SVQC - && autocvar_g_debug_globalsounds + && autocvar_g_debug_globalsounds #endif - ) return; + ) return; if (autocvar_g_debug_defaultsounds) return; if (LoadPlayerSounds(this, get_model_datafilename(this.model, this.skin, "sounds"), false)) return; LoadPlayerSounds(this, get_model_datafilename(this.model, 0, "sounds"), true); @@ -340,12 +337,11 @@ { #define X() \ MACRO_BEGIN \ - { \ float atten = (CS(msg_entity).cvar_cl_voice_directional == 1) ? ATTEN_MIN : ATTEN_NONE; \ if (gs) globalsound(MSG_ONE, this, gs, r, chan, vol, atten); \ else if (ps) playersound(MSG_ONE, this, ps, r, chan, vol, atten); \ else soundto(MSG_ONE, this, chan, sample, vol, atten); \ - } MACRO_END + MACRO_END if (fake) { msg_entity = this; X(); } else @@ -355,33 +351,37 @@ X(); }); } - #undef X + #undef X break; } case VOICETYPE_AUTOTAUNT: case VOICETYPE_TAUNT: { - if (voicetype == VOICETYPE_AUTOTAUNT) if (!sv_autotaunt) { break; }else {} - else if (IS_PLAYER(this) && !IS_DEAD(this)) animdecide_setaction(this, ANIMACTION_TAUNT, - true); + if (voicetype == VOICETYPE_AUTOTAUNT) + { + if (!sv_autotaunt) break; + } + else if (IS_PLAYER(this) && !IS_DEAD(this)) + animdecide_setaction(this, ANIMACTION_TAUNT, true); + if (!sv_taunt) break; if (autocvar_sv_gentle) break; float tauntrand = 0; if (voicetype == VOICETYPE_AUTOTAUNT) tauntrand = random(); + #define X() \ MACRO_BEGIN \ - { \ if (voicetype != VOICETYPE_AUTOTAUNT || tauntrand < CS(msg_entity).cvar_cl_autotaunt) \ { \ float atten = (CS(msg_entity).cvar_cl_voice_directional >= 1) \ - ? bound(ATTEN_MIN, CS(msg_entity).cvar_cl_voice_directional_taunt_attenuation, \ + ? bound(ATTEN_MIN, CS(msg_entity).cvar_cl_voice_directional_taunt_attenuation, \ ATTEN_MAX) \ : ATTEN_NONE; \ if (gs) globalsound(MSG_ONE, this, gs, r, chan, vol, atten); \ else if (ps) playersound(MSG_ONE, this, ps, r, chan, vol, atten); \ else soundto(MSG_ONE, this, chan, sample, vol, atten); \ } \ - } MACRO_END + MACRO_END if (fake) { msg_entity = this; @@ -394,7 +394,7 @@ X(); }); } - #undef X + #undef X break; } case VOICETYPE_PLAYERSOUND: