mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-04-01 04:20:20 +00:00
Fill exteriorPositions in preloadFastTravel
This commit is contained in:
parent
11bee6ee35
commit
59bf100907
@ -701,7 +701,7 @@ namespace MWWorld
|
|||||||
if (mPreloadExteriorGrid)
|
if (mPreloadExteriorGrid)
|
||||||
preloadExteriorGrid(playerPos, predictedPos);
|
preloadExteriorGrid(playerPos, predictedPos);
|
||||||
if (mPreloadFastTravel)
|
if (mPreloadFastTravel)
|
||||||
preloadFastTravelDestinations(playerPos, predictedPos);
|
preloadFastTravelDestinations(playerPos, predictedPos, exteriorPositions);
|
||||||
}
|
}
|
||||||
|
|
||||||
mPreloader->setTerrainPreloadPositions(exteriorPositions);
|
mPreloader->setTerrainPreloadPositions(exteriorPositions);
|
||||||
@ -839,7 +839,7 @@ namespace MWWorld
|
|||||||
std::vector<ESM::Transport::Dest> mList;
|
std::vector<ESM::Transport::Dest> mList;
|
||||||
};
|
};
|
||||||
|
|
||||||
void Scene::preloadFastTravelDestinations(const osg::Vec3f& playerPos, const osg::Vec3f& /*predictedPos*/) // ignore predictedPos here since opening dialogue with travel service takes extra time
|
void Scene::preloadFastTravelDestinations(const osg::Vec3f& playerPos, const osg::Vec3f& /*predictedPos*/, std::vector<osg::Vec3f>& exteriorPositions) // ignore predictedPos here since opening dialogue with travel service takes extra time
|
||||||
{
|
{
|
||||||
const MWWorld::ConstPtr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
const MWWorld::ConstPtr player = MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
ListFastTravelDestinationsVisitor listVisitor(mPreloadDistance, player.getRefData().getPosition().asVec3());
|
ListFastTravelDestinationsVisitor listVisitor(mPreloadDistance, player.getRefData().getPosition().asVec3());
|
||||||
@ -857,9 +857,11 @@ namespace MWWorld
|
|||||||
preloadCell(MWBase::Environment::get().getWorld()->getInterior(it->mCellName));
|
preloadCell(MWBase::Environment::get().getWorld()->getInterior(it->mCellName));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
osg::Vec3f pos = it->mPos.asVec3();
|
||||||
int x,y;
|
int x,y;
|
||||||
MWBase::Environment::get().getWorld()->positionToIndex( it->mPos.pos[0], it->mPos.pos[1], x, y);
|
MWBase::Environment::get().getWorld()->positionToIndex( pos.x(), pos.y(), x, y);
|
||||||
preloadCell(MWBase::Environment::get().getWorld()->getExterior(x,y), true);
|
preloadCell(MWBase::Environment::get().getWorld()->getExterior(x,y), true);
|
||||||
|
exteriorPositions.push_back(pos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ namespace MWWorld
|
|||||||
void preloadCells(float dt);
|
void preloadCells(float dt);
|
||||||
void preloadTeleportDoorDestinations(const osg::Vec3f& playerPos, const osg::Vec3f& predictedPos, std::vector<osg::Vec3f>& exteriorPositions);
|
void preloadTeleportDoorDestinations(const osg::Vec3f& playerPos, const osg::Vec3f& predictedPos, std::vector<osg::Vec3f>& exteriorPositions);
|
||||||
void preloadExteriorGrid(const osg::Vec3f& playerPos, const osg::Vec3f& predictedPos);
|
void preloadExteriorGrid(const osg::Vec3f& playerPos, const osg::Vec3f& predictedPos);
|
||||||
void preloadFastTravelDestinations(const osg::Vec3f& playerPos, const osg::Vec3f& predictedPos);
|
void preloadFastTravelDestinations(const osg::Vec3f& playerPos, const osg::Vec3f& predictedPos, std::vector<osg::Vec3f>& exteriorPositions);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user