From 6966af57acd61b995aded89c8011fa4f05535a2f Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Thu, 19 Dec 2002 13:59:40 +0000 Subject: [PATCH] Added mickey/pixel rate New mouse int vector for weird mouse detection routines in some games Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@584 --- src/ints/mouse.cpp | 92 ++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 77 insertions(+), 15 deletions(-) diff --git a/src/ints/mouse.cpp b/src/ints/mouse.cpp index 912bd469..0a962314 100644 --- a/src/ints/mouse.cpp +++ b/src/ints/mouse.cpp @@ -29,6 +29,9 @@ static Bitu call_int33,call_int74; +// forward +void WriteMouseIntVector(void); + struct button_event { Bit16u type; Bit16u buttons; @@ -90,6 +93,12 @@ static struct { Bit16s clipx,clipy; Bit16s hotx,hoty; Bit16u textAndMask, textXorMask; + + float mickeysPerPixel_x; + float mickeysPerPixel_y; + float pixelPerMickey_x; + float pixelPerMickey_y; + } mouse; #define X_MICKEY 8 @@ -306,12 +315,17 @@ void DrawCursor() { } void Mouse_CursorMoved(float x,float y) { - mouse.mickey_x+=x; - mouse.mickey_y+=y; - mouse.x+=x; + + float dx = x * mouse.pixelPerMickey_x; + float dy = y * mouse.pixelPerMickey_y; + + mouse.mickey_x += dx; + mouse.mickey_y += dy; + + mouse.x += dx; if (mouse.x>mouse.max_x) mouse.x=mouse.max_x;; if (mouse.xmouse.max_y) mouse.y=mouse.max_y;; if (mouse.y