diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index b1c1311bc..426300149 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -709,6 +709,9 @@ void OMW::Engine::go() { mViewer->eventTraversal(); mViewer->updateTraversal(); + + mEnvironment.getWorld()->updateWindowManager(); + mViewer->renderingTraversals(); } diff --git a/apps/openmw/mwbase/world.hpp b/apps/openmw/mwbase/world.hpp index 691891486..5e76d82eb 100644 --- a/apps/openmw/mwbase/world.hpp +++ b/apps/openmw/mwbase/world.hpp @@ -358,6 +358,8 @@ namespace MWBase virtual void update (float duration, bool paused) = 0; + virtual void updateWindowManager () = 0; + virtual MWWorld::Ptr placeObject (const MWWorld::ConstPtr& object, float cursorX, float cursorY, int amount) = 0; ///< copy and place an object into the gameworld at the specified cursor position /// @param object diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 6c9cdb394..c6d37b34c 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1624,16 +1624,14 @@ namespace MWWorld if (!paused) doPhysics (duration); + updatePlayer(paused); + mPhysics->debugDraw(); mWorldScene->update (duration, paused); - updateWindowManager (); - updateSoundListener(); - updatePlayer(paused); - mSpellPreloadTimer -= duration; if (mSpellPreloadTimer <= 0.f) { diff --git a/apps/openmw/mwworld/worldimp.hpp b/apps/openmw/mwworld/worldimp.hpp index 6fa7d897a..a15dcaf3d 100644 --- a/apps/openmw/mwworld/worldimp.hpp +++ b/apps/openmw/mwworld/worldimp.hpp @@ -130,7 +130,6 @@ namespace MWWorld Ptr copyObjectToCell(const ConstPtr &ptr, CellStore* cell, ESM::Position pos, int count, bool adjustPos); void updateSoundListener(); - void updateWindowManager (); void updatePlayer(bool paused); void preloadSpells(); @@ -461,6 +460,8 @@ namespace MWWorld virtual void update (float duration, bool paused); + virtual void updateWindowManager (); + virtual MWWorld::Ptr placeObject (const MWWorld::ConstPtr& object, float cursorX, float cursorY, int amount); ///< copy and place an object into the gameworld at the specified cursor position /// @param object