Decouple rendering simulation time from Lua simulation time (bug 7576)

macos_ci_fix
Andrei Kortunov 1 year ago
parent 0e4a599656
commit 442c032373

@ -945,7 +945,7 @@ void OMW::Engine::go()
.count()
* timeManager.getSimulationTimeScale();
mViewer->advance(timeManager.getSimulationTime());
mViewer->advance(timeManager.getRenderingSimulationTime());
if (!frame(dt))
{
@ -954,7 +954,10 @@ void OMW::Engine::go()
}
timeManager.updateIsPaused();
if (!timeManager.isPaused())
{
timeManager.setSimulationTime(timeManager.getSimulationTime() + dt);
timeManager.setRenderingSimulationTime(timeManager.getRenderingSimulationTime() + dt);
}
if (stats)
{

@ -29,7 +29,11 @@ namespace MWWorld
float getGameTimeScale() const { return mGameTimeScale; }
void setGameTimeScale(float scale); // game time to simulation time ratio
// Simulation time (the number of seconds passed from the beginning of the game).
// Rendering simulation time (summary simulation time of rendering frames since application start).
double getRenderingSimulationTime() const { return mRenderingSimulationTime; }
void setRenderingSimulationTime(double t) { mRenderingSimulationTime = t; }
// World simulation time (the number of seconds passed from the beginning of the game).
double getSimulationTime() const { return mSimulationTime; }
void setSimulationTime(double t) { mSimulationTime = t; }
float getSimulationTimeScale() const { return mSimulationTimeScale; }
@ -64,6 +68,7 @@ namespace MWWorld
float mGameHour = 0.f;
float mGameTimeScale = 0.f;
float mSimulationTimeScale = 1.0;
double mRenderingSimulationTime = 0.0;
double mSimulationTime = 0.0;
bool mPaused = false;
std::set<std::string, std::less<>> mPausedTags;

Loading…
Cancel
Save