X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibmarklin%2Ftrain.h;h=f9dba5dfbabb68339fd71ddc3fd4a0fd353ff816;hb=f7ee3202102bfa67fdb6ad93c4f0f90f4c8ffb2c;hp=a89dc93c6addca56ff07ab23b0bd3b10cca6e404;hpb=d27edb207810f0b4e44be8c3632d421faa5fed80;p=r2c2.git diff --git a/source/libmarklin/train.h b/source/libmarklin/train.h index a89dc93..f9dba5d 100644 --- a/source/libmarklin/train.h +++ b/source/libmarklin/train.h @@ -17,6 +17,7 @@ namespace Marklin { class LocoType; class Route; +class Vehicle; class Train: public sigc::trackable { @@ -50,7 +51,8 @@ private: Block *block; unsigned entry; - BlockRef(Block *s, unsigned e): block(s), entry(e) { } + BlockRef(Block *, unsigned); + BlockRef next() const; }; struct RealSpeed @@ -66,6 +68,7 @@ private: const LocoType &loco_type; unsigned address; std::string name; + std::vector vehicles; std::list cur_blocks; std::list rsv_blocks; Block *pending_block; @@ -75,6 +78,7 @@ private: Msp::Time::TimeStamp stop_timeout; unsigned functions; const Route *route; + const Route *next_route; bool end_of_route; std::string status; @@ -84,11 +88,6 @@ private: bool pure_speed; std::vector real_speed; - Track *cur_track; - unsigned cur_track_ep; - float offset; - Point pos; - public: Train(Layout &, const LocoType &, unsigned); ~Train(); @@ -98,6 +97,9 @@ public: void set_name(const std::string &); const std::string &get_name() const { return name; } + Vehicle &get_vehicle(unsigned); + const Vehicle &get_vehicle(unsigned) const; + void set_speed(unsigned); void set_reverse(bool); void set_function(unsigned, bool); @@ -116,7 +118,6 @@ public: int get_entry_to_block(Block &) const; const std::string &get_status() const { return status; } - const Point &get_position() const { return pos; } void tick(const Msp::Time::TimeStamp &, const Msp::Time::TimeDelta &);