equal
deleted
inserted
replaced
1393 /** |
1393 /** |
1394 * Creates a spritegroup representing a callback result |
1394 * Creates a spritegroup representing a callback result |
1395 * @param value The value that was used to represent this callback result |
1395 * @param value The value that was used to represent this callback result |
1396 * @return A spritegroup representing that callback result |
1396 * @return A spritegroup representing that callback result |
1397 */ |
1397 */ |
1398 static SpriteGroup* NewCallBackResultSpriteGroup(uint16 value) |
1398 static const SpriteGroup* NewCallBackResultSpriteGroup(uint16 value) |
1399 { |
1399 { |
1400 SpriteGroup *group = AllocateSpriteGroup(); |
1400 SpriteGroup *group = AllocateSpriteGroup(); |
1401 |
1401 |
1402 group->type = SGT_CALLBACK; |
1402 group->type = SGT_CALLBACK; |
1403 |
1403 |
1418 * Creates a spritegroup representing a sprite number result. |
1418 * Creates a spritegroup representing a sprite number result. |
1419 * @param value The sprite number. |
1419 * @param value The sprite number. |
1420 * @param sprites The number of sprites per set. |
1420 * @param sprites The number of sprites per set. |
1421 * @return A spritegroup representing the sprite number result. |
1421 * @return A spritegroup representing the sprite number result. |
1422 */ |
1422 */ |
1423 static SpriteGroup* NewResultSpriteGroup(SpriteID sprite, byte num_sprites) |
1423 static const SpriteGroup* NewResultSpriteGroup(SpriteID sprite, byte num_sprites) |
1424 { |
1424 { |
1425 SpriteGroup *group = AllocateSpriteGroup(); |
1425 SpriteGroup *group = AllocateSpriteGroup(); |
1426 group->type = SGT_RESULT; |
1426 group->type = SGT_RESULT; |
1427 group->g.result.sprite = sprite; |
1427 group->g.result.sprite = sprite; |
1428 group->g.result.num_sprites = num_sprites; |
1428 group->g.result.num_sprites = num_sprites; |
1473 } |
1473 } |
1474 } |
1474 } |
1475 |
1475 |
1476 /* Helper function to either create a callback or link to a previously |
1476 /* Helper function to either create a callback or link to a previously |
1477 * defined spritegroup. */ |
1477 * defined spritegroup. */ |
1478 static SpriteGroup* GetGroupFromGroupID(byte setid, byte type, uint16 groupid) |
1478 static const SpriteGroup* GetGroupFromGroupID(byte setid, byte type, uint16 groupid) |
1479 { |
1479 { |
1480 if (HASBIT(groupid, 15)) return NewCallBackResultSpriteGroup(groupid); |
1480 if (HASBIT(groupid, 15)) return NewCallBackResultSpriteGroup(groupid); |
1481 |
1481 |
1482 if (groupid >= _cur_grffile->spritegroups_count || _cur_grffile->spritegroups[groupid] == NULL) { |
1482 if (groupid >= _cur_grffile->spritegroups_count || _cur_grffile->spritegroups[groupid] == NULL) { |
1483 grfmsg(GMS_WARN, "NewSpriteGroup(0x%02X:0x%02X): Groupid 0x%04X does not exist, leaving empty.", setid, type, groupid); |
1483 grfmsg(GMS_WARN, "NewSpriteGroup(0x%02X:0x%02X): Groupid 0x%04X does not exist, leaving empty.", setid, type, groupid); |
1486 |
1486 |
1487 return _cur_grffile->spritegroups[groupid]; |
1487 return _cur_grffile->spritegroups[groupid]; |
1488 } |
1488 } |
1489 |
1489 |
1490 /* Helper function to either create a callback or a result sprite group. */ |
1490 /* Helper function to either create a callback or a result sprite group. */ |
1491 static SpriteGroup* CreateGroupFromGroupID(byte feature, byte setid, byte type, uint16 spriteid, uint16 num_sprites) |
1491 static const SpriteGroup* CreateGroupFromGroupID(byte feature, byte setid, byte type, uint16 spriteid, uint16 num_sprites) |
1492 { |
1492 { |
1493 if (HASBIT(spriteid, 15)) return NewCallBackResultSpriteGroup(spriteid); |
1493 if (HASBIT(spriteid, 15)) return NewCallBackResultSpriteGroup(spriteid); |
1494 |
1494 |
1495 if (spriteid >= _cur_grffile->spriteset_numsets) { |
1495 if (spriteid >= _cur_grffile->spriteset_numsets) { |
1496 grfmsg(GMS_WARN, "NewSpriteGroup(0x%02X:0x%02X): Sprite set %u invalid, max %u", setid, type, spriteid, _cur_grffile->spriteset_numsets); |
1496 grfmsg(GMS_WARN, "NewSpriteGroup(0x%02X:0x%02X): Sprite set %u invalid, max %u", setid, type, spriteid, _cur_grffile->spriteset_numsets); |