mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-22 19:51:16 +00:00
- avoid integer math for wall sprites.
This commit is contained in:
parent
c59e4f8a10
commit
7a45738d7e
1 changed files with 7 additions and 7 deletions
|
@ -1127,7 +1127,6 @@ void HWWall::ProcessWallSprite(HWDrawInfo* di, tspritetype* spr, sectortype* sec
|
||||||
seg = nullptr;
|
seg = nullptr;
|
||||||
Sprite = spr;
|
Sprite = spr;
|
||||||
DVector2 pos[2];
|
DVector2 pos[2];
|
||||||
int sprz = spr->int_pos().Z;
|
|
||||||
|
|
||||||
GetWallSpritePosition(spr, spr->pos.XY(), pos, true);
|
GetWallSpritePosition(spr, spr->pos.XY(), pos, true);
|
||||||
glseg.x1 = pos[0].X;
|
glseg.x1 = pos[0].X;
|
||||||
|
@ -1188,12 +1187,13 @@ void HWWall::ProcessWallSprite(HWDrawInfo* di, tspritetype* spr, sectortype* sec
|
||||||
if (spr->cstat & CSTAT_SPRITE_YFLIP)
|
if (spr->cstat & CSTAT_SPRITE_YFLIP)
|
||||||
topofs = -topofs;
|
topofs = -topofs;
|
||||||
|
|
||||||
sprz -= ((topofs * spr->yrepeat) << 2);
|
float yrepeat = spr->yrepeat * (1.f / 64.f);
|
||||||
|
float sprz = spr->pos.Z - topofs * yrepeat;
|
||||||
|
|
||||||
if (spr->cstat & CSTAT_SPRITE_YCENTER)
|
if (spr->cstat & CSTAT_SPRITE_YCENTER)
|
||||||
{
|
{
|
||||||
sprz += ((height * spr->yrepeat) << 1);
|
sprz += height * yrepeat * 0.5f;
|
||||||
if (height & 1) sprz += (spr->yrepeat << 1); // Odd yspans (taken from polymost as-is)
|
if (height & 1) sprz += yrepeat * 0.5f; // Odd yspans
|
||||||
}
|
}
|
||||||
|
|
||||||
glseg.fracleft = 0;
|
glseg.fracleft = 0;
|
||||||
|
@ -1203,8 +1203,8 @@ void HWWall::ProcessWallSprite(HWDrawInfo* di, tspritetype* spr, sectortype* sec
|
||||||
tcs[UPLFT].v = tcs[UPRGT].v = (spr->cstat & CSTAT_SPRITE_YFLIP) ? 1.f : 0.f;
|
tcs[UPLFT].v = tcs[UPRGT].v = (spr->cstat & CSTAT_SPRITE_YFLIP) ? 1.f : 0.f;
|
||||||
tcs[LOLFT].v = tcs[LORGT].v = (spr->cstat & CSTAT_SPRITE_YFLIP) ? 0.f : 1.f;
|
tcs[LOLFT].v = tcs[LORGT].v = (spr->cstat & CSTAT_SPRITE_YFLIP) ? 0.f : 1.f;
|
||||||
|
|
||||||
zbottom[0] = zbottom[1] = (sprz) * (1 / -256.);
|
zbottom[0] = zbottom[1] = -sprz;
|
||||||
ztop[0] = ztop[1] = (sprz - ((height * spr->yrepeat) << 2)) * (1 / -256.);
|
ztop[0] = ztop[1] = -sprz + height * yrepeat;
|
||||||
if (zbottom[0] > ztop[0])
|
if (zbottom[0] > ztop[0])
|
||||||
{
|
{
|
||||||
// reorder coordinates to make the clipping code below behave.
|
// reorder coordinates to make the clipping code below behave.
|
||||||
|
|
Loading…
Reference in a new issue