From 4d8fe051e89e0add6f545bd3f5688550427eb561 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sun, 11 Feb 2018 18:56:09 +0000 Subject: [PATCH] Remove most usages of object_entry_groups --- .../windows/EditorInventionsList.cpp | 5 +- .../windows/EditorObjectSelection.cpp | 2 +- .../windows/EditorObjectiveOptions.cpp | 12 ++--- src/openrct2-ui/windows/NewRide.cpp | 2 +- src/openrct2/EditorObjectSelectionSession.cpp | 4 +- src/openrct2/Game.cpp | 2 +- src/openrct2/drawing/Drawing.cpp | 2 +- src/openrct2/interface/Console.cpp | 3 +- src/openrct2/object/Object.h | 3 ++ src/openrct2/object/ObjectList.cpp | 52 +++++++++++-------- src/openrct2/object/ObjectManager.cpp | 2 +- src/openrct2/paint/tile_element/Entrance.cpp | 4 +- src/openrct2/ride/Ride.cpp | 2 +- src/openrct2/ride/TrackDesign.cpp | 2 +- src/openrct2/ride/TrackDesignSave.cpp | 18 +++---- src/openrct2/scenario/Scenario.cpp | 8 +-- src/openrct2/scenario/Scenario.h | 2 - src/openrct2/world/MapGen.cpp | 2 +- 18 files changed, 65 insertions(+), 62 deletions(-) diff --git a/src/openrct2-ui/windows/EditorInventionsList.cpp b/src/openrct2-ui/windows/EditorInventionsList.cpp index 3e02c3b520..caf0b3eced 100644 --- a/src/openrct2-ui/windows/EditorInventionsList.cpp +++ b/src/openrct2-ui/windows/EditorInventionsList.cpp @@ -686,12 +686,11 @@ static void window_editor_inventions_list_paint(rct_window *w, rct_drawpixelinfo if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE) objectEntryType = OBJECT_TYPE_RIDE; - void * chunk = object_entry_groups[objectEntryType].chunks[researchItem->entryIndex]; - + auto chunk = object_entry_get_chunk(objectEntryType, researchItem->entryIndex); if (chunk == nullptr) return; - rct_object_entry * entry = &object_entry_groups[objectEntryType].entries[researchItem->entryIndex].entry; + auto entry = (rct_object_entry *)object_entry_get_entry(objectEntryType, researchItem->entryIndex); // Draw preview widget = &w->widgets[WIDX_PREVIEW]; diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index c2469778ab..8399e54caf 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -1226,7 +1226,7 @@ static void window_editor_object_selection_manage_tracks() gS6Info.editor_step = EDITOR_STEP_TRACK_DESIGNS_MANAGER; sint32 entry_index = 0; - for (; (object_entry_groups[0].chunks[entry_index]) == nullptr; ++entry_index); + for (; object_entry_get_chunk(OBJECT_TYPE_RIDE, entry_index) == nullptr; entry_index++); rct_ride_entry* ride_entry = get_ride_entry(entry_index); uint8 ride_type = ride_entry_get_first_non_null_ride_type(ride_entry); diff --git a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp index 52196e25f4..d174a74a29 100644 --- a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp +++ b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp @@ -814,12 +814,7 @@ static void window_editor_objective_options_main_textinput(rct_window *w, rct_wi */ static void window_editor_objective_options_main_invalidate(rct_window *w) { - rct_widget *widgets; - rct_stex_entry *stex; - - stex = g_stexEntries[0]; - - widgets = window_editor_objective_options_widgets[w->page]; + auto widgets = window_editor_objective_options_widgets[w->page]; if (w->widgets != widgets) { w->widgets = widgets; window_init_scroll_widgets(w); @@ -827,6 +822,7 @@ static void window_editor_objective_options_main_invalidate(rct_window *w) window_editor_objective_options_set_pressed_tab(w); + auto stex = (rct_stex_entry *)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0); if (stex == nullptr) w->disabled_widgets &= ~((1 << WIDX_PARK_NAME) | (1 << WIDX_SCENARIO_NAME)); else @@ -877,7 +873,6 @@ static void window_editor_objective_options_main_invalidate(rct_window *w) */ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpixelinfo *dpi) { - rct_stex_entry *stex; sint32 x, y, width; rct_string_id stringId; uint32 arg; @@ -885,8 +880,6 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi window_draw_widgets(w, dpi); window_editor_objective_options_draw_tab_images(w, dpi); - stex = g_stexEntries[0]; - // Objective label x = w->x + 8; y = w->y + w->widgets[WIDX_OBJECTIVE].top; @@ -983,6 +976,7 @@ static void window_editor_objective_options_main_paint(rct_window *w, rct_drawpi y = w->y + w->widgets[WIDX_PARK_NAME].top; width = w->widgets[WIDX_PARK_NAME].left - 16; + auto stex = (rct_stex_entry *)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0); if (stex != nullptr) { set_format_arg(0, rct_string_id, stex->park_name); } else { diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index a9df9db13f..1bac704866 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -349,7 +349,7 @@ static ride_list_item * window_new_ride_iterate_over_ride_group(uint8 rideType, { uint8 rideEntryIndex = *rideEntryIndexPtr++; char rideEntryName[DAT_NAME_LENGTH + 1]; - memcpy(rideEntryName,object_entry_groups[OBJECT_TYPE_RIDE].entries[rideEntryIndex].name,8); + memcpy(rideEntryName, object_entry_get_entry(OBJECT_TYPE_RIDE, rideEntryIndex)->name, 8); rideEntryName[DAT_NAME_LENGTH] = 0; // Skip if vehicle type is not invented yet diff --git a/src/openrct2/EditorObjectSelectionSession.cpp b/src/openrct2/EditorObjectSelectionSession.cpp index 83fa314449..6052161575 100644 --- a/src/openrct2/EditorObjectSelectionSession.cpp +++ b/src/openrct2/EditorObjectSelectionSession.cpp @@ -113,7 +113,7 @@ void setup_in_use_selection_flags() for (sint32 i = 0; i < object_entry_group_counts[objectType]; i++) { Editor::ClearSelectedObject(objectType, i, OBJECT_SELECTION_FLAG_ALL); - if (object_entry_groups[objectType].chunks[i] != nullptr) + if (object_entry_get_chunk(objectType, i) != nullptr) { Editor::SetSelectedObject(objectType, i, OBJECT_SELECTION_FLAG_2); } @@ -274,7 +274,7 @@ static void remove_selected_objects_from_research(const rct_object_entry* instal return; if (entry_type == OBJECT_TYPE_RIDE){ - rct_ride_entry* rideEntry = (rct_ride_entry*)object_entry_groups[entry_type].chunks[entry_index]; + auto rideEntry = (rct_ride_entry *)object_entry_get_entry(entry_type, entry_index); for (auto rideType : rideEntry->ride_type) { diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index c744ce23a7..784561e8ed 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -177,7 +177,7 @@ enum */ void update_palette_effects() { - rct_water_type * water_type = (rct_water_type *) object_entry_groups[OBJECT_TYPE_WATER].chunks[0]; + auto water_type = (rct_water_type *)object_entry_get_chunk(OBJECT_TYPE_WATER, 0); if (gClimateLightningFlash == 1) { diff --git a/src/openrct2/drawing/Drawing.cpp b/src/openrct2/drawing/Drawing.cpp index 4c2e0d3c04..19c63b26ab 100644 --- a/src/openrct2/drawing/Drawing.cpp +++ b/src/openrct2/drawing/Drawing.cpp @@ -537,7 +537,7 @@ void load_palette() return; } - rct_water_type* water_type = (rct_water_type*)object_entry_groups[OBJECT_TYPE_WATER].chunks[0]; + auto water_type = (rct_water_type *)object_entry_get_chunk(OBJECT_TYPE_WATER, 0); uint32 palette = 0x5FC; diff --git a/src/openrct2/interface/Console.cpp b/src/openrct2/interface/Console.cpp index 241a6399cd..4bd1d3a8ac 100644 --- a/src/openrct2/interface/Console.cpp +++ b/src/openrct2/interface/Console.cpp @@ -1196,7 +1196,8 @@ static sint32 cc_object_count(const utf8 **argv, sint32 argc) { sint32 entryGroupIndex = 0; for (; entryGroupIndex < object_entry_group_counts[i]; entryGroupIndex++){ - if (object_entry_groups[i].chunks[entryGroupIndex] == nullptr){ + if (object_entry_get_chunk(i, entryGroupIndex) == nullptr) + { break; } } diff --git a/src/openrct2/object/Object.h b/src/openrct2/object/Object.h index 1faa12af8d..186900ad34 100644 --- a/src/openrct2/object/Object.h +++ b/src/openrct2/object/Object.h @@ -233,3 +233,6 @@ const rct_object_entry * object_list_find_by_name(const char *name); 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); diff --git a/src/openrct2/object/ObjectList.cpp b/src/openrct2/object/ObjectList.cpp index e58a49977b..8c4291992d 100644 --- a/src/openrct2/object/ObjectList.cpp +++ b/src/openrct2/object/ObjectList.cpp @@ -133,26 +133,27 @@ void object_create_identifier_name(char* string_buffer, size_t size, const rct_o */ bool find_object_in_entry_group(const rct_object_entry * entry, uint8 * entry_type, uint8 * entry_index) { - if ((entry->flags & 0xF) >= Util::CountOf(object_entry_groups)) { - return false; - } - *entry_type = entry->flags & 0xF; - rct_object_entry_group entry_group = object_entry_groups[*entry_type]; - for (*entry_index = 0; - *entry_index < object_entry_group_counts[*entry_type]; - ++(*entry_index), entry_group.chunks++, entry_group.entries++) + sint32 objectType = object_entry_get_type(entry); + if (objectType >= OBJECT_TYPE_COUNT) { - if (*entry_group.chunks == nullptr) - continue; - - if (object_entry_compare((rct_object_entry*)entry_group.entries, entry)) - break; + return false; } - if (*entry_index == object_entry_group_counts[*entry_type]) - return false; - - return true; + auto maxObjects = object_entry_group_counts[objectType]; + for (sint32 i = 0; i < maxObjects; i++) + { + if (object_entry_get_chunk(objectType, i) != nullptr) + { + auto thisEntry = (rct_object_entry *)object_entry_get_entry(*entry_type, i); + if (object_entry_compare(thisEntry, entry)) + { + *entry_type = objectType; + *entry_index = i; + return true; + } + } + } + return false; } void get_type_entry_index(size_t index, uint8 * outObjectType, uint8 * outEntryIndex) @@ -177,17 +178,14 @@ const rct_object_entry * get_loaded_object_entry(size_t index) uint8 objectType, entryIndex; get_type_entry_index(index, &objectType, &entryIndex); - rct_object_entry * entry = (rct_object_entry *)&(object_entry_groups[objectType].entries[entryIndex]); - return entry; + return (rct_object_entry *)object_entry_get_entry(objectType, entryIndex); } void * get_loaded_object_chunk(size_t index) { uint8 objectType, entryIndex; get_type_entry_index(index, &objectType, &entryIndex); - - void *entry = object_entry_groups[objectType].chunks[entryIndex]; - return entry; + return object_entry_get_chunk(objectType, entryIndex); } void object_entry_get_name_fixed(utf8 * buffer, size_t bufferSize, const rct_object_entry * entry) @@ -196,3 +194,13 @@ void object_entry_get_name_fixed(utf8 * buffer, size_t bufferSize, const rct_obj memcpy(buffer, entry->name, bufferSize - 1); buffer[bufferSize - 1] = 0; } + +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) +{ + return &object_entry_groups[objectType].entries[index]; +} diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index 1621875047..7a5e534ffd 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_groups[objectType].entries[entryIndex]; + rct_object_entry_extended * legacyEntry = object_entry_get_entry(objectType, entryIndex); void * * legacyChunk = &object_entry_groups[objectType].chunks[entryIndex]; if (loadedObject == nullptr) { diff --git a/src/openrct2/paint/tile_element/Entrance.cpp b/src/openrct2/paint/tile_element/Entrance.cpp index 7c49e9b142..f9c6f7a34b 100644 --- a/src/openrct2/paint/tile_element/Entrance.cpp +++ b/src/openrct2/paint/tile_element/Entrance.cpp @@ -220,7 +220,7 @@ static void park_entrance_paint(paint_session * session, uint8 direction, sint32 sub_98197C(session, image_id, 0, 0, 32, 0x1C, 0, height, 0, 2, height, get_current_rotation()); } - entrance = (rct_entrance_type*)object_entry_groups[OBJECT_TYPE_PARK_ENTRANCE].chunks[0]; + entrance = (rct_entrance_type *)object_entry_get_chunk(OBJECT_TYPE_PARK_ENTRANCE, 0); if (entrance == nullptr) { return; @@ -267,7 +267,7 @@ static void park_entrance_paint(paint_session * session, uint8 direction, sint32 break; case 1: case 2: - entrance = (rct_entrance_type*)object_entry_groups[OBJECT_TYPE_PARK_ENTRANCE].chunks[0]; + entrance = (rct_entrance_type *)object_entry_get_chunk(OBJECT_TYPE_PARK_ENTRANCE, 0); if (entrance == nullptr) { return; diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index f1eca3636a..0cbd92c139 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -250,7 +250,7 @@ void get_ride_entry_name(char *name, sint32 index) return; } - const char *entryName = object_entry_groups[OBJECT_TYPE_RIDE].entries[index].name; + const auto entryName = object_entry_get_entry(OBJECT_TYPE_RIDE, index)->name; memcpy(name, entryName, 8); name[8] = '\0'; } diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index abf3087bd4..58f7d4fce3 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -492,7 +492,7 @@ static void track_design_mirror_scenery(rct_track_td6 * td6) } } - rct_scenery_entry * scenery_entry = (rct_scenery_entry *) object_entry_groups[entry_type].chunks[entry_index]; + rct_scenery_entry * scenery_entry = (rct_scenery_entry *)object_entry_get_chunk(entry_type, entry_index); switch (entry_type) { case OBJECT_TYPE_LARGE_SCENERY: diff --git a/src/openrct2/ride/TrackDesignSave.cpp b/src/openrct2/ride/TrackDesignSave.cpp index 3966d62f06..362d3229bc 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_groups[OBJECT_TYPE_SMALL_SCENERY].entries[entryType]; + rct_object_entry *entry = (rct_object_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); - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_LARGE_SCENERY].entries[entryType]; + auto entry = (rct_object_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; - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_WALLS].entries[entryType]; + auto entry = (rct_object_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; - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_PATHS].entries[entryType]; + auto entry = (rct_object_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; - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_SMALL_SCENERY].entries[entryType]; + auto entry = (rct_object_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); - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_LARGE_SCENERY].entries[entryType]; + auto entry = (rct_object_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; - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_WALLS].entries[entryType]; + auto entry = (rct_object_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; - rct_object_entry *entry = (rct_object_entry*)&object_entry_groups[OBJECT_TYPE_PATHS].entries[entryType]; + auto entry = (rct_object_entry *)object_entry_get_entry(OBJECT_TYPE_PATHS, entryType); uint8 flags = 0; flags |= tileElement->properties.path.edges & FOOTPATH_PROPERTIES_EDGES_EDGES_MASK; @@ -718,7 +718,7 @@ static rct_track_td6 *track_design_save_to_td6(uint8 rideIndex) rct_track_td6 *td6 = (rct_track_td6 *)calloc(1, sizeof(rct_track_td6)); Ride *ride = get_ride(rideIndex); td6->type = ride->type; - rct_object_entry_extended *object = &object_entry_groups[OBJECT_TYPE_RIDE].entries[ride->subtype]; + auto object = object_entry_get_entry(OBJECT_TYPE_RIDE, ride->subtype); // Note we are only copying rct_object_entry in size and // not the extended as we don't need the chunk size. diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index c5ca968336..f67fa4d20f 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -134,7 +134,7 @@ void scenario_begin() } } else { - rct_stex_entry* stex = g_stexEntries[0]; + auto stex = (rct_stex_entry *)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0); if (stex != nullptr) { char *buffer = gCommonStringFormatBuffer; @@ -332,7 +332,7 @@ static void scenario_week_update() ride_check_all_reachable(); ride_update_favourited_stat(); - rct_water_type* water_type = (rct_water_type*)object_entry_groups[OBJECT_TYPE_WATER].chunks[0]; + auto water_type = (rct_water_type *)object_entry_get_chunk(OBJECT_TYPE_WATER, 0); if (month <= MONTH_APRIL && water_type != nullptr && water_type->flags & WATER_FLAGS_ALLOW_DUCKS) { // 100 attempts at finding some water to create a few ducks at @@ -643,13 +643,13 @@ bool scenario_prepare_for_save() { gS6Info.entry.flags = 255; - rct_stex_entry* stex = g_stexEntries[0]; + auto stex = (rct_stex_entry *)object_entry_get_chunk(OBJECT_TYPE_SCENARIO_TEXT, 0); if (stex != nullptr) { char buffer[256]; format_string(buffer, 256, stex->scenario_name, nullptr); safe_strcpy(gS6Info.name, buffer, sizeof(gS6Info.name)); - memcpy(&gS6Info.entry, &object_entry_groups[OBJECT_TYPE_SCENARIO_TEXT].entries[0], sizeof(rct_object_entry)); + memcpy(&gS6Info.entry, object_entry_get_entry(OBJECT_TYPE_SCENARIO_TEXT, 0), sizeof(rct_object_entry)); } if (gS6Info.name[0] == 0) diff --git a/src/openrct2/scenario/Scenario.h b/src/openrct2/scenario/Scenario.h index 3975ed880a..2e15588f00 100644 --- a/src/openrct2/scenario/Scenario.h +++ b/src/openrct2/scenario/Scenario.h @@ -84,8 +84,6 @@ typedef struct rct_stex_entry { } rct_stex_entry; assert_struct_size(rct_stex_entry, 7); -#define g_stexEntries ((rct_stex_entry**)object_entry_groups[OBJECT_TYPE_SCENARIO_TEXT].chunks) - // This will be useful for backwards compatibility typedef struct rct_s6_data { // SC6[0] diff --git a/src/openrct2/world/MapGen.cpp b/src/openrct2/world/MapGen.cpp index 227c355868..17ccd74567 100644 --- a/src/openrct2/world/MapGen.cpp +++ b/src/openrct2/world/MapGen.cpp @@ -270,7 +270,7 @@ 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_groups[OBJECT_TYPE_SMALL_SCENERY].entries[i]; + rct_object_entry_extended * entry = object_entry_get_entry(OBJECT_TYPE_SMALL_SCENERY, i); if (sceneryEntry == nullptr) continue;