From 981bf52bdd1a2f5fbf447f211a4dbbb43547aee3 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 2 May 2007 18:29:11 +0000 Subject: (svn r9770) -Codechange: perform the payment of cargo when loading/unloading, but when arriving at the station. --- src/vehicle.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/vehicle.cpp') 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() -- cgit v1.2.3-70-g09d2