X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Flayout.cpp;h=6cb0eb3634ae334cca8714b87f5d6fb7ae5251bd;hb=32739f060d1c025756b3ed702da1cbbdd6793064;hp=efc1e0f74cbc97627de661b40caa4cc09dd6ac8e;hpb=eb9c7f5200da4f3f31b41233be8cee397cb6abb9;p=r2c2.git diff --git a/source/libr2c2/layout.cpp b/source/libr2c2/layout.cpp index efc1e0f..6cb0eb3 100644 --- a/source/libr2c2/layout.cpp +++ b/source/libr2c2/layout.cpp @@ -39,7 +39,9 @@ Layout::Layout(Catalogue &c, Driver *d): catalogue(c), driver(d), next_turnout_id(0x800) -{ } +{ + clock.set_rate(60); +} Layout::~Layout() { @@ -343,13 +345,15 @@ void Layout::tick() dt = t-last_tick; last_tick = t; + clock.tick(dt); + for(set::iterator i=sensors.get().begin(); i!=sensors.get().end(); ++i) (*i)->tick(dt); const set &signals = objects.get(); for(set::iterator i=signals.begin(); i!=signals.end(); ++i) (*i)->tick(dt); for(map::iterator i=trains.begin(); i!=trains.end(); ++i) - i->second->tick(t, dt); + i->second->tick(dt); } void Layout::emergency(const string &msg) @@ -431,10 +435,7 @@ void Layout::sensor_state_changed(Sensor &sensor, Sensor::State state) { if(state==Sensor::ACTIVE) { - Block *block = 0; - if(TrackCircuit *tc = dynamic_cast(&sensor)) - block = &tc->get_block(); - + Block *block = sensor.get_block(); if(block && !block->get_train()) emergency(format("Unreserved sensor %d triggered", sensor.get_address())); } @@ -499,17 +500,12 @@ Layout::Loader::Loader(Layout &l): new_tracks(false) { add("base", &Layout::base); - add("route", static_cast(&Loader::route)); + add("route", &Loader::route); add("signal", &Loader::signal); - add("track", static_cast(&Loader::track)); - add("train", static_cast(&Loader::train)); + add("track", &Loader::track); + add("train", &Loader::train); add("turnout", &Loader::turnout); add("zone", &Loader::zone); - - // Deprecated aliases - add("route", static_cast(&Loader::route)); - add("track", static_cast(&Loader::track)); - add("train", static_cast(&Loader::train)); } void Layout::Loader::route() @@ -518,24 +514,12 @@ void Layout::Loader::route() load_sub(*rte); } -void Layout::Loader::route(const string &n) -{ - Route *rte = new Route(obj); - rte->set_name(n); - load_sub(*rte); -} - void Layout::Loader::signal(ArticleNumber art_nr) { Signal *sig = new Signal(obj, obj.catalogue.get_signal(art_nr)); load_sub(*sig); } -void Layout::Loader::track(unsigned art_nr) -{ - track(ArticleNumber(art_nr)); -} - void Layout::Loader::track(ArticleNumber art_nr) { Track *trk = new Track(obj, obj.catalogue.get_track(art_nr)); @@ -547,11 +531,6 @@ void Layout::Loader::track(ArticleNumber art_nr) trk->link_to(**i); } -void Layout::Loader::train(unsigned art_nr, unsigned addr, const std::string &proto) -{ - train(ArticleNumber(art_nr), addr, proto); -} - void Layout::Loader::train(ArticleNumber art_nr, unsigned addr, const std::string &proto) { Train *trn = new Train(obj, obj.catalogue.get_vehicle(art_nr), addr, proto);