diff options
author | peter1138 <peter1138@openttd.org> | 2017-03-13 07:37:05 +0000 |
---|---|---|
committer | peter1138 <peter1138@openttd.org> | 2017-03-13 07:37:05 +0000 |
commit | d31f9a83e731f9c450d2849cf048263b054bfe35 (patch) | |
tree | e3f7ed5575277fa1b3585d7bce1e95b8a6c30dab /src | |
parent | 86eae807be8d93680e0adcb92fea2cc4d80972d6 (diff) | |
download | openttd-d31f9a83e731f9c450d2849cf048263b054bfe35.tar.xz |
(svn r27788) -Fix [FS#6536]: Get vehicle load amount after executing new cargo trigger.
Diffstat (limited to 'src')
-rw-r--r-- | src/economy.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index cdfa059e8..7461d34b7 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1643,13 +1643,11 @@ static void LoadUnloadVehicle(Vehicle *front) if (v->cargo_cap == 0) continue; artic_part++; - uint load_amount = GetLoadAmount(v); - GoodsEntry *ge = &st->goods[v->cargo_type]; if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (front->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) { uint cargo_count = v->cargo.UnloadCount(); - uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, load_amount) : cargo_count; + uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, GetLoadAmount(v)) : cargo_count; bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here? assert(payment != NULL); @@ -1754,8 +1752,8 @@ static void LoadUnloadVehicle(Vehicle *front) * has capacity for it, load it on the vehicle. */ uint cap_left = v->cargo_cap - v->cargo.StoredCount(); if (cap_left > 0 && (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0)) { - if (_settings_game.order.gradual_loading) cap_left = min(cap_left, load_amount); if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO); + if (_settings_game.order.gradual_loading) cap_left = min(cap_left, GetLoadAmount(v)); uint loaded = ge->cargo.Load(cap_left, &v->cargo, st->xy, next_station); if (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0) { |