]> git.tdb.fi Git - libs/game.git/blobdiff - source/game/director.cpp
Enforce no creation or destruction of objects during tick
[libs/game.git] / source / game / director.cpp
index 28d86e7d142e23142839e186b8b4613c6299d8f6..4a4c1265e82d12ba897f65f1879b8db8f6b7ac33 100644 (file)
@@ -7,13 +7,22 @@ using namespace std;
 
 namespace Msp::Game {
 
-Director::Director():
+Director::Director(DataFile::Collection &r):
+       resources(r),
        event_source(event_bus)
+{
+#if DEBUG
+       access_guard.emplace();
+#endif
+}
+
+// Hide ~unique_ptr<Stage> from the header
+Director::~Director()
 { }
 
 Stage &Director::create_stage()
 {
-       stages.emplace_back(std::make_unique<Stage>());
+       stages.emplace_back(std::make_unique<Stage>(std::ref(resources)));
        event_source.emit<Events::StageCreated>(std::ref(*stages.back()));
        return *stages.back();
 }