mirror of
https://github.com/OpenMW/openmw.git
synced 2025-07-12 19:11:43 +00:00
various fixes
fixed naming convention replaced std::string by string_view when possible removed unused function and member varaible replaced type::value by type_v set default destructor in cpp function getTypeIndex => getnextindex
This commit is contained in:
parent
7bc506ff86
commit
b1d5d604be
2 changed files with 19 additions and 32 deletions
|
@ -140,7 +140,6 @@ namespace MWWorld
|
||||||
ESMStore::StoreTuple mStores;
|
ESMStore::StoreTuple mStores;
|
||||||
|
|
||||||
std::map<ESM::RecNameInts, DynamicStore*> mRecNameToStore;
|
std::map<ESM::RecNameInts, DynamicStore*> mRecNameToStore;
|
||||||
std::unordered_map<const DynamicStore*, ESM::RecNameInts> mStoreToRecName;
|
|
||||||
|
|
||||||
// Lookup of all IDs. Makes looking up references faster. Just
|
// Lookup of all IDs. Makes looking up references faster. Just
|
||||||
// maps the id name to the record type.
|
// maps the id name to the record type.
|
||||||
|
@ -157,7 +156,7 @@ namespace MWWorld
|
||||||
assert(&store == &std::get<Store<T>>(stores.mStoreImp->mStores));
|
assert(&store == &std::get<Store<T>>(stores.mStoreImp->mStores));
|
||||||
|
|
||||||
stores.mStores[storeIndex] = &store;
|
stores.mStores[storeIndex] = &store;
|
||||||
if constexpr (std::is_convertible<Store<T>*, DynamicStore*>::value)
|
if constexpr (std::is_convertible_v<Store<T>*, DynamicStore*>)
|
||||||
{
|
{
|
||||||
stores.mDynamicStores.push_back(&store);
|
stores.mDynamicStores.push_back(&store);
|
||||||
constexpr ESM::RecNameInts recName = T::sRecordId;
|
constexpr ESM::RecNameInts recName = T::sRecordId;
|
||||||
|
@ -168,19 +167,10 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupAfterStoresCreation(ESMStore& store)
|
|
||||||
{
|
|
||||||
for (const auto& recordStorePair : mRecNameToStore)
|
|
||||||
{
|
|
||||||
const DynamicStore* storePtr = recordStorePair.second;
|
|
||||||
mStoreToRecName[storePtr] = recordStorePair.first;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
int ESMStore::find(const std::string_view& id) const
|
int ESMStore::find(const std::string_view id) const
|
||||||
{
|
{
|
||||||
IDMap::const_iterator it = mStoreImp->mIds.find(id);
|
IDMap::const_iterator it = mStoreImp->mIds.find(id);
|
||||||
if (it == mStoreImp->mIds.end()) {
|
if (it == mStoreImp->mIds.end()) {
|
||||||
|
@ -189,7 +179,7 @@ namespace MWWorld
|
||||||
return it->second;
|
return it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ESMStore::findStatic(const std::string& id) const
|
int ESMStore::findStatic(const std::string_view id) const
|
||||||
{
|
{
|
||||||
IDMap::const_iterator it = mStoreImp-> mStaticIds.find(id);
|
IDMap::const_iterator it = mStoreImp-> mStaticIds.find(id);
|
||||||
if (it == mStoreImp->mStaticIds.end()) {
|
if (it == mStoreImp->mStaticIds.end()) {
|
||||||
|
@ -203,13 +193,10 @@ namespace MWWorld
|
||||||
mStoreImp = std::make_unique<ESMStoreImp>();
|
mStoreImp = std::make_unique<ESMStoreImp>();
|
||||||
std::apply([this](auto& ...x) {(ESMStoreImp::assignStoreToIndex(*this, x), ...); }, mStoreImp->mStores);
|
std::apply([this](auto& ...x) {(ESMStoreImp::assignStoreToIndex(*this, x), ...); }, mStoreImp->mStores);
|
||||||
mDynamicCount = 0;
|
mDynamicCount = 0;
|
||||||
mStoreImp->setupAfterStoresCreation(*this);
|
|
||||||
getWritable<ESM::Pathgrid>().setCells(getWritable<ESM::Cell>());
|
getWritable<ESM::Pathgrid>().setCells(getWritable<ESM::Cell>());
|
||||||
}
|
}
|
||||||
|
|
||||||
ESMStore::~ESMStore() //necessary for the destruction of of unique_ptr<ESMStoreImp>
|
ESMStore::~ESMStore() = default;
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void ESMStore::clearDynamic()
|
void ESMStore::clearDynamic()
|
||||||
{
|
{
|
||||||
|
@ -325,16 +312,16 @@ void ESMStore::load(ESM::ESMReader &esm, Loading::Listener* listener, ESM::Dialo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int& ESMStore::getIdType(std::string& id)
|
int& ESMStore::getIdType(const std::string& id)
|
||||||
{
|
{
|
||||||
return mStoreImp->mIds[id];
|
return mStoreImp->mIds[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
static std::size_t sTypeIndexCounter = 0;
|
static std::size_t sTypeIndexCounter = 0;
|
||||||
|
|
||||||
std::size_t& ESMStore::getTypeIndexCounter()
|
std::size_t ESMStore::geNextTypeIndex()
|
||||||
{
|
{
|
||||||
return sTypeIndexCounter;
|
return sTypeIndexCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
ESM::LuaScriptsCfg ESMStore::getLuaScriptsCfg() const
|
ESM::LuaScriptsCfg ESMStore::getLuaScriptsCfg() const
|
||||||
|
@ -448,8 +435,8 @@ void ESMStore::validate()
|
||||||
|
|
||||||
// Validate spell effects for invalid arguments
|
// Validate spell effects for invalid arguments
|
||||||
std::vector<ESM::Spell> spellsToReplace;
|
std::vector<ESM::Spell> spellsToReplace;
|
||||||
auto& Spells = getWritable<ESM::Spell>();
|
auto& spells = getWritable<ESM::Spell>();
|
||||||
for (ESM::Spell spell : Spells)
|
for (ESM::Spell spell : spells)
|
||||||
{
|
{
|
||||||
if (spell.mEffects.mList.empty())
|
if (spell.mEffects.mList.empty())
|
||||||
continue;
|
continue;
|
||||||
|
@ -505,8 +492,8 @@ void ESMStore::validate()
|
||||||
|
|
||||||
for (const ESM::Spell &spell : spellsToReplace)
|
for (const ESM::Spell &spell : spellsToReplace)
|
||||||
{
|
{
|
||||||
Spells.eraseStatic(spell.mId);
|
spells.eraseStatic(spell.mId);
|
||||||
Spells.insertStatic(spell);
|
spells.insertStatic(spell);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -133,13 +133,13 @@ namespace MWWorld
|
||||||
static constexpr bool value = (std::is_same_v<T, Args> || ...);
|
static constexpr bool value = (std::is_same_v<T, Args> || ...);
|
||||||
};
|
};
|
||||||
|
|
||||||
static std::size_t &getTypeIndexCounter();
|
static std::size_t geNextTypeIndex();
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
static std::size_t getTypeIndex()
|
static std::size_t getTypeIndex()
|
||||||
{
|
{
|
||||||
static_assert(HasMember<T, StoreTuple>::value);
|
static_assert(HasMember<T, StoreTuple>::value);
|
||||||
static std::size_t sIndex = getTypeIndexCounter()++;
|
static std::size_t sIndex = geNextTypeIndex();
|
||||||
return sIndex;
|
return sIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ namespace MWWorld
|
||||||
template<class T>
|
template<class T>
|
||||||
void removeMissingObjects(Store<T>& store);
|
void removeMissingObjects(Store<T>& store);
|
||||||
|
|
||||||
int& getIdType(std::string& id);
|
int& getIdType(const std::string& id);
|
||||||
|
|
||||||
using LuaContent = std::variant<
|
using LuaContent = std::variant<
|
||||||
ESM::LuaScriptsCfg, // data from an omwaddon
|
ESM::LuaScriptsCfg, // data from an omwaddon
|
||||||
|
@ -188,9 +188,9 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Look up the given ID in 'all'. Returns 0 if not found.
|
/// Look up the given ID in 'all'. Returns 0 if not found.
|
||||||
int find(const std::string_view& id) const;
|
int find(const std::string_view id) const;
|
||||||
|
|
||||||
int findStatic(const std::string& id) const;
|
int findStatic(const std::string_view id) const;
|
||||||
|
|
||||||
|
|
||||||
ESMStore();
|
ESMStore();
|
||||||
|
@ -225,7 +225,7 @@ namespace MWWorld
|
||||||
record.mId = id;
|
record.mId = id;
|
||||||
|
|
||||||
T *ptr = store.insert(record);
|
T *ptr = store.insert(record);
|
||||||
if constexpr (std::is_convertible<Store<T>*, DynamicStore*>::value)
|
if constexpr (std::is_convertible_v<Store<T>*, DynamicStore*>)
|
||||||
{
|
{
|
||||||
getIdType(ptr->mId) = T::sRecordId;
|
getIdType(ptr->mId) = T::sRecordId;
|
||||||
}
|
}
|
||||||
|
@ -238,7 +238,7 @@ namespace MWWorld
|
||||||
Store<T> &store = getWritable<T>();
|
Store<T> &store = getWritable<T>();
|
||||||
|
|
||||||
T *ptr = store.insert(x);
|
T *ptr = store.insert(x);
|
||||||
if constexpr (std::is_convertible<Store<T>*, DynamicStore*>::value)
|
if constexpr (std::is_convertible_v<Store<T>*, DynamicStore*>)
|
||||||
{
|
{
|
||||||
getIdType(ptr->mId) = T::sRecordId;
|
getIdType(ptr->mId) = T::sRecordId;
|
||||||
}
|
}
|
||||||
|
@ -256,7 +256,7 @@ namespace MWWorld
|
||||||
}
|
}
|
||||||
|
|
||||||
T *ptr = store.insertStatic(x);
|
T *ptr = store.insertStatic(x);
|
||||||
if constexpr (std::is_convertible<Store<T>*, DynamicStore*>::value)
|
if constexpr (std::is_convertible_v<Store<T>*, DynamicStore*>)
|
||||||
{
|
{
|
||||||
getIdType(ptr->mId) = T::sRecordId;
|
getIdType(ptr->mId) = T::sRecordId;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue