X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrain.cpp;h=9300267331c4e0c1f68c086f014ce5696605467b;hb=dcbe77ccf560aae2d10d645a02f6256fc0caf6f3;hp=9c56a5ddb5fc4f46147bad8645698c940683b22e;hpb=e6b7f8c4dd12199c3c5c0bec555fa73c87079729;p=r2c2.git diff --git a/source/libmarklin/train.cpp b/source/libmarklin/train.cpp index 9c56a5d..9300267 100644 --- a/source/libmarklin/train.cpp +++ b/source/libmarklin/train.cpp @@ -183,6 +183,15 @@ void Train::locomotive_reverse_changed(bool) i->entry = i->block->traverse(i->entry); reserve_more(); update_speed(); + + if(cur_track) + { + unsigned route = 0; + if(unsigned turnout = cur_track->get_turnout_id()) + route = trfc_mgr.get_control().get_turnout(turnout).get_route(); + cur_track_ep = cur_track->traverse(cur_track_ep, route); + offset = cur_track->get_type().get_route_length(route)-offset; + } } void Train::sensor_event(bool state, Sensor *sensor)