From d1ce8ca2ecced047eb515ebdf98b85bf166725ee Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Tue, 24 Jan 2023 15:01:17 +0200 Subject: [PATCH] Add a transform propagator to stages by default This is possible now that system dependencies have been implemented. --- examples/bassteroids/source/bassteroids.cpp | 2 -- source/game/director.cpp | 8 +++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/bassteroids/source/bassteroids.cpp b/examples/bassteroids/source/bassteroids.cpp index 5e9d929..e443d5e 100644 --- a/examples/bassteroids/source/bassteroids.cpp +++ b/examples/bassteroids/source/bassteroids.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include "controls.h" #include "damagedealer.h" #include "gamecontroller.h" @@ -31,7 +30,6 @@ Bassteroids::Bassteroids(int, char **): game_stage.add_system(); game_stage.add_system(); game_stage.add_system(); - game_stage.add_system(); player_controller = &game_stage.add_system(); event_observer.observe([this](auto &e){ player_arrived(e); }); diff --git a/source/game/director.cpp b/source/game/director.cpp index 31d20a9..ef906c3 100644 --- a/source/game/director.cpp +++ b/source/game/director.cpp @@ -4,6 +4,7 @@ #include "component.h" #include "entity.h" #include "stage.h" +#include "transformpropagator.h" using namespace std; @@ -28,9 +29,10 @@ Director::~Director() Stage &Director::create_stage() { - stages.emplace_back(std::make_unique(std::ref(reflector), std::ref(resources))); - event_source.emit(std::ref(*stages.back())); - return *stages.back(); + Stage &stage = *stages.emplace_back(std::make_unique(std::ref(reflector), std::ref(resources))); + stage.add_system(); + event_source.emit(std::ref(stage)); + return stage; } void Director::activate_stage(Stage &s) -- 2.45.2