diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/economy.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index c9e9fa572..76c32533e 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -1135,7 +1135,8 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) int unloading_time = 0; Vehicle *u = v; - int result = 0; + bool dirty_vehicle = false; + bool dirty_station = false; bool completely_emptied = true; bool anything_unloaded = false; @@ -1175,7 +1176,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) /* The cargo has reached it's final destination, the packets may now be destroyed */ remaining = v->cargo.MoveTo<StationCargoList>(NULL, amount_unloaded, VehicleCargoList::MTA_FINAL_DELIVERY, payment, last_visited); - result |= 1; + dirty_vehicle = true; accepted = true; } @@ -1188,7 +1189,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) remaining = v->cargo.MoveTo(&ge->cargo, amount_unloaded, u->current_order.GetUnloadType() & OUFB_TRANSFER ? VehicleCargoList::MTA_TRANSFER : VehicleCargoList::MTA_UNLOAD, payment); SetBit(ge->acceptance_pickup, GoodsEntry::PICKUP); - result |= 2; + dirty_vehicle = dirty_station = true; } else if (!accepted) { /* The order changed while unloading (unset unload/transfer) or the * station does not accept our goods. */ @@ -1279,7 +1280,7 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) unloading_time += cap; - result |= 2; + dirty_vehicle = dirty_station = true; } if (v->cargo.Count() >= v->cargo_cap) { @@ -1367,14 +1368,14 @@ static void LoadUnloadVehicle(Vehicle *v, int *cargo_left) TriggerVehicle(v, VEHICLE_TRIGGER_EMPTY); } - if (result != 0) { + if (dirty_vehicle) { SetWindowDirty(GetWindowClassForVehicleType(v->type), v->owner); SetWindowDirty(WC_VEHICLE_DETAILS, v->index); - - st->MarkTilesDirty(true); v->MarkDirty(); - - if (result & 2) SetWindowDirty(WC_STATION_VIEW, last_visited); + } + if (dirty_station) { + st->MarkTilesDirty(true); + SetWindowDirty(WC_STATION_VIEW, last_visited); } } |