(svn r5631) Don't allocate memory for information about a sprite which isn't drawn
--- a/viewport.c Sat Jul 29 11:15:34 2006 +0000
+++ b/viewport.c Sat Jul 29 13:06:00 2006 +0000
@@ -463,6 +463,15 @@
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 @@
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;