mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r24711) -Fix (r10354): Check whether to not display a ^ loading indicator at drop stations only worked if there was no other vehicle unloading for 255 ticks.
This commit is contained in:
parent
f575f2c694
commit
e888f9da9f
|
@ -1240,9 +1240,14 @@ uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour)
|
||||||
int unloading = 0;
|
int unloading = 0;
|
||||||
bool loading = false;
|
bool loading = false;
|
||||||
|
|
||||||
|
bool is_loading = front->current_order.IsType(OT_LOADING);
|
||||||
|
|
||||||
/* The station may be NULL when the (colour) string does not need to be set. */
|
/* The station may be NULL when the (colour) string does not need to be set. */
|
||||||
const Station *st = Station::GetIfValid(front->last_station_visited);
|
const Station *st = Station::GetIfValid(front->last_station_visited);
|
||||||
assert(colour == NULL || st != NULL);
|
assert(colour == NULL || (st != NULL && is_loading));
|
||||||
|
|
||||||
|
bool order_no_load = is_loading && (front->current_order.GetLoadType() & OLFB_NO_LOAD);
|
||||||
|
bool order_full_load = is_loading && (front->current_order.GetLoadType() & OLFB_FULL_LOAD);
|
||||||
|
|
||||||
/* Count up max and used */
|
/* Count up max and used */
|
||||||
for (const Vehicle *v = front; v != NULL; v = v->Next()) {
|
for (const Vehicle *v = front; v != NULL; v = v->Next()) {
|
||||||
|
@ -1250,7 +1255,9 @@ uint8 CalcPercentVehicleFilled(const Vehicle *front, StringID *colour)
|
||||||
max += v->cargo_cap;
|
max += v->cargo_cap;
|
||||||
if (v->cargo_cap != 0 && colour != NULL) {
|
if (v->cargo_cap != 0 && colour != NULL) {
|
||||||
unloading += HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) ? 1 : 0;
|
unloading += HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) ? 1 : 0;
|
||||||
loading |= !(front->current_order.GetLoadType() & OLFB_NO_LOAD) && st->goods[v->cargo_type].days_since_pickup != 255;
|
loading |= !order_no_load &&
|
||||||
|
(order_full_load || HasBit(st->goods[v->cargo_type].acceptance_pickup, GoodsEntry::GES_PICKUP)) &&
|
||||||
|
!HasBit(v->vehicle_flags, VF_LOADING_FINISHED) && !HasBit(v->vehicle_flags, VF_STOP_LOADING);
|
||||||
cars++;
|
cars++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue