mirror of https://github.com/OpenRCT2/OpenRCT2.git
Label ride offsets
This commit is contained in:
parent
f267af3356
commit
772502309f
|
@ -714,8 +714,8 @@ static void rct1_fix_z()
|
|||
}
|
||||
ride->start_drop_height /= 2;
|
||||
ride->highest_drop_height = 1;
|
||||
if (ride->var_11F != 255) {
|
||||
ride->var_11F /= 2;
|
||||
if (ride->cur_test_track_z != 255) {
|
||||
ride->cur_test_track_z /= 2;
|
||||
}
|
||||
ride->chairlift_bullwheel_z[0] /= 2;
|
||||
ride->chairlift_bullwheel_z[1] /= 2;
|
||||
|
|
|
@ -5817,10 +5817,10 @@ foundRideEntry:
|
|||
ride->vehicle_change_timeout = 0;
|
||||
ride->num_stations = 0;
|
||||
ride->num_vehicles = 1;
|
||||
ride->var_0CA = 32;
|
||||
ride->proposed_num_vehicles = 32;
|
||||
ride->max_trains = 32;
|
||||
ride->num_cars_per_train = 1;
|
||||
ride->var_0CB = 12;
|
||||
ride->proposed_num_cars_per_train = 12;
|
||||
ride->min_waiting_time = 10;
|
||||
ride->max_waiting_time = 60;
|
||||
ride->depart_flags = RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH | 3;
|
||||
|
@ -7326,7 +7326,7 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
break;
|
||||
}
|
||||
}
|
||||
int newCarsPerTrain = max(ride->var_0CB, 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);
|
||||
newCarsPerTrain = min(maxCarsPerTrain, newCarsPerTrain);
|
||||
ride->min_max_cars_per_train = maxCarsPerTrain | (rideEntry->min_cars_in_train << 4);
|
||||
|
@ -7395,13 +7395,13 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
}
|
||||
ride->max_trains = maxNumTrains;
|
||||
|
||||
numCarsPerTrain = min(ride->var_0CB, newCarsPerTrain);
|
||||
numVehicles = min(ride->var_0CA, maxNumTrains);
|
||||
numCarsPerTrain = min(ride->proposed_num_cars_per_train, newCarsPerTrain);
|
||||
numVehicles = min(ride->proposed_num_vehicles, maxNumTrains);
|
||||
} else {
|
||||
ride->max_trains = rideEntry->cars_per_flat_ride;
|
||||
ride->min_max_cars_per_train = rideEntry->max_cars_in_train | (rideEntry->min_cars_in_train << 4);
|
||||
numCarsPerTrain = rideEntry->max_cars_in_train;
|
||||
numVehicles = min(ride->var_0CA, rideEntry->cars_per_flat_ride);
|
||||
numVehicles = min(ride->proposed_num_vehicles, rideEntry->cars_per_flat_ride);
|
||||
}
|
||||
|
||||
// Refresh new current num vehicles / num cars per vehicle
|
||||
|
@ -7524,7 +7524,7 @@ void game_command_set_ride_vehicles(int *eax, int *ebx, int *ecx, int *edx, int
|
|||
|
||||
switch (commandType) {
|
||||
case RIDE_SET_VEHICLES_COMMAND_TYPE_NUM_TRAINS:
|
||||
ride->var_0CA = value;
|
||||
ride->proposed_num_vehicles = value;
|
||||
if (ride->type != RIDE_TYPE_SPACE_RINGS) {
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
|
@ -7533,7 +7533,7 @@ void game_command_set_ride_vehicles(int *eax, int *ebx, int *ecx, int *edx, int
|
|||
invalidate_test_results(rideIndex);
|
||||
rideEntry = get_ride_entry(ride->subtype);
|
||||
value = clamp(rideEntry->min_cars_in_train, value, rideEntry->max_cars_in_train);
|
||||
ride->var_0CB = value;
|
||||
ride->proposed_num_cars_per_train = value;
|
||||
break;
|
||||
case RIDE_SET_VEHICLES_COMMAND_TYPE_RIDE_ENTRY:
|
||||
invalidate_test_results(rideIndex);
|
||||
|
|
|
@ -157,8 +157,8 @@ typedef struct {
|
|||
uint8 num_stations; // 0x0C7
|
||||
uint8 num_vehicles; // 0x0C8
|
||||
uint8 num_cars_per_train; // 0x0C9
|
||||
uint8 var_0CA;
|
||||
uint8 var_0CB;
|
||||
uint8 proposed_num_vehicles; // 0x0CA
|
||||
uint8 proposed_num_cars_per_train; // 0x0CB
|
||||
uint8 max_trains; // 0x0CC
|
||||
uint8 min_max_cars_per_train; // 0x0CD
|
||||
uint8 min_waiting_time; // 0x0CE
|
||||
|
@ -185,7 +185,7 @@ typedef struct {
|
|||
sint32 max_speed; // 0x0D8
|
||||
sint32 average_speed; // 0x0DC
|
||||
uint8 current_test_segment; // 0x0E0
|
||||
uint8 var_0E1;
|
||||
uint8 average_speed_test_timeout; // 0x0E1
|
||||
uint8 pad_0E2[0x2];
|
||||
sint32 length[4]; // 0x0E4
|
||||
uint16 time[4]; // 0x0F4
|
||||
|
@ -196,8 +196,9 @@ typedef struct {
|
|||
fixed16_2dp previous_lateral_g; // 0x104
|
||||
uint8 pad_106[0x2];
|
||||
uint32 testing_flags; // 0x108
|
||||
// x y map location
|
||||
uint16 var_10C;
|
||||
// x y map location of the current track piece during a test
|
||||
// this is to prevent counting special tracks multiple times
|
||||
rct_xy8 cur_test_track_location; // 0x10C
|
||||
// Next 3 variables are related (XXXX XYYY ZZZa aaaa)
|
||||
uint16 turn_count_default; // 0x10E X = current turn count
|
||||
uint16 turn_count_banked; // 0x110
|
||||
|
@ -214,10 +215,11 @@ typedef struct {
|
|||
uint8 start_drop_height; // 0x116
|
||||
uint8 highest_drop_height; // 0x117
|
||||
sint32 sheltered_length; // 0x118
|
||||
// Unused always 0? Should affect nausea
|
||||
uint16 var_11C;
|
||||
uint8 num_sheltered_sections; // 0x11E (?abY YYYY)
|
||||
// z related to var_10C
|
||||
uint8 var_11F;
|
||||
// see cur_test_track_location
|
||||
uint8 cur_test_track_z; // 0x11F
|
||||
// Customer counter in the current 960 game tick (about 30 seconds) interval
|
||||
uint16 cur_num_customers; // 0x120
|
||||
// Counts ticks to update customer intervals, resets each 960 game ticks.
|
||||
|
|
|
@ -751,15 +751,15 @@ static void vehicle_update_measurements(rct_vehicle *vehicle)
|
|||
if (ride->entrances[stationId] != 0xFFFF){
|
||||
uint8 test_segment = ride->current_test_segment;
|
||||
|
||||
ride->var_0E1++;
|
||||
if (ride->var_0E1 >= 32)ride->var_0E1 = 0;
|
||||
ride->average_speed_test_timeout++;
|
||||
if (ride->average_speed_test_timeout >= 32)ride->average_speed_test_timeout = 0;
|
||||
|
||||
sint32 velocity = abs(vehicle->velocity);
|
||||
if (velocity > ride->max_speed){
|
||||
ride->max_speed = velocity;
|
||||
}
|
||||
|
||||
if (ride->var_0E1 == 0 && velocity > 0x8000){
|
||||
if (ride->average_speed_test_timeout == 0 && velocity > 0x8000){
|
||||
ride->average_speed += velocity;
|
||||
ride->time[test_segment]++;
|
||||
}
|
||||
|
@ -798,10 +798,11 @@ static void vehicle_update_measurements(rct_vehicle *vehicle)
|
|||
}
|
||||
}
|
||||
|
||||
// If we have already evaluated this track piece skip to next section
|
||||
uint16 map_location = (vehicle->track_x / 32) | ((vehicle->track_y / 32) << 8);
|
||||
if (vehicle->track_z / 8 != ride->var_11F || map_location != ride->var_10C){
|
||||
ride->var_11F = vehicle->track_z / 8;
|
||||
ride->var_10C = map_location;
|
||||
if (vehicle->track_z / 8 != ride->cur_test_track_z || map_location != ride->cur_test_track_location.xy){
|
||||
ride->cur_test_track_z = vehicle->track_z / 8;
|
||||
ride->cur_test_track_location.xy = map_location;
|
||||
|
||||
if (ride->entrances[ride->current_test_station] == 0xFFFF)
|
||||
return;
|
||||
|
@ -2037,15 +2038,15 @@ void vehicle_test_reset(rct_vehicle* vehicle) {
|
|||
ride->max_speed = 0;
|
||||
ride->average_speed = 0;
|
||||
ride->current_test_segment = 0;
|
||||
ride->var_0E1 = 0;
|
||||
ride->average_speed_test_timeout = 0;
|
||||
ride->max_positive_vertical_g = FIXED_2DP(1, 0);
|
||||
ride->max_negative_vertical_g = FIXED_2DP(1, 0);
|
||||
ride->max_lateral_g = 0;
|
||||
ride->previous_vertical_g = 0;
|
||||
ride->previous_lateral_g = 0;
|
||||
ride->testing_flags = 0;
|
||||
ride->var_10C = 0xFFFF;
|
||||
ride->var_11F = 0xFF;
|
||||
ride->cur_test_track_location.xy = 0xFFFF;
|
||||
ride->cur_test_track_z = 0xFF;
|
||||
ride->turn_count_default = 0;
|
||||
ride->turn_count_banked = 0;
|
||||
ride->turn_count_sloped = 0;
|
||||
|
|
Loading…
Reference in New Issue