AltosSiteMap: limit nr of tiles to 200x200
authorAnthony Towns <aj@erisian.com.au>
Sun, 21 Nov 2010 05:13:35 +0000 (15:13 +1000)
committerAnthony Towns <aj@erisian.com.au>
Sun, 21 Nov 2010 05:13:35 +0000 (15:13 +1000)
ao-tools/altosui/AltosSiteMap.java

index 0375128e1bfec7b014dcca63fea1b0f0395ede93..b2d79043f45aff10c23dc7a53551f03ad2e7442d 100644 (file)
@@ -40,6 +40,8 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
 
        static final int px_size = 512;
 
 
        static final int px_size = 512;
 
+       static final int MAX_TILE_DELTA = 100;
+
        private static Point2D.Double translatePoint(Point2D.Double p,
                        Point2D.Double d)
        {
        private static Point2D.Double translatePoint(Point2D.Double p,
                        Point2D.Double d)
        {
@@ -282,15 +284,22 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {
        }
 
        private void addTileAt(AltosSiteMapTile tile, Point offset) {
        }
 
        private void addTileAt(AltosSiteMapTile tile, Point offset) {
+               if (Math.abs(offset.x) >= MAX_TILE_DELTA ||
+                               Math.abs(offset.y) >= MAX_TILE_DELTA)
+               {
+                       System.out.printf("Rocket too far away from pad (tile %d,%d)\n",
+                                         offset.x, offset.y);
+                       return;
+               }
+
                GridBagConstraints c = new GridBagConstraints();
                c.anchor = GridBagConstraints.CENTER;
                c.fill = GridBagConstraints.BOTH;
                GridBagConstraints c = new GridBagConstraints();
                c.anchor = GridBagConstraints.CENTER;
                c.fill = GridBagConstraints.BOTH;
-
                // put some space between the map tiles, debugging only
                // c.insets = new Insets(5, 5, 5, 5);
                // put some space between the map tiles, debugging only
                // c.insets = new Insets(5, 5, 5, 5);
-               //
-               c.gridx = offset.x + 100;
-               c.gridy = offset.y + 100;
+
+               c.gridx = offset.x + MAX_TILE_DELTA;
+               c.gridy = offset.y + MAX_TILE_DELTA;
                layout.setConstraints(tile, c);
                comp.add(tile);
        }
                layout.setConstraints(tile, c);
                comp.add(tile);
        }