changeset 10328:049acde11ee2 draft

(svn r14578) -Fix (r2389, r10811)[FS#Vikthor]: Allow capacity callbacks (15, 36) to return zero capacity.
author frosch <frosch@openttd.org>
date Thu, 13 Nov 2008 20:26:06 +0000
parents fce330344c5a
children e7a823b7c9c1
files src/roadveh_cmd.cpp src/train_cmd.cpp
diffstat 2 files changed, 13 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/roadveh_cmd.cpp
+++ b/src/roadveh_cmd.cpp
@@ -2085,8 +2085,6 @@
 			}
 		}
 
-		if (capacity == 0) continue;
-
 		total_capacity += capacity;
 
 		if (IsHumanCompany(v->owner) && new_cid != v->cargo_type) {
--- a/src/train_cmd.cpp
+++ b/src/train_cmd.cpp
@@ -2080,21 +2080,19 @@
 				}
 			}
 
-			if (amount != 0) {
-				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);
-				}
+			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);
 			}
 		}
 	} while ((v = v->Next()) != NULL && !only_this);