}
}
- if(active)
- reserve_more();
+ reserve_more();
signal_route_changed.emit(route);
}
if(pure_speed)
{
- RealSpeed &rs = real_speed[current_speed];
- rs.add(travel_dist/travel_time_secs, travel_time_secs);
+ if(current_speed)
+ {
+ RealSpeed &rs = real_speed[current_speed];
+ rs.add(travel_dist/travel_time_secs, travel_time_secs);
+ }
set_status(format("Traveling %d kmh", get_travel_speed()));
}
unsigned Train::reserve_more()
{
+ if(!active)
+ return 0;
+
BlockRef *last = 0;
if(!rsv_blocks.empty())
last = &rsv_blocks.back();
if(!high)
{
if(!low)
- return 0;
+ {
+ if(real)
+ return 3;
+ else
+ return 0;
+ }
return min(static_cast<unsigned>(low*real/real_speed[low].speed), 14U);
}