mirror of https://github.com/OpenTTD/OpenTTD
Fix: NewGRF vehicles display loading sprites when not actually loading
parent
6b493714aa
commit
cb2d1e22fe
|
@ -987,7 +987,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();
|
||||||
|
|
||||||
|
|
|
@ -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