From ef4559b816579a038e58fc6c2bd519db463a4b0f Mon Sep 17 00:00:00 2001
From: namark <namark@disroot.org>
Date: Sun, 29 Nov 2020 17:48:04 +0400
Subject: [PATCH] circular_maze: somewhat improved controls??

---
 circular_maze.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/circular_maze.cpp b/circular_maze.cpp
index 2b9a448..b2eeb2a 100644
--- a/circular_maze.cpp
+++ b/circular_maze.cpp
@@ -414,6 +414,7 @@ void make_radial_movement(float direction)
 bool diagram = false;
 std::optional<float2> drag = std::nullopt;
 std::optional<float2> jerk = std::nullopt;
+float2 possible_jerk = float2::zero();
 float circular_velocity = 0.f;
 
 void start(Program& program)
@@ -451,6 +452,7 @@ void start(Program& program)
 	{
 		drag = float2::zero();
 		circular_velocity = 0;
+		possible_jerk = float2::zero();
 	};
 
 	program.mouse_up = [](auto, auto)
@@ -468,9 +470,9 @@ void start(Program& program)
 			if(!jerk)
 			{
 				// TODO: use mouse_motion::window_normalized_motion
-				auto possible_jerk = trunc(motion / (maze.get_corridor_radius()/3));
-				if(possible_jerk != float2::zero())
-					jerk = signum(possible_jerk);
+				possible_jerk += motion / (maze.get_corridor_radius()/3);
+				if(trunc(possible_jerk) != float2::zero())
+					jerk = signum(trunc(possible_jerk));
 			}
 		}
 	};
-- 
GitLab