1
0
Fork 0

(svn r21778) -Add: After building a road or tram tunnel, connect it to any existing road or tram.

release/1.1
terkhen 2011-01-14 12:01:07 +00:00
parent 87dade4698
commit eb2b510e01
1 changed files with 19 additions and 2 deletions

View File

@ -28,6 +28,7 @@
#include "tilehighlight_func.h" #include "tilehighlight_func.h"
#include "company_base.h" #include "company_base.h"
#include "hotkeys.h" #include "hotkeys.h"
#include "road_gui.h"
#include "table/strings.h" #include "table/strings.h"
@ -79,11 +80,27 @@ static void PlaceRoad_Bridge(TileIndex tile, Window *w)
} }
} }
void CcBuildRoadTunnel(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2) /**
* Callback executed after a build road tunnel command has been called.
*
* @param result Whether the build succeeded.
* @param start_tile Starting tile of the tunnel.
* @param p1 bit 0-3 railtype or roadtypes
* bit 8-9 transport type
* @param p2 unused
*/
void CcBuildRoadTunnel(const CommandCost &result, TileIndex start_tile, uint32 p1, uint32 p2)
{ {
if (result.Succeeded()) { if (result.Succeeded()) {
SndPlayTileFx(SND_20_SPLAT_2, tile); SndPlayTileFx(SND_20_SPLAT_2, start_tile);
if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace(); if (!_settings_client.gui.persistent_buildingtools) ResetObjectToPlace();
DiagDirection start_direction = ReverseDiagDir(GetTunnelBridgeDirection(start_tile));
ConnectRoadToStructure(start_tile, start_direction);
TileIndex end_tile = GetOtherTunnelBridgeEnd(start_tile);
DiagDirection end_direction = ReverseDiagDir(GetTunnelBridgeDirection(end_tile));
ConnectRoadToStructure(end_tile, end_direction);
} else { } else {
SetRedErrorSquare(_build_tunnel_endtile); SetRedErrorSquare(_build_tunnel_endtile);
} }