side = DotProduct (velocity, right);
sign = side < 0 ? -1 : 1;
side = fabs(side);
-
+
value = cl_rollangle.value;
-// if (cl.inwater)
-// value *= 6;
if (side < cl_rollspeed.value)
side = side * value / cl_rollspeed.value;
// (don't count Z, or jumping messes it up)
bob = sqrt(cl.velocity[0]*cl.velocity[0] + cl.velocity[1]*cl.velocity[1]) * cl_bob.value;
- //Con_Printf ("speed: %5.1f\n", Length(cl.velocity));
bob = bob*0.3 + bob*0.7*sin(cycle);
bob = bound(-7, bob, 4);
return bob;
void V_StartPitchDrift (void)
{
-#if 1
if (cl.laststop == cl.time)
- {
return; // something else is keeping it from drifting
- }
-#endif
+
if (cl.nodrift || !cl.pitchvel)
{
cl.pitchvel = v_centerspeed.value;
move = cl.frametime * cl.pitchvel;
cl.pitchvel += cl.frametime * v_centerspeed.value;
-//Con_Printf ("move: %f (%f)\n", move, cl.frametime);
-
if (delta > 0)
{
if (move > delta)
}
-
-
-
/*
==============================================================================
cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 255;
cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 80;
cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 0;
- cl.cshifts[CSHIFT_CONTENTS].percent = 150;
+ cl.cshifts[CSHIFT_CONTENTS].percent = 150 >> 1;
break;
case CONTENTS_SLIME:
cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 0;
cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 25;
cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 5;
- cl.cshifts[CSHIFT_CONTENTS].percent = 150;
+ cl.cshifts[CSHIFT_CONTENTS].percent = 150 >> 1;
break;
default:
cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 130;
cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 80;
cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 50;
- cl.cshifts[CSHIFT_CONTENTS].percent = 128;
+ cl.cshifts[CSHIFT_CONTENTS].percent = 128 >> 1;
}
if (cl.items & IT_QUAD)
float bob;
float side;
+ if (cls.state != ca_connected || !cl.worldmodel)
+ return;
+
// ent is the player model (visible when out of body)
ent = &cl_entities[cl.viewentity];
// view is the weapon model (only visible from inside body)
V_DriftPitch ();
- VectorCopy (ent->render.origin, r_refdef.vieworg);
+ VectorCopy (cl.viewentorigin, r_refdef.vieworg);
if (!intimerefresh)
VectorCopy (cl.viewangles, r_refdef.viewangles);
if (cl.intermission)
{
view->render.model = NULL;
+ VectorCopy (ent->render.angles, r_refdef.viewangles);
V_AddIdle (1);
}
else if (chase_active.value)
{
+ r_refdef.vieworg[2] += cl.viewheight;
Chase_Update ();
V_AddIdle (v_idlescale.value);
}
// set up gun
view->state_current.modelindex = cl.stats[STAT_WEAPON];
view->state_current.frame = cl.stats[STAT_WEAPONFRAME];
- view->render.origin[0] = ent->render.origin[0] + bob * 0.4 * forward[0];
- view->render.origin[1] = ent->render.origin[1] + bob * 0.4 * forward[1];
- view->render.origin[2] = ent->render.origin[2] + bob * 0.4 * forward[2] + cl.viewheight + bob;
+ VectorCopy(r_refdef.vieworg, view->render.origin);
+ //view->render.origin[0] = ent->render.origin[0] + bob * 0.4 * forward[0];
+ //view->render.origin[1] = ent->render.origin[1] + bob * 0.4 * forward[1];
+ //view->render.origin[2] = ent->render.origin[2] + bob * 0.4 * forward[2] + cl.viewheight + bob;
view->render.angles[PITCH] = -r_refdef.viewangles[PITCH] - v_idlescale.value * sin(cl.time*v_iyaw_cycle.value) * v_iyaw_level.value;
view->render.angles[YAW] = r_refdef.viewangles[YAW] - v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value;
view->render.angles[ROLL] = r_refdef.viewangles[ROLL] - v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value;
view->render.colormap = -1; // no special coloring
view->render.alpha = ent->render.alpha; // LordHavoc: if the player is transparent, so is the gun
view->render.effects = ent->render.effects;
- view->render.scale = 1;
+ view->render.scale = 1.0 / 3.0;
// LordHavoc: origin view kick added
if (!intimerefresh)
Cvar_RegisterVariable (&v_kickpitch);
}
-