import peep sprite data

This commit is contained in:
Ted John 2016-07-15 23:56:51 +01:00
parent 79cc7ff250
commit 3a8b0c662f
6 changed files with 5469 additions and 14 deletions

View File

@ -153,6 +153,7 @@
<ClCompile Include="src\paint\sprite\sprite.c" />
<ClCompile Include="src\paint\supports.c" />
<ClCompile Include="src\peep\peep.c" />
<ClCompile Include="src\peep\peep_data.c" />
<ClCompile Include="src\peep\staff.c" />
<ClCompile Include="src\platform\crash.cpp" />
<ClCompile Include="src\platform\linux.c" />

View File

@ -1047,7 +1047,7 @@ void sub_693B58(rct_peep* peep){
invalidate_sprite_2((rct_sprite*)peep);
peep->action_sprite_type = action_sprite_type;
rct_sprite_bounds* spriteBounds = g_sprite_entries[peep->sprite_type].sprite_bounds;
const rct_sprite_bounds* spriteBounds = g_sprite_entries[peep->sprite_type].sprite_bounds;
peep->sprite_width = spriteBounds[action_sprite_type].sprite_width;
peep->sprite_height_negative = spriteBounds[action_sprite_type].sprite_height_negative;
peep->sprite_height_positive = spriteBounds[action_sprite_type].sprite_height_positive;
@ -1208,8 +1208,8 @@ static int peep_update_action(sint16* x, sint16* y, sint16* xy_distance, rct_pee
*x = peep->x + RCT2_ADDRESS(0x981D7C, sint16)[direction / 4];
*y = peep->y + RCT2_ADDRESS(0x981D7E, sint16)[direction / 4];
peep->no_action_frame_no++;
rct_sprite_image * edi = g_sprite_entries[peep->sprite_type].sprite_image;
uint8* _edi = (edi[peep->action_sprite_type]).unkn_04;
const rct_sprite_image * edi = g_sprite_entries[peep->sprite_type].sprite_image;
const uint8* _edi = (edi[peep->action_sprite_type]).unkn_04;
if (peep->no_action_frame_no >= *_edi){
peep->no_action_frame_no = 0;
}
@ -1217,8 +1217,8 @@ static int peep_update_action(sint16* x, sint16* y, sint16* xy_distance, rct_pee
return 1;
}
rct_sprite_image * edi = g_sprite_entries[peep->sprite_type].sprite_image;
uint8* _edi = (edi[peep->action_sprite_type]).unkn_04;
const rct_sprite_image * edi = g_sprite_entries[peep->sprite_type].sprite_image;
const uint8* _edi = (edi[peep->action_sprite_type]).unkn_04;
peep->action_frame++;
int ebx = _edi[peep->action_frame + 1];
@ -6293,7 +6293,7 @@ rct_peep *peep_generate(int x, int y, int z)
peep->favourite_ride = 0xFF;
peep->favourite_ride_rating = 0;
rct_sprite_bounds* spriteBounds = g_sprite_entries[peep->sprite_type].sprite_bounds;
const rct_sprite_bounds* spriteBounds = g_sprite_entries[peep->sprite_type].sprite_bounds;
peep->sprite_width = spriteBounds[peep->action_sprite_type].sprite_width;
peep->sprite_height_negative = spriteBounds[peep->action_sprite_type].sprite_height_negative;
peep->sprite_height_positive = spriteBounds[peep->action_sprite_type].sprite_height_positive;
@ -6968,7 +6968,7 @@ void sub_693BAB(rct_peep* peep) {
if (nextActionSpriteType != peep->action_sprite_type) {
invalidate_sprite_2((rct_sprite*)peep);
peep->action_sprite_type = nextActionSpriteType;
rct_sprite_bounds* spriteBounds = g_sprite_entries[peep->sprite_type].sprite_bounds;
const rct_sprite_bounds* spriteBounds = g_sprite_entries[peep->sprite_type].sprite_bounds;
peep->sprite_width = spriteBounds[nextActionSpriteType].sprite_width;
peep->sprite_height_negative = spriteBounds[nextActionSpriteType].sprite_height_negative;
peep->sprite_height_positive = spriteBounds[nextActionSpriteType].sprite_height_positive;

5456
src/peep/peep_data.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -167,7 +167,7 @@ static money32 staff_hire_new_staff_member(uint8 staff_type, uint8 flags, sint16
}
int newStaffId = i;
rct_sprite_bounds *spriteBounds;
const rct_sprite_bounds *spriteBounds;
rct_peep *newPeep = &(create_sprite(flags)->peep);
if (newPeep == NULL) {

View File

@ -27,8 +27,6 @@
rct_sprite* g_sprite_list = RCT2_ADDRESS(RCT2_ADDRESS_SPRITE_LIST, rct_sprite);
rct_sprite_entry* g_sprite_entries = RCT2_ADDRESS(RCT2_ADDRESS_SPRITE_ENTRIES, rct_sprite_entry);
uint16 *gSpriteListHead = RCT2_ADDRESS(RCT2_ADDRESS_SPRITE_LISTS_HEAD, uint16);
uint16 *gSpriteListCount = RCT2_ADDRESS(RCT2_ADDRESS_SPRITE_LISTS_COUNT, uint16);

View File

@ -350,15 +350,15 @@ assert_struct_size(rct_sprite_bounds, 4);
typedef struct rct_sprite_image {
uint32 base_image; // 0x00
uint8* unkn_04; // 0x04
const uint8* unkn_04; // 0x04
} rct_sprite_image;
#ifdef PLATFORM_32BIT
assert_struct_size(rct_sprite_image, 8);
#endif
typedef struct rct_sprite_entry {
rct_sprite_image *sprite_image; // 0x00
rct_sprite_bounds *sprite_bounds; // 0x04
const rct_sprite_image *sprite_image; // 0x00
const rct_sprite_bounds *sprite_bounds; // 0x04
} rct_sprite_entry;
#ifdef PLATFORM_32BIT
assert_struct_size(rct_sprite_entry, 8);
@ -388,7 +388,7 @@ enum {
extern rct_sprite* g_sprite_list;
// rct2: 0x00982708
extern rct_sprite_entry* g_sprite_entries;
extern rct_sprite_entry g_sprite_entries[48];
extern uint16 *gSpriteListHead;
extern uint16 *gSpriteListCount;