+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
+#include <iostream>
#include "control.h"
#include "block.h"
#include "tracktype.h"
#include "trafficmanager.h"
#include "turnout.h"
-using namespace Msp;
-
-#include <iostream>
using namespace std;
+using namespace Msp;
namespace Marklin {
for(unsigned i=0; i<links.size(); ++i)
if(links[i] && !tracks.count(links[i]))
{
- if(links[i]->get_sensor_id()==sensor_id)
+ if(links[i]->get_sensor_id()==sensor_id && !links[i]->get_turnout_id() && !track->get_turnout_id())
{
queue.push_back(links[i]);
tracks.insert(links[i]);
return i;
Track *next=track->get_link(other_ep);
+ if(tracks.count(next)==0)
+ return -1;
track_ep=next->get_endpoint_by_link(*track);
track=next;
-
- if(tracks.count(track)==0)
- return -1;
}
}
if(!t || !train)
{
train=t;
- if(train)
- cout<<"Block "<<this<<" reserved for train "<<train->get_name()<<'\n';
- else
- cout<<"Block "<<this<<" freed\n";
trfc_mgr.signal_block_reserved.emit(*this, train);
return true;
}