Preload terrain while reading savegame

This commit is contained in:
scrawl 2017-03-12 22:38:50 +01:00
parent e4e8821902
commit c22fde2bcd
3 changed files with 9 additions and 0 deletions

View file

@ -809,6 +809,13 @@ namespace MWWorld
mPreloader->preload(cell, mRendering.getReferenceTime()); mPreloader->preload(cell, mRendering.getReferenceTime());
} }
void Scene::preloadTerrain(const osg::Vec3f &pos)
{
std::vector<osg::Vec3f> vec;
vec.push_back(pos);
mPreloader->setTerrainPreloadPositions(vec);
}
struct ListFastTravelDestinationsVisitor struct ListFastTravelDestinationsVisitor
{ {
ListFastTravelDestinationsVisitor(float preloadDist, const osg::Vec3f& playerPos) ListFastTravelDestinationsVisitor(float preloadDist, const osg::Vec3f& playerPos)

View file

@ -89,6 +89,7 @@ namespace MWWorld
~Scene(); ~Scene();
void preloadCell(MWWorld::CellStore* cell, bool preloadSurrounding=false); void preloadCell(MWWorld::CellStore* cell, bool preloadSurrounding=false);
void preloadTerrain(const osg::Vec3f& pos);
void unloadCell (CellStoreCollection::iterator iter); void unloadCell (CellStoreCollection::iterator iter);

View file

@ -379,6 +379,7 @@ namespace MWWorld
case ESM::REC_PLAY: case ESM::REC_PLAY:
mPlayer->readRecord(reader, type); mPlayer->readRecord(reader, type);
mWorldScene->preloadCell(getPlayerPtr().getCell(), true); mWorldScene->preloadCell(getPlayerPtr().getCell(), true);
mWorldScene->preloadTerrain(getPlayerPtr().getRefData().getPosition().asVec3());
break; break;
default: default:
if (!mStore.readRecord (reader, type) && if (!mStore.readRecord (reader, type) &&