X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=altoslib%2FAltosMap.java;h=6c08f2d73ddcae1d0cc31caa89da8e93528cc424;hb=b8a19e83b7b1b8e2a1fcbdd58e41f9f974ae28ff;hp=8d12a18094007c7cbf30b555c1a52acf49598227;hpb=0f56903774d9e8bb033dfc0af6945e8ddc1d3065;p=fw%2Faltos diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java index 8d12a180..6c08f2d7 100644 --- a/altoslib/AltosMap.java +++ b/altoslib/AltosMap.java @@ -15,7 +15,7 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -package org.altusmetrum.altoslib_7; +package org.altusmetrum.altoslib_9; import java.io.*; import java.lang.*; @@ -113,12 +113,12 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { map_interface.debug(format, arguments); } - public AltosPointInt floor(AltosPointDouble point) { + static public AltosPointInt floor(AltosPointDouble point) { return new AltosPointInt ((int) Math.floor(point.x / AltosMap.px_size) * AltosMap.px_size, (int) Math.floor(point.y / AltosMap.px_size) * AltosMap.px_size); } - public AltosPointInt ceil(AltosPointDouble point) { + static public AltosPointInt ceil(AltosPointDouble point) { return new AltosPointInt ((int) Math.ceil(point.x / AltosMap.px_size) * AltosMap.px_size, (int) Math.ceil(point.y / AltosMap.px_size) * AltosMap.px_size); } @@ -131,6 +131,10 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { return (System.currentTimeMillis() - user_input_time) < auto_scroll_delay; } + public boolean has_centre() { + return centre != null; + } + public boolean far_from_centre(AltosLatLon lat_lon) { if (centre == null || transform == null) @@ -226,23 +230,23 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { if (!gps.locked && gps.nsat < 4) return; - switch (state.state) { + switch (state.state()) { case AltosLib.ao_flight_boost: if (!have_boost) { - add_mark(gps.lat, gps.lon, state.state); + add_mark(gps.lat, gps.lon, state.state()); have_boost = true; } break; case AltosLib.ao_flight_landed: if (!have_landed) { - add_mark(gps.lat, gps.lon, state.state); + add_mark(gps.lat, gps.lon, state.state()); have_landed = true; } break; } if (path != null) { - AltosMapRectangle damage = path.add(gps.lat, gps.lon, state.state); + AltosMapRectangle damage = path.add(gps.lat, gps.lon, state.state()); if (damage != null) repaint(damage, AltosMapPath.stroke_width); @@ -353,6 +357,9 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { if (centre != null) make_tiles(); + if (transform == null) + return; + for (AltosMapTile tile : tiles.values()) tile.paint(transform); @@ -423,8 +430,13 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { } private void drag_stop(int x, int y) { - if (!dragged) + if (!dragged) { + if (transform == null) { + debug("Transform not set in stop\n"); + return; + } map_interface.select_object (transform.screen_lat_lon(new AltosPointInt(x,y))); + } } private void line_start(int x, int y) {