changeset 11108:bbb79ca77fce draft

(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..
author rubidium <rubidium@openttd.org>
date Wed, 11 Feb 2009 20:41:17 +0000
parents 60439e4cdc0a
children d202ea73cf73
files src/road.cpp src/road_cmd.cpp src/town_cmd.cpp
diffstat 3 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- a/src/road_cmd.cpp
+++ b/src/road_cmd.cpp
@@ -1337,7 +1337,7 @@
 			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);
--- a/src/town_cmd.cpp
+++ b/src/town_cmd.cpp
@@ -776,7 +776,7 @@
 				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 */