turnout_addr(start.get_turnout_address()),
conflict(false),
sensor(0),
- train(0),
- pending_train(0),
- emitting_reserve(false)
+ train(0)
{
add_track(start);
bool Block::reserve(Train *t)
{
- if(!t || !(emitting_reserve ? pending_train : train))
+ if(!t || !train)
{
- pending_train = t;
- if(!emitting_reserve)
- {
- while(pending_train!=train)
- {
- train = pending_train;
- SetFlag setf(emitting_reserve);
- signal_reserved.emit(train);
- }
- }
-
+ train = t;
+ signal_reserved.emit(t);
return true;
}
else