(svn r8498) -Fix
authortron
Wed, 31 Jan 2007 21:38:09 +0000
changeset 6137 3d0a1dfdfba7
parent 6136 1262d3c24277
child 6138 c9a4aadfaaac
(svn r8498) -Fix

-Codechange: Move the update of the oil rig airport type to the recently (r8485) added loop
src/aircraft_cmd.cpp
src/openttd.cpp
--- a/src/aircraft_cmd.cpp	Wed Jan 31 20:20:36 2007 +0000
+++ b/src/aircraft_cmd.cpp	Wed Jan 31 21:38:09 2007 +0000
@@ -2041,14 +2041,6 @@
 	}
 }
 
-void UpdateOilRig(void)
-{
-	Station* st;
-
-	FOR_ALL_STATIONS(st) {
-		if (st->airport_type == 5) st->airport_type = AT_OILRIG;
-	}
-}
 
 // need to be called to load aircraft from old version
 void UpdateOldAircraft(void)
@@ -2060,8 +2052,6 @@
 	// set airport_flags to 0 for all airports just to be sure
 	FOR_ALL_STATIONS(st) {
 		st->airport_flags = 0; // reset airport
-		// type of oilrig has been moved, update it (3-5)
-		if (st->airport_type == 3) st->airport_type = AT_OILRIG;
 	}
 
 	FOR_ALL_VEHICLES(v_oldstyle) {
--- a/src/openttd.cpp	Wed Jan 31 20:20:36 2007 +0000
+++ b/src/openttd.cpp	Wed Jan 31 21:38:09 2007 +0000
@@ -1154,7 +1154,6 @@
 }
 
 extern void UpdateOldAircraft( void );
-extern void UpdateOilRig( void );
 
 
 static inline RailType UpdateRailType(RailType rt, RailType min)
@@ -1278,9 +1277,6 @@
 	DoZoomInOutWindow(ZOOM_NONE, w); // update button status
 	MarkWholeScreenDirty();
 
-	// In 5.1, Oilrigs have been moved (again)
-	if (CheckSavegameVersionOldStyle(5, 1)) UpdateOilRig();
-
 	/* From this version on there can be multiple road stops of the same type per
 	 * station. Convert the existing stops to the new internal data structure.
 	 */
@@ -1307,8 +1303,14 @@
 						 * the map
 						 */
 						TileIndex t1 = TILE_ADDXY(t, 1, 0);
-						if (!IsTileType(t1, MP_INDUSTRY) ||
-								GetIndustryGfx(t1) != GFX_OILRIG_3) {
+						if (IsTileType(t1, MP_INDUSTRY) &&
+								GetIndustryGfx(t1) == GFX_OILRIG_3) {
+							/* The internal encoding of oil rigs was changed twice.
+							 * It was 3 (till 2.2) and later 5 (till 5.1).
+							 * Setting it unconditionally does not hurt.
+							 */
+							GetStationByTile(t)->airport_type = AT_OILRIG;
+						} else {
 							DeleteOilRig(t);
 						}
 						break;