X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrain.h;h=b72fbf635c1d613c8e7f4aab07333dc4fb29eed3;hb=251270c97a5e5eb8630bc1662a406255dedae90e;hp=330eadd32e93f6f504963b8429eea4c1d8803334;hpb=7e27b311e33beda1746eb63e0945633f262427f6;p=r2c2.git diff --git a/source/libr2c2/train.h b/source/libr2c2/train.h index 330eadd..b72fbf6 100644 --- a/source/libr2c2/train.h +++ b/source/libr2c2/train.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of R²C² -Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa +Copyright © 2006-2011 Mikkosoft Productions, Mikko Rasa Distributed under the GPL */ @@ -19,6 +19,7 @@ namespace R2C2 { class ArticleNumber; class Route; +class SpeedQuantizer; class Timetable; class Vehicle; class VehicleType; @@ -40,7 +41,7 @@ public: void block(unsigned); void block_hint(unsigned); void name(const std::string &); - void real_speed(unsigned, float, float); + void quantized_speed(); void route(const std::string &); void timetable(); void vehicle(ArticleNumber); @@ -50,6 +51,7 @@ public: sigc::signal signal_control_changed; sigc::signal signal_function_changed; sigc::signal signal_route_changed; + sigc::signal signal_advanced; sigc::signal signal_arrived; sigc::signal signal_status_changed; @@ -62,15 +64,6 @@ private: RouteRef(const Route *, unsigned = 0); }; - struct RealSpeed - { - float speed; - float weight; - - RealSpeed(); - void add(float, float); - }; - typedef std::list BlockList; Layout &layout; @@ -80,6 +73,7 @@ private: std::string name; int priority; const Train *yielding_to; + const Train *preceding_train; std::vector vehicles; BlockList blocks; BlockList::iterator cur_blocks_end; @@ -102,7 +96,7 @@ private: Msp::Time::TimeStamp last_entry_time; float travel_dist; bool pure_speed; - std::vector real_speed; + SpeedQuantizer *speed_quantizer; bool accurate_position; float overshoot_dist; @@ -119,6 +113,7 @@ public: void set_priority(int); void yield_to(const Train &); int get_priority() const { return priority; } + const Train *get_preceding_train() const { return preceding_train; } Controller &get_controller() const { return *controller; } void add_vehicle(const VehicleType &);