From a67e61a6c65ad9ab57908a34b93865d9a94607fd Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 17:55:42 -0300 Subject: [PATCH 01/26] Add /compatibility directory --- src/openrct2/libopenrct2.vcxproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 34bb1b2990ce..98d7df6d38b2 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -1208,5 +1208,8 @@ {c453da76-44b3-4ac8-aaa2-2b64a76993a5} + + + From 384abd6159439c07d49055eed2e67a49a0f003d9 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 17:57:43 -0300 Subject: [PATCH 02/26] Move /rct1 files to /compatibility --- src/openrct2-ui/windows/NewRide.cpp | 2 +- src/openrct2-ui/windows/Ride.cpp | 2 +- src/openrct2/Editor.cpp | 2 +- src/openrct2/SpriteIds.h | 2 +- src/openrct2/{ => compatibility}/rct1/Csg.cpp | 8 +- src/openrct2/{ => compatibility}/rct1/Csg.h | 2 +- .../{ => compatibility}/rct1/Limits.h | 2 +- src/openrct2/{ => compatibility}/rct1/RCT1.h | 10 +- .../{ => compatibility}/rct1/S4Importer.cpp | 136 +++---- .../{ => compatibility}/rct1/T4Importer.cpp | 28 +- .../{ => compatibility}/rct1/Tables.cpp | 12 +- .../{ => compatibility}/rct1/Tables.h | 2 +- src/openrct2/libopenrct2.vcxproj | 338 +++++++++++++++++- src/openrct2/rct12/RCT12.cpp | 2 +- src/openrct2/ride/Ride.cpp | 2 +- src/openrct2/ride/Track.cpp | 2 +- src/openrct2/scenario/Scenario.cpp | 2 +- 17 files changed, 437 insertions(+), 117 deletions(-) rename src/openrct2/{ => compatibility}/rct1/Csg.cpp (96%) rename src/openrct2/{ => compatibility}/rct1/Csg.h (96%) rename src/openrct2/{ => compatibility}/rct1/Limits.h (97%) rename src/openrct2/{ => compatibility}/rct1/RCT1.h (99%) rename src/openrct2/{ => compatibility}/rct1/S4Importer.cpp (98%) rename src/openrct2/{ => compatibility}/rct1/T4Importer.cpp (96%) rename src/openrct2/{ => compatibility}/rct1/Tables.cpp (99%) rename src/openrct2/{ => compatibility}/rct1/Tables.h (98%) diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 5121ac6d26c1..e6bba907b1c4 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -32,7 +33,6 @@ #include #include #include -#include #include #include #include diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 1adac93ad832..77cdb3accf21 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -56,7 +57,6 @@ #include #include #include -#include #include #include #include diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index 16c695f49f9a..6177b31ccb68 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -20,6 +20,7 @@ #include "actions/LandSetRightsAction.h" #include "actions/ResultWithMessage.h" #include "audio/Audio.h" +#include "compatibility/rct1/RCT1.h" #include "core/EnumUtils.hpp" #include "core/Path.hpp" #include "core/String.hpp" @@ -37,7 +38,6 @@ #include "object/ObjectManager.h" #include "object/ObjectRepository.h" #include "peep/PeepAnimations.h" -#include "rct1/RCT1.h" #include "scenario/Scenario.h" #include "scripting/ScriptEngine.h" #include "ui/WindowManager.h" diff --git a/src/openrct2/SpriteIds.h b/src/openrct2/SpriteIds.h index a09781e72913..cdf464d2ef6f 100644 --- a/src/openrct2/SpriteIds.h +++ b/src/openrct2/SpriteIds.h @@ -9,9 +9,9 @@ #pragma once +#include "compatibility/rct1/Limits.h" #include "drawing/ImageIndexType.h" #include "drawing/ScrollingText.h" -#include "rct1/Limits.h" #include diff --git a/src/openrct2/rct1/Csg.cpp b/src/openrct2/compatibility/rct1/Csg.cpp similarity index 96% rename from src/openrct2/rct1/Csg.cpp rename to src/openrct2/compatibility/rct1/Csg.cpp index 12d14bcee517..71bd3df925b2 100644 --- a/src/openrct2/rct1/Csg.cpp +++ b/src/openrct2/compatibility/rct1/Csg.cpp @@ -9,10 +9,10 @@ #include "Csg.h" -#include "../core/FileStream.h" -#include "../core/Path.hpp" -#include "../drawing/Drawing.h" -#include "../rct1/Limits.h" +#include "../../core/FileStream.h" +#include "../../core/Path.hpp" +#include "../../drawing/Drawing.h" +#include "Limits.h" namespace OpenRCT2 { diff --git a/src/openrct2/rct1/Csg.h b/src/openrct2/compatibility/rct1/Csg.h similarity index 96% rename from src/openrct2/rct1/Csg.h rename to src/openrct2/compatibility/rct1/Csg.h index d96ac8444eb4..972508677a53 100644 --- a/src/openrct2/rct1/Csg.h +++ b/src/openrct2/compatibility/rct1/Csg.h @@ -9,7 +9,7 @@ #pragma once -#include "../core/StringTypes.h" +#include "../../core/StringTypes.h" namespace OpenRCT2 { diff --git a/src/openrct2/rct1/Limits.h b/src/openrct2/compatibility/rct1/Limits.h similarity index 97% rename from src/openrct2/rct1/Limits.h rename to src/openrct2/compatibility/rct1/Limits.h index 5afb75c6180a..173b14f72c0c 100644 --- a/src/openrct2/rct1/Limits.h +++ b/src/openrct2/compatibility/rct1/Limits.h @@ -8,7 +8,7 @@ *****************************************************************************/ #pragma once -#include "../rct12/Limits.h" +#include "../../rct12/Limits.h" namespace OpenRCT2::RCT1::Limits { diff --git a/src/openrct2/rct1/RCT1.h b/src/openrct2/compatibility/rct1/RCT1.h similarity index 99% rename from src/openrct2/rct1/RCT1.h rename to src/openrct2/compatibility/rct1/RCT1.h index 62329f5ea3c4..76497f99090e 100644 --- a/src/openrct2/rct1/RCT1.h +++ b/src/openrct2/compatibility/rct1/RCT1.h @@ -9,11 +9,11 @@ #pragma once -#include "../core/FixedPoint.hpp" -#include "../rct12/RCT12.h" -#include "../ride/Angles.h" -#include "../ride/RideRatings.h" -#include "../world/ParkData.h" +#include "../../core/FixedPoint.hpp" +#include "../../rct12/RCT12.h" +#include "../../ride/Angles.h" +#include "../../ride/RideRatings.h" +#include "../../world/ParkData.h" #include "Limits.h" enum class MechanicStatus : uint8_t; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/compatibility/rct1/S4Importer.cpp similarity index 98% rename from src/openrct2/rct1/S4Importer.cpp rename to src/openrct2/compatibility/rct1/S4Importer.cpp index b8efe49ab975..6aa930d63e03 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/compatibility/rct1/S4Importer.cpp @@ -7,74 +7,74 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../Cheats.h" -#include "../Context.h" -#include "../Diagnostic.h" -#include "../Editor.h" -#include "../Game.h" -#include "../GameState.h" -#include "../ParkImporter.h" -#include "../audio/Audio.h" -#include "../core/BitSet.hpp" -#include "../core/Console.hpp" -#include "../core/FileStream.h" -#include "../core/Guard.hpp" -#include "../core/IStream.hpp" -#include "../core/Memory.hpp" -#include "../core/Path.hpp" -#include "../core/String.hpp" -#include "../entity/Balloon.h" -#include "../entity/Duck.h" -#include "../entity/EntityList.h" -#include "../entity/Fountain.h" -#include "../entity/Litter.h" -#include "../entity/MoneyEffect.h" -#include "../entity/Particle.h" -#include "../entity/PatrolArea.h" -#include "../entity/Peep.h" -#include "../entity/Staff.h" -#include "../localisation/Formatting.h" -#include "../management/Award.h" -#include "../management/Marketing.h" -#include "../management/NewsItem.h" -#include "../object/ObjectLimits.h" -#include "../object/ObjectList.h" -#include "../object/ObjectManager.h" -#include "../object/ObjectRepository.h" -#include "../object/PeepAnimationsObject.h" -#include "../object/ScenarioMetaObject.h" -#include "../park/Legacy.h" -#include "../peep/RideUseSystem.h" -#include "../rct12/CSStringConverter.h" -#include "../rct12/EntryList.h" -#include "../rct12/ScenarioPatcher.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" -#include "../ride/RideManager.hpp" -#include "../ride/Track.h" -#include "../ride/Vehicle.h" -#include "../sawyer_coding/SawyerCoding.h" -#include "../scenario/Scenario.h" -#include "../scenario/ScenarioObjective.h" -#include "../scenario/ScenarioRepository.h" -#include "../scenario/ScenarioSources.h" -#include "../world/Climate.h" -#include "../world/Map.h" -#include "../world/MapAnimation.h" -#include "../world/Park.h" -#include "../world/Scenery.h" -#include "../world/TilePointerIndex.hpp" -#include "../world/Wall.h" -#include "../world/tile_element/BannerElement.h" -#include "../world/tile_element/EntranceElement.h" -#include "../world/tile_element/LargeSceneryElement.h" -#include "../world/tile_element/PathElement.h" -#include "../world/tile_element/Slope.h" -#include "../world/tile_element/SmallSceneryElement.h" -#include "../world/tile_element/SurfaceElement.h" -#include "../world/tile_element/TileElement.h" -#include "../world/tile_element/TrackElement.h" -#include "../world/tile_element/WallElement.h" +#include "../../Cheats.h" +#include "../../Context.h" +#include "../../Diagnostic.h" +#include "../../Editor.h" +#include "../../Game.h" +#include "../../GameState.h" +#include "../../ParkImporter.h" +#include "../../audio/Audio.h" +#include "../../core/BitSet.hpp" +#include "../../core/Console.hpp" +#include "../../core/FileStream.h" +#include "../../core/Guard.hpp" +#include "../../core/IStream.hpp" +#include "../../core/Memory.hpp" +#include "../../core/Path.hpp" +#include "../../core/String.hpp" +#include "../../entity/Balloon.h" +#include "../../entity/Duck.h" +#include "../../entity/EntityList.h" +#include "../../entity/Fountain.h" +#include "../../entity/Litter.h" +#include "../../entity/MoneyEffect.h" +#include "../../entity/Particle.h" +#include "../../entity/PatrolArea.h" +#include "../../entity/Peep.h" +#include "../../entity/Staff.h" +#include "../../localisation/Formatting.h" +#include "../../management/Award.h" +#include "../../management/Marketing.h" +#include "../../management/NewsItem.h" +#include "../../object/ObjectLimits.h" +#include "../../object/ObjectList.h" +#include "../../object/ObjectManager.h" +#include "../../object/ObjectRepository.h" +#include "../../object/PeepAnimationsObject.h" +#include "../../object/ScenarioMetaObject.h" +#include "../../park/Legacy.h" +#include "../../peep/RideUseSystem.h" +#include "../../rct12/CSStringConverter.h" +#include "../../rct12/EntryList.h" +#include "../../rct12/ScenarioPatcher.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" +#include "../../ride/RideManager.hpp" +#include "../../ride/Track.h" +#include "../../ride/Vehicle.h" +#include "../../sawyer_coding/SawyerCoding.h" +#include "../../scenario/Scenario.h" +#include "../../scenario/ScenarioObjective.h" +#include "../../scenario/ScenarioRepository.h" +#include "../../scenario/ScenarioSources.h" +#include "../../world/Climate.h" +#include "../../world/Map.h" +#include "../../world/MapAnimation.h" +#include "../../world/Park.h" +#include "../../world/Scenery.h" +#include "../../world/TilePointerIndex.hpp" +#include "../../world/Wall.h" +#include "../../world/tile_element/BannerElement.h" +#include "../../world/tile_element/EntranceElement.h" +#include "../../world/tile_element/LargeSceneryElement.h" +#include "../../world/tile_element/PathElement.h" +#include "../../world/tile_element/Slope.h" +#include "../../world/tile_element/SmallSceneryElement.h" +#include "../../world/tile_element/SurfaceElement.h" +#include "../../world/tile_element/TileElement.h" +#include "../../world/tile_element/TrackElement.h" +#include "../../world/tile_element/WallElement.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/rct1/T4Importer.cpp b/src/openrct2/compatibility/rct1/T4Importer.cpp similarity index 96% rename from src/openrct2/rct1/T4Importer.cpp rename to src/openrct2/compatibility/rct1/T4Importer.cpp index 4c1a88e558ef..213a513c8087 100644 --- a/src/openrct2/rct1/T4Importer.cpp +++ b/src/openrct2/compatibility/rct1/T4Importer.cpp @@ -7,20 +7,20 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../TrackImporter.h" -#include "../config/Config.h" -#include "../core/FileStream.h" -#include "../core/MemoryStream.h" -#include "../core/Path.hpp" -#include "../core/String.hpp" -#include "../rct1/RCT1.h" -#include "../rct1/Tables.h" -#include "../rct12/TD46.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" -#include "../ride/TrackDesign.h" -#include "../ride/TrackDesignRepository.h" -#include "../sawyer_coding/SawyerChunkReader.h" +#include "../../TrackImporter.h" +#include "../../config/Config.h" +#include "../../core/FileStream.h" +#include "../../core/MemoryStream.h" +#include "../../core/Path.hpp" +#include "../../core/String.hpp" +#include "../../rct12/TD46.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" +#include "../../ride/TrackDesign.h" +#include "../../ride/TrackDesignRepository.h" +#include "../../sawyer_coding/SawyerChunkReader.h" +#include "RCT1.h" +#include "Tables.h" #include diff --git a/src/openrct2/rct1/Tables.cpp b/src/openrct2/compatibility/rct1/Tables.cpp similarity index 99% rename from src/openrct2/rct1/Tables.cpp rename to src/openrct2/compatibility/rct1/Tables.cpp index b60b8a61329d..6ef3dbcd8b66 100644 --- a/src/openrct2/rct1/Tables.cpp +++ b/src/openrct2/compatibility/rct1/Tables.cpp @@ -9,12 +9,12 @@ #include "Tables.h" -#include "../Diagnostic.h" -#include "../core/Guard.hpp" -#include "../interface/Colour.h" -#include "../object/ObjectManager.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" +#include "../../Diagnostic.h" +#include "../../core/Guard.hpp" +#include "../../interface/Colour.h" +#include "../../object/ObjectManager.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" #include "RCT1.h" #include diff --git a/src/openrct2/rct1/Tables.h b/src/openrct2/compatibility/rct1/Tables.h similarity index 98% rename from src/openrct2/rct1/Tables.h rename to src/openrct2/compatibility/rct1/Tables.h index 5123aec28d36..c995d15aa8f3 100644 --- a/src/openrct2/rct1/Tables.h +++ b/src/openrct2/compatibility/rct1/Tables.h @@ -9,7 +9,7 @@ #pragma once -#include "../entity/Peep.h" +#include "../../entity/Peep.h" #include "RCT1.h" #include diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 98d7df6d38b2..93abcffda19a 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,6 +176,10 @@ + + + + @@ -425,10 +429,6 @@ - - - - @@ -790,6 +790,330 @@ + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + @@ -1073,10 +1397,6 @@ - - - - @@ -1209,7 +1529,7 @@ - + diff --git a/src/openrct2/rct12/RCT12.cpp b/src/openrct2/rct12/RCT12.cpp index fdc9f1845d93..dd29c032905b 100644 --- a/src/openrct2/rct12/RCT12.cpp +++ b/src/openrct2/rct12/RCT12.cpp @@ -9,11 +9,11 @@ #include "RCT12.h" +#include "../compatibility/rct1/Tables.h" #include "../core/CodepointView.hpp" #include "../core/String.hpp" #include "../localisation/Formatting.h" #include "../object/ObjectList.h" -#include "../rct1/Tables.h" #include "../rct12/CSStringConverter.h" #include "../rct2/RCT2.h" #include "../ride/Ride.h" diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 0707beba3dde..97bbe5907fb9 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -21,6 +21,7 @@ #include "../actions/RideSetStatusAction.h" #include "../actions/RideSetVehicleAction.h" #include "../audio/Audio.h" +#include "../compatibility/rct1/RCT1.h" #include "../config/Config.h" #include "../core/BitSet.hpp" #include "../core/EnumUtils.hpp" @@ -42,7 +43,6 @@ #include "../object/RideObject.h" #include "../object/StationObject.h" #include "../profiling/Profiling.h" -#include "../rct1/RCT1.h" #include "../scenario/Scenario.h" #include "../ui/WindowManager.h" #include "../util/Util.h" diff --git a/src/openrct2/ride/Track.cpp b/src/openrct2/ride/Track.cpp index f0539ee29d1f..08d1ebe776ac 100644 --- a/src/openrct2/ride/Track.cpp +++ b/src/openrct2/ride/Track.cpp @@ -15,12 +15,12 @@ #include "../GameState.h" #include "../actions/ResultWithMessage.h" #include "../audio/Audio.h" +#include "../compatibility/rct1/RCT1.h" #include "../config/Config.h" #include "../interface/Viewport.h" #include "../management/Finance.h" #include "../network/Network.h" #include "../platform/Platform.h" -#include "../rct1/RCT1.h" #include "../ride/RideColour.h" #include "../sawyer_coding/SawyerCoding.h" #include "../world/Footpath.h" diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index c5961c1b502e..c60496772c67 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -20,6 +20,7 @@ #include "../PlatformEnvironment.h" #include "../actions/ResultWithMessage.h" #include "../audio/Audio.h" +#include "../compatibility/rct1/RCT1.h" #include "../config/Config.h" #include "../core/BitSet.hpp" #include "../core/EnumUtils.hpp" @@ -46,7 +47,6 @@ #include "../object/WaterEntry.h" #include "../platform/Platform.h" #include "../profiling/Profiling.h" -#include "../rct1/RCT1.h" #include "../rct12/RCT12.h" #include "../ride/Ride.h" #include "../ride/RideManager.hpp" From 14b4ddd7876eb687ed16f5ea5b8ae938e5e85b09 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:05:33 -0300 Subject: [PATCH 03/26] Move /rct2 and /rct12 to /compatibility --- src/openrct2/Game.cpp | 2 +- src/openrct2/Limits.h | 2 +- src/openrct2/compatibility/rct1/Limits.h | 2 +- src/openrct2/compatibility/rct1/RCT1.h | 2 +- .../compatibility/rct1/S4Importer.cpp | 4 +- .../compatibility/rct1/T4Importer.cpp | 2 +- .../{ => compatibility}/rct12/CSChar.h | 0 .../rct12/CSStringConverter.cpp | 10 +- .../rct12/CSStringConverter.h | 0 .../{ => compatibility}/rct12/EntryList.h | 0 .../{ => compatibility}/rct12/Limits.h | 0 .../{ => compatibility}/rct12/RCT12.cpp | 34 +- .../{ => compatibility}/rct12/RCT12.h | 16 +- .../rct12/ScenarioPatcher.cpp | 58 +- .../{ => compatibility}/rct12/TD46.cpp | 4 +- src/openrct2/{ => compatibility}/rct12/TD46.h | 2 +- .../{ => compatibility}/rct2/DATLimits.h | 0 .../{ => compatibility}/rct2/Limits.h | 0 src/openrct2/compatibility/rct2/RCT2.h | 1098 +++++++++++++++++ .../{ => compatibility}/rct2/S6Importer.cpp | 100 +- .../{ => compatibility}/rct2/SeaDecrypt.cpp | 8 +- .../{ => compatibility}/rct2/T6Exporter.cpp | 32 +- .../{ => compatibility}/rct2/T6Exporter.h | 2 +- .../{ => compatibility}/rct2/T6Importer.cpp | 28 +- src/openrct2/drawing/Font.cpp | 2 +- src/openrct2/entity/EntityList.h | 2 +- src/openrct2/libopenrct2.vcxproj | 681 +++++++++- src/openrct2/object/PeepAnimationsObject.cpp | 2 +- src/openrct2/object/RideObject.cpp | 2 +- src/openrct2/object/StringTable.cpp | 2 +- src/openrct2/park/Legacy.cpp | 2 +- src/openrct2/rct2/RCT2.h | 4 +- src/openrct2/ride/CableLift.cpp | 2 +- src/openrct2/ride/Ride.h | 2 +- src/openrct2/ride/RideEntry.h | 2 +- src/openrct2/ride/Vehicle.cpp | 2 +- src/openrct2/scenario/Scenario.cpp | 2 +- src/openrct2/scenario/ScenarioRepository.cpp | 4 +- .../scripting/bindings/entity/ScStaff.cpp | 2 +- 39 files changed, 1929 insertions(+), 190 deletions(-) rename src/openrct2/{ => compatibility}/rct12/CSChar.h (100%) rename src/openrct2/{ => compatibility}/rct12/CSStringConverter.cpp (97%) rename src/openrct2/{ => compatibility}/rct12/CSStringConverter.h (100%) rename src/openrct2/{ => compatibility}/rct12/EntryList.h (100%) rename src/openrct2/{ => compatibility}/rct12/Limits.h (100%) rename src/openrct2/{ => compatibility}/rct12/RCT12.cpp (97%) rename src/openrct2/{ => compatibility}/rct12/RCT12.h (99%) rename src/openrct2/{ => compatibility}/rct12/ScenarioPatcher.cpp (95%) rename src/openrct2/{ => compatibility}/rct12/TD46.cpp (98%) rename src/openrct2/{ => compatibility}/rct12/TD46.h (98%) rename src/openrct2/{ => compatibility}/rct2/DATLimits.h (100%) rename src/openrct2/{ => compatibility}/rct2/Limits.h (100%) create mode 100644 src/openrct2/compatibility/rct2/RCT2.h rename src/openrct2/{ => compatibility}/rct2/S6Importer.cpp (98%) rename src/openrct2/{ => compatibility}/rct2/SeaDecrypt.cpp (95%) rename src/openrct2/{ => compatibility}/rct2/T6Exporter.cpp (94%) rename src/openrct2/{ => compatibility}/rct2/T6Exporter.h (96%) rename src/openrct2/{ => compatibility}/rct2/T6Importer.cpp (95%) diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index 2952540dfb2c..c56cbfe27e37 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -24,6 +24,7 @@ #include "actions/GameSetSpeedAction.h" #include "actions/LoadOrQuitAction.h" #include "audio/Audio.h" +#include "compatibility/rct12/CSStringConverter.h" #include "config/Config.h" #include "core/Console.hpp" #include "core/File.h" @@ -50,7 +51,6 @@ #include "object/ObjectList.h" #include "object/WaterEntry.h" #include "platform/Platform.h" -#include "rct12/CSStringConverter.h" #include "ride/Ride.h" #include "ride/RideRatings.h" #include "ride/Station.h" diff --git a/src/openrct2/Limits.h b/src/openrct2/Limits.h index ed45a66d03f0..96a4cc7fa47c 100644 --- a/src/openrct2/Limits.h +++ b/src/openrct2/Limits.h @@ -9,7 +9,7 @@ #pragma once -#include "rct2/Limits.h" +#include "compatibility/rct2/Limits.h" #include diff --git a/src/openrct2/compatibility/rct1/Limits.h b/src/openrct2/compatibility/rct1/Limits.h index 173b14f72c0c..5afb75c6180a 100644 --- a/src/openrct2/compatibility/rct1/Limits.h +++ b/src/openrct2/compatibility/rct1/Limits.h @@ -8,7 +8,7 @@ *****************************************************************************/ #pragma once -#include "../../rct12/Limits.h" +#include "../rct12/Limits.h" namespace OpenRCT2::RCT1::Limits { diff --git a/src/openrct2/compatibility/rct1/RCT1.h b/src/openrct2/compatibility/rct1/RCT1.h index 76497f99090e..b95f3211f05f 100644 --- a/src/openrct2/compatibility/rct1/RCT1.h +++ b/src/openrct2/compatibility/rct1/RCT1.h @@ -10,10 +10,10 @@ #pragma once #include "../../core/FixedPoint.hpp" -#include "../../rct12/RCT12.h" #include "../../ride/Angles.h" #include "../../ride/RideRatings.h" #include "../../world/ParkData.h" +#include "../rct12/RCT12.h" #include "Limits.h" enum class MechanicStatus : uint8_t; diff --git a/src/openrct2/compatibility/rct1/S4Importer.cpp b/src/openrct2/compatibility/rct1/S4Importer.cpp index 6aa930d63e03..6a5753e3fffa 100644 --- a/src/openrct2/compatibility/rct1/S4Importer.cpp +++ b/src/openrct2/compatibility/rct1/S4Importer.cpp @@ -45,8 +45,6 @@ #include "../../object/ScenarioMetaObject.h" #include "../../park/Legacy.h" #include "../../peep/RideUseSystem.h" -#include "../../rct12/CSStringConverter.h" -#include "../../rct12/EntryList.h" #include "../../rct12/ScenarioPatcher.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" @@ -75,6 +73,8 @@ #include "../../world/tile_element/TileElement.h" #include "../../world/tile_element/TrackElement.h" #include "../../world/tile_element/WallElement.h" +#include "../rct12/CSStringConverter.h" +#include "../rct12/EntryList.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/compatibility/rct1/T4Importer.cpp b/src/openrct2/compatibility/rct1/T4Importer.cpp index 213a513c8087..5824515031a9 100644 --- a/src/openrct2/compatibility/rct1/T4Importer.cpp +++ b/src/openrct2/compatibility/rct1/T4Importer.cpp @@ -13,12 +13,12 @@ #include "../../core/MemoryStream.h" #include "../../core/Path.hpp" #include "../../core/String.hpp" -#include "../../rct12/TD46.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" #include "../../ride/TrackDesign.h" #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkReader.h" +#include "../rct12/TD46.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/rct12/CSChar.h b/src/openrct2/compatibility/rct12/CSChar.h similarity index 100% rename from src/openrct2/rct12/CSChar.h rename to src/openrct2/compatibility/rct12/CSChar.h diff --git a/src/openrct2/rct12/CSStringConverter.cpp b/src/openrct2/compatibility/rct12/CSStringConverter.cpp similarity index 97% rename from src/openrct2/rct12/CSStringConverter.cpp rename to src/openrct2/compatibility/rct12/CSStringConverter.cpp index 8f967e4d8d34..991a4f145f1f 100644 --- a/src/openrct2/rct12/CSStringConverter.cpp +++ b/src/openrct2/compatibility/rct12/CSStringConverter.cpp @@ -9,11 +9,11 @@ #include "CSStringConverter.h" -#include "../core/String.hpp" -#include "../core/UnicodeChar.h" -#include "../localisation/FormatCodes.h" -#include "../localisation/Language.h" -#include "../rct12/CSChar.h" +#include "../../core/String.hpp" +#include "../../core/UnicodeChar.h" +#include "../../localisation/FormatCodes.h" +#include "../../localisation/Language.h" +#include "CSChar.h" #include #include diff --git a/src/openrct2/rct12/CSStringConverter.h b/src/openrct2/compatibility/rct12/CSStringConverter.h similarity index 100% rename from src/openrct2/rct12/CSStringConverter.h rename to src/openrct2/compatibility/rct12/CSStringConverter.h diff --git a/src/openrct2/rct12/EntryList.h b/src/openrct2/compatibility/rct12/EntryList.h similarity index 100% rename from src/openrct2/rct12/EntryList.h rename to src/openrct2/compatibility/rct12/EntryList.h diff --git a/src/openrct2/rct12/Limits.h b/src/openrct2/compatibility/rct12/Limits.h similarity index 100% rename from src/openrct2/rct12/Limits.h rename to src/openrct2/compatibility/rct12/Limits.h diff --git a/src/openrct2/rct12/RCT12.cpp b/src/openrct2/compatibility/rct12/RCT12.cpp similarity index 97% rename from src/openrct2/rct12/RCT12.cpp rename to src/openrct2/compatibility/rct12/RCT12.cpp index dd29c032905b..b6f709be3453 100644 --- a/src/openrct2/rct12/RCT12.cpp +++ b/src/openrct2/compatibility/rct12/RCT12.cpp @@ -9,23 +9,23 @@ #include "RCT12.h" -#include "../compatibility/rct1/Tables.h" -#include "../core/CodepointView.hpp" -#include "../core/String.hpp" -#include "../localisation/Formatting.h" -#include "../object/ObjectList.h" -#include "../rct12/CSStringConverter.h" -#include "../rct2/RCT2.h" -#include "../ride/Ride.h" -#include "../scenario/Scenario.h" -#include "../world/Banner.h" -#include "../world/Footpath.h" -#include "../world/Wall.h" -#include "../world/tile_element/PathElement.h" -#include "../world/tile_element/Slope.h" -#include "../world/tile_element/SmallSceneryElement.h" -#include "../world/tile_element/SurfaceElement.h" -#include "../world/tile_element/WallElement.h" +#include "../../core/CodepointView.hpp" +#include "../../core/String.hpp" +#include "../../localisation/Formatting.h" +#include "../../object/ObjectList.h" +#include "../../rct2/RCT2.h" +#include "../../ride/Ride.h" +#include "../../scenario/Scenario.h" +#include "../../world/Banner.h" +#include "../../world/Footpath.h" +#include "../../world/Wall.h" +#include "../../world/tile_element/PathElement.h" +#include "../../world/tile_element/Slope.h" +#include "../../world/tile_element/SmallSceneryElement.h" +#include "../../world/tile_element/SurfaceElement.h" +#include "../../world/tile_element/WallElement.h" +#include "../rct1/Tables.h" +#include "CSStringConverter.h" #include "EntryList.h" using namespace OpenRCT2; diff --git a/src/openrct2/rct12/RCT12.h b/src/openrct2/compatibility/rct12/RCT12.h similarity index 99% rename from src/openrct2/rct12/RCT12.h rename to src/openrct2/compatibility/rct12/RCT12.h index 05fc284e6665..6d5d4fa0b7bf 100644 --- a/src/openrct2/rct12/RCT12.h +++ b/src/openrct2/compatibility/rct12/RCT12.h @@ -11,14 +11,14 @@ // Structures shared between both RCT1 and RCT2. -#include "../core/EnumUtils.hpp" -#include "../core/FlagHolder.hpp" -#include "../core/Money.hpp" -#include "../entity/Fountain.h" -#include "../management/Research.h" -#include "../object/Object.h" -#include "../ride/RideTypes.h" -#include "../world/tile_element/TileElementType.h" +#include "../../core/EnumUtils.hpp" +#include "../../core/FlagHolder.hpp" +#include "../../core/Money.hpp" +#include "../../entity/Fountain.h" +#include "../../management/Research.h" +#include "../../object/Object.h" +#include "../../ride/RideTypes.h" +#include "../../world/tile_element/TileElementType.h" #include "Limits.h" #include diff --git a/src/openrct2/rct12/ScenarioPatcher.cpp b/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp similarity index 95% rename from src/openrct2/rct12/ScenarioPatcher.cpp rename to src/openrct2/compatibility/rct12/ScenarioPatcher.cpp index 5fece06eb135..e715cf76315c 100644 --- a/src/openrct2/rct12/ScenarioPatcher.cpp +++ b/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp @@ -7,39 +7,39 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "ScenarioPatcher.h" - -#include "../Context.h" -#include "../Game.h" -#include "../PlatformEnvironment.h" -#include "../actions/FootpathPlaceAction.h" -#include "../actions/GameActionResult.h" -#include "../core/File.h" -#include "../core/Guard.hpp" -#include "../core/Json.hpp" -#include "../core/Path.hpp" -#include "../core/String.hpp" -#include "../entity/EntityList.h" -#include "../entity/Guest.h" -#include "../entity/Peep.h" -#include "../object/ObjectManager.h" -#include "../ride/Ride.h" -#include "../ride/Track.h" -#include "../world/Footpath.h" -#include "../world/Location.hpp" -#include "../world/Map.h" -#include "../world/tile_element/EntranceElement.h" -#include "../world/tile_element/PathElement.h" -#include "../world/tile_element/Slope.h" -#include "../world/tile_element/SurfaceElement.h" -#include "../world/tile_element/TileElement.h" -#include "../world/tile_element/TileElementType.h" -#include "../world/tile_element/TrackElement.h" +#include "../../rct12/ScenarioPatcher.h" + +#include "../../Context.h" +#include "../../Game.h" +#include "../../PlatformEnvironment.h" +#include "../../actions/FootpathPlaceAction.h" +#include "../../actions/GameActionResult.h" +#include "../../core/File.h" +#include "../../core/Guard.hpp" +#include "../../core/Json.hpp" +#include "../../core/Path.hpp" +#include "../../core/String.hpp" +#include "../../entity/EntityList.h" +#include "../../entity/Guest.h" +#include "../../entity/Peep.h" +#include "../../object/ObjectManager.h" +#include "../../ride/Ride.h" +#include "../../ride/Track.h" +#include "../../world/Footpath.h" +#include "../../world/Location.hpp" +#include "../../world/Map.h" +#include "../../world/tile_element/EntranceElement.h" +#include "../../world/tile_element/PathElement.h" +#include "../../world/tile_element/Slope.h" +#include "../../world/tile_element/SurfaceElement.h" +#include "../../world/tile_element/TileElement.h" +#include "../../world/tile_element/TileElementType.h" +#include "../../world/tile_element/TrackElement.h" #ifdef DISABLE_NETWORK #include #else - #include "../core/Crypt.h" + #include "../../core/Crypt.h" #endif #include diff --git a/src/openrct2/rct12/TD46.cpp b/src/openrct2/compatibility/rct12/TD46.cpp similarity index 98% rename from src/openrct2/rct12/TD46.cpp rename to src/openrct2/compatibility/rct12/TD46.cpp index 40296098ca82..0a8d7d616593 100644 --- a/src/openrct2/rct12/TD46.cpp +++ b/src/openrct2/compatibility/rct12/TD46.cpp @@ -9,8 +9,8 @@ #include "TD46.h" -#include "../ride/Track.h" -#include "../ride/TrackDesign.h" +#include "../../ride/Track.h" +#include "../../ride/TrackDesign.h" namespace OpenRCT2::RCT12 { diff --git a/src/openrct2/rct12/TD46.h b/src/openrct2/compatibility/rct12/TD46.h similarity index 98% rename from src/openrct2/rct12/TD46.h rename to src/openrct2/compatibility/rct12/TD46.h index 0fefb6ba6b22..3549f92f8bfb 100644 --- a/src/openrct2/rct12/TD46.h +++ b/src/openrct2/compatibility/rct12/TD46.h @@ -9,7 +9,7 @@ #pragma once -#include "../core/EnumUtils.hpp" +#include "../../core/EnumUtils.hpp" #include diff --git a/src/openrct2/rct2/DATLimits.h b/src/openrct2/compatibility/rct2/DATLimits.h similarity index 100% rename from src/openrct2/rct2/DATLimits.h rename to src/openrct2/compatibility/rct2/DATLimits.h diff --git a/src/openrct2/rct2/Limits.h b/src/openrct2/compatibility/rct2/Limits.h similarity index 100% rename from src/openrct2/rct2/Limits.h rename to src/openrct2/compatibility/rct2/Limits.h diff --git a/src/openrct2/compatibility/rct2/RCT2.h b/src/openrct2/compatibility/rct2/RCT2.h new file mode 100644 index 000000000000..87cd6e2b4cf9 --- /dev/null +++ b/src/openrct2/compatibility/rct2/RCT2.h @@ -0,0 +1,1098 @@ +/***************************************************************************** + * Copyright (c) 2014-2026 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#pragma once + +#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/rct2/Limits.h" +#include "../core/FileSystem.hpp" +#include "../core/FixedPoint.hpp" +#include "../ride/Angles.h" +#include "../ride/RideRatings.h" +#include "../world/ParkData.h" + +#include + +struct RideObjectEntry; +enum class EditorStep : uint8_t; +enum class MechanicStatus : uint8_t; +enum class RideInvalidateFlag : uint8_t; +enum class VehicleColourSettings : uint8_t; + +template +struct FlagHolder; +using RideInvalidateFlags = FlagHolder; + +namespace OpenRCT2::Scenario +{ + enum class Category : uint8_t; + enum class ObjectiveType : uint8_t; +} // namespace OpenRCT2::Scenario + +enum +{ + S6_TYPE_SAVEDGAME, + S6_TYPE_SCENARIO +}; + +// For legacy scores file +enum +{ + SCENARIO_FLAGS_VISIBLE = (1 << 0), + SCENARIO_FLAGS_COMPLETED = (1 << 1), + SCENARIO_FLAGS_SIXFLAGS = (1 << 2) +}; + +namespace OpenRCT2::RCT2 +{ + constexpr StringId kRCT2RideStringStart = 2; + + // clang-format off + constexpr uint16_t kRCT2ObjectEntryCount = + Limits::kMaxRideObjects + + Limits::kMaxSmallSceneryObjects + + Limits::kMaxLargeSceneryObjects + + Limits::kMaxWallSceneryObjects + + Limits::kMaxBannerObjects + + Limits::kMaxPathObjects + + Limits::kMaxPathAdditionObjects + + Limits::kMaxSceneryGroupObjects + + Limits::kMaxParkEntranceObjects + + Limits::kMaxWaterObjects + + Limits::kMaxScenarioMetaObjects; + // clang-format on + static_assert(kRCT2ObjectEntryCount == 721); + + // clang-format off + constexpr int32_t kRCT2ObjectEntryGroupCounts[] = { + Limits::kMaxRideObjects, + Limits::kMaxSmallSceneryObjects, + Limits::kMaxLargeSceneryObjects, + Limits::kMaxWallSceneryObjects, + Limits::kMaxBannerObjects, + Limits::kMaxPathObjects, + Limits::kMaxPathAdditionObjects, + Limits::kMaxSceneryGroupObjects, + Limits::kMaxParkEntranceObjects, + Limits::kMaxWaterObjects, + Limits::kMaxScenarioMetaObjects, + }; + // clang-format on + + enum class EntityListId : uint8_t + { + count = 6, + }; +#pragma pack(push, 1) + /** + * Ride structure. + * size: 0x0260 + */ + struct Ride + { + uint8_t type; // 0x000 + // pointer to static info. for example, wild mouse type is 0x36, subtype is + // 0x4c. + RCT12ObjectEntryIndex subtype; // 0x001 + uint16_t pad002; // 0x002 + uint8_t mode; // 0x004 + VehicleColourSettings vehicleColourSettings; // 0x005 + RCT12VehicleColour vehicleColours[Limits::kMaxVehicleColours]; // 0x006 + uint8_t pad046[0x03]; // 0x046, Used to be track colours in RCT1 without expansions + // 0 = closed, 1 = open, 2 = test + uint8_t status; // 0x049 + StringId name; // 0x04A + union + { + uint32_t nameArguments; // 0x04C + struct + { + StringId nameArgumentsTypeName; // 0x04C + uint16_t nameArgumentsNumber; // 0x04E + }; + }; + RCT12xy8 overallView; // 0x050 + RCT12xy8 stationStarts[Limits::kMaxStationsPerRide]; // 0x052 + uint8_t stationHeights[Limits::kMaxStationsPerRide]; // 0x05A + uint8_t stationLength[Limits::kMaxStationsPerRide]; // 0x05E + uint8_t stationDepart[Limits::kMaxStationsPerRide]; // 0x062 + // ride->vehicle index for current train waiting for passengers + // at station + uint8_t trainAtStation[Limits::kMaxStationsPerRide]; // 0x066 + RCT12xy8 entrances[Limits::kMaxStationsPerRide]; // 0x06A + RCT12xy8 exits[Limits::kMaxStationsPerRide]; // 0x072 + uint16_t lastPeepInQueue[Limits::kMaxStationsPerRide]; // 0x07A + uint8_t pad082[Limits::kMaxStationsPerRide]; // 0x082, Used to be number of peeps in queue in RCT1, but this + // has moved. + uint16_t vehicles[Limits::kMaxTrainsPerRide]; // 0x086, Points to the first car in the train + uint8_t departFlags; // 0x0C6 + + // Not sure if these should be uint or sint. + uint8_t numStations; // 0x0C7 + uint8_t numTrains; // 0x0C8 + uint8_t numCarsPerTrain; // 0x0C9 + uint8_t proposedNumTrains; // 0x0CA + uint8_t proposedNumCarsPerTrain; // 0x0CB + uint8_t maxTrains; // 0x0CC + uint8_t minMaxCarsPerTrain; // 0x0CD + uint8_t minWaitingTime; // 0x0CE + uint8_t maxWaitingTime; // 0x0CF + union + { + uint8_t operationOption; // 0x0D0 + uint8_t timeLimit; // 0x0D0 + uint8_t numLaps; // 0x0D0 + uint8_t launchSpeed; // 0x0D0 + uint8_t speed; // 0x0D0 + uint8_t rotations; // 0x0D0 + }; + + uint8_t boatHireReturnDirection; // 0x0D1 + RCT12xy8 boatHireReturnPosition; // 0x0D2 + uint8_t measurementIndex; // 0x0D4 + // bits 0 through 4 are the number of helix sections + // bit 5: spinning tunnel, water splash, or rapids + // bit 6: log reverser, waterfall + // bit 7: whirlpool + uint8_t specialTrackElements; // 0x0D5 + uint8_t pad0D6[2]; // 0x0D6 + // Use ToHumanReadableSpeed if converting to display + int32_t maxSpeed; // 0x0D8 + int32_t averageSpeed; // 0x0DC + uint8_t currentTestSegment; // 0x0E0 + uint8_t averageSpeedTestTimeout; // 0x0E1 + uint8_t pad0E2[0x2]; // 0x0E2 + int32_t length[Limits::kMaxStationsPerRide]; // 0x0E4 + uint16_t time[Limits::kMaxStationsPerRide]; // 0x0F4 + fixed16_2dp maxPositiveVerticalG; // 0x0FC + fixed16_2dp maxNegativeVerticalG; // 0x0FE + fixed16_2dp maxLateralG; // 0x100 + fixed16_2dp previousVerticalG; // 0x102 + fixed16_2dp previousLateralG; // 0x104 + uint8_t pad106[0x2]; // 0x106 + uint32_t testingFlags; // 0x108 + // x y map location of the current track piece during a test + // this is to prevent counting special tracks multiple times + RCT12xy8 curTestTrackLocation; // 0x10C + // Next 3 variables are related (XXXX XYYY ZZZa aaaa) + uint16_t turnCountDefault; // 0x10E X = current turn count + uint16_t turnCountBanked; // 0x110 + uint16_t turnCountSloped; // 0x112 X = number turns > 3 elements + union + { + uint8_t inversions; // 0x114 (???X XXXX) + uint8_t holes; // 0x114 (???X XXXX) + // This is a very rough approximation of how much of the ride is undercover. + // It reaches the maximum value of 7 at about 50% undercover and doesn't increase beyond that. + uint8_t shelteredEighths; // 0x114 (XXX?-????) + }; + // Y is number of powered lifts, X is drops + uint8_t drops; // 0x115 (YYXX XXXX) + uint8_t startDropHeight; // 0x116 + uint8_t highestDropHeight; // 0x117 + int32_t shelteredLength; // 0x118 + // Unused always 0? Should affect nausea + uint16_t var11C; // 0x11C + uint8_t numShelteredSections; // 0x11E (?abY YYYY) + // see CurTestTrackLocation + uint8_t curTestTrackZ; // 0x11F + // Customer counter in the current 960 game tick (about 30 seconds) interval + uint16_t curNumCustomers; // 0x120 + // Counts ticks to update customer intervals, resets each 960 game ticks. + uint16_t numCustomersTimeout; // 0x122 + // Customer count in the last 10 * 960 game ticks (sliding window) + uint16_t numCustomers[Limits::kCustomerHistorySize]; // 0x124 + money16 price; // 0x138 + RCT12xy8 chairliftBullwheelLocation[2]; // 0x13A + uint8_t chairliftBullwheelZ[2]; // 0x13E + OpenRCT2::RideRating::Tuple ratings; // 0x140 + money16 value; // 0x146 + uint16_t chairliftBullwheelRotation; // 0x148 + uint8_t satisfaction; // 0x14A + uint8_t satisfactionTimeOut; // 0x14B + uint8_t satisfactionNext; // 0x14C + RideInvalidateFlags windowInvalidateFlags; // 0x14D + uint8_t pad14E[0x02]; // 0x14E + uint32_t totalCustomers; // 0x150 + money32 totalProfit; // 0x154 + uint8_t popularity; // 0x158 + uint8_t popularityTimeOut; // 0x159 Updated every purchase and ?possibly by time? + uint8_t popularityNext; // 0x15A When timeout reached this will be the next popularity + uint8_t numRiders; // 0x15B + uint8_t musicTuneId; // 0x15C + uint8_t slideInUse; // 0x15D + union + { + uint16_t slidePeep; // 0x15E + uint16_t mazeTiles; // 0x15E + }; + uint8_t pad160[0xE]; // 0x160 + uint8_t slidePeepTShirtColour; // 0x16E + uint8_t pad16F[0x7]; // 0x16F + uint8_t spiralSlideProgress; // 0x176 + uint8_t pad177[0x9]; // 0x177 + int16_t buildDate; // 0x180 + money16 upkeepCost; // 0x182 + uint16_t raceWinner; // 0x184 + uint8_t pad186[0x02]; // 0x186 + uint32_t musicPosition; // 0x188 + uint8_t breakdownReasonPending; // 0x18C + MechanicStatus mechanicStatus; // 0x18D + uint16_t mechanic; // 0x18E + uint8_t inspectionStation; // 0x190 + uint8_t brokenTrain; // 0x191 + uint8_t brokenCar; // 0x192 + uint8_t breakdownReason; // 0x193 + money16 priceSecondary; // 0x194 + union + { + struct + { + uint8_t reliabilitySubvalue; // 0x196, 0 - 255, acts like the decimals for reliabilityPercentage + uint8_t reliabilityPercentage; // 0x197, Starts at 100 and decreases from there. + }; + uint16_t reliability; // 0x196 + }; + // Small constant used to increase the unreliability as the game continues, + // making breakdowns more and more likely. + uint8_t unreliabilityFactor; // 0x198 + // Range from [0, 100] + uint8_t downtime; // 0x199 + uint8_t inspectionInterval; // 0x19A + uint8_t lastInspection; // 0x19B + uint8_t downtimeHistory[Limits::kDowntimeHistorySize]; // 0x19C + uint32_t numPrimaryItemsSold; // 0x1A4 + uint32_t numSecondaryItemsSold; // 0x1A8 + uint8_t breakdownSoundModifier; // 0x1AC + // Used to oscillate the sound when ride breaks down. + // 0 = no change, 255 = max change + uint8_t notFixedTimeout; // 0x1AD + uint8_t lastCrashType; // 0x1AE + uint8_t connectedMessageThrottle; // 0x1AF + money32 incomePerHour; // 0x1B0 + money32 profit; // 0x1B4 + uint8_t queueTime[Limits::kMaxStationsPerRide]; // 0x1B8 + uint8_t trackColourMain[Limits::kNumColourSchemes]; // 0x1BC + uint8_t trackColourAdditional[Limits::kNumColourSchemes]; // 0x1C0 + uint8_t trackColourSupports[Limits::kNumColourSchemes]; // 0x1C4 + uint8_t music; // 0x1C8 + uint8_t entranceStyle; // 0x1C9 + uint16_t vehicleChangeTimeout; // 0x1CA + uint8_t numBlockBrakes; // 0x1CC + uint8_t liftHillSpeed; // 0x1CD + uint16_t guestsFavourite; // 0x1CE + uint32_t lifecycleFlags; // 0x1D0 + uint8_t vehicleColoursExtended[Limits::kMaxVehicleColours]; // 0x1D4 + uint16_t totalAirTime; // 0x1F4 + uint8_t currentTestStation; // 0x1F6 + uint8_t numCircuits; // 0x1F7 + int16_t cableLiftX; // 0x1F8 + int16_t cableLiftY; // 0x1FA + uint8_t cableLiftZ; // 0x1FC + uint8_t pad1FD; // 0x1FD + uint16_t cableLift; // 0x1FE + uint16_t queueLength[Limits::kMaxStationsPerRide]; // 0x200 + uint8_t pad208[0x58]; // 0x208 + + uint8_t getMinCarsPerTrain() const; + uint8_t getMaxCarsPerTrain() const; + }; + static_assert(sizeof(Ride) == 0x260); + + /* Track Entrance entry size: 0x06 */ + struct TD6EntranceElement + { + int8_t z; // 0x00 + uint8_t direction; // 0x01 + int16_t x; // 0x02 + int16_t y; // 0x04 + + constexpr Direction GetDirection() const + { + return (direction & 0b00001111); + } + + constexpr bool IsExit() const + { + return !!(direction >> 7); + } + }; + static_assert(sizeof(TD6EntranceElement) == 0x06); + + /* Track Scenery entry size: 0x16 */ + struct TD6SceneryElement + { + RCTObjectEntry SceneryObject; // 0x00 + int8_t x; // 0x10 + int8_t y; // 0x11 + int8_t z; // 0x12 + uint8_t Flags; // 0x13 direction quadrant tertiary colour + uint8_t PrimaryColour; // 0x14 + uint8_t SecondaryColour; // 0x15 + + colour_t getTertiaryWallColour() const; + }; + static_assert(sizeof(TD6SceneryElement) == 0x16); + + /** + * Track design structure. + * size: 0xA3 + */ + struct TD6Track + { + uint8_t Type; // 0x00 + RCT12ObjectEntryIndex VehicleType; + uint32_t Flags; // 0x02 + uint8_t RideMode; // 0x06 + uint8_t VersionAndColourScheme; // 0x07 0b0000_VVCC + RCT12VehicleColour VehicleColours[Limits::kMaxTrainsPerRide]; // 0x08 + uint8_t Pad48; // 0x48 + uint8_t EntranceStyle; // 0x49 + uint8_t TotalAirTime; // 0x4A + uint8_t DepartFlags; // 0x4B + uint8_t NumberOfTrains; // 0x4C + uint8_t NumberOfCarsPerTrain; // 0x4D + uint8_t MinWaitingTime; // 0x4E + uint8_t MaxWaitingTime; // 0x4F + uint8_t OperationSetting; // 0x50 + int8_t MaxSpeed; // 0x51 + int8_t AverageSpeed; // 0x52 + uint16_t RideLength; // 0x53 + uint8_t MaxPositiveVerticalG; // 0x55 + int8_t MaxNegativeVerticalG; // 0x56 + uint8_t MaxLateralG; // 0x57 + union + { + uint8_t Inversions; // 0x58 + uint8_t Holes; // 0x58 + }; + uint8_t Drops; // 0x59 + uint8_t HighestDropHeight; // 0x5A + uint8_t Excitement; // 0x5B + uint8_t Intensity; // 0x5C + uint8_t Nausea; // 0x5D + money16 UpkeepCost; // 0x5E + uint8_t TrackSpineColour[Limits::kNumColourSchemes]; // 0x60 + uint8_t TrackRailColour[Limits::kNumColourSchemes]; // 0x64 + uint8_t TrackSupportColour[Limits::kNumColourSchemes]; // 0x68 + uint32_t Flags2; // 0x6C + RCTObjectEntry VehicleObject; // 0x70 + uint8_t SpaceRequiredX; // 0x80 + uint8_t SpaceRequiredY; // 0x81 + uint8_t VehicleAdditionalColour[Limits::kMaxTrainsPerRide]; // 0x82 + uint8_t LiftHillSpeedNumCircuits; // 0xA2 0bCCCL_LLLL + // 0xA3 (data starts here in file) + }; + static_assert(sizeof(TD6Track) == 0xA3); + + /** + * scores.dat file header. + * size: 0x10 + */ + struct ScoresHeader + { + uint32_t Var0; + uint32_t Var4; + uint32_t Var8; + uint32_t ScenarioCount; + }; + static_assert(sizeof(ScoresHeader) == 0x10); + + /** + * An entry of scores.dat + * size: 0x02B0 + */ + struct ScoresEntry + { + char Path[256]; + uint8_t Category; + uint8_t Pad0101[0x1F]; + Scenario::ObjectiveType ObjectiveType; + int8_t ObjectiveArg1; + int32_t objectiveArg2; + uint16_t objectiveArg3; + char Name[64]; + char Details[256]; + int32_t Flags; + money32 CompanyValue; + char CompletedBy[64]; + }; + static_assert(sizeof(ScoresEntry) == 0x02B0); + + struct Vehicle : RCT12EntityBase + { + VehiclePitch pitch; // 0x1F + VehicleRoll roll; // 0x20 + uint8_t Pad21[3]; + int32_t RemainingDistance; // 0x24 + int32_t Velocity; // 0x28 + int32_t Acceleration; // 0x2C + uint8_t Ride; // 0x30 + uint8_t VehicleType; // 0x31 + RCT12VehicleColour Colours; // 0x32 + union + { + uint16_t TrackProgress; // 0x34 + struct + { + int8_t Var34; + uint8_t Var35; + }; + }; + union + { + int16_t TrackTypeAndDirection; // 0x36 + RCT12xy8 BoatLocation; // 0x36 + }; + uint16_t TrackX; // 0x38 + uint16_t TrackY; // 0x3A + uint16_t TrackZ; // 0x3C + uint16_t NextVehicleOnTrain; // 0x3E + uint16_t PrevVehicleOnRide; // 0x40 + uint16_t NextVehicleOnRide; // 0x42 + uint16_t Var44; + uint16_t Mass; // 0x46 + uint16_t UpdateFlags; // 0x48 + uint8_t SwingSprite; + uint8_t CurrentStation; // 0x4B + union + { + int16_t SwingPosition; // 0x4C + int16_t CurrentTime; // 0x4C + struct + { + int8_t FerrisWheelVar0; // 0x4C + int8_t FerrisWheelVar1; // 0x4D + }; + }; + union + { + int16_t SwingSpeed; + int16_t CrashZ; // 0x4E + }; + uint8_t Status; // 0x50 + uint8_t SubState; // 0x51 + uint16_t Peep[32]; // 0x52 + uint8_t PeepTshirtColours[32]; // 0x92 + uint8_t NumSeats; // 0xB2 + uint8_t NumPeeps; // 0xB3 + uint8_t NextFreeSeat; // 0xB4 + uint8_t RestraintsPosition; // 0xB5 + union + { + int16_t SpinSpeed; // 0xB6 + int16_t CrashX; // 0xB6 + }; + uint16_t Sound2Flags; // 0xB8 + uint8_t SpinSprite; // 0xBA + uint8_t Sound1Id; // 0xBB + uint8_t Sound1Volume; // 0xBC + uint8_t Sound2Id; // 0xBD + uint8_t Sound2Volume; // 0xBE + int8_t SoundVectorFactor; + union + { + uint16_t VarC0; + int16_t CrashY; // 0xC0 + uint16_t TimeWaiting; // 0xC0 + uint16_t CableLiftTarget; // 0xC0 + }; + uint8_t Speed; // 0xC2 + uint8_t PoweredAcceleration; // 0xC3 + union + { + uint8_t DodgemsCollisionDirection; // 0xC4 + uint8_t CollisionDetectionTimer; // 0xC4 + }; + uint8_t AnimationFrame; // 0xC5 + uint8_t PadC6[0x2]; + uint32_t AnimationState; + uint8_t ScreamSoundId; // 0xCC + uint8_t TrackSubposition; + uint8_t NumLaps; // 0xCE + uint8_t BrakeSpeed; // 0xCF + uint16_t LostTimeOut; // 0xD0 + int8_t VerticalDropCountdown; // 0xD1 + uint8_t VarD3; + uint8_t MiniGolfCurrentAnimation; + uint8_t MiniGolfFlags; // 0xD5 + uint8_t RideSubtype; // 0xD6 + uint8_t ColoursExtended; // 0xD7 + uint8_t SeatRotation; // 0xD8 + uint8_t TargetSeatRotation; // 0xD9 + + OpenRCT2::RCT12::TrackElemType GetTrackType() const + { + return static_cast(TrackTypeAndDirection >> 2); + } + uint8_t GetTrackDirection() const + { + return TrackTypeAndDirection & kRCT12VehicleTrackDirectionMask; + } + void SetTrackType(OpenRCT2::RCT12::TrackElemType trackType) + { + // set the upper 14 bits to 0 + TrackTypeAndDirection &= ~kRCT12VehicleTrackTypeMask; + TrackTypeAndDirection |= EnumValue(trackType) << 2; + } + void SetTrackDirection(uint8_t trackDirection) + { + // set the lower 2 bits only + TrackTypeAndDirection &= ~kRCT12VehicleTrackDirectionMask; + TrackTypeAndDirection |= trackDirection & kRCT12VehicleTrackDirectionMask; + } + }; + static_assert(sizeof(Vehicle) == 0xDA); + + struct Peep : RCT12EntityBase + { + uint8_t Pad1F[0x22 - 0x1F]; + StringId NameStringIdx; // 0x22 + uint16_t NextX; // 0x24 + uint16_t NextY; // 0x26 + uint8_t NextZ; // 0x28 + uint8_t NextFlags; // 0x29 + uint8_t OutsideOfPark; // 0x2A + uint8_t State; // 0x2B + uint8_t SubState; // 0x2C + uint8_t AnimationGroup; // 0x2D + uint8_t PeepType; // 0x2E + union + { + uint8_t StaffType; // 0x2F + uint8_t NoOfRides; // 0x2F + }; + uint8_t TshirtColour; // 0x30 + uint8_t TrousersColour; // 0x31 + uint16_t DestinationX; // 0x32 + uint16_t DestinationY; // 0x34 + uint8_t DestinationTolerance; // 0x36 + uint8_t Var37; + uint8_t Energy; // 0x38 + uint8_t EnergyTarget; // 0x39 + uint8_t Happiness; // 0x3A + uint8_t HappinessTarget; // 0x3B + uint8_t Nausea; // 0x3C + uint8_t NauseaTarget; // 0x3D + uint8_t Hunger; // 0x3E + uint8_t Thirst; // 0x3F + uint8_t Toilet; // 0x40 + uint8_t Mass; // 0x41 + uint8_t TimeToConsume; // 0x42 + uint8_t Intensity; // 0x43 + uint8_t NauseaTolerance; // 0x44 + uint8_t WindowInvalidateFlags; // 0x45 + money16 PaidOnDrink; // 0x46 + uint8_t RideTypesBeenOn[16]; // 0x48 + uint32_t ItemExtraFlags; // 0x58 + RCT12RideId Photo2RideRef; // 0x5C + RCT12RideId Photo3RideRef; // 0x5D + RCT12RideId Photo4RideRef; // 0x5E + uint8_t Pad5F[0x09]; // 0x5F + RCT12RideId CurrentRide; // 0x68 + uint8_t CurrentRideStation; // 0x69 + uint8_t CurrentTrain; // 0x6A + union + { + struct + { + uint8_t CurrentCar; // 0x6B + uint8_t CurrentSeat; // 0x6C + }; + uint16_t TimeToSitdown; // 0x6B + struct + { + uint8_t TimeToStand; // 0x6B + uint8_t StandingFlags; // 0x6C + }; + }; + uint8_t SpecialSprite; // 0x6D + uint8_t AnimationType; // 0x6E + uint8_t NextAnimationType; // 0x6F + uint8_t AnimationImageIdOffset; // 0x70 + uint8_t Action; // 0x71 + uint8_t AnimationFrameNum; // 0x72 + uint8_t StepProgress; // 0x73 + union + { + uint16_t MechanicTimeSinceCall; + uint16_t NextInQueue; // 0x74 + }; + uint8_t Pad76; + uint8_t Pad77; + union + { + uint8_t MazeLastEdge; // 0x78 + uint8_t Direction; + }; + RCT12RideId InteractionRideIndex; + uint16_t TimeInQueue; // 0x7A + uint8_t RidesBeenOn[32]; // 0x7C + uint32_t Id; // 0x9C + money32 CashInPocket; // 0xA0 + money32 CashSpent; // 0xA4 + int32_t ParkEntryTime; // 0xA8 + int8_t RejoinQueueTimeout; // 0xAC + RCT12RideId PreviousRide; // 0xAD + uint16_t PreviousRideTimeOut; // 0xAE + RCT12PeepThought Thoughts[Limits::kMaxPeepThoughts]; // 0xB0 + uint8_t PathCheckOptimisation; // 0xC4 + union + { + uint8_t StaffId; // 0xC5 + RCT12RideId GuestHeadingToRideId; // 0xC5 + }; + union + { + uint8_t StaffOrders; // 0xC6 + uint8_t PeepIsLostCountdown; // 0xC6 + }; + RCT12RideId Photo1RideRef; // 0xC7 + uint32_t PeepFlags; // 0xC8 + RCT12xyzd8 PathfindGoal; // 0xCC + RCT12xyzd8 PathfindHistory[4]; // 0xD0 + uint8_t NoActionFrameNum; // 0xE0 + uint8_t LitterCount; // 0xE1 + union + { + uint8_t TimeOnRide; // 0xE2 + uint8_t StaffMowingTimeout; // 0xE2 + }; + uint8_t DisgustingCount; // 0xE3 + union + { + money16 PaidToEnter; // 0xE4 + uint16_t StaffLawnsMown; // 0xE4 + uint16_t StaffRidesFixed; // 0xE4 + }; + union + { + money16 PaidOnRides; // 0xE6 + uint16_t StaffGardensWatered; // 0xE6 + uint16_t StaffRidesInspected; // 0xE6 + }; + union + { + money16 PaidOnFood; // 0xE8 + uint16_t StaffLitterSwept; // 0xE8 + }; + union + { + money16 PaidOnSouvenirs; // 0xEA + uint16_t StaffBinsEmptied; // 0xEA + }; + uint8_t NoOfFood; // 0xEC + uint8_t NoOfDrinks; // 0xED + uint8_t NoOfSouvenirs; // 0xEE + uint8_t VandalismSeen; // 0xEF 0xC0 vandalism thought timeout, 0x3F vandalism tiles seen + uint8_t VoucherType; // 0xF0 + RCT12RideId VoucherArguments; // 0xF1 ride_id or string_offset_id + uint8_t SurroundingsThoughtTimeout; // 0xF2 + uint8_t Angriness; // 0xF3 + uint8_t TimeLost; // 0xF4 the time the peep has been lost when it reaches 254 generates the lost thought + uint8_t DaysInQueue; // 0xF5 + uint8_t BalloonColour; // 0xF6 + uint8_t UmbrellaColour; // 0xF7 + uint8_t HatColour; // 0xF8 + RCT12RideId FavouriteRide; // 0xF9 + uint8_t FavouriteRideRating; // 0xFA + uint8_t PadFB; + uint32_t ItemStandardFlags; // 0xFC + uint64_t GetItemFlags() const + { + return ItemStandardFlags | (static_cast(ItemExtraFlags) << 32); + } + }; + static_assert(sizeof(Peep) == 0x100); + + enum class StaffMode : uint8_t + { + none, + walk, + patrol = 3 + }; + + union Entity + { + private: + uint8_t Pad00[0x100]; + + public: + RCT12EntityBase Unknown; + RCT2::Vehicle Vehicle; + RCT2::Peep Peep; + RCT12EntityLitter Litter; + RCT12EntityBalloon Balloon; + RCT12EntityDuck Duck; + RCT12EntityJumpingFountain JumpingFountain{}; + RCT12EntityMoneyEffect MoneyEffect; + RCT12EntityCrashedVehicleParticle CrashedVehicleParticle; + RCT12EntityCrashSplash CrashSplash; + RCT12EntitySteamParticle SteamParticle; + RCT12EntityParticle MiscParticle; + }; + static_assert(sizeof(Entity) == 0x100); + + struct RideRatingCalculationData + { + uint16_t ProximityX; + uint16_t ProximityY; + uint16_t ProximityZ; + uint16_t ProximityStartX; + uint16_t ProximityStartY; + uint16_t ProximityStartZ; + uint8_t CurrentRide; + uint8_t State; + OpenRCT2::RCT12::TrackElemType ProximityTrackType; + uint8_t ProximityBaseHeight; + uint16_t ProximityTotal; + uint16_t ProximityScores[26]; + uint16_t NumBrakes; + uint16_t NumReversers; + uint16_t StationFlags; + }; + static_assert(sizeof(RideRatingCalculationData) == 76); + + /** + * SV6/SC6 header chunk + * size: 0x20 + */ + struct S6Header + { + uint8_t Type; // 0x00 + uint8_t ClassicFlag; // 0x01 + uint16_t NumPackedObjects; // 0x02 + uint32_t Version; // 0x04 + uint32_t MagicNumber; // 0x08 + uint8_t Pad0C[0x14]; + }; + static_assert(sizeof(S6Header) == 0x20); + + /** + * SC6 information chunk + * size: 0x198 + */ + struct S6Info + { + ::EditorStep EditorStep; + Scenario::Category Category; // 0x01 + Scenario::ObjectiveType ObjectiveType; // 0x02 + uint8_t ObjectiveArg1; // 0x03 + int32_t ObjectiveArg2; // 0x04 + uint16_t ObjectiveArg3; // 0x08 + uint8_t Pad00A[0x3E]; + char Name[64]; // 0x48 + char Details[256]; // 0x88 + RCTObjectEntry Entry; // 0x188 + }; + static_assert(sizeof(S6Info) == 0x198); + + struct S6Data + { + // SC6[0] + S6Header Header; + + // SC6[1] + S6Info Info; + + // SC6[2] + // packed objects + + // SC6[3] + union + { + RCTObjectEntry Objects[kRCT2ObjectEntryCount]; + struct + { + RCTObjectEntry RideObjects[Limits::kMaxRideObjects]; + RCTObjectEntry SceneryObjects[Limits::kMaxSmallSceneryObjects]; + RCTObjectEntry LargeSceneryObjects[Limits::kMaxLargeSceneryObjects]; + RCTObjectEntry WallSceneryObjects[Limits::kMaxWallSceneryObjects]; + RCTObjectEntry BannerObjects[Limits::kMaxBannerObjects]; + RCTObjectEntry PathObjects[Limits::kMaxPathObjects]; + RCTObjectEntry PathAdditionObjects[Limits::kMaxPathAdditionObjects]; + RCTObjectEntry SceneryGroupObjects[Limits::kMaxSceneryGroupObjects]; + RCTObjectEntry ParkEntranceObjects[Limits::kMaxParkEntranceObjects]; + RCTObjectEntry WaterObjects[Limits::kMaxWaterObjects]; + RCTObjectEntry ScenarioMetaObjects[Limits::kMaxScenarioMetaObjects]; + }; + }; + + // SC6[4] + uint16_t ElapsedMonths; + uint16_t CurrentDay; + uint32_t ScenarioTicks; + uint32_t ScenarioSrand0; + uint32_t ScenarioSrand1; + + // SC6[5] + RCT12TileElement TileElements[Limits::kMaxTileElements]; + + // SC6[6] + uint32_t NextFreeTileElementPointerIndex; + Entity Entities[Limits::kMaxEntitiesRCTCExtended]; + uint16_t EntityListsHead[EnumValue(EntityListId::count)]; + uint16_t EntityListsCount[EnumValue(EntityListId::count)]; + StringId ParkName; + uint8_t Pad013573D6[2]; + uint32_t ParkNameArgs; + money32 InitialCash; + money32 CurrentLoan; + uint32_t ParkFlags; + money16 ParkEntranceFee; + uint16_t RCT1ParkEntranceX; + uint16_t RCT1ParkEntranceY; + uint8_t Pad013573EE[2]; + uint8_t RCT1ParkEntranceZ; + uint8_t Pad013573F1; + RCT12PeepSpawn PeepSpawns[Limits::kMaxPeepSpawns]; + uint8_t GuestCountChangeModifier; + uint8_t CurrentResearchLevel; + uint8_t Pad01357400[4]; + uint32_t ResearchedRideTypes[Limits::kMaxResearchedRideTypeQuads]; + uint32_t ResearchedRideEntries[Limits::kMaxResearchedRideEntryQuads]; + uint32_t ResearchedTrackTypesA[128]; + uint32_t ResearchedTrackTypesB[128]; + + // SC6[7] + uint16_t GuestsInPark; + uint16_t GuestsHeadingForPark; + + // Ignored in scenario + money32 ExpenditureTable[Limits::kExpenditureTableMonthCount][Limits::kExpenditureTypeCount]; + + // SC6[8] + uint16_t LastGuestsInPark; + uint8_t Pad01357BCA[3]; + uint8_t HandymanColour; + uint8_t MechanicColour; + uint8_t SecurityColour; + + // Ignored in scenario + uint32_t ResearchedSceneryItems[Limits::kMaxResearchedSceneryItemQuads]; + + // SC6[9] + uint16_t ParkRating; + + // Ignored in scenario + uint8_t ParkRatingHistory[kParkRatingHistorySize]; + uint8_t GuestsInParkHistory[kGuestsInParkHistorySize]; + + // SC6[10] + uint8_t ActiveResearchTypes; + uint8_t ResearchProgressStage; + uint32_t LastResearchedItemSubject; + uint8_t Pad01357CF8[1000]; + uint32_t NextResearchItem; + uint16_t ResearchProgress; + uint8_t NextResearchCategory; + uint8_t NextResearchExpectedDay; + uint8_t NextResearchExpectedMonth; + uint8_t GuestInitialHappiness; + uint16_t ParkSize; + uint16_t GuestGenerationProbability; + uint16_t TotalRideValueForMoney; + money32 MaximumLoan; + money16 GuestInitialCash; + uint8_t GuestInitialHunger; + uint8_t GuestInitialThirst; + Scenario::ObjectiveType ObjectiveType; + uint8_t ObjectiveYear; + uint8_t Pad013580FA[2]; + money32 ObjectiveCurrency; + uint16_t ObjectiveGuests; + uint8_t CampaignWeeksLeft[20]; + uint8_t CampaignRideIndex[22]; + + // Ignored in scenario + money32 BalanceHistory[Limits::kFinanceGraphSize]; + + // SC6[11] + money32 CurrentExpenditure; + money32 CurrentProfit; + money32 WeeklyProfitAverageDividend; + uint16_t WeeklyProfitAverageDivisor; + uint8_t Pad0135833A[2]; + + // Ignored in scenario + money32 WeeklyProfitHistory[Limits::kFinanceGraphSize]; + + // SC6[12] + money32 ParkValue; + + // Ignored in scenario + money32 ParkValueHistory[Limits::kFinanceGraphSize]; + + // SC6[13] + money32 CompletedCompanyValue; + uint32_t TotalAdmissions; + money32 IncomeFromAdmissions; + money32 CompanyValue; + uint8_t PeepWarningThrottle[16]; + RCT12Award Awards[Limits::kMaxAwards]; + money16 LandPrice; + money16 ConstructionRightsPrice; + uint16_t Word01358774; + uint8_t Pad01358776[2]; + uint32_t CDKey; + uint8_t Pad0135877C[64]; + uint32_t GameVersionNumber; + money32 CompletedCompanyValueRecord; + uint32_t LoanHash; + uint16_t RideCount; + uint8_t Pad013587CA[6]; + money32 HistoricalProfit; + uint8_t Pad013587D4[4]; + char ScenarioCompletedName[32]; + money32 Cash; + uint8_t Pad013587FC[50]; + uint16_t ParkRatingCasualtyPenalty; + uint16_t MapSizeUnits; + uint16_t MapSizeMinus2; + uint16_t MapSize; + uint16_t MapMaxXy; + uint32_t SamePriceThroughout; + uint16_t SuggestedMaxGuests; + uint16_t ParkRatingWarningDays; + uint8_t LastEntranceStyle; + uint8_t RCT1WaterColour; + uint8_t Pad01358842[2]; + RCT12ResearchItem ResearchItems[Limits::kMaxResearchItems]; + uint16_t MapBaseZ; + char ScenarioName[64]; + char ScenarioDescription[256]; + uint8_t CurrentInterestRate; + uint8_t Pad0135934B; + uint32_t SamePriceThroughoutExtended; + int16_t ParkEntranceX[Limits::kMaxParkEntrances]; + int16_t ParkEntranceY[Limits::kMaxParkEntrances]; + int16_t ParkEntranceZ[Limits::kMaxParkEntrances]; + uint8_t ParkEntranceDirection[Limits::kMaxParkEntrances]; + char ScenarioFilename[256]; + uint8_t SavedExpansionPackNames[3256]; + RCT12Banner Banners[Limits::kMaxBanners]; + char CustomStrings[Limits::kMaxUserStrings][Limits::kMaxUserStringLength]; + uint32_t GameTicks1; + Ride Rides[Limits::kMaxRidesInPark]; + uint16_t SavedAge; // unused + int16_t SavedViewX; + int16_t SavedViewY; + uint8_t SavedViewZoom; + uint8_t SavedViewRotation; + RCT12MapAnimation MapAnimations[Limits::kMaxAnimatedObjects]; + uint16_t NumMapAnimations; + uint8_t Pad0138B582[2]; + RideRatingCalculationData RideRatingsCalcData; + uint8_t Pad0138B5D0[60]; + RCT12RideMeasurement RideMeasurements[8]; + uint32_t NextGuestIndex; + uint16_t GrassAndSceneryTilepos; + uint32_t PatrolAreas[(Limits::kMaxStaff + Limits::kStaffTypeCount) * Limits::kPatrolAreaSize]; + StaffMode StaffModes[Limits::kMaxStaff + Limits::kStaffTypeCount]; + uint8_t Pad13CA73E; + uint8_t Pad13CA73F; + uint8_t Byte13CA740; + uint8_t Pad13CA741; + uint8_t Byte13CA742[4]; // unused + RCT12::ClimateType Climate; + uint8_t Pad013CA747; + uint16_t WeatherUpdateTimer; + uint8_t CurrentWeather; + uint8_t NextWeather; + uint8_t Temperature; + uint8_t NextTemperature; + uint8_t CurrentWeatherEffect; + uint8_t NextWeatherEffect; + uint8_t CurrentWeatherGloom; + uint8_t NextWeatherGloom; + uint8_t CurrentWeatherLevel; + uint8_t NextWeatherLevel; + RCT12NewsItem recentMessages[Limits::kMaxRecentNewsItems]; + RCT12NewsItem archivedMessages[Limits::kMaxArchivedNewsItems]; + char RCT1ScenarioName[62]; // Unused in RCT2 + uint16_t RCT1ScenarioSlotIndex; // Unused in RCT2 + uint32_t RCT1ScenarioFlags; // Unused in RCT2 + uint16_t WidePathTileLoopX; + uint16_t WidePathTileLoopY; + uint8_t Pad13CE778[434]; + }; + static_assert(sizeof(S6Data) == 0x5a3c4a); + + struct StexEntry + { + StringId ScenarioName; // 0x00 + StringId ParkName; // 0x02 + StringId Details; // 0x04 + uint8_t Var06; + }; + static_assert(sizeof(StexEntry) == 7); +#pragma pack(pop) + + ObjectEntryIndex RCT2RideTypeToOpenRCT2RideType(uint8_t rct2RideType, const RideObjectEntry& rideEntry); + bool RCT2RideTypeNeedsConversion(uint8_t rct2RideType); + uint8_t OpenRCT2RideTypeToRCT2RideType(ObjectEntryIndex openrct2Type); + + enum class OriginalRideClass + { + regular, + wildMouse, + flatRide, + }; + + OpenRCT2::TrackElemType RCT2TrackTypeToOpenRCT2( + OpenRCT2::RCT12::TrackElemType origTrackType, ride_type_t rideType, bool isFlatRide); + OpenRCT2::TrackElemType RCT2TrackTypeToOpenRCT2( + OpenRCT2::RCT12::TrackElemType origTrackType, OriginalRideClass originalClass); + OpenRCT2::RCT12::TrackElemType OpenRCT2TrackTypeToRCT2(OpenRCT2::TrackElemType origTrackType); + + struct FootpathMapping + { + std::string_view Original; + std::string_view NormalSurface; + std::string_view QueueSurface; + std::string_view Railing; + }; + + const FootpathMapping* GetFootpathSurfaceId( + const ObjectEntryDescriptor& desc, bool ideallyLoaded = false, bool isQueue = false); + std::optional GetBestObjectEntryForSurface(std::string_view surface, std::string_view railings); + + static constexpr std::string_view DefaultTerrainSurfaces[] = { + "rct2.terrain_surface.grass", "rct2.terrain_surface.sand", "rct2.terrain_surface.dirt", + "rct2.terrain_surface.rock", "rct2.terrain_surface.martian", "rct2.terrain_surface.chequerboard", + "rct2.terrain_surface.grass_clumps", "rct2.terrain_surface.ice", "rct2.terrain_surface.grid_red", + "rct2.terrain_surface.grid_yellow", "rct2.terrain_surface.grid_purple", "rct2.terrain_surface.grid_green", + "rct2.terrain_surface.sand_red", "rct2.terrain_surface.sand_brown", + }; + + // Additional surface styles added to OpenRCT2 as a feature if RCT1 linked + static constexpr std::string_view OpenRCT2HybridTerrainSurfaces[] = { + "rct1aa.terrain_surface.roof_red", + "rct1ll.terrain_surface.roof_grey", + "rct1ll.terrain_surface.rust", + "rct1ll.terrain_surface.wood", + }; + + static constexpr std::string_view DefaultTerrainEdges[] = { + "rct2.terrain_edge.rock", + "rct2.terrain_edge.wood_red", + "rct2.terrain_edge.wood_black", + "rct2.terrain_edge.ice", + }; + + // Additional surface edges added to OpenRCT2 as a feature if RCT1 was linked + static constexpr std::string_view OpenRCT2HybridTerrainEdges[] = { + "rct1.terrain_edge.brick", "rct1.terrain_edge.iron", "rct1aa.terrain_edge.grey", + "rct1aa.terrain_edge.yellow", "rct1aa.terrain_edge.red", "rct1ll.terrain_edge.purple", + "rct1ll.terrain_edge.green", "rct1ll.terrain_edge.stone_brown", "rct1ll.terrain_edge.stone_grey", + "rct1ll.terrain_edge.skyscraper_a", "rct1ll.terrain_edge.skyscraper_b", + }; +} // namespace OpenRCT2::RCT2 + +std::vector DecryptSea(const fs::path& path); diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/compatibility/rct2/S6Importer.cpp similarity index 98% rename from src/openrct2/rct2/S6Importer.cpp rename to src/openrct2/compatibility/rct2/S6Importer.cpp index d1570a0dd326..77e316cf2c7d 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/compatibility/rct2/S6Importer.cpp @@ -7,59 +7,59 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../Context.h" -#include "../Diagnostic.h" -#include "../Game.h" -#include "../GameState.h" -#include "../ParkImporter.h" -#include "../core/FileStream.h" -#include "../core/Path.hpp" -#include "../core/String.hpp" -#include "../entity/Balloon.h" -#include "../entity/Duck.h" -#include "../entity/Fountain.h" -#include "../entity/Guest.h" -#include "../entity/Litter.h" -#include "../entity/MoneyEffect.h" -#include "../entity/Particle.h" -#include "../entity/PatrolArea.h" -#include "../entity/Staff.h" -#include "../localisation/Formatting.h" -#include "../object/ObjectList.h" -#include "../object/ObjectManager.h" -#include "../object/ObjectRepository.h" -#include "../object/ScenarioMetaObject.h" -#include "../park/Legacy.h" -#include "../park/ParkPreview.h" -#include "../peep/RideUseSystem.h" +#include "../../Context.h" +#include "../../Diagnostic.h" +#include "../../Game.h" +#include "../../GameState.h" +#include "../../ParkImporter.h" +#include "../../core/FileStream.h" +#include "../../core/Path.hpp" +#include "../../core/String.hpp" +#include "../../entity/Balloon.h" +#include "../../entity/Duck.h" +#include "../../entity/Fountain.h" +#include "../../entity/Guest.h" +#include "../../entity/Litter.h" +#include "../../entity/MoneyEffect.h" +#include "../../entity/Particle.h" +#include "../../entity/PatrolArea.h" +#include "../../entity/Staff.h" +#include "../../localisation/Formatting.h" +#include "../../object/ObjectList.h" +#include "../../object/ObjectManager.h" +#include "../../object/ObjectRepository.h" +#include "../../object/ScenarioMetaObject.h" +#include "../../park/Legacy.h" +#include "../../park/ParkPreview.h" +#include "../../peep/RideUseSystem.h" +#include "../../rct12/ScenarioPatcher.h" +#include "../../rct2/RCT2.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" +#include "../../ride/Vehicle.h" +#include "../../sawyer_coding/SawyerChunkReader.h" +#include "../../scenario/Scenario.h" +#include "../../scenario/ScenarioRepository.h" +#include "../../scenario/ScenarioSources.h" +#include "../../world/Climate.h" +#include "../../world/Entrance.h" +#include "../../world/Map.h" +#include "../../world/MapAnimation.h" +#include "../../world/Park.h" +#include "../../world/Scenery.h" +#include "../../world/TilePointerIndex.hpp" +#include "../../world/tile_element/BannerElement.h" +#include "../../world/tile_element/EntranceElement.h" +#include "../../world/tile_element/LargeSceneryElement.h" +#include "../../world/tile_element/PathElement.h" +#include "../../world/tile_element/SmallSceneryElement.h" +#include "../../world/tile_element/SurfaceElement.h" +#include "../../world/tile_element/TileElement.h" +#include "../../world/tile_element/TrackElement.h" +#include "../../world/tile_element/WallElement.h" #include "../rct12/CSStringConverter.h" #include "../rct12/EntryList.h" #include "../rct12/RCT12.h" -#include "../rct12/ScenarioPatcher.h" -#include "../rct2/RCT2.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" -#include "../ride/Vehicle.h" -#include "../sawyer_coding/SawyerChunkReader.h" -#include "../scenario/Scenario.h" -#include "../scenario/ScenarioRepository.h" -#include "../scenario/ScenarioSources.h" -#include "../world/Climate.h" -#include "../world/Entrance.h" -#include "../world/Map.h" -#include "../world/MapAnimation.h" -#include "../world/Park.h" -#include "../world/Scenery.h" -#include "../world/TilePointerIndex.hpp" -#include "../world/tile_element/BannerElement.h" -#include "../world/tile_element/EntranceElement.h" -#include "../world/tile_element/LargeSceneryElement.h" -#include "../world/tile_element/PathElement.h" -#include "../world/tile_element/SmallSceneryElement.h" -#include "../world/tile_element/SurfaceElement.h" -#include "../world/tile_element/TileElement.h" -#include "../world/tile_element/TrackElement.h" -#include "../world/tile_element/WallElement.h" #include diff --git a/src/openrct2/rct2/SeaDecrypt.cpp b/src/openrct2/compatibility/rct2/SeaDecrypt.cpp similarity index 95% rename from src/openrct2/rct2/SeaDecrypt.cpp rename to src/openrct2/compatibility/rct2/SeaDecrypt.cpp index de63c5370c06..f3895de29b9e 100644 --- a/src/openrct2/rct2/SeaDecrypt.cpp +++ b/src/openrct2/compatibility/rct2/SeaDecrypt.cpp @@ -7,10 +7,10 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../core/File.h" -#include "../core/Numerics.hpp" -#include "../core/Path.hpp" -#include "RCT2.h" +#include "../../core/File.h" +#include "../../core/Numerics.hpp" +#include "../../core/Path.hpp" +#include "../../rct2/RCT2.h" #include #include diff --git a/src/openrct2/rct2/T6Exporter.cpp b/src/openrct2/compatibility/rct2/T6Exporter.cpp similarity index 94% rename from src/openrct2/rct2/T6Exporter.cpp rename to src/openrct2/compatibility/rct2/T6Exporter.cpp index 3b63eee8573f..0208bfbc0a96 100644 --- a/src/openrct2/rct2/T6Exporter.cpp +++ b/src/openrct2/compatibility/rct2/T6Exporter.cpp @@ -9,23 +9,23 @@ #include "T6Exporter.h" -#include "../Context.h" -#include "../Diagnostic.h" -#include "../core/FileStream.h" -#include "../core/MemoryStream.h" -#include "../localisation/StringIds.h" -#include "../object/ObjectList.h" +#include "../../Context.h" +#include "../../Diagnostic.h" +#include "../../core/FileStream.h" +#include "../../core/MemoryStream.h" +#include "../../localisation/StringIds.h" +#include "../../object/ObjectList.h" +#include "../../rct2/RCT2.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" +#include "../../ride/Station.h" +#include "../../ride/Track.h" +#include "../../ride/TrackData.h" +#include "../../ride/TrackDesign.h" +#include "../../ride/TrackDesignRepository.h" +#include "../../sawyer_coding/SawyerChunkWriter.h" +#include "../../windows/Intent.h" #include "../rct12/TD46.h" -#include "../rct2/RCT2.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" -#include "../ride/Station.h" -#include "../ride/Track.h" -#include "../ride/TrackData.h" -#include "../ride/TrackDesign.h" -#include "../ride/TrackDesignRepository.h" -#include "../sawyer_coding/SawyerChunkWriter.h" -#include "../windows/Intent.h" #include diff --git a/src/openrct2/rct2/T6Exporter.h b/src/openrct2/compatibility/rct2/T6Exporter.h similarity index 96% rename from src/openrct2/rct2/T6Exporter.h rename to src/openrct2/compatibility/rct2/T6Exporter.h index edc29697b47f..89737e2699ef 100644 --- a/src/openrct2/rct2/T6Exporter.h +++ b/src/openrct2/compatibility/rct2/T6Exporter.h @@ -9,7 +9,7 @@ #pragma once -#include "../ride/TrackDesign.h" +#include "../../ride/TrackDesign.h" #include diff --git a/src/openrct2/rct2/T6Importer.cpp b/src/openrct2/compatibility/rct2/T6Importer.cpp similarity index 95% rename from src/openrct2/rct2/T6Importer.cpp rename to src/openrct2/compatibility/rct2/T6Importer.cpp index 178ffb4c0dd3..1d6b4551876b 100644 --- a/src/openrct2/rct2/T6Importer.cpp +++ b/src/openrct2/compatibility/rct2/T6Importer.cpp @@ -7,21 +7,21 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../Diagnostic.h" -#include "../TrackImporter.h" -#include "../core/FileStream.h" -#include "../core/MemoryStream.h" -#include "../core/Path.hpp" -#include "../core/String.hpp" -#include "../object/ObjectRepository.h" -#include "../object/RideObject.h" +#include "../../Diagnostic.h" +#include "../../TrackImporter.h" +#include "../../core/FileStream.h" +#include "../../core/MemoryStream.h" +#include "../../core/Path.hpp" +#include "../../core/String.hpp" +#include "../../object/ObjectRepository.h" +#include "../../object/RideObject.h" +#include "../../rct2/RCT2.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" +#include "../../ride/TrackDesign.h" +#include "../../ride/TrackDesignRepository.h" +#include "../../sawyer_coding/SawyerChunkReader.h" #include "../rct12/TD46.h" -#include "../rct2/RCT2.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" -#include "../ride/TrackDesign.h" -#include "../ride/TrackDesignRepository.h" -#include "../sawyer_coding/SawyerChunkReader.h" #include diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index 5fa48895dd6d..b631343766ac 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -11,11 +11,11 @@ #include "../Diagnostic.h" #include "../SpriteIds.h" +#include "../compatibility/rct12/CSChar.h" #include "../core/EnumUtils.hpp" #include "../core/UTF8.h" #include "../core/UnicodeChar.h" #include "../localisation/LocalisationService.h" -#include "../rct12/CSChar.h" #include "Drawing.h" #include "ScrollingText.h" #include "TTF.h" diff --git a/src/openrct2/entity/EntityList.h b/src/openrct2/entity/EntityList.h index b654e047bf13..efccaf691a7e 100644 --- a/src/openrct2/entity/EntityList.h +++ b/src/openrct2/entity/EntityList.h @@ -10,7 +10,7 @@ #pragma once #include "../GameState.h" -#include "../rct12/RCT12.h" +#include "../compatibility/rct12/RCT12.h" #include "../world/Location.hpp" #include "EntityBase.h" #include "EntityRegistry.h" diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 93abcffda19a..8b9a8de8b043 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,10 +176,19 @@ + + + + + + + + + @@ -423,16 +432,7 @@ - - - - - - - - - @@ -790,6 +790,330 @@ + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; @@ -871,7 +1195,88 @@ false true - + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -952,7 +1357,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -1033,7 +1438,250 @@ false true - + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -1393,15 +2041,7 @@ - - - - - - - - @@ -1529,6 +2169,7 @@ + diff --git a/src/openrct2/object/PeepAnimationsObject.cpp b/src/openrct2/object/PeepAnimationsObject.cpp index 33fc76b09c54..d2046b7db062 100644 --- a/src/openrct2/object/PeepAnimationsObject.cpp +++ b/src/openrct2/object/PeepAnimationsObject.cpp @@ -11,12 +11,12 @@ #include "../Context.h" #include "../PlatformEnvironment.h" +#include "../compatibility/rct12/RCT12.h" #include "../core/EnumMap.hpp" #include "../core/Guard.hpp" #include "../core/Json.hpp" #include "../drawing/Drawing.h" #include "../peep/PeepAnimations.h" -#include "../rct12/RCT12.h" #include "ObjectRepository.h" namespace OpenRCT2 diff --git a/src/openrct2/object/RideObject.cpp b/src/openrct2/object/RideObject.cpp index a1385ea6cf61..0308f433f99c 100644 --- a/src/openrct2/object/RideObject.cpp +++ b/src/openrct2/object/RideObject.cpp @@ -13,6 +13,7 @@ #include "../OpenRCT2.h" #include "../audio/Audio.h" +#include "../compatibility/rct2/DATLimits.h" #include "../core/EnumMap.hpp" #include "../core/FlagHolder.hpp" #include "../core/IStream.hpp" @@ -23,7 +24,6 @@ #include "../drawing/Drawing.h" #include "../entity/Yaw.hpp" #include "../localisation/Language.h" -#include "../rct2/DATLimits.h" #include "../rct2/RCT2.h" #include "../ride/CarEntry.h" #include "../ride/Ride.h" diff --git a/src/openrct2/object/StringTable.cpp b/src/openrct2/object/StringTable.cpp index 5fa2b68e0978..3963318d9e81 100644 --- a/src/openrct2/object/StringTable.cpp +++ b/src/openrct2/object/StringTable.cpp @@ -10,13 +10,13 @@ #include "StringTable.h" #include "../Context.h" +#include "../compatibility/rct12/CSStringConverter.h" #include "../core/EnumUtils.hpp" #include "../core/Guard.hpp" #include "../core/IStream.hpp" #include "../core/Json.hpp" #include "../core/String.hpp" #include "../localisation/LocalisationService.h" -#include "../rct12/CSStringConverter.h" #include "Object.h" namespace OpenRCT2 diff --git a/src/openrct2/park/Legacy.cpp b/src/openrct2/park/Legacy.cpp index d3903496de6e..9ba05727b5ab 100644 --- a/src/openrct2/park/Legacy.cpp +++ b/src/openrct2/park/Legacy.cpp @@ -11,6 +11,7 @@ #include "../Context.h" #include "../Diagnostic.h" +#include "../compatibility/rct12/RCT12.h" #include "../entity/EntityList.h" #include "../entity/Guest.h" #include "../entity/Staff.h" @@ -18,7 +19,6 @@ #include "../object/ObjectList.h" #include "../object/ObjectManager.h" #include "../object/PeepAnimationsObject.h" -#include "../rct12/RCT12.h" #include "../rct2/RCT2.h" #include "../ride/Ride.h" #include "../ride/Track.h" diff --git a/src/openrct2/rct2/RCT2.h b/src/openrct2/rct2/RCT2.h index 1be847398afa..87cd6e2b4cf9 100644 --- a/src/openrct2/rct2/RCT2.h +++ b/src/openrct2/rct2/RCT2.h @@ -9,13 +9,13 @@ #pragma once +#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/rct2/Limits.h" #include "../core/FileSystem.hpp" #include "../core/FixedPoint.hpp" -#include "../rct12/RCT12.h" #include "../ride/Angles.h" #include "../ride/RideRatings.h" #include "../world/ParkData.h" -#include "Limits.h" #include diff --git a/src/openrct2/ride/CableLift.cpp b/src/openrct2/ride/CableLift.cpp index b9b779cbf2d5..dc1f44a23812 100644 --- a/src/openrct2/ride/CableLift.cpp +++ b/src/openrct2/ride/CableLift.cpp @@ -10,8 +10,8 @@ #include "CableLift.h" #include "../audio/Audio.h" +#include "../compatibility/rct12/RCT12.h" #include "../entity/EntityList.h" -#include "../rct12/RCT12.h" #include "../util/Util.h" #include "../world/Map.h" #include "../world/tile_element/TileElement.h" diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index 6773e881a9b5..1d9ea0bfeed6 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -10,10 +10,10 @@ #pragma once #include "../Limits.h" +#include "../compatibility/rct2/Limits.h" #include "../core/BitSet.hpp" #include "../core/FixedPoint.hpp" #include "../core/FlagHolder.hpp" -#include "../rct2/Limits.h" #include "RideColour.h" #include "RideEntry.h" #include "RideRatings.h" diff --git a/src/openrct2/ride/RideEntry.h b/src/openrct2/ride/RideEntry.h index 980cafb76dc9..07e3b9e020c0 100644 --- a/src/openrct2/ride/RideEntry.h +++ b/src/openrct2/ride/RideEntry.h @@ -9,7 +9,7 @@ #pragma once -#include "../rct2/DATLimits.h" +#include "../compatibility/rct2/DATLimits.h" #include "CarEntry.h" #include "RideColour.h" #include "RideTypes.h" diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 5f38c61f9f7a..c81a2548b6aa 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -16,6 +16,7 @@ #include "../OpenRCT2.h" #include "../actions/RideSetStatusAction.h" #include "../audio/Audio.h" +#include "../compatibility/rct12/RCT12.h" #include "../config/Config.h" #include "../core/EnumUtils.hpp" #include "../core/FixedPoint.hpp" @@ -33,7 +34,6 @@ #include "../object/SmallSceneryEntry.h" #include "../paint/vehicle/Vehicle.MiniGolf.h" #include "../profiling/Profiling.h" -#include "../rct12/RCT12.h" #include "../scenario/Scenario.h" #include "../scripting/HookEngine.h" #include "../scripting/ScriptEngine.h" diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index c60496772c67..20c529c60728 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -21,6 +21,7 @@ #include "../actions/ResultWithMessage.h" #include "../audio/Audio.h" #include "../compatibility/rct1/RCT1.h" +#include "../compatibility/rct12/RCT12.h" #include "../config/Config.h" #include "../core/BitSet.hpp" #include "../core/EnumUtils.hpp" @@ -47,7 +48,6 @@ #include "../object/WaterEntry.h" #include "../platform/Platform.h" #include "../profiling/Profiling.h" -#include "../rct12/RCT12.h" #include "../ride/Ride.h" #include "../ride/RideManager.hpp" #include "../ride/Track.h" diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index 5d6ca298c187..1505a94b35b8 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -14,6 +14,8 @@ #include "../Game.h" #include "../ParkImporter.h" #include "../PlatformEnvironment.h" +#include "../compatibility/rct12/CSStringConverter.h" +#include "../compatibility/rct12/RCT12.h" #include "../config/Config.h" #include "../core/Console.hpp" #include "../core/File.h" @@ -26,8 +28,6 @@ #include "../localisation/LocalisationService.h" #include "../platform/Crash.h" #include "../platform/Platform.h" -#include "../rct12/CSStringConverter.h" -#include "../rct12/RCT12.h" #include "../rct2/RCT2.h" #include "../sawyer_coding/SawyerChunkReader.h" #include "Scenario.h" diff --git a/src/openrct2/scripting/bindings/entity/ScStaff.cpp b/src/openrct2/scripting/bindings/entity/ScStaff.cpp index dc8f811f8612..dcfbf4d4abe9 100644 --- a/src/openrct2/scripting/bindings/entity/ScStaff.cpp +++ b/src/openrct2/scripting/bindings/entity/ScStaff.cpp @@ -11,12 +11,12 @@ #include "ScStaff.hpp" + #include "../../../compatibility/rct12/RCT12.h" #include "../../../entity/PatrolArea.h" #include "../../../entity/Staff.h" #include "../../../object/ObjectManager.h" #include "../../../object/PeepAnimationsObject.h" #include "../../../peep/PeepAnimations.h" - #include "../../../rct12/RCT12.h" #include "../../../world/Map.h" namespace OpenRCT2::Scripting From ae6595bf20238cda4195c3a24e52c73ed9639eff Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:08:33 -0300 Subject: [PATCH 04/26] Delete /rct1 folder --- src/openrct2/libopenrct2.vcxproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 8b9a8de8b043..a2bf9e768d90 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -2170,7 +2170,6 @@ - From e36afc7f5dbdddc45ae492aeec7e32471d958051 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:29:44 -0300 Subject: [PATCH 05/26] Move ScenarioPatcher.h --- src/openrct2/{ => compatibility}/rct12/ScenarioPatcher.h | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/openrct2/{ => compatibility}/rct12/ScenarioPatcher.h (100%) diff --git a/src/openrct2/rct12/ScenarioPatcher.h b/src/openrct2/compatibility/rct12/ScenarioPatcher.h similarity index 100% rename from src/openrct2/rct12/ScenarioPatcher.h rename to src/openrct2/compatibility/rct12/ScenarioPatcher.h From a379c69e525a5110ebd54f0ab5247853e4f7b6eb Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:30:17 -0300 Subject: [PATCH 06/26] Delete /rct12 directory --- src/openrct2/libopenrct2.vcxproj | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index a2bf9e768d90..76f92c6a9ccd 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -2168,8 +2168,5 @@ {c453da76-44b3-4ac8-aaa2-2b64a76993a5} - - - From 6d9653ca90b297bb6043c7976230f5284cc7098b Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:34:36 -0300 Subject: [PATCH 07/26] Solve missing Csg.h errors --- src/openrct2/config/Config.cpp | 2 +- src/openrct2/drawing/Drawing.Sprite.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp index 30097e931fb2..b9d3d3c51e09 100644 --- a/src/openrct2/config/Config.cpp +++ b/src/openrct2/config/Config.cpp @@ -9,6 +9,7 @@ #include "Config.h" +#include "../compatibility/rct1/Csg.h" #include "../Context.h" #include "../Date.h" #include "../Diagnostic.h" @@ -29,7 +30,6 @@ #include "../network/Network.h" #include "../paint/VirtualFloor.h" #include "../platform/Platform.h" -#include "../rct1/Csg.h" #include "../ride/Ride.h" #include "../scenario/Scenario.h" #include "../ui/UiContext.h" diff --git a/src/openrct2/drawing/Drawing.Sprite.cpp b/src/openrct2/drawing/Drawing.Sprite.cpp index c4df1000ac52..fab41d2e0f93 100644 --- a/src/openrct2/drawing/Drawing.Sprite.cpp +++ b/src/openrct2/drawing/Drawing.Sprite.cpp @@ -9,6 +9,7 @@ #include "Drawing.h" +#include "../compatibility/rct1/Csg.h" #include "../Context.h" #include "../Diagnostic.h" #include "../OpenRCT2.h" @@ -20,7 +21,6 @@ #include "../core/MemoryStream.h" #include "../core/Path.hpp" #include "../platform/Platform.h" -#include "../rct1/Csg.h" #include "../ui/UiContext.h" #include "ScrollingText.h" From 9929998a5752761191ca264123e7c11b1b5526e5 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:34:36 -0300 Subject: [PATCH 08/26] Solve missing Csg.h errors --- src/openrct2/config/Config.cpp | 2 +- src/openrct2/drawing/Drawing.Sprite.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp index 30097e931fb2..3469422ab759 100644 --- a/src/openrct2/config/Config.cpp +++ b/src/openrct2/config/Config.cpp @@ -14,6 +14,7 @@ #include "../Diagnostic.h" #include "../OpenRCT2.h" #include "../PlatformEnvironment.h" +#include "../compatibility/rct1/Csg.h" #include "../core/Console.hpp" #include "../core/EnumUtils.hpp" #include "../core/File.h" @@ -29,7 +30,6 @@ #include "../network/Network.h" #include "../paint/VirtualFloor.h" #include "../platform/Platform.h" -#include "../rct1/Csg.h" #include "../ride/Ride.h" #include "../scenario/Scenario.h" #include "../ui/UiContext.h" diff --git a/src/openrct2/drawing/Drawing.Sprite.cpp b/src/openrct2/drawing/Drawing.Sprite.cpp index c4df1000ac52..435387148e8f 100644 --- a/src/openrct2/drawing/Drawing.Sprite.cpp +++ b/src/openrct2/drawing/Drawing.Sprite.cpp @@ -14,13 +14,13 @@ #include "../OpenRCT2.h" #include "../PlatformEnvironment.h" #include "../SpriteIds.h" +#include "../compatibility/rct1/Csg.h" #include "../config/Config.h" #include "../core/FileStream.h" #include "../core/Guard.hpp" #include "../core/MemoryStream.h" #include "../core/Path.hpp" #include "../platform/Platform.h" -#include "../rct1/Csg.h" #include "../ui/UiContext.h" #include "ScrollingText.h" From 65be89c4b9a31b73ca9eeef7cf83f66bc4268eb9 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:39:25 -0300 Subject: [PATCH 09/26] Fix missing includes again... --- src/openrct2/config/Config.cpp | 1 - src/openrct2/drawing/Drawing.Sprite.cpp | 1 - 2 files changed, 2 deletions(-) diff --git a/src/openrct2/config/Config.cpp b/src/openrct2/config/Config.cpp index 0f32263afef5..3469422ab759 100644 --- a/src/openrct2/config/Config.cpp +++ b/src/openrct2/config/Config.cpp @@ -9,7 +9,6 @@ #include "Config.h" -#include "../compatibility/rct1/Csg.h" #include "../Context.h" #include "../Date.h" #include "../Diagnostic.h" diff --git a/src/openrct2/drawing/Drawing.Sprite.cpp b/src/openrct2/drawing/Drawing.Sprite.cpp index 39fbb5991339..435387148e8f 100644 --- a/src/openrct2/drawing/Drawing.Sprite.cpp +++ b/src/openrct2/drawing/Drawing.Sprite.cpp @@ -9,7 +9,6 @@ #include "Drawing.h" -#include "../compatibility/rct1/Csg.h" #include "../Context.h" #include "../Diagnostic.h" #include "../OpenRCT2.h" From a45b17a5a363353ffd7e5dce0d83bf9cea2c1cf1 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 18:53:41 -0300 Subject: [PATCH 10/26] Fix missing ScenarioPatcher.h errors --- src/openrct2/compatibility/rct1/S4Importer.cpp | 2 +- src/openrct2/compatibility/rct12/ScenarioPatcher.cpp | 2 +- src/openrct2/compatibility/rct2/S6Importer.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/openrct2/compatibility/rct1/S4Importer.cpp b/src/openrct2/compatibility/rct1/S4Importer.cpp index 6a5753e3fffa..5d439762e200 100644 --- a/src/openrct2/compatibility/rct1/S4Importer.cpp +++ b/src/openrct2/compatibility/rct1/S4Importer.cpp @@ -45,7 +45,6 @@ #include "../../object/ScenarioMetaObject.h" #include "../../park/Legacy.h" #include "../../peep/RideUseSystem.h" -#include "../../rct12/ScenarioPatcher.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" #include "../../ride/RideManager.hpp" @@ -75,6 +74,7 @@ #include "../../world/tile_element/WallElement.h" #include "../rct12/CSStringConverter.h" #include "../rct12/EntryList.h" +#include "../rct12/ScenarioPatcher.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp b/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp index e715cf76315c..91ae3082e116 100644 --- a/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp +++ b/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../../rct12/ScenarioPatcher.h" +#include "../rct12/ScenarioPatcher.h" #include "../../Context.h" #include "../../Game.h" diff --git a/src/openrct2/compatibility/rct2/S6Importer.cpp b/src/openrct2/compatibility/rct2/S6Importer.cpp index 77e316cf2c7d..78c2aa48fbd2 100644 --- a/src/openrct2/compatibility/rct2/S6Importer.cpp +++ b/src/openrct2/compatibility/rct2/S6Importer.cpp @@ -32,7 +32,6 @@ #include "../../park/Legacy.h" #include "../../park/ParkPreview.h" #include "../../peep/RideUseSystem.h" -#include "../../rct12/ScenarioPatcher.h" #include "../../rct2/RCT2.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" @@ -60,6 +59,7 @@ #include "../rct12/CSStringConverter.h" #include "../rct12/EntryList.h" #include "../rct12/RCT12.h" +#include "../rct12/ScenarioPatcher.h" #include From e3ca1ead93f1c0294d186ddb9b1b64bff101c794 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 19:01:09 -0300 Subject: [PATCH 11/26] Update include path used by ScenarioPatcher.h --- src/openrct2/compatibility/rct12/ScenarioPatcher.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/compatibility/rct12/ScenarioPatcher.h b/src/openrct2/compatibility/rct12/ScenarioPatcher.h index b613824e3e4b..089d2fef2782 100644 --- a/src/openrct2/compatibility/rct12/ScenarioPatcher.h +++ b/src/openrct2/compatibility/rct12/ScenarioPatcher.h @@ -9,7 +9,7 @@ #pragma once -#include "../core/StringTypes.h" +#include "../../core/StringTypes.h" namespace OpenRCT2::RCT12 { From 41347d60e3a2fa44e3784c529d1d8b9ac37f641d Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 19:13:01 -0300 Subject: [PATCH 12/26] Fix openrct2-ui project include errors --- src/openrct2-ui/WindowManager.cpp | 2 +- src/openrct2-ui/interface/FileBrowser.cpp | 2 +- src/openrct2-ui/windows/LoadSave.cpp | 1 - src/openrct2-ui/windows/Options.cpp | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/openrct2-ui/WindowManager.cpp b/src/openrct2-ui/WindowManager.cpp index 2ba5bece6752..8d4ff668323c 100644 --- a/src/openrct2-ui/WindowManager.cpp +++ b/src/openrct2-ui/WindowManager.cpp @@ -25,13 +25,13 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include #include #include diff --git a/src/openrct2-ui/interface/FileBrowser.cpp b/src/openrct2-ui/interface/FileBrowser.cpp index bff761d54e4d..865a81dfece7 100644 --- a/src/openrct2-ui/interface/FileBrowser.cpp +++ b/src/openrct2-ui/interface/FileBrowser.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -24,7 +25,6 @@ #include #include #include -#include #include #include #include diff --git a/src/openrct2-ui/windows/LoadSave.cpp b/src/openrct2-ui/windows/LoadSave.cpp index 4dbad2392e2e..fbf8143c2357 100644 --- a/src/openrct2-ui/windows/LoadSave.cpp +++ b/src/openrct2-ui/windows/LoadSave.cpp @@ -41,7 +41,6 @@ #include #include #include -#include #include #include #include diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index 8ff2845c75da..25b3421aa34f 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include @@ -40,7 +41,6 @@ #include #include #include -#include #include #include #include From bef1c60a82975e9071f8a8fb2e77647fd1269339 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 19:24:54 -0300 Subject: [PATCH 13/26] Fix include errors in tests project --- test/tests/LocalisationTest.cpp | 2 +- test/tests/ScenarioPatcherTests.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/tests/LocalisationTest.cpp b/test/tests/LocalisationTest.cpp index 5e0fa06de5a7..011527c9db8b 100644 --- a/test/tests/LocalisationTest.cpp +++ b/test/tests/LocalisationTest.cpp @@ -9,7 +9,7 @@ #include "helpers/StringHelpers.hpp" #include "openrct2/localisation/Language.h" -#include "openrct2/rct12/CSStringConverter.h" +#include "openrct2/compatibility/rct12/CSStringConverter.h" #include diff --git a/test/tests/ScenarioPatcherTests.cpp b/test/tests/ScenarioPatcherTests.cpp index 9f0d6ffe8018..ab6c984c53fd 100644 --- a/test/tests/ScenarioPatcherTests.cpp +++ b/test/tests/ScenarioPatcherTests.cpp @@ -13,10 +13,10 @@ #include #include #include +#include #include #include #include -#include /* Test that all JSONs are with the expected formatting, otherwise the fetcher will abort NOTE: This will *not* test that it actually applies the patch, due to the scenarios From 33612394838ec2b093c0014e2f3bbc214e314f28 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 19:24:54 -0300 Subject: [PATCH 14/26] Fix include errors in tests project --- test/tests/LocalisationTest.cpp | 2 +- test/tests/ScenarioPatcherTests.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/tests/LocalisationTest.cpp b/test/tests/LocalisationTest.cpp index 5e0fa06de5a7..272ccd648a63 100644 --- a/test/tests/LocalisationTest.cpp +++ b/test/tests/LocalisationTest.cpp @@ -8,8 +8,8 @@ *****************************************************************************/ #include "helpers/StringHelpers.hpp" +#include "openrct2/compatibility/rct12/CSStringConverter.h" #include "openrct2/localisation/Language.h" -#include "openrct2/rct12/CSStringConverter.h" #include diff --git a/test/tests/ScenarioPatcherTests.cpp b/test/tests/ScenarioPatcherTests.cpp index 9f0d6ffe8018..ab6c984c53fd 100644 --- a/test/tests/ScenarioPatcherTests.cpp +++ b/test/tests/ScenarioPatcherTests.cpp @@ -13,10 +13,10 @@ #include #include #include +#include #include #include #include -#include /* Test that all JSONs are with the expected formatting, otherwise the fetcher will abort NOTE: This will *not* test that it actually applies the patch, due to the scenarios From f74fd747fcae7c1e6da8516f72d5766d29dee8cb Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 23:09:51 -0300 Subject: [PATCH 15/26] Rename /rct12 to /shared --- src/openrct2/Game.cpp | 2 +- src/openrct2/compatibility/rct1/Limits.h | 2 +- src/openrct2/compatibility/rct1/RCT1.h | 2 +- .../compatibility/rct1/S4Importer.cpp | 6 +++--- .../compatibility/rct1/T4Importer.cpp | 2 +- src/openrct2/compatibility/rct2/Limits.h | 2 +- .../compatibility/rct2/S6Importer.cpp | 8 ++++---- .../compatibility/rct2/T6Exporter.cpp | 2 +- .../compatibility/rct2/T6Importer.cpp | 2 +- .../compatibility/{rct12 => shared}/CSChar.h | 0 .../{rct12 => shared}/CSStringConverter.cpp | 0 .../{rct12 => shared}/CSStringConverter.h | 0 .../{rct12 => shared}/EntryList.h | 0 .../compatibility/{rct12 => shared}/Limits.h | 0 .../compatibility/{rct12 => shared}/RCT12.cpp | 0 .../compatibility/{rct12 => shared}/RCT12.h | 0 .../{rct12 => shared}/ScenarioPatcher.cpp | 2 +- .../{rct12 => shared}/ScenarioPatcher.h | 0 .../compatibility/{rct12 => shared}/TD46.cpp | 0 .../compatibility/{rct12 => shared}/TD46.h | 0 src/openrct2/drawing/Font.cpp | 2 +- src/openrct2/entity/EntityList.h | 2 +- src/openrct2/libopenrct2.vcxproj | 20 +++++++++---------- src/openrct2/object/PeepAnimationsObject.cpp | 2 +- src/openrct2/object/StringTable.cpp | 2 +- src/openrct2/park/Legacy.cpp | 2 +- src/openrct2/rct2/RCT2.h | 2 +- src/openrct2/ride/CableLift.cpp | 2 +- src/openrct2/ride/Vehicle.cpp | 2 +- src/openrct2/scenario/Scenario.cpp | 2 +- src/openrct2/scenario/ScenarioRepository.cpp | 4 ++-- .../scripting/bindings/entity/ScStaff.cpp | 2 +- test/tests/LocalisationTest.cpp | 2 +- test/tests/ScenarioPatcherTests.cpp | 2 +- 34 files changed, 39 insertions(+), 39 deletions(-) rename src/openrct2/compatibility/{rct12 => shared}/CSChar.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/CSStringConverter.cpp (100%) rename src/openrct2/compatibility/{rct12 => shared}/CSStringConverter.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/EntryList.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/Limits.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/RCT12.cpp (100%) rename src/openrct2/compatibility/{rct12 => shared}/RCT12.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/ScenarioPatcher.cpp (99%) rename src/openrct2/compatibility/{rct12 => shared}/ScenarioPatcher.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/TD46.cpp (100%) rename src/openrct2/compatibility/{rct12 => shared}/TD46.h (100%) diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index c56cbfe27e37..da18f08e0e3c 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -24,7 +24,7 @@ #include "actions/GameSetSpeedAction.h" #include "actions/LoadOrQuitAction.h" #include "audio/Audio.h" -#include "compatibility/rct12/CSStringConverter.h" +#include "compatibility/shared/CSStringConverter.h" #include "config/Config.h" #include "core/Console.hpp" #include "core/File.h" diff --git a/src/openrct2/compatibility/rct1/Limits.h b/src/openrct2/compatibility/rct1/Limits.h index 5afb75c6180a..be449f86efcc 100644 --- a/src/openrct2/compatibility/rct1/Limits.h +++ b/src/openrct2/compatibility/rct1/Limits.h @@ -8,7 +8,7 @@ *****************************************************************************/ #pragma once -#include "../rct12/Limits.h" +#include "../shared/Limits.h" namespace OpenRCT2::RCT1::Limits { diff --git a/src/openrct2/compatibility/rct1/RCT1.h b/src/openrct2/compatibility/rct1/RCT1.h index b95f3211f05f..973179b45d83 100644 --- a/src/openrct2/compatibility/rct1/RCT1.h +++ b/src/openrct2/compatibility/rct1/RCT1.h @@ -13,7 +13,7 @@ #include "../../ride/Angles.h" #include "../../ride/RideRatings.h" #include "../../world/ParkData.h" -#include "../rct12/RCT12.h" +#include "../shared/RCT12.h" #include "Limits.h" enum class MechanicStatus : uint8_t; diff --git a/src/openrct2/compatibility/rct1/S4Importer.cpp b/src/openrct2/compatibility/rct1/S4Importer.cpp index 5d439762e200..b6c1fb42136b 100644 --- a/src/openrct2/compatibility/rct1/S4Importer.cpp +++ b/src/openrct2/compatibility/rct1/S4Importer.cpp @@ -72,9 +72,9 @@ #include "../../world/tile_element/TileElement.h" #include "../../world/tile_element/TrackElement.h" #include "../../world/tile_element/WallElement.h" -#include "../rct12/CSStringConverter.h" -#include "../rct12/EntryList.h" -#include "../rct12/ScenarioPatcher.h" +#include "../shared/CSStringConverter.h" +#include "../shared/EntryList.h" +#include "../shared/ScenarioPatcher.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/compatibility/rct1/T4Importer.cpp b/src/openrct2/compatibility/rct1/T4Importer.cpp index 5824515031a9..7a576920c435 100644 --- a/src/openrct2/compatibility/rct1/T4Importer.cpp +++ b/src/openrct2/compatibility/rct1/T4Importer.cpp @@ -18,7 +18,7 @@ #include "../../ride/TrackDesign.h" #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkReader.h" -#include "../rct12/TD46.h" +#include "../shared/TD46.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/compatibility/rct2/Limits.h b/src/openrct2/compatibility/rct2/Limits.h index f49e32c33b9b..c0706e67095b 100644 --- a/src/openrct2/compatibility/rct2/Limits.h +++ b/src/openrct2/compatibility/rct2/Limits.h @@ -8,7 +8,7 @@ *****************************************************************************/ #pragma once -#include "../rct12/Limits.h" +#include "../shared/Limits.h" namespace OpenRCT2::RCT2::Limits { diff --git a/src/openrct2/compatibility/rct2/S6Importer.cpp b/src/openrct2/compatibility/rct2/S6Importer.cpp index 78c2aa48fbd2..e8af345d3844 100644 --- a/src/openrct2/compatibility/rct2/S6Importer.cpp +++ b/src/openrct2/compatibility/rct2/S6Importer.cpp @@ -56,10 +56,10 @@ #include "../../world/tile_element/TileElement.h" #include "../../world/tile_element/TrackElement.h" #include "../../world/tile_element/WallElement.h" -#include "../rct12/CSStringConverter.h" -#include "../rct12/EntryList.h" -#include "../rct12/RCT12.h" -#include "../rct12/ScenarioPatcher.h" +#include "../shared/CSStringConverter.h" +#include "../shared/EntryList.h" +#include "../shared/RCT12.h" +#include "../shared/ScenarioPatcher.h" #include diff --git a/src/openrct2/compatibility/rct2/T6Exporter.cpp b/src/openrct2/compatibility/rct2/T6Exporter.cpp index 0208bfbc0a96..40d36e310fdd 100644 --- a/src/openrct2/compatibility/rct2/T6Exporter.cpp +++ b/src/openrct2/compatibility/rct2/T6Exporter.cpp @@ -25,7 +25,7 @@ #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkWriter.h" #include "../../windows/Intent.h" -#include "../rct12/TD46.h" +#include "../shared/TD46.h" #include diff --git a/src/openrct2/compatibility/rct2/T6Importer.cpp b/src/openrct2/compatibility/rct2/T6Importer.cpp index 1d6b4551876b..3a172a7d8fb1 100644 --- a/src/openrct2/compatibility/rct2/T6Importer.cpp +++ b/src/openrct2/compatibility/rct2/T6Importer.cpp @@ -21,7 +21,7 @@ #include "../../ride/TrackDesign.h" #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkReader.h" -#include "../rct12/TD46.h" +#include "../shared/TD46.h" #include diff --git a/src/openrct2/compatibility/rct12/CSChar.h b/src/openrct2/compatibility/shared/CSChar.h similarity index 100% rename from src/openrct2/compatibility/rct12/CSChar.h rename to src/openrct2/compatibility/shared/CSChar.h diff --git a/src/openrct2/compatibility/rct12/CSStringConverter.cpp b/src/openrct2/compatibility/shared/CSStringConverter.cpp similarity index 100% rename from src/openrct2/compatibility/rct12/CSStringConverter.cpp rename to src/openrct2/compatibility/shared/CSStringConverter.cpp diff --git a/src/openrct2/compatibility/rct12/CSStringConverter.h b/src/openrct2/compatibility/shared/CSStringConverter.h similarity index 100% rename from src/openrct2/compatibility/rct12/CSStringConverter.h rename to src/openrct2/compatibility/shared/CSStringConverter.h diff --git a/src/openrct2/compatibility/rct12/EntryList.h b/src/openrct2/compatibility/shared/EntryList.h similarity index 100% rename from src/openrct2/compatibility/rct12/EntryList.h rename to src/openrct2/compatibility/shared/EntryList.h diff --git a/src/openrct2/compatibility/rct12/Limits.h b/src/openrct2/compatibility/shared/Limits.h similarity index 100% rename from src/openrct2/compatibility/rct12/Limits.h rename to src/openrct2/compatibility/shared/Limits.h diff --git a/src/openrct2/compatibility/rct12/RCT12.cpp b/src/openrct2/compatibility/shared/RCT12.cpp similarity index 100% rename from src/openrct2/compatibility/rct12/RCT12.cpp rename to src/openrct2/compatibility/shared/RCT12.cpp diff --git a/src/openrct2/compatibility/rct12/RCT12.h b/src/openrct2/compatibility/shared/RCT12.h similarity index 100% rename from src/openrct2/compatibility/rct12/RCT12.h rename to src/openrct2/compatibility/shared/RCT12.h diff --git a/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp b/src/openrct2/compatibility/shared/ScenarioPatcher.cpp similarity index 99% rename from src/openrct2/compatibility/rct12/ScenarioPatcher.cpp rename to src/openrct2/compatibility/shared/ScenarioPatcher.cpp index 91ae3082e116..762308c1daf5 100644 --- a/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp +++ b/src/openrct2/compatibility/shared/ScenarioPatcher.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../rct12/ScenarioPatcher.h" +#include "../shared/ScenarioPatcher.h" #include "../../Context.h" #include "../../Game.h" diff --git a/src/openrct2/compatibility/rct12/ScenarioPatcher.h b/src/openrct2/compatibility/shared/ScenarioPatcher.h similarity index 100% rename from src/openrct2/compatibility/rct12/ScenarioPatcher.h rename to src/openrct2/compatibility/shared/ScenarioPatcher.h diff --git a/src/openrct2/compatibility/rct12/TD46.cpp b/src/openrct2/compatibility/shared/TD46.cpp similarity index 100% rename from src/openrct2/compatibility/rct12/TD46.cpp rename to src/openrct2/compatibility/shared/TD46.cpp diff --git a/src/openrct2/compatibility/rct12/TD46.h b/src/openrct2/compatibility/shared/TD46.h similarity index 100% rename from src/openrct2/compatibility/rct12/TD46.h rename to src/openrct2/compatibility/shared/TD46.h diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index b631343766ac..9f7b46eab1a7 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -11,7 +11,7 @@ #include "../Diagnostic.h" #include "../SpriteIds.h" -#include "../compatibility/rct12/CSChar.h" +#include "../compatibility/shared/CSChar.h" #include "../core/EnumUtils.hpp" #include "../core/UTF8.h" #include "../core/UnicodeChar.h" diff --git a/src/openrct2/entity/EntityList.h b/src/openrct2/entity/EntityList.h index efccaf691a7e..edfa5bdbc2ed 100644 --- a/src/openrct2/entity/EntityList.h +++ b/src/openrct2/entity/EntityList.h @@ -10,7 +10,7 @@ #pragma once #include "../GameState.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../world/Location.hpp" #include "EntityBase.h" #include "EntityRegistry.h" diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 76f92c6a9ccd..51df65b052c9 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,12 +176,12 @@ - - - - - - + + + + + + @@ -790,7 +790,7 @@ - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -871,7 +871,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -952,7 +952,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -1033,7 +1033,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 diff --git a/src/openrct2/object/PeepAnimationsObject.cpp b/src/openrct2/object/PeepAnimationsObject.cpp index d2046b7db062..5b49f6abaa2d 100644 --- a/src/openrct2/object/PeepAnimationsObject.cpp +++ b/src/openrct2/object/PeepAnimationsObject.cpp @@ -11,7 +11,7 @@ #include "../Context.h" #include "../PlatformEnvironment.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../core/EnumMap.hpp" #include "../core/Guard.hpp" #include "../core/Json.hpp" diff --git a/src/openrct2/object/StringTable.cpp b/src/openrct2/object/StringTable.cpp index 3963318d9e81..517c354dbd18 100644 --- a/src/openrct2/object/StringTable.cpp +++ b/src/openrct2/object/StringTable.cpp @@ -10,7 +10,7 @@ #include "StringTable.h" #include "../Context.h" -#include "../compatibility/rct12/CSStringConverter.h" +#include "../compatibility/shared/CSStringConverter.h" #include "../core/EnumUtils.hpp" #include "../core/Guard.hpp" #include "../core/IStream.hpp" diff --git a/src/openrct2/park/Legacy.cpp b/src/openrct2/park/Legacy.cpp index 9ba05727b5ab..f104fea58624 100644 --- a/src/openrct2/park/Legacy.cpp +++ b/src/openrct2/park/Legacy.cpp @@ -11,7 +11,7 @@ #include "../Context.h" #include "../Diagnostic.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../entity/EntityList.h" #include "../entity/Guest.h" #include "../entity/Staff.h" diff --git a/src/openrct2/rct2/RCT2.h b/src/openrct2/rct2/RCT2.h index 87cd6e2b4cf9..3daead6eaa7d 100644 --- a/src/openrct2/rct2/RCT2.h +++ b/src/openrct2/rct2/RCT2.h @@ -9,7 +9,7 @@ #pragma once -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../compatibility/rct2/Limits.h" #include "../core/FileSystem.hpp" #include "../core/FixedPoint.hpp" diff --git a/src/openrct2/ride/CableLift.cpp b/src/openrct2/ride/CableLift.cpp index dc1f44a23812..51d8a85037e1 100644 --- a/src/openrct2/ride/CableLift.cpp +++ b/src/openrct2/ride/CableLift.cpp @@ -10,7 +10,7 @@ #include "CableLift.h" #include "../audio/Audio.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../entity/EntityList.h" #include "../util/Util.h" #include "../world/Map.h" diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index c81a2548b6aa..1f2d50e57047 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -16,7 +16,7 @@ #include "../OpenRCT2.h" #include "../actions/RideSetStatusAction.h" #include "../audio/Audio.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../config/Config.h" #include "../core/EnumUtils.hpp" #include "../core/FixedPoint.hpp" diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index 20c529c60728..27bbca13ed9b 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -21,7 +21,7 @@ #include "../actions/ResultWithMessage.h" #include "../audio/Audio.h" #include "../compatibility/rct1/RCT1.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../config/Config.h" #include "../core/BitSet.hpp" #include "../core/EnumUtils.hpp" diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index 1505a94b35b8..c24dd43787f1 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -14,8 +14,8 @@ #include "../Game.h" #include "../ParkImporter.h" #include "../PlatformEnvironment.h" -#include "../compatibility/rct12/CSStringConverter.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/CSStringConverter.h" +#include "../compatibility/shared/RCT12.h" #include "../config/Config.h" #include "../core/Console.hpp" #include "../core/File.h" diff --git a/src/openrct2/scripting/bindings/entity/ScStaff.cpp b/src/openrct2/scripting/bindings/entity/ScStaff.cpp index dcfbf4d4abe9..fedf98a2787b 100644 --- a/src/openrct2/scripting/bindings/entity/ScStaff.cpp +++ b/src/openrct2/scripting/bindings/entity/ScStaff.cpp @@ -11,7 +11,7 @@ #include "ScStaff.hpp" - #include "../../../compatibility/rct12/RCT12.h" + #include "../../../compatibility/shared/RCT12.h" #include "../../../entity/PatrolArea.h" #include "../../../entity/Staff.h" #include "../../../object/ObjectManager.h" diff --git a/test/tests/LocalisationTest.cpp b/test/tests/LocalisationTest.cpp index 272ccd648a63..3cf2b2f0b76f 100644 --- a/test/tests/LocalisationTest.cpp +++ b/test/tests/LocalisationTest.cpp @@ -8,7 +8,7 @@ *****************************************************************************/ #include "helpers/StringHelpers.hpp" -#include "openrct2/compatibility/rct12/CSStringConverter.h" +#include "openrct2/compatibility/shared/CSStringConverter.h" #include "openrct2/localisation/Language.h" #include diff --git a/test/tests/ScenarioPatcherTests.cpp b/test/tests/ScenarioPatcherTests.cpp index ab6c984c53fd..c031d22853ec 100644 --- a/test/tests/ScenarioPatcherTests.cpp +++ b/test/tests/ScenarioPatcherTests.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include From f777cda60fd9898ee07b425a05b95354d1c6f55f Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Fri, 9 Jan 2026 23:09:51 -0300 Subject: [PATCH 16/26] Rename /rct12 to /shared --- src/openrct2/Game.cpp | 2 +- src/openrct2/compatibility/rct1/Limits.h | 2 +- src/openrct2/compatibility/rct1/RCT1.h | 2 +- .../compatibility/rct1/S4Importer.cpp | 6 +++--- .../compatibility/rct1/T4Importer.cpp | 2 +- src/openrct2/compatibility/rct2/Limits.h | 2 +- .../compatibility/rct2/S6Importer.cpp | 8 ++++---- .../compatibility/rct2/T6Exporter.cpp | 2 +- .../compatibility/rct2/T6Importer.cpp | 2 +- .../compatibility/{rct12 => shared}/CSChar.h | 0 .../{rct12 => shared}/CSStringConverter.cpp | 0 .../{rct12 => shared}/CSStringConverter.h | 0 .../{rct12 => shared}/EntryList.h | 0 .../compatibility/{rct12 => shared}/Limits.h | 0 .../compatibility/{rct12 => shared}/RCT12.cpp | 0 .../compatibility/{rct12 => shared}/RCT12.h | 0 .../{rct12 => shared}/ScenarioPatcher.cpp | 2 +- .../{rct12 => shared}/ScenarioPatcher.h | 0 .../compatibility/{rct12 => shared}/TD46.cpp | 0 .../compatibility/{rct12 => shared}/TD46.h | 0 src/openrct2/drawing/Font.cpp | 2 +- src/openrct2/entity/EntityList.h | 2 +- src/openrct2/libopenrct2.vcxproj | 20 +++++++++---------- src/openrct2/object/PeepAnimationsObject.cpp | 2 +- src/openrct2/object/StringTable.cpp | 2 +- src/openrct2/park/Legacy.cpp | 2 +- src/openrct2/rct2/RCT2.h | 2 +- src/openrct2/ride/CableLift.cpp | 2 +- src/openrct2/ride/Vehicle.cpp | 2 +- src/openrct2/scenario/Scenario.cpp | 2 +- src/openrct2/scenario/ScenarioRepository.cpp | 4 ++-- .../scripting/bindings/entity/ScStaff.cpp | 2 +- test/tests/LocalisationTest.cpp | 2 +- test/tests/ScenarioPatcherTests.cpp | 2 +- 34 files changed, 39 insertions(+), 39 deletions(-) rename src/openrct2/compatibility/{rct12 => shared}/CSChar.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/CSStringConverter.cpp (100%) rename src/openrct2/compatibility/{rct12 => shared}/CSStringConverter.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/EntryList.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/Limits.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/RCT12.cpp (100%) rename src/openrct2/compatibility/{rct12 => shared}/RCT12.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/ScenarioPatcher.cpp (99%) rename src/openrct2/compatibility/{rct12 => shared}/ScenarioPatcher.h (100%) rename src/openrct2/compatibility/{rct12 => shared}/TD46.cpp (100%) rename src/openrct2/compatibility/{rct12 => shared}/TD46.h (100%) diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index c56cbfe27e37..da18f08e0e3c 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -24,7 +24,7 @@ #include "actions/GameSetSpeedAction.h" #include "actions/LoadOrQuitAction.h" #include "audio/Audio.h" -#include "compatibility/rct12/CSStringConverter.h" +#include "compatibility/shared/CSStringConverter.h" #include "config/Config.h" #include "core/Console.hpp" #include "core/File.h" diff --git a/src/openrct2/compatibility/rct1/Limits.h b/src/openrct2/compatibility/rct1/Limits.h index 5afb75c6180a..be449f86efcc 100644 --- a/src/openrct2/compatibility/rct1/Limits.h +++ b/src/openrct2/compatibility/rct1/Limits.h @@ -8,7 +8,7 @@ *****************************************************************************/ #pragma once -#include "../rct12/Limits.h" +#include "../shared/Limits.h" namespace OpenRCT2::RCT1::Limits { diff --git a/src/openrct2/compatibility/rct1/RCT1.h b/src/openrct2/compatibility/rct1/RCT1.h index b95f3211f05f..973179b45d83 100644 --- a/src/openrct2/compatibility/rct1/RCT1.h +++ b/src/openrct2/compatibility/rct1/RCT1.h @@ -13,7 +13,7 @@ #include "../../ride/Angles.h" #include "../../ride/RideRatings.h" #include "../../world/ParkData.h" -#include "../rct12/RCT12.h" +#include "../shared/RCT12.h" #include "Limits.h" enum class MechanicStatus : uint8_t; diff --git a/src/openrct2/compatibility/rct1/S4Importer.cpp b/src/openrct2/compatibility/rct1/S4Importer.cpp index 5d439762e200..b6c1fb42136b 100644 --- a/src/openrct2/compatibility/rct1/S4Importer.cpp +++ b/src/openrct2/compatibility/rct1/S4Importer.cpp @@ -72,9 +72,9 @@ #include "../../world/tile_element/TileElement.h" #include "../../world/tile_element/TrackElement.h" #include "../../world/tile_element/WallElement.h" -#include "../rct12/CSStringConverter.h" -#include "../rct12/EntryList.h" -#include "../rct12/ScenarioPatcher.h" +#include "../shared/CSStringConverter.h" +#include "../shared/EntryList.h" +#include "../shared/ScenarioPatcher.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/compatibility/rct1/T4Importer.cpp b/src/openrct2/compatibility/rct1/T4Importer.cpp index 5824515031a9..7a576920c435 100644 --- a/src/openrct2/compatibility/rct1/T4Importer.cpp +++ b/src/openrct2/compatibility/rct1/T4Importer.cpp @@ -18,7 +18,7 @@ #include "../../ride/TrackDesign.h" #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkReader.h" -#include "../rct12/TD46.h" +#include "../shared/TD46.h" #include "RCT1.h" #include "Tables.h" diff --git a/src/openrct2/compatibility/rct2/Limits.h b/src/openrct2/compatibility/rct2/Limits.h index f49e32c33b9b..c0706e67095b 100644 --- a/src/openrct2/compatibility/rct2/Limits.h +++ b/src/openrct2/compatibility/rct2/Limits.h @@ -8,7 +8,7 @@ *****************************************************************************/ #pragma once -#include "../rct12/Limits.h" +#include "../shared/Limits.h" namespace OpenRCT2::RCT2::Limits { diff --git a/src/openrct2/compatibility/rct2/S6Importer.cpp b/src/openrct2/compatibility/rct2/S6Importer.cpp index 78c2aa48fbd2..e8af345d3844 100644 --- a/src/openrct2/compatibility/rct2/S6Importer.cpp +++ b/src/openrct2/compatibility/rct2/S6Importer.cpp @@ -56,10 +56,10 @@ #include "../../world/tile_element/TileElement.h" #include "../../world/tile_element/TrackElement.h" #include "../../world/tile_element/WallElement.h" -#include "../rct12/CSStringConverter.h" -#include "../rct12/EntryList.h" -#include "../rct12/RCT12.h" -#include "../rct12/ScenarioPatcher.h" +#include "../shared/CSStringConverter.h" +#include "../shared/EntryList.h" +#include "../shared/RCT12.h" +#include "../shared/ScenarioPatcher.h" #include diff --git a/src/openrct2/compatibility/rct2/T6Exporter.cpp b/src/openrct2/compatibility/rct2/T6Exporter.cpp index 0208bfbc0a96..40d36e310fdd 100644 --- a/src/openrct2/compatibility/rct2/T6Exporter.cpp +++ b/src/openrct2/compatibility/rct2/T6Exporter.cpp @@ -25,7 +25,7 @@ #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkWriter.h" #include "../../windows/Intent.h" -#include "../rct12/TD46.h" +#include "../shared/TD46.h" #include diff --git a/src/openrct2/compatibility/rct2/T6Importer.cpp b/src/openrct2/compatibility/rct2/T6Importer.cpp index 1d6b4551876b..3a172a7d8fb1 100644 --- a/src/openrct2/compatibility/rct2/T6Importer.cpp +++ b/src/openrct2/compatibility/rct2/T6Importer.cpp @@ -21,7 +21,7 @@ #include "../../ride/TrackDesign.h" #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkReader.h" -#include "../rct12/TD46.h" +#include "../shared/TD46.h" #include diff --git a/src/openrct2/compatibility/rct12/CSChar.h b/src/openrct2/compatibility/shared/CSChar.h similarity index 100% rename from src/openrct2/compatibility/rct12/CSChar.h rename to src/openrct2/compatibility/shared/CSChar.h diff --git a/src/openrct2/compatibility/rct12/CSStringConverter.cpp b/src/openrct2/compatibility/shared/CSStringConverter.cpp similarity index 100% rename from src/openrct2/compatibility/rct12/CSStringConverter.cpp rename to src/openrct2/compatibility/shared/CSStringConverter.cpp diff --git a/src/openrct2/compatibility/rct12/CSStringConverter.h b/src/openrct2/compatibility/shared/CSStringConverter.h similarity index 100% rename from src/openrct2/compatibility/rct12/CSStringConverter.h rename to src/openrct2/compatibility/shared/CSStringConverter.h diff --git a/src/openrct2/compatibility/rct12/EntryList.h b/src/openrct2/compatibility/shared/EntryList.h similarity index 100% rename from src/openrct2/compatibility/rct12/EntryList.h rename to src/openrct2/compatibility/shared/EntryList.h diff --git a/src/openrct2/compatibility/rct12/Limits.h b/src/openrct2/compatibility/shared/Limits.h similarity index 100% rename from src/openrct2/compatibility/rct12/Limits.h rename to src/openrct2/compatibility/shared/Limits.h diff --git a/src/openrct2/compatibility/rct12/RCT12.cpp b/src/openrct2/compatibility/shared/RCT12.cpp similarity index 100% rename from src/openrct2/compatibility/rct12/RCT12.cpp rename to src/openrct2/compatibility/shared/RCT12.cpp diff --git a/src/openrct2/compatibility/rct12/RCT12.h b/src/openrct2/compatibility/shared/RCT12.h similarity index 100% rename from src/openrct2/compatibility/rct12/RCT12.h rename to src/openrct2/compatibility/shared/RCT12.h diff --git a/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp b/src/openrct2/compatibility/shared/ScenarioPatcher.cpp similarity index 99% rename from src/openrct2/compatibility/rct12/ScenarioPatcher.cpp rename to src/openrct2/compatibility/shared/ScenarioPatcher.cpp index 91ae3082e116..762308c1daf5 100644 --- a/src/openrct2/compatibility/rct12/ScenarioPatcher.cpp +++ b/src/openrct2/compatibility/shared/ScenarioPatcher.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../rct12/ScenarioPatcher.h" +#include "../shared/ScenarioPatcher.h" #include "../../Context.h" #include "../../Game.h" diff --git a/src/openrct2/compatibility/rct12/ScenarioPatcher.h b/src/openrct2/compatibility/shared/ScenarioPatcher.h similarity index 100% rename from src/openrct2/compatibility/rct12/ScenarioPatcher.h rename to src/openrct2/compatibility/shared/ScenarioPatcher.h diff --git a/src/openrct2/compatibility/rct12/TD46.cpp b/src/openrct2/compatibility/shared/TD46.cpp similarity index 100% rename from src/openrct2/compatibility/rct12/TD46.cpp rename to src/openrct2/compatibility/shared/TD46.cpp diff --git a/src/openrct2/compatibility/rct12/TD46.h b/src/openrct2/compatibility/shared/TD46.h similarity index 100% rename from src/openrct2/compatibility/rct12/TD46.h rename to src/openrct2/compatibility/shared/TD46.h diff --git a/src/openrct2/drawing/Font.cpp b/src/openrct2/drawing/Font.cpp index b631343766ac..9f7b46eab1a7 100644 --- a/src/openrct2/drawing/Font.cpp +++ b/src/openrct2/drawing/Font.cpp @@ -11,7 +11,7 @@ #include "../Diagnostic.h" #include "../SpriteIds.h" -#include "../compatibility/rct12/CSChar.h" +#include "../compatibility/shared/CSChar.h" #include "../core/EnumUtils.hpp" #include "../core/UTF8.h" #include "../core/UnicodeChar.h" diff --git a/src/openrct2/entity/EntityList.h b/src/openrct2/entity/EntityList.h index efccaf691a7e..edfa5bdbc2ed 100644 --- a/src/openrct2/entity/EntityList.h +++ b/src/openrct2/entity/EntityList.h @@ -10,7 +10,7 @@ #pragma once #include "../GameState.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../world/Location.hpp" #include "EntityBase.h" #include "EntityRegistry.h" diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 76f92c6a9ccd..51df65b052c9 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,12 +176,12 @@ - - - - - - + + + + + + @@ -790,7 +790,7 @@ - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -871,7 +871,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -952,7 +952,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 @@ -1033,7 +1033,7 @@ false true - + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; 4263;4265;4548;4549;4555 diff --git a/src/openrct2/object/PeepAnimationsObject.cpp b/src/openrct2/object/PeepAnimationsObject.cpp index d2046b7db062..5b49f6abaa2d 100644 --- a/src/openrct2/object/PeepAnimationsObject.cpp +++ b/src/openrct2/object/PeepAnimationsObject.cpp @@ -11,7 +11,7 @@ #include "../Context.h" #include "../PlatformEnvironment.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../core/EnumMap.hpp" #include "../core/Guard.hpp" #include "../core/Json.hpp" diff --git a/src/openrct2/object/StringTable.cpp b/src/openrct2/object/StringTable.cpp index 3963318d9e81..517c354dbd18 100644 --- a/src/openrct2/object/StringTable.cpp +++ b/src/openrct2/object/StringTable.cpp @@ -10,7 +10,7 @@ #include "StringTable.h" #include "../Context.h" -#include "../compatibility/rct12/CSStringConverter.h" +#include "../compatibility/shared/CSStringConverter.h" #include "../core/EnumUtils.hpp" #include "../core/Guard.hpp" #include "../core/IStream.hpp" diff --git a/src/openrct2/park/Legacy.cpp b/src/openrct2/park/Legacy.cpp index 9ba05727b5ab..f104fea58624 100644 --- a/src/openrct2/park/Legacy.cpp +++ b/src/openrct2/park/Legacy.cpp @@ -11,7 +11,7 @@ #include "../Context.h" #include "../Diagnostic.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../entity/EntityList.h" #include "../entity/Guest.h" #include "../entity/Staff.h" diff --git a/src/openrct2/rct2/RCT2.h b/src/openrct2/rct2/RCT2.h index 87cd6e2b4cf9..ad8f3abadbd1 100644 --- a/src/openrct2/rct2/RCT2.h +++ b/src/openrct2/rct2/RCT2.h @@ -9,8 +9,8 @@ #pragma once -#include "../compatibility/rct12/RCT12.h" #include "../compatibility/rct2/Limits.h" +#include "../compatibility/shared/RCT12.h" #include "../core/FileSystem.hpp" #include "../core/FixedPoint.hpp" #include "../ride/Angles.h" diff --git a/src/openrct2/ride/CableLift.cpp b/src/openrct2/ride/CableLift.cpp index dc1f44a23812..51d8a85037e1 100644 --- a/src/openrct2/ride/CableLift.cpp +++ b/src/openrct2/ride/CableLift.cpp @@ -10,7 +10,7 @@ #include "CableLift.h" #include "../audio/Audio.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../entity/EntityList.h" #include "../util/Util.h" #include "../world/Map.h" diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index c81a2548b6aa..1f2d50e57047 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -16,7 +16,7 @@ #include "../OpenRCT2.h" #include "../actions/RideSetStatusAction.h" #include "../audio/Audio.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../config/Config.h" #include "../core/EnumUtils.hpp" #include "../core/FixedPoint.hpp" diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index 20c529c60728..27bbca13ed9b 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -21,7 +21,7 @@ #include "../actions/ResultWithMessage.h" #include "../audio/Audio.h" #include "../compatibility/rct1/RCT1.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/RCT12.h" #include "../config/Config.h" #include "../core/BitSet.hpp" #include "../core/EnumUtils.hpp" diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index 1505a94b35b8..c24dd43787f1 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -14,8 +14,8 @@ #include "../Game.h" #include "../ParkImporter.h" #include "../PlatformEnvironment.h" -#include "../compatibility/rct12/CSStringConverter.h" -#include "../compatibility/rct12/RCT12.h" +#include "../compatibility/shared/CSStringConverter.h" +#include "../compatibility/shared/RCT12.h" #include "../config/Config.h" #include "../core/Console.hpp" #include "../core/File.h" diff --git a/src/openrct2/scripting/bindings/entity/ScStaff.cpp b/src/openrct2/scripting/bindings/entity/ScStaff.cpp index dcfbf4d4abe9..fedf98a2787b 100644 --- a/src/openrct2/scripting/bindings/entity/ScStaff.cpp +++ b/src/openrct2/scripting/bindings/entity/ScStaff.cpp @@ -11,7 +11,7 @@ #include "ScStaff.hpp" - #include "../../../compatibility/rct12/RCT12.h" + #include "../../../compatibility/shared/RCT12.h" #include "../../../entity/PatrolArea.h" #include "../../../entity/Staff.h" #include "../../../object/ObjectManager.h" diff --git a/test/tests/LocalisationTest.cpp b/test/tests/LocalisationTest.cpp index 272ccd648a63..3cf2b2f0b76f 100644 --- a/test/tests/LocalisationTest.cpp +++ b/test/tests/LocalisationTest.cpp @@ -8,7 +8,7 @@ *****************************************************************************/ #include "helpers/StringHelpers.hpp" -#include "openrct2/compatibility/rct12/CSStringConverter.h" +#include "openrct2/compatibility/shared/CSStringConverter.h" #include "openrct2/localisation/Language.h" #include diff --git a/test/tests/ScenarioPatcherTests.cpp b/test/tests/ScenarioPatcherTests.cpp index ab6c984c53fd..c031d22853ec 100644 --- a/test/tests/ScenarioPatcherTests.cpp +++ b/test/tests/ScenarioPatcherTests.cpp @@ -13,7 +13,7 @@ #include #include #include -#include +#include #include #include #include From 2d4a726dea784c0399b9acbce1e7eb89f4f6183f Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 00:44:39 -0300 Subject: [PATCH 17/26] Move RCT2.h to /compatibility/rct2 --- src/openrct2/Context.cpp | 2 +- src/openrct2/FileClassifier.cpp | 2 +- src/openrct2/compatibility/rct2/RCT2.h | 2 +- .../compatibility/rct2/S6Importer.cpp | 2 +- .../compatibility/rct2/SeaDecrypt.cpp | 2 +- .../compatibility/rct2/T6Exporter.cpp | 2 +- .../compatibility/rct2/T6Importer.cpp | 2 +- src/openrct2/compatibility/shared/RCT12.cpp | 2 +- src/openrct2/entity/Guest.cpp | 2 +- src/openrct2/libopenrct2.vcxproj | 2 +- src/openrct2/object/RideObject.cpp | 2 +- src/openrct2/openrct2_pch.h | 2 +- src/openrct2/park/Legacy.cpp | 2 +- src/openrct2/park/ParkFile.cpp | 2 +- src/openrct2/rct2/RCT2.cpp | 2 +- src/openrct2/rct2/RCT2.h | 1098 ----------------- src/openrct2/ride/TrackDesign.cpp | 2 +- src/openrct2/ride/TrackDesignSave.cpp | 2 +- src/openrct2/scenario/ScenarioRepository.cpp | 2 +- test/tests/S6ImportExportTests.cpp | 2 +- 20 files changed, 19 insertions(+), 1117 deletions(-) delete mode 100644 src/openrct2/rct2/RCT2.h diff --git a/src/openrct2/Context.cpp b/src/openrct2/Context.cpp index 6c32660e175a..9a5d1e505fad 100644 --- a/src/openrct2/Context.cpp +++ b/src/openrct2/Context.cpp @@ -28,6 +28,7 @@ #include "actions/GameAction.h" #include "audio/Audio.h" #include "audio/AudioContext.h" +#include "compatibility/rct2/RCT2.h" #include "config/Config.h" #include "core/Console.hpp" #include "core/File.h" @@ -61,7 +62,6 @@ #include "platform/Crash.h" #include "platform/Platform.h" #include "profiling/Profiling.h" -#include "rct2/RCT2.h" #include "ride/TrackDesignRepository.h" #include "scenario/Scenario.h" #include "scenario/ScenarioRepository.h" diff --git a/src/openrct2/FileClassifier.cpp b/src/openrct2/FileClassifier.cpp index e666116c1390..03d0ebafac2e 100644 --- a/src/openrct2/FileClassifier.cpp +++ b/src/openrct2/FileClassifier.cpp @@ -10,13 +10,13 @@ #include "FileClassifier.h" #include "Diagnostic.h" +#include "compatibility/rct2/RCT2.h" #include "core/Console.hpp" #include "core/FileStream.h" #include "core/Memory.hpp" #include "core/Path.hpp" #include "core/String.hpp" #include "park/ParkFile.h" -#include "rct2/RCT2.h" #include "sawyer_coding/SawyerChunkReader.h" #include "sawyer_coding/SawyerCoding.h" #include "scenario/Scenario.h" diff --git a/src/openrct2/compatibility/rct2/RCT2.h b/src/openrct2/compatibility/rct2/RCT2.h index 87cd6e2b4cf9..ad8f3abadbd1 100644 --- a/src/openrct2/compatibility/rct2/RCT2.h +++ b/src/openrct2/compatibility/rct2/RCT2.h @@ -9,8 +9,8 @@ #pragma once -#include "../compatibility/rct12/RCT12.h" #include "../compatibility/rct2/Limits.h" +#include "../compatibility/shared/RCT12.h" #include "../core/FileSystem.hpp" #include "../core/FixedPoint.hpp" #include "../ride/Angles.h" diff --git a/src/openrct2/compatibility/rct2/S6Importer.cpp b/src/openrct2/compatibility/rct2/S6Importer.cpp index e8af345d3844..dd38dcb9b889 100644 --- a/src/openrct2/compatibility/rct2/S6Importer.cpp +++ b/src/openrct2/compatibility/rct2/S6Importer.cpp @@ -32,7 +32,6 @@ #include "../../park/Legacy.h" #include "../../park/ParkPreview.h" #include "../../peep/RideUseSystem.h" -#include "../../rct2/RCT2.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" #include "../../ride/Vehicle.h" @@ -56,6 +55,7 @@ #include "../../world/tile_element/TileElement.h" #include "../../world/tile_element/TrackElement.h" #include "../../world/tile_element/WallElement.h" +#include "../rct2/RCT2.h" #include "../shared/CSStringConverter.h" #include "../shared/EntryList.h" #include "../shared/RCT12.h" diff --git a/src/openrct2/compatibility/rct2/SeaDecrypt.cpp b/src/openrct2/compatibility/rct2/SeaDecrypt.cpp index f3895de29b9e..8d8774dc38eb 100644 --- a/src/openrct2/compatibility/rct2/SeaDecrypt.cpp +++ b/src/openrct2/compatibility/rct2/SeaDecrypt.cpp @@ -10,7 +10,7 @@ #include "../../core/File.h" #include "../../core/Numerics.hpp" #include "../../core/Path.hpp" -#include "../../rct2/RCT2.h" +#include "../rct2/RCT2.h" #include #include diff --git a/src/openrct2/compatibility/rct2/T6Exporter.cpp b/src/openrct2/compatibility/rct2/T6Exporter.cpp index 40d36e310fdd..73aee0fcf519 100644 --- a/src/openrct2/compatibility/rct2/T6Exporter.cpp +++ b/src/openrct2/compatibility/rct2/T6Exporter.cpp @@ -15,7 +15,6 @@ #include "../../core/MemoryStream.h" #include "../../localisation/StringIds.h" #include "../../object/ObjectList.h" -#include "../../rct2/RCT2.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" #include "../../ride/Station.h" @@ -25,6 +24,7 @@ #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkWriter.h" #include "../../windows/Intent.h" +#include "../rct2/RCT2.h" #include "../shared/TD46.h" #include diff --git a/src/openrct2/compatibility/rct2/T6Importer.cpp b/src/openrct2/compatibility/rct2/T6Importer.cpp index 3a172a7d8fb1..f60691624d24 100644 --- a/src/openrct2/compatibility/rct2/T6Importer.cpp +++ b/src/openrct2/compatibility/rct2/T6Importer.cpp @@ -15,12 +15,12 @@ #include "../../core/String.hpp" #include "../../object/ObjectRepository.h" #include "../../object/RideObject.h" -#include "../../rct2/RCT2.h" #include "../../ride/Ride.h" #include "../../ride/RideData.h" #include "../../ride/TrackDesign.h" #include "../../ride/TrackDesignRepository.h" #include "../../sawyer_coding/SawyerChunkReader.h" +#include "../rct2/RCT2.h" #include "../shared/TD46.h" #include diff --git a/src/openrct2/compatibility/shared/RCT12.cpp b/src/openrct2/compatibility/shared/RCT12.cpp index b6f709be3453..5084ca748ad4 100644 --- a/src/openrct2/compatibility/shared/RCT12.cpp +++ b/src/openrct2/compatibility/shared/RCT12.cpp @@ -13,7 +13,6 @@ #include "../../core/String.hpp" #include "../../localisation/Formatting.h" #include "../../object/ObjectList.h" -#include "../../rct2/RCT2.h" #include "../../ride/Ride.h" #include "../../scenario/Scenario.h" #include "../../world/Banner.h" @@ -25,6 +24,7 @@ #include "../../world/tile_element/SurfaceElement.h" #include "../../world/tile_element/WallElement.h" #include "../rct1/Tables.h" +#include "../rct2/RCT2.h" #include "CSStringConverter.h" #include "EntryList.h" diff --git a/src/openrct2/entity/Guest.cpp b/src/openrct2/entity/Guest.cpp index 1f99206b2406..cd8e0f304491 100644 --- a/src/openrct2/entity/Guest.cpp +++ b/src/openrct2/entity/Guest.cpp @@ -16,6 +16,7 @@ #include "../OpenRCT2.h" #include "../SpriteIds.h" #include "../audio/Audio.h" +#include "../compatibility/rct2/RCT2.h" #include "../config/Config.h" #include "../core/DataSerialiser.h" #include "../core/Guard.hpp" @@ -44,7 +45,6 @@ #include "../peep/PeepAnimations.h" #include "../peep/PeepThoughts.h" #include "../peep/RideUseSystem.h" -#include "../rct2/RCT2.h" #include "../ride/Ride.h" #include "../ride/RideData.h" #include "../ride/RideManager.hpp" diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 51df65b052c9..0b4f73c22cca 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,6 +176,7 @@ + @@ -432,7 +433,6 @@ - diff --git a/src/openrct2/object/RideObject.cpp b/src/openrct2/object/RideObject.cpp index 0308f433f99c..92c3d3510284 100644 --- a/src/openrct2/object/RideObject.cpp +++ b/src/openrct2/object/RideObject.cpp @@ -14,6 +14,7 @@ #include "../OpenRCT2.h" #include "../audio/Audio.h" #include "../compatibility/rct2/DATLimits.h" +#include "../compatibility/rct2/RCT2.h" #include "../core/EnumMap.hpp" #include "../core/FlagHolder.hpp" #include "../core/IStream.hpp" @@ -24,7 +25,6 @@ #include "../drawing/Drawing.h" #include "../entity/Yaw.hpp" #include "../localisation/Language.h" -#include "../rct2/RCT2.h" #include "../ride/CarEntry.h" #include "../ride/Ride.h" #include "../ride/RideData.h" diff --git a/src/openrct2/openrct2_pch.h b/src/openrct2/openrct2_pch.h index 655dac226e7c..ae7a1c9f6341 100644 --- a/src/openrct2/openrct2_pch.h +++ b/src/openrct2/openrct2_pch.h @@ -2,7 +2,7 @@ // Include some expensive headers here to improve compilation speed +#include "compatibility/rct2/RCT2.h" #include "core/FileSystem.hpp" #include "object/Object.h" -#include "rct2/RCT2.h" #include "ride/Ride.h" diff --git a/src/openrct2/park/Legacy.cpp b/src/openrct2/park/Legacy.cpp index f104fea58624..4edeb98ef8e5 100644 --- a/src/openrct2/park/Legacy.cpp +++ b/src/openrct2/park/Legacy.cpp @@ -11,6 +11,7 @@ #include "../Context.h" #include "../Diagnostic.h" +#include "../compatibility/rct2/RCT2.h" #include "../compatibility/shared/RCT12.h" #include "../entity/EntityList.h" #include "../entity/Guest.h" @@ -19,7 +20,6 @@ #include "../object/ObjectList.h" #include "../object/ObjectManager.h" #include "../object/PeepAnimationsObject.h" -#include "../rct2/RCT2.h" #include "../ride/Ride.h" #include "../ride/Track.h" #include "ParkFile.h" diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index b796d10c0345..d76da043fda7 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -17,6 +17,7 @@ #include "../OpenRCT2.h" #include "../ParkImporter.h" #include "../Version.h" +#include "../compatibility/rct2/RCT2.h" #include "../config/Config.h" #include "../core/Console.hpp" #include "../core/Crypt.h" @@ -45,7 +46,6 @@ #include "../object/ObjectManager.h" #include "../object/ObjectRepository.h" #include "../peep/RideUseSystem.h" -#include "../rct2/RCT2.h" #include "../ride/RideManager.hpp" #include "../ride/ShopItem.h" #include "../ride/Vehicle.h" diff --git a/src/openrct2/rct2/RCT2.cpp b/src/openrct2/rct2/RCT2.cpp index 647ea6cb9d04..25090cb4e9c4 100644 --- a/src/openrct2/rct2/RCT2.cpp +++ b/src/openrct2/rct2/RCT2.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "RCT2.h" +#include "../compatibility/rct2/RCT2.h" #include "../Context.h" #include "../object/Object.h" diff --git a/src/openrct2/rct2/RCT2.h b/src/openrct2/rct2/RCT2.h deleted file mode 100644 index ad8f3abadbd1..000000000000 --- a/src/openrct2/rct2/RCT2.h +++ /dev/null @@ -1,1098 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2014-2026 OpenRCT2 developers - * - * For a complete list of all authors, please refer to contributors.md - * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 - * - * OpenRCT2 is licensed under the GNU General Public License version 3. - *****************************************************************************/ - -#pragma once - -#include "../compatibility/rct2/Limits.h" -#include "../compatibility/shared/RCT12.h" -#include "../core/FileSystem.hpp" -#include "../core/FixedPoint.hpp" -#include "../ride/Angles.h" -#include "../ride/RideRatings.h" -#include "../world/ParkData.h" - -#include - -struct RideObjectEntry; -enum class EditorStep : uint8_t; -enum class MechanicStatus : uint8_t; -enum class RideInvalidateFlag : uint8_t; -enum class VehicleColourSettings : uint8_t; - -template -struct FlagHolder; -using RideInvalidateFlags = FlagHolder; - -namespace OpenRCT2::Scenario -{ - enum class Category : uint8_t; - enum class ObjectiveType : uint8_t; -} // namespace OpenRCT2::Scenario - -enum -{ - S6_TYPE_SAVEDGAME, - S6_TYPE_SCENARIO -}; - -// For legacy scores file -enum -{ - SCENARIO_FLAGS_VISIBLE = (1 << 0), - SCENARIO_FLAGS_COMPLETED = (1 << 1), - SCENARIO_FLAGS_SIXFLAGS = (1 << 2) -}; - -namespace OpenRCT2::RCT2 -{ - constexpr StringId kRCT2RideStringStart = 2; - - // clang-format off - constexpr uint16_t kRCT2ObjectEntryCount = - Limits::kMaxRideObjects + - Limits::kMaxSmallSceneryObjects + - Limits::kMaxLargeSceneryObjects + - Limits::kMaxWallSceneryObjects + - Limits::kMaxBannerObjects + - Limits::kMaxPathObjects + - Limits::kMaxPathAdditionObjects + - Limits::kMaxSceneryGroupObjects + - Limits::kMaxParkEntranceObjects + - Limits::kMaxWaterObjects + - Limits::kMaxScenarioMetaObjects; - // clang-format on - static_assert(kRCT2ObjectEntryCount == 721); - - // clang-format off - constexpr int32_t kRCT2ObjectEntryGroupCounts[] = { - Limits::kMaxRideObjects, - Limits::kMaxSmallSceneryObjects, - Limits::kMaxLargeSceneryObjects, - Limits::kMaxWallSceneryObjects, - Limits::kMaxBannerObjects, - Limits::kMaxPathObjects, - Limits::kMaxPathAdditionObjects, - Limits::kMaxSceneryGroupObjects, - Limits::kMaxParkEntranceObjects, - Limits::kMaxWaterObjects, - Limits::kMaxScenarioMetaObjects, - }; - // clang-format on - - enum class EntityListId : uint8_t - { - count = 6, - }; -#pragma pack(push, 1) - /** - * Ride structure. - * size: 0x0260 - */ - struct Ride - { - uint8_t type; // 0x000 - // pointer to static info. for example, wild mouse type is 0x36, subtype is - // 0x4c. - RCT12ObjectEntryIndex subtype; // 0x001 - uint16_t pad002; // 0x002 - uint8_t mode; // 0x004 - VehicleColourSettings vehicleColourSettings; // 0x005 - RCT12VehicleColour vehicleColours[Limits::kMaxVehicleColours]; // 0x006 - uint8_t pad046[0x03]; // 0x046, Used to be track colours in RCT1 without expansions - // 0 = closed, 1 = open, 2 = test - uint8_t status; // 0x049 - StringId name; // 0x04A - union - { - uint32_t nameArguments; // 0x04C - struct - { - StringId nameArgumentsTypeName; // 0x04C - uint16_t nameArgumentsNumber; // 0x04E - }; - }; - RCT12xy8 overallView; // 0x050 - RCT12xy8 stationStarts[Limits::kMaxStationsPerRide]; // 0x052 - uint8_t stationHeights[Limits::kMaxStationsPerRide]; // 0x05A - uint8_t stationLength[Limits::kMaxStationsPerRide]; // 0x05E - uint8_t stationDepart[Limits::kMaxStationsPerRide]; // 0x062 - // ride->vehicle index for current train waiting for passengers - // at station - uint8_t trainAtStation[Limits::kMaxStationsPerRide]; // 0x066 - RCT12xy8 entrances[Limits::kMaxStationsPerRide]; // 0x06A - RCT12xy8 exits[Limits::kMaxStationsPerRide]; // 0x072 - uint16_t lastPeepInQueue[Limits::kMaxStationsPerRide]; // 0x07A - uint8_t pad082[Limits::kMaxStationsPerRide]; // 0x082, Used to be number of peeps in queue in RCT1, but this - // has moved. - uint16_t vehicles[Limits::kMaxTrainsPerRide]; // 0x086, Points to the first car in the train - uint8_t departFlags; // 0x0C6 - - // Not sure if these should be uint or sint. - uint8_t numStations; // 0x0C7 - uint8_t numTrains; // 0x0C8 - uint8_t numCarsPerTrain; // 0x0C9 - uint8_t proposedNumTrains; // 0x0CA - uint8_t proposedNumCarsPerTrain; // 0x0CB - uint8_t maxTrains; // 0x0CC - uint8_t minMaxCarsPerTrain; // 0x0CD - uint8_t minWaitingTime; // 0x0CE - uint8_t maxWaitingTime; // 0x0CF - union - { - uint8_t operationOption; // 0x0D0 - uint8_t timeLimit; // 0x0D0 - uint8_t numLaps; // 0x0D0 - uint8_t launchSpeed; // 0x0D0 - uint8_t speed; // 0x0D0 - uint8_t rotations; // 0x0D0 - }; - - uint8_t boatHireReturnDirection; // 0x0D1 - RCT12xy8 boatHireReturnPosition; // 0x0D2 - uint8_t measurementIndex; // 0x0D4 - // bits 0 through 4 are the number of helix sections - // bit 5: spinning tunnel, water splash, or rapids - // bit 6: log reverser, waterfall - // bit 7: whirlpool - uint8_t specialTrackElements; // 0x0D5 - uint8_t pad0D6[2]; // 0x0D6 - // Use ToHumanReadableSpeed if converting to display - int32_t maxSpeed; // 0x0D8 - int32_t averageSpeed; // 0x0DC - uint8_t currentTestSegment; // 0x0E0 - uint8_t averageSpeedTestTimeout; // 0x0E1 - uint8_t pad0E2[0x2]; // 0x0E2 - int32_t length[Limits::kMaxStationsPerRide]; // 0x0E4 - uint16_t time[Limits::kMaxStationsPerRide]; // 0x0F4 - fixed16_2dp maxPositiveVerticalG; // 0x0FC - fixed16_2dp maxNegativeVerticalG; // 0x0FE - fixed16_2dp maxLateralG; // 0x100 - fixed16_2dp previousVerticalG; // 0x102 - fixed16_2dp previousLateralG; // 0x104 - uint8_t pad106[0x2]; // 0x106 - uint32_t testingFlags; // 0x108 - // x y map location of the current track piece during a test - // this is to prevent counting special tracks multiple times - RCT12xy8 curTestTrackLocation; // 0x10C - // Next 3 variables are related (XXXX XYYY ZZZa aaaa) - uint16_t turnCountDefault; // 0x10E X = current turn count - uint16_t turnCountBanked; // 0x110 - uint16_t turnCountSloped; // 0x112 X = number turns > 3 elements - union - { - uint8_t inversions; // 0x114 (???X XXXX) - uint8_t holes; // 0x114 (???X XXXX) - // This is a very rough approximation of how much of the ride is undercover. - // It reaches the maximum value of 7 at about 50% undercover and doesn't increase beyond that. - uint8_t shelteredEighths; // 0x114 (XXX?-????) - }; - // Y is number of powered lifts, X is drops - uint8_t drops; // 0x115 (YYXX XXXX) - uint8_t startDropHeight; // 0x116 - uint8_t highestDropHeight; // 0x117 - int32_t shelteredLength; // 0x118 - // Unused always 0? Should affect nausea - uint16_t var11C; // 0x11C - uint8_t numShelteredSections; // 0x11E (?abY YYYY) - // see CurTestTrackLocation - uint8_t curTestTrackZ; // 0x11F - // Customer counter in the current 960 game tick (about 30 seconds) interval - uint16_t curNumCustomers; // 0x120 - // Counts ticks to update customer intervals, resets each 960 game ticks. - uint16_t numCustomersTimeout; // 0x122 - // Customer count in the last 10 * 960 game ticks (sliding window) - uint16_t numCustomers[Limits::kCustomerHistorySize]; // 0x124 - money16 price; // 0x138 - RCT12xy8 chairliftBullwheelLocation[2]; // 0x13A - uint8_t chairliftBullwheelZ[2]; // 0x13E - OpenRCT2::RideRating::Tuple ratings; // 0x140 - money16 value; // 0x146 - uint16_t chairliftBullwheelRotation; // 0x148 - uint8_t satisfaction; // 0x14A - uint8_t satisfactionTimeOut; // 0x14B - uint8_t satisfactionNext; // 0x14C - RideInvalidateFlags windowInvalidateFlags; // 0x14D - uint8_t pad14E[0x02]; // 0x14E - uint32_t totalCustomers; // 0x150 - money32 totalProfit; // 0x154 - uint8_t popularity; // 0x158 - uint8_t popularityTimeOut; // 0x159 Updated every purchase and ?possibly by time? - uint8_t popularityNext; // 0x15A When timeout reached this will be the next popularity - uint8_t numRiders; // 0x15B - uint8_t musicTuneId; // 0x15C - uint8_t slideInUse; // 0x15D - union - { - uint16_t slidePeep; // 0x15E - uint16_t mazeTiles; // 0x15E - }; - uint8_t pad160[0xE]; // 0x160 - uint8_t slidePeepTShirtColour; // 0x16E - uint8_t pad16F[0x7]; // 0x16F - uint8_t spiralSlideProgress; // 0x176 - uint8_t pad177[0x9]; // 0x177 - int16_t buildDate; // 0x180 - money16 upkeepCost; // 0x182 - uint16_t raceWinner; // 0x184 - uint8_t pad186[0x02]; // 0x186 - uint32_t musicPosition; // 0x188 - uint8_t breakdownReasonPending; // 0x18C - MechanicStatus mechanicStatus; // 0x18D - uint16_t mechanic; // 0x18E - uint8_t inspectionStation; // 0x190 - uint8_t brokenTrain; // 0x191 - uint8_t brokenCar; // 0x192 - uint8_t breakdownReason; // 0x193 - money16 priceSecondary; // 0x194 - union - { - struct - { - uint8_t reliabilitySubvalue; // 0x196, 0 - 255, acts like the decimals for reliabilityPercentage - uint8_t reliabilityPercentage; // 0x197, Starts at 100 and decreases from there. - }; - uint16_t reliability; // 0x196 - }; - // Small constant used to increase the unreliability as the game continues, - // making breakdowns more and more likely. - uint8_t unreliabilityFactor; // 0x198 - // Range from [0, 100] - uint8_t downtime; // 0x199 - uint8_t inspectionInterval; // 0x19A - uint8_t lastInspection; // 0x19B - uint8_t downtimeHistory[Limits::kDowntimeHistorySize]; // 0x19C - uint32_t numPrimaryItemsSold; // 0x1A4 - uint32_t numSecondaryItemsSold; // 0x1A8 - uint8_t breakdownSoundModifier; // 0x1AC - // Used to oscillate the sound when ride breaks down. - // 0 = no change, 255 = max change - uint8_t notFixedTimeout; // 0x1AD - uint8_t lastCrashType; // 0x1AE - uint8_t connectedMessageThrottle; // 0x1AF - money32 incomePerHour; // 0x1B0 - money32 profit; // 0x1B4 - uint8_t queueTime[Limits::kMaxStationsPerRide]; // 0x1B8 - uint8_t trackColourMain[Limits::kNumColourSchemes]; // 0x1BC - uint8_t trackColourAdditional[Limits::kNumColourSchemes]; // 0x1C0 - uint8_t trackColourSupports[Limits::kNumColourSchemes]; // 0x1C4 - uint8_t music; // 0x1C8 - uint8_t entranceStyle; // 0x1C9 - uint16_t vehicleChangeTimeout; // 0x1CA - uint8_t numBlockBrakes; // 0x1CC - uint8_t liftHillSpeed; // 0x1CD - uint16_t guestsFavourite; // 0x1CE - uint32_t lifecycleFlags; // 0x1D0 - uint8_t vehicleColoursExtended[Limits::kMaxVehicleColours]; // 0x1D4 - uint16_t totalAirTime; // 0x1F4 - uint8_t currentTestStation; // 0x1F6 - uint8_t numCircuits; // 0x1F7 - int16_t cableLiftX; // 0x1F8 - int16_t cableLiftY; // 0x1FA - uint8_t cableLiftZ; // 0x1FC - uint8_t pad1FD; // 0x1FD - uint16_t cableLift; // 0x1FE - uint16_t queueLength[Limits::kMaxStationsPerRide]; // 0x200 - uint8_t pad208[0x58]; // 0x208 - - uint8_t getMinCarsPerTrain() const; - uint8_t getMaxCarsPerTrain() const; - }; - static_assert(sizeof(Ride) == 0x260); - - /* Track Entrance entry size: 0x06 */ - struct TD6EntranceElement - { - int8_t z; // 0x00 - uint8_t direction; // 0x01 - int16_t x; // 0x02 - int16_t y; // 0x04 - - constexpr Direction GetDirection() const - { - return (direction & 0b00001111); - } - - constexpr bool IsExit() const - { - return !!(direction >> 7); - } - }; - static_assert(sizeof(TD6EntranceElement) == 0x06); - - /* Track Scenery entry size: 0x16 */ - struct TD6SceneryElement - { - RCTObjectEntry SceneryObject; // 0x00 - int8_t x; // 0x10 - int8_t y; // 0x11 - int8_t z; // 0x12 - uint8_t Flags; // 0x13 direction quadrant tertiary colour - uint8_t PrimaryColour; // 0x14 - uint8_t SecondaryColour; // 0x15 - - colour_t getTertiaryWallColour() const; - }; - static_assert(sizeof(TD6SceneryElement) == 0x16); - - /** - * Track design structure. - * size: 0xA3 - */ - struct TD6Track - { - uint8_t Type; // 0x00 - RCT12ObjectEntryIndex VehicleType; - uint32_t Flags; // 0x02 - uint8_t RideMode; // 0x06 - uint8_t VersionAndColourScheme; // 0x07 0b0000_VVCC - RCT12VehicleColour VehicleColours[Limits::kMaxTrainsPerRide]; // 0x08 - uint8_t Pad48; // 0x48 - uint8_t EntranceStyle; // 0x49 - uint8_t TotalAirTime; // 0x4A - uint8_t DepartFlags; // 0x4B - uint8_t NumberOfTrains; // 0x4C - uint8_t NumberOfCarsPerTrain; // 0x4D - uint8_t MinWaitingTime; // 0x4E - uint8_t MaxWaitingTime; // 0x4F - uint8_t OperationSetting; // 0x50 - int8_t MaxSpeed; // 0x51 - int8_t AverageSpeed; // 0x52 - uint16_t RideLength; // 0x53 - uint8_t MaxPositiveVerticalG; // 0x55 - int8_t MaxNegativeVerticalG; // 0x56 - uint8_t MaxLateralG; // 0x57 - union - { - uint8_t Inversions; // 0x58 - uint8_t Holes; // 0x58 - }; - uint8_t Drops; // 0x59 - uint8_t HighestDropHeight; // 0x5A - uint8_t Excitement; // 0x5B - uint8_t Intensity; // 0x5C - uint8_t Nausea; // 0x5D - money16 UpkeepCost; // 0x5E - uint8_t TrackSpineColour[Limits::kNumColourSchemes]; // 0x60 - uint8_t TrackRailColour[Limits::kNumColourSchemes]; // 0x64 - uint8_t TrackSupportColour[Limits::kNumColourSchemes]; // 0x68 - uint32_t Flags2; // 0x6C - RCTObjectEntry VehicleObject; // 0x70 - uint8_t SpaceRequiredX; // 0x80 - uint8_t SpaceRequiredY; // 0x81 - uint8_t VehicleAdditionalColour[Limits::kMaxTrainsPerRide]; // 0x82 - uint8_t LiftHillSpeedNumCircuits; // 0xA2 0bCCCL_LLLL - // 0xA3 (data starts here in file) - }; - static_assert(sizeof(TD6Track) == 0xA3); - - /** - * scores.dat file header. - * size: 0x10 - */ - struct ScoresHeader - { - uint32_t Var0; - uint32_t Var4; - uint32_t Var8; - uint32_t ScenarioCount; - }; - static_assert(sizeof(ScoresHeader) == 0x10); - - /** - * An entry of scores.dat - * size: 0x02B0 - */ - struct ScoresEntry - { - char Path[256]; - uint8_t Category; - uint8_t Pad0101[0x1F]; - Scenario::ObjectiveType ObjectiveType; - int8_t ObjectiveArg1; - int32_t objectiveArg2; - uint16_t objectiveArg3; - char Name[64]; - char Details[256]; - int32_t Flags; - money32 CompanyValue; - char CompletedBy[64]; - }; - static_assert(sizeof(ScoresEntry) == 0x02B0); - - struct Vehicle : RCT12EntityBase - { - VehiclePitch pitch; // 0x1F - VehicleRoll roll; // 0x20 - uint8_t Pad21[3]; - int32_t RemainingDistance; // 0x24 - int32_t Velocity; // 0x28 - int32_t Acceleration; // 0x2C - uint8_t Ride; // 0x30 - uint8_t VehicleType; // 0x31 - RCT12VehicleColour Colours; // 0x32 - union - { - uint16_t TrackProgress; // 0x34 - struct - { - int8_t Var34; - uint8_t Var35; - }; - }; - union - { - int16_t TrackTypeAndDirection; // 0x36 - RCT12xy8 BoatLocation; // 0x36 - }; - uint16_t TrackX; // 0x38 - uint16_t TrackY; // 0x3A - uint16_t TrackZ; // 0x3C - uint16_t NextVehicleOnTrain; // 0x3E - uint16_t PrevVehicleOnRide; // 0x40 - uint16_t NextVehicleOnRide; // 0x42 - uint16_t Var44; - uint16_t Mass; // 0x46 - uint16_t UpdateFlags; // 0x48 - uint8_t SwingSprite; - uint8_t CurrentStation; // 0x4B - union - { - int16_t SwingPosition; // 0x4C - int16_t CurrentTime; // 0x4C - struct - { - int8_t FerrisWheelVar0; // 0x4C - int8_t FerrisWheelVar1; // 0x4D - }; - }; - union - { - int16_t SwingSpeed; - int16_t CrashZ; // 0x4E - }; - uint8_t Status; // 0x50 - uint8_t SubState; // 0x51 - uint16_t Peep[32]; // 0x52 - uint8_t PeepTshirtColours[32]; // 0x92 - uint8_t NumSeats; // 0xB2 - uint8_t NumPeeps; // 0xB3 - uint8_t NextFreeSeat; // 0xB4 - uint8_t RestraintsPosition; // 0xB5 - union - { - int16_t SpinSpeed; // 0xB6 - int16_t CrashX; // 0xB6 - }; - uint16_t Sound2Flags; // 0xB8 - uint8_t SpinSprite; // 0xBA - uint8_t Sound1Id; // 0xBB - uint8_t Sound1Volume; // 0xBC - uint8_t Sound2Id; // 0xBD - uint8_t Sound2Volume; // 0xBE - int8_t SoundVectorFactor; - union - { - uint16_t VarC0; - int16_t CrashY; // 0xC0 - uint16_t TimeWaiting; // 0xC0 - uint16_t CableLiftTarget; // 0xC0 - }; - uint8_t Speed; // 0xC2 - uint8_t PoweredAcceleration; // 0xC3 - union - { - uint8_t DodgemsCollisionDirection; // 0xC4 - uint8_t CollisionDetectionTimer; // 0xC4 - }; - uint8_t AnimationFrame; // 0xC5 - uint8_t PadC6[0x2]; - uint32_t AnimationState; - uint8_t ScreamSoundId; // 0xCC - uint8_t TrackSubposition; - uint8_t NumLaps; // 0xCE - uint8_t BrakeSpeed; // 0xCF - uint16_t LostTimeOut; // 0xD0 - int8_t VerticalDropCountdown; // 0xD1 - uint8_t VarD3; - uint8_t MiniGolfCurrentAnimation; - uint8_t MiniGolfFlags; // 0xD5 - uint8_t RideSubtype; // 0xD6 - uint8_t ColoursExtended; // 0xD7 - uint8_t SeatRotation; // 0xD8 - uint8_t TargetSeatRotation; // 0xD9 - - OpenRCT2::RCT12::TrackElemType GetTrackType() const - { - return static_cast(TrackTypeAndDirection >> 2); - } - uint8_t GetTrackDirection() const - { - return TrackTypeAndDirection & kRCT12VehicleTrackDirectionMask; - } - void SetTrackType(OpenRCT2::RCT12::TrackElemType trackType) - { - // set the upper 14 bits to 0 - TrackTypeAndDirection &= ~kRCT12VehicleTrackTypeMask; - TrackTypeAndDirection |= EnumValue(trackType) << 2; - } - void SetTrackDirection(uint8_t trackDirection) - { - // set the lower 2 bits only - TrackTypeAndDirection &= ~kRCT12VehicleTrackDirectionMask; - TrackTypeAndDirection |= trackDirection & kRCT12VehicleTrackDirectionMask; - } - }; - static_assert(sizeof(Vehicle) == 0xDA); - - struct Peep : RCT12EntityBase - { - uint8_t Pad1F[0x22 - 0x1F]; - StringId NameStringIdx; // 0x22 - uint16_t NextX; // 0x24 - uint16_t NextY; // 0x26 - uint8_t NextZ; // 0x28 - uint8_t NextFlags; // 0x29 - uint8_t OutsideOfPark; // 0x2A - uint8_t State; // 0x2B - uint8_t SubState; // 0x2C - uint8_t AnimationGroup; // 0x2D - uint8_t PeepType; // 0x2E - union - { - uint8_t StaffType; // 0x2F - uint8_t NoOfRides; // 0x2F - }; - uint8_t TshirtColour; // 0x30 - uint8_t TrousersColour; // 0x31 - uint16_t DestinationX; // 0x32 - uint16_t DestinationY; // 0x34 - uint8_t DestinationTolerance; // 0x36 - uint8_t Var37; - uint8_t Energy; // 0x38 - uint8_t EnergyTarget; // 0x39 - uint8_t Happiness; // 0x3A - uint8_t HappinessTarget; // 0x3B - uint8_t Nausea; // 0x3C - uint8_t NauseaTarget; // 0x3D - uint8_t Hunger; // 0x3E - uint8_t Thirst; // 0x3F - uint8_t Toilet; // 0x40 - uint8_t Mass; // 0x41 - uint8_t TimeToConsume; // 0x42 - uint8_t Intensity; // 0x43 - uint8_t NauseaTolerance; // 0x44 - uint8_t WindowInvalidateFlags; // 0x45 - money16 PaidOnDrink; // 0x46 - uint8_t RideTypesBeenOn[16]; // 0x48 - uint32_t ItemExtraFlags; // 0x58 - RCT12RideId Photo2RideRef; // 0x5C - RCT12RideId Photo3RideRef; // 0x5D - RCT12RideId Photo4RideRef; // 0x5E - uint8_t Pad5F[0x09]; // 0x5F - RCT12RideId CurrentRide; // 0x68 - uint8_t CurrentRideStation; // 0x69 - uint8_t CurrentTrain; // 0x6A - union - { - struct - { - uint8_t CurrentCar; // 0x6B - uint8_t CurrentSeat; // 0x6C - }; - uint16_t TimeToSitdown; // 0x6B - struct - { - uint8_t TimeToStand; // 0x6B - uint8_t StandingFlags; // 0x6C - }; - }; - uint8_t SpecialSprite; // 0x6D - uint8_t AnimationType; // 0x6E - uint8_t NextAnimationType; // 0x6F - uint8_t AnimationImageIdOffset; // 0x70 - uint8_t Action; // 0x71 - uint8_t AnimationFrameNum; // 0x72 - uint8_t StepProgress; // 0x73 - union - { - uint16_t MechanicTimeSinceCall; - uint16_t NextInQueue; // 0x74 - }; - uint8_t Pad76; - uint8_t Pad77; - union - { - uint8_t MazeLastEdge; // 0x78 - uint8_t Direction; - }; - RCT12RideId InteractionRideIndex; - uint16_t TimeInQueue; // 0x7A - uint8_t RidesBeenOn[32]; // 0x7C - uint32_t Id; // 0x9C - money32 CashInPocket; // 0xA0 - money32 CashSpent; // 0xA4 - int32_t ParkEntryTime; // 0xA8 - int8_t RejoinQueueTimeout; // 0xAC - RCT12RideId PreviousRide; // 0xAD - uint16_t PreviousRideTimeOut; // 0xAE - RCT12PeepThought Thoughts[Limits::kMaxPeepThoughts]; // 0xB0 - uint8_t PathCheckOptimisation; // 0xC4 - union - { - uint8_t StaffId; // 0xC5 - RCT12RideId GuestHeadingToRideId; // 0xC5 - }; - union - { - uint8_t StaffOrders; // 0xC6 - uint8_t PeepIsLostCountdown; // 0xC6 - }; - RCT12RideId Photo1RideRef; // 0xC7 - uint32_t PeepFlags; // 0xC8 - RCT12xyzd8 PathfindGoal; // 0xCC - RCT12xyzd8 PathfindHistory[4]; // 0xD0 - uint8_t NoActionFrameNum; // 0xE0 - uint8_t LitterCount; // 0xE1 - union - { - uint8_t TimeOnRide; // 0xE2 - uint8_t StaffMowingTimeout; // 0xE2 - }; - uint8_t DisgustingCount; // 0xE3 - union - { - money16 PaidToEnter; // 0xE4 - uint16_t StaffLawnsMown; // 0xE4 - uint16_t StaffRidesFixed; // 0xE4 - }; - union - { - money16 PaidOnRides; // 0xE6 - uint16_t StaffGardensWatered; // 0xE6 - uint16_t StaffRidesInspected; // 0xE6 - }; - union - { - money16 PaidOnFood; // 0xE8 - uint16_t StaffLitterSwept; // 0xE8 - }; - union - { - money16 PaidOnSouvenirs; // 0xEA - uint16_t StaffBinsEmptied; // 0xEA - }; - uint8_t NoOfFood; // 0xEC - uint8_t NoOfDrinks; // 0xED - uint8_t NoOfSouvenirs; // 0xEE - uint8_t VandalismSeen; // 0xEF 0xC0 vandalism thought timeout, 0x3F vandalism tiles seen - uint8_t VoucherType; // 0xF0 - RCT12RideId VoucherArguments; // 0xF1 ride_id or string_offset_id - uint8_t SurroundingsThoughtTimeout; // 0xF2 - uint8_t Angriness; // 0xF3 - uint8_t TimeLost; // 0xF4 the time the peep has been lost when it reaches 254 generates the lost thought - uint8_t DaysInQueue; // 0xF5 - uint8_t BalloonColour; // 0xF6 - uint8_t UmbrellaColour; // 0xF7 - uint8_t HatColour; // 0xF8 - RCT12RideId FavouriteRide; // 0xF9 - uint8_t FavouriteRideRating; // 0xFA - uint8_t PadFB; - uint32_t ItemStandardFlags; // 0xFC - uint64_t GetItemFlags() const - { - return ItemStandardFlags | (static_cast(ItemExtraFlags) << 32); - } - }; - static_assert(sizeof(Peep) == 0x100); - - enum class StaffMode : uint8_t - { - none, - walk, - patrol = 3 - }; - - union Entity - { - private: - uint8_t Pad00[0x100]; - - public: - RCT12EntityBase Unknown; - RCT2::Vehicle Vehicle; - RCT2::Peep Peep; - RCT12EntityLitter Litter; - RCT12EntityBalloon Balloon; - RCT12EntityDuck Duck; - RCT12EntityJumpingFountain JumpingFountain{}; - RCT12EntityMoneyEffect MoneyEffect; - RCT12EntityCrashedVehicleParticle CrashedVehicleParticle; - RCT12EntityCrashSplash CrashSplash; - RCT12EntitySteamParticle SteamParticle; - RCT12EntityParticle MiscParticle; - }; - static_assert(sizeof(Entity) == 0x100); - - struct RideRatingCalculationData - { - uint16_t ProximityX; - uint16_t ProximityY; - uint16_t ProximityZ; - uint16_t ProximityStartX; - uint16_t ProximityStartY; - uint16_t ProximityStartZ; - uint8_t CurrentRide; - uint8_t State; - OpenRCT2::RCT12::TrackElemType ProximityTrackType; - uint8_t ProximityBaseHeight; - uint16_t ProximityTotal; - uint16_t ProximityScores[26]; - uint16_t NumBrakes; - uint16_t NumReversers; - uint16_t StationFlags; - }; - static_assert(sizeof(RideRatingCalculationData) == 76); - - /** - * SV6/SC6 header chunk - * size: 0x20 - */ - struct S6Header - { - uint8_t Type; // 0x00 - uint8_t ClassicFlag; // 0x01 - uint16_t NumPackedObjects; // 0x02 - uint32_t Version; // 0x04 - uint32_t MagicNumber; // 0x08 - uint8_t Pad0C[0x14]; - }; - static_assert(sizeof(S6Header) == 0x20); - - /** - * SC6 information chunk - * size: 0x198 - */ - struct S6Info - { - ::EditorStep EditorStep; - Scenario::Category Category; // 0x01 - Scenario::ObjectiveType ObjectiveType; // 0x02 - uint8_t ObjectiveArg1; // 0x03 - int32_t ObjectiveArg2; // 0x04 - uint16_t ObjectiveArg3; // 0x08 - uint8_t Pad00A[0x3E]; - char Name[64]; // 0x48 - char Details[256]; // 0x88 - RCTObjectEntry Entry; // 0x188 - }; - static_assert(sizeof(S6Info) == 0x198); - - struct S6Data - { - // SC6[0] - S6Header Header; - - // SC6[1] - S6Info Info; - - // SC6[2] - // packed objects - - // SC6[3] - union - { - RCTObjectEntry Objects[kRCT2ObjectEntryCount]; - struct - { - RCTObjectEntry RideObjects[Limits::kMaxRideObjects]; - RCTObjectEntry SceneryObjects[Limits::kMaxSmallSceneryObjects]; - RCTObjectEntry LargeSceneryObjects[Limits::kMaxLargeSceneryObjects]; - RCTObjectEntry WallSceneryObjects[Limits::kMaxWallSceneryObjects]; - RCTObjectEntry BannerObjects[Limits::kMaxBannerObjects]; - RCTObjectEntry PathObjects[Limits::kMaxPathObjects]; - RCTObjectEntry PathAdditionObjects[Limits::kMaxPathAdditionObjects]; - RCTObjectEntry SceneryGroupObjects[Limits::kMaxSceneryGroupObjects]; - RCTObjectEntry ParkEntranceObjects[Limits::kMaxParkEntranceObjects]; - RCTObjectEntry WaterObjects[Limits::kMaxWaterObjects]; - RCTObjectEntry ScenarioMetaObjects[Limits::kMaxScenarioMetaObjects]; - }; - }; - - // SC6[4] - uint16_t ElapsedMonths; - uint16_t CurrentDay; - uint32_t ScenarioTicks; - uint32_t ScenarioSrand0; - uint32_t ScenarioSrand1; - - // SC6[5] - RCT12TileElement TileElements[Limits::kMaxTileElements]; - - // SC6[6] - uint32_t NextFreeTileElementPointerIndex; - Entity Entities[Limits::kMaxEntitiesRCTCExtended]; - uint16_t EntityListsHead[EnumValue(EntityListId::count)]; - uint16_t EntityListsCount[EnumValue(EntityListId::count)]; - StringId ParkName; - uint8_t Pad013573D6[2]; - uint32_t ParkNameArgs; - money32 InitialCash; - money32 CurrentLoan; - uint32_t ParkFlags; - money16 ParkEntranceFee; - uint16_t RCT1ParkEntranceX; - uint16_t RCT1ParkEntranceY; - uint8_t Pad013573EE[2]; - uint8_t RCT1ParkEntranceZ; - uint8_t Pad013573F1; - RCT12PeepSpawn PeepSpawns[Limits::kMaxPeepSpawns]; - uint8_t GuestCountChangeModifier; - uint8_t CurrentResearchLevel; - uint8_t Pad01357400[4]; - uint32_t ResearchedRideTypes[Limits::kMaxResearchedRideTypeQuads]; - uint32_t ResearchedRideEntries[Limits::kMaxResearchedRideEntryQuads]; - uint32_t ResearchedTrackTypesA[128]; - uint32_t ResearchedTrackTypesB[128]; - - // SC6[7] - uint16_t GuestsInPark; - uint16_t GuestsHeadingForPark; - - // Ignored in scenario - money32 ExpenditureTable[Limits::kExpenditureTableMonthCount][Limits::kExpenditureTypeCount]; - - // SC6[8] - uint16_t LastGuestsInPark; - uint8_t Pad01357BCA[3]; - uint8_t HandymanColour; - uint8_t MechanicColour; - uint8_t SecurityColour; - - // Ignored in scenario - uint32_t ResearchedSceneryItems[Limits::kMaxResearchedSceneryItemQuads]; - - // SC6[9] - uint16_t ParkRating; - - // Ignored in scenario - uint8_t ParkRatingHistory[kParkRatingHistorySize]; - uint8_t GuestsInParkHistory[kGuestsInParkHistorySize]; - - // SC6[10] - uint8_t ActiveResearchTypes; - uint8_t ResearchProgressStage; - uint32_t LastResearchedItemSubject; - uint8_t Pad01357CF8[1000]; - uint32_t NextResearchItem; - uint16_t ResearchProgress; - uint8_t NextResearchCategory; - uint8_t NextResearchExpectedDay; - uint8_t NextResearchExpectedMonth; - uint8_t GuestInitialHappiness; - uint16_t ParkSize; - uint16_t GuestGenerationProbability; - uint16_t TotalRideValueForMoney; - money32 MaximumLoan; - money16 GuestInitialCash; - uint8_t GuestInitialHunger; - uint8_t GuestInitialThirst; - Scenario::ObjectiveType ObjectiveType; - uint8_t ObjectiveYear; - uint8_t Pad013580FA[2]; - money32 ObjectiveCurrency; - uint16_t ObjectiveGuests; - uint8_t CampaignWeeksLeft[20]; - uint8_t CampaignRideIndex[22]; - - // Ignored in scenario - money32 BalanceHistory[Limits::kFinanceGraphSize]; - - // SC6[11] - money32 CurrentExpenditure; - money32 CurrentProfit; - money32 WeeklyProfitAverageDividend; - uint16_t WeeklyProfitAverageDivisor; - uint8_t Pad0135833A[2]; - - // Ignored in scenario - money32 WeeklyProfitHistory[Limits::kFinanceGraphSize]; - - // SC6[12] - money32 ParkValue; - - // Ignored in scenario - money32 ParkValueHistory[Limits::kFinanceGraphSize]; - - // SC6[13] - money32 CompletedCompanyValue; - uint32_t TotalAdmissions; - money32 IncomeFromAdmissions; - money32 CompanyValue; - uint8_t PeepWarningThrottle[16]; - RCT12Award Awards[Limits::kMaxAwards]; - money16 LandPrice; - money16 ConstructionRightsPrice; - uint16_t Word01358774; - uint8_t Pad01358776[2]; - uint32_t CDKey; - uint8_t Pad0135877C[64]; - uint32_t GameVersionNumber; - money32 CompletedCompanyValueRecord; - uint32_t LoanHash; - uint16_t RideCount; - uint8_t Pad013587CA[6]; - money32 HistoricalProfit; - uint8_t Pad013587D4[4]; - char ScenarioCompletedName[32]; - money32 Cash; - uint8_t Pad013587FC[50]; - uint16_t ParkRatingCasualtyPenalty; - uint16_t MapSizeUnits; - uint16_t MapSizeMinus2; - uint16_t MapSize; - uint16_t MapMaxXy; - uint32_t SamePriceThroughout; - uint16_t SuggestedMaxGuests; - uint16_t ParkRatingWarningDays; - uint8_t LastEntranceStyle; - uint8_t RCT1WaterColour; - uint8_t Pad01358842[2]; - RCT12ResearchItem ResearchItems[Limits::kMaxResearchItems]; - uint16_t MapBaseZ; - char ScenarioName[64]; - char ScenarioDescription[256]; - uint8_t CurrentInterestRate; - uint8_t Pad0135934B; - uint32_t SamePriceThroughoutExtended; - int16_t ParkEntranceX[Limits::kMaxParkEntrances]; - int16_t ParkEntranceY[Limits::kMaxParkEntrances]; - int16_t ParkEntranceZ[Limits::kMaxParkEntrances]; - uint8_t ParkEntranceDirection[Limits::kMaxParkEntrances]; - char ScenarioFilename[256]; - uint8_t SavedExpansionPackNames[3256]; - RCT12Banner Banners[Limits::kMaxBanners]; - char CustomStrings[Limits::kMaxUserStrings][Limits::kMaxUserStringLength]; - uint32_t GameTicks1; - Ride Rides[Limits::kMaxRidesInPark]; - uint16_t SavedAge; // unused - int16_t SavedViewX; - int16_t SavedViewY; - uint8_t SavedViewZoom; - uint8_t SavedViewRotation; - RCT12MapAnimation MapAnimations[Limits::kMaxAnimatedObjects]; - uint16_t NumMapAnimations; - uint8_t Pad0138B582[2]; - RideRatingCalculationData RideRatingsCalcData; - uint8_t Pad0138B5D0[60]; - RCT12RideMeasurement RideMeasurements[8]; - uint32_t NextGuestIndex; - uint16_t GrassAndSceneryTilepos; - uint32_t PatrolAreas[(Limits::kMaxStaff + Limits::kStaffTypeCount) * Limits::kPatrolAreaSize]; - StaffMode StaffModes[Limits::kMaxStaff + Limits::kStaffTypeCount]; - uint8_t Pad13CA73E; - uint8_t Pad13CA73F; - uint8_t Byte13CA740; - uint8_t Pad13CA741; - uint8_t Byte13CA742[4]; // unused - RCT12::ClimateType Climate; - uint8_t Pad013CA747; - uint16_t WeatherUpdateTimer; - uint8_t CurrentWeather; - uint8_t NextWeather; - uint8_t Temperature; - uint8_t NextTemperature; - uint8_t CurrentWeatherEffect; - uint8_t NextWeatherEffect; - uint8_t CurrentWeatherGloom; - uint8_t NextWeatherGloom; - uint8_t CurrentWeatherLevel; - uint8_t NextWeatherLevel; - RCT12NewsItem recentMessages[Limits::kMaxRecentNewsItems]; - RCT12NewsItem archivedMessages[Limits::kMaxArchivedNewsItems]; - char RCT1ScenarioName[62]; // Unused in RCT2 - uint16_t RCT1ScenarioSlotIndex; // Unused in RCT2 - uint32_t RCT1ScenarioFlags; // Unused in RCT2 - uint16_t WidePathTileLoopX; - uint16_t WidePathTileLoopY; - uint8_t Pad13CE778[434]; - }; - static_assert(sizeof(S6Data) == 0x5a3c4a); - - struct StexEntry - { - StringId ScenarioName; // 0x00 - StringId ParkName; // 0x02 - StringId Details; // 0x04 - uint8_t Var06; - }; - static_assert(sizeof(StexEntry) == 7); -#pragma pack(pop) - - ObjectEntryIndex RCT2RideTypeToOpenRCT2RideType(uint8_t rct2RideType, const RideObjectEntry& rideEntry); - bool RCT2RideTypeNeedsConversion(uint8_t rct2RideType); - uint8_t OpenRCT2RideTypeToRCT2RideType(ObjectEntryIndex openrct2Type); - - enum class OriginalRideClass - { - regular, - wildMouse, - flatRide, - }; - - OpenRCT2::TrackElemType RCT2TrackTypeToOpenRCT2( - OpenRCT2::RCT12::TrackElemType origTrackType, ride_type_t rideType, bool isFlatRide); - OpenRCT2::TrackElemType RCT2TrackTypeToOpenRCT2( - OpenRCT2::RCT12::TrackElemType origTrackType, OriginalRideClass originalClass); - OpenRCT2::RCT12::TrackElemType OpenRCT2TrackTypeToRCT2(OpenRCT2::TrackElemType origTrackType); - - struct FootpathMapping - { - std::string_view Original; - std::string_view NormalSurface; - std::string_view QueueSurface; - std::string_view Railing; - }; - - const FootpathMapping* GetFootpathSurfaceId( - const ObjectEntryDescriptor& desc, bool ideallyLoaded = false, bool isQueue = false); - std::optional GetBestObjectEntryForSurface(std::string_view surface, std::string_view railings); - - static constexpr std::string_view DefaultTerrainSurfaces[] = { - "rct2.terrain_surface.grass", "rct2.terrain_surface.sand", "rct2.terrain_surface.dirt", - "rct2.terrain_surface.rock", "rct2.terrain_surface.martian", "rct2.terrain_surface.chequerboard", - "rct2.terrain_surface.grass_clumps", "rct2.terrain_surface.ice", "rct2.terrain_surface.grid_red", - "rct2.terrain_surface.grid_yellow", "rct2.terrain_surface.grid_purple", "rct2.terrain_surface.grid_green", - "rct2.terrain_surface.sand_red", "rct2.terrain_surface.sand_brown", - }; - - // Additional surface styles added to OpenRCT2 as a feature if RCT1 linked - static constexpr std::string_view OpenRCT2HybridTerrainSurfaces[] = { - "rct1aa.terrain_surface.roof_red", - "rct1ll.terrain_surface.roof_grey", - "rct1ll.terrain_surface.rust", - "rct1ll.terrain_surface.wood", - }; - - static constexpr std::string_view DefaultTerrainEdges[] = { - "rct2.terrain_edge.rock", - "rct2.terrain_edge.wood_red", - "rct2.terrain_edge.wood_black", - "rct2.terrain_edge.ice", - }; - - // Additional surface edges added to OpenRCT2 as a feature if RCT1 was linked - static constexpr std::string_view OpenRCT2HybridTerrainEdges[] = { - "rct1.terrain_edge.brick", "rct1.terrain_edge.iron", "rct1aa.terrain_edge.grey", - "rct1aa.terrain_edge.yellow", "rct1aa.terrain_edge.red", "rct1ll.terrain_edge.purple", - "rct1ll.terrain_edge.green", "rct1ll.terrain_edge.stone_brown", "rct1ll.terrain_edge.stone_grey", - "rct1ll.terrain_edge.skyscraper_a", "rct1ll.terrain_edge.skyscraper_b", - }; -} // namespace OpenRCT2::RCT2 - -std::vector DecryptSea(const fs::path& path); diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index 037e682bef15..1c510ee241a1 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -32,6 +32,7 @@ #include "../actions/WallPlaceAction.h" #include "../actions/WallRemoveAction.h" #include "../audio/Audio.h" +#include "../compatibility/rct2/RCT2.h" #include "../config/Config.h" #include "../core/DataSerialiser.h" #include "../core/File.h" @@ -53,7 +54,6 @@ #include "../object/ObjectRepository.h" #include "../object/SmallSceneryEntry.h" #include "../object/StationObject.h" -#include "../rct2/RCT2.h" #include "../ride/RideConstruction.h" #include "../sawyer_coding/SawyerCoding.h" #include "../world/Footpath.h" diff --git a/src/openrct2/ride/TrackDesignSave.cpp b/src/openrct2/ride/TrackDesignSave.cpp index 478643f98559..4a1a69b55707 100644 --- a/src/openrct2/ride/TrackDesignSave.cpp +++ b/src/openrct2/ride/TrackDesignSave.cpp @@ -11,6 +11,7 @@ #include "../Diagnostic.h" #include "../Game.h" #include "../audio/Audio.h" +#include "../compatibility/rct2/RCT2.h" #include "../drawing/Drawing.h" #include "../interface/Viewport.h" #include "../localisation/Formatter.h" @@ -21,7 +22,6 @@ #include "../object/LargeSceneryObject.h" #include "../object/ObjectList.h" #include "../object/ObjectManager.h" -#include "../rct2/RCT2.h" #include "../sawyer_coding/SawyerCoding.h" #include "../windows/Intent.h" #include "../world/Footpath.h" diff --git a/src/openrct2/scenario/ScenarioRepository.cpp b/src/openrct2/scenario/ScenarioRepository.cpp index c24dd43787f1..03a380bb36e9 100644 --- a/src/openrct2/scenario/ScenarioRepository.cpp +++ b/src/openrct2/scenario/ScenarioRepository.cpp @@ -14,6 +14,7 @@ #include "../Game.h" #include "../ParkImporter.h" #include "../PlatformEnvironment.h" +#include "../compatibility/rct2/RCT2.h" #include "../compatibility/shared/CSStringConverter.h" #include "../compatibility/shared/RCT12.h" #include "../config/Config.h" @@ -28,7 +29,6 @@ #include "../localisation/LocalisationService.h" #include "../platform/Crash.h" #include "../platform/Platform.h" -#include "../rct2/RCT2.h" #include "../sawyer_coding/SawyerChunkReader.h" #include "Scenario.h" #include "ScenarioCategory.h" diff --git a/test/tests/S6ImportExportTests.cpp b/test/tests/S6ImportExportTests.cpp index 774edce68072..d6a9390ef8e1 100644 --- a/test/tests/S6ImportExportTests.cpp +++ b/test/tests/S6ImportExportTests.cpp @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include From 85b9a1a5bb90e6a32b393eee29ddec8531737cf5 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 00:49:50 -0300 Subject: [PATCH 18/26] Move RCT2.cpp to /compatibility/rct2 --- .../{ => compatibility}/rct2/RCT2.cpp | 16 ++-- src/openrct2/compatibility/rct2/RCT2.h | 14 +-- src/openrct2/libopenrct2.vcxproj | 85 ++++++++++++++++++- 3 files changed, 99 insertions(+), 16 deletions(-) rename src/openrct2/{ => compatibility}/rct2/RCT2.cpp (97%) diff --git a/src/openrct2/rct2/RCT2.cpp b/src/openrct2/compatibility/rct2/RCT2.cpp similarity index 97% rename from src/openrct2/rct2/RCT2.cpp rename to src/openrct2/compatibility/rct2/RCT2.cpp index 25090cb4e9c4..c2f85b48c70d 100644 --- a/src/openrct2/rct2/RCT2.cpp +++ b/src/openrct2/compatibility/rct2/RCT2.cpp @@ -7,15 +7,15 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../compatibility/rct2/RCT2.h" +#include "../rct2/RCT2.h" -#include "../Context.h" -#include "../object/Object.h" -#include "../object/ObjectList.h" -#include "../object/ObjectManager.h" -#include "../ride/Ride.h" -#include "../ride/RideData.h" -#include "../ride/Track.h" +#include "../../Context.h" +#include "../../object/Object.h" +#include "../../object/ObjectList.h" +#include "../../object/ObjectManager.h" +#include "../../ride/Ride.h" +#include "../../ride/RideData.h" +#include "../../ride/Track.h" #include #include diff --git a/src/openrct2/compatibility/rct2/RCT2.h b/src/openrct2/compatibility/rct2/RCT2.h index ad8f3abadbd1..d7b902912049 100644 --- a/src/openrct2/compatibility/rct2/RCT2.h +++ b/src/openrct2/compatibility/rct2/RCT2.h @@ -9,13 +9,13 @@ #pragma once -#include "../compatibility/rct2/Limits.h" -#include "../compatibility/shared/RCT12.h" -#include "../core/FileSystem.hpp" -#include "../core/FixedPoint.hpp" -#include "../ride/Angles.h" -#include "../ride/RideRatings.h" -#include "../world/ParkData.h" +#include "../../core/FileSystem.hpp" +#include "../../core/FixedPoint.hpp" +#include "../../ride/Angles.h" +#include "../../ride/RideRatings.h" +#include "../../world/ParkData.h" +#include "../rct2/Limits.h" +#include "../shared/RCT12.h" #include diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 0b4f73c22cca..0d68ca64a241 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -790,6 +790,87 @@ + + Level4 + 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; + 4263;4265;4548;4549;4555 + USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; + MultiThreaded + true + true + /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- + Full + true + true + false + Speed + NoListing + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Default + Default + false + Default + Column + false + Prompt + false + Sync + false + false + false + NotSet + NotSet + Precise + true + openrct2_pch.h + false + false + false + Default + false + Default + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + Cdecl + C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb + Use + openrct2_pch.h + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch + false + false + false + true + false + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + true + false + false + Default + false + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ + false + true + true + true + C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ + ProgramDatabase + false + false + false + InheritWarningLevel + true + false + true + Level4 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; @@ -2041,7 +2122,6 @@ - @@ -2168,5 +2248,8 @@ {c453da76-44b3-4ac8-aaa2-2b64a76993a5} + + + From 39bff6c5eebcc452db46ab80a31443435c08393a Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 00:57:50 -0300 Subject: [PATCH 19/26] Fix missing include error in tests project --- test/tests/S6ImportExportTests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tests/S6ImportExportTests.cpp b/test/tests/S6ImportExportTests.cpp index d6a9390ef8e1..220801589cc4 100644 --- a/test/tests/S6ImportExportTests.cpp +++ b/test/tests/S6ImportExportTests.cpp @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include From 6c0c965cdcc00c82b128cd24a60fe26f48d08a9d Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 00:57:50 -0300 Subject: [PATCH 20/26] Fix missing include error in tests project --- test/tests/S6ImportExportTests.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tests/S6ImportExportTests.cpp b/test/tests/S6ImportExportTests.cpp index d6a9390ef8e1..99df2652113f 100644 --- a/test/tests/S6ImportExportTests.cpp +++ b/test/tests/S6ImportExportTests.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -26,7 +27,6 @@ #include #include #include -#include #include #include #include From 17ef4edc7c007c2f29dc42f0c0db111c533ebd0c Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:18:41 -0300 Subject: [PATCH 21/26] Fix libopenrct2.vcxproj file --- src/openrct2/libopenrct2.vcxproj | 1042 +----------------------------- 1 file changed, 1 insertion(+), 1041 deletions(-) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 0d68ca64a241..d5974615c415 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -790,1059 +790,19 @@ - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - + - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - From a8a1c9f20ef77bc545535402b3ac7eb9576fb2af Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:18:41 -0300 Subject: [PATCH 22/26] Fix libopenrct2.vcxproj file --- src/openrct2/libopenrct2.vcxproj | 1066 +----------------------------- 1 file changed, 13 insertions(+), 1053 deletions(-) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 0d68ca64a241..3633cf5c8ade 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -790,1059 +790,19 @@ - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - - - Level4 - 4068;4091;4100;4121;4132;4200;4201;4204;4206;4221;4244; - 4263;4265;4548;4549;4555 - USE_FRIBIDI;__ENABLE_DISCORD__;_UNICODE;UNICODE;NDEBUG;ENABLE_SCRIPTING;__AVX2__;__SSE4_1__;OPENGL_NO_LINK;_CRT_SECURE_NO_WARNINGS;SDL_MAIN_HANDLED;_WINSOCK_DEPRECATED_NO_WARNINGS;NOMINMAX;WIN32_LEAN_AND_MEAN; - MultiThreaded - true - true - /utf-8 /std:c++20 /permissive- /Zc:externConstexpr /Zc:char8_t- - Full - true - true - false - Speed - NoListing - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Default - Default - false - Default - Column - false - Prompt - false - Sync - false - false - false - NotSet - NotSet - Precise - true - openrct2_pch.h - false - false - false - Default - false - Default - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - Cdecl - C:\Users\Matheus\Documents\GitHub\OpenRCT2\bin\libopenrct2.pdb - Use - openrct2_pch.h - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.pch - false - false - false - true - false - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - true - false - false - Default - false - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\libopenrct2.tlog\ - false - true - true - true - C:\Users\Matheus\Documents\GitHub\OpenRCT2\obj\libopenrct2\Release_x64\ - ProgramDatabase - false - false - false - InheritWarningLevel - true - false - true - + + + + + + + + + + + + + From 5e90d79853563d10f01a04c80419c451446567fe Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:40:15 -0300 Subject: [PATCH 23/26] Change rct2.h location in libopenrct2.vcxproj --- src/openrct2/libopenrct2.vcxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 3633cf5c8ade..e06fea068177 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,7 +176,6 @@ - @@ -189,6 +188,7 @@ + From edef785e59efe27118b8f79246ad5c93674391dc Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 01:40:15 -0300 Subject: [PATCH 24/26] Change rct2.h location in libopenrct2.vcxproj --- src/openrct2/libopenrct2.vcxproj | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 3633cf5c8ade..2a02d4d8297c 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,7 +176,6 @@ - @@ -189,6 +188,7 @@ + @@ -1208,8 +1208,5 @@ {c453da76-44b3-4ac8-aaa2-2b64a76993a5} - - - From cd25a1f67b70adc0295226d609324bb0658f39f9 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 02:34:27 -0300 Subject: [PATCH 25/26] Create FlagHoldersFwd.h --- src/openrct2/compatibility/FlagHoldersFwd.h | 20 ++++++++++++++++++++ src/openrct2/compatibility/rct2/RCT2.h | 6 +----- src/openrct2/compatibility/shared/RCT12.h | 5 +---- src/openrct2/libopenrct2.vcxproj | 1 + 4 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 src/openrct2/compatibility/FlagHoldersFwd.h diff --git a/src/openrct2/compatibility/FlagHoldersFwd.h b/src/openrct2/compatibility/FlagHoldersFwd.h new file mode 100644 index 000000000000..7e33a091f423 --- /dev/null +++ b/src/openrct2/compatibility/FlagHoldersFwd.h @@ -0,0 +1,20 @@ +/***************************************************************************** + * Copyright (c) 2014-2026 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#pragma once + +#include "../core/FlagHolder.hpp" + +#include + +enum class BannerFlag : uint8_t; // Banner.h +enum class RideInvalidateFlag : uint8_t; // Ride.h + +using BannerFlags = FlagHolder; +using RideInvalidateFlags = FlagHolder; diff --git a/src/openrct2/compatibility/rct2/RCT2.h b/src/openrct2/compatibility/rct2/RCT2.h index d7b902912049..fbad465db20a 100644 --- a/src/openrct2/compatibility/rct2/RCT2.h +++ b/src/openrct2/compatibility/rct2/RCT2.h @@ -14,6 +14,7 @@ #include "../../ride/Angles.h" #include "../../ride/RideRatings.h" #include "../../world/ParkData.h" +#include "../FlagHoldersFwd.h" #include "../rct2/Limits.h" #include "../shared/RCT12.h" @@ -22,13 +23,8 @@ struct RideObjectEntry; enum class EditorStep : uint8_t; enum class MechanicStatus : uint8_t; -enum class RideInvalidateFlag : uint8_t; enum class VehicleColourSettings : uint8_t; -template -struct FlagHolder; -using RideInvalidateFlags = FlagHolder; - namespace OpenRCT2::Scenario { enum class Category : uint8_t; diff --git a/src/openrct2/compatibility/shared/RCT12.h b/src/openrct2/compatibility/shared/RCT12.h index 6d5d4fa0b7bf..ed3209261c5c 100644 --- a/src/openrct2/compatibility/shared/RCT12.h +++ b/src/openrct2/compatibility/shared/RCT12.h @@ -11,14 +11,13 @@ // Structures shared between both RCT1 and RCT2. -#include "../../core/EnumUtils.hpp" -#include "../../core/FlagHolder.hpp" #include "../../core/Money.hpp" #include "../../entity/Fountain.h" #include "../../management/Research.h" #include "../../object/Object.h" #include "../../ride/RideTypes.h" #include "../../world/tile_element/TileElementType.h" +#include "../FlagHoldersFwd.h" #include "Limits.h" #include @@ -382,8 +381,6 @@ constexpr uint8_t kRCT12InversionAndHoleMask = 0b00011111; constexpr uint8_t kRCT12RideNumDropsMask = 0b00111111; enum class RideColourScheme : uint8_t; -enum class BannerFlag : uint8_t; -using BannerFlags = FlagHolder; enum { diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index 2a02d4d8297c..d98e962b87f6 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -176,6 +176,7 @@ + From c42788eeb2db537ec071873837aee9e06d1d06d7 Mon Sep 17 00:00:00 2001 From: matheusvb3 <98937378+matheusvb3@users.noreply.github.com> Date: Sat, 10 Jan 2026 02:54:40 -0300 Subject: [PATCH 26/26] Tidy up some header includes --- src/openrct2/compatibility/rct2/RCT2.cpp | 2 +- src/openrct2/compatibility/shared/ScenarioPatcher.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/openrct2/compatibility/rct2/RCT2.cpp b/src/openrct2/compatibility/rct2/RCT2.cpp index c2f85b48c70d..89bdbf59012f 100644 --- a/src/openrct2/compatibility/rct2/RCT2.cpp +++ b/src/openrct2/compatibility/rct2/RCT2.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../rct2/RCT2.h" +#include "RCT2.h" #include "../../Context.h" #include "../../object/Object.h" diff --git a/src/openrct2/compatibility/shared/ScenarioPatcher.cpp b/src/openrct2/compatibility/shared/ScenarioPatcher.cpp index 762308c1daf5..7709a1d5cdbb 100644 --- a/src/openrct2/compatibility/shared/ScenarioPatcher.cpp +++ b/src/openrct2/compatibility/shared/ScenarioPatcher.cpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "../shared/ScenarioPatcher.h" +#include "ScenarioPatcher.h" #include "../../Context.h" #include "../../Game.h"