(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.
This commit is contained in:
rubidium 2009-05-23 16:39:55 +00:00
parent b2aed51f8e
commit 9f51f3a0f9
1 changed files with 5 additions and 1 deletions

View File

@ -43,7 +43,11 @@ enum SpriteGroupType {
struct SpriteGroup;
typedef uint32 SpriteGroupID;
typedef Pool<SpriteGroup, SpriteGroupID, 512, 64000> 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<SpriteGroup, SpriteGroupID, 1024, 1 << 30> SpriteGroupPool;
extern SpriteGroupPool _spritegroup_pool;
/* Common wrapper for all the different sprite group types */