diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index 55fd09a..a0821b9 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -66,13 +66,13 @@ BOOL WINAPI fake_GetCursorPos(LPPOINT lpPoint) if (g_ddraw->adjmouse) { - x = min((DWORD)(roundf(pt.x * g_ddraw->render.unscale_w)), g_ddraw->width); - y = min((DWORD)(roundf(pt.y * g_ddraw->render.unscale_h)), g_ddraw->height); + x = min((DWORD)(roundf(pt.x * g_ddraw->render.unscale_w)), g_ddraw->width - 1); + y = min((DWORD)(roundf(pt.y * g_ddraw->render.unscale_h)), g_ddraw->height - 1); } else { - x = pt.x; - y = pt.y; + x = min(pt.x, g_ddraw->width - 1); + y = min(pt.y, g_ddraw->height - 1); } if (g_ddraw->vhack && InterlockedExchangeAdd(&g_ddraw->upscale_hack_active, 0)) diff --git a/src/wndproc.c b/src/wndproc.c index f52f317..b10c797 100644 --- a/src/wndproc.c +++ b/src/wndproc.c @@ -736,8 +736,8 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam } } - x = min(x, g_ddraw->width); - y = min(y, g_ddraw->height); + x = min(x, g_ddraw->width - 1); + y = min(y, g_ddraw->height - 1); InterlockedExchange((LONG*)&g_ddraw->cursor.x, x); InterlockedExchange((LONG*)&g_ddraw->cursor.y, y);