X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fsignal.cpp;h=38e11248793258641a6ef3557c247bb8406f3b09;hb=4529bf980cf3558d86c07266de7d890d3f5e06a6;hp=0139b1fbdaa9cf73ff6a3b25cdaff0b7f63eb984;hpb=3109ae75c6de3b64b546fa9807d4299b337ca04b;p=r2c2.git diff --git a/source/libr2c2/signal.cpp b/source/libr2c2/signal.cpp index 0139b1f..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_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();