]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/train.cpp
Add state loading and saving to engineer
[r2c2.git] / source / libmarklin / train.cpp
index f55d7ad4ea79fbff8acdc522aee39e231909887f..f8ef1715dbc5aa6d7a6a33bd476bb9db510d0939 100644 (file)
@@ -139,6 +139,12 @@ void Train::tick(const Time::TimeStamp &t, const Time::TimeDelta &dt)
        }
 }
 
+void Train::save(list<DataFile::Statement> &st) const
+{
+       st.push_back((DataFile::Statement("name"), name));
+       st.push_back((DataFile::Statement("speed_scale"), speed_scale, speed_scale_weight));
+}
+
 void Train::sensor_event(bool state, Sensor *sensor)
 {
        unsigned addr=sensor->get_address();
@@ -306,4 +312,12 @@ void Train::set_position(const Block::Endpoint &bep)
        pos=cur_track->get_endpoint_position(cur_track_ep);
 }
 
+
+Train::Loader::Loader(Train &t):
+       DataFile::BasicLoader<Train>(t)
+{
+       add("name",        &Train::name);
+       add("speed_scale", &Train::speed_scale, &Train::speed_scale_weight);
+}
+
 } // namespace Marklin