diff --git a/framework/engine/src/mm/services/scene_service_interface.hpp b/framework/engine/src/mm/services/scene_service_interface.hpp index 26f09cc..4386a39 100644 --- a/framework/engine/src/mm/services/scene_service_interface.hpp +++ b/framework/engine/src/mm/services/scene_service_interface.hpp @@ -26,12 +26,12 @@ namespace MM::Services { virtual ::MM::Scene& getScene(void) = 0; // enques a new Scene to be put in place - virtual void changeScene(std::unique_ptr<::MM::Scene> new_scene) = 0; + virtual void changeScene(std::unique_ptr<::MM::Scene>&& new_scene) = 0; // sets the new Scene to be provided. // dont use, except for when you know what you are doing! // be carefull of that one (lol) - virtual void changeSceneNow(std::unique_ptr<::MM::Scene> new_scene) = 0; + virtual void changeSceneNow(std::unique_ptr<::MM::Scene>&& new_scene) = 0; // adds a System to current Scene. // default impl. will use getScene() ! diff --git a/framework/simple_scene/src/mm/services/simple_scene.cpp b/framework/simple_scene/src/mm/services/simple_scene.cpp index 5c82a60..6bc81bb 100644 --- a/framework/simple_scene/src/mm/services/simple_scene.cpp +++ b/framework/simple_scene/src/mm/services/simple_scene.cpp @@ -72,7 +72,7 @@ void SimpleSceneService::changeSceneFixedUpdate(Engine& engine) { } } -void SimpleSceneService::changeScene(std::unique_ptr new_scene) { +void SimpleSceneService::changeScene(std::unique_ptr&& new_scene) { if (_next_scene) { LOG_SSS("warn: already next scene enqueued! overwriting..."); } @@ -85,7 +85,7 @@ void SimpleSceneService::changeScene(std::unique_ptr new_scene) { //} } -void SimpleSceneService::changeSceneNow(std::unique_ptr new_scene) { +void SimpleSceneService::changeSceneNow(std::unique_ptr&& new_scene) { _scene = std::move(new_scene); //_scene->set(&engine); // make engine accessible from scene diff --git a/framework/simple_scene/src/mm/services/simple_scene.hpp b/framework/simple_scene/src/mm/services/simple_scene.hpp index 79ce522..97e6ee9 100644 --- a/framework/simple_scene/src/mm/services/simple_scene.hpp +++ b/framework/simple_scene/src/mm/services/simple_scene.hpp @@ -25,10 +25,10 @@ namespace MM::Services { public: Scene& getScene(void) override { return *_scene; } - void changeScene(std::unique_ptr new_scene) override; + void changeScene(std::unique_ptr&& new_scene) override; // be carefull of that one - void changeSceneNow(std::unique_ptr new_scene) override; + void changeSceneNow(std::unique_ptr&& new_scene) override; }; } // MM::Services