Mercurial > hg > openttd
changeset 3097:da8c4f235fe9 draft
(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
author | tron <tron@openttd.org> |
---|---|
date | Tue, 28 Feb 2006 11:49:12 +0000 |
parents | 2a738dcf3af0 |
children | f746e2c344d7 |
files | road_cmd.c |
diffstat | 1 files changed, 9 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/road_cmd.c +++ b/road_cmd.c @@ -764,9 +764,6 @@ return i + 15; } - // rail crossing - if ((bits & 0x10) && _valid_tileh_slopes_road[2][tileh]) return tileh; - return 0; } @@ -848,8 +845,7 @@ 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 @@ // 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 @@ 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 @@ // 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 @@ break; } + // if these are on a slope then there's a level foundation + case 1: // level crossing case 2: // depot return 0;