From a4185764db2cfb63dfe75c1fa56d55f9ccfd809e Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Sun, 21 Nov 2010 21:00:43 +0100 Subject: [PATCH] do not reset items bits in non-ctf and non-nexball --- qcsrc/server/cl_client.qc | 7 +++-- qcsrc/server/ctf.qc | 58 +++++++++++++++++++-------------------- qcsrc/server/nexball.qc | 3 +- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 3d06f58718..87d567f29a 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -2847,8 +2847,11 @@ void PlayerPreThink (void) if (g_minstagib) minstagib_ammocheck(); - ctf_setstatus(); - nexball_setstatus(); + if(g_ctf) + ctf_setstatus(); + + if(g_nexball) + nexball_setstatus(); self.dmg_team = max(0, self.dmg_team - cvar("g_teamdamage_resetspeed") * frametime); diff --git a/qcsrc/server/ctf.qc b/qcsrc/server/ctf.qc index 8c0844b224..690231b605 100644 --- a/qcsrc/server/ctf.qc +++ b/qcsrc/server/ctf.qc @@ -1058,42 +1058,40 @@ void ctf_setstatus() self.items &~= IT_BLUE_FLAG_LOST; self.items &~= IT_CTF_SHIELDED; - if (g_ctf) { - local entity flag; - float redflags, blueflags; + local entity flag; + float redflags, blueflags; - if(self.ctf_captureshielded) - self.items |= IT_CTF_SHIELDED; + if(self.ctf_captureshielded) + self.items |= IT_CTF_SHIELDED; - redflags = 0; - blueflags = 0; + redflags = 0; + blueflags = 0; - for (flag = ctf_worldflaglist; flag; flag = flag.ctf_worldflagnext) if(flag.cnt != FLAG_BASE) - { - if(flag.items & IT_KEY2) // blue - ++redflags; - else if(flag.items & IT_KEY1) // red - ++blueflags; - } + for (flag = ctf_worldflaglist; flag; flag = flag.ctf_worldflagnext) if(flag.cnt != FLAG_BASE) + { + if(flag.items & IT_KEY2) // blue + ++redflags; + else if(flag.items & IT_KEY1) // red + ++blueflags; + } - // blinking magic: if there is more than one flag, show one of these in a clever way - if(redflags) - redflags = mod(floor(time * redflags * 0.75), redflags); - if(blueflags) - blueflags = mod(floor(time * blueflags * 0.75), blueflags); + // blinking magic: if there is more than one flag, show one of these in a clever way + if(redflags) + redflags = mod(floor(time * redflags * 0.75), redflags); + if(blueflags) + blueflags = mod(floor(time * blueflags * 0.75), blueflags); - for (flag = ctf_worldflaglist; flag; flag = flag.ctf_worldflagnext) if(flag.cnt != FLAG_BASE) + for (flag = ctf_worldflaglist; flag; flag = flag.ctf_worldflagnext) if(flag.cnt != FLAG_BASE) + { + if(flag.items & IT_KEY2) // blue { - if(flag.items & IT_KEY2) // blue - { - if(--redflags == -1) // happens exactly once (redflags is in 0..count-1, and will --'ed count times) - ctf_setstatus2(flag, IT_RED_FLAG_TAKEN); - } - else if(flag.items & IT_KEY1) // red - { - if(--blueflags == -1) // happens exactly once - ctf_setstatus2(flag, IT_BLUE_FLAG_TAKEN); - } + if(--redflags == -1) // happens exactly once (redflags is in 0..count-1, and will --'ed count times) + ctf_setstatus2(flag, IT_RED_FLAG_TAKEN); + } + else if(flag.items & IT_KEY1) // red + { + if(--blueflags == -1) // happens exactly once + ctf_setstatus2(flag, IT_BLUE_FLAG_TAKEN); } } }; diff --git a/qcsrc/server/nexball.qc b/qcsrc/server/nexball.qc index 490071334a..ff9cfd3553 100644 --- a/qcsrc/server/nexball.qc +++ b/qcsrc/server/nexball.qc @@ -80,8 +80,7 @@ void ball_restart (void) void nexball_setstatus (void) { local entity oldself; - if (!g_nexball) - return; + self.items &~= IT_KEY1; if (self.ballcarried) { if (self.ballcarried.teamtime && (self.ballcarried.teamtime < time)) -- 2.39.2