From e8dbf62761c6ef456a21db04baac216703be7ce1 Mon Sep 17 00:00:00 2001 From: rubidium Date: Wed, 11 Feb 2009 20:41:17 +0000 Subject: (svn r15454) -Fix [FS#2614]: towns did not know about build_on_slopes in some cases, or made decisions on the 'original' slope instead the slope after applying the foundation.. --- src/road.cpp | 5 +++-- src/road_cmd.cpp | 2 +- src/town_cmd.cpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/road.cpp b/src/road.cpp index d8c3d0e43..01f777d23 100644 --- a/src/road.cpp +++ b/src/road.cpp @@ -13,13 +13,14 @@ #include "engine_base.h" #include "date_func.h" #include "settings_type.h" +#include "landscape.h" bool IsPossibleCrossing(const TileIndex tile, Axis ax) { return (IsTileType(tile, MP_RAILWAY) && !HasSignals(tile) && - GetTrackBits(tile) == (ax == AXIS_X ? TRACK_BIT_Y : TRACK_BIT_X) && - GetTileSlope(tile, NULL) == SLOPE_FLAT); + GetTrackBits(tile) == (ax == AXIS_X ? TRACK_BIT_Y : TRACK_BIT_X) && + GetFoundationSlope(tile, NULL) == SLOPE_FLAT); } RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb) diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 1ff13d328..1935c460a 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1337,7 +1337,7 @@ static void TileLoop_Road(TileIndex tile) if (t->road_build_months != 0 && (DistanceManhattan(t->xy, tile) < 8 || grp != HZB_TOWN_EDGE) && IsNormalRoad(tile) && CountBits(GetAllRoadBits(tile)) > 1 ) { - if (GetTileSlope(tile, NULL) == SLOPE_FLAT && EnsureNoVehicleOnGround(tile) && Chance16(1, 40)) { + if (GetFoundationSlope(tile, NULL) == SLOPE_FLAT && EnsureNoVehicleOnGround(tile) && Chance16(1, 40)) { StartRoadWorks(tile); SndPlayTileFx(SND_21_JACKHAMMER, tile); diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index d4e23ee99..c3d748331 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -776,7 +776,7 @@ static bool IsRoadAllowedHere(Town *t, TileIndex tile, DiagDirection dir) return false; } - cur_slope = GetTileSlope(tile, NULL); + cur_slope = _settings_game.construction.build_on_slopes ? GetFoundationSlope(tile, NULL) : GetTileSlope(tile, NULL); if (cur_slope == SLOPE_FLAT) { no_slope: /* Tile has no slope */ -- cgit v1.2.3-70-g09d2