From 144b85efe4823eec6b9fb75651da1b175a6e31cf Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Tue, 19 Oct 2010 17:48:07 +0200 Subject: [PATCH] support bgmscript with target_music --- qcsrc/client/Defs.qc | 3 +++ qcsrc/client/bgmscript.qc | 18 ++++++++---------- qcsrc/client/target_music.qc | 5 +++++ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/qcsrc/client/Defs.qc b/qcsrc/client/Defs.qc index caab73322..e816fe221 100644 --- a/qcsrc/client/Defs.qc +++ b/qcsrc/client/Defs.qc @@ -262,3 +262,6 @@ float campingrifle_scope; float nex_scope; float cr_maxbullets; + +float bgmtime; + diff --git a/qcsrc/client/bgmscript.qc b/qcsrc/client/bgmscript.qc index 587a2e96c..c23b425ae 100644 --- a/qcsrc/client/bgmscript.qc +++ b/qcsrc/client/bgmscript.qc @@ -167,7 +167,6 @@ float GetTimeForAmplitude(entity e, float amp) float BGMScript(entity e) { - float t; float amp, vel; if(e.bgmscript == "") @@ -178,34 +177,33 @@ float BGMScript(entity e) e.just_toggled = FALSE; - t = gettime(GETTIME_CDTRACK); - if(t < 0) + if(bgmtime < 0) return -1; - if(t < e.bgmscripttime) + if(bgmtime < e.bgmscripttime) { //print("reset ", e.bgmscript, "\n"); amp = GetCurrentAmplitude(e, e.bgmscripttime - e.bgmscriptstatetime + drawframetime); e.bgmscriptline = e.bgmscriptline0; - e.bgmscripttime = t; + e.bgmscripttime = bgmtime; // treat this as a stop event for all notes, to prevent sticking keys e.bgmscriptstate = FALSE; e.bgmscriptvolume = 1; - e.bgmscriptstatetime = t - GetTimeForAmplitude(e, amp); + e.bgmscriptstatetime = bgmtime - GetTimeForAmplitude(e, amp); } // find the CURRENT line for(;;) { tokenize_console(bufstr_get(bgmscriptbuf, e.bgmscriptline)); - if(stof(argv(1)) >= t || argv(0) != e.bgmscript) + if(stof(argv(1)) >= bgmtime || argv(0) != e.bgmscript) { - e.bgmscripttime = t; - return GetCurrentAmplitude(e, t - e.bgmscriptstatetime); + e.bgmscripttime = bgmtime; + return GetCurrentAmplitude(e, bgmtime - e.bgmscriptstatetime); } - else if(t >= stof(argv(1))) + else if(bgmtime >= stof(argv(1))) { e.bgmscriptline += 1; e.bgmscripttime = stof(argv(1)); diff --git a/qcsrc/client/target_music.qc b/qcsrc/client/target_music.qc index a7a46d80a..b1957038e 100644 --- a/qcsrc/client/target_music.qc +++ b/qcsrc/client/target_music.qc @@ -50,6 +50,11 @@ void TargetMusic_Advance() } } music_trigger = world; + + if(best) + bgmtime = getsoundtime(best, CHAN_VOICE); + else + bgmtime = gettime(GETTIME_CDTRACK); } void Net_TargetMusic() -- 2.39.2