]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/sg_binobj.cxx
scenery: Use correct property root in xml loading.
[simgear.git] / simgear / io / sg_binobj.cxx
index e01a52865f0f71188ab13dfde738e6eb7c858c0b..f511164064fc5f0d3bafb39ce71e548baa50da3a 100644 (file)
@@ -461,7 +461,7 @@ bool SGBinObject::read_bin( const string& file ) {
      //cout << "Total objects to read = " << nobjects << endl;
 
     if ( sgReadError() ) {
-        cout << "We detected an error while reading the file header" << endl;
+        cout << "Error while reading header of file " << file << "(.gz)" << endl;
         return false;
     }
     
@@ -612,7 +612,7 @@ bool SGBinObject::read_bin( const string& file ) {
         }
         
         if ( sgReadError() ) {
-            cout << "We detected an error while reading object:" << i << endl;
+            cout << "Error while reading object:" << i << " in file " << file << "(.gz)" << endl;
             return false;
         }
     }
@@ -621,7 +621,7 @@ bool SGBinObject::read_bin( const string& file ) {
     gzclose(fp);
 
     if ( sgReadError() ) {
-        cout << "We detected an error while reading the file." << endl;
+        cout << "Error while reading file " << file << "(.gz)" << endl;
         return false;
     }
 
@@ -752,7 +752,9 @@ bool SGBinObject::write_bin_file(const SGPath& file)
     cout << "tex coords = " << texcoords.size() << endl;
 
     version = 10;
-    if (wgs84_nodes.size() < 0xffff) {
+    if ((wgs84_nodes.size() < 0xffff) &&
+        (normals.size() < 0xffff) &&
+        (texcoords.size() < 0xffff)) {
         version = 7; // use smaller indices if possible
     }
 
@@ -827,7 +829,7 @@ bool SGBinObject::write_bin_file(const SGPath& file)
     gzclose(fp);
 
     if ( sgWriteError() ) {
-        cout << "We detected an error while writing the file." << endl;
+        cout << "Error while writing file " << file.str() << endl;
         return false;
     }
 
@@ -1004,9 +1006,13 @@ bool SGBinObject::write_ascii( const string& base, const string& name,
     fclose(fp);
 
     string command = "gzip --force --best " + file.str();
-    system(command.c_str());
+    int err = system(command.c_str());
+    if (err)
+    {
+        cout << "ERROR: gzip " << file.str() << " failed!" << endl;
+    }
 
-    return true;
+    return (err == 0);
 }
 
 void SGBinObject::read_properties(gzFile fp, int nproperties)