Increase Sprite size to 0x200

This should allow for major refactoring of the sprite classes
This commit is contained in:
duncanspumpkin 2020-01-19 09:06:01 +00:00
parent b1e8caa575
commit 4e796ec92d
9 changed files with 22 additions and 22 deletions

View File

@ -1649,7 +1649,7 @@ private:
if (sprite.unknown.sprite_identifier == SPRITE_IDENTIFIER_MISC)
{
rct1_unk_sprite* src = &sprite.unknown;
rct_sprite_generic* dst = (rct_sprite_generic*)create_sprite(SPRITE_IDENTIFIER_MISC);
SpriteGeneric* dst = (SpriteGeneric*)create_sprite(SPRITE_IDENTIFIER_MISC);
dst->sprite_identifier = src->sprite_identifier;
dst->type = src->type;
dst->flags = src->flags;

View File

@ -1245,7 +1245,7 @@ void S6Exporter::ExportSpriteMisc(RCT12SpriteBase* cdst, const rct_sprite_common
case SPRITE_MISC_CRASH_SPLASH:
{
auto src = (const RCT12SpriteParticle*)csrc;
auto dst = (rct_sprite_generic*)cdst;
auto dst = (SpriteGeneric*)cdst;
dst->frame = src->frame;
break;
}

View File

@ -1529,7 +1529,7 @@ public:
case SPRITE_MISC_CRASH_SPLASH:
{
auto src = (const RCT12SpriteParticle*)csrc;
auto dst = (rct_sprite_generic*)cdst;
auto dst = (SpriteGeneric*)cdst;
dst->frame = src->frame;
break;
}

View File

@ -377,7 +377,7 @@ void duck_remove_all()
for (uint16_t spriteIndex = gSpriteListHead[SPRITE_LIST_MISC]; spriteIndex != SPRITE_INDEX_NULL;
spriteIndex = nextSpriteIndex)
{
rct_sprite_generic* sprite = &(get_sprite(spriteIndex)->generic);
SpriteGeneric* sprite = &(get_sprite(spriteIndex)->generic);
nextSpriteIndex = sprite->next;
if (sprite->type == SPRITE_MISC_DUCK)
{

View File

@ -13,7 +13,7 @@
#include "Map.h"
#include "SpriteBase.h"
struct JumpingFountain : rct_sprite_generic
struct JumpingFountain : SpriteGeneric
{
uint8_t NumTicksAlive;
uint8_t FountainFlags;

View File

@ -114,7 +114,7 @@ void crashed_vehicle_particle_update(rct_crashed_vehicle_particle* particle)
*/
void crash_splash_create(int32_t x, int32_t y, int32_t z)
{
rct_sprite_generic* sprite = &create_sprite(SPRITE_IDENTIFIER_MISC)->generic;
SpriteGeneric* sprite = &create_sprite(SPRITE_IDENTIFIER_MISC)->generic;
if (sprite != nullptr)
{
sprite->sprite_width = 33;

View File

@ -303,7 +303,7 @@ rct_sprite_checksum sprite_checksum()
#endif // DISABLE_NETWORK
static void sprite_reset(rct_sprite_generic* sprite)
static void sprite_reset(SpriteGeneric* sprite)
{
// Need to retain how the sprite is linked in lists
uint8_t llto = sprite->linked_list_index;
@ -329,7 +329,7 @@ static void sprite_reset(rct_sprite_generic* sprite)
*/
void sprite_clear_all_unused()
{
rct_sprite_generic* sprite;
SpriteGeneric* sprite;
uint16_t spriteIndex, nextSpriteIndex;
spriteIndex = gSpriteListHead[SPRITE_LIST_FREE];
@ -398,7 +398,7 @@ rct_sprite* create_sprite(SPRITE_IDENTIFIER spriteIdentifier)
}
}
rct_sprite_generic* sprite = &(get_sprite(gSpriteListHead[SPRITE_LIST_FREE]))->generic;
SpriteGeneric* sprite = &(get_sprite(gSpriteListHead[SPRITE_LIST_FREE]))->generic;
move_sprite_to_list((rct_sprite*)sprite, linkedListIndex);
@ -428,7 +428,7 @@ rct_sprite* create_sprite(SPRITE_IDENTIFIER spriteIdentifier)
*/
void move_sprite_to_list(rct_sprite* sprite, SPRITE_LIST newListIndex)
{
rct_sprite_generic* unkSprite = &sprite->generic;
SpriteGeneric* unkSprite = &sprite->generic;
int32_t oldListIndex = unkSprite->linked_list_index;
// No need to move if the sprite is already in the desired list
@ -501,7 +501,7 @@ static void sprite_steam_particle_update(rct_steam_particle* steam)
*/
void sprite_misc_explosion_cloud_create(int32_t x, int32_t y, int32_t z)
{
rct_sprite_generic* sprite = &create_sprite(SPRITE_IDENTIFIER_MISC)->generic;
SpriteGeneric* sprite = &create_sprite(SPRITE_IDENTIFIER_MISC)->generic;
if (sprite != nullptr)
{
sprite->sprite_width = 44;
@ -534,7 +534,7 @@ static void sprite_misc_explosion_cloud_update(rct_sprite* sprite)
*/
void sprite_misc_explosion_flare_create(int32_t x, int32_t y, int32_t z)
{
rct_sprite_generic* sprite = &create_sprite(SPRITE_IDENTIFIER_MISC)->generic;
SpriteGeneric* sprite = &create_sprite(SPRITE_IDENTIFIER_MISC)->generic;
if (sprite != nullptr)
{
sprite->sprite_width = 25;

View File

@ -44,7 +44,7 @@ struct rct_litter : rct_sprite_common
uint32_t creationTick;
};
struct rct_balloon : rct_sprite_generic
struct rct_balloon : SpriteGeneric
{
uint16_t popped;
uint8_t time_to_move;
@ -55,7 +55,7 @@ struct rct_balloon : rct_sprite_generic
void Press();
};
struct rct_duck : rct_sprite_generic
struct rct_duck : SpriteGeneric
{
int16_t target_x;
int16_t target_y;
@ -87,7 +87,7 @@ struct rct_money_effect : rct_sprite_common
std::pair<rct_string_id, money32> GetStringId() const;
};
struct rct_crashed_vehicle_particle : rct_sprite_generic
struct rct_crashed_vehicle_particle : SpriteGeneric
{
uint16_t time_to_live;
uint8_t colour[2];
@ -100,11 +100,11 @@ struct rct_crashed_vehicle_particle : rct_sprite_generic
int32_t acceleration_z;
};
struct rct_crash_splash : rct_sprite_generic
struct rct_crash_splash : SpriteGeneric
{
};
struct rct_steam_particle : rct_sprite_generic
struct rct_steam_particle : SpriteGeneric
{
uint16_t time_to_move;
};
@ -112,12 +112,12 @@ struct rct_steam_particle : rct_sprite_generic
#pragma pack(push, 1)
/**
* Sprite structure.
* size: 0x0100
* size: 0x0200
*/
union rct_sprite
{
uint8_t pad_00[0x100];
rct_sprite_generic generic;
uint8_t pad_00[0x200];
SpriteGeneric generic;
Peep peep;
rct_litter litter;
rct_vehicle vehicle;
@ -138,7 +138,7 @@ union rct_sprite
rct_money_effect* AsMoneyEffect();
Peep* AsPeep();
};
assert_struct_size(rct_sprite, 0x100);
assert_struct_size(rct_sprite, 0x200);
struct rct_sprite_checksum
{

View File

@ -31,7 +31,7 @@ struct rct_sprite_common
uint8_t sprite_direction;
};
struct rct_sprite_generic : rct_sprite_common
struct SpriteGeneric : rct_sprite_common
{
uint16_t frame;
};