diff options
Diffstat (limited to 'src/vehicle.cpp')
-rw-r--r-- | src/vehicle.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 20f67c771..8920c4376 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -40,6 +40,7 @@ #include "newgrf_engine.h" #include "newgrf_sound.h" #include "helpers.hpp" +#include "economy.h" #define INVALID_COORD (-0x8000) #define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6)) @@ -741,6 +742,7 @@ static bool CanFillVehicle_FullLoadAny(Vehicle *v) return keep_loading || (not_full && (full & ~not_full) == 0); } + bool CanFillVehicle(Vehicle *v) { TileIndex tile = v->tile; @@ -2971,11 +2973,15 @@ void Vehicle::BeginLoading() GetStation(this->last_station_visited)->loading_vehicles.push_back(this); SET_EXPENSES_TYPE(this->GetExpenseType(true)); - if (LoadUnloadVehicle(this, true) != 0) { - InvalidateWindow(this->GetVehicleListWindowClass(), this->owner); - this->MarkDirty(); - } + VehiclePayment(this); + + InvalidateWindow(this->GetVehicleListWindowClass(), this->owner); InvalidateWindowWidget(WC_VEHICLE_VIEW, this->index, STATUS_BAR); + InvalidateWindow(WC_VEHICLE_DETAILS, this->index); + InvalidateWindow(WC_STATION_VIEW, this->last_station_visited); + + GetStation(this->last_station_visited)->MarkTilesDirty(); + this->MarkDirty(); } void Vehicle::LeaveStation() |