]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/aicontrol.cpp
Add control enumeration to Controller
[r2c2.git] / source / libr2c2 / aicontrol.cpp
index 2d48bf764a3f498047a078a34965461fc2985c2d..782993752ab94cd504261b5522a7211b936b92b5 100644 (file)
@@ -32,9 +32,24 @@ AIControl::~AIControl()
        delete next_ctrl;
 }
 
+const char *AIControl::enumerate_controls(unsigned index) const
+{
+       if(index==0)
+               return target_speed.name.c_str();
+       else
+       {
+               for(--index;; ++index)
+               {
+                       const char *ret = next_ctrl->enumerate_controls(index-1);
+                       if(!ret || ret!=target_speed.name)
+                               return ret;
+               }
+       }
+}
+
 void AIControl::set_control(const string &n, float v)
 {
-       if(n=="speed")
+       if(n==target_speed.name)
        {
                if(v && !train.is_active())
                        train.set_active(true);
@@ -57,7 +72,7 @@ void AIControl::set_control(const string &n, float v)
 
 const Controller::Control &AIControl::get_control(const string &n) const
 {
-       if(n=="speed")
+       if(n==target_speed.name)
                return target_speed;
        else
                return next_ctrl->get_control(n);