/* $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
*/
class ArticleNumber;
class Route;
+class SpeedQuantizer;
class Timetable;
class Vehicle;
class VehicleType;
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);
sigc::signal<void, const std::string &, float> signal_control_changed;
sigc::signal<void, unsigned, bool> signal_function_changed;
sigc::signal<void, const Route *> signal_route_changed;
+ sigc::signal<void, Block &> signal_advanced;
sigc::signal<void> signal_arrived;
sigc::signal<void, const std::string &> signal_status_changed;
RouteRef(const Route *, unsigned = 0);
};
- struct RealSpeed
- {
- float speed;
- float weight;
-
- RealSpeed();
- void add(float, float);
- };
-
typedef std::list<BlockIter> BlockList;
Layout &layout;
std::string name;
int priority;
const Train *yielding_to;
+ const Train *preceding_train;
std::vector<Vehicle *> vehicles;
BlockList blocks;
BlockList::iterator cur_blocks_end;
Msp::Time::TimeStamp last_entry_time;
float travel_dist;
bool pure_speed;
- std::vector<RealSpeed> real_speed;
+ SpeedQuantizer *speed_quantizer;
bool accurate_position;
float overshoot_dist;
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 &);