diff options
author | frosch <frosch@openttd.org> | 2008-11-13 20:26:06 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-11-13 20:26:06 +0000 |
commit | 24bd9866f8e37d1b28ba39a1c3776cceb2ac61f0 (patch) | |
tree | 16f9f3a9b5b0e6e11ec88ee7a596948c59ee54c2 | |
parent | 09e63d549880e0919b67016fd86c56f4ec90c06d (diff) | |
download | openttd-24bd9866f8e37d1b28ba39a1c3776cceb2ac61f0.tar.xz |
(svn r14578) -Fix (r2389, r10811)[FS#Vikthor]: Allow capacity callbacks (15, 36) to return zero capacity.
-rw-r--r-- | src/roadveh_cmd.cpp | 2 | ||||
-rw-r--r-- | src/train_cmd.cpp | 26 |
2 files changed, 12 insertions, 16 deletions
diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 6a7a75f70..65c040402 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -2085,8 +2085,6 @@ CommandCost CmdRefitRoadVeh(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) } } - if (capacity == 0) continue; - total_capacity += capacity; if (IsHumanCompany(v->owner) && new_cid != v->cargo_type) { diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index 43cf9265c..c78d1ef54 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2080,21 +2080,19 @@ CommandCost CmdRefitRailVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 } } - if (amount != 0) { - if (new_cid != v->cargo_type) { - cost.AddCost(GetRefitCost(v->engine_type)); - } + if (new_cid != v->cargo_type) { + cost.AddCost(GetRefitCost(v->engine_type)); + } - num += amount; - if (flags & DC_EXEC) { - v->cargo.Truncate((v->cargo_type == new_cid) ? amount : 0); - v->cargo_type = new_cid; - v->cargo_cap = amount; - v->cargo_subtype = new_subtype; - InvalidateWindow(WC_VEHICLE_DETAILS, v->index); - InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); - InvalidateWindowClassesData(WC_TRAINS_LIST, 0); - } + num += amount; + if (flags & DC_EXEC) { + v->cargo.Truncate((v->cargo_type == new_cid) ? amount : 0); + v->cargo_type = new_cid; + v->cargo_cap = amount; + v->cargo_subtype = new_subtype; + InvalidateWindow(WC_VEHICLE_DETAILS, v->index); + InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); + InvalidateWindowClassesData(WC_TRAINS_LIST, 0); } } } while ((v = v->Next()) != NULL && !only_this); |