From 9f51f3a0f9c103b738af06eb77d08d6786faa9e9 Mon Sep 17 00:00:00 2001 From: rubidium Date: Sat, 23 May 2009 16:39:55 +0000 Subject: [PATCH] (svn r16404) -Fix [FS#2911] (r16378): the number of spritegroups got halved when the new pool was added, which mean there weren't enough spritegroups when you have more than about a dozen ECS vectors. -Change: increase the spritegroup pool's maximum size to something more than the number of real sprites that OpenTTD can handle; for example ECS has about 30 spritegroups per real sprite. With the 'old' limit that would mean 'only' about 4000 real sprites worth of spritegroups could be loaded. --- src/newgrf_spritegroup.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/newgrf_spritegroup.h b/src/newgrf_spritegroup.h index e6bbeb9d39..bb56835188 100644 --- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -43,7 +43,11 @@ enum SpriteGroupType { struct SpriteGroup; typedef uint32 SpriteGroupID; -typedef Pool SpriteGroupPool; + +/* SPRITE_WIDTH is 24. ECS has roughly 30 sprite groups per real sprite. + * Adding an 'extra' margin would be assuming 64 sprite groups per real + * sprite. 64 = 2^6, so 2^30 should be enough (for now) */ +typedef Pool SpriteGroupPool; extern SpriteGroupPool _spritegroup_pool; /* Common wrapper for all the different sprite group types */