mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
Identify RIDE_ENTRY_FLAG_15 and 17, fix 'Show all operating modes' cheat
This commit is contained in:
@@ -3619,7 +3619,7 @@ void game_command_set_ride_setting(int *eax, int *ebx, int *ecx, int *edx, int *
|
||||
rct_ride_type* ride_entry = GET_RIDE_ENTRY(ride->subtype);
|
||||
const uint8* available_modes = ride_seek_available_modes(ride);
|
||||
|
||||
if (ride_entry->flags & RIDE_ENTRY_FLAG_17){
|
||||
if ((ride_entry->flags & RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES) && !gCheatsShowAllOperatingModes){
|
||||
available_modes += 2;
|
||||
}
|
||||
|
||||
@@ -3632,7 +3632,7 @@ void game_command_set_ride_setting(int *eax, int *ebx, int *ecx, int *edx, int *
|
||||
if (*available_modes == 0xFF) new_value = default_mode;
|
||||
|
||||
if (available_modes[1] == 0xFF){
|
||||
if (ride_entry->flags & RIDE_ENTRY_FLAG_15)
|
||||
if ((ride_entry->flags & RIDE_ENTRY_HIDE_LAST_OPERATING_MODE) && !gCheatsShowAllOperatingModes)
|
||||
new_value = default_mode;
|
||||
}
|
||||
|
||||
@@ -5104,7 +5104,7 @@ static int ride_get_default_mode(rct_ride *ride)
|
||||
for (int i = 0; i < ride->type; i++) {
|
||||
while (*(availableModes++) != 255) {}
|
||||
}
|
||||
if (rideEntry->flags & RIDE_ENTRY_FLAG_17) {
|
||||
if (rideEntry->flags & RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES) {
|
||||
availableModes += 2;
|
||||
}
|
||||
return availableModes[0];
|
||||
|
||||
@@ -393,9 +393,9 @@ enum {
|
||||
RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME = 1 << 12, // 0x1000
|
||||
RIDE_ENTRY_FLAG_SEPARATE_RIDE = 1 << 13, // 0x2000
|
||||
RIDE_ENTRY_FLAG_14 = 1 << 14, // 0x4000
|
||||
RIDE_ENTRY_FLAG_15 = 1 << 15, // 0x8000
|
||||
RIDE_ENTRY_HIDE_LAST_OPERATING_MODE = 1 << 15, // 0x8000
|
||||
RIDE_ENTRY_FLAG_16 = 1 << 16, // 0x10000
|
||||
RIDE_ENTRY_FLAG_17 = 1 << 17, // 0x20000
|
||||
RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES = 1 << 17, // 0x20000
|
||||
RIDE_ENTRY_FLAG_18 = 1 << 18, // 0x40000
|
||||
RIDE_ENTRY_FLAG_19 = 1 << 19, // 0x80000
|
||||
RIDE_ENTRY_FLAG_20 = 1 << 20, // 0x100000
|
||||
|
||||
@@ -775,7 +775,7 @@ const uint8 RideAvailableModes[] = {
|
||||
};
|
||||
|
||||
const uint8 AllRideModesAvailable[] = {
|
||||
RIDE_MODE_NORMAL, RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_SHUTTLE, RIDE_MODE_BOAT_HIRE, RIDE_MODE_UPWARD_LAUNCH, RIDE_MODE_ROTATING_LIFT, RIDE_MODE_STATION_TO_STATION, RIDE_MODE_SINGLE_RIDE_PER_ADMISSION, RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION, RIDE_MODE_MAZE, RIDE_MODE_RACE, RIDE_MODE_BUMPERCAR, RIDE_MODE_SWING, RIDE_MODE_SHOP_STALL, RIDE_MODE_ROTATION, RIDE_MODE_FORWARD_ROTATION, RIDE_MODE_BACKWARD_ROTATION, RIDE_MODE_FILM_AVENGING_AVIATORS, RIDE_MODE_3D_FILM_MOUSE_TAILS, RIDE_MODE_SPACE_RINGS, RIDE_MODE_BEGINNERS, RIDE_MODE_LIM_POWERED_LAUNCH, RIDE_MODE_FILM_THRILL_RIDERS, RIDE_MODE_3D_FILM_STORM_CHASERS, RIDE_MODE_3D_FILM_SPACE_RAIDERS, RIDE_MODE_INTENSE, RIDE_MODE_BERSERK, RIDE_MODE_HAUNTED_HOUSE, RIDE_MODE_CIRCUS_SHOW, RIDE_MODE_DOWNWARD_LAUNCH, RIDE_MODE_CROOKED_HOUSE, RIDE_MODE_FREEFALL_DROP, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_POWERED_LAUNCH, RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED, 0xFF
|
||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_SHUTTLE, RIDE_MODE_NORMAL, RIDE_MODE_BOAT_HIRE, RIDE_MODE_UPWARD_LAUNCH, RIDE_MODE_ROTATING_LIFT, RIDE_MODE_STATION_TO_STATION, RIDE_MODE_SINGLE_RIDE_PER_ADMISSION, RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION, RIDE_MODE_MAZE, RIDE_MODE_RACE, RIDE_MODE_BUMPERCAR, RIDE_MODE_SWING, RIDE_MODE_SHOP_STALL, RIDE_MODE_ROTATION, RIDE_MODE_FORWARD_ROTATION, RIDE_MODE_BACKWARD_ROTATION, RIDE_MODE_FILM_AVENGING_AVIATORS, RIDE_MODE_3D_FILM_MOUSE_TAILS, RIDE_MODE_SPACE_RINGS, RIDE_MODE_BEGINNERS, RIDE_MODE_LIM_POWERED_LAUNCH, RIDE_MODE_FILM_THRILL_RIDERS, RIDE_MODE_3D_FILM_STORM_CHASERS, RIDE_MODE_3D_FILM_SPACE_RAIDERS, RIDE_MODE_INTENSE, RIDE_MODE_BERSERK, RIDE_MODE_HAUNTED_HOUSE, RIDE_MODE_CIRCUS_SHOW, RIDE_MODE_DOWNWARD_LAUNCH, RIDE_MODE_CROOKED_HOUSE, RIDE_MODE_FREEFALL_DROP, RIDE_MODE_POWERED_LAUNCH, RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED, 0xFF
|
||||
};
|
||||
|
||||
const uint8 RideAvailableBreakdowns[] = {
|
||||
|
||||
@@ -2793,12 +2793,12 @@ static void window_ride_mode_dropdown(rct_window *w, rct_widget *widget)
|
||||
numAvailableModes++;
|
||||
} while (*(mode++) != 255);
|
||||
|
||||
// ?
|
||||
if (rideEntry->flags & RIDE_ENTRY_FLAG_15)
|
||||
// Hide the last operating mode if the vehicle is not intended for it.
|
||||
if (rideEntry->flags & RIDE_ENTRY_HIDE_LAST_OPERATING_MODE && !gCheatsShowAllOperatingModes)
|
||||
numAvailableModes--;
|
||||
|
||||
// ?
|
||||
if (rideEntry->flags & RIDE_ENTRY_FLAG_17) {
|
||||
// If the vehicle is not intended for them, hide those two modes (these are usually (or perhaps always) both continuous circuit modes).
|
||||
if ((rideEntry->flags & RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES) && !gCheatsShowAllOperatingModes) {
|
||||
availableModes += 2;
|
||||
numAvailableModes -= 2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user