Pack structs for when loading from files

This commit is contained in:
Michał Janiszewski 2016-06-17 22:48:42 +02:00
parent 613c7250f2
commit 58b4361e8d
4 changed files with 14 additions and 14 deletions

View File

@ -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)
{

View File

@ -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.

View File

@ -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

View File

@ -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