temporary(false)
{
layout.add_route(*this);
- layout.signal_track_removed.connect(sigc::mem_fun(this, &Route::track_removed));
+ layout.signal_object_removed.connect(sigc::mem_fun(this, &Route::object_removed));
}
Route::~Route()
return static_cast<RouteValidityMask>(result);
}
-void Route::track_removed(Track &t)
+void Route::object_removed(Object &o)
{
- tracks.erase(&t);
+ if(Track *t = dynamic_cast<Track *>(&o))
+ tracks.erase(t);
}
Route *Route::find(const TrackIter &from, Track &to)
void Route::Loader::finish()
{
- const set<Track *> <racks = obj.layout.get_tracks();
+ const set<Track *> <racks = obj.layout.get_all<Track>();
for(set<Track *>::const_iterator i=ltracks.begin(); i!=ltracks.end(); ++i)
{
unsigned tid = (*i)->get_turnout_id();