X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Ftrain.cpp;h=b2a49c722e7732938cfce5ed3cdefa95b5838d9b;hb=32739f060d1c025756b3ed702da1cbbdd6793064;hp=25dcae97da9580cea1946315674fb9bd36c5c3ed;hpb=42f767669d9fa699e1fd58a62548b62f5c93a87b;p=r2c2.git diff --git a/source/libr2c2/train.cpp b/source/libr2c2/train.cpp index 25dcae9..b2a49c7 100644 --- a/source/libr2c2/train.cpp +++ b/source/libr2c2/train.cpp @@ -422,13 +422,9 @@ void Train::loco_func_event(unsigned addr, unsigned func, bool state) void Train::sensor_state_changed(Sensor &sensor, Sensor::State state) { - Block *block = 0; - if(TrackCircuit *tc = dynamic_cast(&sensor)) - block = &tc->get_block(); - else - return; + Block *block = sensor.get_block(); - if(block->get_train()==this && state==Sensor::MAYBE_ACTIVE) + if(block && block->get_train()==this && state==Sensor::MAYBE_ACTIVE) { if(last_entry_block) {