private void FindPortalsVertical(Cluster c1, Cluster c2) { if (c1 == null || c2 == null) return; if (!c1.updated && !c2.updated) return; Tile[,] g1 = c1.GetGrid (); Tile[,] g2 = c2.GetGrid (); int max = Cluster.size - 1; Portal currentPort1 = null; Portal currentPort2 = null; bool isTracking = false; for (int i = 0; i < Cluster.size; i++) { if (g1 [max, i].cost < 255 && g2 [0, i].cost < 255) { if (isTracking) { currentPort1.AddTile (g1 [max, i]); currentPort2.AddTile (g2 [0, i]); } else { isTracking = true; currentPort1 = new Portal (c1); currentPort2 = new Portal (c2); currentPort1.AddTile (g1 [max, i]); currentPort2.AddTile (g2 [0, i]); } } else { if (isTracking) { Portal.Connect (currentPort1, currentPort2, 1); AddPortal (currentPort1); AddPortal (currentPort2); isTracking = false; } } } if (isTracking) { Portal.Connect (currentPort1, currentPort2, 1); AddPortal (currentPort1); AddPortal (currentPort2); isTracking = false; } }