diff options
Diffstat (limited to 'ui/builders/straight.cpp')
-rw-r--r-- | ui/builders/straight.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/ui/builders/straight.cpp b/ui/builders/straight.cpp index 43f5ec8..e7d83b5 100644 --- a/ui/builders/straight.cpp +++ b/ui/builders/straight.cpp @@ -1,4 +1,5 @@ #include "straight.h" +#include "stream_support.h" #include <game/geoData.h> std::string @@ -16,10 +17,10 @@ BuilderStraight::move( { if (p1) { if (const auto p = geoData->intersectRay(ray)) { - candidateLinks.objects = network->candidateStraight(*p1, p->first); + candidateLinks = network->candidateStraight(*p1, p->first); } else { - candidateLinks.removeAll(); + candidateLinks.clear(); } } } @@ -32,8 +33,8 @@ BuilderStraight::click( case SDL_BUTTON_LEFT: if (const auto p = geoData->intersectRay(ray)) { if (p1) { - create(network, *p1, p->first); - candidateLinks.removeAll(); + create(network, geoData, *p1, p->first); + candidateLinks.clear(); p1.reset(); } else { @@ -43,13 +44,15 @@ BuilderStraight::click( return; case SDL_BUTTON_MIDDLE: p1.reset(); - candidateLinks.removeAll(); + candidateLinks.clear(); return; } } -void -BuilderStraight::create(Network * network, GlobalPosition3D p1, GlobalPosition3D p2) const +Link::CCollection +BuilderStraight::create(Network * network, const GeoData * geoData, GlobalPosition3D p1, GlobalPosition3D p2) const { - network->addStraight(p1, p2); + const auto links = network->addStraight(geoData, p1, p2); + setHeightsFor(network, links); + return links; } |