dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_add"))->signal_clicked.connect(sigc::mem_fun(this, &NewVehicleDialog::add_clicked));
- const Catalogue::VehicleMap &cat_vtypes = train.get_layout().get_catalogue().get_vehicles();
- for(Catalogue::VehicleMap::const_iterator i=cat_vtypes.begin(); i!=cat_vtypes.end(); ++i)
- {
- if(i->second->is_locomotive())
- loco_types.append(i->second);
- else
- wagon_types.append(i->second);
- }
+ const Catalogue::ObjectMap &obj_types = train.get_layout().get_catalogue().get_all();
+ for(Catalogue::ObjectMap::const_iterator i=obj_types.begin(); i!=obj_types.end(); ++i)
+ if(const VehicleType *vt = dynamic_cast<const VehicleType *>(i->second))
+ {
+ if(vt->is_locomotive())
+ loco_types.append(vt);
+ else
+ wagon_types.append(vt);
+ }
}
void NewVehicleDialog::toggle_list(bool show, GLtk::List *lst)