+ release_blocks(blocks, blocks.begin(), blocks.end());
+}
+
+void Train::release_blocks(list<BlockRef> &blocks, list<BlockRef>::iterator begin, list<BlockRef>::iterator end)
+{
+ while(begin!=end)
+ {
+ Block *block = begin->block;
+ blocks.erase(begin++);
+ block->reserve(0);
+ }