mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 20:41:46 +00:00
Don't add tumble/sliptide rollangle to camera tilt
This commit is contained in:
parent
0818be1b8a
commit
9dcce02e5e
3 changed files with 15 additions and 5 deletions
|
|
@ -4302,7 +4302,7 @@ DoABarrelRoll (player_t *player)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
slope = InvAngle(R_SpriteRotationAngle(player->mo));
|
slope = InvAngle(R_GetPitchRollAngle(player->mo));
|
||||||
|
|
||||||
if (AbsAngle(slope) < ANGLE_11hh)
|
if (AbsAngle(slope) < ANGLE_11hh)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ patch_t *Patch_GetRotatedSprite(
|
||||||
boolean flip, boolean adjustfeet,
|
boolean flip, boolean adjustfeet,
|
||||||
void *info, INT32 rotationangle);
|
void *info, INT32 rotationangle);
|
||||||
INT32 R_GetRollAngle(angle_t rollangle);
|
INT32 R_GetRollAngle(angle_t rollangle);
|
||||||
|
angle_t R_GetPitchRollAngle(mobj_t *mobj);
|
||||||
angle_t R_SpriteRotationAngle(mobj_t *mobj);
|
angle_t R_SpriteRotationAngle(mobj_t *mobj);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,18 +20,27 @@
|
||||||
fixed_t rollcosang[ROTANGLES];
|
fixed_t rollcosang[ROTANGLES];
|
||||||
fixed_t rollsinang[ROTANGLES];
|
fixed_t rollsinang[ROTANGLES];
|
||||||
|
|
||||||
|
angle_t R_GetPitchRollAngle(mobj_t *mobj)
|
||||||
|
{
|
||||||
|
angle_t viewingAngle = R_PointToAngle(mobj->x, mobj->y);
|
||||||
|
|
||||||
|
fixed_t pitchMul = -FINESINE(viewingAngle >> ANGLETOFINESHIFT);
|
||||||
|
fixed_t rollMul = FINECOSINE(viewingAngle >> ANGLETOFINESHIFT);
|
||||||
|
|
||||||
|
angle_t rollOrPitch = FixedMul(mobj->pitch, pitchMul) + FixedMul(mobj->roll, rollMul);
|
||||||
|
|
||||||
|
return rollOrPitch;
|
||||||
|
}
|
||||||
|
|
||||||
angle_t R_SpriteRotationAngle(mobj_t *mobj)
|
angle_t R_SpriteRotationAngle(mobj_t *mobj)
|
||||||
{
|
{
|
||||||
angle_t viewingAngle = R_PointToAngle(mobj->x, mobj->y);
|
angle_t viewingAngle = R_PointToAngle(mobj->x, mobj->y);
|
||||||
angle_t angleDelta = (viewingAngle - mobj->angle);
|
angle_t angleDelta = (viewingAngle - mobj->angle);
|
||||||
|
|
||||||
fixed_t pitchMul = -FINESINE(viewingAngle >> ANGLETOFINESHIFT);
|
|
||||||
fixed_t rollMul = FINECOSINE(viewingAngle >> ANGLETOFINESHIFT);
|
|
||||||
|
|
||||||
angle_t sliptideLift = mobj->player
|
angle_t sliptideLift = mobj->player
|
||||||
? K_Sliptiding(mobj->player) * ANGLE_11hh : 0;
|
? K_Sliptiding(mobj->player) * ANGLE_11hh : 0;
|
||||||
|
|
||||||
angle_t rollOrPitch = FixedMul(mobj->pitch, pitchMul) + FixedMul(mobj->roll, rollMul);
|
angle_t rollOrPitch = R_GetPitchRollAngle(mobj);
|
||||||
angle_t rollAngle = (rollOrPitch + mobj->rollangle);
|
angle_t rollAngle = (rollOrPitch + mobj->rollangle);
|
||||||
|
|
||||||
if (sliptideLift)
|
if (sliptideLift)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue