summaryrefslogtreecommitdiff
path: root/rail_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'rail_cmd.c')
-rw-r--r--rail_cmd.c52
1 files changed, 19 insertions, 33 deletions
diff --git a/rail_cmd.c b/rail_cmd.c
index 2bd19479c..106087ea5 100644
--- a/rail_cmd.c
+++ b/rail_cmd.c
@@ -1753,49 +1753,35 @@ void SetSignalsOnBothDir(TileIndex tile, byte track)
static uint GetSlopeZ_Track(const TileInfo* ti)
{
+ uint tileh = ti->tileh;
uint z = ti->z;
- int th = ti->tileh;
- // check if it's a foundation
- if (ti->tileh != 0) {
- if (GetRailTileType(ti->tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
- return z + 8;
- } else {
- uint f = GetRailFoundation(ti->tileh, GetTrackBits(ti->tile));
+ if (tileh == 0) return z;
+ if (GetRailTileType(ti->tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
+ return z + 8;
+ } else {
+ uint f = GetRailFoundation(ti->tileh, GetTrackBits(ti->tile));
- if (f != 0) {
- if (f < 15) {
- // leveled foundation
- return z + 8;
- }
- // inclined foundation
- th = _inclined_tileh[f - 15];
- }
+ if (f != 0) {
+ if (f < 15) return z + 8; // leveled foundation
+ tileh = _inclined_tileh[f - 15]; // inclined foundation
}
- return GetPartialZ(ti->x & 0xF, ti->y & 0xF, th) + z;
+ return z + GetPartialZ(ti->x & 0xF, ti->y & 0xF, tileh);
}
- return z;
}
static uint GetSlopeTileh_Track(const TileInfo *ti)
{
- // check if it's a foundation
- if (ti->tileh != 0) {
- if (GetRailTileType(ti->tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
- return 0;
- } else {
- uint f = GetRailFoundation(ti->tileh, GetTrackBits(ti->tile));
- if (f != 0) {
- if (f < 15) {
- // leveled foundation
- return 0;
- }
- // inclined foundation
- return _inclined_tileh[f - 15];
- }
- }
+ if (ti->tileh == 0) return ti->tileh;
+ if (GetRailTileType(ti->tile) == RAIL_TYPE_DEPOT_WAYPOINT) {
+ return 0;
+ } else {
+ uint f = GetRailFoundation(ti->tileh, GetTrackBits(ti->tile));
+
+ if (f == 0) return ti->tileh;
+ if (f < 15) return 0; // leveled foundation
+ return _inclined_tileh[f - 15]; // inclined foundation
}
- return ti->tileh;
}
static void GetAcceptedCargo_Track(TileIndex tile, AcceptedCargo ac)