diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-05-11 00:12:42 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-05-11 00:12:42 +0100 |
commit | 1bcce010b5b11b485ba80df58c984277100dc99e (patch) | |
tree | 857b8d3f095e6e32e75656eb4560dd795ac9b2ca /game | |
parent | Set terrain height and surface when adding link (diff) | |
download | ilt-1bcce010b5b11b485ba80df58c984277100dc99e.tar.bz2 ilt-1bcce010b5b11b485ba80df58c984277100dc99e.tar.xz ilt-1bcce010b5b11b485ba80df58c984277100dc99e.zip |
Fix conditional render of rail links
Tests for vertices, not links in network. Fixes case where links are
present but not in network, e.g. currently being built.
Diffstat (limited to 'game')
-rw-r--r-- | game/network/network.h | 1 | ||||
-rw-r--r-- | game/network/network.impl.h | 7 | ||||
-rw-r--r-- | game/network/rail.cpp | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/game/network/network.h b/game/network/network.h index 0c499c6..c1d3265 100644 --- a/game/network/network.h +++ b/game/network/network.h @@ -135,4 +135,5 @@ public: protected: Link::CCollection addCurve(const GeoData *, const GenCurveDef &); + [[nodiscard]] bool anyLinks() const; }; diff --git a/game/network/network.impl.h b/game/network/network.impl.h index 7f7dfb3..04c5d7c 100644 --- a/game/network/network.impl.h +++ b/game/network/network.impl.h @@ -161,6 +161,13 @@ NetworkOf<T, Links...>::create(const GenCurveDef & def) } template<typename T, typename... Links> +bool +NetworkOf<T, Links...>::anyLinks() const +{ + return !(static_cast<const NetworkLinkHolder<Links> *>(this)->vertices.empty() && ...); +} + +template<typename T, typename... Links> void NetworkOf<T, Links...>::add(GeoData * geoData, const Link::Ptr & link) { diff --git a/game/network/rail.cpp b/game/network/rail.cpp index c0e597d..37eb7df 100644 --- a/game/network/rail.cpp +++ b/game/network/rail.cpp @@ -169,7 +169,7 @@ namespace { void RailLinks::render(const SceneShader & shader, const Frustum &) const { - if (!links.empty()) { + if (anyLinks()) { texture->bind(); glEnable(GL_POLYGON_OFFSET_FILL); glPolygonOffset(-1, 0); |