X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fengineer.cpp;h=fb0502dbfde6d7f4df131c368006b58967d027c7;hb=0d0b5fcbaf3e8eb1cbfd9764d19792c4383cce7b;hp=49edd48d0d86b7cd8e4bdae246e62c72637d0188;hpb=2220ba2f11705ea9a4e480603d43ab7ed4cf5a89;p=r2c2.git diff --git a/source/engineer/engineer.cpp b/source/engineer/engineer.cpp index 49edd48..fb0502d 100644 --- a/source/engineer/engineer.cpp +++ b/source/engineer/engineer.cpp @@ -121,17 +121,15 @@ Engineer::Engineer(int argc, char **argv): Engineer::~Engineer() { - const map &trains = layout.get_trains(); - for(map::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; @@ -198,7 +196,7 @@ void Engineer::button_press(unsigned btn) Object *obj = pick_object(pointer); if(Track *track = dynamic_cast(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))