mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 18:42:26 +00:00
- don't draw invalid shadow sprites.
This commit is contained in:
parent
e2a1190e32
commit
d1b4bef98d
1 changed files with 13 additions and 12 deletions
|
@ -250,7 +250,6 @@ int DoShadowFindGroundPoint(tspritetype* tspr)
|
|||
|
||||
void DoShadows(tspriteArray& tsprites, tspritetype* tsp, int viewz, int camang)
|
||||
{
|
||||
tspritetype* tSpr = tsprites.newTSprite();
|
||||
auto ownerActor = static_cast<DSWActor*>(tsp->ownerActor);
|
||||
int ground_dist = 0;
|
||||
int view_dist = 0;
|
||||
|
@ -271,25 +270,18 @@ void DoShadows(tspriteArray& tsprites, tspritetype* tsp, int viewz, int camang)
|
|||
}
|
||||
|
||||
tsp->sectp = sect;
|
||||
*tSpr = *tsp;
|
||||
// shadow is ALWAYS draw last - status is priority
|
||||
tSpr->statnum = MAXSTATUS;
|
||||
tSpr->sectp = sect;
|
||||
|
||||
if ((tsp->yrepeat >> 2) > 4)
|
||||
{
|
||||
yrepeat = (tsp->yrepeat >> 2) - (GetSpriteSizeY(tsp) / 64) * 2;
|
||||
xrepeat = tSpr->xrepeat;
|
||||
xrepeat = tsp->xrepeat;
|
||||
}
|
||||
else
|
||||
{
|
||||
yrepeat = tSpr->yrepeat;
|
||||
xrepeat = tSpr->xrepeat;
|
||||
yrepeat = tsp->yrepeat;
|
||||
xrepeat = tsp->xrepeat;
|
||||
}
|
||||
|
||||
tSpr->shade = 127;
|
||||
tSpr->cstat |= CSTAT_SPRITE_TRANSLUCENT;
|
||||
|
||||
loz = ownerActor->user.loz;
|
||||
if (ownerActor->user.lowActor)
|
||||
{
|
||||
|
@ -300,11 +292,20 @@ void DoShadows(tspriteArray& tsprites, tspritetype* tsp, int viewz, int camang)
|
|||
}
|
||||
|
||||
// need to find the ground here
|
||||
tSpr->set_int_z(loz);
|
||||
|
||||
// if below or close to sprites z don't bother to draw it
|
||||
if ((viewz - loz) > -Z(8))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
tspritetype* tSpr = tsprites.newTSprite();
|
||||
*tSpr = *tsp;
|
||||
// shadow is ALWAYS draw last - status is priority
|
||||
tSpr->statnum = MAXSTATUS;
|
||||
tSpr->shade = 127;
|
||||
tSpr->cstat |= CSTAT_SPRITE_TRANSLUCENT;
|
||||
tSpr->set_int_z(loz);
|
||||
|
||||
// if close to shadows z shrink it
|
||||
view_dist = labs(loz - viewz) >> 8;
|
||||
|
|
Loading…
Reference in a new issue