mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(svn r6155) -Codechange: split Destroy routine from SpriteGroupPoolCleanBlock
Last change is to prepare for new pool system.
This commit is contained in:
parent
5d991a87d4
commit
b3cf0189a3
@ -16,37 +16,38 @@ enum {
|
||||
static uint _spritegroup_count = 0;
|
||||
static MemoryPool _spritegroup_pool;
|
||||
|
||||
void DestroySpriteGroup(SpriteGroup *group)
|
||||
{
|
||||
/* Free dynamically allocated memory */
|
||||
switch (group->type) {
|
||||
case SGT_REAL:
|
||||
free(group->g.real.loaded);
|
||||
free(group->g.real.loading);
|
||||
break;
|
||||
|
||||
case SGT_DETERMINISTIC:
|
||||
free(group->g.determ.adjusts);
|
||||
free(group->g.determ.ranges);
|
||||
break;
|
||||
|
||||
case SGT_RANDOMIZED:
|
||||
free(group->g.random.groups);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void SpriteGroupPoolCleanBlock(uint start_item, uint end_item)
|
||||
{
|
||||
uint i;
|
||||
|
||||
for (i = start_item; i <= end_item; i++) {
|
||||
SpriteGroup *group = (SpriteGroup*)GetItemFromPool(&_spritegroup_pool, i);
|
||||
|
||||
/* Free dynamically allocated memory */
|
||||
switch (group->type) {
|
||||
case SGT_REAL:
|
||||
free(group->g.real.loaded);
|
||||
free(group->g.real.loading);
|
||||
break;
|
||||
|
||||
case SGT_DETERMINISTIC:
|
||||
free(group->g.determ.adjusts);
|
||||
free(group->g.determ.ranges);
|
||||
break;
|
||||
|
||||
case SGT_RANDOMIZED:
|
||||
free(group->g.random.groups);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
DestroySpriteGroup((SpriteGroup*)GetItemFromPool(&_spritegroup_pool, i));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Initialize the SpriteGroup pool */
|
||||
static MemoryPool _spritegroup_pool = { "SpriteGr", SPRITEGROUP_POOL_MAX_BLOCKS, SPRITEGROUP_POOL_BLOCK_SIZE_BITS, sizeof(SpriteGroup), NULL, &SpriteGroupPoolCleanBlock, 0, 0, NULL };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user