(svn r8343) -Cleanup: [build vehicle windows] added a few comments and removed two switch-cases, that we can do without
authorbjarni
Mon, 22 Jan 2007 14:08:14 +0000
changeset 5790 d4a732968bda
parent 5789 d087153d3659
child 5791 7b2a5160ee31
(svn r8343) -Cleanup: [build vehicle windows] added a few comments and removed two switch-cases, that we can do without
src/build_vehicle_gui.cpp
--- a/src/build_vehicle_gui.cpp	Mon Jan 22 10:27:14 2007 +0000
+++ b/src/build_vehicle_gui.cpp	Mon Jan 22 14:08:14 2007 +0000
@@ -65,7 +65,7 @@
 }
 
 /* Setup widget strings to fit the different types of vehicles */
-static void SetupWindowStrings(const Window *w, byte type)
+static void SetupWindowStrings(Window *w, byte type)
 {
 	switch (type) {
 		case VEH_Train:
@@ -297,6 +297,7 @@
 }
 
 static EngList_SortTypeFunction * const _sorter[][9] = {{
+	/* Trains */
 	&EngineNumberSorter,
 	&TrainEngineCostSorter,
 	&TrainEngineSpeedSorter,
@@ -307,16 +308,19 @@
 	&TrainEnginePowerVsRunningCostSorter,
 	&EngineReliabilitySorter,
 },{
+	/* Road vehicles */
 	&EngineNumberSorter,
 	&EngineIntroDateSorter,
 	&EngineNameSorter,
 	&EngineReliabilitySorter,
 },{
+	/* Ships */
 	&EngineNumberSorter,
 	&EngineIntroDateSorter,
 	&EngineNameSorter,
 	&EngineReliabilitySorter,
 },{
+	/* Aircraft */
 	&EngineNumberSorter,
 	&AircraftEngineCostSorter,
 	&AircraftEngineSpeedSorter,
@@ -328,6 +332,7 @@
 }};
 
 static const StringID _sort_listing[][10] = {{
+	/* Trains */
 	STR_ENGINE_SORT_ENGINE_ID,
 	STR_ENGINE_SORT_COST,
 	STR_SORT_BY_MAX_SPEED,
@@ -339,18 +344,21 @@
 	STR_SORT_BY_RELIABILITY,
 	INVALID_STRING_ID
 },{
+	/* Road vehicles */
 	STR_ENGINE_SORT_ENGINE_ID,
 	STR_ENGINE_SORT_INTRO_DATE,
 	STR_SORT_BY_DROPDOWN_NAME,
 	STR_SORT_BY_RELIABILITY,
 	INVALID_STRING_ID
 },{
+	/* Ships */
 	STR_ENGINE_SORT_ENGINE_ID,
 	STR_ENGINE_SORT_INTRO_DATE,
 	STR_SORT_BY_DROPDOWN_NAME,
 	STR_SORT_BY_RELIABILITY,
 	INVALID_STRING_ID
 },{
+	/* Aircraft */
 	STR_ENGINE_SORT_ENGINE_ID,
 	STR_ENGINE_SORT_COST,
 	STR_SORT_BY_MAX_SPEED,
@@ -521,6 +529,7 @@
 	const Engine *e = GetEngine(engine_number);
 	YearMonthDay ymd;
 	ConvertDateToYMD(e->intro_date, &ymd);
+	bool refitable = false;
 
 	switch (e->type) {
 		case VEH_Train: {
@@ -528,8 +537,10 @@
 
 			if (rvi->flags & RVI_WAGON) {
 				y = DrawVehiclePurchaseInfo(x, y, engine_number, rvi);
+				refitable = true;
 			} else {
 				y = DrawVehiclePurchaseInfo(x, y, engine_number, rvi, e);
+				refitable = (rvi->capacity > 0);
 			}
 
 			/* Cargo type + capacity, or N/A */
@@ -548,12 +559,16 @@
 			break;
 		case VEH_Road:
 			y = DrawVehiclePurchaseInfo(x, y, engine_number, RoadVehInfo(engine_number));
+			refitable = true;
 			break;
-		case VEH_Ship:
-			y = DrawVehiclePurchaseInfo(x, y, engine_number, ShipVehInfo(engine_number));
-			break;
+		case VEH_Ship: {
+			const ShipVehicleInfo *svi = ShipVehInfo(engine_number);
+			y = DrawVehiclePurchaseInfo(x, y, engine_number, svi);
+			refitable = svi->refittable;
+		} break;
 		case VEH_Aircraft:
 			y = DrawVehiclePurchaseInfo(x, y, engine_number, AircraftVehInfo(engine_number));
+			refitable = true;
 			break;
 	}
 
@@ -573,19 +588,7 @@
 
 	/* Additional text from NewGRF */
 	y += ShowAdditionalText(x, y, w, engine_number);
-	switch (e->type) {
-		case VEH_Train: {
-			const RailVehicleInfo *rvi = RailVehInfo(engine_number);
-			if (rvi->capacity > 0) y += ShowRefitOptionsList(x, y, w, engine_number);
-		} break;
-		case VEH_Ship: {
-			const ShipVehicleInfo *svi = ShipVehInfo(engine_number);
-			if (svi->refittable) y += ShowRefitOptionsList(x, y, w, engine_number);
-		} break;
-		case VEH_Aircraft:
-			y += ShowRefitOptionsList(x, y, w, engine_number);
-			break;
-	}
+	if (refitable) y += ShowRefitOptionsList(x, y, w, engine_number);
 }
 
 /* Figure out what train EngineIDs to put in the list */
@@ -688,20 +691,6 @@
 	sel_id = INVALID_ENGINE;
 	for (eid = AIRCRAFT_ENGINES_INDEX; eid < AIRCRAFT_ENGINES_INDEX + NUM_AIRCRAFT_ENGINES; eid++) {
 		if (IsEngineBuildable(eid, VEH_Aircraft, _local_player)) {
-			const AircraftVehicleInfo *avi = AircraftVehInfo(eid);
-			switch (bv->filter.acc_planes) {
-				case HELICOPTERS_ONLY:
-					if (avi->subtype != 0) continue; // if not helicopter
-					break;
-
-				case AIRCRAFT_ONLY:
-					if (avi->subtype == 0) continue; // if helicopter
-					break;
-
-				case ALL: break;
-				default:
-					NOT_REACHED();
-			}
 			EngList_Add(&bv->eng_list, eid);
 
 			if (eid == bv->sel_engine) sel_id = eid;