summaryrefslogtreecommitdiff
path: root/road_cmd.c
diff options
context:
space:
mode:
authortron <tron@openttd.org>2006-05-20 18:03:22 +0000
committertron <tron@openttd.org>2006-05-20 18:03:22 +0000
commitb95c1faca95706c7e031f7cb59470726f72de7f1 (patch)
treeb71187cde11be0fb6787e8e38ea4f3df457d9598 /road_cmd.c
parentd508e76ada3854bcae784581fe073c26b5d09edc (diff)
downloadopenttd-b95c1faca95706c7e031f7cb59470726f72de7f1.tar.xz
(svn r4927) Replace 3 big ifs (which regard foundations) by a bit less confusing code
Diffstat (limited to 'road_cmd.c')
-rw-r--r--road_cmd.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/road_cmd.c b/road_cmd.c
index 52c2df2b2..7bb7bebd2 100644
--- a/road_cmd.c
+++ b/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] = {