diff --git a/src/object.c b/src/object.c index bf73270680..c1658c264a 100644 --- a/src/object.c +++ b/src/object.c @@ -523,6 +523,7 @@ typedef struct object_type_vtable { // Ride (rct2: 0x006E6E2A) /////////////////////////////////////////////////////////////////////////////// +#pragma pack(push, 1) /** * Ride type vehicle structure. * size: 0x65 @@ -573,6 +574,7 @@ typedef struct rct_ride_entry_vehicle_32bit { uint8 special_frames; // 0x60 , 0x7A uint32 peep_loading_positions; // 0x61 , 0x7B note: uint32 } rct_ride_entry_vehicle_32bit; +assert_struct_size(rct_ride_entry_vehicle_32bit, 0x65); /** * Ride type structure. @@ -617,6 +619,8 @@ typedef struct rct_ride_entry_32bit { uint8 shop_item; // 0x1C0 uint8 shop_item_secondary; // 0x1C1 } rct_ride_entry_32bit; +assert_struct_size(rct_ride_entry_32bit, 0x1c2); +#pragma pack(pop) static uint8* object_type_ride_load(void *objectEntry, uint32 entryIndex, int *chunkSize) { @@ -1317,6 +1321,7 @@ static const object_type_vtable object_type_ride_vtable[] = { // Small Scenery (rct2: 0x006E3466) /////////////////////////////////////////////////////////////////////////////// +#pragma pack(push, 1) typedef struct rct_large_scenery_entry_32bit { uint8 tool_id; // 0x06 uint8 flags; // 0x07 @@ -1328,6 +1333,7 @@ typedef struct rct_large_scenery_entry_32bit { uint32 text; uint32 text_image; } rct_large_scenery_entry_32bit; +assert_struct_size(rct_large_scenery_entry_32bit, 20); typedef struct rct_small_scenery_entry_32bit { uint32 flags; // 0x06 @@ -1339,6 +1345,7 @@ typedef struct rct_small_scenery_entry_32bit { uint8 pad_14[0x06]; uint8 scenery_tab_id; // 0x1A } rct_small_scenery_entry_32bit; +assert_struct_size(rct_small_scenery_entry_32bit, 21); typedef struct rct_scenery_entry_32bit { rct_string_id name; // 0x00 @@ -1351,6 +1358,8 @@ typedef struct rct_scenery_entry_32bit { rct_banner_scenery_entry banner; }; } rct_scenery_entry_32bit; +assert_struct_size(rct_scenery_entry_32bit, 6 + 21); +#pragma pack(pop) static uint8* object_type_small_scenery_load(void *objectEntry, uint32 entryIndex, int *chunkSize) { diff --git a/src/ride/ride.h b/src/ride/ride.h index 3efc434c87..69809cbe7c 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -122,9 +122,7 @@ typedef struct rct_ride_entry { uint8 shop_item; // 0x1C0 uint8 shop_item_secondary; // 0x1C1 } rct_ride_entry; -#ifdef PLATFORM_32BIT -assert_struct_size(rct_ride_entry, 0x1c2); -#endif +// FIXME: unpack /** * Ride structure. diff --git a/src/ride/vehicle.h b/src/ride/vehicle.h index 424fd2e21f..df7eca6e86 100644 --- a/src/ride/vehicle.h +++ b/src/ride/vehicle.h @@ -77,9 +77,7 @@ typedef struct rct_ride_entry_vehicle { uint8 special_frames; // 0x60 , 0x7A sint8* peep_loading_positions; // 0x61 , 0x7B } rct_ride_entry_vehicle; -#ifdef PLATFORM_32BIT -assert_struct_size(rct_ride_entry_vehicle, 0x65); -#endif +// FIXME: unpack typedef struct rct_vehicle { uint8 sprite_identifier; // 0x00 diff --git a/src/world/scenery.h b/src/world/scenery.h index 0f46018a55..5b83792066 100644 --- a/src/world/scenery.h +++ b/src/world/scenery.h @@ -21,7 +21,6 @@ #include "../object.h" #include "../world/map.h" -#pragma pack(push, 1) typedef struct rct_small_scenery_entry { uint32 flags; // 0x06 uint8 height; // 0x0A @@ -34,7 +33,6 @@ typedef struct rct_small_scenery_entry { uint16 var_18; uint8 scenery_tab_id; // 0x1A } rct_small_scenery_entry; -assert_struct_size(rct_small_scenery_entry, 21); typedef enum { SMALL_SCENERY_FLAG_FULL_TILE = (1 << 0), // 0x1 @@ -67,6 +65,7 @@ typedef enum { SMALL_SCENERY_FLAG27 = (1 << 27), // 0x8000000 } SMALL_SCENERY_FLAGS; +#pragma pack(push, 1) typedef struct rct_large_scenery_tile { sint16 x_offset; sint16 y_offset; @@ -104,9 +103,7 @@ typedef struct rct_large_scenery_entry { rct_large_scenery_text* text; // 0x12 uint32 text_image; // 0x16 } rct_large_scenery_entry; -#ifdef PLATFORM_32BIT -assert_struct_size(rct_large_scenery_entry, 20); -#endif +// FIXME: unpack typedef struct rct_wall_scenery_entry { uint8 tool_id; // 0x06 @@ -162,9 +159,7 @@ typedef struct rct_scenery_entry { rct_banner_scenery_entry banner; }; } rct_scenery_entry; -#ifdef PLATFORM_32BIT -assert_struct_size(rct_scenery_entry, 6 + 21); -#endif +// FIXME: unpack? typedef struct rct_scenery_set_entry { rct_string_id name; // 0x00