cvar_t v_kickroll = {"v_kickroll", "0.6", false};
cvar_t v_kickpitch = {"v_kickpitch", "0.6", false};
+cvar_t v_punch = {"v_punch", "1", false};
+
cvar_t v_iyaw_cycle = {"v_iyaw_cycle", "2", false};
cvar_t v_iroll_cycle = {"v_iroll_cycle", "0.5", false};
cvar_t v_ipitch_cycle = {"v_ipitch_cycle", "1", false};
Used by view and sv_user
===============
*/
-vec3_t forward, right, up;
-
float V_CalcRoll (vec3_t angles, vec3_t velocity)
{
+ vec3_t right;
float sign;
float side;
float value;
- AngleVectors (angles, forward, right, up);
+ AngleVectors (angles, NULL, right, NULL);
side = DotProduct (velocity, right);
sign = side < 0 ? -1 : 1;
side = fabs(side);
if ( fabs(cl.cmd.forwardmove) < cl_forwardspeed.value)
cl.driftmove = 0;
else
- cl.driftmove += host_frametime;
+ cl.driftmove += cl.frametime;
if ( cl.driftmove > v_centermove.value)
{
return;
}
- move = host_frametime * cl.pitchvel;
- cl.pitchvel += host_frametime * v_centerspeed.value;
+ move = cl.frametime * cl.pitchvel;
+ cl.pitchvel += cl.frametime * v_centerspeed.value;
-//Con_Printf ("move: %f (%f)\n", move, host_frametime);
+//Con_Printf ("move: %f (%f)\n", move, cl.frametime);
if (delta > 0)
{
int armor, blood;
vec3_t from;
int i;
- vec3_t forward, right, up;
+ vec3_t forward, right;
entity_t *ent;
float side;
float count;
if (count < 10)
count = 10;
- cl.faceanimtime = cl.time + 0.2; // but sbar face into pain frame
+ cl.faceanimtime = cl.time + 0.2; // put sbar face into pain frame
if (gl_polyblend.value)
{
VectorSubtract (from, ent->origin, from);
VectorNormalize (from);
- AngleVectors (ent->angles, forward, right, up);
+ AngleVectors (ent->angles, forward, right, NULL);
side = DotProduct (from, right);
v_dmg_roll = count*side*v_kickroll.value;
*/
void CalcGunAngle (void)
{
+ /*
float yaw, pitch, move;
static float oldyaw = 0;
static float oldpitch = 0;
pitch = 10;
if (pitch < -10)
pitch = -10;
- move = host_frametime*20;
+ move = cl.frametime*20;
if (yaw > oldyaw)
{
if (oldyaw + move < yaw)
cl.viewent.angles[YAW] = r_refdef.viewangles[YAW] + yaw;
cl.viewent.angles[PITCH] = - (r_refdef.viewangles[PITCH] + pitch);
+ */
+ cl.viewent.angles[YAW] = r_refdef.viewangles[YAW];
+ cl.viewent.angles[PITCH] = -r_refdef.viewangles[PITCH];
cl.viewent.angles[ROLL] -= v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value;
cl.viewent.angles[PITCH] -= v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value;
{
r_refdef.viewangles[ROLL] += v_dmg_time/v_kicktime.value*v_dmg_roll;
r_refdef.viewangles[PITCH] += v_dmg_time/v_kicktime.value*v_dmg_pitch;
- v_dmg_time -= host_frametime;
+ v_dmg_time -= cl.frametime;
}
if (cl.stats[STAT_HEALTH] <= 0)
VectorCopy (ent->angles, r_refdef.viewangles);
view->model = NULL;
-// allways idle in intermission
+// always idle in intermission
old = v_idlescale.value;
v_idlescale.value = 1;
V_AddIdle ();
{
entity_t *ent, *view;
int i;
- vec3_t forward, right, up;
+ vec3_t forward;
vec3_t angles;
float bob;
static float oldz = 0;
angles[YAW] = ent->angles[YAW];
angles[ROLL] = ent->angles[ROLL];
- AngleVectors (angles, forward, right, up);
+ AngleVectors (angles, forward, NULL, NULL);
V_BoundOffsets ();
// set up the refresh position
if (!intimerefresh)
+ if (v_punch.value)
{
VectorAdd (r_refdef.viewangles, cl.punchangle, r_refdef.viewangles);
}
else
oldz = ent->origin[2];
+// LordHavoc: origin view kick
+ VectorAdd(r_refdef.vieworg, cl.punchvector, r_refdef.vieworg);
+
if (chase_active.value)
Chase_Update ();
}
Cvar_RegisterVariable (&v_kicktime);
Cvar_RegisterVariable (&v_kickroll);
Cvar_RegisterVariable (&v_kickpitch);
+
+ Cvar_RegisterVariable (&v_punch);
}