+ void add_ai(TrainAI &);
+ void remove_ai(TrainAI &);
+ void ai_message(const TrainAI::Message &);
+
+ template<typename T>
+ T *get_ai_of_type() const
+ {
+ for(std::list<TrainAI *>::const_iterator i=ais.begin(); i!=ais.end(); ++i)
+ if(T *ai = dynamic_cast<T *>(*i))
+ return ai;
+ return 0;
+ }