From: Mikko Rasa Date: Sun, 30 Jun 2013 20:19:38 +0000 (+0300) Subject: Count reserved distance correctly in reverse direction X-Git-Url: http://git.tdb.fi/?a=commitdiff_plain;h=42f767669d9fa699e1fd58a62548b62f5c93a87b;p=r2c2.git Count reserved distance correctly in reverse direction --- diff --git a/source/libr2c2/train.cpp b/source/libr2c2/train.cpp index 4f6c204..25dcae9 100644 --- a/source/libr2c2/train.cpp +++ b/source/libr2c2/train.cpp @@ -490,8 +490,7 @@ float Train::get_reserved_distance_until(const Block *until_block) const if(!track) // XXX Probably unnecessary return 0; - BlockIter block = track.block_iter(); - if(&*block==until_block) + if(&track->get_block()==until_block) return 0; // Account for the vehicle's offset on its current track @@ -502,6 +501,8 @@ float Train::get_reserved_distance_until(const Block *until_block) const result = track->get_type().get_path_length(track->get_active_path())-result; result -= veh.get_type().get_length()/2; + BlockIter block = track.block_iter(); + // Count remaining distance in the vehicle's current block for(track=track.next(); &track->get_block()==&*block; track=track.next()) result += track->get_type().get_path_length(track->get_active_path());