Use separate bits for signals on bridge/tunnel entrance/exit red/green states
This commit is contained in:
@@ -199,29 +199,53 @@ static inline bool IsTunnelBridgeSignalSimulationExit(TileIndex t)
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the signal state for a tunnel/bridge entrance or exit with signal simulation
|
||||
* Get the signal state for a tunnel/bridge entrance with signal simulation
|
||||
* @param t the tunnel/bridge entrance or exit tile with signal simulation
|
||||
* @pre IsTunnelBridgeWithSignalSimulation(t)
|
||||
* @return signal state
|
||||
*/
|
||||
static inline SignalState GetTunnelBridgeSignalState(TileIndex t)
|
||||
static inline SignalState GetTunnelBridgeEntranceSignalState(TileIndex t)
|
||||
{
|
||||
assert(IsTunnelBridgeWithSignalSimulation(t));
|
||||
assert(IsTunnelBridgeSignalSimulationEntrance(t));
|
||||
return HasBit(_me[t].m6, 0) ? SIGNAL_STATE_GREEN : SIGNAL_STATE_RED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the signal state for a tunnel/bridge exit with signal simulation
|
||||
* @param t the tunnel/bridge entrance or exit tile with signal simulation
|
||||
* @pre IsTunnelBridgeWithSignalSimulation(t)
|
||||
* @return signal state
|
||||
*/
|
||||
static inline SignalState GetTunnelBridgeExitSignalState(TileIndex t)
|
||||
{
|
||||
assert(IsTunnelBridgeSignalSimulationExit(t));
|
||||
return HasBit(_me[t].m6, 7) ? SIGNAL_STATE_GREEN : SIGNAL_STATE_RED;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the signal state for a tunnel/bridge entrance or exit with signal simulation
|
||||
* @param t the tunnel/bridge entrance or exit tile with signal simulation
|
||||
* @pre IsTunnelBridgeWithSignalSimulation(t)
|
||||
* @param state signal state
|
||||
*/
|
||||
static inline void SetTunnelBridgeSignalState(TileIndex t, SignalState state)
|
||||
static inline void SetTunnelBridgeEntranceSignalState(TileIndex t, SignalState state)
|
||||
{
|
||||
assert(IsTunnelBridgeWithSignalSimulation(t));
|
||||
assert(IsTunnelBridgeSignalSimulationEntrance(t));
|
||||
SB(_me[t].m6, 0, 1, (state == SIGNAL_STATE_GREEN) ? 1 : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the signal state for a tunnel/bridge entrance or exit with signal simulation
|
||||
* @param t the tunnel/bridge entrance or exit tile with signal simulation
|
||||
* @pre IsTunnelBridgeWithSignalSimulation(t)
|
||||
* @param state signal state
|
||||
*/
|
||||
static inline void SetTunnelBridgeExitSignalState(TileIndex t, SignalState state)
|
||||
{
|
||||
assert(IsTunnelBridgeSignalSimulationExit(t));
|
||||
SB(_me[t].m6, 7, 1, (state == SIGNAL_STATE_GREEN) ? 1 : 0);
|
||||
}
|
||||
|
||||
static inline bool IsTunnelBridgeSemaphore(TileIndex t)
|
||||
{
|
||||
assert(IsTunnelBridgeWithSignalSimulation(t));
|
||||
|
||||
Reference in New Issue
Block a user