*/
void V_ParseDamage (void)
{
- int i, armor, blood;
+ int armor, blood;
vec3_t from;
//vec3_t forward, right;
vec3_t localfrom;
armor = MSG_ReadByte ();
blood = MSG_ReadByte ();
- for (i=0 ; i<3 ; i++)
- from[i] = MSG_ReadCoord ();
+ MSG_ReadVector(from);
count = blood*0.5 + armor*0.5;
if (count < 10)
{
// first person view from entity
// angles
- if (cl.stats[STAT_HEALTH] <= 0)
+ if (cl.stats[STAT_HEALTH] <= 0 && gamemode != GAME_FNIGGIUM)
viewangles[ROLL] = 80; // dead view angle
VectorAdd(viewangles, cl.punchangle, viewangles);
viewangles[ROLL] += V_CalcRoll(cl.viewangles, cl.velocity);
r_refdef.viewblend[1] = 0;
r_refdef.viewblend[2] = 0;
r_refdef.viewblend[3] = 0;
- if (cls.state == ca_connected && cls.signon == SIGNONS)
+ if (cls.state == ca_connected && cls.signon == SIGNONS && gl_polyblend.value > 0)
{
// set contents color
switch (CL_PointQ1Contents(r_vieworigin))
{
case CONTENTS_EMPTY:
case CONTENTS_SOLID:
- cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = v_cshift.destcolor[0];
- cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = v_cshift.destcolor[1];
- cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = v_cshift.destcolor[2];
- cl.cshifts[CSHIFT_CONTENTS].percent = v_cshift.percent;
+ cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 0;
+ cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 0;
+ cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 0;
+ cl.cshifts[CSHIFT_CONTENTS].percent = 0;
break;
case CONTENTS_LAVA:
cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 255;
cl.cshifts[CSHIFT_CONTENTS].percent = 128 >> 1;
}
- if (cl.items & IT_QUAD)
- {
- cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0;
- cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 0;
- cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 255;
- cl.cshifts[CSHIFT_POWERUP].percent = 30;
- }
- else if (cl.items & IT_SUIT)
+ if (gamemode != GAME_TRANSFUSION)
{
- cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0;
- cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255;
- cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0;
- cl.cshifts[CSHIFT_POWERUP].percent = 20;
- }
- else if (cl.items & IT_INVISIBILITY)
- {
- cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 100;
- cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 100;
- cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 100;
- cl.cshifts[CSHIFT_POWERUP].percent = 100;
- }
- else if (cl.items & IT_INVULNERABILITY)
- {
- cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 255;
- cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255;
- cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0;
- cl.cshifts[CSHIFT_POWERUP].percent = 30;
+ if (cl.items & IT_QUAD)
+ {
+ cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 0;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 255;
+ cl.cshifts[CSHIFT_POWERUP].percent = 30;
+ }
+ else if (cl.items & IT_SUIT)
+ {
+ cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0;
+ cl.cshifts[CSHIFT_POWERUP].percent = 20;
+ }
+ else if (cl.items & IT_INVISIBILITY)
+ {
+ cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 100;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 100;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 100;
+ cl.cshifts[CSHIFT_POWERUP].percent = 100;
+ }
+ else if (cl.items & IT_INVULNERABILITY)
+ {
+ cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 255;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255;
+ cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0;
+ cl.cshifts[CSHIFT_POWERUP].percent = 30;
+ }
+ else
+ cl.cshifts[CSHIFT_POWERUP].percent = 0;
}
- else
- cl.cshifts[CSHIFT_POWERUP].percent = 0;
+
+ cl.cshifts[CSHIFT_VCSHIFT].destcolor[0] = v_cshift.destcolor[0];
+ cl.cshifts[CSHIFT_VCSHIFT].destcolor[1] = v_cshift.destcolor[1];
+ cl.cshifts[CSHIFT_VCSHIFT].destcolor[2] = v_cshift.destcolor[2];
+ cl.cshifts[CSHIFT_VCSHIFT].percent = v_cshift.percent;
// LordHavoc: fixed V_CalcBlend
for (j = 0;j < NUM_CSHIFTS;j++)
if (a2 > 0)
{
VectorLerp(r_refdef.viewblend, a2, cl.cshifts[j].destcolor, r_refdef.viewblend);
- r_refdef.viewblend[3] = 1 - (1 - r_refdef.viewblend[3]) * (1 - a2); // correct alpha multiply... took a while to find it on the web
+ r_refdef.viewblend[3] = (1 - (1 - r_refdef.viewblend[3]) * (1 - a2)); // correct alpha multiply... took a while to find it on the web
}
}
// saturate color (to avoid blending in black)
r_refdef.viewblend[0] = bound(0.0f, r_refdef.viewblend[0] * (1.0f/255.0f), 1.0f);
r_refdef.viewblend[1] = bound(0.0f, r_refdef.viewblend[1] * (1.0f/255.0f), 1.0f);
r_refdef.viewblend[2] = bound(0.0f, r_refdef.viewblend[2] * (1.0f/255.0f), 1.0f);
- r_refdef.viewblend[3] = bound(0.0f, r_refdef.viewblend[3] , 1.0f);
+ r_refdef.viewblend[3] = bound(0.0f, r_refdef.viewblend[3] * gl_polyblend.value, 1.0f);
}
}