1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-04-16 08:42:23 +00:00

Avoid Ogre exceptions and null pointers.

This commit is contained in:
cc9cii 2014-10-23 20:14:01 +11:00
parent 39cd89a9af
commit 2f26fc1188

View File

@ -170,12 +170,15 @@ namespace CSVWorld
mSelectedEntities.find(result.first); mSelectedEntities.find(result.first);
if(iter != mSelectedEntities.end()) // currently selected if(iter != mSelectedEntities.end()) // currently selected
{ {
std::vector<std::string> deletedEntities = mSelectedEntities[result.first]; std::vector<std::string> clonedEntities = mSelectedEntities[result.first];
while(!deletedEntities.empty()) while(!clonedEntities.empty())
{ {
scene->detachObject(deletedEntities.back()); if(mSceneMgr->hasEntity(clonedEntities.back()))
mSceneMgr->destroyEntity(deletedEntities.back()); {
deletedEntities.pop_back(); scene->detachObject(clonedEntities.back());
mSceneMgr->destroyEntity(clonedEntities.back());
}
clonedEntities.pop_back();
} }
mSelectedEntities.erase(iter); mSelectedEntities.erase(iter);
@ -189,6 +192,9 @@ namespace CSVWorld
while(iter.hasMoreElements()) while(iter.hasMoreElements())
{ {
Ogre::MovableObject * element = iter.getNext(); Ogre::MovableObject * element = iter.getNext();
if(!element)
break;
if(element->getMovableType() != "Entity") if(element->getMovableType() != "Entity")
continue; continue;