load brake from parkfile

This commit is contained in:
Spacek531 2023-03-05 22:26:07 -08:00
parent 7fe9580131
commit ba5627c544
2 changed files with 33 additions and 5 deletions

View File

@ -64,6 +64,8 @@
#include <string_view>
#include <vector>
constexpr const uint32_t BlockBrakeImprovementsVersion = 27;
using namespace OpenRCT2;
namespace OpenRCT2
@ -1092,12 +1094,19 @@ namespace OpenRCT2
else if (it.element->GetType() == TileElementType::Track)
{
auto* trackElement = it.element->AsTrack();
auto trackType = trackElement->GetTrackType();
if (TrackTypeMustBeMadeInvisible(
trackElement->GetRideType(), trackElement->GetTrackType(),
os.GetHeader().TargetVersion))
trackElement->GetRideType(), trackType, os.GetHeader().TargetVersion))
{
it.element->SetInvisible(true);
}
if (os.GetHeader().TargetVersion < BlockBrakeImprovementsVersion)
{
if (trackType == TrackElemType::Brakes)
trackElement->SetBrakeClosed(true);
if (trackType == TrackElemType::BlockBrakes)
trackElement->SetBrakeBoosterSpeed(kRCT2DefaultBlockBrakeSpeed);
}
}
else if (
it.element->GetType() == TileElementType::SmallScenery && os.GetHeader().TargetVersion < 23)
@ -2088,7 +2097,18 @@ namespace OpenRCT2
cs.ReadWrite(entity.scream_sound_id);
cs.ReadWrite(entity.TrackSubposition);
cs.ReadWrite(entity.NumLaps);
cs.ReadWrite(entity.brake_speed);
if (cs.GetMode() == OrcaStream::Mode::READING && os.GetHeader().TargetVersion < BlockBrakeImprovementsVersion)
{
uint8_t brakeSpeed;
cs.ReadWrite(brakeSpeed);
if (entity.GetTrackType() == TrackElemType::BlockBrakes)
brakeSpeed = kRCT2DefaultBlockBrakeSpeed;
entity.brake_speed = brakeSpeed;
}
else
{
cs.ReadWrite(entity.brake_speed);
}
cs.ReadWrite(entity.lost_time_out);
cs.ReadWrite(entity.vertical_drop_countdown);
cs.ReadWrite(entity.var_D3);
@ -2107,6 +2127,14 @@ namespace OpenRCT2
entity.SetFlag(VehicleFlags::Crashed);
}
}
if (cs.GetMode() == OrcaStream::Mode::READING && os.GetHeader().TargetVersion < BlockBrakeImprovementsVersion)
{
entity.BlockBrakeSpeed = kRCT2DefaultBlockBrakeSpeed;
}
else
{
cs.ReadWrite(entity.BlockBrakeSpeed);
}
}
template<> void ParkFile::ReadWriteEntity(OrcaStream& os, OrcaStream::ChunkStream& cs, Guest& guest)

View File

@ -9,10 +9,10 @@ struct ObjectRepositoryItem;
namespace OpenRCT2
{
// Current version that is saved.
constexpr uint32_t PARK_FILE_CURRENT_VERSION = 26;
constexpr uint32_t PARK_FILE_CURRENT_VERSION = 27;
// The minimum version that is forwards compatible with the current version.
constexpr uint32_t PARK_FILE_MIN_VERSION = 26;
constexpr uint32_t PARK_FILE_MIN_VERSION = 27;
// The minimum version that is backwards compatible with the current version.
// If this is increased beyond 0, uncomment the checks in ParkFile.cpp and Context.cpp!