mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-01-22 15:11:54 +00:00
(svn r4927) Replace 3 big ifs (which regard foundations) by a bit less confusing code
This commit is contained in:
parent
2a3aca6139
commit
1dc8b1a00e
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)
|
||||
{
|
||||
int i;
|
||||
uint i;
|
||||
|
||||
if ((~_valid_tileh_slopes[0][tileh] & bits) == 0)
|
||||
return 0;
|
||||
if ((~_valid_tileh_slopes[0][tileh] & bits) == 0) return 0;
|
||||
if ((~_valid_tileh_slopes[1][tileh] & bits) == 0) return tileh;
|
||||
|
||||
if ((~_valid_tileh_slopes[1][tileh] & bits) == 0)
|
||||
return tileh;
|
||||
|
||||
if ((
|
||||
(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 (bits) {
|
||||
case TRACK_BIT_X: i = 0; break;
|
||||
case TRACK_BIT_Y: i = 1; break;
|
||||
default: 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)
|
||||
{
|
||||
int i;
|
||||
uint i;
|
||||
|
||||
// normal level sloped building
|
||||
if ((~_valid_tileh_slopes_road[1][tileh] & bits) == 0) return tileh;
|
||||
|
||||
// inclined sloped building
|
||||
if ((
|
||||
(i = 0, tileh == SLOPE_W) ||
|
||||
(i += 2, tileh == SLOPE_S) ||
|
||||
(i += 2, tileh == SLOPE_E) ||
|
||||
(i += 2, tileh == SLOPE_N)
|
||||
) && (
|
||||
( bits == ROAD_X) ||
|
||||
(i++, bits == ROAD_Y)
|
||||
)) {
|
||||
return i + 15;
|
||||
switch (bits) {
|
||||
case ROAD_X: i = 0; break;
|
||||
case ROAD_Y: i = 1; break;
|
||||
default: return 0;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
int i;
|
||||
uint i;
|
||||
|
||||
if (HASBIT(BRIDGE_FULL_LEVELED_FOUNDATION, tileh)) return tileh;
|
||||
|
||||
// inclined sloped building
|
||||
if ((
|
||||
(i = 0, tileh == SLOPE_W) ||
|
||||
(i += 2, tileh == SLOPE_S) ||
|
||||
(i += 2, tileh == SLOPE_E) ||
|
||||
(i += 2, tileh == SLOPE_N)
|
||||
) && (
|
||||
axis == AXIS_X ||
|
||||
(i++, axis == AXIS_Y)
|
||||
)) {
|
||||
return i + 15;
|
||||
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 0;
|
||||
if (axis != AXIS_X) ++i;
|
||||
return i + 15;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user