#include "block.h"
#include "blockiter.h"
#include "controller.h"
+#include "trainai.h"
namespace R2C2 {
class ArticleNumber;
class Route;
class SpeedQuantizer;
-class Timetable;
class Vehicle;
class VehicleType;
class Zone;
sigc::signal<void, const std::string &> signal_name_changed;
sigc::signal<void, const std::string &, float> signal_control_changed;
sigc::signal<void, unsigned, bool> signal_function_changed;
+ sigc::signal<void, TrainAI &, const TrainAI::Message &> signal_ai_event;
sigc::signal<void, const Route *> signal_route_changed;
sigc::signal<void, Block &> signal_advanced;
sigc::signal<void> signal_arrived;
bool reserving;
bool advancing;
Controller *controller;
- Timetable *timetable;
+ std::list<TrainAI *> ais;
bool active;
unsigned current_speed_step;
bool speed_changing;
bool get_function(unsigned) const;
unsigned get_functions() const { return functions; }
- void set_timetable(Timetable *);
- Timetable *get_timetable() { return timetable; }
+ void add_ai(TrainAI &);
+ void remove_ai(TrainAI &);
+ TrainAI *get_tagged_ai(const std::string &);
+ void ai_message(const TrainAI::Message &);
bool set_route(const Route *);
bool go_to(Track &);