]> git.mxchange.org Git - flightgear.git/blobdiff - src/Scenery/tilemgr.cxx
Move FGControls declaration to globals.hxx
[flightgear.git] / src / Scenery / tilemgr.cxx
index d162a00e42c35211700f796f277bd6c2bc5f251c..912aa2994fa4227a51e3ba2faebb532a32a0b98c 100644 (file)
@@ -41,6 +41,7 @@
 #include <simgear/math/vector.hxx>
 
 #include <Main/globals.hxx>
+#include <Main/viewer.hxx>
 #include <Objects/obj.hxx>
 
 #ifndef FG_OLD_WEATHER
@@ -139,10 +140,14 @@ void FGTileMgr::sched_tile( const SGBucket& b ) {
         FGTileEntry *e = new FGTileEntry( b );
 
         // insert the tile into the cache
-       tile_cache.insert_tile( e );
-
-        // Schedule tile for loading
-        loader.add( e );
+       if ( tile_cache.insert_tile( e ) ) {
+         // Schedule tile for loading
+         loader.add( e );
+       } else {
+         // insert failed (cache full with no available entries to
+         // delete.)  Try again later
+         delete e;
+       }
     }
 }
 
@@ -334,9 +339,8 @@ int FGTileMgr::update( double lon, double lat ) {
 
     if ( scenery.center == Point3D(0.0) ) {
        // initializing
-       cout << "initializing scenery current elevation  ... " << endl;
+       cout << "initializing scenery current elevation ... " << endl;
        sgdVec3 tmp_abs_view_pos;
-       sgVec3 tmp_view_pos;
 
        Point3D geod_pos = Point3D( longitude * SGD_DEGREES_TO_RADIANS,
                                    latitude * SGD_DEGREES_TO_RADIANS,
@@ -347,7 +351,7 @@ int FGTileMgr::update( double lon, double lat ) {
 
        // cout << "abs_view_pos = " << tmp_abs_view_pos << endl;
        prep_ssg_nodes();
-       sgSetVec3( tmp_view_pos, 0.0, 0.0, 0.0 );
+
        double tmp_elev;
        if ( fgCurrentElev(tmp_abs_view_pos, sc, &hit_list,
                           &tmp_elev, &scenery.cur_radius, scenery.cur_normal) )