prev = 0;
}
-void Vehicle::place(Track *t, unsigned e, float o, PlaceMode m)
+void Vehicle::place(Track &t, unsigned e, float o, PlaceMode m)
{
- track_pos = TrackPosition(t, e, o);
+ track_pos = TrackPosition(&t, e, o);
if(m==FRONT_AXLE)
track_pos.advance(-type.get_front_axle_offset());
propagate_position();
}
+void Vehicle::unplace()
+{
+ if(!track_pos.track)
+ return;
+
+ track_pos = TrackPosition();
+
+ if(prev)
+ prev->unplace();
+ if(next)
+ next->unplace();
+}
+
void Vehicle::advance(float d)
{
track_pos.advance(d);