From 7b49bd03d5e9a79ca484508d21b0eb2b8d8eac39 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Fri, 5 Mar 2010 19:57:50 +0000 Subject: [PATCH] Fix axis passed to new track --- src/Editor.cpp | 6 ++++++ src/SlopeTrack.cpp | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Editor.cpp b/src/Editor.cpp index c12970e..6ead73f 100644 --- a/src/Editor.cpp +++ b/src/Editor.cpp @@ -221,6 +221,12 @@ bool Editor::canConnect(const Point& aFirstPoint, // Returns `false' if track cannot be placed here bool Editor::drawTrackTile(Point where, track::Direction axis) { + // Ensure axis is only in the positive direction + if (axis == -axis::X) + axis = axis::X; + else if (axis == -axis::Y) + axis = axis::Y; + if (map->isValidTrack(where)) { ITrackSegmentPtr merged = map->trackAt(where)->mergeExit(where, axis); if (merged) { diff --git a/src/SlopeTrack.cpp b/src/SlopeTrack.cpp index 32c4702..5e7751c 100644 --- a/src/SlopeTrack.cpp +++ b/src/SlopeTrack.cpp @@ -73,6 +73,8 @@ SlopeTrack::SlopeTrack(track::Direction axis, Vector slope, { const float OFF = 0.1f; + assert(axis == axis::X || axis == axis::Y); + const Vector avgBefore = (slope + slopeBefore) / 2.0f; const Vector avgAfter = (slope + slopeAfter) / 2.0f; @@ -92,7 +94,7 @@ SlopeTrack::SlopeTrack(track::Direction axis, Vector slope, Vector p2 = makeVector(xDelta0, yDelta0, 0.0f); Vector p3 = makeVector(1.0f - xDelta1, slope.y - yDelta1, 0.0f); Vector p4 = makeVector(1.0f, slope.y, 0.0f); - + debug() << p1 << " " << p2 << " " << p3 << " " << p4; curve = makeBezierCurve(p1, p2, p3, p4); -- 2.39.2