diff options
author | tron <tron@openttd.org> | 2006-07-29 13:06:00 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-07-29 13:06:00 +0000 |
commit | fef9818d3cee1c2d15a25d1b5fa83c5c26bfde16 (patch) | |
tree | 81011765145ba6a878b7ee703fc81005366ae450 | |
parent | 82ebf842d1af1e654826bea41b729bbdf54a2dfb (diff) | |
download | openttd-fef9818d3cee1c2d15a25d1b5fa83c5c26bfde16.tar.xz |
(svn r5631) Don't allocate memory for information about a sprite which isn't drawn
-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; |