Remove rct_object_entry_extended

This commit is contained in:
Ted John 2018-02-11 19:02:51 +00:00
parent 4d8fe051e8
commit d22572d0b9
6 changed files with 29 additions and 47 deletions

View File

@ -690,7 +690,7 @@ static void window_editor_inventions_list_paint(rct_window *w, rct_drawpixelinfo
if (chunk == nullptr)
return;
auto entry = (rct_object_entry *)object_entry_get_entry(objectEntryType, researchItem->entryIndex);
auto entry = object_entry_get_entry(objectEntryType, researchItem->entryIndex);
// Draw preview
widget = &w->widgets[WIDX_PREVIEW];

View File

@ -88,26 +88,9 @@ typedef struct rct_object_entry {
} rct_object_entry;
assert_struct_size(rct_object_entry, 0x10);
/**
* Object entry structure extended.
* size: 0x14
*/
typedef struct rct_object_entry_extended {
union {
rct_object_entry entry;
struct {
uint32 flags;
char name[8];
uint32 checksum;
uint32 chunk_size;
};
};
} rct_object_entry_extended;
assert_struct_size(rct_object_entry_extended, 0x14);
typedef struct rct_object_entry_group {
void **chunks;
rct_object_entry_extended *entries;
rct_object_entry *entries;
} rct_object_entry_group;
#ifdef PLATFORM_32BIT
assert_struct_size(rct_object_entry_group, 8);
@ -235,4 +218,4 @@ const rct_object_entry * object_list_find(rct_object_entry *entry);
void object_entry_get_name_fixed(utf8 * buffer, size_t bufferSize, const rct_object_entry * entry);
void * object_entry_get_chunk(sint32 objectType, size_t index);
rct_object_entry_extended * object_entry_get_entry(sint32 objectType, size_t index);
rct_object_entry * object_entry_get_entry(sint32 objectType, size_t index);

View File

@ -66,17 +66,17 @@ sint32 object_entry_group_encoding[] = {
rct_water_type *gWaterEntries[MAX_WATER_OBJECTS];
rct_stex_entry *gStexEntries[MAX_SCENARIO_TEXT_OBJECTS];
static rct_object_entry_extended _objectEntriesRides[MAX_RIDE_OBJECTS];
static rct_object_entry_extended _objectEntriesSmallScenery[MAX_SMALL_SCENERY_OBJECTS];
static rct_object_entry_extended _objectEntriesLargeScenery[MAX_LARGE_SCENERY_OBJECTS];
static rct_object_entry_extended _objectEntriesWalls[MAX_WALL_SCENERY_OBJECTS];
static rct_object_entry_extended _objectEntriesBanners[MAX_BANNER_OBJECTS];
static rct_object_entry_extended _objectEntriesFootpaths[MAX_PATH_OBJECTS];
static rct_object_entry_extended _objectEntriesFootpathAdditions[MAX_PATH_ADDITION_OBJECTS];
static rct_object_entry_extended _objectEntriesSceneryGroups[MAX_SCENERY_GROUP_OBJECTS];
static rct_object_entry_extended _objectEntriesParkEntrances[MAX_PARK_ENTRANCE_OBJECTS];
static rct_object_entry_extended _objectEntriesWaters[MAX_WATER_OBJECTS];
static rct_object_entry_extended _objectEntriesStexs[MAX_SCENARIO_TEXT_OBJECTS];
static rct_object_entry _objectEntriesRides[MAX_RIDE_OBJECTS];
static rct_object_entry _objectEntriesSmallScenery[MAX_SMALL_SCENERY_OBJECTS];
static rct_object_entry _objectEntriesLargeScenery[MAX_LARGE_SCENERY_OBJECTS];
static rct_object_entry _objectEntriesWalls[MAX_WALL_SCENERY_OBJECTS];
static rct_object_entry _objectEntriesBanners[MAX_BANNER_OBJECTS];
static rct_object_entry _objectEntriesFootpaths[MAX_PATH_OBJECTS];
static rct_object_entry _objectEntriesFootpathAdditions[MAX_PATH_ADDITION_OBJECTS];
static rct_object_entry _objectEntriesSceneryGroups[MAX_SCENERY_GROUP_OBJECTS];
static rct_object_entry _objectEntriesParkEntrances[MAX_PARK_ENTRANCE_OBJECTS];
static rct_object_entry _objectEntriesWaters[MAX_WATER_OBJECTS];
static rct_object_entry _objectEntriesStexs[MAX_SCENARIO_TEXT_OBJECTS];
// 0x98D97C chunk address', 0x98D980 object_entries
@ -144,7 +144,7 @@ bool find_object_in_entry_group(const rct_object_entry * entry, uint8 * entry_ty
{
if (object_entry_get_chunk(objectType, i) != nullptr)
{
auto thisEntry = (rct_object_entry *)object_entry_get_entry(*entry_type, i);
auto thisEntry = object_entry_get_entry(*entry_type, i);
if (object_entry_compare(thisEntry, entry))
{
*entry_type = objectType;
@ -178,7 +178,7 @@ const rct_object_entry * get_loaded_object_entry(size_t index)
uint8 objectType, entryIndex;
get_type_entry_index(index, &objectType, &entryIndex);
return (rct_object_entry *)object_entry_get_entry(objectType, entryIndex);
return object_entry_get_entry(objectType, entryIndex);
}
void * get_loaded_object_chunk(size_t index)
@ -200,7 +200,7 @@ void * object_entry_get_chunk(sint32 objectType, size_t index)
return object_entry_groups[objectType].chunks[index];
}
rct_object_entry_extended * object_entry_get_entry(sint32 objectType, size_t index)
rct_object_entry * object_entry_get_entry(sint32 objectType, size_t index)
{
return &object_entry_groups[objectType].entries[index];
}

View File

@ -385,7 +385,7 @@ private:
uint8 objectType, entryIndex;
get_type_entry_index(i, &objectType, &entryIndex);
rct_object_entry_extended * legacyEntry = object_entry_get_entry(objectType, entryIndex);
auto legacyEntry = object_entry_get_entry(objectType, entryIndex);
void * * legacyChunk = &object_entry_groups[objectType].chunks[entryIndex];
if (loadedObject == nullptr)
{
@ -394,8 +394,7 @@ private:
}
else
{
legacyEntry->entry = *loadedObject->GetObjectEntry();
legacyEntry->chunk_size = 0;
*legacyEntry = *loadedObject->GetObjectEntry();
*legacyChunk = loadedObject->GetLegacyData();
}
}

View File

@ -276,7 +276,7 @@ static void track_design_save_push_tile_element_desc(rct_object_entry *entry, si
static void track_design_save_add_scenery(sint32 x, sint32 y, rct_tile_element *tileElement)
{
sint32 entryType = tileElement->properties.scenery.type;
rct_object_entry *entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
rct_object_entry *entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
uint8 flags = 0;
flags |= tileElement->type & 3;
@ -296,7 +296,7 @@ static void track_design_save_add_large_scenery(sint32 x, sint32 y, rct_tile_ele
sint32 direction, sequence;
sint32 entryType = scenery_large_get_type(tileElement);
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
sceneryTiles = get_large_scenery_entry(entryType)->large_scenery.tiles;
z = tileElement->base_height;
@ -336,7 +336,7 @@ static void track_design_save_add_large_scenery(sint32 x, sint32 y, rct_tile_ele
static void track_design_save_add_wall(sint32 x, sint32 y, rct_tile_element *tileElement)
{
sint32 entryType = tileElement->properties.wall.type;
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
uint8 flags = 0;
flags |= tileElement->type & 3;
@ -352,7 +352,7 @@ static void track_design_save_add_wall(sint32 x, sint32 y, rct_tile_element *til
static void track_design_save_add_footpath(sint32 x, sint32 y, rct_tile_element *tileElement)
{
sint32 entryType = tileElement->properties.path.type >> 4;
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
uint8 flags = 0;
flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK;
@ -457,7 +457,7 @@ static void track_design_save_pop_tile_element_desc(rct_object_entry *entry, sin
static void track_design_save_remove_scenery(sint32 x, sint32 y, rct_tile_element *tileElement)
{
sint32 entryType = tileElement->properties.scenery.type;
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, entryType);
uint8 flags = 0;
flags |= tileElement->type & 3;
@ -477,7 +477,7 @@ static void track_design_save_remove_large_scenery(sint32 x, sint32 y, rct_tile_
sint32 direction, sequence;
sint32 entryType = scenery_large_get_type(tileElement);
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_LARGE_SCENERY, entryType);
sceneryTiles = get_large_scenery_entry(entryType)->large_scenery.tiles;
z = tileElement->base_height;
@ -517,7 +517,7 @@ static void track_design_save_remove_large_scenery(sint32 x, sint32 y, rct_tile_
static void track_design_save_remove_wall(sint32 x, sint32 y, rct_tile_element *tileElement)
{
sint32 entryType = tileElement->properties.wall.type;
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_WALLS, entryType);
uint8 flags = 0;
flags |= tileElement->type & 3;
@ -533,7 +533,7 @@ static void track_design_save_remove_wall(sint32 x, sint32 y, rct_tile_element *
static void track_design_save_remove_footpath(sint32 x, sint32 y, rct_tile_element *tileElement)
{
sint32 entryType = tileElement->properties.path.type >> 4;
auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
auto entry = object_entry_get_entry(OBJECT_TYPE_PATHS, entryType);
uint8 flags = 0;
flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK;

View File

@ -269,8 +269,8 @@ static void mapgen_place_trees()
for (sint32 i = 0; i < object_entry_group_counts[OBJECT_TYPE_SMALL_SCENERY]; i++)
{
rct_scenery_entry * sceneryEntry = get_small_scenery_entry(i);
rct_object_entry_extended * entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, i);
auto sceneryEntry = get_small_scenery_entry(i);
auto entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, i);
if (sceneryEntry == nullptr)
continue;