]> git.tdb.fi Git - r2c2.git/blobdiff - source/libmarklin/train.cpp
Rename Section to Block for a closer match with real railway terminology
[r2c2.git] / source / libmarklin / train.cpp
index 73b28234bc5d777d6fcb7615e131b8780e59e42d..f69849db54a81cd65db4448d569ead98e4c241e8 100644 (file)
@@ -16,40 +16,40 @@ Train::Train(TrafficManager &tm, Locomotive &l):
 void Train::set_speed(unsigned speed)
 {
        target_speed=speed;
-       if(rsv_sections.empty() && !reserve_more())
+       if(rsv_blocks.empty() && !reserve_more())
                return;
        loco.set_speed(speed);
 }
 
-void Train::place(Section *sect, const Section::Endpoint *entry)
+void Train::place(Block *block, const Block::Endpoint *entry)
 {
-       for(SectRefSeq::iterator i=rsv_sections.begin(); i!=rsv_sections.end();)
+       for(BlockRefSeq::iterator i=rsv_blocks.begin(); i!=rsv_blocks.end();)
        {
-               i->section->reserve(0);
-               i=rsv_sections.erase(i);
+               i->block->reserve(0);
+               i=rsv_blocks.erase(i);
        }
 
-       for(SectRefSeq::iterator i=cur_sections.begin(); i!=cur_sections.end();)
+       for(BlockRefSeq::iterator i=cur_blocks.begin(); i!=cur_blocks.end();)
        {
-               i->section->reserve(0);
-               i=cur_sections.erase(i);
+               i->block->reserve(0);
+               i=cur_blocks.erase(i);
        }
 
-       if(!sect->reserve(this))
+       if(!block->reserve(this))
                return;
 
-       cur_sections.push_back(SectionRef(sect, entry));
+       cur_blocks.push_back(BlockRef(block, entry));
 }
 
-bool Train::free_section(Section *sect)
+bool Train::free_block(Block *block)
 {
-       for(SectRefSeq::iterator i=rsv_sections.begin(); i!=rsv_sections.end(); ++i)
-               if(i->section==sect)
+       for(BlockRefSeq::iterator i=rsv_blocks.begin(); i!=rsv_blocks.end(); ++i)
+               if(i->block==block)
                {
-                       while(i!=rsv_sections.end())
+                       while(i!=rsv_blocks.end())
                        {
-                               i->section->reserve(0);
-                               i=rsv_sections.erase(i);
+                               i->block->reserve(0);
+                               i=rsv_blocks.erase(i);
                        }
                        return true;
                }
@@ -61,28 +61,28 @@ void Train::sensor_event(unsigned addr, bool state)
 {
        if(state)
        {
-               SectRefSeq::iterator i;
-               for(i=rsv_sections.begin(); i!=rsv_sections.end(); ++i)
-                       if(i->section->get_sensor_id() && i->section->get_sensor_id()!=addr)
+               BlockRefSeq::iterator i;
+               for(i=rsv_blocks.begin(); i!=rsv_blocks.end(); ++i)
+                       if(i->block->get_sensor_id() && i->block->get_sensor_id()!=addr)
                                break;
-               cur_sections.splice(cur_sections.begin(), rsv_sections, rsv_sections.begin(), i);
+               cur_blocks.splice(cur_blocks.begin(), rsv_blocks, rsv_blocks.begin(), i);
 
                reserve_more();
-               if(rsv_sections.empty())
+               if(rsv_blocks.empty())
                        loco.set_speed(0);
        }
        else
        {
-               SectRefSeq::iterator i;
-               for(i=cur_sections.begin(); i!=cur_sections.end(); ++i)
-                       if(i->section->get_sensor_id()==addr)
+               BlockRefSeq::iterator i;
+               for(i=cur_blocks.begin(); i!=cur_blocks.end(); ++i)
+                       if(i->block->get_sensor_id()==addr)
                                break;
-               if(i!=cur_sections.end())
+               if(i!=cur_blocks.end())
                {
                        ++i;
-                       for(SectRefSeq::iterator j=cur_sections.begin(); j!=i; ++j)
-                               j->section->reserve(0);
-                       cur_sections.erase(cur_sections.begin(), i);
+                       for(BlockRefSeq::iterator j=cur_blocks.begin(); j!=i; ++j)
+                               j->block->reserve(0);
+                       cur_blocks.erase(cur_blocks.begin(), i);
                }
 
                reserve_more();
@@ -91,23 +91,23 @@ void Train::sensor_event(unsigned addr, bool state)
 
 bool Train::reserve_more()
 {
-       SectionRef *last=0;
-       if(!rsv_sections.empty())
-               last=&rsv_sections.back();
-       else if(!cur_sections.empty())
-               last=&cur_sections.back();
+       BlockRef *last=0;
+       if(!rsv_blocks.empty())
+               last=&rsv_blocks.back();
+       else if(!cur_blocks.empty())
+               last=&cur_blocks.back();
        if(!last)
                return false;
 
        bool result=false;
-       unsigned size=rsv_sections.size();
+       unsigned size=rsv_blocks.size();
        while(size<5)
        {
-               const Section::Endpoint *exit=last->section->traverse(last->entry);
+               const Block::Endpoint *exit=last->block->traverse(last->entry);
                if(exit->link->reserve(this))
                {
-                       rsv_sections.push_back(SectionRef(exit->link, exit->link->get_endpoint_by_link(last->section)));
-                       last=&rsv_sections.back();
+                       rsv_blocks.push_back(BlockRef(exit->link, exit->link->get_endpoint_by_link(last->block)));
+                       last=&rsv_blocks.back();
                        ++size;
                        result=true;
                }