Mercurial > hg > openttd
changeset 11998:683ebb3d3eb6 draft
(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.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Sat, 23 May 2009 16:39:55 +0000 |
parents | e2187548a5e4 |
children | b8e87660b9fc |
files | src/newgrf_spritegroup.h |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/newgrf_spritegroup.h +++ b/src/newgrf_spritegroup.h @@ -43,7 +43,11 @@ 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 */