(svn r4927) Replace 3 big ifs (which regard foundations) by a bit less confusing code
This commit is contained in:
		
							
								
								
									
										33
									
								
								rail_cmd.c
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								rail_cmd.c
									
									
									
									
									
								
							@@ -153,27 +153,24 @@ const TrackBits _valid_tileh_slopes[2][15] = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
uint GetRailFoundation(Slope tileh, TrackBits bits)
 | 
					uint GetRailFoundation(Slope tileh, TrackBits bits)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						uint i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((~_valid_tileh_slopes[0][tileh] & bits) == 0)
 | 
						if ((~_valid_tileh_slopes[0][tileh] & bits) == 0) return 0;
 | 
				
			||||||
		return 0;
 | 
						if ((~_valid_tileh_slopes[1][tileh] & bits) == 0) return tileh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((~_valid_tileh_slopes[1][tileh] & bits) == 0)
 | 
						switch (bits) {
 | 
				
			||||||
		return tileh;
 | 
							case TRACK_BIT_X: i = 0; break;
 | 
				
			||||||
 | 
							case TRACK_BIT_Y: i = 1; break;
 | 
				
			||||||
	if ((
 | 
							default:          return 0;
 | 
				
			||||||
				(i  = 0, tileh == SLOPE_W) ||
 | 
					 | 
				
			||||||
				(i += 2, tileh == SLOPE_S) ||
 | 
					 | 
				
			||||||
				(i += 2, tileh == SLOPE_E) ||
 | 
					 | 
				
			||||||
				(i += 2, tileh == SLOPE_N)
 | 
					 | 
				
			||||||
			) && (
 | 
					 | 
				
			||||||
				bits == TRACK_BIT_X ||
 | 
					 | 
				
			||||||
				(i++, bits == TRACK_BIT_Y)
 | 
					 | 
				
			||||||
			)) {
 | 
					 | 
				
			||||||
		return i + 15;
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		return 0;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						switch (tileh) {
 | 
				
			||||||
 | 
							case SLOPE_W: i += 0; break;
 | 
				
			||||||
 | 
							case SLOPE_S: i += 2; break;
 | 
				
			||||||
 | 
							case SLOPE_E: i += 4; break;
 | 
				
			||||||
 | 
							case SLOPE_N: i += 6; break;
 | 
				
			||||||
 | 
							default:      return 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return i + 15;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								road_cmd.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								road_cmd.c
									
									
									
									
									
								
							@@ -659,24 +659,25 @@ typedef struct DrawRoadSeqStruct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
uint GetRoadFoundation(Slope tileh, RoadBits bits)
 | 
					uint GetRoadFoundation(Slope tileh, RoadBits bits)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						uint i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// normal level sloped building
 | 
						// normal level sloped building
 | 
				
			||||||
	if ((~_valid_tileh_slopes_road[1][tileh] & bits) == 0) return tileh;
 | 
						if ((~_valid_tileh_slopes_road[1][tileh] & bits) == 0) return tileh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// inclined sloped building
 | 
						// inclined sloped building
 | 
				
			||||||
	if ((
 | 
						switch (bits) {
 | 
				
			||||||
				(i  = 0, tileh == SLOPE_W) ||
 | 
							case ROAD_X: i = 0; break;
 | 
				
			||||||
				(i += 2, tileh == SLOPE_S) ||
 | 
							case ROAD_Y: i = 1; break;
 | 
				
			||||||
				(i += 2, tileh == SLOPE_E) ||
 | 
							default:     return 0;
 | 
				
			||||||
				(i += 2, tileh == SLOPE_N)
 | 
					 | 
				
			||||||
			) && (
 | 
					 | 
				
			||||||
				(     bits == ROAD_X) ||
 | 
					 | 
				
			||||||
				(i++, bits == ROAD_Y)
 | 
					 | 
				
			||||||
			)) {
 | 
					 | 
				
			||||||
		return i + 15;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						switch (tileh) {
 | 
				
			||||||
	return 0;
 | 
							case SLOPE_W: i += 0; break;
 | 
				
			||||||
 | 
							case SLOPE_S: i += 2; break;
 | 
				
			||||||
 | 
							case SLOPE_E: i += 4; break;
 | 
				
			||||||
 | 
							case SLOPE_N: i += 6; break;
 | 
				
			||||||
 | 
							default:      return 0;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return i + 15;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const byte _road_sloped_sprites[14] = {
 | 
					const byte _road_sloped_sprites[14] = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -858,23 +858,20 @@ static void DrawBridgePillars(PalSpriteID image, const TileInfo *ti, int x, int
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
uint GetBridgeFoundation(Slope tileh, Axis axis)
 | 
					uint GetBridgeFoundation(Slope tileh, Axis axis)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						uint i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (HASBIT(BRIDGE_FULL_LEVELED_FOUNDATION, tileh)) return tileh;
 | 
						if (HASBIT(BRIDGE_FULL_LEVELED_FOUNDATION, tileh)) return tileh;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// inclined sloped building
 | 
						// inclined sloped building
 | 
				
			||||||
	if ((
 | 
						switch (tileh) {
 | 
				
			||||||
				(i  = 0, tileh == SLOPE_W) ||
 | 
							case SLOPE_W: i = 0; break;
 | 
				
			||||||
				(i += 2, tileh == SLOPE_S) ||
 | 
							case SLOPE_S: i = 2; break;
 | 
				
			||||||
				(i += 2, tileh == SLOPE_E) ||
 | 
							case SLOPE_E: i = 4; break;
 | 
				
			||||||
				(i += 2, tileh == SLOPE_N)
 | 
							case SLOPE_N: i = 6; break;
 | 
				
			||||||
			) && (
 | 
							default:      return 0;
 | 
				
			||||||
				      axis == AXIS_X ||
 | 
					 | 
				
			||||||
				(i++, axis == AXIS_Y)
 | 
					 | 
				
			||||||
			)) {
 | 
					 | 
				
			||||||
		return i + 15;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if (axis != AXIS_X) ++i;
 | 
				
			||||||
	return 0;
 | 
						return i + 15;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user