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);
|
||||
|
||||
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);
|
||||
|
||||
train_ref train = { NULL, NULL };
|
||||
|
@ -7437,7 +7437,7 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
rct_ride *ride;
|
||||
rct_ride_entry *rideEntry;
|
||||
rct_ride_entry_vehicle *vehicleEntry;
|
||||
uint8 trainLayout[16], numCarsPerTrain, numVehicles;
|
||||
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN], numCarsPerTrain, numVehicles;
|
||||
int trainLength, maxNumTrains;
|
||||
|
||||
ride = get_ride(rideIndex);
|
||||
|
@ -7445,6 +7445,7 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
return;
|
||||
|
||||
rideEntry = get_ride_entry(ride->subtype);
|
||||
|
||||
if (rideEntry->cars_per_flat_ride == 0xFF) {
|
||||
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);
|
||||
|
@ -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);
|
||||
maxCarsPerTrain = max(maxCarsPerTrain, rideEntry->min_cars_in_train);
|
||||
if(!gCheatsDisableTrainLengthLimit) {
|
||||
newCarsPerTrain = min(maxCarsPerTrain, newCarsPerTrain);
|
||||
}
|
||||
ride->min_max_cars_per_train = maxCarsPerTrain | (rideEntry->min_cars_in_train << 4);
|
||||
|
||||
switch (ride->mode) {
|
||||
|
@ -7692,7 +7695,9 @@ money32 ride_set_vehicles(uint8 rideIndex, uint8 setting, uint8 value, uint32 fl
|
|||
|
||||
invalidate_test_results(rideIndex);
|
||||
rideEntry = get_ride_entry(ride->subtype);
|
||||
if(!gCheatsDisableTrainLengthLimit) {
|
||||
value = clamp(rideEntry->min_cars_in_train, value, rideEntry->max_cars_in_train);
|
||||
}
|
||||
ride->proposed_num_cars_per_train = value;
|
||||
break;
|
||||
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);
|
||||
}
|
||||
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);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
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);
|
||||
|
||||
uint8 trainLayout[16];
|
||||
uint8 trainLayout[RIDE_MAX_CARS_PER_TRAIN];
|
||||
ride_entry_get_train_layout(ride->subtype, ride->num_cars_per_train, trainLayout);
|
||||
|
||||
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);
|
||||
break;
|
||||
case WIDX_VEHICLE_CARS_PER_TRAIN_DROPDOWN:
|
||||
minCars = (ride->min_max_cars_per_train >> 4);
|
||||
maxCars = (ride->min_max_cars_per_train & 0x0F);
|
||||
|
||||
if(!gCheatsDisableTrainLengthLimit) {
|
||||
minCars=(ride->min_max_cars_per_train >> 4);
|
||||
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(
|
||||
w->x + dropdownWidget->left,
|
||||
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
|
||||
);
|
||||
|
||||
for (i = 0; i < 12; i++) {
|
||||
for (i = 0; i < maxCars; i++) {
|
||||
cars = minCars + i;
|
||||
|
||||
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);
|
||||
break;
|
||||
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);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -2592,7 +2600,7 @@ static void window_ride_vehicle_invalidate(rct_window *w)
|
|||
}
|
||||
|
||||
// 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].type = WWT_DROPDOWN;
|
||||
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
|
||||
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);
|
||||
|
||||
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].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);
|
||||
|
||||
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;
|
||||
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);
|
||||
|
||||
// ?
|
||||
|
|
Loading…
Reference in New Issue