Stage &Director::create_stage()
{
- Stage &stage = *stages.emplace_back(std::make_unique<Stage>(std::ref(reflector), std::ref(resources)));
+ Stage &stage = *stages.emplace_back(std::make_unique<Stage>(reflector, resources));
stage.add_system<TransformPropagator>();
- event_source.emit<Events::StageCreated>(std::ref(stage));
+ event_source.emit<Events::StageCreated>(stage);
return stage;
}
void Director::activate_stage(Stage &s)
{
if(active_stage)
- event_source.emit<Events::StageDeactivated>(std::ref(s));
+ event_source.emit<Events::StageDeactivated>(s);
active_stage = &s;
- event_source.emit<Events::StageActivated>(std::ref(s));
+ event_source.emit<Events::StageActivated>(s);
}
void Director::tick()
auto i = lower_bound(type);
if(i==classes.end() || (*i)->get_type()!=type)
{
- i = classes.emplace(i, std::make_unique<Class<T>>(std::ref(*this)));
+ i = classes.emplace(i, std::make_unique<Class<T>>(*this));
++generation;
}
return static_cast<Class<T> &>(*i->get());