diff options
Diffstat (limited to 'game/network')
-rw-r--r-- | game/network/network.h | 8 | ||||
-rw-r--r-- | game/network/rail.h | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/game/network/network.h b/game/network/network.h index 44ad095..c0485a9 100644 --- a/game/network/network.h +++ b/game/network/network.h @@ -30,6 +30,8 @@ public: [[nodiscard]] Link::Nexts routeFromTo(const Link::End &, glm::vec3) const; [[nodiscard]] Link::Nexts routeFromTo(const Link::End &, const NodePtr &) const; + virtual LinkPtr addStraight(glm::vec3, glm::vec3) = 0; + protected: static void joinLinks(const LinkPtr & l, const LinkPtr & ol); @@ -60,5 +62,11 @@ public: return l; } + LinkPtr + addStraight(glm::vec3 n1, glm::vec3 n2) override + { + return addLink<typename T::StraightLink>(n1, n2); + } + void render(const Shader &) const override; }; diff --git a/game/network/rail.h b/game/network/rail.h index 758beb6..c1cb579 100644 --- a/game/network/rail.h +++ b/game/network/rail.h @@ -16,10 +16,14 @@ class Vertex; struct Arc; // A piece of rail track +class RailLinkStraight; class RailLink : public virtual Link, public Renderable { public: RailLink() = default; inline ~RailLink() override = 0; + + using StraightLink = RailLinkStraight; + void render(const Shader &) const override; NO_COPY(RailLink); NO_MOVE(RailLink); |