From 81610d105e0e6c5ea57e97de2466e64f5a6a67a9 Mon Sep 17 00:00:00 2001 From: Helloyunho Date: Sat, 5 Jul 2025 21:17:16 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B8=20feat:=20add=20config=20for=20vir?= =?UTF-8?q?tual=20cursor=20sensitivity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ISLE/isleapp.cpp | 9 ++++++--- ISLE/isleapp.h | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ISLE/isleapp.cpp b/ISLE/isleapp.cpp index b81e9bba..699c9165 100644 --- a/ISLE/isleapp.cpp +++ b/ISLE/isleapp.cpp @@ -154,7 +154,7 @@ IsleApp::IsleApp() m_maxLod = RealtimeView::GetUserMaxLOD(); m_maxAllowedExtras = m_islandQuality <= 1 ? 10 : 20; m_transitionType = MxTransitionManager::e_mosaic; - m_mouseSensitivity = 4; + m_cursorSensitivity = 4; } // FUNCTION: ISLE 0x4011a0 @@ -506,10 +506,10 @@ SDL_AppResult SDL_AppEvent(void* appstate, SDL_Event* event) axisValue = event->gaxis.value; } if (event->gaxis.axis == SDL_GAMEPAD_AXIS_RIGHTX) { - g_lastJoystickMouseX = ((float) axisValue) / SDL_JOYSTICK_AXIS_MAX * g_isle->GetMouseSensitivity(); + g_lastJoystickMouseX = ((float) axisValue) / SDL_JOYSTICK_AXIS_MAX * g_isle->GetCursorSensitivity(); } else if (event->gaxis.axis == SDL_GAMEPAD_AXIS_RIGHTY) { - g_lastJoystickMouseY = ((float) axisValue) / SDL_JOYSTICK_AXIS_MAX * g_isle->GetMouseSensitivity(); + g_lastJoystickMouseY = ((float) axisValue) / SDL_JOYSTICK_AXIS_MAX * g_isle->GetCursorSensitivity(); } else if (event->gaxis.axis == SDL_GAMEPAD_AXIS_RIGHT_TRIGGER) { if (axisValue != 0) { @@ -926,6 +926,8 @@ bool IsleApp::LoadConfig() iniparser_set(dict, "isle:UseJoystick", m_useGamepad ? "true" : "false"); iniparser_set(dict, "isle:JoystickIndex", SDL_itoa(m_gamepadIndex, buf, 10)); iniparser_set(dict, "isle:Draw Cursor", m_drawCursor ? "true" : "false"); + SDL_snprintf(buf, sizeof(buf), "%f", m_cursorSensitivity); + iniparser_set(dict, "isle:Cursor Sensitivity", buf); iniparser_set(dict, "isle:Back Buffers in Video RAM", "-1"); @@ -980,6 +982,7 @@ bool IsleApp::LoadConfig() m_useGamepad = iniparser_getboolean(dict, "isle:UseJoystick", m_useGamepad); m_gamepadIndex = iniparser_getint(dict, "isle:JoystickIndex", m_gamepadIndex); m_drawCursor = iniparser_getboolean(dict, "isle:Draw Cursor", m_drawCursor); + m_cursorSensitivity = iniparser_getdouble(dict, "isle:Cursor Sensitivity", m_cursorSensitivity); MxS32 backBuffersInVRAM = iniparser_getboolean(dict, "isle:Back Buffers in Video RAM", -1); if (backBuffersInVRAM != -1) { diff --git a/ISLE/isleapp.h b/ISLE/isleapp.h index 8264ef39..7ff8fa0c 100644 --- a/ISLE/isleapp.h +++ b/ISLE/isleapp.h @@ -52,7 +52,7 @@ class IsleApp { SDL_Cursor* GetCursorNo() { return m_cursorNo; } MxS32 GetDrawCursor() { return m_drawCursor; } MxS32 GetGameStarted() { return m_gameStarted; } - MxFloat GetMouseSensitivity() { return m_mouseSensitivity; } + MxFloat GetCursorSensitivity() { return m_cursorSensitivity; } void SetWindowActive(MxS32 p_windowActive) { m_windowActive = p_windowActive; } void SetGameStarted(MxS32 p_gameStarted) { m_gameStarted = p_gameStarted; } @@ -94,7 +94,7 @@ class IsleApp { const CursorBitmap* m_cursorNoBitmap; const CursorBitmap* m_cursorCurrentBitmap; char* m_mediaPath; - MxFloat m_mouseSensitivity; + MxFloat m_cursorSensitivity; char* m_iniPath; MxFloat m_maxLod;