Merge branch 'fix-model-tilt' into 'master'

Fix model tilting on slopes

See merge request KartKrew/Kart!487
This commit is contained in:
SteelT 2021-12-12 04:41:41 +00:00
commit 980acccdb2
3 changed files with 10 additions and 4 deletions

View file

@ -1650,7 +1650,7 @@ boolean HWR_DrawModel(gl_vissprite_t *spr)
} }
{ {
fixed_t anglef = AngleFixed(R_SpriteRotationAngle(spr->mobj, NULL)); fixed_t anglef = AngleFixed(R_ModelRotationAngle(spr->mobj, NULL));
p.rollangle = 0.0f; p.rollangle = 0.0f;

View file

@ -42,6 +42,7 @@ patch_t *Patch_GetRotatedSprite(
INT32 R_GetRollAngle(angle_t rollangle); INT32 R_GetRollAngle(angle_t rollangle);
angle_t R_GetPitchRollAngle(mobj_t *mobj, player_t *viewPlayer); angle_t R_GetPitchRollAngle(mobj_t *mobj, player_t *viewPlayer);
angle_t R_ModelRotationAngle(mobj_t *mobj, player_t *viewPlayer);
angle_t R_SpriteRotationAngle(mobj_t *mobj, player_t *viewPlayer); angle_t R_SpriteRotationAngle(mobj_t *mobj, player_t *viewPlayer);
#endif #endif

View file

@ -64,10 +64,9 @@ static angle_t R_PlayerSpriteRotation(player_t *player, player_t *viewPlayer)
return rollAngle; return rollAngle;
} }
angle_t R_SpriteRotationAngle(mobj_t *mobj, player_t *viewPlayer) angle_t R_ModelRotationAngle(mobj_t *mobj, player_t *viewPlayer)
{ {
angle_t rollOrPitch = R_GetPitchRollAngle(mobj, viewPlayer); angle_t rollAngle = mobj->rollangle;
angle_t rollAngle = (rollOrPitch + mobj->rollangle);
if (mobj->player) if (mobj->player)
{ {
@ -77,6 +76,12 @@ angle_t R_SpriteRotationAngle(mobj_t *mobj, player_t *viewPlayer)
return rollAngle; return rollAngle;
} }
angle_t R_SpriteRotationAngle(mobj_t *mobj, player_t *viewPlayer)
{
angle_t rollOrPitch = R_GetPitchRollAngle(mobj, viewPlayer);
return (rollOrPitch + R_ModelRotationAngle(mobj, viewPlayer));
}
INT32 R_GetRollAngle(angle_t rollangle) INT32 R_GetRollAngle(angle_t rollangle)
{ {
INT32 ra = AngleFixed(rollangle)>>FRACBITS; INT32 ra = AngleFixed(rollangle)>>FRACBITS;