From 2e6dcb29062474582e52acdfdce478e2ccbeece3 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 28 Jul 2023 09:38:39 +0200 Subject: [PATCH] add dinput curspr hack --- inc/dd.h | 1 + src/config.c | 3 +++ src/directinput.c | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/inc/dd.h b/inc/dd.h index 0b4c615..996aa04 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -141,6 +141,7 @@ typedef struct CNCDDRAW HCURSOR old_cursor; int show_cursor_count; BOOL fpupreserve; + BOOL dinput_show_cursor; BOOL allow_wmactivate; int d3d9_adapter; BOOL opengl_core; diff --git a/src/config.c b/src/config.c index b6d7c7f..c784c20 100644 --- a/src/config.c +++ b/src/config.c @@ -49,6 +49,7 @@ void cfg_load() g_ddraw->d3d9on12 = cfg_get_bool("d3d9on12", FALSE); g_ddraw->resolutions = cfg_get_int("resolutions", RESLIST_NORMAL); g_ddraw->fpupreserve = cfg_get_bool("fpupreserve", TRUE); + g_ddraw->dinput_show_cursor = cfg_get_bool("dinput_show_cursor", FALSE); g_ddraw->allow_wmactivate = cfg_get_bool("allow_wmactivate", FALSE); g_ddraw->d3d9_adapter = cfg_get_int("d3d9_adapter", 0); g_ddraw->guard_lines = cfg_get_int("guard_lines", 200); @@ -382,6 +383,7 @@ static void cfg_create_ini() "rgb555=false\n" "hook_peekmessage=false\n" "fpupreserve=true\n" + "dinput_show_cursor=false\n" "\n" "\n" "\n" @@ -1054,6 +1056,7 @@ static void cfg_create_ini() "\n" "; RollerCoaster Tycoon\n" "[rct]\n" + "dinput_show_cursor=true\n" "singlecpu=false\n" "maxfps=0\n" "\n" diff --git a/src/directinput.c b/src/directinput.c index 86be466..9dd1944 100644 --- a/src/directinput.c +++ b/src/directinput.c @@ -40,7 +40,7 @@ static HRESULT WINAPI fake_did_SetCooperativeLevel(IDirectInputDeviceA* This, HW { TRACE("DirectInput SetCooperativeLevel(This=%p, hwnd=%p, dwFlags=0x%08X)\n", This, hwnd, dwFlags); - if (This == g_mouse_device && g_ddraw && (dwFlags & DISCL_EXCLUSIVE)) + if (This == g_mouse_device && g_ddraw && (dwFlags & DISCL_EXCLUSIVE) && !g_ddraw->dinput_show_cursor) { if (g_mouse_locked || g_ddraw->devmode) {