]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/vehicle.cpp
Report the closest object when picking
[r2c2.git] / source / libr2c2 / vehicle.cpp
index 79e3cbef9370f57ce0eaaf4c620e90cd4f72daae..cb776f413daacb20f82889076aeab17e451cc842 100644 (file)
@@ -175,7 +175,8 @@ void Vehicle::update_position(int sign)
 {
        OrientedPoint p = placement.get_point();
        position = p.position;
-       position.z += layout.get_catalogue().get_rail_elevation();
+       // TODO Move the z adjustment to VehiclePlacement
+       position.z += placement.get_position(VehiclePlacement::FRONT_AXLE)->get_type().get_appearance().get_rail_elevation();
        rotation = p.rotation;
        tilt = p.tilt;
 
@@ -247,7 +248,7 @@ void Vehicle::propagate_backward()
 
 void Vehicle::check_sensor(const TrackOffsetIter &t, unsigned &sensor, bool release)
 {
-       unsigned s = t->get_sensor_id();
+       unsigned s = t->get_sensor_address();
        if(s!=sensor)
        {
                unsigned old = sensor;
@@ -355,6 +356,14 @@ int Vehicle::get_link_slot(const Object &other) const
                return -1;
 }
 
+bool Vehicle::collide_ray(const Ray &ray, float *d) const
+{
+       if(is_placed())
+               return Object::collide_ray(ray, d);
+       else
+               return false;
+}
+
 
 Vehicle::Axle::Axle(const VehicleType::Axle &t):
        type(&t)