Merge pull request #340 from TES3MP/master

Add master commits up to 17 Nov 2017
new-script-api
David Cernat 7 years ago committed by GitHub
commit 7788821a69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -108,12 +108,14 @@ void OMW::Engine::executeLocalScripts()
}
}
void OMW::Engine::frame(float frametime)
bool OMW::Engine::frame(float frametime)
{
try
{
mStartTick = mViewer->getStartTick();
mEnvironment.setFrameDuration(frametime);
// update input
mEnvironment.getInputManager()->update(frametime, false);
@ -121,7 +123,7 @@ void OMW::Engine::frame(float frametime)
// If we are not currently rendering, then RenderItems will not be reused resulting in a memory leak upon changing widget textures (fixed in MyGUI 3.3.2),
// and destroyed widgets will not be deleted (not fixed yet, https://github.com/MyGUI/mygui/issues/21)
if (!mEnvironment.getInputManager()->isWindowVisible())
return;
return false;
// sound
if (mUseSound)
@ -257,8 +259,9 @@ void OMW::Engine::frame(float frametime)
}
catch (const std::exception& e)
{
std::cerr << "Error in framelistener: " << e.what() << std::endl;
std::cerr << "Error in frame: " << e.what() << std::endl;
}
return true;
}
OMW::Engine::Engine(Files::ConfigurationManager& configurationManager)
@ -817,29 +820,9 @@ void OMW::Engine::go()
frameTimer.setStartTick();
dt = std::min(dt, 0.2);
bool guiActive = mEnvironment.getWindowManager()->isGuiMode();
/*
Start of tes3mp change (major)
Whether the GUI is active should have no relevance in multiplayer, so the guiActive
boolean is always set to false instead
*/
guiActive = false;
/*
End of tes3mp change (major)
*/
if (!guiActive)
simulationTime += dt;
mViewer->advance(simulationTime);
mEnvironment.setFrameDuration(dt);
frame(dt);
if (!mEnvironment.getInputManager()->isWindowVisible())
if (!frame(dt))
{
OpenThreads::Thread::microSleep(5000);
continue;
@ -852,6 +835,22 @@ void OMW::Engine::go()
mEnvironment.getWorld()->updateWindowManager();
mViewer->renderingTraversals();
bool guiActive = mEnvironment.getWindowManager()->isGuiMode();
/*
Start of tes3mp change (major)
Whether the GUI is active should have no relevance in multiplayer, so the guiActive
boolean is always set to false instead
*/
guiActive = false;
/*
End of tes3mp change (major)
*/
if (!guiActive)
simulationTime += dt;
}
mEnvironment.limitFrameRate(frameTimer.time_s());

@ -118,7 +118,7 @@ namespace OMW
void executeLocalScripts();
void frame (float dt);
bool frame (float dt);
/// Load settings from various files, returns the path to the user settings file
std::string loadSettings (Settings::Manager & settings);

Loading…
Cancel
Save