]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/engineer.cpp
Get rid of Train::try_reserve and listen to signal_block_reserved instead
[r2c2.git] / source / engineer / engineer.cpp
index 11729be5b9a6f1754c0036704258f893cea6c4ff..308e5b2d4db0e80437a790ac7cbd1bf8ae38075c 100644 (file)
@@ -176,6 +176,10 @@ int Engineer::main()
                y -= tpanel->get_geometry().h;
        }
 
+       const list<Block *> &blocks = trfc_mgr->get_blocks();
+       for(list<Block *>::const_iterator i=blocks.begin(); i!=blocks.end(); ++i)
+               reset_block_color(**i);
+
        wnd->show();
 
        Application::main();
@@ -265,10 +269,13 @@ void Engineer::tick()
        const list<Train *> &trains = trfc_mgr->get_trains();
        for(list<Train *>::const_iterator i=trains.begin(); i!=trains.end(); ++i)
        {
+               if(!(*i)->is_placed())
+                       continue;
+
                GL::PushMatrix _push;
 
                const Point &tp = (*i)->get_position();
-               GL::translate(tp.x, tp.y, 0.02);
+               GL::translate(tp.x, tp.y, tp.z+0.02);
                GL::Immediate imm((GL::COLOR4_UBYTE, GL::VERTEX2));
                imm.color(0.8f, 0.8f, 1.0f);
                imm.begin(GL::TRIANGLE_FAN);
@@ -307,7 +314,7 @@ void Engineer::button_press(int x, int y, unsigned btn, unsigned)
                {
                        set_block_color(*placing_block, GL::Color(1, 1, 1));
 
-                       placing_train->place(placing_block, placing_entry);
+                       placing_train->place(*placing_block, placing_entry);
                        placing_train = 0;
                        main_panel->set_status_text(string());
                }