summaryrefslogtreecommitdiff
path: root/src/newgrf_station.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/newgrf_station.cpp')
-rw-r--r--src/newgrf_station.cpp23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp
index 57ff64bdf..cea387879 100644
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -895,18 +895,29 @@ bool IsStationTileBlocked(TileIndex tile)
}
/**
- * Check if a rail station tile can be electrified.
+ * Check if a rail station tile shall have pylons when electrified.
* @param tile %Tile to test.
- * @return Tile can be electrified.
+ * @return Tile shall have pylons.
* @note This could be cached (during build) in the map array to save on all the dereferencing.
*/
-bool IsStationTileElectrifiable(TileIndex tile)
+bool CanStationTileHavePylons(TileIndex tile)
{
const StationSpec *statspec = GetStationSpec(tile);
+ uint gfx = GetStationGfx(tile);
+ /* Default stations do not draw pylons under roofs (gfx >= 4) */
+ return statspec != NULL ? HasBit(statspec->pylons, gfx) : gfx < 4;
+}
- return statspec == NULL ||
- HasBit(statspec->pylons, GetStationGfx(tile)) ||
- !HasBit(statspec->wires, GetStationGfx(tile));
+/**
+ * Check if a rail station tile shall have wires when electrified.
+ * @param tile %Tile to test.
+ * @return Tile shall have wires.
+ * @note This could be cached (during build) in the map array to save on all the dereferencing.
+ */
+bool CanStationTileHaveWires(TileIndex tile)
+{
+ const StationSpec *statspec = GetStationSpec(tile);
+ return statspec == NULL || !HasBit(statspec->wires, GetStationGfx(tile));
}
/** Wrapper for animation control, see #GetStationCallback. */