mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-22 12:01:41 +00:00
Allow to draw cursor outside visible area to avoid weird jumping around edges when pointing outside
This commit is contained in:
parent
0e99425a79
commit
36222228bb
2 changed files with 16 additions and 25 deletions
|
@ -915,27 +915,23 @@ UI_MouseEvent
|
||||||
void UI_MouseEvent( int dx, int dy )
|
void UI_MouseEvent( int dx, int dy )
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int bias;
|
|
||||||
menucommon_s* m;
|
menucommon_s* m;
|
||||||
|
|
||||||
if (!uis.activemenu)
|
if (!uis.activemenu)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// convert X bias to 640 coords
|
|
||||||
bias = uis.bias / UI_GetXScale();
|
|
||||||
|
|
||||||
// update mouse screen position
|
// update mouse screen position
|
||||||
uis.cursorx += dx;
|
uis.cursorx += dx;
|
||||||
if (uis.cursorx < -bias)
|
if (uis.cursorx < -16)
|
||||||
uis.cursorx = -bias;
|
uis.cursorx = -16;
|
||||||
else if (uis.cursorx > SCREEN_WIDTH+bias)
|
else if (uis.cursorx > SCREEN_WIDTH+16)
|
||||||
uis.cursorx = SCREEN_WIDTH+bias;
|
uis.cursorx = SCREEN_WIDTH+16;
|
||||||
|
|
||||||
uis.cursory += dy;
|
uis.cursory += dy;
|
||||||
if (uis.cursory < 0)
|
if (uis.cursory < -16)
|
||||||
uis.cursory = 0;
|
uis.cursory = -16;
|
||||||
else if (uis.cursory > SCREEN_HEIGHT)
|
else if (uis.cursory > SCREEN_HEIGHT+16)
|
||||||
uis.cursory = SCREEN_HEIGHT;
|
uis.cursory = SCREEN_HEIGHT+16;
|
||||||
|
|
||||||
vr->menuCursorX = &uis.cursorx;
|
vr->menuCursorX = &uis.cursorx;
|
||||||
vr->menuCursorY = &uis.cursory;
|
vr->menuCursorY = &uis.cursory;
|
||||||
|
|
|
@ -5259,23 +5259,18 @@ UI_MouseEvent
|
||||||
*/
|
*/
|
||||||
void _UI_MouseEvent( int dx, int dy )
|
void _UI_MouseEvent( int dx, int dy )
|
||||||
{
|
{
|
||||||
int bias;
|
|
||||||
|
|
||||||
// convert X bias to 640 coords
|
|
||||||
bias = uiInfo.uiDC.bias / uiInfo.uiDC.xscale;
|
|
||||||
|
|
||||||
// update mouse screen position
|
// update mouse screen position
|
||||||
uiInfo.uiDC.cursorx += dx;
|
uiInfo.uiDC.cursorx += dx;
|
||||||
if (uiInfo.uiDC.cursorx < -bias)
|
if (uiInfo.uiDC.cursorx < -16)
|
||||||
uiInfo.uiDC.cursorx = -bias;
|
uiInfo.uiDC.cursorx = -16;
|
||||||
else if (uiInfo.uiDC.cursorx > SCREEN_WIDTH+bias)
|
else if (uiInfo.uiDC.cursorx > SCREEN_WIDTH+16)
|
||||||
uiInfo.uiDC.cursorx = SCREEN_WIDTH+bias;
|
uiInfo.uiDC.cursorx = SCREEN_WIDTH+16;
|
||||||
|
|
||||||
uiInfo.uiDC.cursory += dy;
|
uiInfo.uiDC.cursory += dy;
|
||||||
if (uiInfo.uiDC.cursory < 0)
|
if (uiInfo.uiDC.cursory < -16)
|
||||||
uiInfo.uiDC.cursory = 0;
|
uiInfo.uiDC.cursory = -16;
|
||||||
else if (uiInfo.uiDC.cursory > SCREEN_HEIGHT)
|
else if (uiInfo.uiDC.cursory > SCREEN_HEIGHT+16)
|
||||||
uiInfo.uiDC.cursory = SCREEN_HEIGHT;
|
uiInfo.uiDC.cursory = SCREEN_HEIGHT+16;
|
||||||
|
|
||||||
vr->menuCursorX = &uiInfo.uiDC.cursorx;
|
vr->menuCursorX = &uiInfo.uiDC.cursorx;
|
||||||
vr->menuCursorY = &uiInfo.uiDC.cursory;
|
vr->menuCursorY = &uiInfo.uiDC.cursory;
|
||||||
|
|
Loading…
Reference in a new issue