summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-02-28 11:49:12 +0000
committertron <tron@openttd.org>2006-02-28 11:49:12 +0000
commit0f898e168d0664e68d93710364d56c3ba4725a11 (patch)
tree574e845c05d02b8f2e2d01a206fef718445bc396
parent6863d21382c900d0db6d96e5b4b1ba6648d476d2 (diff)
downloadopenttd-0f898e168d0664e68d93710364d56c3ba4725a11.tar.xz
(svn r3686) Dispel some strange magic regarding level crossings and foundations:
if a level crossing is on a sloped tile, it has to be on a level foundation
-rw-r--r--road_cmd.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/road_cmd.c b/road_cmd.c
index dbd7e812b..14459506c 100644
--- a/road_cmd.c
+++ b/road_cmd.c
@@ -764,9 +764,6 @@ uint GetRoadFoundation(uint tileh, uint bits)
return i + 15;
}
- // rail crossing
- if ((bits & 0x10) && _valid_tileh_slopes_road[2][tileh]) return tileh;
-
return 0;
}
@@ -848,8 +845,7 @@ static void DrawTile_Road(TileInfo *ti)
break;
case 1: { // level crossing
- int f = GetRoadFoundation(ti->tileh, ti->map5 & 0xF);
- if (f) DrawFoundation(ti, f);
+ if (ti->tileh != 0) DrawFoundation(ti, ti->tileh);
image = GetRailTypeInfo(GB(_m[ti->tile].m4, 0, 4))->base_sprites.crossing;
@@ -931,9 +927,8 @@ static uint GetSlopeZ_Road(const TileInfo* ti)
// check if it's a foundation
if (ti->tileh != 0) {
switch (GB(ti->map5, 4, 4)) {
- case 0: // normal road
- case 1: { // level crossing
- uint f = GetRoadFoundation(ti->tileh, ti->map5 & 0x3F);
+ case 0: { // normal road
+ uint f = GetRoadFoundation(ti->tileh, GB(ti->map5, 0, 4));
if (f != 0) {
if (f < 15) {
// leveled foundation
@@ -945,6 +940,8 @@ static uint GetSlopeZ_Road(const TileInfo* ti)
break;
}
+ // if these are on a slope then there's a level foundation
+ case 1: // level crossing
case 2: // depot
return z + 8;
@@ -960,9 +957,8 @@ static uint GetSlopeTileh_Road(const TileInfo *ti)
// check if it's a foundation
if (ti->tileh != 0) {
switch (GB(ti->map5, 4, 4)) {
- case 0: // normal road
- case 1: { // level crossing
- uint f = GetRoadFoundation(ti->tileh, ti->map5 & 0x3F);
+ case 0: { // normal road
+ uint f = GetRoadFoundation(ti->tileh, GB(ti->map5, 0, 4));
if (f != 0) {
if (f < 15) {
// leveled foundation
@@ -974,6 +970,8 @@ static uint GetSlopeTileh_Road(const TileInfo *ti)
break;
}
+ // if these are on a slope then there's a level foundation
+ case 1: // level crossing
case 2: // depot
return 0;