src/road_map.cpp
changeset 5587 167d9a91ef02
parent 5584 1111b4d36e35
child 6012 065d7234a7a9
equal deleted inserted replaced
5586:2d4126d81ebb 5587:167d9a91ef02
    21 				case ROAD_TILE_CROSSING: return GetCrossingRoadBits(tile);
    21 				case ROAD_TILE_CROSSING: return GetCrossingRoadBits(tile);
    22 				case ROAD_TILE_DEPOT:    return DiagDirToRoadBits(GetRoadDepotDirection(tile));
    22 				case ROAD_TILE_DEPOT:    return DiagDirToRoadBits(GetRoadDepotDirection(tile));
    23 			}
    23 			}
    24 
    24 
    25 		case MP_STATION:
    25 		case MP_STATION:
    26 			if (!IsRoadStopTile(tile)) return 0;
    26 			if (!IsRoadStopTile(tile)) return ROAD_NONE;
    27 			return DiagDirToRoadBits(GetRoadStopDir(tile));
    27 			return DiagDirToRoadBits(GetRoadStopDir(tile));
    28 
    28 
    29 		case MP_TUNNELBRIDGE:
    29 		case MP_TUNNELBRIDGE:
    30 			if (IsTunnel(tile)) {
    30 			if (IsTunnel(tile)) {
    31 				if (GetTunnelTransportType(tile) != TRANSPORT_ROAD) return 0;
    31 				if (GetTunnelTransportType(tile) != TRANSPORT_ROAD) return ROAD_NONE;
    32 				return DiagDirToRoadBits(ReverseDiagDir(GetTunnelDirection(tile)));
    32 				return DiagDirToRoadBits(ReverseDiagDir(GetTunnelDirection(tile)));
    33 			} else {
    33 			} else {
    34 				if (GetBridgeTransportType(tile) != TRANSPORT_ROAD) return 0;
    34 				if (GetBridgeTransportType(tile) != TRANSPORT_ROAD) return ROAD_NONE;
    35 				return DiagDirToRoadBits(ReverseDiagDir(GetBridgeRampDirection(tile)));
    35 				return DiagDirToRoadBits(ReverseDiagDir(GetBridgeRampDirection(tile)));
    36 			}
    36 			}
    37 
    37 
    38 		default: return 0;
    38 		default: return ROAD_NONE;
    39 	}
    39 	}
    40 }
    40 }
    41 
    41 
    42 
    42 
    43 TrackBits GetAnyRoadTrackBits(TileIndex tile)
    43 TrackBits GetAnyRoadTrackBits(TileIndex tile)
    44 {
    44 {
    45 	uint32 r;
    45 	uint32 r;
    46 
    46 
    47 	// Don't allow local authorities to build roads through road depots or road stops.
    47 	// Don't allow local authorities to build roads through road depots or road stops.
    48 	if ((IsTileType(tile, MP_STREET) && IsTileDepotType(tile, TRANSPORT_ROAD)) || IsTileType(tile, MP_STATION)) {
    48 	if ((IsTileType(tile, MP_STREET) && IsTileDepotType(tile, TRANSPORT_ROAD)) || IsTileType(tile, MP_STATION)) {
    49 		return 0;
    49 		return TRACK_BIT_NONE;
    50 	}
    50 	}
    51 
    51 
    52 	r = GetTileTrackStatus(tile, TRANSPORT_ROAD);
    52 	r = GetTileTrackStatus(tile, TRANSPORT_ROAD);
    53 	return (byte)(r | (r >> 8));
    53 	return (TrackBits)(byte)(r | (r >> 8));
    54 }
    54 }