changeset 17609:3071c0b5f0a0 draft

(svn r22373) -Fix (r19955) (r20041) [FS#4592]: crash when clicking a removed company in the vehiclelist dropdowns
author yexo <yexo@openttd.org>
date Fri, 22 Apr 2011 21:51:34 +0000
parents e94cc34eb4f9
children cde059fb9320
files src/vehicle_gui.cpp
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -1635,16 +1635,7 @@
 
 static void ShowVehicleListWindowLocal(CompanyID company, VehicleListType vlt, VehicleType vehicle_type, uint16 unique_number)
 {
-	if (!Company::IsValidID(company)) {
-		company = _local_company;
-		/* This can happen when opening the vehicle list as a spectator.
-		 * While it would be cleaner to check this somewhere else, having
-		 * it here reduces code duplication */
-		if (!Company::IsValidID(company)) return;
-		_vehicle_list_desc.flags |= WDF_CONSTRUCTION;
-	} else {
-		_vehicle_list_desc.flags &= ~WDF_CONSTRUCTION;
-	}
+	if (!Company::IsValidID(company)) return;
 
 	_vehicle_list_desc.cls = GetWindowClassForVehicleType(vehicle_type);
 	AllocateWindowDescFront<VehicleListWindow>(&_vehicle_list_desc, VehicleListIdentifier(vlt, vehicle_type, company, unique_number).Pack());
@@ -1671,6 +1662,15 @@
 
 void ShowVehicleListWindow(CompanyID company, VehicleType vehicle_type, StationID station)
 {
+	if (!Company::IsValidID(company)) {
+		company = _local_company;
+		/* This can happen when opening the vehicle list as a spectator. */
+		if (!Company::IsValidID(company)) return;
+		_vehicle_list_desc.flags |= WDF_CONSTRUCTION;
+	} else {
+		_vehicle_list_desc.flags &= ~WDF_CONSTRUCTION;
+	}
+
 	ShowVehicleListWindowLocal(company, VL_STATION_LIST, vehicle_type, station);
 }