summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/road_cmd.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp
index 1ae9a6a97..f0ff25bf2 100644
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -842,7 +842,14 @@ struct DrawRoadTileStruct {
Foundation GetRoadFoundation(Slope tileh, RoadBits bits)
{
if (!IsSteepSlope(tileh)) {
- if ((~_valid_tileh_slopes_road[0][tileh] & bits) == 0) return FOUNDATION_NONE;
+ if ((~_valid_tileh_slopes_road[0][tileh] & bits) == 0) {
+ /* As one can remove a single road piece when in a corner on a foundation as
+ * it is on a sloped piece of landscape, one creates a state that cannot be
+ * created directly, but the state itself is still perfectly drawable.
+ * However, as we do not want this to be build directly, we need to check
+ * for that situation in here. */
+ return (tileh != 0 && HAS_SINGLE_BIT(bits)) ? FOUNDATION_LEVELED : FOUNDATION_NONE;
+ }
if ((~_valid_tileh_slopes_road[1][tileh] & bits) == 0) return FOUNDATION_LEVELED;
}