mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #19234 from Gymnasiast/objects-138
Objects v1.3.8 + fix #474: Mini Golf window allows selecting nonexistent players
This commit is contained in:
commit
09b1074d08
|
@ -64,9 +64,9 @@ set(TITLE_SEQUENCE_VERSION "0.4.0")
|
|||
set(TITLE_SEQUENCE_URL "https://github.com/OpenRCT2/title-sequences/releases/download/v${TITLE_SEQUENCE_VERSION}/title-sequences.zip")
|
||||
set(TITLE_SEQUENCE_SHA1 "4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0")
|
||||
|
||||
set(OBJECTS_VERSION "1.3.7")
|
||||
set(OBJECTS_VERSION "1.3.8")
|
||||
set(OBJECTS_URL "https://github.com/OpenRCT2/objects/releases/download/v${OBJECTS_VERSION}/objects.zip")
|
||||
set(OBJECTS_SHA1 "82930d549e0b3c3bce29718d5390c5cd474d0f28")
|
||||
set(OBJECTS_SHA1 "2888092aab93df15bb78c4c910b13c33b1e318ef")
|
||||
|
||||
set(OPENSFX_VERSION "1.0.1")
|
||||
set(OPENSFX_URL "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${OPENSFX_VERSION}/opensound.zip")
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
- Improved: [#19044] Added special thanks to RMC and Wiegand to the About page.
|
||||
- Change: [#19018] Renamed actions to fit the naming scheme.
|
||||
- Change: [#19091] [Plugin] Add game action information to callback arguments of custom actions.
|
||||
- Fix: [#474] Mini golf window shows more players than there actually are (original bug).
|
||||
- Fix: [#18467] “Selected only” Object Selection filter is active in Track Designs Manager, and cannot be toggled.
|
||||
- Fix: [#18905] Ride Construction window theme is not applied correctly.
|
||||
- Fix: [#18911] Mini Golf station does not draw correctly from all angles.
|
||||
|
|
|
@ -45,8 +45,8 @@
|
|||
<LibsSha1 Condition="'$(Platform)'=='ARM64'">f3a03c2e7b610fefa28d6962da10144f6324078d</LibsSha1>
|
||||
<TitleSequencesUrl>https://github.com/OpenRCT2/title-sequences/releases/download/v0.4.0/title-sequences.zip</TitleSequencesUrl>
|
||||
<TitleSequencesSha1>4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0</TitleSequencesSha1>
|
||||
<ObjectsUrl>https://github.com/OpenRCT2/objects/releases/download/v1.3.7/objects.zip</ObjectsUrl>
|
||||
<ObjectsSha1>82930d549e0b3c3bce29718d5390c5cd474d0f28</ObjectsSha1>
|
||||
<ObjectsUrl>https://github.com/OpenRCT2/objects/releases/download/v1.3.8/objects.zip</ObjectsUrl>
|
||||
<ObjectsSha1>2888092aab93df15bb78c4c910b13c33b1e318ef</ObjectsSha1>
|
||||
<OpenSFXUrl>https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v1.0.1/opensound.zip</OpenSFXUrl>
|
||||
<OpenSFXSha1>8f04aea33f8034131c3069f6accacce0d94f80c1</OpenSFXSha1>
|
||||
<OpenMSXUrl>https://github.com/OpenRCT2/OpenMusic/releases/download/v1.0.1/openmusic.zip</OpenMSXUrl>
|
||||
|
|
|
@ -15,8 +15,8 @@ let
|
|||
objects-src = pkgs.fetchFromGitHub {
|
||||
owner = "OpenRCT2";
|
||||
repo = "objects";
|
||||
rev = "v1.3.7";
|
||||
sha256 = "d6be9743c68f233674f5549204637b1f0304d7567a816d18e3f1576500a51d38";
|
||||
rev = "v1.3.8";
|
||||
sha256 = "84a95590d13a753b1d239f7f06c8d121e36fd28694b21f33646518e2012904ae";
|
||||
};
|
||||
|
||||
title-sequences-src = pkgs.fetchFromGitHub {
|
||||
|
|
|
@ -1724,6 +1724,33 @@ static void WindowRideMainResize(rct_window* w)
|
|||
WindowRideInitViewport(w);
|
||||
}
|
||||
|
||||
static size_t GetNumPeepsInTrain(const Ride& ride, int32_t trainIndex)
|
||||
{
|
||||
auto numPeepsInTrain = 0;
|
||||
const auto* vehicle = TryGetVehicle(ride.vehicles[trainIndex]);
|
||||
while (vehicle != nullptr)
|
||||
{
|
||||
numPeepsInTrain += vehicle->num_peeps;
|
||||
vehicle = TryGetVehicle(vehicle->next_vehicle_on_train);
|
||||
}
|
||||
return numPeepsInTrain;
|
||||
}
|
||||
|
||||
static bool TrainMustBeHidden(const Ride& ride, int32_t trainIndex)
|
||||
{
|
||||
if (!(ride.lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK))
|
||||
return true;
|
||||
|
||||
const auto* rideEntry = ride.GetRideEntry();
|
||||
if (rideEntry == nullptr)
|
||||
return false;
|
||||
|
||||
if (!(rideEntry->flags & RIDE_ENTRY_FLAG_HIDE_EMPTY_TRAINS))
|
||||
return false;
|
||||
|
||||
return GetNumPeepsInTrain(ride, trainIndex) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* rct2: 0x006AF825
|
||||
|
@ -1735,8 +1762,10 @@ static void WindowRideShowViewDropdown(rct_window* w, Widget* widget)
|
|||
if (ride == nullptr)
|
||||
return;
|
||||
|
||||
const auto& rtd = ride->GetRideTypeDescriptor();
|
||||
|
||||
int32_t numItems = 1;
|
||||
if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES))
|
||||
if (!rtd.HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES))
|
||||
{
|
||||
numItems += ride->num_stations;
|
||||
numItems += ride->NumTrains;
|
||||
|
@ -1751,14 +1780,16 @@ static void WindowRideShowViewDropdown(rct_window* w, Widget* widget)
|
|||
gDropdownItems[0].Args = STR_OVERALL_VIEW;
|
||||
int32_t currentItem = 1;
|
||||
|
||||
const auto& rtd = ride->GetRideTypeDescriptor();
|
||||
|
||||
// Vehicles
|
||||
int32_t name = GetRideComponentName(rtd.NameConvention.vehicle).number;
|
||||
for (int32_t i = 1; i <= ride->NumTrains; i++)
|
||||
for (int32_t i = 0; i < ride->NumTrains; i++)
|
||||
{
|
||||
gDropdownItems[currentItem].Format = STR_DROPDOWN_MENU_LABEL;
|
||||
gDropdownItems[currentItem].Args = name | (currentItem << 16);
|
||||
if (TrainMustBeHidden(*ride, i))
|
||||
{
|
||||
Dropdown::SetDisabled(currentItem, true);
|
||||
}
|
||||
currentItem++;
|
||||
}
|
||||
|
||||
|
@ -1771,16 +1802,6 @@ static void WindowRideShowViewDropdown(rct_window* w, Widget* widget)
|
|||
currentItem++;
|
||||
}
|
||||
|
||||
// Set highlighted item
|
||||
if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK))
|
||||
{
|
||||
for (int32_t i = 0; i < ride->NumTrains; i++)
|
||||
{
|
||||
// The +1 is to skip 'Overall view'
|
||||
Dropdown::SetDisabled(i + 1, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Set checked item
|
||||
Dropdown::SetChecked(w->ride.view, true);
|
||||
}
|
||||
|
|
|
@ -561,6 +561,7 @@ void RideObject::ReadJson(IReadObjectContext* context, json_t& root)
|
|||
{ "noCollisionCrashes", RIDE_ENTRY_FLAG_DISABLE_COLLISION_CRASHES },
|
||||
{ "disablePainting", RIDE_ENTRY_FLAG_DISABLE_COLOUR_TAB },
|
||||
{ "riderControlsSpeed", RIDE_ENTRY_FLAG_RIDER_CONTROLS_SPEED },
|
||||
{ "hideEmptyTrains", RIDE_ENTRY_FLAG_HIDE_EMPTY_TRAINS },
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -719,10 +719,10 @@ namespace RCT1
|
|||
"rct2.ride.ding1", // RCT1_RIDE_TYPE_WATER_SLIDE
|
||||
"rct2.ride.amt1", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
|
||||
"rct2.ride.clift1", // RCT1_RIDE_TYPE_CHAIRLIFT
|
||||
"rct2.ride.arrt1", // RCT1_RIDE_TYPE_STEEL_CORKSCREW_ROLLER_COASTER
|
||||
"rct1.ride.corkscrew_trains", // RCT1_RIDE_TYPE_STEEL_CORKSCREW_ROLLER_COASTER
|
||||
"rct2.ride.hmaze", // RCT1_RIDE_TYPE_HEDGE_MAZE
|
||||
"rct2.ride.hskelt", // RCT1_RIDE_TYPE_SPIRAL_SLIDE
|
||||
"rct2.ride.kart1", // RCT1_RIDE_TYPE_GO_KARTS
|
||||
"rct1.ride.go_karts", // RCT1_RIDE_TYPE_GO_KARTS
|
||||
"rct2.ride.lfb1", // RCT1_RIDE_TYPE_LOG_FLUME
|
||||
"rct2.ride.rapboat", // RCT1_RIDE_TYPE_RIVER_RAPIDS
|
||||
"rct2.ride.dodg1", // RCT1_RIDE_TYPE_DODGEMS
|
||||
|
@ -828,11 +828,11 @@ namespace RCT1
|
|||
"rct2.ride.obs1", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
|
||||
"rct2.ride.amt1", // RCT1_VEHICLE_TYPE_MINE_TRAIN
|
||||
"rct2.ride.clift1", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
|
||||
"rct2.ride.arrt1", // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
|
||||
"rct1.ride.corkscrew_trains", // RCT1_VEHICLE_TYPE_CORKSCREW_ROLLER_COASTER_TRAIN
|
||||
"rct2.ride.steep2", // RCT1_VEHICLE_TYPE_MOTORBIKES
|
||||
"rct2.ride.rcr", // RCT1_VEHICLE_TYPE_RACING_CARS
|
||||
"rct2.ride.truck1", // RCT1_VEHICLE_TYPE_TRUCKS
|
||||
"rct2.ride.kart1", // RCT1_VEHICLE_TYPE_GO_KARTS
|
||||
"rct1.ride.go_karts", // RCT1_VEHICLE_TYPE_GO_KARTS
|
||||
"rct2.ride.rapboat", // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
|
||||
"rct2.ride.lfb1", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
|
||||
"rct2.ride.dodg1", // RCT1_VEHICLE_TYPE_DODGEMS
|
||||
|
|
|
@ -485,6 +485,7 @@ enum
|
|||
// Must be set with swing mode 1 as well.
|
||||
RIDE_ENTRY_FLAG_ALTERNATIVE_SWING_MODE_2 = 1 << 20,
|
||||
RIDE_ENTRY_FLAG_RIDER_CONTROLS_SPEED = 1 << 21,
|
||||
RIDE_ENTRY_FLAG_HIDE_EMPTY_TRAINS = 1 << 22,
|
||||
};
|
||||
|
||||
enum
|
||||
|
|
Loading…
Reference in New Issue