+ if(train.waypoint>=0 && router.is_waypoint(train.waypoint, *train.track) && !router.is_waypoint(train.waypoint, *next_track))
+ {
+ ++next.trains[train_index].waypoint;
+ if(next.trains[train_index].waypoint>=static_cast<int>(router.get_n_waypoints()))
+ next.trains[train_index].waypoint = -1;
+ }
+