mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-27 03:35:27 +00:00
Implement overwriting pathgrid records (Fixes #2175)
This commit is contained in:
parent
fadbb5ad21
commit
dd0cea21b0
@ -876,8 +876,36 @@ namespace MWWorld
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
void load(ESM::ESMReader &esm, const std::string &id) {
|
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 {
|
size_t getSize() const {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user