]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/layout.cpp
Make LCD output selectable at runtime through an extra I/O pin
[r2c2.git] / source / libmarklin / layout.cpp
index 25568d6e6fb23d51e86ad003cf36d12c466314b9..5f590dbb9a762473c9daa279356ddafe49061ffe 100644 (file)
@@ -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);
        }
@@ -298,8 +299,8 @@ Layout::Loader::Loader(Layout &l):
        add("route", static_cast<void (Loader::*)(const string &)>(&Loader::route));
        add("track", static_cast<void (Loader::*)(unsigned)>(&Loader::track));
        add("track", static_cast<void (Loader::*)(ArticleNumber)>(&Loader::track));
-       add("train", static_cast<void (Loader::*)(unsigned, unsigned)>(&Loader::train));
-       add("train", static_cast<void (Loader::*)(ArticleNumber, unsigned)>(&Loader::train));
+       add("train", static_cast<void (Loader::*)(unsigned, unsigned, const std::string &)>(&Loader::train));
+       add("train", static_cast<void (Loader::*)(ArticleNumber, unsigned, const std::string &)>(&Loader::train));
 }
 
 void Layout::Loader::finish()
@@ -336,14 +337,14 @@ void Layout::Loader::track(ArticleNumber 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);
+       train(ArticleNumber(art_nr), addr, proto);
 }
 
-void Layout::Loader::train(ArticleNumber art_nr, unsigned addr)
+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);
 }