Changeset - r5914:0835443bb2ba
[Not reviewed]
master
0 1 0
KUDr - 17 years ago 2007-02-02 20:20:56
kudr@openttd.org
(svn r8540) -Fix[YAPF]: Assert when buoy is placed on NE or NW map edge (Dan)
1 file changed with 8 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/station_cmd.cpp
Show inline comments
 
@@ -2113,49 +2113,56 @@ static void GetTileDesc_Station(TileInde
 
		case STATION_AIRPORT:
 
			str = (IsHangar(tile) ? STR_305F_AIRCRAFT_HANGAR : STR_3060_AIRPORT);
 
			break;
 
		case STATION_TRUCK:   str = STR_3061_TRUCK_LOADING_AREA; break;
 
		case STATION_BUS:     str = STR_3062_BUS_STATION; break;
 
		case STATION_OILRIG:  str = STR_4807_OIL_RIG; break;
 
		case STATION_DOCK:    str = STR_3063_SHIP_DOCK; break;
 
		case STATION_BUOY:    str = STR_3069_BUOY; break;
 
	}
 
	td->str = str;
 
}
 

	
 

	
 
static uint32 GetTileTrackStatus_Station(TileIndex tile, TransportType mode)
 
{
 
	switch (mode) {
 
		case TRANSPORT_RAIL:
 
			if (IsRailwayStation(tile) && !IsStationTileBlocked(tile)) {
 
				return TrackToTrackBits(GetRailStationTrack(tile)) * 0x101;
 
			}
 
			break;
 

	
 
		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:
 
			if (IsRoadStopTile(tile)) {
 
				return AxisToTrackBits(DiagDirToAxis(GetRoadStopDir(tile))) * 0x101;
 
			}
 
			break;
 

	
 
		default:
 
			break;
 
	}
 

	
 
	return 0;
 
}
 

	
 

	
 
static void TileLoop_Station(TileIndex tile)
 
{
 
	// FIXME -- GetTileTrackStatus_Station -> animated stationtiles
 
	// hardcoded.....not good
 
	switch (GetStationGfx(tile)) {
 
		case GFX_RADAR_LARGE_FIRST:
 
		case GFX_WINDSACK_FIRST : // for small airport
 
		case GFX_RADAR_INTERNATIONAL_FIRST:
0 comments (0 inline, 0 general)