From d22572d0b9940452afebf2f54e190df61d1fab24 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sun, 11 Feb 2018 19:02:51 +0000 Subject: [PATCH] Remove rct_object_entry_extended --- .../windows/EditorInventionsList.cpp | 2 +- src/openrct2/object/Object.h | 21 ++------------ src/openrct2/object/ObjectList.cpp | 28 +++++++++---------- src/openrct2/object/ObjectManager.cpp | 5 ++-- src/openrct2/ride/TrackDesignSave.cpp | 16 +++++------ src/openrct2/world/MapGen.cpp | 4 +-- 6 files changed, 29 insertions(+), 47 deletions(-) diff --git a/src/openrct2-ui/windows/EditorInventionsList.cpp b/src/openrct2-ui/windows/EditorInventionsList.cpp index caf0b3eced..9b79111560 100644 --- a/src/openrct2-ui/windows/EditorInventionsList.cpp +++ b/src/openrct2-ui/windows/EditorInventionsList.cpp @@ -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]; diff --git a/src/openrct2/object/Object.h b/src/openrct2/object/Object.h index 186900ad34..f3cb9ad1ec 100644 --- a/src/openrct2/object/Object.h +++ b/src/openrct2/object/Object.h @@ -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); diff --git a/src/openrct2/object/ObjectList.cpp b/src/openrct2/object/ObjectList.cpp index 8c4291992d..14a3f14ae2 100644 --- a/src/openrct2/object/ObjectList.cpp +++ b/src/openrct2/object/ObjectList.cpp @@ -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]; } diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index 7a5e534ffd..35b9320f1c 100644 --- a/src/openrct2/object/ObjectManager.cpp +++ b/src/openrct2/object/ObjectManager.cpp @@ -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(); } } diff --git a/src/openrct2/ride/TrackDesignSave.cpp b/src/openrct2/ride/TrackDesignSave.cpp index 362d3229bc..bec5a95c0d 100644 --- a/src/openrct2/ride/TrackDesignSave.cpp +++ b/src/openrct2/ride/TrackDesignSave.cpp @@ -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; diff --git a/src/openrct2/world/MapGen.cpp b/src/openrct2/world/MapGen.cpp index 17ccd74567..5e199e1018 100644 --- a/src/openrct2/world/MapGen.cpp +++ b/src/openrct2/world/MapGen.cpp @@ -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;