- if(addr==0)
- {
- train_prop=new TrainProperties(*this, ui_res, 0);
- root->add(*train_prop);
- train_prop->signal_ok.connect(sigc::mem_fun(this, &Engineer::dismiss_train_prop));
- train_prop_stale=false;
- train_prop->set_visible(true);
-
- return 0;
- }
- else
- {
- Locomotive *loco=new Locomotive(control, addr);
- Train *train=new Train(*trfc_mgr, *loco);
- train->set_name(format("Train %d", trfc_mgr->get_trains().size()));
-
- TrainPanel *tpanel=new TrainPanel(*this, ui_res, *train);
- root->add(*tpanel);
- int y=main_panel->get_geometry().y;
- for(TrainPanelSeq::iterator i=train_panels.begin(); i!=train_panels.end(); ++i)
- y-=(*i)->get_geometry().h;
- tpanel->set_position(0, y-tpanel->get_geometry().h);
- train_panels.push_back(tpanel);
- tpanel->set_visible(true);
-
- placing_train=train;
- placing_block=0;
- main_panel->set_status_text("Select location");
-
- return train;
- }