X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Flayout.cpp;h=5f590dbb9a762473c9daa279356ddafe49061ffe;hb=975ea87cc7be179618b06291cb2506a2523cad1f;hp=338612a104e24a94567430084e61a6e0e3e4cd88;hpb=bd649cbc44e04f5e456ca19b7a32ebe479c130e1;p=r2c2.git diff --git a/source/libmarklin/layout.cpp b/source/libmarklin/layout.cpp index 338612a..5f590db 100644 --- a/source/libmarklin/layout.cpp +++ b/source/libmarklin/layout.cpp @@ -269,6 +269,7 @@ void Layout::save_trains(const string &fn) DataFile::Statement st("train"); st.append(i->second->get_locomotive_type().get_article_number()); st.append(i->second->get_address()); + st.append(i->second->get_protocol()); i->second->save(st.sub); writer.write(st); } @@ -296,8 +297,10 @@ Layout::Loader::Loader(Layout &l): add("base", &Layout::base); add("route", static_cast(&Loader::route)); add("route", static_cast(&Loader::route)); - add("track", &Loader::track); - add("train", &Loader::train); + add("track", static_cast(&Loader::track)); + add("track", static_cast(&Loader::track)); + add("train", static_cast(&Loader::train)); + add("train", static_cast(&Loader::train)); } void Layout::Loader::finish() @@ -320,6 +323,11 @@ void Layout::Loader::route(const string &n) } void Layout::Loader::track(unsigned art_nr) +{ + track(ArticleNumber(art_nr)); +} + +void Layout::Loader::track(ArticleNumber art_nr) { Track *trk = new Track(obj, obj.catalogue.get_track(art_nr)); load_sub(*trk); @@ -329,9 +337,14 @@ void Layout::Loader::track(unsigned art_nr) trk->snap_to(**i, true); } -void Layout::Loader::train(unsigned art_nr, unsigned addr) +void Layout::Loader::train(unsigned art_nr, unsigned addr, const std::string &proto) +{ + train(ArticleNumber(art_nr), addr, proto); +} + +void Layout::Loader::train(ArticleNumber art_nr, unsigned addr, const std::string &proto) { - Train *trn = new Train(obj, obj.catalogue.get_vehicle(art_nr), addr); + Train *trn = new Train(obj, obj.catalogue.get_vehicle(art_nr), addr, proto); load_sub(*trn); }