From 1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 Mon Sep 17 00:00:00 2001 From: Uneven Prankster Date: Sun, 15 Oct 2023 21:28:29 -0300 Subject: A lot has certainly happened! --- src/rumble.c | 58 ---------------------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 src/rumble.c (limited to 'src/rumble.c') diff --git a/src/rumble.c b/src/rumble.c deleted file mode 100644 index b2da191..0000000 --- a/src/rumble.c +++ /dev/null @@ -1,58 +0,0 @@ -/* -I made this a separate source file because Raylib has some quirks -regarding Windows compilation. And I also suppose because it has -some state of its own. - -NOTE FOR SPELUNKERS: this requires linking to xinput1_4 AFAIK -*/ - -#include "controller.h" -#include - -// Windows stuff starts // -typedef struct _XINPUT_VIBRATION { - unsigned wLeftMotorSpeed; - unsigned wRightMotorSpeed; -} XINPUT_VIBRATION; -unsigned int XInputSetState(unsigned int dwUserIndex, XINPUT_VIBRATION *pVibration); -// Windows stuff ends // - -static fx32 timer = 0; - -void set_rumble(f32 duration, f32 strength) -{ - // If game code is surpassing this something is wrong!! - assert(strength >= 0.f && strength <= 1.f); - - XINPUT_VIBRATION state = {}; - state.wLeftMotorSpeed = (unsigned)(strength * 65535.0f); - state.wRightMotorSpeed = (unsigned)(strength * 65535.0f); - - if (XInputSetState(0, &state) == 0){ - timer = FP_TO_FIXED(duration); - } -} - -void poll_rumble(f32 dt) -{ - // Early return - if(timer <= 0) - return; - - fx32 delta = FP_TO_FIXED(dt); - - timer -= delta; - if(timer <= 0){ - stop_rumble(); - } -} - -void stop_rumble(void) -{ - timer = 0; - - XINPUT_VIBRATION state = {}; - state.wLeftMotorSpeed = 0; - state.wRightMotorSpeed = 0; - XInputSetState(0, &state); -} \ No newline at end of file -- cgit v1.2.3