newgrf.c
changeset 4893 000692659d8c
parent 4869 3a75d9b3b5ea
child 4918 7700309b4e59
equal deleted inserted replaced
4892:cafd96f10c1e 4893:000692659d8c
  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);