1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-23 15:52:55 +01:00

Fix #20198: Guest inventory from RCT1 base game saves is not imported

This commit is contained in:
Gymnasiast
2025-10-25 00:27:34 +02:00
parent 218318cf7f
commit 32d59c9746
3 changed files with 13 additions and 8 deletions

View File

@@ -6,6 +6,7 @@
- Improved: [#25349] Recent Messages window can now be fully themed. - Improved: [#25349] Recent Messages window can now be fully themed.
- Change: [#25089] Peep actions and animations that cause them to stop moving no longer trigger when they are on a level crossing. - Change: [#25089] Peep actions and animations that cause them to stop moving no longer trigger when they are on a level crossing.
- Change: [#25337] Placing track designs with scenery that is obstructed no longer disables all of the scenery. - Change: [#25337] Placing track designs with scenery that is obstructed no longer disables all of the scenery.
- Fix: [#20198] Guest inventory from RCT1 base game saves is not imported.
- Fix: [#20486] Multiplayer desync when placing track designs without any scenery. - Fix: [#20486] Multiplayer desync when placing track designs without any scenery.
- Fix: [#22779, #25330] Incorrect queue paths in Nevermore Park and Six Flags Holland scenarios (bug in the original scenarios). - Fix: [#22779, #25330] Incorrect queue paths in Nevermore Park and Six Flags Holland scenarios (bug in the original scenarios).
- Fix: [#24975] The Corkscrew and LIM Launched (original bug) roller coaster quarter loop tunnels are too high. - Fix: [#24975] The Corkscrew and LIM Launched (original bug) roller coaster quarter loop tunnels are too high.

View File

@@ -659,7 +659,9 @@ namespace OpenRCT2::RCT1
uint8_t PeepIsLostCountdown; // 0xC6 uint8_t PeepIsLostCountdown; // 0xC6
}; };
RCT12RideId Photo1RideRef; // 0xC7 RCT12RideId Photo1RideRef; // 0xC7
uint32_t PeepFlags; // 0xC8 uint8_t PeepFlags; // 0xC8
uint8_t padC9; // 0xC9
uint16_t itemFlagsBase; // 0xCA
RCT12xyzd8 PathfindGoal; // 0xCC RCT12xyzd8 PathfindGoal; // 0xCC
RCT12xyzd8 PathfindHistory[4]; // 0xD0 RCT12xyzd8 PathfindHistory[4]; // 0xD0
uint8_t NoActionFrameNum; // 0xE0 uint8_t NoActionFrameNum; // 0xE0
@@ -692,10 +694,10 @@ namespace OpenRCT2::RCT1
RCT12RideId FavouriteRide; // 0xF9 RCT12RideId FavouriteRide; // 0xF9
uint8_t FavouriteRideRating; // 0xFA uint8_t FavouriteRideRating; // 0xFA
uint8_t PadFB; uint8_t PadFB;
uint32_t ItemStandardFlags; // 0xFC uint32_t itemFlagsAALL; // 0xFC
uint64_t GetItemFlags() const uint64_t GetItemFlags(bool isBase) const
{ {
return ItemStandardFlags; return isBase ? itemFlagsBase : itemFlagsAALL;
} }
}; };
static_assert(sizeof(Peep) == 0x100); static_assert(sizeof(Peep) == 0x100);

View File

@@ -2933,18 +2933,20 @@ namespace OpenRCT2::RCT1
dst->OutsideOfPark = static_cast<bool>(src->OutsideOfPark); dst->OutsideOfPark = static_cast<bool>(src->OutsideOfPark);
dst->TimeToConsume = src->TimeToConsume; dst->TimeToConsume = src->TimeToConsume;
dst->VandalismSeen = src->VandalismSeen; dst->VandalismSeen = src->VandalismSeen;
dst->UmbrellaColour = RCT1::GetColour(src->UmbrellaColour);
dst->HatColour = RCT1::GetColour(src->HatColour);
// Balloons were always blue in RCT1 without AA/LL // Balloons were always blue in RCT1 without AA/LL, umbrellas always red
if (_gameVersion == FILE_VERSION_RCT1) if (_gameVersion == FILE_VERSION_RCT1)
{ {
dst->UmbrellaColour = COLOUR_BRIGHT_RED;
dst->BalloonColour = COLOUR_LIGHT_BLUE; dst->BalloonColour = COLOUR_LIGHT_BLUE;
} }
else else
{ {
dst->UmbrellaColour = RCT1::GetColour(src->UmbrellaColour);
dst->BalloonColour = RCT1::GetColour(src->BalloonColour); dst->BalloonColour = RCT1::GetColour(src->BalloonColour);
} }
dst->HatColour = RCT1::GetColour(src->HatColour);
dst->Happiness = src->Happiness; dst->Happiness = src->Happiness;
dst->HappinessTarget = src->HappinessTarget; dst->HappinessTarget = src->HappinessTarget;
dst->Nausea = src->Nausea; dst->Nausea = src->Nausea;
@@ -3012,7 +3014,7 @@ namespace OpenRCT2::RCT1
dst->FavouriteRideRating = 0; dst->FavouriteRideRating = 0;
} }
dst->SetItemFlags(src->GetItemFlags()); dst->SetItemFlags(src->GetItemFlags(_gameVersion == FILE_VERSION_RCT1));
} }
template<> template<>