+ {
+ turnout_addr = layout.allocate_turnout_address();
+
+ if(layout.has_driver())
+ {
+ Driver &driver = layout.get_driver();
+ turnout_id = driver.add_turnout(turnout_addr, type);
+ driver.signal_turnout.connect(sigc::mem_fun(this, &Track::turnout_event));
+ driver.signal_turnout_failed.connect(sigc::mem_fun(this, &Track::turnout_failed));
+ }
+ }