Merge branch 'signal_tunnels_bridges-sx' into jgrpp
Conflicts: src/tunnelbridge.h (Fixup zoom level changes).
This commit is contained in:
@@ -1091,10 +1091,11 @@ CommandCost CmdBuildSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MarkTileDirtyByTile(tile);
|
MarkBridgeOrTunnelDirty(tile);
|
||||||
MarkTileDirtyByTile(tile_exit);
|
|
||||||
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
||||||
|
AddSideToSignalBuffer(tile_exit, INVALID_DIAGDIR, GetTileOwner(tile));
|
||||||
YapfNotifyTrackLayoutChange(tile, track);
|
YapfNotifyTrackLayoutChange(tile, track);
|
||||||
|
YapfNotifyTrackLayoutChange(tile_exit, track);
|
||||||
}
|
}
|
||||||
return cost;
|
return cost;
|
||||||
}
|
}
|
||||||
@@ -1545,10 +1546,11 @@ CommandCost CmdRemoveSingleSignal(TileIndex tile, DoCommandFlag flags, uint32 p1
|
|||||||
ClrBitTunnelBridgeSignal(end);
|
ClrBitTunnelBridgeSignal(end);
|
||||||
_m[tile].m2 = 0;
|
_m[tile].m2 = 0;
|
||||||
_m[end].m2 = 0;
|
_m[end].m2 = 0;
|
||||||
MarkTileDirtyByTile(tile);
|
MarkBridgeOrTunnelDirty(tile);
|
||||||
MarkTileDirtyByTile(end);
|
|
||||||
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
AddSideToSignalBuffer(tile, INVALID_DIAGDIR, GetTileOwner(tile));
|
||||||
|
AddSideToSignalBuffer(end, INVALID_DIAGDIR, GetTileOwner(tile));
|
||||||
YapfNotifyTrackLayoutChange(tile, track);
|
YapfNotifyTrackLayoutChange(tile, track);
|
||||||
|
YapfNotifyTrackLayoutChange(end, track);
|
||||||
return CommandCost(EXPENSES_CONSTRUCTION, cost);
|
return CommandCost(EXPENSES_CONSTRUCTION, cost);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
void MarkBridgeDirty(TileIndex begin, TileIndex end, DiagDirection direction, uint bridge_height, const ZoomLevel mark_dirty_if_zoomlevel_is_below = ZOOM_LVL_END);
|
void MarkBridgeDirty(TileIndex begin, TileIndex end, DiagDirection direction, uint bridge_height, const ZoomLevel mark_dirty_if_zoomlevel_is_below = ZOOM_LVL_END);
|
||||||
void MarkBridgeDirty(TileIndex tile, const ZoomLevel mark_dirty_if_zoomlevel_is_below = ZOOM_LVL_END);
|
void MarkBridgeDirty(TileIndex tile, const ZoomLevel mark_dirty_if_zoomlevel_is_below = ZOOM_LVL_END);
|
||||||
|
void MarkBridgeOrTunnelDirty(TileIndex tile, const ZoomLevel mark_dirty_if_zoomlevel_is_below = ZOOM_LVL_END);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculates the length of a tunnel or a bridge (without end tiles)
|
* Calculates the length of a tunnel or a bridge (without end tiles)
|
||||||
|
@@ -80,6 +80,20 @@ void MarkBridgeDirty(TileIndex tile, const ZoomLevel mark_dirty_if_zoomlevel_is_
|
|||||||
MarkBridgeDirty(tile, GetOtherTunnelBridgeEnd(tile), GetTunnelBridgeDirection(tile), GetBridgeHeight(tile), mark_dirty_if_zoomlevel_is_below);
|
MarkBridgeDirty(tile, GetOtherTunnelBridgeEnd(tile), GetTunnelBridgeDirection(tile), GetBridgeHeight(tile), mark_dirty_if_zoomlevel_is_below);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mark bridge or tunnel tiles dirty.
|
||||||
|
* @param tile Bridge head or tunnel entrance.
|
||||||
|
*/
|
||||||
|
void MarkBridgeOrTunnelDirty(TileIndex tile, const ZoomLevel mark_dirty_if_zoomlevel_is_below)
|
||||||
|
{
|
||||||
|
if (IsBridge(tile)) {
|
||||||
|
MarkBridgeDirty(tile, mark_dirty_if_zoomlevel_is_below);
|
||||||
|
} else {
|
||||||
|
MarkTileDirtyByTile(tile, mark_dirty_if_zoomlevel_is_below);
|
||||||
|
MarkTileDirtyByTile(GetOtherTunnelBridgeEnd(tile), mark_dirty_if_zoomlevel_is_below);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Reset the data been eventually changed by the grf loaded. */
|
/** Reset the data been eventually changed by the grf loaded. */
|
||||||
void ResetBridges()
|
void ResetBridges()
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user