X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Fvehicle.cpp;h=8761bb6f9f80bfc9a906da113ac3c7ff38adf8d7;hb=59e4c75da550e96ae74162a5ed70e8b1999721d8;hp=d81848076c5984a26928873a49b13023785817d1;hpb=d01230572abde870055844b6efaa777a2ba93226;p=r2c2.git diff --git a/source/libmarklin/vehicle.cpp b/source/libmarklin/vehicle.cpp index d818480..8761bb6 100644 --- a/source/libmarklin/vehicle.cpp +++ b/source/libmarklin/vehicle.cpp @@ -48,6 +48,9 @@ void Vehicle::attach_back(Vehicle &veh) next = &veh; veh.prev = this; + + if(track_pos.track) + propagate_backward(); } void Vehicle::attach_front(Vehicle &veh) @@ -55,8 +58,11 @@ void Vehicle::attach_front(Vehicle &veh) if(prev || veh.next) throw InvalidState("Already attached"); - next = &veh; - veh.prev = this; + prev = &veh; + veh.next = this; + + if(prev->get_track()) + prev->propagate_backward(); } void Vehicle::detach_back()