else self.colormod = '1 1 1';
}*/
-.float oldcolormap;
void respawn(void)
{
if(self.alpha >= 0 && autocvar_g_respawn_ghosts)
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)
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();
}
.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)
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;