diff --git a/apps/openmw/mwrender/exterior.cpp b/apps/openmw/mwrender/exterior.cpp index 8f3bccdb53..626ca8f1e5 100644 --- a/apps/openmw/mwrender/exterior.cpp +++ b/apps/openmw/mwrender/exterior.cpp @@ -35,7 +35,7 @@ int ExteriorCellRender::uniqueID = 0; ExteriorCellRender::ExteriorCellRender(ESMS::CellStore &_cell, MWWorld::Environment& environment, MWScene &_scene) - : mCell(_cell), mEnvironment (environment), mScene(_scene), mBase(NULL), mInsert(NULL), mAmbientMode (0) + : mCell(_cell), mEnvironment (environment), mScene(_scene), mBase(NULL), mInsert(NULL), mAmbientMode (0) { uniqueID = uniqueID +1; sg = Ogre::Root::getSingleton().getSceneManagerIterator().getNext()->createStaticGeometry( "sg" + Ogre::StringConverter::toString(uniqueID)); @@ -402,7 +402,11 @@ void ExteriorCellRender::destroy() mBase = NULL; std::cout << "destroy"; + if (sg) + { Ogre::Root::getSingleton().getSceneManagerIterator().getNext()->destroyStaticGeometry(sg); + sg = 0; + } } // Switch through lighting modes.