X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fsignal.cpp;h=38e11248793258641a6ef3557c247bb8406f3b09;hb=4481da8b54bba32b338befd509360816b08402e5;hp=7ccb23874a7feb6c5659556b513ab4ecaea90a25;hpb=ca9d278f9472206ad9a01190dcef9f0eb1bcc274;p=r2c2.git diff --git a/source/libr2c2/signal.cpp b/source/libr2c2/signal.cpp index 7ccb238..38e1124 100644 --- a/source/libr2c2/signal.cpp +++ b/source/libr2c2/signal.cpp @@ -24,14 +24,14 @@ Signal::Signal(Layout &l, const SignalType &t): check_allocated_blocks(false), passing(false) { - layout.add_signal(*this); + layout.add(*this); layout.signal_block_reserved.connect(sigc::mem_fun(this, &Signal::block_reserved)); } Signal::~Signal() { - layout.remove_signal(*this); + layout.remove(*this); } Signal *Signal::clone(Layout *to_layout) const @@ -59,7 +59,7 @@ void Signal::set_position(const Vector &p) void Signal::update_location() { - const set &tracks = layout.get_tracks(); + const set &tracks = layout.get_all(); float limit = layout.get_catalogue().get_gauge()*2; float dist = -1; for(set::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) @@ -163,8 +163,8 @@ void Signal::block_reserved(const Block &b, Train *t) { if(t) { - int train_entry = t->get_block_allocator().get_entry_to_block(*block); - if(train_entry>=0 && static_cast(train_entry)==entry) + const BlockIter &b_iter = t->get_block_allocator().iter_for(b); + if(b_iter && b_iter.entry()==entry) { if(train_conn) train_conn.disconnect();