From 2d8d1e3eeeb995fbf2685d34dce1b5c7497b28ab Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Fri, 16 May 2025 12:54:14 +0200 Subject: [PATCH] Rename ScenarioText object type to ScenarioMeta --- .../command_line/ParkInfoCommands.cpp | 4 +- src/openrct2/libopenrct2.vcxproj | 4 +- src/openrct2/object/ObjectFactory.cpp | 10 +- src/openrct2/object/ObjectLimits.h | 2 +- src/openrct2/object/ObjectList.cpp | 2 +- src/openrct2/object/ObjectManager.cpp | 2 +- src/openrct2/object/ObjectTypes.cpp | 4 +- src/openrct2/object/ObjectTypes.h | 2 +- ...oTextObject.cpp => ScenarioMetaObject.cpp} | 16 +- ...narioTextObject.h => ScenarioMetaObject.h} | 4 +- src/openrct2/rct1/S4Importer.cpp | 11 +- src/openrct2/rct2/Limits.h | 2 +- src/openrct2/rct2/RCT2.h | 6 +- src/openrct2/rct2/S6Importer.cpp | 9 +- src/openrct2/scenario/Scenario.cpp | 4 +- src/openrct2/scenario/ScenarioSources.cpp | 326 +++++++++--------- .../bindings/object/ScInstalledObject.cpp | 2 +- 17 files changed, 204 insertions(+), 206 deletions(-) rename src/openrct2/object/{ScenarioTextObject.cpp => ScenarioMetaObject.cpp} (71%) rename src/openrct2/object/{ScenarioTextObject.h => ScenarioMetaObject.h} (93%) diff --git a/src/openrct2/command_line/ParkInfoCommands.cpp b/src/openrct2/command_line/ParkInfoCommands.cpp index 2c74873f76..2b50a75d59 100644 --- a/src/openrct2/command_line/ParkInfoCommands.cpp +++ b/src/openrct2/command_line/ParkInfoCommands.cpp @@ -92,7 +92,7 @@ static exitcode_t HandleObjectsInfo(CommandLineArgEnumerator* argEnumerator) constexpr std::array typeToName = { "Ride", "SmallScenery", "LargeScenery", "Walls", "Banners", "Paths", - "PathAdditions", "SceneryGroup", "ParkEntrance", "Water", "ScenarioText", "TerrainSurface", + "PathAdditions", "SceneryGroup", "ParkEntrance", "Water", "ScenarioMeta", "TerrainSurface", "TerrainEdge", "Station", "Music", "FootpathSurface", "FootpathRailings", }; constexpr std::array sourceGameToName = { @@ -110,7 +110,7 @@ static exitcode_t HandleObjectsInfo(CommandLineArgEnumerator* argEnumerator) ObjectType::sceneryGroup, ObjectType::parkEntrance, ObjectType::water, - ObjectType::scenarioText, + ObjectType::scenarioMeta, ObjectType::terrainSurface, ObjectType::terrainEdge, ObjectType::station, diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 2e2aa2e092..61d9945d55 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -363,7 +363,7 @@ - + @@ -903,7 +903,7 @@ - + diff --git a/src/openrct2/object/ObjectFactory.cpp b/src/openrct2/object/ObjectFactory.cpp index d9f3bbcf9f..821fee5a0e 100644 --- a/src/openrct2/object/ObjectFactory.cpp +++ b/src/openrct2/object/ObjectFactory.cpp @@ -41,7 +41,7 @@ #include "PeepAnimationsObject.h" #include "PeepNamesObject.h" #include "RideObject.h" -#include "ScenarioTextObject.h" +#include "ScenarioMetaObject.h" #include "SceneryGroupObject.h" #include "SmallSceneryObject.h" #include "StationObject.h" @@ -272,7 +272,7 @@ namespace OpenRCT2::ObjectFactory RCTObjectEntry entry = fs.ReadValue(); - if (entry.GetType() != ObjectType::scenarioText) + if (entry.GetType() != ObjectType::scenarioMeta) { result = CreateObject(entry.GetType()); result->SetDescriptor(ObjectEntryDescriptor(entry)); @@ -366,8 +366,8 @@ namespace OpenRCT2::ObjectFactory case ObjectType::water: result = std::make_unique(); break; - case ObjectType::scenarioText: - result = std::make_unique(); + case ObjectType::scenarioMeta: + result = std::make_unique(); break; case ObjectType::terrainSurface: result = std::make_unique(); @@ -416,7 +416,7 @@ namespace OpenRCT2::ObjectFactory { "scenery_group", ObjectType::sceneryGroup }, { "park_entrance", ObjectType::parkEntrance }, { "water", ObjectType::water }, - { "scenario_text", ObjectType::scenarioText }, + { "scenario_meta", ObjectType::scenarioMeta }, { "terrain_surface", ObjectType::terrainSurface }, { "terrain_edge", ObjectType::terrainEdge }, { "station", ObjectType::station }, diff --git a/src/openrct2/object/ObjectLimits.h b/src/openrct2/object/ObjectLimits.h index 51ae09fd5e..ce0360e4b7 100644 --- a/src/openrct2/object/ObjectLimits.h +++ b/src/openrct2/object/ObjectLimits.h @@ -23,7 +23,7 @@ constexpr uint16_t kMaxPathAdditionObjects = 255; constexpr uint16_t kMaxSceneryGroupObjects = 255; constexpr uint16_t kMaxParkEntranceObjects = 255; constexpr uint16_t kMaxWaterObjects = 1; -constexpr uint16_t kMaxScenarioTextObjects = 1; +constexpr uint16_t kMaxScenarioMetaObjects = 1; constexpr uint16_t kMaxTerrainSurfaceObjects = 255; constexpr uint16_t kMaxTerrainEdgeObjects = 255; constexpr uint16_t kMaxStationObjects = 255; diff --git a/src/openrct2/object/ObjectList.cpp b/src/openrct2/object/ObjectList.cpp index b5d83f0227..397bfaa7bc 100644 --- a/src/openrct2/object/ObjectList.cpp +++ b/src/openrct2/object/ObjectList.cpp @@ -33,7 +33,7 @@ static constexpr std::array kObjectEntryG kMaxSceneryGroupObjects, // scenery sets kMaxParkEntranceObjects, // park entrance kMaxWaterObjects, // water - kMaxScenarioTextObjects, // scenario text + kMaxScenarioMetaObjects, // scenario meta kMaxTerrainSurfaceObjects, kMaxTerrainEdgeObjects, kMaxStationObjects, kMaxMusicObjects, kMaxFootpathSurfaceObjects, kMaxFootpathRailingsObjects, kMaxAudioObjects, kMaxPeepNamesObjects, kMaxPeepAnimationsObjects, diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index 6309e330e6..4ead4a1152 100644 --- a/src/openrct2/object/ObjectManager.cpp +++ b/src/openrct2/object/ObjectManager.cpp @@ -550,7 +550,7 @@ private: if (entry.HasValue()) { const auto* ori = _objectRepository.FindObject(entry); - if (ori == nullptr && entry.GetType() == ObjectType::scenarioText) + if (ori == nullptr && entry.GetType() == ObjectType::scenarioMeta) { continue; } diff --git a/src/openrct2/object/ObjectTypes.cpp b/src/openrct2/object/ObjectTypes.cpp index b7ccee39c0..e98768a4c6 100644 --- a/src/openrct2/object/ObjectTypes.cpp +++ b/src/openrct2/object/ObjectTypes.cpp @@ -25,7 +25,7 @@ constexpr std::array kAllObjectTypes = { ObjectType::sceneryGroup, ObjectType::parkEntrance, ObjectType::water, - ObjectType::scenarioText, + ObjectType::scenarioMeta, ObjectType::terrainSurface, ObjectType::terrainEdge, ObjectType::station, @@ -51,7 +51,7 @@ static constexpr std::array kTransie // Object types that cannot be saved in a park file. static constexpr std::array kIntransientObjectTypes = { - ObjectType::scenarioText, + ObjectType::scenarioMeta, ObjectType::audio, }; diff --git a/src/openrct2/object/ObjectTypes.h b/src/openrct2/object/ObjectTypes.h index 247f796dae..a4cb8a8568 100644 --- a/src/openrct2/object/ObjectTypes.h +++ b/src/openrct2/object/ObjectTypes.h @@ -31,7 +31,7 @@ enum class ObjectType : uint8_t sceneryGroup, parkEntrance, water, - scenarioText, + scenarioMeta, terrainSurface, terrainEdge, station, diff --git a/src/openrct2/object/ScenarioTextObject.cpp b/src/openrct2/object/ScenarioMetaObject.cpp similarity index 71% rename from src/openrct2/object/ScenarioTextObject.cpp rename to src/openrct2/object/ScenarioMetaObject.cpp index 32a687ad42..560b206264 100644 --- a/src/openrct2/object/ScenarioTextObject.cpp +++ b/src/openrct2/object/ScenarioMetaObject.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "ScenarioTextObject.h" +#include "ScenarioMetaObject.h" #include "../Context.h" #include "../PlatformEnvironment.h" @@ -16,31 +16,31 @@ using namespace OpenRCT2; -void ScenarioTextObject::Load() +void ScenarioMetaObject::Load() { } -void ScenarioTextObject::Unload() +void ScenarioMetaObject::Unload() { } -void ScenarioTextObject::ReadJson(IReadObjectContext* context, json_t& root) +void ScenarioMetaObject::ReadJson(IReadObjectContext* context, json_t& root) { - Guard::Assert(root.is_object(), "ScenarioTextObject::ReadJson expects parameter root to be an object"); + Guard::Assert(root.is_object(), "ScenarioMetaObject::ReadJson expects parameter root to be an object"); PopulateTablesFromJson(context, root); } -std::string ScenarioTextObject::GetScenarioName() +std::string ScenarioMetaObject::GetScenarioName() { return GetStringTable().GetString(ObjectStringID::NAME); // SCENARIO_NAME } -std::string ScenarioTextObject::GetParkName() +std::string ScenarioMetaObject::GetParkName() { return GetStringTable().GetString(ObjectStringID::PARK_NAME); } -std::string ScenarioTextObject::GetScenarioDetails() +std::string ScenarioMetaObject::GetScenarioDetails() { return GetStringTable().GetString(ObjectStringID::SCENARIO_DETAILS); } diff --git a/src/openrct2/object/ScenarioTextObject.h b/src/openrct2/object/ScenarioMetaObject.h similarity index 93% rename from src/openrct2/object/ScenarioTextObject.h rename to src/openrct2/object/ScenarioMetaObject.h index ee04c7f468..4452d6099a 100644 --- a/src/openrct2/object/ScenarioTextObject.h +++ b/src/openrct2/object/ScenarioMetaObject.h @@ -14,10 +14,10 @@ #include -class ScenarioTextObject final : public Object +class ScenarioMetaObject final : public Object { public: - static constexpr ObjectType kObjectType = ObjectType::scenarioText; + static constexpr ObjectType kObjectType = ObjectType::scenarioMeta; void ReadJson(IReadObjectContext* context, json_t& root) override; void Load() override; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index c6a68bb82a..1d9070048c 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -50,7 +50,7 @@ #include "../object/ObjectManager.h" #include "../object/ObjectRepository.h" #include "../object/PeepAnimationsObject.h" -#include "../object/ScenarioTextObject.h" +#include "../object/ScenarioMetaObject.h" #include "../park/Legacy.h" #include "../park/ParkPreview.h" #include "../peep/RideUseSystem.h" @@ -273,7 +273,7 @@ namespace OpenRCT2::RCT1 // Load the one specified if (auto obj = objManager.LoadTempObject(desc.textObjectId); obj != nullptr) { - auto& textObject = reinterpret_cast(*obj); + auto& textObject = reinterpret_cast(*obj); name = textObject.GetScenarioName(); details = textObject.GetScenarioDetails(); @@ -1561,10 +1561,10 @@ namespace OpenRCT2::RCT1 // Normalise the name to make the scenario as recognisable as possible auto normalisedName = ScenarioSources::NormaliseName(_s4.ScenarioName); - // Infer what scenario text object to use, if any + // Infer what scenario meta object to use, if any SourceDescriptor desc; if (ScenarioSources::TryGetByName(normalisedName.c_str(), &desc) && !desc.textObjectId.empty()) - AppendRequiredObjects(result, ObjectType::scenarioText, std::vector({ desc.textObjectId })); + AppendRequiredObjects(result, ObjectType::scenarioMeta, std::vector({ desc.textObjectId })); // Add all legacy peep animation objects auto animObjects = GetLegacyPeepAnimationObjects(); @@ -2408,10 +2408,9 @@ namespace OpenRCT2::RCT1 { auto& objManager = GetContext()->GetObjectManager(); - // Load the one specified if (auto obj = objManager.LoadTempObject(desc.textObjectId); obj != nullptr) { - auto& textObject = reinterpret_cast(*obj); + auto& textObject = reinterpret_cast(*obj); name = textObject.GetScenarioName(); parkName = textObject.GetParkName(); details = textObject.GetScenarioDetails(); diff --git a/src/openrct2/rct2/Limits.h b/src/openrct2/rct2/Limits.h index c2d9b02bd7..24497c06a1 100644 --- a/src/openrct2/rct2/Limits.h +++ b/src/openrct2/rct2/Limits.h @@ -43,6 +43,6 @@ namespace OpenRCT2::RCT2::Limits constexpr uint8_t kMaxSceneryGroupObjects = 19; constexpr uint8_t kMaxParkEntranceObjects = 1; constexpr uint8_t kMaxWaterObjects = 1; - constexpr uint8_t kMaxScenarioTextObjects = 1; + constexpr uint8_t kMaxScenarioMetaObjects = 1; constexpr uint16_t kMaxMapSize = 256; } // namespace OpenRCT2::RCT2::Limits diff --git a/src/openrct2/rct2/RCT2.h b/src/openrct2/rct2/RCT2.h index c5b7261547..122eb6383f 100644 --- a/src/openrct2/rct2/RCT2.h +++ b/src/openrct2/rct2/RCT2.h @@ -41,7 +41,7 @@ namespace OpenRCT2::RCT2 Limits::kMaxSceneryGroupObjects + Limits::kMaxParkEntranceObjects + Limits::kMaxWaterObjects + - Limits::kMaxScenarioTextObjects; + Limits::kMaxScenarioMetaObjects; // clang-format on static_assert(kRCT2ObjectEntryCount == 721); @@ -57,7 +57,7 @@ namespace OpenRCT2::RCT2 Limits::kMaxSceneryGroupObjects, Limits::kMaxParkEntranceObjects, Limits::kMaxWaterObjects, - Limits::kMaxScenarioTextObjects, + Limits::kMaxScenarioMetaObjects, }; // clang-format on @@ -797,7 +797,7 @@ namespace OpenRCT2::RCT2 RCTObjectEntry SceneryGroupObjects[Limits::kMaxSceneryGroupObjects]; RCTObjectEntry ParkEntranceObjects[Limits::kMaxParkEntranceObjects]; RCTObjectEntry WaterObjects[Limits::kMaxWaterObjects]; - RCTObjectEntry ScenarioTextObjects[Limits::kMaxScenarioTextObjects]; + RCTObjectEntry ScenarioMetaObjects[Limits::kMaxScenarioMetaObjects]; }; }; diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index b8f8e16f87..e94bda7f72 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -49,7 +49,7 @@ #include "../object/ObjectList.h" #include "../object/ObjectManager.h" #include "../object/ObjectRepository.h" -#include "../object/ScenarioTextObject.h" +#include "../object/ScenarioMetaObject.h" #include "../object/WallSceneryEntry.h" #include "../park/Legacy.h" #include "../park/ParkPreview.h" @@ -296,10 +296,9 @@ namespace OpenRCT2::RCT2 { auto& objManager = GetContext()->GetObjectManager(); - // Load the one specified if (auto obj = objManager.LoadTempObject(desc.textObjectId); obj != nullptr) { - auto& textObject = reinterpret_cast(*obj); + auto& textObject = reinterpret_cast(*obj); dst->Name = textObject.GetScenarioName(); dst->Details = textObject.GetScenarioDetails(); @@ -1913,11 +1912,11 @@ namespace OpenRCT2::RCT2 // Normalise the name to make the scenario as recognisable as possible auto normalisedName = ScenarioSources::NormaliseName(_s6.Info.Name); - // Infer what scenario text object to use, if any + // Infer what scenario meta object to use, if any SourceDescriptor desc; if (ScenarioSources::TryGetByName(normalisedName.c_str(), &desc) && !desc.textObjectId.empty()) AppendRequiredObjects( - objectList, ObjectType::scenarioText, std::vector({ desc.textObjectId })); + objectList, ObjectType::scenarioMeta, std::vector({ desc.textObjectId })); auto animObjects = GetLegacyPeepAnimationObjects(); AppendRequiredObjects(objectList, ObjectType::peepAnimations, animObjects); diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index 7a497727de..9f19c72d2f 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -40,7 +40,7 @@ #include "../object/ObjectLimits.h" #include "../object/ObjectList.h" #include "../object/ObjectManager.h" -#include "../object/ScenarioTextObject.h" +#include "../object/ScenarioMetaObject.h" #include "../object/WaterEntry.h" #include "../platform/Platform.h" #include "../profiling/Profiling.h" @@ -112,7 +112,7 @@ void ScenarioReset(GameState_t& gameState) gameState.cash = gameState.initialCash; auto& objManager = GetContext()->GetObjectManager(); - if (auto* textObject = objManager.GetLoadedObject(0); textObject != nullptr) + if (auto* textObject = objManager.GetLoadedObject(0); textObject != nullptr) { gameState.scenarioName = textObject->GetScenarioName(); gameState.park.Name = textObject->GetParkName(); diff --git a/src/openrct2/scenario/ScenarioSources.cpp b/src/openrct2/scenario/ScenarioSources.cpp index c71b47014c..e87fbbaaac 100644 --- a/src/openrct2/scenario/ScenarioSources.cpp +++ b/src/openrct2/scenario/ScenarioSources.cpp @@ -121,211 +121,211 @@ namespace OpenRCT2::ScenarioSources // RCT static constexpr ScenarioTitleDescriptor kScenarioTitlesRCT1[] = { - { SC_FOREST_FRONTIERS, "Forest Frontiers", ScenarioCategory::beginner, "rct1.scenario_text.forest_frontiers" }, - { SC_DYNAMITE_DUNES, "Dynamite Dunes", ScenarioCategory::beginner, "rct1.scenario_text.dynamite_dunes" }, - { SC_LEAFY_LAKE, "Leafy Lake", ScenarioCategory::beginner, "rct1.scenario_text.leafy_lake" }, - { SC_DIAMOND_HEIGHTS, "Diamond Heights", ScenarioCategory::beginner, "rct1.scenario_text.diamond_heights" }, - { SC_EVERGREEN_GARDENS, "Evergreen Gardens", ScenarioCategory::beginner, "rct1.scenario_text.evergreen_gardens" }, - { SC_BUMBLY_BEACH, "Bumbly Beach", ScenarioCategory::beginner, "rct1.scenario_text.bumbly_beach" }, - { SC_TRINITY_ISLANDS, "Trinity Islands", ScenarioCategory::challenging, "rct1.scenario_text.trinity_islands" }, - { SC_KATIES_DREAMLAND, "Katie's Dreamland", ScenarioCategory::challenging, "rct1.scenario_text.katies_dreamland" }, - { SC_POKEY_PARK, "Pokey Park", ScenarioCategory::challenging, "rct1.scenario_text.pokey_park" }, - { SC_WHITE_WATER_PARK, "White Water Park", ScenarioCategory::challenging, "rct1.scenario_text.white_water_park" }, - { SC_MILLENNIUM_MINES, "Millennium Mines", ScenarioCategory::challenging, "rct1.scenario_text.millennium_mines" }, - { SC_KARTS_COASTERS, "Karts & Coasters", ScenarioCategory::challenging, "rct1.scenario_text.karts_coasters" }, - { SC_MELS_WORLD, "Mel's World", ScenarioCategory::challenging, "rct1.scenario_text.mels_world" }, - { SC_MYSTIC_MOUNTAIN, "Mystic Mountain", ScenarioCategory::challenging, "rct1.scenario_text.mystic_mountain" }, - { SC_PACIFIC_PYRAMIDS, "Pacific Pyramids", ScenarioCategory::challenging, "rct1.scenario_text.pacific_pyramids" }, - { SC_CRUMBLY_WOODS, "Crumbly Woods", ScenarioCategory::challenging, "rct1.scenario_text.crumbly_woods" }, - { SC_PARADISE_PIER, "Paradise Pier", ScenarioCategory::challenging, "rct1.scenario_text.paradise_pier" }, - { SC_LIGHTNING_PEAKS, "Lightning Peaks", ScenarioCategory::expert, "rct1.scenario_text.lightning_peaks" }, - { SC_IVORY_TOWERS, "Ivory Towers", ScenarioCategory::expert, "rct1.scenario_text.ivory_towers" }, - { SC_RAINBOW_VALLEY, "Rainbow Valley", ScenarioCategory::expert, "rct1.scenario_text.rainbow_valley" }, - { SC_THUNDER_ROCK, "Thunder Rock", ScenarioCategory::expert, "rct1.scenario_text.thunder_rock" }, - { SC_MEGA_PARK, "Mega Park", ScenarioCategory::other, "rct1.scenario_text.mega_park" }, + { SC_FOREST_FRONTIERS, "Forest Frontiers", ScenarioCategory::beginner, "rct1.scenario_meta.forest_frontiers" }, + { SC_DYNAMITE_DUNES, "Dynamite Dunes", ScenarioCategory::beginner, "rct1.scenario_meta.dynamite_dunes" }, + { SC_LEAFY_LAKE, "Leafy Lake", ScenarioCategory::beginner, "rct1.scenario_meta.leafy_lake" }, + { SC_DIAMOND_HEIGHTS, "Diamond Heights", ScenarioCategory::beginner, "rct1.scenario_meta.diamond_heights" }, + { SC_EVERGREEN_GARDENS, "Evergreen Gardens", ScenarioCategory::beginner, "rct1.scenario_meta.evergreen_gardens" }, + { SC_BUMBLY_BEACH, "Bumbly Beach", ScenarioCategory::beginner, "rct1.scenario_meta.bumbly_beach" }, + { SC_TRINITY_ISLANDS, "Trinity Islands", ScenarioCategory::challenging, "rct1.scenario_meta.trinity_islands" }, + { SC_KATIES_DREAMLAND, "Katie's Dreamland", ScenarioCategory::challenging, "rct1.scenario_meta.katies_dreamland" }, + { SC_POKEY_PARK, "Pokey Park", ScenarioCategory::challenging, "rct1.scenario_meta.pokey_park" }, + { SC_WHITE_WATER_PARK, "White Water Park", ScenarioCategory::challenging, "rct1.scenario_meta.white_water_park" }, + { SC_MILLENNIUM_MINES, "Millennium Mines", ScenarioCategory::challenging, "rct1.scenario_meta.millennium_mines" }, + { SC_KARTS_COASTERS, "Karts & Coasters", ScenarioCategory::challenging, "rct1.scenario_meta.karts_coasters" }, + { SC_MELS_WORLD, "Mel's World", ScenarioCategory::challenging, "rct1.scenario_meta.mels_world" }, + { SC_MYSTIC_MOUNTAIN, "Mystic Mountain", ScenarioCategory::challenging, "rct1.scenario_meta.mystic_mountain" }, + { SC_PACIFIC_PYRAMIDS, "Pacific Pyramids", ScenarioCategory::challenging, "rct1.scenario_meta.pacific_pyramids" }, + { SC_CRUMBLY_WOODS, "Crumbly Woods", ScenarioCategory::challenging, "rct1.scenario_meta.crumbly_woods" }, + { SC_PARADISE_PIER, "Paradise Pier", ScenarioCategory::challenging, "rct1.scenario_meta.paradise_pier" }, + { SC_LIGHTNING_PEAKS, "Lightning Peaks", ScenarioCategory::expert, "rct1.scenario_meta.lightning_peaks" }, + { SC_IVORY_TOWERS, "Ivory Towers", ScenarioCategory::expert, "rct1.scenario_meta.ivory_towers" }, + { SC_RAINBOW_VALLEY, "Rainbow Valley", ScenarioCategory::expert, "rct1.scenario_meta.rainbow_valley" }, + { SC_THUNDER_ROCK, "Thunder Rock", ScenarioCategory::expert, "rct1.scenario_meta.thunder_rock" }, + { SC_MEGA_PARK, "Mega Park", ScenarioCategory::other, "rct1.scenario_meta.mega_park" }, }; // RCT: Added Attractions static constexpr ScenarioTitleDescriptor kScenarioTitlesRCT1AA[] = { - { SC_WHISPERING_CLIFFS, "Whispering Cliffs", ScenarioCategory::beginner, "rct1aa.scenario_text.whispering_cliffs" }, - { SC_THREE_MONKEYS_PARK, "Three Monkeys Park", ScenarioCategory::beginner, "rct1aa.scenario_text.three_monkeys_park" }, - { SC_CANARY_MINES, "Canary Mines", ScenarioCategory::beginner, "rct1aa.scenario_text.canary_mines" }, - { SC_BARONY_BRIDGE, "Barony Bridge", ScenarioCategory::beginner, "rct1aa.scenario_text.barony_bridge" }, - { SC_FUNTOPIA, "Funtopia", ScenarioCategory::beginner, "rct1aa.scenario_text.funtopia" }, - { SC_HAUNTED_HARBOUR, "Haunted Harbour", ScenarioCategory::beginner, "rct1aa.scenario_text.haunted_harbour" }, - { SC_FUN_FORTRESS, "Fun Fortress", ScenarioCategory::beginner, "rct1aa.scenario_text.fun_fortress" }, - { SC_FUTURE_WORLD, "Future World", ScenarioCategory::beginner, "rct1aa.scenario_text.future_world" }, - { SC_GENTLE_GLEN, "Gentle Glen", ScenarioCategory::beginner, "rct1aa.scenario_text.gentle_glen" }, - { SC_JOLLY_JUNGLE, "Jolly Jungle", ScenarioCategory::challenging, "rct1aa.scenario_text.jolly_jungle" }, - { SC_HYDRO_HILLS, "Hydro Hills", ScenarioCategory::challenging, "rct1aa.scenario_text.hydro_hills" }, - { SC_SPRIGHTLY_PARK, "Sprightly Park", ScenarioCategory::challenging, "rct1aa.scenario_text.sprightly_park" }, - { SC_MAGIC_QUARTERS, "Magic Quarters", ScenarioCategory::challenging, "rct1aa.scenario_text.magic_quarters" }, - { SC_FRUIT_FARM, "Fruit Farm", ScenarioCategory::challenging, "rct1aa.scenario_text.fruit_farm" }, - { SC_BUTTERFLY_DAM, "Butterfly Dam", ScenarioCategory::challenging, "rct1aa.scenario_text.butterfly_dam" }, - { SC_COASTER_CANYON, "Coaster Canyon", ScenarioCategory::challenging, "rct1aa.scenario_text.coaster_canyon" }, - { SC_THUNDERSTORM_PARK, "Thunderstorm Park", ScenarioCategory::challenging, "rct1aa.scenario_text.thunderstorm_park" }, - { SC_HARMONIC_HILLS, "Harmonic Hills", ScenarioCategory::challenging, "rct1aa.scenario_text.harmonic_hills" }, - { SC_ROMAN_VILLAGE, "Roman Village", ScenarioCategory::challenging, "rct1aa.scenario_text.roman_village" }, - { SC_SWAMP_COVE, "Swamp Cove", ScenarioCategory::challenging, "rct1aa.scenario_text.swamp_cove" }, - { SC_ADRENALINE_HEIGHTS, "Adrenaline Heights", ScenarioCategory::challenging, "rct1aa.scenario_text.adrenaline_heights" }, - { SC_UTOPIA_PARK, "Utopia Park", ScenarioCategory::challenging, "rct1aa.scenario_text.utopia_park" }, - { SC_ROTTING_HEIGHTS, "Rotting Heights", ScenarioCategory::expert, "rct1aa.scenario_text.rotting_heights" }, - { SC_FIASCO_FOREST, "Fiasco Forest", ScenarioCategory::expert, "rct1aa.scenario_text.fiasco_forest" }, - { SC_PICKLE_PARK, "Pickle Park", ScenarioCategory::expert, "rct1aa.scenario_text.pickle_park" }, - { SC_GIGGLE_DOWNS, "Giggle Downs", ScenarioCategory::expert, "rct1aa.scenario_text.giggle_downs" }, - { SC_MINERAL_PARK, "Mineral Park", ScenarioCategory::expert, "rct1aa.scenario_text.mineral_park" }, - { SC_COASTER_CRAZY, "Coaster Crazy", ScenarioCategory::expert, "rct1aa.scenario_text.coaster_crazy" }, - { SC_URBAN_PARK, "Urban Park", ScenarioCategory::expert, "rct1aa.scenario_text.urban_park" }, - { SC_GEOFFREY_GARDENS, "Geoffrey Gardens", ScenarioCategory::expert, "rct1aa.scenario_text.geoffrey_gardens" }, + { SC_WHISPERING_CLIFFS, "Whispering Cliffs", ScenarioCategory::beginner, "rct1aa.scenario_meta.whispering_cliffs" }, + { SC_THREE_MONKEYS_PARK, "Three Monkeys Park", ScenarioCategory::beginner, "rct1aa.scenario_meta.three_monkeys_park" }, + { SC_CANARY_MINES, "Canary Mines", ScenarioCategory::beginner, "rct1aa.scenario_meta.canary_mines" }, + { SC_BARONY_BRIDGE, "Barony Bridge", ScenarioCategory::beginner, "rct1aa.scenario_meta.barony_bridge" }, + { SC_FUNTOPIA, "Funtopia", ScenarioCategory::beginner, "rct1aa.scenario_meta.funtopia" }, + { SC_HAUNTED_HARBOUR, "Haunted Harbour", ScenarioCategory::beginner, "rct1aa.scenario_meta.haunted_harbour" }, + { SC_FUN_FORTRESS, "Fun Fortress", ScenarioCategory::beginner, "rct1aa.scenario_meta.fun_fortress" }, + { SC_FUTURE_WORLD, "Future World", ScenarioCategory::beginner, "rct1aa.scenario_meta.future_world" }, + { SC_GENTLE_GLEN, "Gentle Glen", ScenarioCategory::beginner, "rct1aa.scenario_meta.gentle_glen" }, + { SC_JOLLY_JUNGLE, "Jolly Jungle", ScenarioCategory::challenging, "rct1aa.scenario_meta.jolly_jungle" }, + { SC_HYDRO_HILLS, "Hydro Hills", ScenarioCategory::challenging, "rct1aa.scenario_meta.hydro_hills" }, + { SC_SPRIGHTLY_PARK, "Sprightly Park", ScenarioCategory::challenging, "rct1aa.scenario_meta.sprightly_park" }, + { SC_MAGIC_QUARTERS, "Magic Quarters", ScenarioCategory::challenging, "rct1aa.scenario_meta.magic_quarters" }, + { SC_FRUIT_FARM, "Fruit Farm", ScenarioCategory::challenging, "rct1aa.scenario_meta.fruit_farm" }, + { SC_BUTTERFLY_DAM, "Butterfly Dam", ScenarioCategory::challenging, "rct1aa.scenario_meta.butterfly_dam" }, + { SC_COASTER_CANYON, "Coaster Canyon", ScenarioCategory::challenging, "rct1aa.scenario_meta.coaster_canyon" }, + { SC_THUNDERSTORM_PARK, "Thunderstorm Park", ScenarioCategory::challenging, "rct1aa.scenario_meta.thunderstorm_park" }, + { SC_HARMONIC_HILLS, "Harmonic Hills", ScenarioCategory::challenging, "rct1aa.scenario_meta.harmonic_hills" }, + { SC_ROMAN_VILLAGE, "Roman Village", ScenarioCategory::challenging, "rct1aa.scenario_meta.roman_village" }, + { SC_SWAMP_COVE, "Swamp Cove", ScenarioCategory::challenging, "rct1aa.scenario_meta.swamp_cove" }, + { SC_ADRENALINE_HEIGHTS, "Adrenaline Heights", ScenarioCategory::challenging, "rct1aa.scenario_meta.adrenaline_heights" }, + { SC_UTOPIA_PARK, "Utopia Park", ScenarioCategory::challenging, "rct1aa.scenario_meta.utopia_park" }, + { SC_ROTTING_HEIGHTS, "Rotting Heights", ScenarioCategory::expert, "rct1aa.scenario_meta.rotting_heights" }, + { SC_FIASCO_FOREST, "Fiasco Forest", ScenarioCategory::expert, "rct1aa.scenario_meta.fiasco_forest" }, + { SC_PICKLE_PARK, "Pickle Park", ScenarioCategory::expert, "rct1aa.scenario_meta.pickle_park" }, + { SC_GIGGLE_DOWNS, "Giggle Downs", ScenarioCategory::expert, "rct1aa.scenario_meta.giggle_downs" }, + { SC_MINERAL_PARK, "Mineral Park", ScenarioCategory::expert, "rct1aa.scenario_meta.mineral_park" }, + { SC_COASTER_CRAZY, "Coaster Crazy", ScenarioCategory::expert, "rct1aa.scenario_meta.coaster_crazy" }, + { SC_URBAN_PARK, "Urban Park", ScenarioCategory::expert, "rct1aa.scenario_meta.urban_park" }, + { SC_GEOFFREY_GARDENS, "Geoffrey Gardens", ScenarioCategory::expert, "rct1aa.scenario_meta.geoffrey_gardens" }, }; // RCT: Loopy Landscapes static constexpr ScenarioTitleDescriptor kScenarioTitlesRCT1LL[] = { - { SC_ICEBERG_ISLANDS, "Iceberg Islands", ScenarioCategory::beginner, "rct1ll.scenario_text.iceberg_islands" }, - { SC_VOLCANIA, "Volcania", ScenarioCategory::beginner, "rct1ll.scenario_text.volcania" }, - { SC_ARID_HEIGHTS, "Arid Heights", ScenarioCategory::beginner, "rct1ll.scenario_text.arid_heights" }, - { SC_RAZOR_ROCKS, "Razor Rocks", ScenarioCategory::beginner, "rct1ll.scenario_text.razor_rocks" }, - { SC_CRATER_LAKE, "Crater Lake", ScenarioCategory::beginner, "rct1ll.scenario_text.crater_lake" }, - { SC_VERTIGO_VIEWS, "Vertigo Views", ScenarioCategory::beginner, "rct1ll.scenario_text.vertigo_views" }, - { SC_PARADISE_PIER_2, "Paradise Pier 2", ScenarioCategory::challenging, "rct1ll.scenario_text.paradise_pier_2" }, - { SC_DRAGONS_COVE, "Dragon's Cove", ScenarioCategory::challenging, "rct1ll.scenario_text.dragons_cove" }, - { SC_GOOD_KNIGHT_PARK, "Good Knight Park", ScenarioCategory::challenging, "rct1ll.scenario_text.good_knight_park" }, - { SC_WACKY_WARREN, "Wacky Warren", ScenarioCategory::challenging, "rct1ll.scenario_text.wacky_warren" }, - { SC_GRAND_GLACIER, "Grand Glacier", ScenarioCategory::challenging, "rct1ll.scenario_text.grand_glacier" }, - { SC_CRAZY_CRATERS, "Crazy Craters", ScenarioCategory::challenging, "rct1ll.scenario_text.crazy_craters" }, - { SC_DUSTY_DESERT, "Dusty Desert", ScenarioCategory::challenging, "rct1ll.scenario_text.dusty_desert" }, - { SC_WOODWORM_PARK, "Woodworm Park", ScenarioCategory::challenging, "rct1ll.scenario_text.woodworm_park" }, - { SC_ICARUS_PARK, "Icarus Park", ScenarioCategory::challenging, "rct1ll.scenario_text.icarus_park" }, - { SC_SUNNY_SWAMPS, "Sunny Swamps", ScenarioCategory::challenging, "rct1ll.scenario_text.sunny_swamps" }, - { SC_FRIGHTMARE_HILLS, "Frightmare Hills", ScenarioCategory::challenging, "rct1ll.scenario_text.frightmare_hills" }, - { SC_THUNDER_ROCKS, "Thunder Rocks", ScenarioCategory::challenging, "rct1ll.scenario_text.thunder_rocks" }, - { SC_OCTAGON_PARK, "Octagon Park", ScenarioCategory::challenging, "rct1ll.scenario_text.octagon_park" }, - { SC_PLEASURE_ISLAND, "Pleasure Island", ScenarioCategory::challenging, "rct1ll.scenario_text.pleasure_island" }, - { SC_ICICLE_WORLDS, "Icicle Worlds", ScenarioCategory::challenging, "rct1ll.scenario_text.icicle_worlds" }, - { SC_SOUTHERN_SANDS, "Southern Sands", ScenarioCategory::expert, "rct1ll.scenario_text.southern_sands" }, - { SC_TINY_TOWERS, "Tiny Towers", ScenarioCategory::expert, "rct1ll.scenario_text.tiny_towers" }, - { SC_NEVERMORE_PARK, "Nevermore Park", ScenarioCategory::expert, "rct1ll.scenario_text.nevermore_park" }, - { SC_PACIFICA, "Pacifica", ScenarioCategory::expert, "rct1ll.scenario_text.pacifica" }, - { SC_URBAN_JUNGLE, "Urban Jungle", ScenarioCategory::expert, "rct1ll.scenario_text.urban_jungle" }, - { SC_TERROR_TOWN, "Terror Town", ScenarioCategory::expert, "rct1ll.scenario_text.terror_town" }, - { SC_MEGAWORLD_PARK, "Megaworld Park", ScenarioCategory::expert, "rct1ll.scenario_text.megaworld_park" }, - { SC_VENUS_PONDS, "Venus Ponds", ScenarioCategory::expert, "rct1ll.scenario_text.venus_ponds" }, - { SC_MICRO_PARK, "Micro Park", ScenarioCategory::expert, "rct1ll.scenario_text.micro_park" }, + { SC_ICEBERG_ISLANDS, "Iceberg Islands", ScenarioCategory::beginner, "rct1ll.scenario_meta.iceberg_islands" }, + { SC_VOLCANIA, "Volcania", ScenarioCategory::beginner, "rct1ll.scenario_meta.volcania" }, + { SC_ARID_HEIGHTS, "Arid Heights", ScenarioCategory::beginner, "rct1ll.scenario_meta.arid_heights" }, + { SC_RAZOR_ROCKS, "Razor Rocks", ScenarioCategory::beginner, "rct1ll.scenario_meta.razor_rocks" }, + { SC_CRATER_LAKE, "Crater Lake", ScenarioCategory::beginner, "rct1ll.scenario_meta.crater_lake" }, + { SC_VERTIGO_VIEWS, "Vertigo Views", ScenarioCategory::beginner, "rct1ll.scenario_meta.vertigo_views" }, + { SC_PARADISE_PIER_2, "Paradise Pier 2", ScenarioCategory::challenging, "rct1ll.scenario_meta.paradise_pier_2" }, + { SC_DRAGONS_COVE, "Dragon's Cove", ScenarioCategory::challenging, "rct1ll.scenario_meta.dragons_cove" }, + { SC_GOOD_KNIGHT_PARK, "Good Knight Park", ScenarioCategory::challenging, "rct1ll.scenario_meta.good_knight_park" }, + { SC_WACKY_WARREN, "Wacky Warren", ScenarioCategory::challenging, "rct1ll.scenario_meta.wacky_warren" }, + { SC_GRAND_GLACIER, "Grand Glacier", ScenarioCategory::challenging, "rct1ll.scenario_meta.grand_glacier" }, + { SC_CRAZY_CRATERS, "Crazy Craters", ScenarioCategory::challenging, "rct1ll.scenario_meta.crazy_craters" }, + { SC_DUSTY_DESERT, "Dusty Desert", ScenarioCategory::challenging, "rct1ll.scenario_meta.dusty_desert" }, + { SC_WOODWORM_PARK, "Woodworm Park", ScenarioCategory::challenging, "rct1ll.scenario_meta.woodworm_park" }, + { SC_ICARUS_PARK, "Icarus Park", ScenarioCategory::challenging, "rct1ll.scenario_meta.icarus_park" }, + { SC_SUNNY_SWAMPS, "Sunny Swamps", ScenarioCategory::challenging, "rct1ll.scenario_meta.sunny_swamps" }, + { SC_FRIGHTMARE_HILLS, "Frightmare Hills", ScenarioCategory::challenging, "rct1ll.scenario_meta.frightmare_hills" }, + { SC_THUNDER_ROCKS, "Thunder Rocks", ScenarioCategory::challenging, "rct1ll.scenario_meta.thunder_rocks" }, + { SC_OCTAGON_PARK, "Octagon Park", ScenarioCategory::challenging, "rct1ll.scenario_meta.octagon_park" }, + { SC_PLEASURE_ISLAND, "Pleasure Island", ScenarioCategory::challenging, "rct1ll.scenario_meta.pleasure_island" }, + { SC_ICICLE_WORLDS, "Icicle Worlds", ScenarioCategory::challenging, "rct1ll.scenario_meta.icicle_worlds" }, + { SC_SOUTHERN_SANDS, "Southern Sands", ScenarioCategory::expert, "rct1ll.scenario_meta.southern_sands" }, + { SC_TINY_TOWERS, "Tiny Towers", ScenarioCategory::expert, "rct1ll.scenario_meta.tiny_towers" }, + { SC_NEVERMORE_PARK, "Nevermore Park", ScenarioCategory::expert, "rct1ll.scenario_meta.nevermore_park" }, + { SC_PACIFICA, "Pacifica", ScenarioCategory::expert, "rct1ll.scenario_meta.pacifica" }, + { SC_URBAN_JUNGLE, "Urban Jungle", ScenarioCategory::expert, "rct1ll.scenario_meta.urban_jungle" }, + { SC_TERROR_TOWN, "Terror Town", ScenarioCategory::expert, "rct1ll.scenario_meta.terror_town" }, + { SC_MEGAWORLD_PARK, "Megaworld Park", ScenarioCategory::expert, "rct1ll.scenario_meta.megaworld_park" }, + { SC_VENUS_PONDS, "Venus Ponds", ScenarioCategory::expert, "rct1ll.scenario_meta.venus_ponds" }, + { SC_MICRO_PARK, "Micro Park", ScenarioCategory::expert, "rct1ll.scenario_meta.micro_park" }, }; // RCT2 static constexpr ScenarioTitleDescriptor kScenarioTitlesRCT2[] = { - { SC_UNIDENTIFIED, "Electric Fields", ScenarioCategory::beginner, "rct2.scenario_text.electric_fields" }, - { SC_UNIDENTIFIED, "Factory Capers", ScenarioCategory::beginner, "rct2.scenario_text.factory_capers" }, - { SC_UNIDENTIFIED, "Crazy Castle", ScenarioCategory::beginner, "rct2.scenario_text.crazy_castle" }, - { SC_UNIDENTIFIED, "Dusty Greens", ScenarioCategory::beginner, "rct2.scenario_text.dusty_greens" }, - { SC_UNIDENTIFIED, "Bumbly Bazaar", ScenarioCategory::beginner, "rct2.scenario_text.bumbly_bazaar" }, - { SC_UNIDENTIFIED, "Infernal Views", ScenarioCategory::challenging, "rct2.scenario_text.infernal_views" }, - { SC_UNIDENTIFIED, "Lucky Lake", ScenarioCategory::challenging, "rct2.scenario_text.lucky_lake" }, - { SC_UNIDENTIFIED, "Botany Breakers", ScenarioCategory::challenging, "rct2.scenario_text.botany_breakers" }, - { SC_UNIDENTIFIED, "Alpine Adventures", ScenarioCategory::challenging, "rct2.scenario_text.alpine_adventures" }, - { SC_UNIDENTIFIED, "Gravity Gardens", ScenarioCategory::expert, "rct2.scenario_text.gravity_gardens" }, - { SC_UNIDENTIFIED, "Extreme Heights", ScenarioCategory::expert, "rct2.scenario_text.extreme_heights" }, - { SC_UNIDENTIFIED, "Amity Airfield", ScenarioCategory::expert, "rct2.scenario_text.amity_airfield" }, - { SC_UNIDENTIFIED, "Ghost Town", ScenarioCategory::expert, "rct2.scenario_text.ghost_town" }, - { SC_UNIDENTIFIED, "Fungus Woods", ScenarioCategory::expert, "rct2.scenario_text.fungus_woods" }, - { SC_UNIDENTIFIED, "Rainbow Summit", ScenarioCategory::expert, "rct2.scenario_text.rainbow_summit" }, + { SC_UNIDENTIFIED, "Electric Fields", ScenarioCategory::beginner, "rct2.scenario_meta.electric_fields" }, + { SC_UNIDENTIFIED, "Factory Capers", ScenarioCategory::beginner, "rct2.scenario_meta.factory_capers" }, + { SC_UNIDENTIFIED, "Crazy Castle", ScenarioCategory::beginner, "rct2.scenario_meta.crazy_castle" }, + { SC_UNIDENTIFIED, "Dusty Greens", ScenarioCategory::beginner, "rct2.scenario_meta.dusty_greens" }, + { SC_UNIDENTIFIED, "Bumbly Bazaar", ScenarioCategory::beginner, "rct2.scenario_meta.bumbly_bazaar" }, + { SC_UNIDENTIFIED, "Infernal Views", ScenarioCategory::challenging, "rct2.scenario_meta.infernal_views" }, + { SC_UNIDENTIFIED, "Lucky Lake", ScenarioCategory::challenging, "rct2.scenario_meta.lucky_lake" }, + { SC_UNIDENTIFIED, "Botany Breakers", ScenarioCategory::challenging, "rct2.scenario_meta.botany_breakers" }, + { SC_UNIDENTIFIED, "Alpine Adventures", ScenarioCategory::challenging, "rct2.scenario_meta.alpine_adventures" }, + { SC_UNIDENTIFIED, "Gravity Gardens", ScenarioCategory::expert, "rct2.scenario_meta.gravity_gardens" }, + { SC_UNIDENTIFIED, "Extreme Heights", ScenarioCategory::expert, "rct2.scenario_meta.extreme_heights" }, + { SC_UNIDENTIFIED, "Amity Airfield", ScenarioCategory::expert, "rct2.scenario_meta.amity_airfield" }, + { SC_UNIDENTIFIED, "Ghost Town", ScenarioCategory::expert, "rct2.scenario_meta.ghost_town" }, + { SC_UNIDENTIFIED, "Fungus Woods", ScenarioCategory::expert, "rct2.scenario_meta.fungus_woods" }, + { SC_UNIDENTIFIED, "Rainbow Summit", ScenarioCategory::expert, "rct2.scenario_meta.rainbow_summit" }, }; // RCT2: Wacky Worlds static constexpr ScenarioTitleDescriptor kScenarioTitlesRCT2WW[] = { - { SC_UNIDENTIFIED, "North America - Grand Canyon", ScenarioCategory::beginner, "rct2ww.scenario_text.canyon_calamities" }, - { SC_UNIDENTIFIED, "Asia - Great Wall of China Tourism Enhancement", ScenarioCategory::beginner, "rct2ww.scenario_text.great_wall_of_china" }, - { SC_UNIDENTIFIED, "Africa - African Diamond Mine", ScenarioCategory::beginner, "rct2ww.scenario_text.mines_of_africa" }, - { SC_UNIDENTIFIED, "Australasia - Ayers Rock", ScenarioCategory::beginner, "rct2ww.scenario_text.ayers_adventure" }, - { SC_UNIDENTIFIED, "North America - Rollercoaster Heaven", ScenarioCategory::beginner, "rct2ww.scenario_text.rollercoaster_heaven" }, - { SC_UNIDENTIFIED, "Africa - Oasis", ScenarioCategory::challenging, "rct2ww.scenario_text.mirage_madness" }, - { SC_UNIDENTIFIED, "South America - Rio Carnival", ScenarioCategory::challenging, "rct2ww.scenario_text.sugarloaf_shores" }, - { SC_UNIDENTIFIED, "Asia - Maharaja Palace", ScenarioCategory::challenging, "rct2ww.scenario_text.park_maharaja" }, - { SC_UNIDENTIFIED, "Africa - Victoria Falls", ScenarioCategory::challenging, "rct2ww.scenario_text.over_the_edge" }, - { SC_UNIDENTIFIED, "N. America - Extreme Hawaiian Island", ScenarioCategory::challenging, "rct2ww.scenario_text.wacky_waikiki" }, - { SC_UNIDENTIFIED, "South America - Rain Forest Plateau", ScenarioCategory::challenging, "rct2ww.scenario_text.rainforest_romp" }, - { SC_UNIDENTIFIED, "Europe - Renovation", ScenarioCategory::challenging, "rct2ww.scenario_text.from_the_ashes" }, - { SC_UNIDENTIFIED, "Antarctic - Ecological Salvage", ScenarioCategory::expert, "rct2ww.scenario_text.icy_adventures" }, - { SC_UNIDENTIFIED, "Europe - European Cultural Festival", ScenarioCategory::expert, "rct2ww.scenario_text.european_extravaganza" }, - { SC_UNIDENTIFIED, "Australasia - Fun at the Beach", ScenarioCategory::expert, "rct2ww.scenario_text.beach_barbecue_blast" }, - { SC_UNIDENTIFIED, "South America - Inca Lost City", ScenarioCategory::expert, "rct2ww.scenario_text.lost_city_founder" }, - { SC_UNIDENTIFIED, "Asia - Japanese Coastal Reclaim", ScenarioCategory::expert, "rct2ww.scenario_text.okinawa_coast" }, + { SC_UNIDENTIFIED, "North America - Grand Canyon", ScenarioCategory::beginner, "rct2ww.scenario_meta.canyon_calamities" }, + { SC_UNIDENTIFIED, "Asia - Great Wall of China Tourism Enhancement", ScenarioCategory::beginner, "rct2ww.scenario_meta.great_wall_of_china" }, + { SC_UNIDENTIFIED, "Africa - African Diamond Mine", ScenarioCategory::beginner, "rct2ww.scenario_meta.mines_of_africa" }, + { SC_UNIDENTIFIED, "Australasia - Ayers Rock", ScenarioCategory::beginner, "rct2ww.scenario_meta.ayers_adventure" }, + { SC_UNIDENTIFIED, "North America - Rollercoaster Heaven", ScenarioCategory::beginner, "rct2ww.scenario_meta.rollercoaster_heaven" }, + { SC_UNIDENTIFIED, "Africa - Oasis", ScenarioCategory::challenging, "rct2ww.scenario_meta.mirage_madness" }, + { SC_UNIDENTIFIED, "South America - Rio Carnival", ScenarioCategory::challenging, "rct2ww.scenario_meta.sugarloaf_shores" }, + { SC_UNIDENTIFIED, "Asia - Maharaja Palace", ScenarioCategory::challenging, "rct2ww.scenario_meta.park_maharaja" }, + { SC_UNIDENTIFIED, "Africa - Victoria Falls", ScenarioCategory::challenging, "rct2ww.scenario_meta.over_the_edge" }, + { SC_UNIDENTIFIED, "N. America - Extreme Hawaiian Island", ScenarioCategory::challenging, "rct2ww.scenario_meta.wacky_waikiki" }, + { SC_UNIDENTIFIED, "South America - Rain Forest Plateau", ScenarioCategory::challenging, "rct2ww.scenario_meta.rainforest_romp" }, + { SC_UNIDENTIFIED, "Europe - Renovation", ScenarioCategory::challenging, "rct2ww.scenario_meta.from_the_ashes" }, + { SC_UNIDENTIFIED, "Antarctic - Ecological Salvage", ScenarioCategory::expert, "rct2ww.scenario_meta.icy_adventures" }, + { SC_UNIDENTIFIED, "Europe - European Cultural Festival", ScenarioCategory::expert, "rct2ww.scenario_meta.european_extravaganza" }, + { SC_UNIDENTIFIED, "Australasia - Fun at the Beach", ScenarioCategory::expert, "rct2ww.scenario_meta.beach_barbecue_blast" }, + { SC_UNIDENTIFIED, "South America - Inca Lost City", ScenarioCategory::expert, "rct2ww.scenario_meta.lost_city_founder" }, + { SC_UNIDENTIFIED, "Asia - Japanese Coastal Reclaim", ScenarioCategory::expert, "rct2ww.scenario_meta.okinawa_coast" }, }; // RCT2: Time Twister static constexpr ScenarioTitleDescriptor kScenarioTitlesRCT2TT[] = { - { SC_UNIDENTIFIED, "Dark Age - Robin Hood", ScenarioCategory::beginner, "rct2tt.scenario_text.sherwood_forest" }, - { SC_UNIDENTIFIED, "Prehistoric - After the Asteroid", ScenarioCategory::beginner, "rct2tt.scenario_text.crater_carnage" }, - { SC_UNIDENTIFIED, "Roaring Twenties - Prison Island", ScenarioCategory::beginner, "rct2tt.scenario_text.alcatraz" }, - { SC_UNIDENTIFIED, "Future - First Encounters", ScenarioCategory::beginner, "rct2tt.scenario_text.extraterrestrial_extravaganza" }, - { SC_UNIDENTIFIED, "Roaring Twenties - Schneider Cup", ScenarioCategory::challenging, "rct2tt.scenario_text.schneider_shores" }, - { SC_UNIDENTIFIED, "Prehistoric - Stone Age", ScenarioCategory::challenging, "rct2tt.scenario_text.rocky_rambles" }, - { SC_UNIDENTIFIED, "Mythological - Cradle of Civilisation", ScenarioCategory::challenging, "rct2tt.scenario_text.mythological_madness" }, - { SC_UNIDENTIFIED, "Rock 'n' Roll - Rock 'n' Roll", ScenarioCategory::challenging, "rct2tt.scenario_text.rock_n_roll_revival" }, - { SC_UNIDENTIFIED, "Future - Future World", ScenarioCategory::challenging, "rct2tt.scenario_text.gemini_city" }, - { SC_UNIDENTIFIED, "Roaring Twenties - Skyscrapers", ScenarioCategory::expert, "rct2tt.scenario_text.metropolis" }, - { SC_UNIDENTIFIED, "Rock 'n' Roll - Flower Power", ScenarioCategory::expert, "rct2tt.scenario_text.woodstock" }, - { SC_UNIDENTIFIED, "Dark Age - Castle", ScenarioCategory::expert, "rct2tt.scenario_text.cliffside_castle" }, - { SC_UNIDENTIFIED, "Mythological - Animatronic Film Set", ScenarioCategory::expert, "rct2tt.scenario_text.animatronic_antics" }, - { SC_UNIDENTIFIED, "Prehistoric - Jurassic Safari", ScenarioCategory::expert, "rct2tt.scenario_text.coastersaurus" }, + { SC_UNIDENTIFIED, "Dark Age - Robin Hood", ScenarioCategory::beginner, "rct2tt.scenario_meta.sherwood_forest" }, + { SC_UNIDENTIFIED, "Prehistoric - After the Asteroid", ScenarioCategory::beginner, "rct2tt.scenario_meta.crater_carnage" }, + { SC_UNIDENTIFIED, "Roaring Twenties - Prison Island", ScenarioCategory::beginner, "rct2tt.scenario_meta.alcatraz" }, + { SC_UNIDENTIFIED, "Future - First Encounters", ScenarioCategory::beginner, "rct2tt.scenario_meta.extraterrestrial_extravaganza" }, + { SC_UNIDENTIFIED, "Roaring Twenties - Schneider Cup", ScenarioCategory::challenging, "rct2tt.scenario_meta.schneider_shores" }, + { SC_UNIDENTIFIED, "Prehistoric - Stone Age", ScenarioCategory::challenging, "rct2tt.scenario_meta.rocky_rambles" }, + { SC_UNIDENTIFIED, "Mythological - Cradle of Civilisation", ScenarioCategory::challenging, "rct2tt.scenario_meta.mythological_madness" }, + { SC_UNIDENTIFIED, "Rock 'n' Roll - Rock 'n' Roll", ScenarioCategory::challenging, "rct2tt.scenario_meta.rock_n_roll_revival" }, + { SC_UNIDENTIFIED, "Future - Future World", ScenarioCategory::challenging, "rct2tt.scenario_meta.gemini_city" }, + { SC_UNIDENTIFIED, "Roaring Twenties - Skyscrapers", ScenarioCategory::expert, "rct2tt.scenario_meta.metropolis" }, + { SC_UNIDENTIFIED, "Rock 'n' Roll - Flower Power", ScenarioCategory::expert, "rct2tt.scenario_meta.woodstock" }, + { SC_UNIDENTIFIED, "Dark Age - Castle", ScenarioCategory::expert, "rct2tt.scenario_meta.cliffside_castle" }, + { SC_UNIDENTIFIED, "Mythological - Animatronic Film Set", ScenarioCategory::expert, "rct2tt.scenario_meta.animatronic_antics" }, + { SC_UNIDENTIFIED, "Prehistoric - Jurassic Safari", ScenarioCategory::expert, "rct2tt.scenario_meta.coastersaurus" }, }; // User Created Expansion Sets static constexpr ScenarioTitleDescriptor kScenarioTitlesUCES[] = { - { SC_UNIDENTIFIED, "Lighthouse of Alexandria by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_text.the_lighthouse_of_alexandria" }, - { SC_UNIDENTIFIED, "Cleveland's Luna Park", ScenarioCategory::timeMachine, "uces.scenario_text.luna_park_cleveland" }, - { SC_UNIDENTIFIED, "Mount Vesuvius 1700 A.D. by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_text.mount_vesuvius" }, - { SC_UNIDENTIFIED, "The Sandbox by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_text.the_sandbox" }, - { SC_UNIDENTIFIED, "Niagara Falls & Gorge by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_text.niagara_falls_gorge" }, - { SC_UNIDENTIFIED, "Rocky Mountain Miners", ScenarioCategory::timeMachine, "uces.scenario_text.rocky_mountain_miners" }, - { SC_UNIDENTIFIED, "The Time Machine by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_text.the_time_machine" }, - { SC_UNIDENTIFIED, "Tower of Babel", ScenarioCategory::timeMachine, "uces.scenario_text.tower_of_babel" }, - { SC_UNIDENTIFIED, "Transformation", ScenarioCategory::timeMachine, "uces.scenario_text.transformation" }, - { SC_UNIDENTIFIED, "Urbis Incognitus", ScenarioCategory::timeMachine, "uces.scenario_text.urbis_incognitus" }, - { SC_UNIDENTIFIED, "Beneath the Christmas Tree by Katatude for UCES", ScenarioCategory::katysDreamworld, "uces.scenario_text.beneath_the_christmas_tree" }, - { SC_UNIDENTIFIED, "Bigrock Blast", ScenarioCategory::katysDreamworld, "uces.scenario_text.bigrock_blast" }, - { SC_UNIDENTIFIED, "Camp Mockingbird for UCES by Katatude", ScenarioCategory::katysDreamworld, "uces.scenario_text.camp_mockingbird" }, - { SC_UNIDENTIFIED, "Choo Choo Town", ScenarioCategory::katysDreamworld, "uces.scenario_text.choochoo_town" }, - { SC_UNIDENTIFIED, "Dragon Islands", ScenarioCategory::katysDreamworld, "uces.scenario_text.dragon_islands" }, - { SC_UNIDENTIFIED, "Kiddy Karnival II", ScenarioCategory::katysDreamworld, "uces.scenario_text.kiddie_karnival_ii" }, - { SC_UNIDENTIFIED, "Sand Dune", ScenarioCategory::katysDreamworld, "uces.scenario_text.sand_dune" }, - { SC_UNIDENTIFIED, "UCES Halloween", ScenarioCategory::other, "uces.scenario_text.cemetery_ridge" }, + { SC_UNIDENTIFIED, "Lighthouse of Alexandria by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_meta.the_lighthouse_of_alexandria" }, + { SC_UNIDENTIFIED, "Cleveland's Luna Park", ScenarioCategory::timeMachine, "uces.scenario_meta.luna_park_cleveland" }, + { SC_UNIDENTIFIED, "Mount Vesuvius 1700 A.D. by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_meta.mount_vesuvius" }, + { SC_UNIDENTIFIED, "The Sandbox by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_meta.the_sandbox" }, + { SC_UNIDENTIFIED, "Niagara Falls & Gorge by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_meta.niagara_falls_gorge" }, + { SC_UNIDENTIFIED, "Rocky Mountain Miners", ScenarioCategory::timeMachine, "uces.scenario_meta.rocky_mountain_miners" }, + { SC_UNIDENTIFIED, "The Time Machine by Katatude for UCES", ScenarioCategory::timeMachine, "uces.scenario_meta.the_time_machine" }, + { SC_UNIDENTIFIED, "Tower of Babel", ScenarioCategory::timeMachine, "uces.scenario_meta.tower_of_babel" }, + { SC_UNIDENTIFIED, "Transformation", ScenarioCategory::timeMachine, "uces.scenario_meta.transformation" }, + { SC_UNIDENTIFIED, "Urbis Incognitus", ScenarioCategory::timeMachine, "uces.scenario_meta.urbis_incognitus" }, + { SC_UNIDENTIFIED, "Beneath the Christmas Tree by Katatude for UCES", ScenarioCategory::katysDreamworld, "uces.scenario_meta.beneath_the_christmas_tree" }, + { SC_UNIDENTIFIED, "Bigrock Blast", ScenarioCategory::katysDreamworld, "uces.scenario_meta.bigrock_blast" }, + { SC_UNIDENTIFIED, "Camp Mockingbird for UCES by Katatude", ScenarioCategory::katysDreamworld, "uces.scenario_meta.camp_mockingbird" }, + { SC_UNIDENTIFIED, "Choo Choo Town", ScenarioCategory::katysDreamworld, "uces.scenario_meta.choochoo_town" }, + { SC_UNIDENTIFIED, "Dragon Islands", ScenarioCategory::katysDreamworld, "uces.scenario_meta.dragon_islands" }, + { SC_UNIDENTIFIED, "Kiddy Karnival II", ScenarioCategory::katysDreamworld, "uces.scenario_meta.kiddie_karnival_ii" }, + { SC_UNIDENTIFIED, "Sand Dune", ScenarioCategory::katysDreamworld, "uces.scenario_meta.sand_dune" }, + { SC_UNIDENTIFIED, "UCES Halloween", ScenarioCategory::other, "uces.scenario_meta.cemetery_ridge" }, }; // Real parks static constexpr ScenarioTitleDescriptor kScenarioTitlesRealParks[] = { - { SC_ALTON_TOWERS, "Alton Towers", ScenarioCategory::real, "rct1ll.scenario_text.alton_towers" }, - { SC_HEIDE_PARK, "Heide-Park", ScenarioCategory::real, "rct1ll.scenario_text.heidepark" }, - { SC_BLACKPOOL_PLEASURE_BEACH, "Blackpool Pleasure Beach", ScenarioCategory::real, "rct1ll.scenario_text.blackpool_pleasure_beach" }, - { SC_UNIDENTIFIED, "Six Flags Belgium", ScenarioCategory::real, "rct2.scenario_text.six_flags_belgium" }, - { SC_UNIDENTIFIED, "Six Flags Great Adventure", ScenarioCategory::real, "rct2.scenario_text.six_flags_great_adventure" }, - { SC_UNIDENTIFIED, "Six Flags Holland", ScenarioCategory::real, "rct2.scenario_text.six_flags_holland" }, - { SC_UNIDENTIFIED, "Six Flags Magic Mountain", ScenarioCategory::real, "rct2.scenario_text.six_flags_magic_mountain" }, - { SC_UNIDENTIFIED, "Six Flags over Texas", ScenarioCategory::real, "rct2.scenario_text.six_flags_over_texas" }, + { SC_ALTON_TOWERS, "Alton Towers", ScenarioCategory::real, "rct1ll.scenario_meta.alton_towers" }, + { SC_HEIDE_PARK, "Heide-Park", ScenarioCategory::real, "rct1ll.scenario_meta.heidepark" }, + { SC_BLACKPOOL_PLEASURE_BEACH, "Blackpool Pleasure Beach", ScenarioCategory::real, "rct1ll.scenario_meta.blackpool_pleasure_beach" }, + { SC_UNIDENTIFIED, "Six Flags Belgium", ScenarioCategory::real, "rct2.scenario_meta.six_flags_belgium" }, + { SC_UNIDENTIFIED, "Six Flags Great Adventure", ScenarioCategory::real, "rct2.scenario_meta.six_flags_great_adventure" }, + { SC_UNIDENTIFIED, "Six Flags Holland", ScenarioCategory::real, "rct2.scenario_meta.six_flags_holland" }, + { SC_UNIDENTIFIED, "Six Flags Magic Mountain", ScenarioCategory::real, "rct2.scenario_meta.six_flags_magic_mountain" }, + { SC_UNIDENTIFIED, "Six Flags over Texas", ScenarioCategory::real, "rct2.scenario_meta.six_flags_over_texas" }, }; // Other parks static constexpr ScenarioTitleDescriptor kScenarioTitlesExtrasParks[] = { - { SC_FORT_ANACHRONISM, "Fort Anachronism", ScenarioCategory::dlc, "rct1dlc.scenario_text.fort_anachronism" }, + { SC_FORT_ANACHRONISM, "Fort Anachronism", ScenarioCategory::dlc, "rct1dlc.scenario_meta.fort_anachronism" }, { SC_PCPLAYER, "PC Player", ScenarioCategory::dlc, {} }, { SC_PCGW, "PC Gaming World", ScenarioCategory::dlc, {} }, { SC_GAMEPLAY, "gameplay", ScenarioCategory::dlc, {} }, - { SC_UNIDENTIFIED, "Panda World", ScenarioCategory::dlc, "rct2dlc.scenario_text.panda_world" }, - { SC_UNIDENTIFIED, "Build your own Six Flags Belgium", ScenarioCategory::buildYourOwn, "rct2.scenario_text.build_your_own_six_flags_belgium" }, - { SC_UNIDENTIFIED, "Build your own Six Flags Great Adventure", ScenarioCategory::buildYourOwn, "rct2.scenario_text.build_your_own_six_flags_great_adventure" }, - { SC_UNIDENTIFIED, "Build your own Six Flags Holland", ScenarioCategory::buildYourOwn, "rct2.scenario_text.build_your_own_six_flags_holland" }, - { SC_UNIDENTIFIED, "Build your own Six Flags Magic Mountain", ScenarioCategory::buildYourOwn, "rct2.scenario_text.build_your_own_six_flags_magic_mountain" }, - { SC_UNIDENTIFIED, "Build your own Six Flags Park", ScenarioCategory::buildYourOwn, "rct2.scenario_text.build_your_own_six_flags_park" }, - { SC_UNIDENTIFIED, "Build your own Six Flags over Texas", ScenarioCategory::buildYourOwn, "rct2.scenario_text.build_your_own_six_flags_over_texas" }, + { SC_UNIDENTIFIED, "Panda World", ScenarioCategory::dlc, "rct2dlc.scenario_meta.panda_world" }, + { SC_UNIDENTIFIED, "Build your own Six Flags Belgium", ScenarioCategory::buildYourOwn, "rct2.scenario_meta.build_your_own_six_flags_belgium" }, + { SC_UNIDENTIFIED, "Build your own Six Flags Great Adventure", ScenarioCategory::buildYourOwn, "rct2.scenario_meta.build_your_own_six_flags_great_adventure" }, + { SC_UNIDENTIFIED, "Build your own Six Flags Holland", ScenarioCategory::buildYourOwn, "rct2.scenario_meta.build_your_own_six_flags_holland" }, + { SC_UNIDENTIFIED, "Build your own Six Flags Magic Mountain", ScenarioCategory::buildYourOwn, "rct2.scenario_meta.build_your_own_six_flags_magic_mountain" }, + { SC_UNIDENTIFIED, "Build your own Six Flags Park", ScenarioCategory::buildYourOwn, "rct2.scenario_meta.build_your_own_six_flags_park" }, + { SC_UNIDENTIFIED, "Build your own Six Flags over Texas", ScenarioCategory::buildYourOwn, "rct2.scenario_meta.build_your_own_six_flags_over_texas" }, { SC_UNIDENTIFIED, "Competition Land 1", ScenarioCategory::competitions, {} }, { SC_UNIDENTIFIED, "Competition Land 2", ScenarioCategory::competitions, {} }, { SC_BOBSLED_COMPETITION, "Bobsled Roller Coaster Competition", ScenarioCategory::competitions, {} }, @@ -339,7 +339,7 @@ namespace OpenRCT2::ScenarioSources { SC_STEEL_TWISTER_COMPETITION, "Steel Twister Roller Coaster Competition", ScenarioCategory::competitions, {} }, { SC_SUSPENDED_ROLLER_COASTER_COMPETITION, "Suspended Roller Coaster Competition", ScenarioCategory::competitions, {} }, { SC_WOODEN_ROLLER_COASTER_COMPETITION, "Wooden Roller Coaster Competition", ScenarioCategory::competitions, {} }, - { SC_UNIDENTIFIED, "Tycoon Park", ScenarioCategory::other, "rct2.scenario_text.tycoon_park" }, + { SC_UNIDENTIFIED, "Tycoon Park", ScenarioCategory::other, "rct2.scenario_meta.tycoon_park" }, }; constexpr std::span kScenarioTitlesBySource[] = { diff --git a/src/openrct2/scripting/bindings/object/ScInstalledObject.cpp b/src/openrct2/scripting/bindings/object/ScInstalledObject.cpp index c4aa54b430..1c8ca8d97b 100644 --- a/src/openrct2/scripting/bindings/object/ScInstalledObject.cpp +++ b/src/openrct2/scripting/bindings/object/ScInstalledObject.cpp @@ -24,7 +24,7 @@ namespace OpenRCT2::Scripting { "scenery_group", ObjectType::sceneryGroup }, { "park_entrance", ObjectType::parkEntrance }, { "water", ObjectType::water }, - { "scenario_text", ObjectType::scenarioText }, + { "scenario_meta", ObjectType::scenarioMeta }, { "terrain_surface", ObjectType::terrainSurface }, { "terrain_edge", ObjectType::terrainEdge }, { "station", ObjectType::station },