diff --git a/apps/openmw/mwbase/world.hpp b/apps/openmw/mwbase/world.hpp index 7fc9d88d6..c484af81f 100644 --- a/apps/openmw/mwbase/world.hpp +++ b/apps/openmw/mwbase/world.hpp @@ -42,6 +42,7 @@ namespace ESM struct EffectList; struct CreatureLevList; struct ItemLevList; + struct Creature; } namespace MWRender @@ -328,6 +329,10 @@ namespace MWBase ///< Create a new record (of type npc) in the ESM store. /// \return pointer to created record + virtual const ESM::Creature *createRecord (const ESM::Creature &record) = 0; + ///< Create a new record (of type creature) in the ESM store. + /// \return pointer to created record + virtual const ESM::Armor *createRecord (const ESM::Armor& record) = 0; ///< Create a new record (of type armor) in the ESM store. /// \return pointer to created record diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 40f1539a6..6a03ba3f2 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1666,6 +1666,11 @@ namespace MWWorld return ret; } + const ESM::Creature *World::createRecord(const ESM::Creature &record) + { + return mStore.insert(record); + } + const ESM::Armor *World::createRecord (const ESM::Armor& record) { return mStore.insert(record); diff --git a/apps/openmw/mwworld/worldimp.hpp b/apps/openmw/mwworld/worldimp.hpp index d2ae702d8..48e71f76f 100644 --- a/apps/openmw/mwworld/worldimp.hpp +++ b/apps/openmw/mwworld/worldimp.hpp @@ -436,6 +436,10 @@ namespace MWWorld ///< Create a new record (of type npc) in the ESM store. /// \return pointer to created record + virtual const ESM::Creature *createRecord(const ESM::Creature &record); + ///< Create a new record (of type creature) in the ESM store. + /// \return pointer to created record + virtual const ESM::Armor *createRecord (const ESM::Armor& record); ///< Create a new record (of type armor) in the ESM store. /// \return pointer to created record