summaryrefslogtreecommitdiff
path: root/game
diff options
context:
space:
mode:
Diffstat (limited to 'game')
-rw-r--r--game/network/network.h4
-rw-r--r--game/network/network.impl.h5
2 files changed, 6 insertions, 3 deletions
diff --git a/game/network/network.h b/game/network/network.h
index 114f42b..0c499c6 100644
--- a/game/network/network.h
+++ b/game/network/network.h
@@ -61,7 +61,7 @@ public:
[[nodiscard]] virtual float findNodeDirection(Node::AnyCPtr) const = 0;
[[nodiscard]] Link::Collection create(const CreationDefinition &);
- virtual void add(const GeoData *, const Link::Ptr &) = 0;
+ virtual void add(GeoData *, const Link::Ptr &) = 0;
[[nodiscard]] virtual const Surface * getBaseSurface() const = 0;
[[nodiscard]] virtual RelativeDistance getBaseWidth() const = 0;
@@ -131,7 +131,7 @@ public:
using Network::create;
[[nodiscard]] Link::Ptr create(const GenStraightDef &) override;
[[nodiscard]] Link::Ptr create(const GenCurveDef &) override;
- void add(const GeoData *, const Link::Ptr &) override;
+ void add(GeoData *, const Link::Ptr &) override;
protected:
Link::CCollection addCurve(const GeoData *, const GenCurveDef &);
diff --git a/game/network/network.impl.h b/game/network/network.impl.h
index 54a5f4b..7f7dfb3 100644
--- a/game/network/network.impl.h
+++ b/game/network/network.impl.h
@@ -162,7 +162,7 @@ NetworkOf<T, Links...>::create(const GenCurveDef & def)
template<typename T, typename... Links>
void
-NetworkOf<T, Links...>::add(const GeoData *, const Link::Ptr & link)
+NetworkOf<T, Links...>::add(GeoData * geoData, const Link::Ptr & link)
{
const auto addIf = [this](auto && lptr) {
if (lptr) {
@@ -178,4 +178,7 @@ NetworkOf<T, Links...>::add(const GeoData *, const Link::Ptr & link)
throw std::logic_error("Unsupported link type for network");
}
joinLinks(link);
+ if (geoData) {
+ geoData->setHeights(link->getBase(getBaseWidth()), GeoData::SetHeightsOpts {.surface = getBaseSurface()});
+ }
}