Fix bridge/tunnel building not using DC_AUTO
This could result in existing infrastructure being removed at the bridge/tunnel far end
This commit is contained in:
		@@ -408,7 +408,7 @@ static TileIndex BuildTunnel(PathNode *current, TileIndex end_tile = INVALID_TIL
 | 
				
			|||||||
	assert(!build_tunnel || (IsValidTile(end_tile) && GetTileSlope(start_tile) == ComplementSlope(GetTileSlope(end_tile))));
 | 
						assert(!build_tunnel || (IsValidTile(end_tile) && GetTileSlope(start_tile) == ComplementSlope(GetTileSlope(end_tile))));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Backup cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 | 
						Backup cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 | 
				
			||||||
	const auto build_tunnel_cmd = CmdBuildTunnel(start_tile, build_tunnel ? DC_EXEC : DC_NONE, _public_road_type | (TRANSPORT_ROAD << 8), 0);
 | 
						const auto build_tunnel_cmd = CmdBuildTunnel(start_tile, DC_AUTO | (build_tunnel ? DC_EXEC : DC_NONE), _public_road_type | (TRANSPORT_ROAD << 8), 0);
 | 
				
			||||||
	cur_company.Restore();
 | 
						cur_company.Restore();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	assert(!build_tunnel || build_tunnel_cmd.Succeeded());
 | 
						assert(!build_tunnel || build_tunnel_cmd.Succeeded());
 | 
				
			||||||
@@ -475,7 +475,7 @@ static TileIndex BuildBridge(PathNode *current, TileIndex end_tile = INVALID_TIL
 | 
				
			|||||||
	const auto bridge_type = available_bridge_types[build_bridge ? RandomRange(uint32(available_bridge_types.size())) : 0];
 | 
						const auto bridge_type = available_bridge_types[build_bridge ? RandomRange(uint32(available_bridge_types.size())) : 0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Backup cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 | 
						Backup cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 | 
				
			||||||
	const auto build_bridge_cmd = CmdBuildBridge(end_tile, build_bridge ? DC_EXEC : DC_NONE, start_tile, bridge_type | (_public_road_type << 8) | (TRANSPORT_ROAD << 15));
 | 
						const auto build_bridge_cmd = CmdBuildBridge(end_tile, DC_AUTO | (build_bridge ? DC_EXEC : DC_NONE), start_tile, bridge_type | (_public_road_type << 8) | (TRANSPORT_ROAD << 15));
 | 
				
			||||||
	cur_company.Restore();
 | 
						cur_company.Restore();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	assert(!build_bridge || build_bridge_cmd.Succeeded());
 | 
						assert(!build_bridge || build_bridge_cmd.Succeeded());
 | 
				
			||||||
@@ -534,7 +534,7 @@ static TileIndex BuildRiverBridge(PathNode *current, const DiagDirection road_di
 | 
				
			|||||||
	const auto bridge_type = available_bridge_types[build_bridge ? RandomRange(uint32(available_bridge_types.size())) : 0];
 | 
						const auto bridge_type = available_bridge_types[build_bridge ? RandomRange(uint32(available_bridge_types.size())) : 0];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Backup cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 | 
						Backup cur_company(_current_company, OWNER_DEITY, FILE_LINE);
 | 
				
			||||||
	const auto build_bridge_cmd = CmdBuildBridge(end_tile, build_bridge ? DC_EXEC : DC_NONE, start_tile, bridge_type | (_public_road_type << 8) | (TRANSPORT_ROAD << 15));
 | 
						const auto build_bridge_cmd = CmdBuildBridge(end_tile, DC_AUTO | (build_bridge ? DC_EXEC : DC_NONE), start_tile, bridge_type | (_public_road_type << 8) | (TRANSPORT_ROAD << 15));
 | 
				
			||||||
	cur_company.Restore();
 | 
						cur_company.Restore();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	assert(!build_bridge || build_bridge_cmd.Succeeded());
 | 
						assert(!build_bridge || build_bridge_cmd.Succeeded());
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user