From 7b01068d9c9b1554c9d58fd5487e0ed7ec0517c9 Mon Sep 17 00:00:00 2001 From: curt Date: Mon, 23 Sep 2002 14:23:17 +0000 Subject: [PATCH] Bernie Bright: fgLoad3DModel() throws an exception if it fails to load the requested model. This causes FGTileMgr::update(...) to exit. So I've added a try/catch block to catch the exception and display an error message instead. --- src/Scenery/tilemgr.cxx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 8c3e6f548..7cc4224b0 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -39,6 +39,7 @@ #include #include #include +#include #include
#include
@@ -330,12 +331,20 @@ int FGTileMgr::update( double lon, double lat, double visibility_meters, #endif ssgTexturePath( (char *)(dm->get_texture_path().c_str()) ); - ssgEntity *obj_model = globals->get_model_loader()->load_model(dm->get_model_path()); - if ( obj_model != NULL ) { - dm->get_obj_trans()->addKid( obj_model ); - } - dm->get_tile()->dec_pending_models(); + try + { + ssgEntity *obj_model = + globals->get_model_loader()->load_model(dm->get_model_path()); + if ( obj_model != NULL ) { + dm->get_obj_trans()->addKid( obj_model ); + } + } + catch (const sg_exception& exc) + { + SG_LOG( SG_ALL, SG_ALERT, exc.getMessage() ); + } + dm->get_tile()->dec_pending_models(); delete dm; }