From: MirceaKitsune Date: Wed, 6 Jul 2011 20:53:18 +0000 (+0300) Subject: Adapt the coloring system in Xonotic. The second player color will no longer be pants... X-Git-Url: http://de.git.xonotic.org/?p=voretournament%2Fvoretournament.git;a=commitdiff_plain;h=259b0fce287e962b712b9b405a44c13dbb07667f Adapt the coloring system in Xonotic. The second player color will no longer be pants, but glow. Players and weapons will now have the previous "pants" texture / color being a bright glow, visible anywhere in the dark. Much prettier and more scifi-ish :) --- diff --git a/data/defaultVT.cfg b/data/defaultVT.cfg index 13f52cc2..48b31cda 100644 --- a/data/defaultVT.cfg +++ b/data/defaultVT.cfg @@ -606,6 +606,8 @@ set g_bloodloss 0 "amount of health below which blood loss occurs" set g_footsteps 1 "serverside footstep sounds" +set g_deathglow 1.25 "when enabled, players stop glowing after they die (the value specifies glow fading speed)" + set g_multijump 1 "Number of multiple jumps to allow (jumping again in the air), -1 allows for infinite jumps" set g_multijump_add 0 "0 = make the current z velocity equal to jumpvelocity, 1 = add jumpvelocity to the current z velocity" set g_multijump_speed -125 "Minimum vertical speed a player must have in order to jump again" diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 42c84e2c..ec685f36 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -2498,6 +2498,29 @@ void PlayerPreThink (void) if(frametime) { + + if(self.health <= 0 && cvar("g_deathglow")) + { + if(self.glowmod_x > 0) + self.glowmod_x -= cvar("g_deathglow") * frametime; + else + self.glowmod_x = -1; + if(self.glowmod_y > 0) + self.glowmod_y -= cvar("g_deathglow") * frametime; + else + self.glowmod_y = -1; + if(self.glowmod_z > 0) + self.glowmod_z -= cvar("g_deathglow") * frametime; + else + self.glowmod_z = -1; + } + else + { + // set weapon and player glowmod + self.glowmod = colormapPaletteColor(self.clientcolors & 0x0F, TRUE) * 2; + self.weaponentity_glowmod = self.glowmod; + } + player_powerups(); } diff --git a/data/qcsrc/server/cl_player.qc b/data/qcsrc/server/cl_player.qc index 148170f7..bae973c7 100644 --- a/data/qcsrc/server/cl_player.qc +++ b/data/qcsrc/server/cl_player.qc @@ -114,6 +114,7 @@ void CopyBody(float keepvelocity) self.lip = oldself.lip; self.colormap = oldself.colormap; self.colormod = oldself.colormod; + self.glowmod = oldself.glowmod; self.iscreature = oldself.iscreature; self.angles = oldself.angles; self.avelocity = oldself.avelocity; diff --git a/data/qcsrc/server/cl_weapons.qc b/data/qcsrc/server/cl_weapons.qc index 255072f4..f908a519 100644 --- a/data/qcsrc/server/cl_weapons.qc +++ b/data/qcsrc/server/cl_weapons.qc @@ -202,6 +202,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto if(startitem_failed) return string_null; wep.colormod = wep.owner.colormod; // used by the regurgitating colors + wep.glowmod = own.weaponentity_glowmod; wep.think = thrown_wep_think; wep.nextthink = time + 0.5; return ""; @@ -238,6 +239,7 @@ string W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vecto s = substring(s, 5, -1); } wep.colormod = wep.owner.colormod; // used by the regurgitating colors + wep.glowmod = own.weaponentity_glowmod; wep.think = thrown_wep_think; wep.nextthink = time + 0.5; return s; diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc index cc5e6c62..cf64d151 100644 --- a/data/qcsrc/server/cl_weaponsystem.qc +++ b/data/qcsrc/server/cl_weaponsystem.qc @@ -577,12 +577,15 @@ void CL_Weaponentity_Think() self.alpha = 1; self.colormap = self.owner.colormap; + self.colormod = self.owner.colormod; + self.glowmod = self.owner.weaponentity_glowmod; if (self.weaponentity) { self.weaponentity.effects = self.effects; self.weaponentity.alpha = self.alpha; self.weaponentity.colormap = self.colormap; self.weaponentity.colormod = self.owner.colormod; // used by the regurgitating colors + self.weaponentity.glowmod = self.glowmod; } self.angles = '0 0 0'; @@ -841,6 +844,7 @@ void CL_ExteriorWeaponentity_Think() } self.colormap = self.owner.colormap; + self.glowmod = self.owner.weaponentity_glowmod; self.customizeentityforclient = CL_ExteriorWeaponentity_CustomizeEntityForClient; }; diff --git a/data/qcsrc/server/defs.qh b/data/qcsrc/server/defs.qh index 14c87aed..ba97835b 100644 --- a/data/qcsrc/server/defs.qh +++ b/data/qcsrc/server/defs.qh @@ -214,6 +214,7 @@ void setanim(entity e, vector anim, float looping, float override, float restart .entity weaponentity; .entity exteriorweaponentity; +.vector weaponentity_glowmod; .float switchweapon; .float autoswitch; float weapon_action(float wpn, float wrequest);