mirror of https://github.com/OpenRCT2/OpenRCT2.git
Implement disable train length limits cheat
This commit is contained in:
parent
8f6089818f
commit
35ccd0b8e1
|
@ -4571,7 +4571,7 @@ train_ref vehicle_create_train(int rideIndex, int x, int y, int z, int vehicleIn
|
||||||
{
|
{
|
||||||
rct_ride *ride = get_ride(rideIndex);
|
rct_ride *ride = get_ride(rideIndex);
|
||||||
|
|
||||||
uint8 trainLayout[42];
|
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN];//TODO -work out what's going on here
|
||||||
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
||||||
|
|
||||||
train_ref train = { NULL, NULL };
|
train_ref train = { NULL, NULL };
|
||||||
|
@ -7437,7 +7437,7 @@ void ride_update_max_vehicles(int rideIndex)
|
||||||
rct_ride *ride;
|
rct_ride *ride;
|
||||||
rct_ride_entry *rideEntry;
|
rct_ride_entry *rideEntry;
|
||||||
rct_ride_entry_vehicle *vehicleEntry;
|
rct_ride_entry_vehicle *vehicleEntry;
|
||||||
uint8 trainLayout[16], numCarsPerTrain, numVehicles;
|
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN], numCarsPerTrain, numVehicles;
|
||||||
int trainLength, maxNumTrains;
|
int trainLength, maxNumTrains;
|
||||||
|
|
||||||
ride = get_ride(rideIndex);
|
ride = get_ride(rideIndex);
|
||||||
|
@ -7445,6 +7445,7 @@ void ride_update_max_vehicles(int rideIndex)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
rideEntry = get_ride_entry(ride->subtype);
|
rideEntry = get_ride_entry(ride->subtype);
|
||||||
|
|
||||||
if (rideEntry->cars_per_flat_ride == 0xFF) {
|
if (rideEntry->cars_per_flat_ride == 0xFF) {
|
||||||
ride->num_cars_per_train = max(rideEntry->min_cars_in_train, ride->num_cars_per_train);
|
ride->num_cars_per_train = max(rideEntry->min_cars_in_train, ride->num_cars_per_train);
|
||||||
ride->min_max_cars_per_train = rideEntry->max_cars_in_train | (rideEntry->min_cars_in_train << 4);
|
ride->min_max_cars_per_train = rideEntry->max_cars_in_train | (rideEntry->min_cars_in_train << 4);
|
||||||
|
@ -7474,7 +7475,9 @@ void ride_update_max_vehicles(int rideIndex)
|
||||||
}
|
}
|
||||||
int newCarsPerTrain = max(ride->proposed_num_cars_per_train, rideEntry->min_cars_in_train);
|
int newCarsPerTrain = max(ride->proposed_num_cars_per_train, rideEntry->min_cars_in_train);
|
||||||
maxCarsPerTrain = max(maxCarsPerTrain, rideEntry->min_cars_in_train);
|
maxCarsPerTrain = max(maxCarsPerTrain, rideEntry->min_cars_in_train);
|
||||||
|
if(!gCheatsDisableTrainLengthLimit) {
|
||||||
newCarsPerTrain = min(maxCarsPerTrain, newCarsPerTrain);
|
newCarsPerTrain = min(maxCarsPerTrain, newCarsPerTrain);
|
||||||
|
}
|
||||||
ride->min_max_cars_per_train = maxCarsPerTrain | (rideEntry->min_cars_in_train << 4);
|
ride->min_max_cars_per_train = maxCarsPerTrain | (rideEntry->min_cars_in_train << 4);
|
||||||
|
|
||||||
switch (ride->mode) {
|
switch (ride->mode) {
|
||||||
|
@ -7692,7 +7695,9 @@ money32 ride_set_vehicles(uint8 rideIndex, uint8 setting, uint8 value, uint32 fl
|
||||||
|
|
||||||
invalidate_test_results(rideIndex);
|
invalidate_test_results(rideIndex);
|
||||||
rideEntry = get_ride_entry(ride->subtype);
|
rideEntry = get_ride_entry(ride->subtype);
|
||||||
|
if(!gCheatsDisableTrainLengthLimit) {
|
||||||
value = clamp(rideEntry->min_cars_in_train, value, rideEntry->max_cars_in_train);
|
value = clamp(rideEntry->min_cars_in_train, value, rideEntry->max_cars_in_train);
|
||||||
|
}
|
||||||
ride->proposed_num_cars_per_train = value;
|
ride->proposed_num_cars_per_train = value;
|
||||||
break;
|
break;
|
||||||
case RIDE_SET_VEHICLES_COMMAND_TYPE_RIDE_ENTRY:
|
case RIDE_SET_VEHICLES_COMMAND_TYPE_RIDE_ENTRY:
|
||||||
|
@ -7718,7 +7723,9 @@ money32 ride_set_vehicles(uint8 rideIndex, uint8 setting, uint8 value, uint32 fl
|
||||||
preset = ride_get_unused_preset_vehicle_colour(ride->type, ride->subtype);
|
preset = ride_get_unused_preset_vehicle_colour(ride->type, ride->subtype);
|
||||||
}
|
}
|
||||||
ride_set_vehicle_colours_to_random_preset(ride, preset);
|
ride_set_vehicle_colours_to_random_preset(ride, preset);
|
||||||
|
if(!gCheatsDisableTrainLengthLimit) {
|
||||||
ride->proposed_num_cars_per_train = clamp(rideEntry->min_cars_in_train, ride->proposed_num_cars_per_train, rideEntry->max_cars_in_train);
|
ride->proposed_num_cars_per_train = clamp(rideEntry->min_cars_in_train, ride->proposed_num_cars_per_train, rideEntry->max_cars_in_train);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log_error("Unknown vehicle command.");
|
log_error("Unknown vehicle command.");
|
||||||
|
|
|
@ -1048,7 +1048,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo *dpi, rct_window *w)
|
||||||
|
|
||||||
ride = get_ride(w->number);
|
ride = get_ride(w->number);
|
||||||
|
|
||||||
uint8 trainLayout[16];
|
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN];
|
||||||
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
||||||
|
|
||||||
rideEntry = get_ride_entry_by_ride(ride);
|
rideEntry = get_ride_entry_by_ride(ride);
|
||||||
|
@ -2470,9 +2470,13 @@ static void window_ride_vehicle_mousedown(int widgetIndex, rct_window *w, rct_wi
|
||||||
dropdown_set_checked(ride->num_vehicles - 1, true);
|
dropdown_set_checked(ride->num_vehicles - 1, true);
|
||||||
break;
|
break;
|
||||||
case WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN:
|
case WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN:
|
||||||
|
if(!gCheatsDisableTrainLengthLimit) {
|
||||||
minCars=(ride->min_max_cars_per_train >> 4);
|
minCars=(ride->min_max_cars_per_train >> 4);
|
||||||
maxCars=(ride->min_max_cars_per_train & 0x0F);
|
maxCars=(ride->min_max_cars_per_train & 0x0F);
|
||||||
|
} else {
|
||||||
|
minCars=rideEntry->zero_cars+1;
|
||||||
|
maxCars=RIDE_MAX_CARS_PER_TRAIN;
|
||||||
|
}
|
||||||
window_dropdown_show_text_custom_width(
|
window_dropdown_show_text_custom_width(
|
||||||
w->x + dropdownWidget->left,
|
w->x + dropdownWidget->left,
|
||||||
w->y + dropdownWidget->top,
|
w->y + dropdownWidget->top,
|
||||||
|
@ -2483,7 +2487,7 @@ static void window_ride_vehicle_mousedown(int widgetIndex, rct_window *w, rct_wi
|
||||||
widget->right - dropdownWidget->left
|
widget->right - dropdownWidget->left
|
||||||
);
|
);
|
||||||
|
|
||||||
for (i = 0; i < 12; i++) {
|
for (i = 0; i < maxCars; i++) {
|
||||||
cars = minCars + i;
|
cars = minCars + i;
|
||||||
|
|
||||||
gDropdownItemsFormat[i] = 1142;
|
gDropdownItemsFormat[i] = 1142;
|
||||||
|
@ -2522,7 +2526,11 @@ static void window_ride_vehicle_dropdown(rct_window *w, int widgetIndex, int dro
|
||||||
ride_set_num_vehicles(w->number, dropdownIndex + 1);
|
ride_set_num_vehicles(w->number, dropdownIndex + 1);
|
||||||
break;
|
break;
|
||||||
case WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN:
|
case WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN:
|
||||||
|
if(gCheatsDisableTrainLengthLimit) {
|
||||||
|
ride_set_num_cars_per_vehicle(w->number, rideEntry->zero_cars + 1 + dropdownIndex);
|
||||||
|
} else {
|
||||||
ride_set_num_cars_per_vehicle(w->number, rideEntry->min_cars_in_train + dropdownIndex);
|
ride_set_num_cars_per_vehicle(w->number, rideEntry->min_cars_in_train + dropdownIndex);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2592,7 +2600,7 @@ static void window_ride_vehicle_invalidate(rct_window *w)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cars per train
|
// Cars per train
|
||||||
if (rideEntry->zero_cars + 1 < rideEntry->max_cars_in_train) {
|
if (rideEntry->zero_cars + 1 < rideEntry->max_cars_in_train||gCheatsDisableTrainLengthLimit) {
|
||||||
window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].image = carsPerTrain > 1 ? 1023 : 1022;
|
window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].image = carsPerTrain > 1 ? 1023 : 1022;
|
||||||
window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].type = WWT_DROPDOWN;
|
window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN].type = WWT_DROPDOWN;
|
||||||
window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN].type = WWT_DROPDOWN_BUTTON;
|
window_ride_vehicle_widgets[WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN].type = WWT_DROPDOWN_BUTTON;
|
||||||
|
@ -2694,7 +2702,7 @@ static void window_ride_vehicle_scrollpaint(rct_window *w, rct_drawpixelinfo *dp
|
||||||
// Background
|
// Background
|
||||||
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height, 12);
|
gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width, dpi->y + dpi->height, 12);
|
||||||
|
|
||||||
uint8 trainLayout[16];
|
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN];
|
||||||
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
||||||
|
|
||||||
widget = &window_ride_vehicle_widgets[WIDX_VEHICLE_TRAINS_PREVIEW];
|
widget = &window_ride_vehicle_widgets[WIDX_VEHICLE_TRAINS_PREVIEW];
|
||||||
|
@ -4206,7 +4214,7 @@ static void window_ride_colour_invalidate(rct_window *w)
|
||||||
window_ride_colour_widgets[WIDX_VEHICLE_MAIN_COLOUR].type = WWT_COLOURBTN;
|
window_ride_colour_widgets[WIDX_VEHICLE_MAIN_COLOUR].type = WWT_COLOURBTN;
|
||||||
window_ride_colour_widgets[WIDX_VEHICLE_MAIN_COLOUR].image = window_ride_get_colour_button_image(vehicleColour.main);
|
window_ride_colour_widgets[WIDX_VEHICLE_MAIN_COLOUR].image = window_ride_get_colour_button_image(vehicleColour.main);
|
||||||
|
|
||||||
uint8 trainLayout[16];
|
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN];
|
||||||
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
||||||
|
|
||||||
uint32 colourFlags = 0;
|
uint32 colourFlags = 0;
|
||||||
|
@ -4395,7 +4403,7 @@ static void window_ride_colour_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi
|
||||||
x = (vehiclePreviewWidget->right - vehiclePreviewWidget->left) / 2;
|
x = (vehiclePreviewWidget->right - vehiclePreviewWidget->left) / 2;
|
||||||
y = vehiclePreviewWidget->bottom - vehiclePreviewWidget->top - 15;
|
y = vehiclePreviewWidget->bottom - vehiclePreviewWidget->top - 15;
|
||||||
|
|
||||||
uint8 trainLayout[16];
|
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN];
|
||||||
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
||||||
|
|
||||||
// ?
|
// ?
|
||||||
|
|
Loading…
Reference in New Issue