diff --git a/src/openrct2/interface/console.c b/src/openrct2/interface/console.c index 99dc11ea6b..fb9e9a3d48 100644 --- a/src/openrct2/interface/console.c +++ b/src/openrct2/interface/console.c @@ -454,11 +454,12 @@ static sint32 cc_rides(const utf8 **argv, sint32 argc) FOR_ALL_RIDES(i, ride) { char name[128]; format_string(name, 128, ride->name, &ride->name_arguments); - console_printf("rides %03d type: %02u subtype %03u name %s", i, ride->type, ride->subtype, name); + console_printf("ride: %03d type: %02u subtype %03u operating mode: %02u name: %s", i, ride->type, ride->subtype, ride->mode, name); } } else if (strcmp(argv[0], "set") == 0) { if (argc < 4) { console_printf("rides set type "); + console_printf("rides set mode "); console_printf("rides set friction "); console_printf("rides set excitement "); console_printf("rides set intensity "); @@ -481,6 +482,27 @@ static sint32 cc_rides(const utf8 **argv, sint32 argc) } } } + else if (strcmp(argv[1], "mode") == 0) { + bool int_valid[3] = { 0 }; + sint32 ride_index = console_parse_int(argv[2], &int_valid[0]); + sint32 mode = console_parse_int(argv[3], &int_valid[1]); + if (!int_valid[0] || !int_valid[1]) { + console_printf("This command expects integer arguments"); + } else if (ride_index < 0) { + console_printf("Ride index must not be negative"); + } else { + rct_ride *ride = get_ride(ride_index); + if (mode <= 0) { + console_printf("Ride mode must be strictly positive"); + } + else if (ride->type == RIDE_TYPE_NULL) { + console_printf("No ride found with index %d", ride_index); + } + else { + ride->mode = mode; + } + } + } else if (strcmp(argv[1], "friction") == 0) { bool int_valid[2] = { 0 }; sint32 ride_index = console_parse_int(argv[2], &int_valid[0]);