diff options
-rw-r--r-- | viewport.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/viewport.c b/viewport.c index b1c3173fe..eb0cbe51e 100644 --- a/viewport.c +++ b/viewport.c @@ -463,6 +463,15 @@ void AddSortableSpriteToDraw(uint32 image, int x, int y, int w, int h, byte dz, return; } + pt = RemapCoords(x, y, z); + spr = GetSprite(image & SPRITE_MASK); + if ((ps->left = (pt.x += spr->x_offs)) >= vd->dpi.left + vd->dpi.width || + (ps->right = (pt.x + spr->width )) <= vd->dpi.left || + (ps->top = (pt.y += spr->y_offs)) >= vd->dpi.top + vd->dpi.height || + (ps->bottom = (pt.y + spr->height)) <= vd->dpi.top) { + return; + } + vd->spritelist_mem += sizeof(ParentSpriteToDraw); ps->image = image; @@ -475,16 +484,6 @@ void AddSortableSpriteToDraw(uint32 image, int x, int y, int w, int h, byte dz, ps->zmin = z; ps->zmax = z + dz - 1; - pt = RemapCoords(x, y, z); - - spr = GetSprite(image & SPRITE_MASK); - if ((ps->left = (pt.x += spr->x_offs)) >= vd->dpi.left + vd->dpi.width || - (ps->right = (pt.x + spr->width )) <= vd->dpi.left || - (ps->top = (pt.y += spr->y_offs)) >= vd->dpi.top + vd->dpi.height || - (ps->bottom = (pt.y + spr->height)) <= vd->dpi.top) { - return; - } - ps->unk16 = 0; ps->child = NULL; vd->last_child = &ps->child; |