signal_train_removed.emit(t);
}
-void Layout::tick()
+void Layout::tick(float speed)
{
if(driver)
driver->tick();
dt = t-last_tick;
last_tick = t;
+ dt *= speed;
+ unsigned count = dt/(10*Time::msec)+1;
+ dt /= count;
+ while(count--)
+ step(dt);
+}
+
+void Layout::step(const Time::TimeDelta &dt)
+{
if(!driver || !driver->is_halted())
clock.tick(dt);