mirror of https://github.com/OpenTTD/OpenTTD
Fix: NewGRF vehicles display loading sprites when not actually loading or unloading (#13554)
parent
2fed4b0059
commit
b0cc56a8b5
|
@ -1008,7 +1008,9 @@ static uint32_t VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *objec
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool in_motion = !v->First()->current_order.IsType(OT_LOADING);
|
const Order &order = v->First()->current_order;
|
||||||
|
bool not_loading = (order.GetUnloadType() & OUFB_NO_UNLOAD) && (order.GetLoadType() & OLFB_NO_LOAD);
|
||||||
|
bool in_motion = !order.IsType(OT_LOADING) || not_loading;
|
||||||
|
|
||||||
uint totalsets = in_motion ? (uint)group->loaded.size() : (uint)group->loading.size();
|
uint totalsets = in_motion ? (uint)group->loaded.size() : (uint)group->loading.size();
|
||||||
|
|
||||||
|
|
|
@ -197,7 +197,7 @@ bool Order::Equals(const Order &other) const
|
||||||
uint16_t Order::MapOldOrder() const
|
uint16_t Order::MapOldOrder() const
|
||||||
{
|
{
|
||||||
uint16_t order = this->GetType();
|
uint16_t order = this->GetType();
|
||||||
switch (this->type) {
|
switch (this->GetType()) {
|
||||||
case OT_GOTO_STATION:
|
case OT_GOTO_STATION:
|
||||||
if (this->GetUnloadType() & OUFB_UNLOAD) SetBit(order, 5);
|
if (this->GetUnloadType() & OUFB_UNLOAD) SetBit(order, 5);
|
||||||
if (this->GetLoadType() & OLFB_FULL_LOAD) SetBit(order, 6);
|
if (this->GetLoadType() & OLFB_FULL_LOAD) SetBit(order, 6);
|
||||||
|
@ -211,6 +211,12 @@ uint16_t Order::MapOldOrder() const
|
||||||
break;
|
break;
|
||||||
case OT_LOADING:
|
case OT_LOADING:
|
||||||
if (this->GetLoadType() & OLFB_FULL_LOAD) SetBit(order, 6);
|
if (this->GetLoadType() & OLFB_FULL_LOAD) SetBit(order, 6);
|
||||||
|
/* If both "no load" and "no unload" are set, return nothing order instead */
|
||||||
|
if ((this->GetLoadType() & OLFB_NO_LOAD) && (this->GetUnloadType() & OUFB_NO_UNLOAD)) {
|
||||||
|
order = OT_NOTHING;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return order;
|
return order;
|
||||||
|
|
Loading…
Reference in New Issue