diff --git a/source/games/sw/src/draw.cpp b/source/games/sw/src/draw.cpp index fcc785b58..77285d94b 100644 --- a/source/games/sw/src/draw.cpp +++ b/source/games/sw/src/draw.cpp @@ -312,10 +312,13 @@ void DoShadows(tspriteArray& tsprites, tspritetype* tsp, double viewz) scale = tsp->scale; } - loz = DoShadowFindGroundPoint(tsp); - if (ownerActor->user.lowActor && (ownerActor->user.lowActor->spr.cstat & (CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_ALIGNMENT_FLOOR))) + loz = ownerActor->user.loz; + if (ownerActor->user.lowActor) { - loz = ownerActor->user.loz; + if (!(ownerActor->user.lowActor->spr.cstat & (CSTAT_SPRITE_ALIGNMENT_WALL | CSTAT_SPRITE_ALIGNMENT_FLOOR))) + { + loz = DoShadowFindGroundPoint(tsp); + } } // need to find the ground here