diff --git a/apps/openmw/mwworld/localscripts.cpp b/apps/openmw/mwworld/localscripts.cpp index 8a671cea8..f3a647124 100644 --- a/apps/openmw/mwworld/localscripts.cpp +++ b/apps/openmw/mwworld/localscripts.cpp @@ -93,9 +93,18 @@ void MWWorld::LocalScripts::add (const std::string& scriptName, const Ptr& ptr) { if (const ESM::Script *script = mStore.get().find (scriptName)) { - ptr.getRefData().setLocals (*script); + try + { + ptr.getRefData().setLocals (*script); - mScripts.push_back (std::make_pair (scriptName, ptr)); + mScripts.push_back (std::make_pair (scriptName, ptr)); + } + catch (const std::exception& exception) + { + std::cerr + << "failed to add local script " << scriptName + << " because an exception has been thrown: " << exception.what() << std::endl; + } } }