From a939674ad9b0e6b62ad9c3eb44ebc8b1d91b6792 Mon Sep 17 00:00:00 2001 From: Samual Date: Sun, 8 Jan 2012 23:33:57 -0500 Subject: [PATCH] Fix colormap with copybody (so now, ghost bodies of dead players retain the player color instead of going white) --- qcsrc/server/cl_client.qc | 7 ++++--- qcsrc/server/cl_player.qc | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index e6f0433c4..1db0e928a 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1750,7 +1750,6 @@ void UpdateChatBubble() else self.colormod = '1 1 1'; }*/ -.float oldcolormap; void respawn(void) { if(self.alpha >= 0 && autocvar_g_respawn_ghosts) @@ -1761,7 +1760,7 @@ void respawn(void) self.velocity = '0 0 1' * autocvar_g_respawn_ghosts_speed; self.avelocity = randomvec() * autocvar_g_respawn_ghosts_speed * 3 - randomvec() * autocvar_g_respawn_ghosts_speed * 3; self.effects |= EF_ADDITIVE; - self.oldcolormap = self.colormap; + self.oldcolormap = self.colormap; // saved for copybody to use later self.colormap = 0; // this originally was 512, but raises a warning in the engine, so get rid of it pointparticles(particleeffectnum("respawn_ghost"), self.origin, '0 0 0', 1); if(autocvar_g_respawn_ghosts_maxtime) @@ -1770,11 +1769,13 @@ void respawn(void) CopyBody(1); self.effects |= EF_NODRAW; // prevent another CopyBody - if(self.oldcolormap) + + if(self.oldcolormap) // reset it so that when they respawn it'll be back to normal { self.colormap = self.oldcolormap; self.oldcolormap = 0; } + PutClientInServer(); } diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index 04ad12c6e..ae09df297 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -124,6 +124,8 @@ void WeaponStats_LogKill(float awep, float abot, float vwep, float vbot) .entity pusher; .float pushltime; +.float oldcolormap; // also used in cl_client.c:void respawn(void) + .float CopyBody_nextthink; .void(void) CopyBody_think; void CopyBody_Think(void) @@ -149,7 +151,7 @@ void CopyBody(float keepvelocity) self = spawn(); self.enemy = oldself; self.lip = oldself.lip; - self.colormap = oldself.colormap; + self.colormap = oldself.oldcolormap; self.iscreature = oldself.iscreature; self.damagedbycontents = oldself.damagedbycontents; self.angles = oldself.angles; -- 2.39.2