From d0b377e41f49da902b11bcc309f1ae23e0606540 Mon Sep 17 00:00:00 2001 From: Inori Date: Thu, 22 Aug 2019 21:33:33 -0400 Subject: [PATCH] Use eventthread keystates instead of SDL_GetKeyboardState --- binding/miniffi-binding.cpp | 2 +- src/fake-api.cpp | 4 ++-- src/fake-api.h | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/binding/miniffi-binding.cpp b/binding/miniffi-binding.cpp index a5de5930..78c70df8 100644 --- a/binding/miniffi-binding.cpp +++ b/binding/miniffi-binding.cpp @@ -64,8 +64,8 @@ MiniFFI_GetFunctionHandle(void *libhandle, const char *func) CAPTURE(LoadLibrary); CAPTURE(FreeLibrary); #endif - if (!libhandle) return 0; #endif + if (!libhandle) return 0; return SDL_LoadFunction(libhandle, func); } diff --git a/src/fake-api.cpp b/src/fake-api.cpp index 2458d5f2..108ab0b6 100644 --- a/src/fake-api.cpp +++ b/src/fake-api.cpp @@ -240,7 +240,7 @@ MKXP_FindWindowEx(HWND hWnd, return wm.info.win.window; } #else -NOP_VAL(DUMMY_VAL) +NOP_VAL((HWND)DUMMY_VAL) #endif PREFABI DWORD @@ -340,7 +340,7 @@ MKXP_GetKeyboardState(PBYTE lpKeyState) bool rc = GetKeyboardState(lpKeyState); if (rc) { - const char *sdlkeystate = (const char*)SDL_GetKeyboardState(0); + const char *sdlkeystate = shState->eThread().keystates lpKeyState[VK_LSHIFT] = sdlkeystate[SDL_SCANCODE_LSHIFT] << 7; lpKeyState[VK_RSHIFT] = sdlkeystate[SDL_SCANCODE_RSHIFT] << 7; lpKeyState[VK_SHIFT] = (lpKeyState[VK_LSHIFT] || lpKeyState[VK_RSHIFT]) ? 0x80 : 0; diff --git a/src/fake-api.h b/src/fake-api.h index e83b1d3f..9e4b6380 100644 --- a/src/fake-api.h +++ b/src/fake-api.h @@ -13,10 +13,8 @@ #define PREFABI #endif - - #ifndef __WIN32__ -typedef unsigned int HWND, DWORD, UINT, *LPDWORD; +typedef unsigned int DWORD, UINT, *LPDWORD; typedef char *LPCSTR, *PBYTE; typedef int LONG; typedef bool BOOL; @@ -30,7 +28,7 @@ typedef struct { LONG right; LONG bottom; } RECT, *PRECT, *NPRECT, *LPRECT; -typedef void VOID, *LPVOID, *HANDLE, *HMODULE; +typedef void VOID, *LPVOID, *HANDLE, *HMODULE, *HWND; typedef size_t SIZE_T; extern std::map vKeyToScancode;