Changeset - r3097:a240553880b1
[Not reviewed]
master
0 1 0
tron - 19 years ago 2006-02-28 11:49:12
tron@openttd.org
(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
1 file changed with 9 insertions and 11 deletions:
0 comments (0 inline, 0 general)
road_cmd.c
Show inline comments
 
@@ -764,9 +764,6 @@ uint GetRoadFoundation(uint tileh, uint 
 
		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 TileInf
 
	// 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 TileInf
 
				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 Til
 
	// 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 Til
 
				break;
 
			}
 

	
 
			// if these are on a slope then there's a level foundation
 
			case 1: // level crossing
 
			case 2: // depot
 
				return 0;
 

	
0 comments (0 inline, 0 general)