Catch exceptions thrown during reference loading (Bug #3238)

move
scrawl 9 years ago
parent b139ad56b7
commit d0aba0d9ee

@ -462,6 +462,8 @@ namespace MWWorld
// Load references from all plugins that do something with this cell.
for (size_t i = 0; i < mCell->mContextList.size(); i++)
{
try
{
// Reopen the ESM reader and seek to the right position.
int index = mCell->mContextList.at(i).index;
@ -486,6 +488,11 @@ namespace MWWorld
mIds.push_back (Misc::StringUtils::lowerCase (ref.mRefID));
}
}
catch (std::exception& e)
{
std::cerr << "An error occured listing references for cell " << getCell()->getDescription() << ": " << e.what() << std::endl;
}
}
// List moved references, from separately tracked list.
for (ESM::CellRefTracker::const_iterator it = mCell->mLeasedRefs.begin(); it != mCell->mLeasedRefs.end(); ++it)
@ -509,6 +516,8 @@ namespace MWWorld
// Load references from all plugins that do something with this cell.
for (size_t i = 0; i < mCell->mContextList.size(); i++)
{
try
{
// Reopen the ESM reader and seek to the right position.
int index = mCell->mContextList.at(i).index;
@ -531,6 +540,11 @@ namespace MWWorld
loadRef (ref, deleted);
}
}
catch (std::exception& e)
{
std::cerr << "An error occured loading references for cell " << getCell()->getDescription() << ": " << e.what() << std::endl;
}
}
// Load moved references, from separately tracked list.
for (ESM::CellRefTracker::const_iterator it = mCell->mLeasedRefs.begin(); it != mCell->mLeasedRefs.end(); ++it)

Loading…
Cancel
Save