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.
- 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.
- Fix: [#20198] Guest inventory from RCT1 base game saves is not imported.
- 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: [#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
};
RCT12RideId Photo1RideRef; // 0xC7
uint32_t PeepFlags; // 0xC8
uint8_t PeepFlags; // 0xC8
uint8_t padC9; // 0xC9
uint16_t itemFlagsBase; // 0xCA
RCT12xyzd8 PathfindGoal; // 0xCC
RCT12xyzd8 PathfindHistory[4]; // 0xD0
uint8_t NoActionFrameNum; // 0xE0
@@ -692,10 +694,10 @@ namespace OpenRCT2::RCT1
RCT12RideId FavouriteRide; // 0xF9
uint8_t FavouriteRideRating; // 0xFA
uint8_t PadFB;
uint32_t ItemStandardFlags; // 0xFC
uint64_t GetItemFlags() const
uint32_t itemFlagsAALL; // 0xFC
uint64_t GetItemFlags(bool isBase) const
{
return ItemStandardFlags;
return isBase ? itemFlagsBase : itemFlagsAALL;
}
};
static_assert(sizeof(Peep) == 0x100);

View File

@@ -2933,18 +2933,20 @@ namespace OpenRCT2::RCT1
dst->OutsideOfPark = static_cast<bool>(src->OutsideOfPark);
dst->TimeToConsume = src->TimeToConsume;
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)
{
dst->UmbrellaColour = COLOUR_BRIGHT_RED;
dst->BalloonColour = COLOUR_LIGHT_BLUE;
}
else
{
dst->UmbrellaColour = RCT1::GetColour(src->UmbrellaColour);
dst->BalloonColour = RCT1::GetColour(src->BalloonColour);
}
dst->HatColour = RCT1::GetColour(src->HatColour);
dst->Happiness = src->Happiness;
dst->HappinessTarget = src->HappinessTarget;
dst->Nausea = src->Nausea;
@@ -3012,7 +3014,7 @@ namespace OpenRCT2::RCT1
dst->FavouriteRideRating = 0;
}
dst->SetItemFlags(src->GetItemFlags());
dst->SetItemFlags(src->GetItemFlags(_gameVersion == FILE_VERSION_RCT1));
}
template<>