(svn r12862) -Codechange: reduce code duplication for VehicleType -> WindowClass lookup
authorsmatz
Thu, 24 Apr 2008 09:55:20 +0000
changeset 9043 eb4f06b99146
parent 9042 fcdc6b0a3e20
child 9044 d01d22d12fce
(svn r12862) -Codechange: reduce code duplication for VehicleType -> WindowClass lookup
src/aircraft.h
src/economy.cpp
src/group_cmd.cpp
src/order_cmd.cpp
src/roadveh.h
src/ship.h
src/station.cpp
src/train.h
src/vehicle.cpp
src/vehicle_base.h
src/vehicle_gui.h
--- a/src/aircraft.h	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/aircraft.h	Thu Apr 24 09:55:20 2008 +0000
@@ -117,7 +117,6 @@
 	void MarkDirty();
 	void UpdateDeltaXY(Direction direction);
 	ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_AIRCRAFT_INC : EXPENSES_AIRCRAFT_RUN; }
-	WindowClass GetVehicleListWindowClass() const { return WC_AIRCRAFT_LIST; }
 	bool IsPrimaryVehicle() const { return IsNormalAircraft(this); }
 	SpriteID GetImage(Direction direction) const;
 	int GetDisplaySpeed() const { return this->cur_speed * 10 / 16; }
--- a/src/economy.cpp	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/economy.cpp	Thu Apr 24 09:55:20 2008 +0000
@@ -1781,7 +1781,7 @@
 	}
 
 	if (result != 0) {
-		InvalidateWindow(v->GetVehicleListWindowClass(), v->owner);
+		InvalidateWindow(GetWindowClassForVehicleType(v->type), v->owner);
 		InvalidateWindow(WC_VEHICLE_DETAILS, v->index);
 
 		st->MarkTilesDirty(true);
--- a/src/group_cmd.cpp	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/group_cmd.cpp	Thu Apr 24 09:55:20 2008 +0000
@@ -70,18 +70,6 @@
 }
 
 
-static WindowClass GetWCForVT(VehicleType vt)
-{
-	switch (vt) {
-		default:
-		case VEH_TRAIN:    return WC_TRAINS_LIST;
-		case VEH_ROAD:     return WC_ROADVEH_LIST;
-		case VEH_SHIP:     return WC_SHIPS_LIST;
-		case VEH_AIRCRAFT: return WC_AIRCRAFT_LIST;
-	}
-}
-
-
 /**
  * Create a new vehicle group.
  * @param tile unused
@@ -100,7 +88,7 @@
 		g->replace_protection = false;
 		g->vehicle_type = vt;
 
-		InvalidateWindowData(GetWCForVT(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
@@ -149,7 +137,7 @@
 		DeleteWindowById(WC_REPLACE_VEHICLE, g->vehicle_type);
 		delete g;
 
-		InvalidateWindowData(GetWCForVT(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(vt), (vt << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
@@ -191,7 +179,7 @@
 		/* Assign the new one */
 		g->name = strdup(_cmd_text);
 
