mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
#121 fix cursor lock for space rangers
This commit is contained in:
parent
09f57918cb
commit
f23a3e49ba
1
inc/dd.h
1
inc/dd.h
@ -133,6 +133,7 @@ typedef struct CNCDDRAW
|
||||
int fixchilds;
|
||||
BOOL fixwndprochook;
|
||||
BOOL fixnotresponding;
|
||||
BOOL locktopleft;
|
||||
BOOL d3d9linear;
|
||||
BOOL gdilinear;
|
||||
int resolutions;
|
||||
|
@ -39,11 +39,15 @@ void cfg_load()
|
||||
g_ddraw->fixchilds = cfg_get_int("fixchilds", FIX_CHILDS_DETECT_PAINT);
|
||||
g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE);
|
||||
g_ddraw->fixnotresponding = cfg_get_bool("fixnotresponding", FALSE);
|
||||
g_ddraw->locktopleft = cfg_get_bool("locktopleft", FALSE);
|
||||
g_ddraw->releasealt = cfg_get_bool("releasealt", FALSE);
|
||||
g_ddraw->d3d9linear = cfg_get_bool("d3d9linear", TRUE);
|
||||
g_ddraw->gdilinear = cfg_get_bool("gdilinear", FALSE);
|
||||
g_ddraw->resolutions = cfg_get_int("resolutions", RESLIST_NORMAL);
|
||||
|
||||
if (g_ddraw->locktopleft)
|
||||
g_ddraw->adjmouse = FALSE;
|
||||
|
||||
g_ddraw->armadahack = cfg_get_bool("armadahack", FALSE);
|
||||
g_ddraw->tshack = cfg_get_bool("tshack", FALSE);
|
||||
|
||||
@ -819,6 +823,10 @@ static void cfg_create_ini()
|
||||
"[Stronghold Crusader]\n"
|
||||
"adjmouse=true\n"
|
||||
"\n"
|
||||
"; Space Rangers\n"
|
||||
"[Rangers]\n"
|
||||
"locktopleft=true\n"
|
||||
"\n"
|
||||
"; Stronghold Crusader Extreme HD\n"
|
||||
"[Stronghold_Crusader_Extreme]\n"
|
||||
"adjmouse=true\n"
|
||||
|
19
src/dd.c
19
src/dd.c
@ -641,18 +641,21 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
||||
g_ddraw->render.unscale_w = ((float)g_ddraw->width / g_ddraw->render.viewport.width);
|
||||
g_ddraw->render.unscale_h = ((float)g_ddraw->height / g_ddraw->render.viewport.height);
|
||||
|
||||
g_ddraw->mouse.x_adjust = g_ddraw->render.viewport.x;
|
||||
g_ddraw->mouse.y_adjust = g_ddraw->render.viewport.y;
|
||||
if (!g_ddraw->locktopleft)
|
||||
{
|
||||
g_ddraw->mouse.x_adjust = g_ddraw->render.viewport.x;
|
||||
g_ddraw->mouse.y_adjust = g_ddraw->render.viewport.y;
|
||||
}
|
||||
|
||||
g_ddraw->mouse.rc.left = g_ddraw->render.viewport.x;
|
||||
g_ddraw->mouse.rc.top = g_ddraw->render.viewport.y;
|
||||
g_ddraw->mouse.rc.right = g_ddraw->width + g_ddraw->render.viewport.x;
|
||||
g_ddraw->mouse.rc.bottom = g_ddraw->height + g_ddraw->render.viewport.y;
|
||||
g_ddraw->mouse.rc.left = g_ddraw->mouse.x_adjust;;
|
||||
g_ddraw->mouse.rc.top = g_ddraw->mouse.y_adjust;;
|
||||
g_ddraw->mouse.rc.right = g_ddraw->width + g_ddraw->mouse.x_adjust;
|
||||
g_ddraw->mouse.rc.bottom = g_ddraw->height + g_ddraw->mouse.y_adjust;
|
||||
|
||||
if (g_ddraw->adjmouse)
|
||||
{
|
||||
g_ddraw->mouse.rc.right = g_ddraw->render.viewport.width + g_ddraw->render.viewport.x;
|
||||
g_ddraw->mouse.rc.bottom = g_ddraw->render.viewport.height + g_ddraw->render.viewport.y;
|
||||
g_ddraw->mouse.rc.right = g_ddraw->render.viewport.width + g_ddraw->mouse.x_adjust;
|
||||
g_ddraw->mouse.rc.bottom = g_ddraw->render.viewport.height + g_ddraw->mouse.y_adjust;
|
||||
}
|
||||
|
||||
if (nonexclusive || (g_ddraw->nonexclusive && !g_ddraw->windowed && g_ddraw->renderer == ogl_render_main))
|
||||
|
Loading…
x
Reference in New Issue
Block a user