]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/blockallocator.cpp
Add a virtual get_block function to Sensor
[r2c2.git] / source / libr2c2 / blockallocator.cpp
index 022a8df230ee72e8e2185e36624ac13f5928b64b..fc2705cd58d81bc5e5ec8060b4f03653d753f6b0 100644 (file)
@@ -343,13 +343,8 @@ void BlockAllocator::block_reserved(Block &block, const Train *tr)
 
 void BlockAllocator::sensor_state_changed(Sensor &sensor, Sensor::State state)
 {
-       Block *block = 0;
-       if(TrackCircuit *tc = dynamic_cast<TrackCircuit *>(&sensor))
-               block = &tc->get_block();
-       else
-               return;
-
-       if(block->get_train()!=&train)
+       Block *block = sensor.get_block();
+       if(!block || block->get_train()!=&train)
                return;
 
        if(state==Sensor::MAYBE_ACTIVE)