mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-23 10:20:48 +00:00
Merge branch 'esm4_fix' into 'master'
Add a safeguard to load only supported records Closes #7406 See merge request OpenMW/openmw!3158
This commit is contained in:
commit
a59f22fd30
@ -210,12 +210,11 @@ namespace MWWorld
|
||||
template <class T, class Id>
|
||||
RecordId TypedDynamicStore<T, Id>::load(ESM::ESMReader& esm)
|
||||
{
|
||||
T record;
|
||||
bool isDeleted = false;
|
||||
if constexpr (!ESM::isESM4Rec(T::sRecordId))
|
||||
{
|
||||
T record;
|
||||
bool isDeleted = false;
|
||||
record.load(esm, isDeleted);
|
||||
}
|
||||
|
||||
std::pair<typename Static::iterator, bool> inserted = mStatic.insert_or_assign(record.mId, record);
|
||||
if (inserted.second)
|
||||
@ -226,6 +225,14 @@ namespace MWWorld
|
||||
else
|
||||
return RecordId();
|
||||
}
|
||||
else
|
||||
{
|
||||
std::stringstream msg;
|
||||
msg << "Can not load record of type ESM::REC_" << getRecNameString(T::sRecordId).toStringView()
|
||||
<< ": ESM::ESMReader can load only ESM3 records.";
|
||||
throw std::runtime_error(msg.str());
|
||||
}
|
||||
}
|
||||
|
||||
template <class T, class Id>
|
||||
void TypedDynamicStore<T, Id>::setUp()
|
||||
|
Loading…
x
Reference in New Issue
Block a user