(svn r8540) -Fix[YAPF]: Assert when buoy is placed on NE or NW map edge (Dan)
authorKUDr
Fri, 02 Feb 2007 20:20:56 +0000
changeset 6165 4da5ead702ad
parent 6164 a4458b13cca9
child 6166 053fd8482b7d
(svn r8540) -Fix[YAPF]: Assert when buoy is placed on NE or NW map edge (Dan)
src/station_cmd.cpp
--- a/src/station_cmd.cpp	Fri Feb 02 19:09:54 2007 +0000
+++ b/src/station_cmd.cpp	Fri Feb 02 20:20:56 2007 +0000
@@ -2134,7 +2134,14 @@
 
 		case TRANSPORT_WATER:
 			// buoy is coded as a station, it is always on open water
-			if (IsBuoy(tile)) return TRACK_BIT_ALL * 0x101;
+			if (IsBuoy(tile)) {
+				TrackBits ts = TRACK_BIT_ALL;
+				// remove tracks that connect NE map edge
+				if (TileX(tile) == 0) ts &= ~(TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT);
+				// remove tracks that connect NW map edge
+				if (TileY(tile) == 0) ts &= ~(TRACK_BIT_Y | TRACK_BIT_LEFT | TRACK_BIT_UPPER);
+				return uint32(ts) * 0x101;
+			}
 			break;
 
 		case TRANSPORT_ROAD: