]> git.mxchange.org Git - flightgear.git/commitdiff
don't abort() only because one model wasn't found. Just print an error
authormfranz <mfranz>
Mon, 20 Mar 2006 16:00:26 +0000 (16:00 +0000)
committermfranz <mfranz>
Mon, 20 Mar 2006 16:00:26 +0000 (16:00 +0000)
message and continue.

src/Model/modelmgr.cxx

index 470314189de06db40398b69f06ec111cb805e9b9..3e2b08638fb5d8c5f723ab1d4c337a60df336e95 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <simgear/scene/model/placement.hxx>
 #include <simgear/scene/model/model.hxx>
+#include <simgear/structure/exception.hxx>
 
 #include <Main/fg_props.hxx>
 #include <Scenery/scenery.hxx>
@@ -45,15 +46,20 @@ FGModelMgr::init ()
   vector<SGPropertyNode_ptr> model_nodes =
     fgGetNode("/models", true)->getChildren("model");
 
-  for (unsigned int i = 0; i < model_nodes.size(); i++)
-    add_model(model_nodes[i]);
+  for (unsigned int i = 0; i < model_nodes.size(); i++) {
+    try {
+      add_model(model_nodes[i]);
+    } catch (const sg_throwable& t) {
+      SG_LOG(SG_GENERAL, SG_ALERT, t.getFormattedMessage() << t.getOrigin());
+    }
+  }
 }
 
 void
 FGModelMgr::add_model (SGPropertyNode * node)
 {
   SG_LOG(SG_GENERAL, SG_INFO,
-          "Adding model " << node->getStringValue("name", "[unnamed]"));
+         "Adding model " << node->getStringValue("name", "[unnamed]"));
   Instance * instance = new Instance;
   SGModelPlacement *model = new SGModelPlacement;
   instance->model = model;