X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Faicontrol.cpp;h=782993752ab94cd504261b5522a7211b936b92b5;hb=bd174b180d22a68bfa2caa35fb31d8b50fa3a750;hp=2d48bf764a3f498047a078a34965461fc2985c2d;hpb=f4e02a59008181013e57cdf2a8cf1695e89b24bb;p=r2c2.git diff --git a/source/libr2c2/aicontrol.cpp b/source/libr2c2/aicontrol.cpp index 2d48bf7..7829937 100644 --- a/source/libr2c2/aicontrol.cpp +++ b/source/libr2c2/aicontrol.cpp @@ -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);