void add_ai(TrainAI &);
void remove_ai(TrainAI &);
- TrainAI *get_tagged_ai(const std::string &) const;
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;
+ }
+
void place(Block &, unsigned);
void unplace();
bool is_placed() const { return !blocks.empty(); }