]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/blockallocator.cpp
Split vehicle placement code to a separate class
[r2c2.git] / source / libr2c2 / blockallocator.cpp
index 347960ee2ec584029a7bc66dffaaabb56de0cdad..547415aa965173ad5eeb68fb0966eceb6aff000c 100644 (file)
@@ -316,8 +316,9 @@ void BlockAllocator::advance_front(const Sensor *sensor)
 
 void BlockAllocator::advance_back()
 {
-       const Vehicle &veh = train.get_vehicle(train.get_controller().get_reverse() ? 0 : train.get_n_vehicles()-1);
-       const Block &veh_block = veh.get_track()->get_block();
+       bool rev = train.get_controller().get_reverse();
+       const Vehicle &veh = train.get_vehicle(rev ? 0 : train.get_n_vehicles()-1);
+       const Block &veh_block = veh.get_placement().get_position(rev ? VehiclePlacement::FRONT_AXLE : VehiclePlacement::BACK_AXLE)->get_block();
 
        /* Sensors aren't guaranteed to be detriggered in order.  Go through the
        block list and locate the first sensor that's still active. */