From fef9818d3cee1c2d15a25d1b5fa83c5c26bfde16 Mon Sep 17 00:00:00 2001 From: tron Date: Sat, 29 Jul 2006 13:06:00 +0000 Subject: (svn r5631) Don't allocate memory for information about a sprite which isn't drawn --- viewport.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'viewport.c') 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; -- cgit v1.2.3-54-g00ecf