mirror of https://github.com/OpenRCT2/OpenRCT2.git
Fix loading bugs
This commit is contained in:
parent
b60ca54e47
commit
7afc7453fd
|
@ -1256,7 +1256,6 @@ static void vehicle_update_waiting_for_passengers(rct_vehicle* vehicle){
|
|||
}
|
||||
else{
|
||||
if (num_peeps_on_train == 0){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
@ -1265,13 +1264,13 @@ static void vehicle_update_waiting_for_passengers(rct_vehicle* vehicle){
|
|||
if (RCT2_ADDRESS(RCT2_ADDRESS_RIDE_FLAGS, uint32)[ride->type * 2] & RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS){
|
||||
if (ride->depart_flags & RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH){
|
||||
if (ride->min_waiting_time * 32 > vehicle->var_C0){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (ride->depart_flags & RIDE_DEPART_WAIT_FOR_MAXIMUM_LENGTH){
|
||||
if (ride->max_waiting_time * 32 < vehicle->var_C0){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
@ -1293,6 +1292,7 @@ static void vehicle_update_waiting_for_passengers(rct_vehicle* vehicle){
|
|||
if (train->status == VEHICLE_STATUS_UNLOADING_PASSENGERS ||
|
||||
train->status == VEHICLE_STATUS_MOVING_TO_END_OF_STATION){
|
||||
if (train->current_station == vehicle->current_station){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
@ -1304,41 +1304,42 @@ static void vehicle_update_waiting_for_passengers(rct_vehicle* vehicle){
|
|||
ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD){
|
||||
|
||||
if (num_peeps_on_train == num_seats_on_train){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 load = ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD_MASK;
|
||||
if (load == 3){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
uint8 three_quater_seats = (3 * num_seats_on_train) / 4;
|
||||
if (three_quater_seats != 0 && num_peeps_on_train >= three_quater_seats){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
if (load == 2){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
if (num_seats_on_train / 2 != 0 && num_peeps_on_train >= num_seats_on_train / 2){
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
if (load == 1){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
if (load == 1){
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
||||
if (num_seats_on_train / 4 != 0 && num_peeps_on_train >= num_seats_on_train / 4){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
|
@ -1351,9 +1352,9 @@ static void vehicle_update_waiting_for_passengers(rct_vehicle* vehicle){
|
|||
|
||||
if (num_peeps_on_train != 0){
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
}
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
return;
|
||||
}
|
||||
vehicle->var_48 |= (1 << 4);
|
||||
train_ready_to_depart(vehicle, num_peeps_on_train, num_used_seats_on_train);
|
||||
|
|
Loading…
Reference in New Issue