mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-18 20:52:26 +00:00
Tilt towards even while falling, make more strict as a result
This commit is contained in:
parent
f3bb8833a1
commit
c207de5d5d
2 changed files with 42 additions and 1 deletions
|
|
@ -3415,7 +3415,7 @@ static angle_t K_TumbleSlope(mobj_t *mobj, angle_t pitch, angle_t roll)
|
|||
return FixedMul(pitch, pitchMul) + FixedMul(roll, rollMul);
|
||||
}
|
||||
|
||||
#define STEEP_VAL (ANG60)
|
||||
#define STEEP_VAL (ANGLE_45 - ANGLE_11hh) // (ANG60)
|
||||
|
||||
void K_CheckSlopeTumble(player_t *player, angle_t oldPitch, angle_t oldRoll)
|
||||
{
|
||||
|
|
|
|||
41
src/p_mobj.c
41
src/p_mobj.c
|
|
@ -2808,6 +2808,47 @@ void P_PlayerZMovement(mobj_t *mo)
|
|||
mo->eflags &= ~MFE_JUSTHITFLOOR;
|
||||
P_CheckGravity(mo, true);
|
||||
}
|
||||
|
||||
// Even out pitch & roll slowly over time when falling.
|
||||
// Helps give OpenGL models a bit of the tumble tell.
|
||||
if (P_MobjFlip(mo) * mo->momz < 0)
|
||||
{
|
||||
const angle_t evenSpeed = (ANG1 << 1) / 3; // 0.66 degrees
|
||||
INT32 pitchDelta = AngleDeltaSigned(mo->pitch, 0);
|
||||
INT32 rollDelta = AngleDeltaSigned(mo->roll, 0);
|
||||
|
||||
if (abs(pitchDelta) <= evenSpeed)
|
||||
{
|
||||
mo->pitch = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (pitchDelta > 0)
|
||||
{
|
||||
mo->pitch -= evenSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
mo->pitch += evenSpeed;
|
||||
}
|
||||
}
|
||||
|
||||
if (abs(rollDelta) <= evenSpeed)
|
||||
{
|
||||
mo->roll = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (rollDelta > 0)
|
||||
{
|
||||
mo->roll -= evenSpeed;
|
||||
}
|
||||
else
|
||||
{
|
||||
mo->roll += evenSpeed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (((mo->eflags & MFE_VERTICALFLIP && mo->z < mo->floorz) || (!(mo->eflags & MFE_VERTICALFLIP) && mo->z + mo->height > mo->ceilingz))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue