From 9106e5307c7deadedc19855e2e931f4eda795cdb Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 21 Sep 2012 14:11:01 +0200 Subject: [PATCH] moved global map from RenderingManager to gui and removed world method --- apps/openmw/engine.cpp | 3 +-- apps/openmw/mwbase/world.hpp | 1 - apps/openmw/mwgui/map_window.cpp | 15 ++++++++++++--- apps/openmw/mwgui/map_window.hpp | 11 +++++++++-- apps/openmw/mwgui/windowmanagerimp.cpp | 5 +++-- apps/openmw/mwgui/windowmanagerimp.hpp | 4 +++- apps/openmw/mwrender/renderingmanager.cpp | 8 -------- apps/openmw/mwrender/renderingmanager.hpp | 2 -- apps/openmw/mwworld/worldimp.cpp | 5 ----- apps/openmw/mwworld/worldimp.hpp | 1 - 10 files changed, 28 insertions(+), 27 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index b526d8e0d..b86923a1d 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -339,7 +339,7 @@ void OMW::Engine::go() mEnvironment.setWindowManager (new MWGui::WindowManager( mExtensions, mFpsLevel, mNewGame, mOgre, mCfgMgr.getLogPath().string() + std::string("/"), - mScriptConsoleMode)); + mCfgMgr.getCachePath ().string(), mScriptConsoleMode)); // Create sound system mEnvironment.setSoundManager (new MWSound::SoundManager(mUseSound)); @@ -369,7 +369,6 @@ void OMW::Engine::go() pos.pos[2] = 0; mEnvironment.getWorld()->renderPlayer(); - mEnvironment.getWorld()->renderGlobalMap(); if (const ESM::Cell *exterior = MWBase::Environment::get().getWorld()->getExterior (mCellName)) { diff --git a/apps/openmw/mwbase/world.hpp b/apps/openmw/mwbase/world.hpp index ee474f357..521bbb988 100644 --- a/apps/openmw/mwbase/world.hpp +++ b/apps/openmw/mwbase/world.hpp @@ -282,7 +282,6 @@ namespace MWBase virtual void togglePlayerLooking(bool enable) = 0; virtual void renderPlayer() = 0; - virtual void renderGlobalMap() = 0; virtual void setupExternalRendering (MWRender::ExternalRendering& rendering) = 0; diff --git a/apps/openmw/mwgui/map_window.cpp b/apps/openmw/mwgui/map_window.cpp index ea7b44259..f4a387be4 100644 --- a/apps/openmw/mwgui/map_window.cpp +++ b/apps/openmw/mwgui/map_window.cpp @@ -11,6 +11,8 @@ #include "../mwbase/environment.hpp" #include "../mwworld/player.hpp" +#include "../mwrender/globalmap.hpp" + using namespace MWGui; LocalMapBase::LocalMapBase() @@ -249,12 +251,14 @@ void LocalMapBase::setPlayerDir(const float x, const float y) // ------------------------------------------------------------------------------------------ -MapWindow::MapWindow(MWBase::WindowManager& parWindowManager) : - MWGui::WindowPinnableBase("openmw_map_window.layout", parWindowManager), - mGlobal(false) +MapWindow::MapWindow(MWBase::WindowManager& parWindowManager, const std::string& cacheDir) + : MWGui::WindowPinnableBase("openmw_map_window.layout", parWindowManager) + , mGlobal(false) { setCoord(500,0,320,300); + mGlobalMapRender = new MWRender::GlobalMap(cacheDir); + getWidget(mLocalMap, "LocalMap"); getWidget(mGlobalMap, "GlobalMap"); getWidget(mGlobalMapImage, "GlobalMapImage"); @@ -277,6 +281,11 @@ MapWindow::MapWindow(MWBase::WindowManager& parWindowManager) : LocalMapBase::init(mLocalMap, mPlayerArrowLocal, this); } +MapWindow::~MapWindow() +{ + delete mGlobalMapRender; +} + void MapWindow::setCellName(const std::string& cellName) { setTitle(cellName); diff --git a/apps/openmw/mwgui/map_window.hpp b/apps/openmw/mwgui/map_window.hpp index a8b5b9cb9..a094d1862 100644 --- a/apps/openmw/mwgui/map_window.hpp +++ b/apps/openmw/mwgui/map_window.hpp @@ -3,6 +3,11 @@ #include "window_pinnable_base.hpp" +namespace MWRender +{ + class GlobalMap; +} + namespace MWGui { class LocalMapBase @@ -57,8 +62,8 @@ namespace MWGui class MapWindow : public MWGui::WindowPinnableBase, public LocalMapBase { public: - MapWindow(MWBase::WindowManager& parWindowManager); - virtual ~MapWindow(){} + MapWindow(MWBase::WindowManager& parWindowManager, const std::string& cacheDir); + virtual ~MapWindow(); void setCellName(const std::string& cellName); @@ -82,6 +87,8 @@ namespace MWGui MyGUI::Button* mEventBoxGlobal; MyGUI::Button* mEventBoxLocal; + MWRender::GlobalMap* mGlobalMapRender; + protected: virtual void onPinToggled(); }; diff --git a/apps/openmw/mwgui/windowmanagerimp.cpp b/apps/openmw/mwgui/windowmanagerimp.cpp index c8e56f2c7..e6f9e8565 100644 --- a/apps/openmw/mwgui/windowmanagerimp.cpp +++ b/apps/openmw/mwgui/windowmanagerimp.cpp @@ -50,7 +50,8 @@ using namespace MWGui; WindowManager::WindowManager( - const Compiler::Extensions& extensions, int fpsLevel, bool newGame, OEngine::Render::OgreRenderer *mOgre, const std::string& logpath, bool consoleOnlyScripts) + const Compiler::Extensions& extensions, int fpsLevel, bool newGame, OEngine::Render::OgreRenderer *mOgre, + const std::string& logpath, const std::string& cacheDir, bool consoleOnlyScripts) : mGuiManager(NULL) , mHud(NULL) , mMap(NULL) @@ -132,7 +133,7 @@ WindowManager::WindowManager( mDragAndDrop->mDragAndDropWidget = dragAndDropWidget; mMenu = new MainMenu(w,h); - mMap = new MapWindow(*this); + mMap = new MapWindow(*this, cacheDir); mStatsWindow = new StatsWindow(*this); mConsole = new Console(w,h, consoleOnlyScripts); mJournal = new JournalWindow(*this); diff --git a/apps/openmw/mwgui/windowmanagerimp.hpp b/apps/openmw/mwgui/windowmanagerimp.hpp index 47461f877..d7773e261 100644 --- a/apps/openmw/mwgui/windowmanagerimp.hpp +++ b/apps/openmw/mwgui/windowmanagerimp.hpp @@ -71,7 +71,9 @@ namespace MWGui typedef std::pair Faction; typedef std::vector FactionList; - WindowManager(const Compiler::Extensions& extensions, int fpsLevel, bool newGame, OEngine::Render::OgreRenderer *mOgre, const std::string& logpath, bool consoleOnlyScripts); + WindowManager(const Compiler::Extensions& extensions, int fpsLevel, bool newGame, + OEngine::Render::OgreRenderer *mOgre, const std::string& logpath, + const std::string& cacheDir, bool consoleOnlyScripts); virtual ~WindowManager(); /** diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index 3f1bf6826..e0d19f8bd 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -164,8 +164,6 @@ RenderingManager::RenderingManager (OEngine::Render::OgreRenderer& _rend, const mDebugging = new Debugging(mMwRoot, engine); mLocalMap = new MWRender::LocalMap(&mRendering, this); - mGlobalMap = new GlobalMap(cacheDir.string()); - setMenuTransparency(Settings::Manager::getFloat("menu transparency", "GUI")); } @@ -182,7 +180,6 @@ RenderingManager::~RenderingManager () delete mOcclusionQuery; delete mCompositors; delete mWater; - delete mGlobalMap; } MWRender::SkyManager* RenderingManager::getSkyManager() @@ -901,9 +898,4 @@ void RenderingManager::setupExternalRendering (MWRender::ExternalRendering& rend rendering.setup (mRendering.getScene()); } -void RenderingManager::renderGlobalMap () -{ - mGlobalMap->render (); -} - } // namespace diff --git a/apps/openmw/mwrender/renderingmanager.hpp b/apps/openmw/mwrender/renderingmanager.hpp index 24ec8b15b..359809b71 100644 --- a/apps/openmw/mwrender/renderingmanager.hpp +++ b/apps/openmw/mwrender/renderingmanager.hpp @@ -195,8 +195,6 @@ class RenderingManager: private RenderingInterface, public Ogre::WindowEventList void setupExternalRendering (MWRender::ExternalRendering& rendering); - void renderGlobalMap(); - protected: virtual void windowResized(Ogre::RenderWindow* rw); virtual void windowClosed(Ogre::RenderWindow* rw); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index d0fbf4bd6..e9b6e6d12 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1253,11 +1253,6 @@ namespace MWWorld mRendering->renderPlayer(mPlayer->getPlayer()); } - void World::renderGlobalMap () - { - mRendering->renderGlobalMap (); - } - void World::setupExternalRendering (MWRender::ExternalRendering& rendering) { mRendering->setupExternalRendering (rendering); diff --git a/apps/openmw/mwworld/worldimp.hpp b/apps/openmw/mwworld/worldimp.hpp index 5c5727905..90cd2151b 100644 --- a/apps/openmw/mwworld/worldimp.hpp +++ b/apps/openmw/mwworld/worldimp.hpp @@ -313,7 +313,6 @@ namespace MWWorld } virtual void renderPlayer(); - virtual void renderGlobalMap(); virtual void setupExternalRendering (MWRender::ExternalRendering& rendering);