X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fengineer.cpp;h=8c1738eb0603d4e152a20afe7344d5f4e1ba814d;hb=91385545a7d76784a17af421b0def49775be0d4c;hp=1fb4adf75653a852905aae77bafaff338d15d18e;hpb=4049f5bdacfdb61247f3c74fc5f748990be7bd4d;p=r2c2.git diff --git a/source/engineer/engineer.cpp b/source/engineer/engineer.cpp index 1fb4adf..8c1738e 100644 --- a/source/engineer/engineer.cpp +++ b/source/engineer/engineer.cpp @@ -74,7 +74,8 @@ Engineer::Engineer(int argc, char **argv): layout.signal_emergency.connect(sigc::mem_fun(this, &Engineer::set_status)); const set &blocks = layout.get_all(); for(set::const_iterator i=blocks.begin(); i!=blocks.end(); ++i) - (*i)->get_sensor().signal_state_changed.connect(sigc::hide(sigc::bind(sigc::mem_fun(this, &Engineer::reset_block_color), sigc::ref(**i)))); + if(Sensor *sensor = (*i)->get_sensor()) + sensor->signal_state_changed.connect(sigc::hide(sigc::bind(sigc::mem_fun(this, &Engineer::reset_block_color), sigc::ref(**i)))); if(FS::exists(options.state_fn)) DataFile::load(layout, options.state_fn); @@ -358,7 +359,9 @@ void Engineer::set_block_color(const Block &block, const GL::Color &color) void Engineer::reset_block_color(const Block &block) { - bool active = block.get_sensor().get_state()>Sensor::INACTIVE; + bool active = false; + if(Sensor *sensor = block.get_sensor()) + active = sensor->get_state()>Sensor::INACTIVE; if(block.get_train()) {