Useful for testing long timetables. Will cause problems if used with a
physical layout; currently there are no checks to prevent it.
process_new_train(**i);
new_trains.clear();
process_new_train(**i);
new_trains.clear();
+ layout.tick(options.sim_speed);
layout_3d.tick();
event_disp.tick(Time::zero);
layout_3d.tick();
event_disp.tick(Time::zero);
fullscreen(false),
debug(false),
network(false),
fullscreen(false),
debug(false),
network(false),
+ simulate(false),
+ sim_speed(1.0f)
getopt.add_option('g', "debug", debug, GetOpt::NO_ARG);
getopt.add_option('d', "driver", driver, GetOpt::REQUIRED_ARG);
getopt.add_option('s', "simulate", simulate, GetOpt::NO_ARG);
getopt.add_option('g', "debug", debug, GetOpt::NO_ARG);
getopt.add_option('d', "driver", driver, GetOpt::REQUIRED_ARG);
getopt.add_option('s', "simulate", simulate, GetOpt::NO_ARG);
+ getopt.add_option( "sim-speed", sim_speed, GetOpt::REQUIRED_ARG);
getopt.add_option('n', "network", network, GetOpt::NO_ARG);
getopt.add_option( "state", state_fn, GetOpt::REQUIRED_ARG);
getopt(argc, argv);
getopt.add_option('n', "network", network, GetOpt::NO_ARG);
getopt.add_option( "state", state_fn, GetOpt::REQUIRED_ARG);
getopt(argc, argv);
std::string driver;
bool network;
bool simulate;
std::string driver;
bool network;
bool simulate;
std::string layout_fn;
std::string state_fn;
std::string layout_fn;
std::string state_fn;
signal_train_removed.emit(t);
}
signal_train_removed.emit(t);
}
+void Layout::tick(float speed)
{
if(driver)
driver->tick();
{
if(driver)
driver->tick();
dt = t-last_tick;
last_tick = t;
dt = t-last_tick;
last_tick = t;
unsigned count = dt/(10*Time::msec)+1;
dt /= count;
while(count--)
unsigned count = dt/(10*Time::msec)+1;
dt /= count;
while(count--)
const std::map<unsigned, Train *> &get_trains() const { return trains; }
void remove_train(Train &);
const std::map<unsigned, Train *> &get_trains() const { return trains; }
void remove_train(Train &);
+ void tick(float = 1.0f);
private:
void step(const Msp::Time::TimeDelta &);
public:
private:
void step(const Msp::Time::TimeDelta &);
public: