3 #include <msp/time/utils.h>
10 Director::Director(DataFile::Collection &r):
12 event_source(event_bus)
15 // Hide ~unique_ptr<Stage> from the header
19 Stage &Director::create_stage()
21 stages.emplace_back(std::make_unique<Stage>(std::ref(resources)));
22 event_source.emit<Events::StageCreated>(std::ref(*stages.back()));
23 return *stages.back();
26 void Director::activate_stage(Stage &s)
29 event_source.emit<Events::StageDeactivated>(std::ref(s));
31 event_source.emit<Events::StageActivated>(std::ref(s));
36 Time::TimeStamp now = Time::now();
37 Time::TimeDelta dt = (last_tick ? now-last_tick : Time::zero);
40 backlog = min(backlog+dt, stepsize*max_backlog_steps);
41 for(unsigned i=0; (i<max_steps_per_frame && backlog>=stepsize); ++i, backlog-=stepsize)
42 for(const auto &s: stages)
46 } // namespace Msp::Game