mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-03-08 20:26:17 +00:00
Fix camera jitter when changing waypoints
This commit is contained in:
parent
0f9f10d90f
commit
2dae6833c2
1 changed files with 18 additions and 18 deletions
36
src/p_mobj.c
36
src/p_mobj.c
|
|
@ -9500,30 +9500,30 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
|
||||
if (mobj->tracer != NULL && P_MobjWasRemoved(mobj->tracer) == false)
|
||||
{
|
||||
fixed_t newX = Easing_Linear(mobj->movecount, mobj->extravalue1, mobj->tracer->x);
|
||||
fixed_t newY = Easing_Linear(mobj->movecount, mobj->extravalue2, mobj->tracer->y);
|
||||
fixed_t newZ = Easing_Linear(mobj->movecount, mobj->cusval, mobj->tracer->z);
|
||||
|
||||
mobj->angle = Easing_Linear(mobj->movecount, mobj->movedir, mobj->tracer->angle);
|
||||
mobj->pitch = Easing_Linear(mobj->movecount, mobj->lastlook, mobj->tracer->pitch);
|
||||
|
||||
mobj->momx = newX - mobj->x;
|
||||
mobj->momy = newY - mobj->y;
|
||||
mobj->momz = newZ - mobj->z;
|
||||
|
||||
mobj->movecount += mobj->movefactor;
|
||||
|
||||
if (mobj->movecount < FRACUNIT)
|
||||
if (mobj->movecount >= FRACUNIT)
|
||||
{
|
||||
fixed_t newX = Easing_Linear(mobj->movecount, mobj->extravalue1, mobj->tracer->x);
|
||||
fixed_t newY = Easing_Linear(mobj->movecount, mobj->extravalue2, mobj->tracer->y);
|
||||
fixed_t newZ = Easing_Linear(mobj->movecount, mobj->cusval, mobj->tracer->z);
|
||||
mobj->movecount = mobj->movecount % FRACUNIT; // time
|
||||
|
||||
mobj->angle = Easing_Linear(mobj->movecount, mobj->movedir, mobj->tracer->angle);
|
||||
mobj->pitch = Easing_Linear(mobj->movecount, mobj->lastlook, mobj->tracer->pitch);
|
||||
mobj->movedir = mobj->tracer->angle; // start angle
|
||||
mobj->lastlook = mobj->tracer->pitch; // start pitch
|
||||
mobj->extravalue1 = mobj->tracer->x; // start x
|
||||
mobj->extravalue2 = mobj->tracer->y; // start y
|
||||
mobj->cusval = mobj->tracer->z; // start z
|
||||
|
||||
mobj->momx = newX - mobj->x;
|
||||
mobj->momy = newY - mobj->y;
|
||||
mobj->momz = newZ - mobj->z;
|
||||
}
|
||||
else
|
||||
{
|
||||
P_SetTarget(&mobj->tracer, P_GetNextTubeWaypoint(mobj->tracer, false));
|
||||
mobj->movecount = 0; // time
|
||||
mobj->movedir = mobj->angle; // start angle
|
||||
mobj->lastlook = mobj->pitch; // start pitch
|
||||
mobj->extravalue1 = mobj->x; // start x
|
||||
mobj->extravalue2 = mobj->y; // start y
|
||||
mobj->cusval = mobj->z; // start z
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue