mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 22:28:56 +00:00
(svn r10695) -Fix [FS#1079]: building single pieces of road over tramtrack or vice versa on slopes did not work as expected.
This commit is contained in:
parent
fda75ae603
commit
d031da78d8
@ -298,10 +298,11 @@ static CommandCost CheckRoadSlope(Slope tileh, RoadBits* pieces, RoadBits existi
|
||||
RoadBits road_bits;
|
||||
|
||||
if (IsSteepSlope(tileh)) {
|
||||
if (existing == 0) {
|
||||
/* force full pieces. */
|
||||
*pieces |= (RoadBits)((*pieces & 0xC) >> 2);
|
||||
*pieces |= (RoadBits)((*pieces & 0x3) << 2);
|
||||
/* force full pieces. */
|
||||
*pieces |= (RoadBits)((*pieces & 0xC) >> 2);
|
||||
*pieces |= (RoadBits)((*pieces & 0x3) << 2);
|
||||
|
||||
if (existing == 0 || existing == *pieces) {
|
||||
if (*pieces == ROAD_X || *pieces == ROAD_Y) return _price.terraform;
|
||||
}
|
||||
return CMD_ERROR;
|
||||
@ -320,11 +321,12 @@ static CommandCost CheckRoadSlope(Slope tileh, RoadBits* pieces, RoadBits existi
|
||||
return CommandCost(existing != 0 ? 0 : _price.terraform);
|
||||
}
|
||||
|
||||
*pieces |= (RoadBits)((*pieces & 0xC) >> 2);
|
||||
*pieces |= (RoadBits)((*pieces & 0x3) << 2);
|
||||
|
||||
/* partly leveled up tile, only if there's no road on that tile */
|
||||
if (existing == 0 && (tileh == SLOPE_W || tileh == SLOPE_S || tileh == SLOPE_E || tileh == SLOPE_N)) {
|
||||
if ((existing == 0 || existing == *pieces) && (tileh == SLOPE_W || tileh == SLOPE_S || tileh == SLOPE_E || tileh == SLOPE_N)) {
|
||||
/* force full pieces. */
|
||||
*pieces |= (RoadBits)((*pieces & 0xC) >> 2);
|
||||
*pieces |= (RoadBits)((*pieces & 0x3) << 2);
|
||||
if (*pieces == ROAD_X || *pieces == ROAD_Y) return _price.terraform;
|
||||
}
|
||||
return CMD_ERROR;
|
||||
|
Loading…
Reference in New Issue
Block a user