1
0
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:
FunkyFr3sh 2021-09-19 04:24:22 +02:00
parent 09f57918cb
commit f23a3e49ba
3 changed files with 20 additions and 8 deletions

View File

@ -133,6 +133,7 @@ typedef struct CNCDDRAW
int fixchilds;
BOOL fixwndprochook;
BOOL fixnotresponding;
BOOL locktopleft;
BOOL d3d9linear;
BOOL gdilinear;
int resolutions;

View File

@ -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"

View File

@ -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))