]> git.tdb.fi Git - libs/game.git/commitdiff
Make Presenter store pointers to systems, not just renderers
authorMikko Rasa <tdb@tdb.fi>
Sat, 11 Feb 2023 13:19:00 +0000 (15:19 +0200)
committerMikko Rasa <tdb@tdb.fi>
Sat, 11 Feb 2023 13:19:00 +0000 (15:19 +0200)
source/gameview/presenter.cpp
source/gameview/presenter.h

index c65e2a919c4b64f6babc93a25b41360c365312fc..194ac80638f17c4698aef68ecf1488d33b2428b0 100644 (file)
@@ -22,14 +22,14 @@ Presenter::Presenter(Game::Director &d, GL::View &v):
 
 Presenter::~Presenter()
 {
-       for(Renderer *r: renderers)
-               r->get_stage().remove_system(*r);
+       for(Game::System *s: systems)
+               s->get_stage().remove_system(*s);
 }
 
 void Presenter::stage_activated(const Game::Events::StageActivated &event)
 {
        if(!event.stage.get_system<Renderer>())
-               renderers.push_back(&event.stage.add_system<Renderer>(ref(gl_view)));
+               systems.push_back(&event.stage.add_system<Renderer>(ref(gl_view)));
 }
 
 } // namespace Msp::GameView
index 62f422ce1e9728a81f4a8051274617c1af5ad1b6..f227d283cf7674b16f537695bee5e0b086bc3f78 100644 (file)
@@ -4,13 +4,12 @@
 #include <msp/datafile/collection.h>
 #include <msp/game/director.h>
 #include <msp/game/eventobserver.h>
+#include <msp/game/system.h>
 #include <msp/gl/view.h>
 #include "mspgameview_api.h"
 
 namespace Msp::GameView {
 
-class Renderer;
-
 class MSPGAMEVIEW_API Presenter
 {
 private:
@@ -18,7 +17,7 @@ private:
        GL::View &gl_view;
        DataFile::Collection &resources;
        Game::EventObserver event_observer;
-       std::vector<Renderer *> renderers;
+       std::vector<Game::System *> systems;
 
 public:
        Presenter(Game::Director &, GL::View &);