From c9e2c9f4d2dfce25c9acc63a4cb864c4994a1058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Sat, 11 Sep 2021 17:10:11 +0300 Subject: [PATCH] Apply review suggestions --- src/openrct2/rct2/S6Exporter.cpp | 30 ++++++++++++++++-------------- src/openrct2/rct2/S6Importer.cpp | 28 ++++++++++++++-------------- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index a101fe8d18..2b155cc33f 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -255,15 +255,17 @@ static void scenario_fix_ghosts(rct_s6_data* s6) } } -template static void ExportObjectList(IObjectManager& objMgr, T& objects, ObjectType type, size_t maxEntries) +template +static void ExportObjectList(IObjectManager& objMgr, T& objects) { - for (size_t i = 0; i < maxEntries; i++) + for (size_t i = 0; i < TMaxEntries; i++) { auto& dst = objects[i]; - auto* object = objMgr.GetLoadedObject(type, i); + const auto* object = objMgr.GetLoadedObject(TObjectType, i); if (object == nullptr || object->GetObjectEntry() == nullptr) { + // The sv6 format expects null/invalid entries to be filled with 0xFF. std::memset(&dst, 0xFF, sizeof(dst)); } else @@ -297,17 +299,17 @@ void S6Exporter::Export() uint32_t researchedTrackPiecesB[128] = {}; auto& objectMgr = OpenRCT2::GetContext()->GetObjectManager(); - ExportObjectList(objectMgr, _s6.RideObjects, ObjectType::Ride, RCT12_MAX_RIDE_OBJECTS); - ExportObjectList(objectMgr, _s6.SceneryObjects, ObjectType::SmallScenery, RCT2_MAX_SMALL_SCENERY_OBJECTS); - ExportObjectList(objectMgr, _s6.LargeSceneryObjects, ObjectType::LargeScenery, RCT2_MAX_LARGE_SCENERY_OBJECTS); - ExportObjectList(objectMgr, _s6.WallSceneryObjects, ObjectType::Walls, RCT2_MAX_WALL_SCENERY_OBJECTS); - ExportObjectList(objectMgr, _s6.BannerObjects, ObjectType::Banners, RCT2_MAX_BANNER_OBJECTS); - ExportObjectList(objectMgr, _s6.PathObjects, ObjectType::Paths, RCT2_MAX_PATH_OBJECTS); - ExportObjectList(objectMgr, _s6.PathAdditionObjects, ObjectType::PathBits, RCT2_MAX_PATH_ADDITION_OBJECTS); - ExportObjectList(objectMgr, _s6.SceneryGroupObjects, ObjectType::SceneryGroup, RCT2_MAX_SCENERY_GROUP_OBJECTS); - ExportObjectList(objectMgr, _s6.ParkEntranceObjects, ObjectType::ParkEntrance, RCT2_MAX_PARK_ENTRANCE_OBJECTS); - ExportObjectList(objectMgr, _s6.WaterObjects, ObjectType::Water, RCT2_MAX_WATER_OBJECTS); - ExportObjectList(objectMgr, _s6.ScenarioTextObjects, ObjectType::ScenarioText, RCT2_MAX_SCENARIO_TEXT_OBJECTS); + ExportObjectList(objectMgr, _s6.RideObjects); + ExportObjectList(objectMgr, _s6.SceneryObjects); + ExportObjectList(objectMgr, _s6.LargeSceneryObjects); + ExportObjectList(objectMgr, _s6.WallSceneryObjects); + ExportObjectList(objectMgr, _s6.BannerObjects); + ExportObjectList(objectMgr, _s6.PathObjects); + ExportObjectList(objectMgr, _s6.PathAdditionObjects); + ExportObjectList(objectMgr, _s6.SceneryGroupObjects); + ExportObjectList(objectMgr, _s6.ParkEntranceObjects); + ExportObjectList(objectMgr, _s6.WaterObjects); + ExportObjectList(objectMgr, _s6.ScenarioTextObjects); _s6.elapsed_months = static_cast(gDateMonthsElapsed); _s6.current_day = gDateMonthTicks; diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 32fe1918b3..bee403a492 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -1563,8 +1563,8 @@ public: return justText.data(); } - template - static void AddRequiredObjects(std::vector& required, const T& list, size_t internalLimit) + template + static void AddRequiredObjects(std::vector& required, const T& list) { rct_object_entry nullEntry = {}; std::memset(&nullEntry, 0xFF, sizeof(nullEntry)); @@ -1576,7 +1576,7 @@ public: // NOTE: The segment of this object type needs to be filled to the internal limit // the object manager currently expects this. - for (size_t i = std::size(list); i < internalLimit; i++) + for (size_t i = std::size(list); i < TInternalLimit; i++) { required.push_back(nullEntry); } @@ -1586,17 +1586,17 @@ public: { std::vector result; - AddRequiredObjects(result, _s6.RideObjects, MAX_RIDE_OBJECTS); - AddRequiredObjects(result, _s6.SceneryObjects, MAX_SMALL_SCENERY_OBJECTS); - AddRequiredObjects(result, _s6.LargeSceneryObjects, MAX_LARGE_SCENERY_OBJECTS); - AddRequiredObjects(result, _s6.WallSceneryObjects, MAX_WALL_SCENERY_OBJECTS); - AddRequiredObjects(result, _s6.BannerObjects, MAX_BANNER_OBJECTS); - AddRequiredObjects(result, _s6.PathObjects, MAX_PATH_OBJECTS); - AddRequiredObjects(result, _s6.PathAdditionObjects, MAX_PATH_ADDITION_OBJECTS); - AddRequiredObjects(result, _s6.SceneryGroupObjects, MAX_SCENERY_GROUP_OBJECTS); - AddRequiredObjects(result, _s6.ParkEntranceObjects, MAX_PARK_ENTRANCE_OBJECTS); - AddRequiredObjects(result, _s6.WaterObjects, MAX_WATER_OBJECTS); - AddRequiredObjects(result, _s6.ScenarioTextObjects, MAX_SCENARIO_TEXT_OBJECTS); + AddRequiredObjects(result, _s6.RideObjects); + AddRequiredObjects(result, _s6.SceneryObjects); + AddRequiredObjects(result, _s6.LargeSceneryObjects); + AddRequiredObjects(result, _s6.WallSceneryObjects); + AddRequiredObjects(result, _s6.BannerObjects); + AddRequiredObjects(result, _s6.PathObjects); + AddRequiredObjects(result, _s6.PathAdditionObjects); + AddRequiredObjects(result, _s6.SceneryGroupObjects); + AddRequiredObjects(result, _s6.ParkEntranceObjects); + AddRequiredObjects(result, _s6.WaterObjects); + AddRequiredObjects(result, _s6.ScenarioTextObjects); return result; }