if(type.is_turnout())
turnout_id = layout.allocate_turnout_id();
- layout.add_track(*this);
+ layout.add(*this);
if(layout.has_driver())
layout.get_driver().signal_turnout.connect(sigc::mem_fun(this, &Track::turnout_event));
Track::~Track()
{
break_links();
- layout.remove_track(*this);
+ layout.remove(*this);
}
Track *Track::clone(Layout *to_layout) const
{
if(!type.is_turnout())
throw logic_error("not a turnout");
+ if(!i)
+ throw invalid_argument("Track::set_turnout_id");
turnout_id = i;
layout.create_blocks(*this);