Fix loading bugs

This commit is contained in:
Duncan Frost 2015-04-12 16:25:22 +01:00 committed by duncanspumpkin
parent b60ca54e47
commit 7afc7453fd
1 changed files with 13 additions and 12 deletions

View File

@ -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);