mirror of
https://github.com/OpenMW/openmw.git
synced 2025-05-02 20:41:22 +00:00
Remove WorldModel::getCellByPosition function
It's used in a single place. Move the code there.
This commit is contained in:
parent
235eb65c97
commit
183202cd65
3 changed files with 5 additions and 20 deletions
|
@ -67,7 +67,11 @@ namespace MWLua
|
||||||
else
|
else
|
||||||
cell = &wm->getCell(name);
|
cell = &wm->getCell(name);
|
||||||
}
|
}
|
||||||
return &wm->getCellByPosition(pos, cell);
|
if (cell != nullptr && !cell->isExterior())
|
||||||
|
return cell;
|
||||||
|
const ESM::RefId worldspace
|
||||||
|
= cell == nullptr ? ESM::Cell::sDefaultWorldspaceId : cell->getCell()->getWorldSpace();
|
||||||
|
return &wm->getExterior(ESM::positionToExteriorCellLocation(pos.x(), pos.y(), worldspace));
|
||||||
}
|
}
|
||||||
|
|
||||||
void teleportPlayer(
|
void teleportPlayer(
|
||||||
|
|
|
@ -319,19 +319,6 @@ MWWorld::CellStore& MWWorld::WorldModel::getCell(std::string_view name, bool for
|
||||||
ESM::ExteriorCellLocation(cell->getGridX(), cell->getGridY(), ESM::Cell::sDefaultWorldspaceId), forceLoad);
|
ESM::ExteriorCellLocation(cell->getGridX(), cell->getGridY(), ESM::Cell::sDefaultWorldspaceId), forceLoad);
|
||||||
}
|
}
|
||||||
|
|
||||||
MWWorld::CellStore& MWWorld::WorldModel::getCellByPosition(
|
|
||||||
const osg::Vec3f& pos, MWWorld::CellStore* cellInSameWorldSpace)
|
|
||||||
{
|
|
||||||
if (cellInSameWorldSpace && !cellInSameWorldSpace->isExterior())
|
|
||||||
return *cellInSameWorldSpace;
|
|
||||||
ESM::RefId exteriorWorldspace
|
|
||||||
= cellInSameWorldSpace ? cellInSameWorldSpace->getCell()->getWorldSpace() : ESM::Cell::sDefaultWorldspaceId;
|
|
||||||
const ESM::ExteriorCellLocation cellIndex
|
|
||||||
= ESM::positionToExteriorCellLocation(pos.x(), pos.y(), exteriorWorldspace);
|
|
||||||
|
|
||||||
return getExterior(cellIndex);
|
|
||||||
}
|
|
||||||
|
|
||||||
MWWorld::Ptr MWWorld::WorldModel::getPtr(const ESM::RefId& name)
|
MWWorld::Ptr MWWorld::WorldModel::getPtr(const ESM::RefId& name)
|
||||||
{
|
{
|
||||||
for (const auto& [cachedId, cellStore] : mIdCache)
|
for (const auto& [cachedId, cellStore] : mIdCache)
|
||||||
|
|
|
@ -51,12 +51,6 @@ namespace MWWorld
|
||||||
CellStore& getCell(std::string_view name, bool forceLoad = true); // interior or named exterior
|
CellStore& getCell(std::string_view name, bool forceLoad = true); // interior or named exterior
|
||||||
CellStore& getCell(const ESM::RefId& Id, bool forceLoad = true);
|
CellStore& getCell(const ESM::RefId& Id, bool forceLoad = true);
|
||||||
|
|
||||||
// Returns the cell that is in the same worldspace as `cellInSameWorldSpace`
|
|
||||||
// (in case of nullptr - default exterior worldspace) and contains given position.
|
|
||||||
// Interiors are single-cell worldspaces, so in case of an interior it just returns
|
|
||||||
// the same cell.
|
|
||||||
CellStore& getCellByPosition(const osg::Vec3f& pos, CellStore* cellInSameWorldSpace = nullptr);
|
|
||||||
|
|
||||||
void registerPtr(const MWWorld::Ptr& ptr);
|
void registerPtr(const MWWorld::Ptr& ptr);
|
||||||
void deregisterPtr(const MWWorld::Ptr& ptr);
|
void deregisterPtr(const MWWorld::Ptr& ptr);
|
||||||
ESM::RefNum getLastGeneratedRefNum() const { return mLastGeneratedRefnum; }
|
ESM::RefNum getLastGeneratedRefNum() const { return mLastGeneratedRefnum; }
|
||||||
|
|
Loading…
Reference in a new issue