* Return the rail type of tile, or INVALID_RAILTYPE if this is no rail tile. */
| 35 | * Return the rail type of tile, or INVALID_RAILTYPE if this is no rail tile. |
| 36 | */ |
| 37 | RailType GetTileRailType(Tile tile) |
| 38 | { |
| 39 | switch (GetTileType(tile)) { |
| 40 | case MP_RAILWAY: |
| 41 | return GetRailType(tile); |
| 42 | |
| 43 | case MP_ROAD: |
| 44 | /* rail/road crossing */ |
| 45 | if (IsLevelCrossing(tile)) return GetRailType(tile); |
| 46 | break; |
| 47 | |
| 48 | case MP_STATION: |
| 49 | if (HasStationRail(tile)) return GetRailType(tile); |
| 50 | break; |
| 51 | |
| 52 | case MP_TUNNELBRIDGE: |
| 53 | if (GetTunnelBridgeTransportType(tile) == TRANSPORT_RAIL) return GetRailType(tile); |
| 54 | break; |
| 55 | |
| 56 | default: |
| 57 | break; |
| 58 | } |
| 59 | return INVALID_RAILTYPE; |
| 60 | } |
| 61 | |
| 62 | /** |
| 63 | * Finds out if a company has a certain buildable railtype available. |
no test coverage detected