#pragma once #include "chronology.h" #include "linkHistory.h" #include #include #include #include #include #include #include class Location; class Vehicle : public WorldObject, public Selectable { public: explicit Vehicle(const Link::Ptr & 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;