]> git.mxchange.org Git - simgear.git/commitdiff
Reposition hook for terrasync.
authorJames Turner <zakalawe@mac.com>
Fri, 27 Sep 2013 19:28:43 +0000 (20:28 +0100)
committerJames Turner <zakalawe@mac.com>
Fri, 27 Sep 2013 19:28:43 +0000 (20:28 +0100)
When re-init-ing the sim, tell TerraSync what's going on (we don't want
to actually reset it, since that would disturb in-flight downloads).
Add an explicit method so it can reset its last lon/lat, and hence do
the initial sync at the new location correctly.

simgear/scene/tsync/terrasync.cxx
simgear/scene/tsync/terrasync.hxx

index 677566a9f700edb8c52ce8749cf77756df69f3bf..631ffe46794ce464265b390738c331f795541207 100644 (file)
@@ -1041,3 +1041,7 @@ bool SGTerraSync::schedulePosition(int lat, int lon)
     return Ok;
 }
 
+void SGTerraSync::reposition()
+{
+    last_lat = last_lon = NOWHERE;
+}
index 3e0db27d66bd36c5e5510c6d176868e8466c55d9..35bfecc5e7833ab61c15412e34a4d25fd739e83c 100644 (file)
@@ -49,6 +49,11 @@ public:
     virtual void unbind();
     virtual void update(double);
 
+    /// notify terrasync that the sim was repositioned, as opposed to
+    /// us travelling in a direction. Avoid last_lat / last_lon blocking
+    /// certain tiles when we reposition.
+    void reposition();
+    
     bool isIdle();
     bool schedulePosition(int lat, int lon);