X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fclient%2Ftarget_music.qc;h=c4573296a6bb0af9f35dedf39ae177855fc847bb;hp=d23fc01a95585a8bca9b203b132196dd8684c7bb;hb=a7b24450e4c7ca75636df1375d01d2266bd00c8c;hpb=d13fd5b4f7508e30f764afa675705fb4e71e9d59 diff --git a/qcsrc/client/target_music.qc b/qcsrc/client/target_music.qc index d23fc01a95..c4573296a6 100644 --- a/qcsrc/client/target_music.qc +++ b/qcsrc/client/target_music.qc @@ -4,12 +4,13 @@ entity music_target; entity music_trigger; .float state; +.float lastvol; void TargetMusic_Advance() { // run AFTER all the thinks! entity best, e; - float s0; + float vol, vol0; best = music_default; if(music_target && time < music_target.lifetime) best = music_target; @@ -17,10 +18,10 @@ void TargetMusic_Advance() best = music_trigger; for(e = world; (e = findfloat(e, enttype, ENT_CLIENT_TRIGGER_MUSIC)); ) if(e.noise) { - s0 = e.state; - if(getsoundtime(e, CHAN_VOICE) < 0) + vol0 = e.lastvol; + if(getsoundtime(e, CH_BGM_SINGLE) < 0) { - s0 = -1; + vol0 = -1; } if(e == best) { @@ -38,21 +39,28 @@ void TargetMusic_Advance() else e.state = 0; } - if(e.state != s0) + vol = e.state * e.volume * autocvar_bgmvolume; + if(vol != vol0) { - if(s0 < 0) - sound(e, CHAN_VOICE, e.noise, e.volume * e.state * cvar("bgmvolume"), ATTN_NONE); // restart + if(vol0 < 0) + sound(e, CH_BGM_SINGLE, e.noise, vol, ATTN_NONE); // restart else - sound(e, CHAN_VOICE, "", e.volume * e.state * cvar("bgmvolume"), ATTN_NONE); + sound(e, CH_BGM_SINGLE, "", vol, ATTN_NONE); + e.lastvol = vol; } } music_trigger = world; + + if(best) + bgmtime = getsoundtime(best, CH_BGM_SINGLE); + else + bgmtime = gettime(GETTIME_CDTRACK); } void Net_TargetMusic() { float vol, fai, fao, tim, id; - string noi, s; + string noi; entity e; id = ReadShort(); @@ -79,10 +87,10 @@ void Net_TargetMusic() strunzone(e.noise); e.noise = strzone(noi); precache_sound(e.noise); - sound(e, CHAN_VOICE, e.noise, 0, ATTN_NONE); - if(getsoundtime(e, CHAN_VOICE) < 0) + sound(e, CH_BGM_SINGLE, e.noise, 0, ATTN_NONE); + if(getsoundtime(e, CH_BGM_SINGLE) < 0) { - print("Cannot initialize sound ", e.noise, "\n"); + print(sprintf(_("Cannot initialize sound %s\n"), e.noise)); strunzone(e.noise); e.noise = string_null; } @@ -167,10 +175,10 @@ void Ent_ReadTriggerMusic() if(self.noise != s) { precache_sound(self.noise); - sound(self, CHAN_VOICE, self.noise, 0, ATTN_NONE); - if(getsoundtime(self, CHAN_VOICE) < 0) + sound(self, CH_BGM_SINGLE, self.noise, 0, ATTN_NONE); + if(getsoundtime(self, CH_BGM_SINGLE) < 0) { - print("Cannot initialize sound ", self.noise, "\n"); + print(sprintf(_("Cannot initialize sound %s\n"), self.noise)); strunzone(self.noise); self.noise = string_null; }