const Block *stop_at_block;
bool reserving;
bool advancing;
+ bool reserve_pending;
public:
BlockAllocator(Train &);
bool has_block(const Block &) const;
bool is_block_current(const Block &) const;
+ void tick();
+
private:
void reserve_more();
bool reserve_block(const BlockIter &);