mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-04-01 12:06:43 +00:00
don't run udpates if no game is running
This commit is contained in:
parent
ec5b2e9a7e
commit
c5f81e3508
1 changed files with 19 additions and 18 deletions
|
@ -92,30 +92,31 @@ bool OMW::Engine::frameRenderingQueued (const Ogre::FrameEvent& evt)
|
||||||
MWBase::Environment::get().getSoundManager()->update(frametime);
|
MWBase::Environment::get().getSoundManager()->update(frametime);
|
||||||
|
|
||||||
// global scripts
|
// global scripts
|
||||||
|
if (MWBase::Environment::get().getStateManager()->isGameRunning())
|
||||||
|
{
|
||||||
MWBase::Environment::get().getScriptManager()->getGlobalScripts().run();
|
MWBase::Environment::get().getScriptManager()->getGlobalScripts().run();
|
||||||
|
|
||||||
bool changed = MWBase::Environment::get().getWorld()->hasCellChanged();
|
bool changed = MWBase::Environment::get().getWorld()->hasCellChanged();
|
||||||
|
|
||||||
// local scripts
|
// local scripts
|
||||||
executeLocalScripts(); // This does not handle the case where a global script causes a cell
|
executeLocalScripts(); // This does not handle the case where a global script causes a
|
||||||
// change, followed by a cell change in a local script during the same
|
// cell change, followed by a cell change in a local script during
|
||||||
// frame.
|
// the same frame.
|
||||||
|
|
||||||
|
if (changed) // keep change flag for another frame, if cell changed happened in local script
|
||||||
|
MWBase::Environment::get().getWorld()->markCellAsUnchanged();
|
||||||
|
|
||||||
// passing of time
|
|
||||||
if (!MWBase::Environment::get().getWindowManager()->isGuiMode())
|
if (!MWBase::Environment::get().getWindowManager()->isGuiMode())
|
||||||
MWBase::Environment::get().getWorld()->advanceTime(
|
MWBase::Environment::get().getWorld()->advanceTime(
|
||||||
frametime*MWBase::Environment::get().getWorld()->getTimeScaleFactor()/3600);
|
frametime*MWBase::Environment::get().getWorld()->getTimeScaleFactor()/3600);
|
||||||
|
|
||||||
|
|
||||||
if (changed) // keep change flag for another frame, if cell changed happend in local script
|
|
||||||
MWBase::Environment::get().getWorld()->markCellAsUnchanged();
|
|
||||||
|
|
||||||
// update actors
|
// update actors
|
||||||
MWBase::Environment::get().getMechanicsManager()->update(frametime,
|
MWBase::Environment::get().getMechanicsManager()->update(frametime,
|
||||||
MWBase::Environment::get().getWindowManager()->isGuiMode());
|
MWBase::Environment::get().getWindowManager()->isGuiMode());
|
||||||
|
|
||||||
// update world
|
// update world
|
||||||
MWBase::Environment::get().getWorld()->update(frametime, MWBase::Environment::get().getWindowManager()->isGuiMode());
|
MWBase::Environment::get().getWorld()->update(frametime, MWBase::Environment::get().getWindowManager()->isGuiMode());
|
||||||
|
}
|
||||||
|
|
||||||
// update GUI
|
// update GUI
|
||||||
Ogre::RenderWindow* window = mOgre->getWindow();
|
Ogre::RenderWindow* window = mOgre->getWindow();
|
||||||
|
|
Loading…
Reference in a new issue