diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-02-15 01:36:51 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-02-15 01:36:51 +0000 |
commit | 2812584e271a62d8edd4d8ec683ea4c644730df2 (patch) | |
tree | ebf24b19e6e5cd7b0bc3f7f1e2aad6f2479f2692 /game/vehicles/railloco.h | |
parent | Correctly follow rails according to wheelbase (diff) | |
download | ilt-2812584e271a62d8edd4d8ec683ea4c644730df2.tar.bz2 ilt-2812584e271a62d8edd4d8ec683ea4c644730df2.tar.xz ilt-2812584e271a62d8edd4d8ec683ea4c644730df2.zip |
Basic support for rail wagons
Diffstat (limited to 'game/vehicles/railloco.h')
-rw-r--r-- | game/vehicles/railloco.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/game/vehicles/railloco.h b/game/vehicles/railloco.h index ff8871b..537d448 100644 --- a/game/vehicles/railloco.h +++ b/game/vehicles/railloco.h @@ -1,21 +1,42 @@ #include "game/network/link.h" #include "game/vehicles/vehicle.h" #include "game/worldobject.h" +#include <memory> #include <string> +#include <vector> class RailVehicle : public Vehicle { public: using Vehicle::Vehicle; float wheelBase; + float length; }; +class RailWagon : public RailVehicle { +public: + using RailVehicle::RailVehicle; + void tick(TickDuration elapsed) override; + friend class RailLoco; +}; +using RailWagonPtr = std::weak_ptr<RailWagon>; + class RailLoco : public RailVehicle { public: using RailVehicle::RailVehicle; void tick(TickDuration elapsed) override; + + std::vector<RailWagonPtr> wagons; + +private: + void updateWagons() const; }; class Brush47 : public RailLoco { public: explicit Brush47(const LinkPtr & p); }; + +class Brush47Wagon : public RailWagon { +public: + explicit Brush47Wagon(const LinkPtr & p); +}; |