From e553f285b8c4f4f228cb1624f2b06f3504583f2e Mon Sep 17 00:00:00 2001 From: greye Date: Sun, 7 Jul 2013 15:06:05 +0400 Subject: [PATCH] update player position on engine start --- apps/openmw/engine.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 2918f5d8b..1050c1717 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -432,19 +432,14 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings) { // load cell ESM::Position pos; - pos.rot[0] = pos.rot[1] = pos.rot[2] = 0; - pos.pos[2] = 0; + MWBase::World *world = MWBase::Environment::get().getWorld(); - if (const ESM::Cell *exterior = MWBase::Environment::get().getWorld()->getExterior (mCellName)) - { - MWBase::Environment::get().getWorld()->indexToPosition (exterior->mData.mX, exterior->mData.mY, - pos.pos[0], pos.pos[1], true); - MWBase::Environment::get().getWorld()->changeToExteriorCell (pos); + if (world->findExteriorPosition(mCellName, pos)) { + world->changeToExteriorCell (pos); } - else - { - pos.pos[0] = pos.pos[1] = 0; - MWBase::Environment::get().getWorld()->changeToInteriorCell (mCellName, pos); + else { + world->findInteriorPosition(mCellName, pos); + world->changeToInteriorCell (mCellName, pos); } } else