-/* $Id$
-
-This file is part of R²C²
-Copyright © 2011 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#ifndef LIBR2C2_TRAINAI_H_
#define LIBR2C2_TRAINAI_H_
AIs can help the user in various ways, ranging from automatically stopping the
train at the end of allocated track to autonomously running a train.
-
-XXX The timestamp should be removed from tick, but Timetable depends on it
*/
class TrainAI
{
protected:
Train &train;
- std::string tag;
TrainAI(Train &);
public:
virtual ~TrainAI();
- void set_tag(const std::string &);
- const std::string &get_tag() const { return tag; }
-
virtual void message(const Message &) { }
- virtual void tick(const Msp::Time::TimeStamp &, const Msp::Time::TimeDelta &) { }
+ virtual void tick(const Msp::Time::TimeDelta &) = 0;
+ virtual bool has_intent_to_move() const { return false; }
};
} // namespace R2C2