mirror of https://github.com/OpenRCT2/OpenRCT2.git
fix #3223: invalid vehicle type warnings when placing any track design
This commit is contained in:
parent
62090cd936
commit
4f59c752d6
|
@ -7571,6 +7571,14 @@ void ride_set_num_cars_per_vehicle(int rideIndex, int numCarsPerVehicle)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool ride_entry_is_invented(int rideEntryIndex)
|
||||||
|
{
|
||||||
|
int quadIndex = rideEntryIndex >> 5;
|
||||||
|
int bitIndex = rideEntryIndex & 0x1F;
|
||||||
|
bool invented = (RCT2_ADDRESS(0x01357424, uint32)[quadIndex] & (1 << bitIndex));
|
||||||
|
return invented;
|
||||||
|
}
|
||||||
|
|
||||||
static bool ride_is_vehicle_type_valid(rct_ride *ride, uint8 inputRideEntryIndex)
|
static bool ride_is_vehicle_type_valid(rct_ride *ride, uint8 inputRideEntryIndex)
|
||||||
{
|
{
|
||||||
bool selectionShouldBeExpanded;
|
bool selectionShouldBeExpanded;
|
||||||
|
@ -7598,20 +7606,8 @@ static bool ride_is_vehicle_type_valid(rct_ride *ride, uint8 inputRideEntryIndex
|
||||||
for (uint8 *currentRideEntryIndex = rideEntryIndexPtr; *currentRideEntryIndex != 0xFF; currentRideEntryIndex++) {
|
for (uint8 *currentRideEntryIndex = rideEntryIndexPtr; *currentRideEntryIndex != 0xFF; currentRideEntryIndex++) {
|
||||||
uint8 rideEntryIndex = *currentRideEntryIndex;
|
uint8 rideEntryIndex = *currentRideEntryIndex;
|
||||||
if (rideEntryIndex == inputRideEntryIndex) {
|
if (rideEntryIndex == inputRideEntryIndex) {
|
||||||
rct_ride_entry *currentRideEntry = get_ride_entry(rideEntryIndex);
|
if (!ride_entry_is_invented(rideEntryIndex)) {
|
||||||
|
return false;
|
||||||
// Skip if vehicle has the same track type, but not same subtype, unless subtype switching is enabled
|
|
||||||
if ((currentRideEntry->flags & (RIDE_ENTRY_FLAG_SEPARATE_RIDE | RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME)) &&
|
|
||||||
!(gConfigInterface.select_by_track_type || selectionShouldBeExpanded)
|
|
||||||
) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Skip if vehicle type is not invented yet
|
|
||||||
int quadIndex = rideEntryIndex >> 5;
|
|
||||||
int bitIndex = rideEntryIndex & 0x1F;
|
|
||||||
if (!(RCT2_ADDRESS(0x01357424, uint32)[quadIndex] & (1 << bitIndex))) {
|
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue