diff --git a/framework/organizer_scene/src/mm/services/organizer_scene.cpp b/framework/organizer_scene/src/mm/services/organizer_scene.cpp index aceb409..9741109 100644 --- a/framework/organizer_scene/src/mm/services/organizer_scene.cpp +++ b/framework/organizer_scene/src/mm/services/organizer_scene.cpp @@ -1,4 +1,5 @@ #include "./organizer_scene.hpp" +#include "mm/engine.hpp" #include @@ -51,7 +52,7 @@ bool OrganizerSceneService::enable(Engine& engine, std::vector(); - _scene->set(&engine); + _scene->set(engine); updateOrganizerVertices(*_scene); } @@ -98,7 +99,9 @@ void OrganizerSceneService::changeSceneFixedUpdate(Engine& engine) { if (_next_scene) { LOG_OSS("changing scene..."); _scene = std::move(_next_scene); - _scene->set(&engine); // make engine accessible from scene + if (!_scene->try_ctx()) { + _scene->set(engine); // make engine accessible from scene + } updateOrganizerVertices(*_scene); } } diff --git a/systems/player_velocity/src/mm/systems/player_velocity2d_system.cpp b/systems/player_velocity/src/mm/systems/player_velocity2d_system.cpp index c70f5b2..9416f0e 100644 --- a/systems/player_velocity/src/mm/systems/player_velocity2d_system.cpp +++ b/systems/player_velocity/src/mm/systems/player_velocity2d_system.cpp @@ -6,10 +6,10 @@ namespace MM::Systems { -void player_velocity2d(entt::view> view, const MM::Engine* engine) { +void player_velocity2d(entt::view> view, MM::Engine& engine) { ZoneScopedN("MM::Systems::PlayerVelocity2D"); - auto& input_ss = engine->getService(); + auto& input_ss = engine.getService(); view.each([&input_ss](const MM::Input::PlayerID p_id, MM::Components::Velocity2DPositionIntent& v) { v.intent = input_ss.getMoveVec(p_id); diff --git a/systems/player_velocity/src/mm/systems/player_velocity2d_system.hpp b/systems/player_velocity/src/mm/systems/player_velocity2d_system.hpp index e316aad..08dd9b5 100644 --- a/systems/player_velocity/src/mm/systems/player_velocity2d_system.hpp +++ b/systems/player_velocity/src/mm/systems/player_velocity2d_system.hpp @@ -7,7 +7,7 @@ namespace MM::Systems { // this system transforms the input from the input_service into velocity intent - void player_velocity2d(entt::view> view, const MM::Engine* engine); + void player_velocity2d(entt::view> view, MM::Engine& engine); } // MM::Systems diff --git a/systems/player_velocity/test/player_velocity_test.cpp b/systems/player_velocity/test/player_velocity_test.cpp index 8195e07..0fcb765 100644 --- a/systems/player_velocity/test/player_velocity_test.cpp +++ b/systems/player_velocity/test/player_velocity_test.cpp @@ -26,7 +26,7 @@ TEST(player_velocity, basic_run) { bool provide_ret = engine.provide(); ASSERT_TRUE(provide_ret); - auto& scene = engine.tryService()->getScene(); + auto& scene = engine.getService().getScene(); // setup v system auto& org = scene.set();