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_URL "https://github.com/OpenRCT2/title-sequences/releases/download/v${TITLE_SEQUENCE_VERSION}/title-sequences.zip")
|
||||||
set(TITLE_SEQUENCE_SHA1 "4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0")
|
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_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_VERSION "1.0.1")
|
||||||
set(OPENSFX_URL "https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v${OPENSFX_VERSION}/opensound.zip")
|
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.
|
- Improved: [#19044] Added special thanks to RMC and Wiegand to the About page.
|
||||||
- Change: [#19018] Renamed actions to fit the naming scheme.
|
- Change: [#19018] Renamed actions to fit the naming scheme.
|
||||||
- Change: [#19091] [Plugin] Add game action information to callback arguments of custom actions.
|
- 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: [#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: [#18905] Ride Construction window theme is not applied correctly.
|
||||||
- Fix: [#18911] Mini Golf station does not draw correctly from all angles.
|
- Fix: [#18911] Mini Golf station does not draw correctly from all angles.
|
||||||
|
|
|
@ -45,8 +45,8 @@
|
||||||
<LibsSha1 Condition="'$(Platform)'=='ARM64'">f3a03c2e7b610fefa28d6962da10144f6324078d</LibsSha1>
|
<LibsSha1 Condition="'$(Platform)'=='ARM64'">f3a03c2e7b610fefa28d6962da10144f6324078d</LibsSha1>
|
||||||
<TitleSequencesUrl>https://github.com/OpenRCT2/title-sequences/releases/download/v0.4.0/title-sequences.zip</TitleSequencesUrl>
|
<TitleSequencesUrl>https://github.com/OpenRCT2/title-sequences/releases/download/v0.4.0/title-sequences.zip</TitleSequencesUrl>
|
||||||
<TitleSequencesSha1>4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0</TitleSequencesSha1>
|
<TitleSequencesSha1>4ab0065e5a4d9f9c77d94718bbdfcfcd5a389da0</TitleSequencesSha1>
|
||||||
<ObjectsUrl>https://github.com/OpenRCT2/objects/releases/download/v1.3.7/objects.zip</ObjectsUrl>
|
<ObjectsUrl>https://github.com/OpenRCT2/objects/releases/download/v1.3.8/objects.zip</ObjectsUrl>
|
||||||
<ObjectsSha1>82930d549e0b3c3bce29718d5390c5cd474d0f28</ObjectsSha1>
|
<ObjectsSha1>2888092aab93df15bb78c4c910b13c33b1e318ef</ObjectsSha1>
|
||||||
<OpenSFXUrl>https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v1.0.1/opensound.zip</OpenSFXUrl>
|
<OpenSFXUrl>https://github.com/OpenRCT2/OpenSoundEffects/releases/download/v1.0.1/opensound.zip</OpenSFXUrl>
|
||||||
<OpenSFXSha1>8f04aea33f8034131c3069f6accacce0d94f80c1</OpenSFXSha1>
|
<OpenSFXSha1>8f04aea33f8034131c3069f6accacce0d94f80c1</OpenSFXSha1>
|
||||||
<OpenMSXUrl>https://github.com/OpenRCT2/OpenMusic/releases/download/v1.0.1/openmusic.zip</OpenMSXUrl>
|
<OpenMSXUrl>https://github.com/OpenRCT2/OpenMusic/releases/download/v1.0.1/openmusic.zip</OpenMSXUrl>
|
||||||
|
|
|
@ -15,8 +15,8 @@ let
|
||||||
objects-src = pkgs.fetchFromGitHub {
|
objects-src = pkgs.fetchFromGitHub {
|
||||||
owner = "OpenRCT2";
|
owner = "OpenRCT2";
|
||||||
repo = "objects";
|
repo = "objects";
|
||||||
rev = "v1.3.7";
|
rev = "v1.3.8";
|
||||||
sha256 = "d6be9743c68f233674f5549204637b1f0304d7567a816d18e3f1576500a51d38";
|
sha256 = "84a95590d13a753b1d239f7f06c8d121e36fd28694b21f33646518e2012904ae";
|
||||||
};
|
};
|
||||||
|
|
||||||
title-sequences-src = pkgs.fetchFromGitHub {
|
title-sequences-src = pkgs.fetchFromGitHub {
|
||||||
|
|
|
@ -1724,6 +1724,33 @@ static void WindowRideMainResize(rct_window* w)
|
||||||
WindowRideInitViewport(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
|
* rct2: 0x006AF825
|
||||||
|
@ -1735,8 +1762,10 @@ static void WindowRideShowViewDropdown(rct_window* w, Widget* widget)
|
||||||
if (ride == nullptr)
|
if (ride == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
const auto& rtd = ride->GetRideTypeDescriptor();
|
||||||
|
|
||||||
int32_t numItems = 1;
|
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->num_stations;
|
||||||
numItems += ride->NumTrains;
|
numItems += ride->NumTrains;
|
||||||
|
@ -1751,14 +1780,16 @@ static void WindowRideShowViewDropdown(rct_window* w, Widget* widget)
|
||||||
gDropdownItems[0].Args = STR_OVERALL_VIEW;
|
gDropdownItems[0].Args = STR_OVERALL_VIEW;
|
||||||
int32_t currentItem = 1;
|
int32_t currentItem = 1;
|
||||||
|
|
||||||
const auto& rtd = ride->GetRideTypeDescriptor();
|
|
||||||
|
|
||||||
// Vehicles
|
// Vehicles
|
||||||
int32_t name = GetRideComponentName(rtd.NameConvention.vehicle).number;
|
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].Format = STR_DROPDOWN_MENU_LABEL;
|
||||||
gDropdownItems[currentItem].Args = name | (currentItem << 16);
|
gDropdownItems[currentItem].Args = name | (currentItem << 16);
|
||||||
|
if (TrainMustBeHidden(*ride, i))
|
||||||
|
{
|
||||||
|
Dropdown::SetDisabled(currentItem, true);
|
||||||
|
}
|
||||||
currentItem++;
|
currentItem++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1771,16 +1802,6 @@ static void WindowRideShowViewDropdown(rct_window* w, Widget* widget)
|
||||||
currentItem++;
|
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
|
// Set checked item
|
||||||
Dropdown::SetChecked(w->ride.view, true);
|
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 },
|
{ "noCollisionCrashes", RIDE_ENTRY_FLAG_DISABLE_COLLISION_CRASHES },
|
||||||
{ "disablePainting", RIDE_ENTRY_FLAG_DISABLE_COLOUR_TAB },
|
{ "disablePainting", RIDE_ENTRY_FLAG_DISABLE_COLOUR_TAB },
|
||||||
{ "riderControlsSpeed", RIDE_ENTRY_FLAG_RIDER_CONTROLS_SPEED },
|
{ "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.ding1", // RCT1_RIDE_TYPE_WATER_SLIDE
|
||||||
"rct2.ride.amt1", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
|
"rct2.ride.amt1", // RCT1_RIDE_TYPE_MINE_TRAIN_ROLLER_COASTER
|
||||||
"rct2.ride.clift1", // RCT1_RIDE_TYPE_CHAIRLIFT
|
"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.hmaze", // RCT1_RIDE_TYPE_HEDGE_MAZE
|
||||||
"rct2.ride.hskelt", // RCT1_RIDE_TYPE_SPIRAL_SLIDE
|
"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.lfb1", // RCT1_RIDE_TYPE_LOG_FLUME
|
||||||
"rct2.ride.rapboat", // RCT1_RIDE_TYPE_RIVER_RAPIDS
|
"rct2.ride.rapboat", // RCT1_RIDE_TYPE_RIVER_RAPIDS
|
||||||
"rct2.ride.dodg1", // RCT1_RIDE_TYPE_DODGEMS
|
"rct2.ride.dodg1", // RCT1_RIDE_TYPE_DODGEMS
|
||||||
|
@ -828,11 +828,11 @@ namespace RCT1
|
||||||
"rct2.ride.obs1", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
|
"rct2.ride.obs1", // RCT1_VEHICLE_TYPE_ROTATING_CABIN
|
||||||
"rct2.ride.amt1", // RCT1_VEHICLE_TYPE_MINE_TRAIN
|
"rct2.ride.amt1", // RCT1_VEHICLE_TYPE_MINE_TRAIN
|
||||||
"rct2.ride.clift1", // RCT1_VEHICLE_TYPE_CHAIRLIFT_CARS
|
"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.steep2", // RCT1_VEHICLE_TYPE_MOTORBIKES
|
||||||
"rct2.ride.rcr", // RCT1_VEHICLE_TYPE_RACING_CARS
|
"rct2.ride.rcr", // RCT1_VEHICLE_TYPE_RACING_CARS
|
||||||
"rct2.ride.truck1", // RCT1_VEHICLE_TYPE_TRUCKS
|
"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.rapboat", // RCT1_VEHICLE_TYPE_RAPIDS_BOATS
|
||||||
"rct2.ride.lfb1", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
|
"rct2.ride.lfb1", // RCT1_VEHICLE_TYPE_LOG_FLUME_BOATS
|
||||||
"rct2.ride.dodg1", // RCT1_VEHICLE_TYPE_DODGEMS
|
"rct2.ride.dodg1", // RCT1_VEHICLE_TYPE_DODGEMS
|
||||||
|
|
|
@ -485,6 +485,7 @@ enum
|
||||||
// Must be set with swing mode 1 as well.
|
// Must be set with swing mode 1 as well.
|
||||||
RIDE_ENTRY_FLAG_ALTERNATIVE_SWING_MODE_2 = 1 << 20,
|
RIDE_ENTRY_FLAG_ALTERNATIVE_SWING_MODE_2 = 1 << 20,
|
||||||
RIDE_ENTRY_FLAG_RIDER_CONTROLS_SPEED = 1 << 21,
|
RIDE_ENTRY_FLAG_RIDER_CONTROLS_SPEED = 1 << 21,
|
||||||
|
RIDE_ENTRY_FLAG_HIDE_EMPTY_TRAINS = 1 << 22,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
|
Loading…
Reference in New Issue