if(!active)
set_active(true);
- Track *track = vehicles[0]->get_track();
+ Vehicle &vehicle = *(reverse ? vehicles.back() : vehicles.front());
+ Track *track = vehicle.get_track();
bool ok = false;
for(list<BlockRef>::const_iterator i=cur_blocks.begin(); (!ok && i!=cur_blocks.end()); ++i)
if(ok)
{
float d = get_real_speed(current_speed)*(dt/Time::sec);
- vehicles[0]->advance(reverse ? -d : d);
+ vehicle.advance(reverse ? -d : d);
}
}
else if(end_of_route)
add("real_speed", &Loader::real_speed);
add("route", &Loader::route);
add("timetable", &Loader::timetable);
+ add("vehicle", &Loader::vehicle);
}
void Train::Loader::block(unsigned id)
load_sub(*obj.timetable);
}
+void Train::Loader::vehicle(unsigned n)
+{
+ const VehicleType &vtype = obj.layout.get_catalogue().get_vehicle(n);
+ Vehicle *veh = new Vehicle(obj.layout, vtype);
+ obj.vehicles.back()->attach_back(*veh);
+ obj.vehicles.push_back(veh);
+}
+
} // namespace Marklin