From 7912b58108190ac98234af5e0d0085be496f2673 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Wed, 3 Feb 2021 16:35:37 +0100 Subject: [PATCH] change time factor behaviour to allow editing --- .../organizer_scene/src/mm/services/organizer_scene.cpp | 5 ++--- .../organizer_scene/src/mm/services/organizer_scene.hpp | 2 +- framework/simple_scene/src/mm/services/simple_scene.cpp | 7 +++---- framework/simple_scene/src/mm/services/simple_scene.hpp | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/framework/organizer_scene/src/mm/services/organizer_scene.cpp b/framework/organizer_scene/src/mm/services/organizer_scene.cpp index cb85616..cb6e67a 100644 --- a/framework/organizer_scene/src/mm/services/organizer_scene.cpp +++ b/framework/organizer_scene/src/mm/services/organizer_scene.cpp @@ -95,9 +95,8 @@ void OrganizerSceneService::sceneFixedUpdate(Engine&) { size_t continuous_counter = 0; - auto& time_ctx = _scene->ctx_or_set(f_delta, delta_factor); - time_ctx.tickDelta = f_delta * delta_factor; - time_ctx.deltaFactor = delta_factor; + auto& time_ctx = _scene->ctx_or_set(f_delta, initial_delta_factor); + time_ctx.tickDelta = f_delta * time_ctx.deltaFactor; // TODO: this while is just cancer while (_accumulator >= static_cast(dt)){ diff --git a/framework/organizer_scene/src/mm/services/organizer_scene.hpp b/framework/organizer_scene/src/mm/services/organizer_scene.hpp index bcfc846..004fd64 100644 --- a/framework/organizer_scene/src/mm/services/organizer_scene.hpp +++ b/framework/organizer_scene/src/mm/services/organizer_scene.hpp @@ -21,7 +21,7 @@ namespace MM::Services { public: const float f_delta; - float delta_factor = 1.f; + float initial_delta_factor = 1.f; public: // service explicit OrganizerSceneService(const float update_delta = 1.f/60.f) : f_delta(update_delta) {} diff --git a/framework/simple_scene/src/mm/services/simple_scene.cpp b/framework/simple_scene/src/mm/services/simple_scene.cpp index 3d4429d..a4dc079 100644 --- a/framework/simple_scene/src/mm/services/simple_scene.cpp +++ b/framework/simple_scene/src/mm/services/simple_scene.cpp @@ -60,9 +60,8 @@ void SimpleSceneService::sceneFixedUpdate(Engine&) { size_t continuous_counter = 0; - auto& time_ctx = _scene->ctx_or_set(f_delta, delta_factor); - time_ctx.tickDelta = f_delta * delta_factor; - time_ctx.deltaFactor = delta_factor; + auto& time_ctx = _scene->ctx_or_set(f_delta, initial_delta_factor); + time_ctx.tickDelta = f_delta * time_ctx.deltaFactor; // TODO: this is just cancer while (_accumulator >= static_cast(dt)){ @@ -70,7 +69,7 @@ void SimpleSceneService::sceneFixedUpdate(Engine&) { continuous_counter++; ::MM::EachSystemInScene(*_scene, [&](::MM::Scene& s, ::MM::System& fn) { - fn(s, f_delta * delta_factor); + fn(s, time_ctx.tickDelta); }); TracyPlot("MM::Services::SimpleSceneService::_scene.alive", (int64_t)_scene->alive()); diff --git a/framework/simple_scene/src/mm/services/simple_scene.hpp b/framework/simple_scene/src/mm/services/simple_scene.hpp index 1add1c9..d84984b 100644 --- a/framework/simple_scene/src/mm/services/simple_scene.hpp +++ b/framework/simple_scene/src/mm/services/simple_scene.hpp @@ -19,7 +19,7 @@ namespace MM::Services { public: const float f_delta; - float delta_factor = 1.f; + float initial_delta_factor = 1.f; public: explicit SimpleSceneService(const float update_delta = 1.f/60.f) : f_delta(update_delta) {}