(svn r8429) -Codechange: Add a name for AircraftVehicleInfo subtype helicopter and remove some magic numbers related to the subtype.
--- a/src/engine.h Sat Jan 27 12:29:55 2007 +0000
+++ b/src/engine.h Sat Jan 27 12:45:55 2007 +0000
@@ -45,8 +45,11 @@
bool refittable;
} ShipVehicleInfo;
-/* AircraftVehicleInfo subtypes */
+/* AircraftVehicleInfo subtypes, bitmask type.
+ * If bit 0 is 0 then it is a helicopter, otherwise it is a plane
+ * in which case bit 1 tells us whether it's a big(fast) plane or not */
enum {
+ AIR_HELI = 0,
AIR_CTOL = 1, // Conventional Take Off and Landing, i.e. planes
AIR_FAST = 2
};
--- a/src/newgrf.cpp Sat Jan 27 12:29:55 2007 +0000
+++ b/src/newgrf.cpp Sat Jan 27 12:45:55 2007 +0000
@@ -745,15 +745,15 @@
case 0x09: /* Helicopter */
FOR_EACH_OBJECT {
if (grf_load_byte(&buf) == 0) {
- avi[i].subtype = 0;
+ avi[i].subtype = AIR_HELI;
} else {
- SB(avi[i].subtype, 0, 1, 1);
+ SB(avi[i].subtype, 0, 1, 1); // AIR_CTOL
}
}
break;
case 0x0A: /* Large */
- FOR_EACH_OBJECT SB(avi[i].subtype, 1, 1, (grf_load_byte(&buf) != 0 ? 1 : 0));
+ FOR_EACH_OBJECT SB(avi[i].subtype, 1, 1, (grf_load_byte(&buf) != 0 ? 1 : 0)); // AIR_FAST
break;
case 0x0B: /* Cost factor */
--- a/src/table/engines.h Sat Jan 27 12:29:55 2007 +0000
+++ b/src/table/engines.h Sat Jan 27 12:45:55 2007 +0000
@@ -518,7 +518,7 @@
* @param i passenger_capacity
*/
#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, {e}, f, g, h, i }
-#define H 0
+#define H AIR_HELI
#define P AIR_CTOL
#define J AIR_CTOL | AIR_FAST
const AircraftVehicleInfo orig_aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES] = {
--- a/src/vehicle.cpp Sat Jan 27 12:29:55 2007 +0000
+++ b/src/vehicle.cpp Sat Jan 27 12:45:55 2007 +0000
@@ -2891,9 +2891,9 @@
const AircraftVehicleInfo *avi = AircraftVehInfo(engine_type);
if (cargo_type == CT_INVALID) cargo_type = CT_PASSENGERS;
switch (avi->subtype) {
- case 0: scheme = LS_HELICOPTER; break;
- case 1: scheme = LS_SMALL_PLANE; break;
- case 3: scheme = LS_LARGE_PLANE; break;
+ case AIR_HELI: scheme = LS_HELICOPTER; break;
+ case AIR_CTOL: scheme = LS_SMALL_PLANE; break;
+ case AIR_CTOL | AIR_FAST: scheme = LS_LARGE_PLANE; break;
}
break;
}