From 858f174355f29bb777a53d1f237b4328bc09ee7f Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Tue, 27 Jul 2010 19:09:35 +0800 Subject: [PATCH] removed duplicate code from World class --- apps/openmw/engine.cpp | 8 +++++++- apps/openmw/mwworld/world.cpp | 19 +------------------ apps/openmw/mwworld/world.hpp | 2 +- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 374ca41a1..e7e682e31 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -187,7 +187,7 @@ void OMW::Engine::go() loadBSA(); // Create the world - mEnvironment.mWorld = new MWWorld::World (mOgre, mDataDir, mMaster, mCellName, mNewGame); + mEnvironment.mWorld = new MWWorld::World (mOgre, mDataDir, mMaster, mNewGame); // Set up the GUI system mGuiManager = new OEngine::GUI::MyGUIManager(mOgre.getWindow(), @@ -219,6 +219,12 @@ void OMW::Engine::go() mEnvironment.mMechanicsManager->configureGUI(); + // load cell + ESM::Position pos; + pos.pos[0] = pos.pos[1] = pos.pos[2] = 0; + pos.rot[0] = pos.rot[1] = pos.rot[2] = 0; + mEnvironment.mWorld->changeCell (mCellName, pos); + // Sets up the input system MWInput::MWInputManager input(mOgre, mEnvironment.mWorld->getPlayerPos(), *mEnvironment.mWindowManager, mDebug); diff --git a/apps/openmw/mwworld/world.cpp b/apps/openmw/mwworld/world.cpp index d71276fe9..3c2ea3256 100644 --- a/apps/openmw/mwworld/world.cpp +++ b/apps/openmw/mwworld/world.cpp @@ -164,7 +164,7 @@ namespace MWWorld } World::World (OEngine::Render::OgreRenderer& renderer, const boost::filesystem::path& dataDir, - const std::string& master, const std::string& startCell, bool newGame) + const std::string& master, bool newGame) : mSkyManager (0), mScene (renderer), mPlayerPos (0), mCurrentCell (0), mGlobalVariables (0), mSky (false), mCellChanged (false) { @@ -177,13 +177,7 @@ namespace MWWorld mEsm.open (masterPath.file_string()); mStore.load (mEsm); - mInteriors[startCell].loadInt (startCell, mStore, mEsm); - mCurrentCell = &mInteriors[startCell]; - - insertInteriorScripts (mInteriors[startCell]); - mPlayerPos = new MWRender::PlayerPos (mScene.getCamera(), mStore.npcs.find ("player")); - mPlayerPos->setCell (&mInteriors[startCell]); // global variables mGlobalVariables = new Globals (mStore); @@ -194,19 +188,8 @@ namespace MWWorld mGlobalVariables->setInt ("chargenstate", 1); } - // This connects the cell data with the rendering scene. - mActiveCells.insert (std::make_pair (&mInteriors[startCell], - new MWRender::InteriorCellRender (mInteriors[startCell], mScene))); - - // Load the cell and insert it into the renderer - for (CellRenderCollection::iterator iter (mActiveCells.begin()); - iter!=mActiveCells.end(); ++iter) - iter->second->show(); - mSkyManager = MWRender::SkyManager::create(renderer.getWindow(), mScene.getCamera()); - - toggleSky(); } World::~World() diff --git a/apps/openmw/mwworld/world.hpp b/apps/openmw/mwworld/world.hpp index abb17a6ee..d1cf2de31 100644 --- a/apps/openmw/mwworld/world.hpp +++ b/apps/openmw/mwworld/world.hpp @@ -74,7 +74,7 @@ namespace MWWorld public: World (OEngine::Render::OgreRenderer& renderer, const boost::filesystem::path& master, - const std::string& dataDir, const std::string& startCell, bool newGame); + const std::string& dataDir, bool newGame); ~World();