Use MayTownBuildBridgeType/BSCF_NOT_AVAILABLE_TOWN for bridge type check

This commit is contained in:
Jonathan G Rennison
2021-06-17 17:01:47 +01:00
parent 96bfcd587b
commit 724474e435

View File

@@ -460,12 +460,11 @@ static TileIndex BuildBridge(PathNode *current, TileIndex end_tile = INVALID_TIL
assert(!build_bridge || (IsValidTile(end_tile) && GetTileSlope(start_tile) == ComplementSlope(GetTileSlope(end_tile))));
std::vector<BridgeType> available_bridge_types;
const uint length = GetTunnelBridgeLength(start_tile, end_tile);
// Only use the original first 13 bridge types since
// there might be stuff like modular bridges etc in the other ones.
for (uint i = 0; i < 13; ++i) {
if (CheckBridgeAvailability(i, GetTunnelBridgeLength(start_tile, end_tile)).Succeeded()) {
std::vector<BridgeType> available_bridge_types;
for (BridgeType i = 0; i < MAX_BRIDGES; ++i) {
if (MayTownBuildBridgeType(i) && CheckBridgeAvailability(i, length).Succeeded()) {
available_bridge_types.push_back(i);
}
}
@@ -523,12 +522,11 @@ static TileIndex BuildRiverBridge(PathNode *current, const DiagDirection road_di
assert(!build_bridge || IsValidTile(end_tile));
std::vector<BridgeType> available_bridge_types;
const uint length = GetTunnelBridgeLength(start_tile, end_tile);
// Only use the original first 13 bridge types since
// there might be stuff like modular bridges etc in the other ones.
for (uint i = 0; i < 13; ++i) {
if (CheckBridgeAvailability(i, GetTunnelBridgeLength(start_tile, end_tile)).Succeeded()) {
std::vector<BridgeType> available_bridge_types;
for (BridgeType i = 0; i < MAX_BRIDGES; ++i) {
if (MayTownBuildBridgeType(i) && CheckBridgeAvailability(i, length).Succeeded()) {
available_bridge_types.push_back(i);
}
}