You've already forked OpenRCT2-Unity
mirror of
https://github.com/izzy2lost/OpenRCT2-Unity.git
synced 2026-03-10 12:38:22 -07:00
Refactor min max cars per train from nsf (#15911)
This commit is contained in:
@@ -2838,10 +2838,10 @@ static OpenRCT2String window_ride_vehicle_tooltip(
|
||||
|
||||
auto ft = Formatter();
|
||||
ft.Increment(16);
|
||||
ft.Add<uint16_t>(std::max(uint8_t(1), ride->GetMaxCarsPerTrain()) - rideEntry->zero_cars);
|
||||
ft.Add<uint16_t>(std::max(uint8_t(1), ride->MaxCarsPerTrain) - rideEntry->zero_cars);
|
||||
|
||||
rct_string_id stringId = GetRideComponentName(RideComponentType::Car).singular;
|
||||
if (ride->GetMaxCarsPerTrain() - rideEntry->zero_cars > 1)
|
||||
if (ride->MaxCarsPerTrain - rideEntry->zero_cars > 1)
|
||||
{
|
||||
stringId = GetRideComponentName(RideComponentType::Car).plural;
|
||||
}
|
||||
|
||||
@@ -292,8 +292,8 @@ GameActions::Result::Ptr RideCreateAction::Execute() const
|
||||
|
||||
ride->num_circuits = 1;
|
||||
ride->mode = ride->GetDefaultMode();
|
||||
ride->SetMinCarsPerTrain(rideEntry->min_cars_in_train);
|
||||
ride->SetMaxCarsPerTrain(rideEntry->max_cars_in_train);
|
||||
ride->MinCarsPerTrain = rideEntry->min_cars_in_train;
|
||||
ride->MaxCarsPerTrain = rideEntry->max_cars_in_train;
|
||||
ride_set_vehicle_colours_to_random_preset(ride, _colour2);
|
||||
window_invalidate_by_class(WC_RIDE_LIST);
|
||||
|
||||
|
||||
@@ -851,8 +851,8 @@ namespace RCT1
|
||||
dst->max_waiting_time = src->max_waiting_time;
|
||||
dst->operation_option = src->operation_option;
|
||||
dst->num_circuits = 1;
|
||||
dst->SetMinCarsPerTrain(rideEntry->min_cars_in_train);
|
||||
dst->SetMaxCarsPerTrain(rideEntry->max_cars_in_train);
|
||||
dst->MinCarsPerTrain = rideEntry->min_cars_in_train;
|
||||
dst->MaxCarsPerTrain = rideEntry->max_cars_in_train;
|
||||
|
||||
// RCT1 used 5mph / 8 km/h for every lift hill
|
||||
dst->lift_hill_speed = 5;
|
||||
|
||||
@@ -751,8 +751,8 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src)
|
||||
dst->proposed_num_vehicles = src->proposed_num_vehicles;
|
||||
dst->proposed_num_cars_per_train = src->proposed_num_cars_per_train;
|
||||
dst->max_trains = src->max_trains;
|
||||
dst->SetMinCarsPerTrain(src->GetMinCarsPerTrain());
|
||||
dst->SetMaxCarsPerTrain(src->GetMaxCarsPerTrain());
|
||||
dst->SetMinCarsPerTrain(src->MinCarsPerTrain);
|
||||
dst->SetMaxCarsPerTrain(src->MaxCarsPerTrain);
|
||||
dst->min_waiting_time = src->min_waiting_time;
|
||||
dst->max_waiting_time = src->max_waiting_time;
|
||||
|
||||
|
||||
@@ -705,8 +705,8 @@ public:
|
||||
dst->proposed_num_vehicles = src->proposed_num_vehicles;
|
||||
dst->proposed_num_cars_per_train = src->proposed_num_cars_per_train;
|
||||
dst->max_trains = src->max_trains;
|
||||
dst->SetMinCarsPerTrain(src->GetMinCarsPerTrain());
|
||||
dst->SetMaxCarsPerTrain(src->GetMaxCarsPerTrain());
|
||||
dst->MinCarsPerTrain = src->GetMinCarsPerTrain();
|
||||
dst->MaxCarsPerTrain = src->GetMaxCarsPerTrain();
|
||||
dst->min_waiting_time = src->min_waiting_time;
|
||||
dst->max_waiting_time = src->max_waiting_time;
|
||||
|
||||
|
||||
@@ -5008,8 +5008,8 @@ void Ride::UpdateMaxVehicles()
|
||||
{
|
||||
int32_t trainLength;
|
||||
num_cars_per_train = std::max(rideEntry->min_cars_in_train, num_cars_per_train);
|
||||
SetMinCarsPerTrain(rideEntry->min_cars_in_train);
|
||||
SetMaxCarsPerTrain(rideEntry->max_cars_in_train);
|
||||
MinCarsPerTrain = rideEntry->min_cars_in_train;
|
||||
MaxCarsPerTrain = rideEntry->max_cars_in_train;
|
||||
|
||||
// Calculate maximum train length based on smallest station length
|
||||
auto stationNumTiles = ride_get_smallest_station_length(this);
|
||||
@@ -5042,8 +5042,8 @@ void Ride::UpdateMaxVehicles()
|
||||
{
|
||||
newCarsPerTrain = std::min(maxCarsPerTrain, newCarsPerTrain);
|
||||
}
|
||||
SetMaxCarsPerTrain(maxCarsPerTrain);
|
||||
SetMinCarsPerTrain(rideEntry->min_cars_in_train);
|
||||
MaxCarsPerTrain = maxCarsPerTrain;
|
||||
MinCarsPerTrain = rideEntry->min_cars_in_train;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
@@ -5121,8 +5121,8 @@ void Ride::UpdateMaxVehicles()
|
||||
else
|
||||
{
|
||||
max_trains = rideEntry->cars_per_flat_ride;
|
||||
SetMinCarsPerTrain(rideEntry->min_cars_in_train);
|
||||
SetMaxCarsPerTrain(rideEntry->max_cars_in_train);
|
||||
MinCarsPerTrain = rideEntry->min_cars_in_train;
|
||||
MaxCarsPerTrain = rideEntry->max_cars_in_train;
|
||||
numCarsPerTrain = rideEntry->max_cars_in_train;
|
||||
maxNumTrains = rideEntry->cars_per_flat_ride;
|
||||
}
|
||||
@@ -5750,28 +5750,6 @@ const RideTypeDescriptor& Ride::GetRideTypeDescriptor() const
|
||||
return ::GetRideTypeDescriptor(type);
|
||||
}
|
||||
|
||||
uint8_t Ride::GetMinCarsPerTrain() const
|
||||
{
|
||||
return min_max_cars_per_train >> 4;
|
||||
}
|
||||
|
||||
uint8_t Ride::GetMaxCarsPerTrain() const
|
||||
{
|
||||
return min_max_cars_per_train & 0xF;
|
||||
}
|
||||
|
||||
void Ride::SetMinCarsPerTrain(uint8_t newValue)
|
||||
{
|
||||
min_max_cars_per_train &= ~0xF0;
|
||||
min_max_cars_per_train |= (newValue << 4);
|
||||
}
|
||||
|
||||
void Ride::SetMaxCarsPerTrain(uint8_t newValue)
|
||||
{
|
||||
min_max_cars_per_train &= ~0x0F;
|
||||
min_max_cars_per_train |= newValue & 0x0F;
|
||||
}
|
||||
|
||||
uint8_t Ride::GetNumShelteredSections() const
|
||||
{
|
||||
return num_sheltered_sections & ShelteredSectionsBits::NumShelteredSectionsMask;
|
||||
|
||||
@@ -231,11 +231,8 @@ struct Ride
|
||||
uint8_t proposed_num_vehicles;
|
||||
uint8_t proposed_num_cars_per_train;
|
||||
uint8_t max_trains;
|
||||
|
||||
private:
|
||||
uint8_t min_max_cars_per_train;
|
||||
|
||||
public:
|
||||
uint8_t MinCarsPerTrain;
|
||||
uint8_t MaxCarsPerTrain;
|
||||
uint8_t min_waiting_time;
|
||||
uint8_t max_waiting_time;
|
||||
union
|
||||
@@ -459,11 +456,6 @@ public:
|
||||
|
||||
std::pair<RideMeasurement*, OpenRCT2String> GetMeasurement();
|
||||
|
||||
uint8_t GetMinCarsPerTrain() const;
|
||||
uint8_t GetMaxCarsPerTrain() const;
|
||||
void SetMinCarsPerTrain(uint8_t newValue);
|
||||
void SetMaxCarsPerTrain(uint8_t newValue);
|
||||
|
||||
uint8_t GetNumShelteredSections() const;
|
||||
void IncreaseNumShelteredSections();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user