mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-01 06:00:45 +00:00
Invert OpenGL rollangle for papersprites to match software renderer behaviour
This commit is contained in:
parent
43eb7526c0
commit
42fa7f4723
1 changed files with 11 additions and 3 deletions
|
@ -5180,7 +5180,15 @@ static void HWR_ProjectSprite(mobj_t *thing)
|
|||
if (thing->rollangle
|
||||
&& !(splat && !(thing->renderflags & RF_NOSPLATROLLANGLE)))
|
||||
{
|
||||
rollangle = R_GetRollAngle(thing->rollangle);
|
||||
if (papersprite)
|
||||
{
|
||||
// a positive rollangle should should pitch papersprites upwards relative to their facing angle
|
||||
rollangle = R_GetRollAngle(InvAngle(thing->rollangle));
|
||||
}
|
||||
else
|
||||
{
|
||||
rollangle = R_GetRollAngle(thing->rollangle);
|
||||
}
|
||||
rotsprite = Patch_GetRotatedSprite(sprframe, (thing->frame & FF_FRAMEMASK), rot, flip, false, sprinfo, rollangle);
|
||||
|
||||
if (rotsprite != NULL)
|
||||
|
@ -5234,7 +5242,7 @@ static void HWR_ProjectSprite(mobj_t *thing)
|
|||
{
|
||||
interpmobjstate_t casterinterp = { 0 };
|
||||
fixed_t groundz;
|
||||
fixed_t floordiff;
|
||||
fixed_t floordiff;
|
||||
|
||||
if (R_UsingFrameInterpolation() && !paused)
|
||||
{
|
||||
|
@ -5244,7 +5252,7 @@ static void HWR_ProjectSprite(mobj_t *thing)
|
|||
{
|
||||
R_InterpolateMobjState(caster, FRACUNIT, &casterinterp);
|
||||
}
|
||||
|
||||
|
||||
groundz = R_GetShadowZ(thing, NULL);
|
||||
floordiff = abs(((thing->eflags & MFE_VERTICALFLIP) ? caster->height : 0) + casterinterp.z - groundz);
|
||||
|
||||
|
|
Loading…
Reference in a new issue