mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-20 05:23:04 +01:00
Make pre-existing wooden flat-to-steep pieces invisible
This commit is contained in:
@@ -66,8 +66,6 @@
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
|
||||
constexpr uint32_t BlockBrakeImprovementsVersion = 27;
|
||||
|
||||
using namespace OpenRCT2;
|
||||
|
||||
namespace OpenRCT2
|
||||
@@ -1104,7 +1102,7 @@ namespace OpenRCT2
|
||||
{
|
||||
it.element->SetInvisible(true);
|
||||
}
|
||||
if (os.GetHeader().TargetVersion < BlockBrakeImprovementsVersion)
|
||||
if (os.GetHeader().TargetVersion < kBlockBrakeImprovementsVersion)
|
||||
{
|
||||
if (trackType == TrackElemType::Brakes)
|
||||
trackElement->SetBrakeClosed(true);
|
||||
@@ -2102,7 +2100,7 @@ namespace OpenRCT2
|
||||
cs.ReadWrite(entity.scream_sound_id);
|
||||
cs.ReadWrite(entity.TrackSubposition);
|
||||
cs.ReadWrite(entity.NumLaps);
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING && os.GetHeader().TargetVersion < BlockBrakeImprovementsVersion)
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING && os.GetHeader().TargetVersion < kBlockBrakeImprovementsVersion)
|
||||
{
|
||||
uint8_t brakeSpeed;
|
||||
cs.ReadWrite(brakeSpeed);
|
||||
@@ -2132,7 +2130,7 @@ namespace OpenRCT2
|
||||
entity.SetFlag(VehicleFlags::Crashed);
|
||||
}
|
||||
}
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING && os.GetHeader().TargetVersion < BlockBrakeImprovementsVersion)
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING && os.GetHeader().TargetVersion < kBlockBrakeImprovementsVersion)
|
||||
{
|
||||
entity.BlockBrakeSpeed = kRCT2DefaultBlockBrakeSpeed;
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ namespace OpenRCT2
|
||||
struct GameState_t;
|
||||
|
||||
// Current version that is saved.
|
||||
constexpr uint32_t PARK_FILE_CURRENT_VERSION = 36;
|
||||
constexpr uint32_t PARK_FILE_CURRENT_VERSION = 37;
|
||||
|
||||
// The minimum version that is forwards compatible with the current version.
|
||||
constexpr uint32_t PARK_FILE_MIN_VERSION = 33;
|
||||
@@ -23,6 +23,12 @@ namespace OpenRCT2
|
||||
constexpr uint32_t PARK_FILE_MAGIC = 0x4B524150; // PARK
|
||||
|
||||
struct IStream;
|
||||
|
||||
// As uint16_t, in order to allow comparison with int32_t
|
||||
constexpr uint16_t kLogFlumeSteepSlopeVersion = 16;
|
||||
constexpr uint16_t kBlockBrakeImprovementsVersion = 27;
|
||||
constexpr uint16_t kGigaCoasterInversions = 31;
|
||||
constexpr uint16_t kWoodenFlatToSteepVersion = 37;
|
||||
} // namespace OpenRCT2
|
||||
|
||||
class ParkFileExporter
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "../interface/Viewport.h"
|
||||
#include "../management/Finance.h"
|
||||
#include "../network/network.h"
|
||||
#include "../park/ParkFile.h"
|
||||
#include "../platform/Platform.h"
|
||||
#include "../rct1/RCT1.h"
|
||||
#include "../ride/RideColour.h"
|
||||
@@ -1007,7 +1008,7 @@ bool TrackTypeMustBeMadeInvisible(ride_type_t rideType, track_type_t trackType,
|
||||
// Lots of Log Flumes exist where the downward slopes are simulated by using other track
|
||||
// types like the Splash Boats, but not actually made invisible, because they never needed
|
||||
// to be.
|
||||
if (rideType == RIDE_TYPE_LOG_FLUME && parkFileVersion <= 15)
|
||||
if (rideType == RIDE_TYPE_LOG_FLUME && parkFileVersion < kLogFlumeSteepSlopeVersion)
|
||||
{
|
||||
if (trackType == TrackElemType::Down25ToDown60 || trackType == TrackElemType::Down60
|
||||
|| trackType == TrackElemType::Down60ToDown25)
|
||||
@@ -1015,7 +1016,7 @@ bool TrackTypeMustBeMadeInvisible(ride_type_t rideType, track_type_t trackType,
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (rideType == RIDE_TYPE_GIGA_COASTER && parkFileVersion <= 30)
|
||||
else if (rideType == RIDE_TYPE_GIGA_COASTER && parkFileVersion < kGigaCoasterInversions)
|
||||
{
|
||||
switch (trackType)
|
||||
{
|
||||
@@ -1122,6 +1123,19 @@ bool TrackTypeMustBeMadeInvisible(ride_type_t rideType, track_type_t trackType,
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (
|
||||
(rideType == RIDE_TYPE_WOODEN_ROLLER_COASTER || rideType == RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER)
|
||||
&& parkFileVersion < kWoodenFlatToSteepVersion)
|
||||
{
|
||||
switch (trackType)
|
||||
{
|
||||
case TrackElemType::FlatToUp60LongBase:
|
||||
case TrackElemType::Up60ToFlatLongBase:
|
||||
case TrackElemType::FlatToDown60LongBase:
|
||||
case TrackElemType::Down60ToFlatLongBase:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user