(svn r27308) -Fix [FS#6283]: Prevent breaking of tram-reversal points by adding more road pieces. (adf88)
This commit is contained in:
@@ -563,6 +563,15 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
|||||||
}
|
}
|
||||||
return_cmd_error(STR_ERROR_ALREADY_BUILT);
|
return_cmd_error(STR_ERROR_ALREADY_BUILT);
|
||||||
}
|
}
|
||||||
|
/* Disallow breaking end-of-line of someone else
|
||||||
|
* so trams can still reverse on this tile. */
|
||||||
|
if (rt == ROADTYPE_TRAM && HasExactlyOneBit(existing)) {
|
||||||
|
Owner owner = GetRoadOwner(tile, rt);
|
||||||
|
if (Company::IsValidID(owner)) {
|
||||||
|
CommandCost ret = CheckOwnership(owner);
|
||||||
|
if (ret.Failed()) return ret;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -963,7 +963,11 @@ static CommandCost CheckFlatLandRoadStop(TileArea tile_area, DoCommandFlag flags
|
|||||||
/* There is a tram, check if we can build road+tram stop over it. */
|
/* There is a tram, check if we can build road+tram stop over it. */
|
||||||
if (HasBit(cur_rts, ROADTYPE_TRAM)) {
|
if (HasBit(cur_rts, ROADTYPE_TRAM)) {
|
||||||
Owner tram_owner = GetRoadOwner(cur_tile, ROADTYPE_TRAM);
|
Owner tram_owner = GetRoadOwner(cur_tile, ROADTYPE_TRAM);
|
||||||
if (!_settings_game.construction.road_stop_on_competitor_road && tram_owner != OWNER_NONE) {
|
if (Company::IsValidID(tram_owner) &&
|
||||||
|
(!_settings_game.construction.road_stop_on_competitor_road ||
|
||||||
|
/* Disallow breaking end-of-line of someone else
|
||||||
|
* so trams can still reverse on this tile. */
|
||||||
|
HasExactlyOneBit(GetRoadBits(cur_tile, ROADTYPE_TRAM)))) {
|
||||||
CommandCost ret = CheckOwnership(tram_owner);
|
CommandCost ret = CheckOwnership(tram_owner);
|
||||||
if (ret.Failed()) return ret;
|
if (ret.Failed()) return ret;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user