]> git.mxchange.org Git - simgear.git/commitdiff
Silently ignore texture files that are not present.
authorehofman <ehofman>
Sun, 7 Mar 2004 18:47:37 +0000 (18:47 +0000)
committerehofman <ehofman>
Sun, 7 Mar 2004 18:47:37 +0000 (18:47 +0000)
simgear/scene/material/mat.cxx

index 5433a0f291f1a45ff2ec9852782213c583eda8ab..565b1f429c6fafb95d3efae224e9dd731b86a099 100644 (file)
@@ -93,19 +93,23 @@ SGMaterial::read_properties( const string &fg_root, const SGPropertyNode * props
   for (int i = 0; i < textures.size(); i++)
   {
     string tname = textures[i]->getStringValue();
-    if (tname == "")
+    if (tname == "") {
         tname = "unknown.rgb";
+    }
 
     SGPath tpath( fg_root );
     tpath.append("Textures.high");
     tpath.append(tname);
-    if (!ulFileExists(tpath.c_str())) {
+    if ( !ulFileExists(tpath.c_str()) ) {
       tpath = SGPath( fg_root );
       tpath.append("Textures");
       tpath.append(tname);
     }
-    _internal_state st( NULL, tpath.str(), false );
-    _status.push_back( st );
+
+    if ( ulFileExists(tpath.c_str()) ) {
+      _internal_state st( NULL, tpath.str(), false );
+      _status.push_back( st );
+    }
   }
 
   if (textures.size() == 0) {
@@ -208,11 +212,12 @@ SGMaterial::get_state (int n) const
         return NULL;
     }
 
-    if ( _current_ptr >= _status.size())
+    ssgSimpleState *st = (n >= 0) ? _status[n].state
+                                  : _status[_current_ptr].state;
+    ((SGMaterial *)this)->_current_ptr += 1;
+    if (_current_ptr >= _status.size())
         ((SGMaterial *)this)->_current_ptr = 0;
 
-    ssgSimpleState *st = (n >= 0) ? _status[n].state : _status[_current_ptr].state;
-    ((SGMaterial *)this)->_current_ptr += 1;
     return st;
 }