const vector<Endpoint> &endpoints = (*i)->get_type().get_endpoints();
const vector<Track *> &links = (*i)->get_links();
const vector<Endpoint> &endpoints = (*i)->get_type().get_endpoints();
const vector<Track *> &links = (*i)->get_links();
if(unsigned tid2=links[j]->get_turnout_id())
{
const Endpoint &ep = links[j]->get_type().get_endpoints()[links[j]->get_endpoint_by_link(**i)];
int p = get_turnout(tid2);
if(p>=0 && !(ep.paths&(1<<p)))
{
if(unsigned tid2=links[j]->get_turnout_id())
{
const Endpoint &ep = links[j]->get_type().get_endpoints()[links[j]->get_endpoint_by_link(**i)];
int p = get_turnout(tid2);
if(p>=0 && !(ep.paths&(1<<p)))
{
for(map<unsigned, int>::iterator i=turnouts.begin(); i!=turnouts.end();)
{
if(!found.count(i->first))
for(map<unsigned, int>::iterator i=turnouts.begin(); i!=turnouts.end();)
{
if(!found.count(i->first))
result |= 1;
const vector<Endpoint> &endpoints = (*i)->get_type().get_endpoints();
if(unsigned tid=(*i)->get_turnout_id())
result |= 1;
const vector<Endpoint> &endpoints = (*i)->get_type().get_endpoints();
if(unsigned tid=(*i)->get_turnout_id())