Vehicle::Vehicle(Layout &l, const VehicleType &t):
Object(l),
type(t),
+ train(0),
next(0),
prev(0),
front_sensor(0),
bogies.assign(type.get_bogies().begin(), type.get_bogies().end());
rods.assign(type.get_rods().begin(), type.get_rods().end());
- layout.add_vehicle(*this);
+ layout.add(*this);
}
Vehicle::~Vehicle()
detach_back();
if(prev)
detach_front();
- layout.remove_vehicle(*this);
+ layout.remove(*this);
}
Vehicle *Vehicle::clone(Layout *to_layout) const
return veh;
}
+void Vehicle::set_train(Train *t)
+{
+ train = t;
+}
+
void Vehicle::attach_back(Vehicle &veh)
{
if(next || veh.prev)
position = tp.pos;
position.z += layout.get_catalogue().get_rail_elevation();
rotation = tp.dir;
+ signal_moved.emit();
}
void Vehicle::update_position_from(const Vehicle &veh)