From 22a8737bf11ef31a1c6487f5dba8255b02150e26 Mon Sep 17 00:00:00 2001 From: ackimixs Date: Wed, 15 May 2024 17:01:48 +0200 Subject: [PATCH] factor --- GameControllerHandler.h | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/GameControllerHandler.h b/GameControllerHandler.h index 9de41e5..de192a1 100644 --- a/GameControllerHandler.h +++ b/GameControllerHandler.h @@ -43,13 +43,17 @@ public: std::vector args = Utils::split(tokens[3], ","); int distance = stoi(args[0]); double angle = (stod(args[1]) / 100) + (PI / 2); - Uint16 strength = 0xFFFF; - if (distance < 200) { - strength = static_cast((200 - distance) * 0xFFFF / 200); - double angleFactor = 1 - std::abs(std::sin(angle)); - strength *= angleFactor; + if (distance <= 200) { + strength = 0xFFFF; + } else if (distance <= 500) { + double factor = 1.0 - static_cast(distance - 200) / (500 - 200); + double angleFactor = std::abs(std::sin(angle)); + + strength = static_cast(factor * 0xFFFF); + } else { + strength = 0; } if (SDL_GameControllerRumble(controller, strength, strength, 1000) != 0) {