Implement bidirectional mode for signals on bridges/tunnels

This commit is contained in:
Jonathan G Rennison
2018-06-17 04:27:03 +01:00
parent d03139b241
commit 814f9f7e0f
15 changed files with 170 additions and 71 deletions

View File

@@ -17,7 +17,7 @@
void MarkBridgeDirty(TileIndex begin, TileIndex end, DiagDirection direction, uint bridge_height);
void MarkBridgeDirty(TileIndex tile);
void MarkBridgeOrTunnelDirty(TileIndex tile);
uint GetTunnelBridgeSignalSimulationSignalCount(uint length);
uint GetTunnelBridgeSignalSimulationSignalCount(TileIndex begin, TileIndex end);
/**
* Calculates the length of a tunnel or a bridge (without end tiles)
@@ -35,17 +35,6 @@ static inline uint GetTunnelBridgeLength(TileIndex begin, TileIndex end)
return abs(x2 + y2 - x1 - y1) - 1;
}
/**
* Get number of signals on bridge or tunnel with signal simulation.
* @param begin The begin of the tunnel or bridge.
* @param end The end of the tunnel or bridge.
* @pre IsTunnelBridgeWithSignalSimulation(begin)
*/
static inline uint GetTunnelBridgeSignalSimulationSignalCount(TileIndex begin, TileIndex end)
{
return GetTunnelBridgeSignalSimulationSignalCount(GetTunnelBridgeLength(begin, end));
}
extern TileIndex _build_tunnel_endtile;
#endif /* TUNNELBRIDGE_H */