mirror of https://github.com/OpenRCT2/OpenRCT2.git
Pack structs for when loading from files
This commit is contained in:
parent
613c7250f2
commit
58b4361e8d
|
@ -523,6 +523,7 @@ typedef struct object_type_vtable {
|
||||||
// Ride (rct2: 0x006E6E2A)
|
// Ride (rct2: 0x006E6E2A)
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#pragma pack(push, 1)
|
||||||
/**
|
/**
|
||||||
* Ride type vehicle structure.
|
* Ride type vehicle structure.
|
||||||
* size: 0x65
|
* size: 0x65
|
||||||
|
@ -573,6 +574,7 @@ typedef struct rct_ride_entry_vehicle_32bit {
|
||||||
uint8 special_frames; // 0x60 , 0x7A
|
uint8 special_frames; // 0x60 , 0x7A
|
||||||
uint32 peep_loading_positions; // 0x61 , 0x7B note: uint32
|
uint32 peep_loading_positions; // 0x61 , 0x7B note: uint32
|
||||||
} rct_ride_entry_vehicle_32bit;
|
} rct_ride_entry_vehicle_32bit;
|
||||||
|
assert_struct_size(rct_ride_entry_vehicle_32bit, 0x65);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ride type structure.
|
* Ride type structure.
|
||||||
|
@ -617,6 +619,8 @@ typedef struct rct_ride_entry_32bit {
|
||||||
uint8 shop_item; // 0x1C0
|
uint8 shop_item; // 0x1C0
|
||||||
uint8 shop_item_secondary; // 0x1C1
|
uint8 shop_item_secondary; // 0x1C1
|
||||||
} rct_ride_entry_32bit;
|
} 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)
|
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)
|
// Small Scenery (rct2: 0x006E3466)
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#pragma pack(push, 1)
|
||||||
typedef struct rct_large_scenery_entry_32bit {
|
typedef struct rct_large_scenery_entry_32bit {
|
||||||
uint8 tool_id; // 0x06
|
uint8 tool_id; // 0x06
|
||||||
uint8 flags; // 0x07
|
uint8 flags; // 0x07
|
||||||
|
@ -1328,6 +1333,7 @@ typedef struct rct_large_scenery_entry_32bit {
|
||||||
uint32 text;
|
uint32 text;
|
||||||
uint32 text_image;
|
uint32 text_image;
|
||||||
} rct_large_scenery_entry_32bit;
|
} rct_large_scenery_entry_32bit;
|
||||||
|
assert_struct_size(rct_large_scenery_entry_32bit, 20);
|
||||||
|
|
||||||
typedef struct rct_small_scenery_entry_32bit {
|
typedef struct rct_small_scenery_entry_32bit {
|
||||||
uint32 flags; // 0x06
|
uint32 flags; // 0x06
|
||||||
|
@ -1339,6 +1345,7 @@ typedef struct rct_small_scenery_entry_32bit {
|
||||||
uint8 pad_14[0x06];
|
uint8 pad_14[0x06];
|
||||||
uint8 scenery_tab_id; // 0x1A
|
uint8 scenery_tab_id; // 0x1A
|
||||||
} rct_small_scenery_entry_32bit;
|
} rct_small_scenery_entry_32bit;
|
||||||
|
assert_struct_size(rct_small_scenery_entry_32bit, 21);
|
||||||
|
|
||||||
typedef struct rct_scenery_entry_32bit {
|
typedef struct rct_scenery_entry_32bit {
|
||||||
rct_string_id name; // 0x00
|
rct_string_id name; // 0x00
|
||||||
|
@ -1351,6 +1358,8 @@ typedef struct rct_scenery_entry_32bit {
|
||||||
rct_banner_scenery_entry banner;
|
rct_banner_scenery_entry banner;
|
||||||
};
|
};
|
||||||
} rct_scenery_entry_32bit;
|
} 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)
|
static uint8* object_type_small_scenery_load(void *objectEntry, uint32 entryIndex, int *chunkSize)
|
||||||
{
|
{
|
||||||
|
|
|
@ -122,9 +122,7 @@ typedef struct rct_ride_entry {
|
||||||
uint8 shop_item; // 0x1C0
|
uint8 shop_item; // 0x1C0
|
||||||
uint8 shop_item_secondary; // 0x1C1
|
uint8 shop_item_secondary; // 0x1C1
|
||||||
} rct_ride_entry;
|
} rct_ride_entry;
|
||||||
#ifdef PLATFORM_32BIT
|
// FIXME: unpack
|
||||||
assert_struct_size(rct_ride_entry, 0x1c2);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ride structure.
|
* Ride structure.
|
||||||
|
|
|
@ -77,9 +77,7 @@ typedef struct rct_ride_entry_vehicle {
|
||||||
uint8 special_frames; // 0x60 , 0x7A
|
uint8 special_frames; // 0x60 , 0x7A
|
||||||
sint8* peep_loading_positions; // 0x61 , 0x7B
|
sint8* peep_loading_positions; // 0x61 , 0x7B
|
||||||
} rct_ride_entry_vehicle;
|
} rct_ride_entry_vehicle;
|
||||||
#ifdef PLATFORM_32BIT
|
// FIXME: unpack
|
||||||
assert_struct_size(rct_ride_entry_vehicle, 0x65);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct rct_vehicle {
|
typedef struct rct_vehicle {
|
||||||
uint8 sprite_identifier; // 0x00
|
uint8 sprite_identifier; // 0x00
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include "../object.h"
|
#include "../object.h"
|
||||||
#include "../world/map.h"
|
#include "../world/map.h"
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
|
||||||
typedef struct rct_small_scenery_entry {
|
typedef struct rct_small_scenery_entry {
|
||||||
uint32 flags; // 0x06
|
uint32 flags; // 0x06
|
||||||
uint8 height; // 0x0A
|
uint8 height; // 0x0A
|
||||||
|
@ -34,7 +33,6 @@ typedef struct rct_small_scenery_entry {
|
||||||
uint16 var_18;
|
uint16 var_18;
|
||||||
uint8 scenery_tab_id; // 0x1A
|
uint8 scenery_tab_id; // 0x1A
|
||||||
} rct_small_scenery_entry;
|
} rct_small_scenery_entry;
|
||||||
assert_struct_size(rct_small_scenery_entry, 21);
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SMALL_SCENERY_FLAG_FULL_TILE = (1 << 0), // 0x1
|
SMALL_SCENERY_FLAG_FULL_TILE = (1 << 0), // 0x1
|
||||||
|
@ -67,6 +65,7 @@ typedef enum {
|
||||||
SMALL_SCENERY_FLAG27 = (1 << 27), // 0x8000000
|
SMALL_SCENERY_FLAG27 = (1 << 27), // 0x8000000
|
||||||
} SMALL_SCENERY_FLAGS;
|
} SMALL_SCENERY_FLAGS;
|
||||||
|
|
||||||
|
#pragma pack(push, 1)
|
||||||
typedef struct rct_large_scenery_tile {
|
typedef struct rct_large_scenery_tile {
|
||||||
sint16 x_offset;
|
sint16 x_offset;
|
||||||
sint16 y_offset;
|
sint16 y_offset;
|
||||||
|
@ -104,9 +103,7 @@ typedef struct rct_large_scenery_entry {
|
||||||
rct_large_scenery_text* text; // 0x12
|
rct_large_scenery_text* text; // 0x12
|
||||||
uint32 text_image; // 0x16
|
uint32 text_image; // 0x16
|
||||||
} rct_large_scenery_entry;
|
} rct_large_scenery_entry;
|
||||||
#ifdef PLATFORM_32BIT
|
// FIXME: unpack
|
||||||
assert_struct_size(rct_large_scenery_entry, 20);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct rct_wall_scenery_entry {
|
typedef struct rct_wall_scenery_entry {
|
||||||
uint8 tool_id; // 0x06
|
uint8 tool_id; // 0x06
|
||||||
|
@ -162,9 +159,7 @@ typedef struct rct_scenery_entry {
|
||||||
rct_banner_scenery_entry banner;
|
rct_banner_scenery_entry banner;
|
||||||
};
|
};
|
||||||
} rct_scenery_entry;
|
} rct_scenery_entry;
|
||||||
#ifdef PLATFORM_32BIT
|
// FIXME: unpack?
|
||||||
assert_struct_size(rct_scenery_entry, 6 + 21);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
typedef struct rct_scenery_set_entry {
|
typedef struct rct_scenery_set_entry {
|
||||||
rct_string_id name; // 0x00
|
rct_string_id name; // 0x00
|
||||||
|
|
Loading…
Reference in New Issue