changeset 17490:78c33eb4b741 draft

(svn r22245) -Codechange: Make vehicle lists handle command-/GUI-scope invalidations themself.
author frosch <frosch@openttd.org>
date Sun, 13 Mar 2011 21:33:30 +0000
parents 7e48879a9608
children 9314683faeb2
files src/vehicle.cpp src/vehicle_gui.cpp
diffstat 2 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -2270,7 +2270,7 @@
 	} else if (were_first) {
 		/* If we were the first one, update to the new first one.
 		 * Note: FirstShared() is already the new first */
-		InvalidateWindowData(GetWindowClassForVehicleType(this->type), vli.Pack(), this->FirstShared()->index | (1U << 31), true);
+		InvalidateWindowData(GetWindowClassForVehicleType(this->type), vli.Pack(), this->FirstShared()->index | (1U << 31));
 	}
 
 	this->next_shared     = NULL;
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -1609,13 +1609,14 @@
 	 */
 	virtual void OnInvalidateData(int data = 0, bool gui_scope = true)
 	{
-		if (!gui_scope) return;
-		if (HasBit(data, 31) && this->vli.type == VL_SHARED_ORDERS) {
+		if (!gui_scope && HasBit(data, 31) && this->vli.type == VL_SHARED_ORDERS) {
+			/* Needs to be done in command-scope, so everything stays valid */
 			this->vli.index = GB(data, 0, 20);
 			this->window_number = this->vli.Pack();
 			this->vehicles.ForceRebuild();
 			return;
 		}
+		if (!gui_scope) return;
 
 		/* We can only set the trigger for resorting/rebuilding.
 		 * We cannot safely resort at this point, as there might be multiple scheduled invalidations,