diff src/openttd.cpp @ 6738:6caeba8fcd4d draft

(svn r9971) -Fix (r9892, r9958): loading of post-'bridges over "everything"' messed with the railtype of bridges.
author rubidium <rubidium@openttd.org>
date Tue, 29 May 2007 08:19:37 +0000 (2007-05-29)
parents 0b56358a0e3d
children d868c71fb346
line wrap: on
line diff
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -1446,6 +1446,7 @@
 
 	if (CheckSavegameVersion(61)) {
 		/* Added the RoadType */
+		bool old_bridge = CheckSavegameVersion(42);
 		for (TileIndex t = 0; t < map_size; t++) {
 			switch(GetTileType(t)) {
 				case MP_STREET:
@@ -1470,7 +1471,9 @@
 					break;
 
 				case MP_TUNNELBRIDGE:
-					if ((IsTunnel(t) ? GetTunnelTransportType(t) : (TransportType)GB(_m[t].m5, 1, 2)) == TRANSPORT_ROAD) {
+					/* Middle part of "old" bridges */
+					if (old_bridge && IsBridgeTile(t) && HASBIT(_m[t].m5, 6)) break;
+					if ((IsTunnel(t) ? GetTunnelTransportType(t) : (old_bridge ? (TransportType)GB(_m[t].m5, 1, 2) : GetBridgeTransportType(t))) == TRANSPORT_ROAD) {
 						SetRoadTypes(t, ROADTYPES_ROAD);
 					}
 					break;