diff options
author | tron <tron@openttd.org> | 2006-02-28 11:49:12 +0000 |
---|---|---|
committer | tron <tron@openttd.org> | 2006-02-28 11:49:12 +0000 |
commit | 0f898e168d0664e68d93710364d56c3ba4725a11 (patch) | |
tree | 574e845c05d02b8f2e2d01a206fef718445bc396 | |
parent | 6863d21382c900d0db6d96e5b4b1ba6648d476d2 (diff) | |
download | openttd-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.c | 20 |
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; |