Engineer::~Engineer()
{
- const map<unsigned, Train *> &trains = layout.get_trains();
- for(map<unsigned, Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
- layout.get_driver().set_loco_speed(i->first, 0);
- layout.get_driver().flush();
-
if(!options.simulate)
{
layout.save_dynamic(options.state_fn+".tmp");
FS::rename(options.state_fn+".tmp", options.state_fn);
}
+ layout.get_driver().halt(true);
+ layout.get_driver().flush();
+
delete overlay;
delete root_arrangement;
delete root;
Object *obj = pick_object(pointer);
if(Track *track = dynamic_cast<Track *>(obj))
{
- if(track->get_turnout_address())
+ if(track->get_type().is_turnout())
{
Block &block = track->get_block();
if(block.get_train() && block.get_train()->is_block_critical(block))