MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / GetTileTrackStatus_Water

Function GetTileTrackStatus_Water

src/water_cmd.cpp:1359–1384  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1357}
1358
1359static TrackStatus GetTileTrackStatus_Water(TileIndex tile, TransportType mode, uint, DiagDirection)
1360{
1361 static const TrackBits coast_tracks[] = {TRACK_BIT_NONE, TRACK_BIT_RIGHT, TRACK_BIT_UPPER, TRACK_BIT_NONE, TRACK_BIT_LEFT, TRACK_BIT_NONE, TRACK_BIT_NONE,
1362 TRACK_BIT_NONE, TRACK_BIT_LOWER, TRACK_BIT_NONE, TRACK_BIT_NONE, TRACK_BIT_NONE, TRACK_BIT_NONE, TRACK_BIT_NONE, TRACK_BIT_NONE, TRACK_BIT_NONE};
1363
1364 TrackBits ts;
1365
1366 if (mode != TRANSPORT_WATER) return 0;
1367
1368 switch (GetWaterTileType(tile)) {
1369 case WaterTileType::Clear: ts = IsTileFlat(tile) ? TRACK_BIT_ALL : TRACK_BIT_NONE; break;
1370 case WaterTileType::Coast: ts = coast_tracks[GetTileSlope(tile) & 0xF]; break;
1371 case WaterTileType::Lock: ts = DiagDirToDiagTrackBits(GetLockDirection(tile)); break;
1372 case WaterTileType::Depot: ts = AxisToTrackBits(GetShipDepotAxis(tile)); break;
1373 default: return 0;
1374 }
1375 if (TileX(tile) == 0) {
1376 /* NE border: remove tracks that connects NE tile edge */
1377 ts &= ~(TRACK_BIT_X | TRACK_BIT_UPPER | TRACK_BIT_RIGHT);
1378 }
1379 if (TileY(tile) == 0) {
1380 /* NW border: remove tracks that connects NW tile edge */
1381 ts &= ~(TRACK_BIT_Y | TRACK_BIT_LEFT | TRACK_BIT_UPPER);
1382 }
1383 return CombineTrackStatus(TrackBitsToTrackdirBits(ts), TRACKDIR_BIT_NONE);
1384}
1385
1386static bool ClickTile_Water(TileIndex tile)
1387{

Callers

nothing calls this directly

Calls 11

GetWaterTileTypeFunction · 0.85
IsTileFlatFunction · 0.85
GetTileSlopeFunction · 0.85
DiagDirToDiagTrackBitsFunction · 0.85
GetLockDirectionFunction · 0.85
AxisToTrackBitsFunction · 0.85
GetShipDepotAxisFunction · 0.85
TileXFunction · 0.85
TileYFunction · 0.85
CombineTrackStatusFunction · 0.85
TrackBitsToTrackdirBitsFunction · 0.85

Tested by

no test coverage detected