|
|
@ -1041,7 +1041,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (flags & DC_EXEC) {
|
|
|
|
if (flags & DC_EXEC) {
|
|
|
|
if (p2 == 0 && HasWormholeSignals(tile)) { // Toggle signal if already signals present.
|
|
|
|
if (p2 == 0 && HasWormholeSignals(tile)) { // Toggle signal if already signals present.
|
|
|
|
if (IsTunnelBridgeEntrance (tile)) {
|
|
|
|
if (IsTunnelBridgeEntrance(tile)) {
|
|
|
|
ClrBitTunnelBridgeSignal(tile);
|
|
|
|
ClrBitTunnelBridgeSignal(tile);
|
|
|
|
ClrBitTunnelBridgeExit(tile_exit);
|
|
|
|
ClrBitTunnelBridgeExit(tile_exit);
|
|
|
|
SetBitTunnelBridgeExit(tile);
|
|
|
|
SetBitTunnelBridgeExit(tile);
|
|
|
@ -1052,7 +1052,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|
|
|
SetBitTunnelBridgeExit(tile_exit);
|
|
|
|
SetBitTunnelBridgeExit(tile_exit);
|
|
|
|
SetBitTunnelBridgeSignal(tile);
|
|
|
|
SetBitTunnelBridgeSignal(tile);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else{
|
|
|
|
} else {
|
|
|
|
/* Create one direction tunnel/bridge if required. */
|
|
|
|
/* Create one direction tunnel/bridge if required. */
|
|
|
|
if (p2 == 0) {
|
|
|
|
if (p2 == 0) {
|
|
|
|
SetBitTunnelBridgeSignal(tile);
|
|
|
|
SetBitTunnelBridgeSignal(tile);
|
|
|
@ -1072,7 +1072,7 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
|
MarkTileDirtyByTile(tile_exit);
|
|
|
|
MarkTileDirtyByTile(tile_exit);
|
|
|
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, _current_company);
|
|
|
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
|
|
|
YapfNotifyTrackLayoutChange(tile, track);
|
|
|
|
YapfNotifyTrackLayoutChange(tile, track);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return cost;
|
|
|
|
return cost;
|
|
|
@ -1526,6 +1526,8 @@ CommandCost CmdRemoveSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1
|
|
|
|
_m[end].m2 = 0;
|
|
|
|
_m[end].m2 = 0;
|
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
|
MarkTileDirtyByTile(tile);
|
|
|
|
MarkTileDirtyByTile(end);
|
|
|
|
MarkTileDirtyByTile(end);
|
|
|
|
|
|
|
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
|
|
|
|
|
|
|
YapfNotifyTrackLayoutChange(tile, track);
|
|
|
|
return CommandCost(EXPENSES_CONSTRUCTION, cost);
|
|
|
|
return CommandCost(EXPENSES_CONSTRUCTION, cost);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|