#ifndef VEHICLE_H #define VEHICLE_H #include "linkHistory.h" #include #include #include #include #include #include class Location; class Vehicle : public WorldObject, public Renderable { public: explicit Vehicle(const LinkPtr & link, float linkDist = 0); float linkDist; // distance along current link float speed {}; // speed in m/s (~75 km/h) [[nodiscard]] virtual const Location & getLocation() const = 0; Orders orders; ActivityPtr currentActivity; protected: void move(TickDuration dur); LinkHistory linkHist; }; using VehicleWPtr = std::weak_ptr; #endif