return false;
}
+void TrainRouter::set_departure_delay(const Time::TimeDelta &d)
+{
+ delay = d;
+ update_pending = true;
+}
+
void TrainRouter::message(const Message &msg)
{
if(msg.type=="set-route")
else
set_destination(*msg.value.value<const Zone *>());
}
+ else if(msg.type=="set-departure-delay")
+ set_departure_delay(msg.value.value<Time::TimeDelta>());
}
-void TrainRouter::tick(const Time::TimeDelta &)
+void TrainRouter::tick(const Time::TimeDelta &dt)
{
+ if(delay)
+ {
+ delay -= dt;
+ if(delay<=Time::zero)
+ delay = Time::zero;
+ }
+
if(update_pending)
create_plans(train.get_layout());