1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-25 15:35:23 +00:00

Implement overwriting pathgrid records (Fixes #2175)

This commit is contained in:
scrawl 2014-12-01 23:25:25 +01:00
parent fadbb5ad21
commit dd0cea21b0

View File

@ -876,8 +876,36 @@ namespace MWWorld
public:
void load(ESM::ESMReader &esm, const std::string &id) {
mStatic.push_back(ESM::Pathgrid());
mStatic.back().load(esm);
ESM::Pathgrid pathgrid;
pathgrid.load(esm);
// Try to overwrite existing record
// Can't use search() because we aren't sorted yet
if (!pathgrid.mCell.empty())
{
for (std::vector<ESM::Pathgrid>::iterator it = mStatic.begin(); it != mStatic.end(); ++it)
{
if ((*it).mCell == pathgrid.mCell)
{
(*it) = pathgrid;
return;
}
}
}
else
{
for (std::vector<ESM::Pathgrid>::iterator it = mStatic.begin(); it != mStatic.end(); ++it)
{
if ((*it).mData.mX == pathgrid.mData.mX && (*it).mData.mY == pathgrid.mData.mY)
{
(*it) = pathgrid;
return;
}
}
}
mStatic.push_back(pathgrid);
}
size_t getSize() const {