changeset 5886:28dcf755e961 draft

(svn r8498) -Fix -Codechange: Move the update of the oil rig airport type to the recently (r8485) added loop
author tron <tron@openttd.org>
date Wed, 31 Jan 2007 21:38:09 +0000
parents e0a6ce7c45b8
children 2f489a2c465a
files src/aircraft_cmd.cpp src/openttd.cpp
diffstat 2 files changed, 8 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/src/aircraft_cmd.cpp
+++ b/src/aircraft_cmd.cpp
@@ -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
+++ b/src/openttd.cpp
@@ -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;