Implement overwriting pathgrid records (Fixes #2175)

report
scrawl 10 years ago
parent fadbb5ad21
commit dd0cea21b0

@ -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 {

Loading…
Cancel
Save