-		InvalidateWindowData(GetWCForVT(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
@@ -240,7 +228,7 @@
 
 		/* Update the Replace Vehicle Windows */
 		InvalidateWindow(WC_REPLACE_VEHICLE, v->type);
-		InvalidateWindowData(GetWCForVT(v->type), (v->type << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(v->type), (v->type << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
@@ -276,7 +264,7 @@
 			}
 		}
 
-		InvalidateWindowData(GetWCForVT(type), (type << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(type), (type << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
@@ -312,7 +300,7 @@
 			}
 		}
 
-		InvalidateWindowData(GetWCForVT(type), (type << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(type), (type << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
@@ -337,7 +325,7 @@
 	if (flags & DC_EXEC) {
 		g->replace_protection = HasBit(p2, 0);
 
-		InvalidateWindowData(GetWCForVT(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
+		InvalidateWindowData(GetWindowClassForVehicleType(g->vehicle_type), (g->vehicle_type << 11) | VLW_GROUP_LIST | _current_player);
 	}
 
 	return CommandCost();
--- a/src/order_cmd.cpp	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/order_cmd.cpp	Thu Apr 24 09:55:20 2008 +0000
@@ -1663,7 +1663,7 @@
 
 		case VEH_AIRCRAFT:
 		case VEH_SHIP:
-			InvalidateWindowClasses(v->GetVehicleListWindowClass());
+			InvalidateWindowClasses(GetWindowClassForVehicleType(v->type));
 			break;
 	}
 
--- a/src/roadveh.h	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/roadveh.h	Thu Apr 24 09:55:20 2008 +0000
@@ -71,7 +71,6 @@
 	void MarkDirty();
 	void UpdateDeltaXY(Direction direction);
 	ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_ROADVEH_INC : EXPENSES_ROADVEH_RUN; }
-	WindowClass GetVehicleListWindowClass() const { return WC_ROADVEH_LIST; }
 	bool IsPrimaryVehicle() const { return IsRoadVehFront(this); }
 	SpriteID GetImage(Direction direction) const;
 	int GetDisplaySpeed() const { return this->cur_speed * 10 / 32; }
--- a/src/ship.h	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/ship.h	Thu Apr 24 09:55:20 2008 +0000
@@ -32,7 +32,6 @@
 	void MarkDirty();
 	void UpdateDeltaXY(Direction direction);
 	ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_SHIP_INC : EXPENSES_SHIP_RUN; }
-	WindowClass GetVehicleListWindowClass() const { return WC_SHIPS_LIST; }
 	void PlayLeaveStationSound() const;
 	bool IsPrimaryVehicle() const { return true; }
 	SpriteID GetImage(Direction direction) const;
--- a/src/station.cpp	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/station.cpp	Thu Apr 24 09:55:20 2008 +0000
@@ -21,6 +21,7 @@
 #include "yapf/yapf.h"
 #include "cargotype.h"
 #include "roadveh.h"
+#include "window_type.h"
 #include "station_gui.h"
 #include "zoom_func.h"
 #include "functions.h"
--- a/src/train.h	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/train.h	Thu Apr 24 09:55:20 2008 +0000
@@ -293,7 +293,6 @@
 	void MarkDirty();
 	void UpdateDeltaXY(Direction direction);
 	ExpensesType GetExpenseType(bool income) const { return income ? EXPENSES_TRAIN_INC : EXPENSES_TRAIN_RUN; }
-	WindowClass GetVehicleListWindowClass() const { return WC_TRAINS_LIST; }
 	void PlayLeaveStationSound() const;
 	bool IsPrimaryVehicle() const { return IsFrontEngine(this); }
 	SpriteID GetImage(Direction direction) const;
--- a/src/vehicle.cpp	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/vehicle.cpp	Thu Apr 24 09:55:20 2008 +0000
@@ -2546,7 +2546,7 @@
 
 	VehiclePayment(this);
 
-	InvalidateWindow(this->GetVehicleListWindowClass(), this->owner);
+	InvalidateWindow(GetWindowClassForVehicleType(this->type), this->owner);
 	InvalidateWindowWidget(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
 	InvalidateWindow(WC_VEHICLE_DETAILS, this->index);
 	InvalidateWindow(WC_STATION_VIEW, this->last_station_visited);
--- a/src/vehicle_base.h	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/vehicle_base.h	Thu Apr 24 09:55:20 2008 +0000
@@ -11,7 +11,6 @@
 #include "road_type.h"
 #include "cargo_type.h"
 #include "direction_type.h"
-#include "window_type.h"
 #include "gfx_type.h"
 #include "command_type.h"
 #include "date_type.h"
@@ -371,11 +370,6 @@
 	virtual ExpensesType GetExpenseType(bool income) const { return EXPENSES_OTHER; }
 
 	/**
-	 * Invalidates the vehicle list window of this type of vehicle
-	 */
-	virtual WindowClass GetVehicleListWindowClass() const { return WC_NONE; }
-
-	/**
 	 * Play the sound associated with leaving the station
 	 */
 	virtual void PlayLeaveStationSound() const {}
--- a/src/vehicle_gui.h	Thu Apr 24 08:53:04 2008 +0000
+++ b/src/vehicle_gui.h	Thu Apr 24 09:55:20 2008 +0000
@@ -99,6 +99,22 @@
 	return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24;
 }
 
+/** Get WindowClass for vehicle list of given vehicle type
+ * @param vt vehicle type to check
+ * @return corresponding window class
+ * @note works only for player buildable vehicle types
+ */
+static inline WindowClass GetWindowClassForVehicleType(VehicleType vt)
+{
+	switch (vt) {
+		default: NOT_REACHED();
+		case VEH_TRAIN:    return WC_TRAINS_LIST;
+		case VEH_ROAD:     return WC_ROADVEH_LIST;
+		case VEH_SHIP:     return WC_SHIPS_LIST;
+		case VEH_AIRCRAFT: return WC_AIRCRAFT_LIST;
+	}
+}
+
 /* Unified window procedure */
 void ShowVehicleViewWindow(const Vehicle *v);