X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Ftrainproperties.cpp;h=d92750e41725fd7d65e7071fbcfefc7e785c5cb1;hb=5c1ddd2f213af3fea15237e02f7da112c0abba36;hp=eaddc8bb1c47a38a2ca94c5944deef0592b14773;hpb=6ac4610e9a94f7415b8f01a653242b570057a02b;p=r2c2.git diff --git a/source/engineer/trainproperties.cpp b/source/engineer/trainproperties.cpp index eaddc8b..d92750e 100644 --- a/source/engineer/trainproperties.cpp +++ b/source/engineer/trainproperties.cpp @@ -1,22 +1,16 @@ -/* $Id$ - -This file is part of the MSP Märklin suite -Copyright © 2006-2010 Mikkosoft Productions, Mikko Rasa -Distributed under the GPL -*/ - #include -#include +#include #include -#include "libmarklin/driver.h" -#include "libmarklin/vehicle.h" -#include "libmarklin/vehicletype.h" +#include "libr2c2/driver.h" +#include "libr2c2/trainrouter.h" +#include "libr2c2/vehicle.h" +#include "libr2c2/vehicletype.h" #include "engineer.h" #include "trainproperties.h" using namespace std; using namespace Msp; -using namespace Marklin; +using namespace R2C2; TrainProperties::TrainProperties(Engineer &e, Train *t): engineer(e), @@ -94,9 +88,10 @@ TrainProperties::TrainProperties(Engineer &e, Train *t): if(train) { - ent_addr->set_text(lexical_cast(train->get_address())); + ent_addr->set_text(lexical_cast(train->get_address())); ent_name->set_text(train->get_name()); - drp_priority->set_selected_index(train->get_priority()+2); + if(TrainRouter *router = train->get_ai_of_type()) + drp_priority->set_selected_index(router->get_priority()+2); unsigned n_vehicles = train->get_n_vehicles(); for(unsigned i=1; iset_name(ent_name->get_text()); - train->set_priority(drp_priority->get_selected_index()-2); + if(TrainRouter *router = train->get_ai_of_type()) + router->set_priority(drp_priority->get_selected_index()-2); // The locomotive is vehicle 0 so we need to add 1 for(set::const_iterator i=rem_vehicles.end(); i!=rem_vehicles.begin();) @@ -178,5 +174,5 @@ const VehicleType &TrainProperties::get_vehicle_type(unsigned n, bool loco) ++i; } - throw InvalidParameterValue("Vehicle type index out of range"); + throw out_of_range("TrainProperties::get_vehicle_type"); }