if (!AIRoad.AreRoadTilesConnected(prev_tile, new_tile)) {
cost += self._cost_no_existing_road * 2;
if (AIRoad.IsRoadTile(new_tile) || AIBridge.IsBridgeTile(new_tile) || AITunnel.IsTunnelTile(new_tile) ||
(AIRoad.IsRoadStationTile(new_tile) || AIRoad.IsRoadDepotTile(new_tile)) && AITile.GetOwner(new_tile) == AICompany.ResolveCompanyID(AICompany.COMPANY_SELF)) {
cost -= self._cost_no_existing_road;
}
}