Code: Select all
float v_oldz, v_stepz;
float v_steptime;
Code: Select all
// smooth out stair step ups
if (cl.onground && ent->origin[2] - v_stepz > 0)
{
v_stepz = v_oldz + (cl.time - v_steptime) * 80; // BJP Quake used 160 here
if (v_stepz > ent->origin[2])
{
v_steptime = cl.time;
v_stepz = v_oldz = ent->origin[2];
}
if (ent->origin[2] - v_stepz > 12)
{
v_steptime = cl.time;
v_stepz = v_oldz = ent->origin[2] - 12;
}
r_refdef.vieworigin[2] += v_stepz - ent->origin[2];
view->origin[2] += v_stepz - ent->origin[2];
}
else
{
v_oldz = v_stepz = ent->origin[2];
v_steptime = cl.time;
}
Code: Select all
void V_NewMap (void)
{
v_oldz = v_stepz = 0;
v_steptime = 0;
}