1
0
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:
Gymnasiast
2015-11-08 14:55:01 +01:00
parent 40268878a0
commit e749c1a82c
4 changed files with 10 additions and 10 deletions

View File

@@ -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];

View File

@@ -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

View File

@@ -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[] = {

View File

@@ -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;
}