diff --git a/src/ride/ride.c b/src/ride/ride.c index d5e34f6b84..385a89bf3d 100644 --- a/src/ride/ride.c +++ b/src/ride/ride.c @@ -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]; diff --git a/src/ride/ride.h b/src/ride/ride.h index a94d6f74ad..3dd78aa4dc 100644 --- a/src/ride/ride.h +++ b/src/ride/ride.h @@ -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 diff --git a/src/ride/ride_data.c b/src/ride/ride_data.c index 41cfe8ac47..c7cc940212 100644 --- a/src/ride/ride_data.c +++ b/src/ride/ride_data.c @@ -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[] = { diff --git a/src/windows/ride.c b/src/windows/ride.c index 4032b18685..fff4c49b67 100644 --- a/src/windows/ride.c +++ b/src/windows/ride.c @@ -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; }