mirror of
https://github.com/OpenMW/openmw.git
synced 2025-07-01 22:11:37 +00:00
fixed made by @ZehMatt in 6abb96250f
and cdcf1393fc
This commit is contained in:
parent
9092c32f2e
commit
57df51b4a6
1 changed files with 6 additions and 8 deletions
|
@ -233,17 +233,14 @@ namespace MWWorld
|
||||||
template <class T>
|
template <class T>
|
||||||
static const T *esm3insertStatic(ESMStore& stores, const T &x)
|
static const T *esm3insertStatic(ESMStore& stores, const T &x)
|
||||||
{
|
{
|
||||||
const std::string id = "$dynamic" + std::to_string(stores.mDynamicCount++);
|
|
||||||
|
|
||||||
Store<T> &store = stores.getWritable<T>();
|
Store<T> &store = stores.getWritable<T>();
|
||||||
if (store.search(id) != nullptr)
|
if (store.search(x.mId) != nullptr)
|
||||||
{
|
{
|
||||||
const std::string msg = "Try to override existing record '" + id + "'";
|
const std::string msg = "Try to override existing record '" + x.mId + "'";
|
||||||
throw std::runtime_error(msg);
|
throw std::runtime_error(msg);
|
||||||
}
|
}
|
||||||
T record = x;
|
|
||||||
|
|
||||||
T *ptr = store.insertStatic(record);
|
T *ptr = store.insertStatic(x);
|
||||||
auto esm3RecordType_find = stores.mStoreImp->mStoreToRecName.find(&stores.get<T>());
|
auto esm3RecordType_find = stores.mStoreImp->mStoreToRecName.find(&stores.get<T>());
|
||||||
if (esm3RecordType_find != stores.mStoreImp->mStoreToRecName.end())
|
if (esm3RecordType_find != stores.mStoreImp->mStoreToRecName.end())
|
||||||
{
|
{
|
||||||
|
@ -769,13 +766,14 @@ void ESMStore::removeMissingObjects(Store<T>& store)
|
||||||
template <>
|
template <>
|
||||||
const ESM::NPC *ESMStore::insert<ESM::NPC>(const ESM::NPC &npc)
|
const ESM::NPC *ESMStore::insert<ESM::NPC>(const ESM::NPC &npc)
|
||||||
{
|
{
|
||||||
const std::string id = "$dynamic" + std::to_string(mDynamicCount++);
|
|
||||||
auto& npcs = getWritable<ESM::NPC>();
|
auto& npcs = getWritable<ESM::NPC>();
|
||||||
if (Misc::StringUtils::ciEqual(npc.mId, "player"))
|
if (Misc::StringUtils::ciEqual(npc.mId, "player"))
|
||||||
{
|
{
|
||||||
return npcs.insert(npc);
|
return npcs.insert(npc);
|
||||||
}
|
}
|
||||||
else if (npcs.search(id) != nullptr)
|
const std::string id = "$dynamic" + std::to_string(mDynamicCount++);
|
||||||
|
if (npcs.search(id) != nullptr)
|
||||||
{
|
{
|
||||||
const std::string msg = "Try to override existing record '" + id + "'";
|
const std::string msg = "Try to override existing record '" + id + "'";
|
||||||
throw std::runtime_error(msg);
|
throw std::runtime_error(msg);
|
||||||
|
|
Loading…
Reference in a new issue