summaryrefslogtreecommitdiff
path: root/game/network
diff options
context:
space:
mode:
Diffstat (limited to 'game/network')
-rw-r--r--game/network/link.cpp2
-rw-r--r--game/network/network.cpp4
-rw-r--r--game/network/network.h6
-rw-r--r--game/network/rail.cpp4
4 files changed, 9 insertions, 7 deletions
diff --git a/game/network/link.cpp b/game/network/link.cpp
index 19b60ab..aecc2fc 100644
--- a/game/network/link.cpp
+++ b/game/network/link.cpp
@@ -68,7 +68,7 @@ LinkCurve::intersectRay(const Ray & ray) const
points.reserve(segCount);
for (glm::vec3 swing = {arc.first, centreBase.z - e0p.z, 0.F}; segCount; swing += step, --segCount) {
const auto t {trans * glm::rotate(half_pi - swing.x, up) * glm::translate(glm::vec3 {radius, 0.F, swing.y})};
- points.push_back(t * glm::vec4 {0, 0, 0, 1});
+ points.emplace_back(t * glm::vec4 {0, 0, 0, 1});
}
return ray.passesCloseToEdges(points, 1.F);
}
diff --git a/game/network/network.cpp b/game/network/network.cpp
index dd61f9b..59ef7c8 100644
--- a/game/network/network.cpp
+++ b/game/network/network.cpp
@@ -22,11 +22,11 @@ Network::nodeAt(glm::vec3 pos)
Network::NodeInsertion
Network::newNodeAt(glm::vec3 pos)
{
- if (const auto [n, i] = candidateNodeAt(pos); i == NodeIs::NotInNetwork) {
+ if (auto [n, i] = candidateNodeAt(pos); i == NodeIs::NotInNetwork) {
return {*nodes.insert(std::move(n)).first, i};
}
else {
- return {n, NodeIs::InNetwork};
+ return {std::move(n), NodeIs::InNetwork};
}
}
diff --git a/game/network/network.h b/game/network/network.h
index e7a65b5..4b485cc 100644
--- a/game/network/network.h
+++ b/game/network/network.h
@@ -7,6 +7,7 @@
#include <memory>
#include <set>
#include <sorting.hpp>
+#include <special_members.hpp>
#include <string>
#include <utility>
#include <variant>
@@ -23,6 +24,7 @@ public:
using LinkEnd = std::pair<Link::Ptr, unsigned char>;
explicit Network(const std::string & textureName);
virtual ~Network() = default;
+ DEFAULT_MOVE_NO_COPY(Network);
[[nodiscard]] Node::Ptr findNodeAt(glm::vec3) const;
[[nodiscard]] Node::Ptr nodeAt(glm::vec3);
@@ -43,7 +45,7 @@ public:
virtual Link::CCollection addJoins(glm::vec3, glm::vec3) = 0;
virtual Link::CCollection addExtend(glm::vec3, glm::vec3) = 0;
- virtual float findNodeDirection(Node::AnyCPtr) const = 0;
+ [[nodiscard]] virtual float findNodeDirection(Node::AnyCPtr) const = 0;
protected:
static void joinLinks(const Link::Ptr & l, const Link::Ptr & ol);
@@ -94,7 +96,7 @@ public:
Link::CCollection addJoins(glm::vec3, glm::vec3) override;
Link::CCollection addExtend(glm::vec3, glm::vec3) override;
- float findNodeDirection(Node::AnyCPtr) const override;
+ [[nodiscard]] float findNodeDirection(Node::AnyCPtr) const override;
void render(const SceneShader &) const override;
diff --git a/game/network/rail.cpp b/game/network/rail.cpp
index 2f09d88..e7006cf 100644
--- a/game/network/rail.cpp
+++ b/game/network/rail.cpp
@@ -40,7 +40,7 @@ RailLinks::addLinksBetween(glm::vec3 start, glm::vec3 end)
std::swap(start, end);
}
// Find start link/end - opposite entry dir to existing link; so pi +...
- float dir = pi + findNodeDirection(node1ins.first);
+ const float dir = pi + findNodeDirection(node1ins.first);
if (dir == vector_yaw(end - start)) {
return addLink<RailLinkStraight>(start, end);
}
@@ -50,7 +50,7 @@ RailLinks::addLinksBetween(glm::vec3 start, glm::vec3 end)
const auto sm = glm::distance(flatStart, mid), em = glm::distance(flatEnd, mid);
return start.z + ((end.z - start.z) * (sm / (sm + em)));
};
- float dir2 = pi + findNodeDirection(node2ins.first);
+ const float dir2 = pi + findNodeDirection(node2ins.first);
if (const auto radii = find_arcs_radius(flatStart, dir, flatEnd, dir2); radii.first < radii.second) {
const auto radius {radii.first};
const auto c1 = flatStart + sincosf(dir + half_pi) * radius;