X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrack.cpp;h=05f9f2f717c1044b47446b73aeab0ac01f68b73b;hb=97443d96ff3ce51388d2edd1e0dca8f2cd231346;hp=208d40f10cdbbdfe09e81f6457c1a29a3da1a7c8;hpb=9ddcd066e37e4c72685817c042c30897786ece05;p=r2c2.git diff --git a/source/libmarklin/track.cpp b/source/libmarklin/track.cpp index 208d40f..05f9f2f 100644 --- a/source/libmarklin/track.cpp +++ b/source/libmarklin/track.cpp @@ -130,8 +130,10 @@ void Track::set_active_path(unsigned p) throw InvalidParameterValue("Invalid path"); layout.get_driver().set_turnout(turnout_id, p&1); - if(type.get_n_paths()>2) + if(type.is_double_address()) layout.get_driver().set_turnout(turnout_id+1, p&2); + else if(type.get_n_paths()>2) + active_path = (active_path&1) | (p&2); } int Track::get_endpoint_by_link(const Track &other) const