mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
add hack for games that require the cursor to be in the exact center of the screen (Worms 2 / Atlantis)
This commit is contained in:
parent
175d2f5458
commit
518b940365
@ -75,6 +75,7 @@ typedef struct CNCDDRAWCONFIG
|
|||||||
int custom_height;
|
int custom_height;
|
||||||
int min_font_size;
|
int min_font_size;
|
||||||
BOOL direct3d_passthrough;
|
BOOL direct3d_passthrough;
|
||||||
|
BOOL center_cursor_fix;
|
||||||
|
|
||||||
/* Hotkeys */
|
/* Hotkeys */
|
||||||
|
|
||||||
|
@ -88,6 +88,7 @@ void cfg_load()
|
|||||||
GET_INT(g_config.custom_height, "custom_height", 0);
|
GET_INT(g_config.custom_height, "custom_height", 0);
|
||||||
GET_INT(g_config.min_font_size, "min_font_size", 0);
|
GET_INT(g_config.min_font_size, "min_font_size", 0);
|
||||||
GET_BOOL(g_config.direct3d_passthrough, "direct3d_passthrough", FALSE);
|
GET_BOOL(g_config.direct3d_passthrough, "direct3d_passthrough", FALSE);
|
||||||
|
GET_BOOL(g_config.center_cursor_fix, "center_cursor_fix", FALSE);
|
||||||
|
|
||||||
/* Hotkeys */
|
/* Hotkeys */
|
||||||
|
|
||||||
@ -300,6 +301,7 @@ static void cfg_create_ini()
|
|||||||
"custom_height=0\n"
|
"custom_height=0\n"
|
||||||
"min_font_size=0\n"
|
"min_font_size=0\n"
|
||||||
"direct3d_passthrough=false\n"
|
"direct3d_passthrough=false\n"
|
||||||
|
"center_cursor_fix=false\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n"
|
"\n"
|
||||||
@ -433,6 +435,7 @@ static void cfg_create_ini()
|
|||||||
"[ATLANTIS]\n"
|
"[ATLANTIS]\n"
|
||||||
"renderer=opengl\n"
|
"renderer=opengl\n"
|
||||||
"maxgameticks=60\n"
|
"maxgameticks=60\n"
|
||||||
|
"center_cursor_fix=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
"; Airline Tycoon Deluxe\n"
|
"; Airline Tycoon Deluxe\n"
|
||||||
"[AT]\n"
|
"[AT]\n"
|
||||||
@ -1052,6 +1055,7 @@ static void cfg_create_ini()
|
|||||||
"[worms2]\n"
|
"[worms2]\n"
|
||||||
"flipclear=true\n"
|
"flipclear=true\n"
|
||||||
"game_handles_close=true\n"
|
"game_handles_close=true\n"
|
||||||
|
"center_cursor_fix=true\n"
|
||||||
"\n"
|
"\n"
|
||||||
"; Worms Armageddon\n"
|
"; Worms Armageddon\n"
|
||||||
"[WA]\n"
|
"[WA]\n"
|
||||||
|
19
src/dd.c
19
src/dd.c
@ -841,10 +841,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_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.render.unscale_h = ((float)g_ddraw.height / g_ddraw.render.viewport.height);
|
||||||
|
|
||||||
g_ddraw.mouse.scale_x = ((float)(g_ddraw.render.viewport.width - 1) / (g_ddraw.width - 1));
|
/* Hack for games that require the cursor to be in the exact center of the screen (Worms 2 / Atlantis) */
|
||||||
g_ddraw.mouse.scale_y = ((float)(g_ddraw.render.viewport.height - 1) / (g_ddraw.height - 1));
|
if (g_config.center_cursor_fix)
|
||||||
g_ddraw.mouse.unscale_x = ((float)(g_ddraw.width - 1) / (g_ddraw.render.viewport.width - 1));
|
{
|
||||||
g_ddraw.mouse.unscale_y = ((float)(g_ddraw.height - 1) / (g_ddraw.render.viewport.height - 1));
|
g_ddraw.mouse.scale_x = ((float)(g_ddraw.render.viewport.width) / (g_ddraw.width));
|
||||||
|
g_ddraw.mouse.scale_y = ((float)(g_ddraw.render.viewport.height) / (g_ddraw.height));
|
||||||
|
g_ddraw.mouse.unscale_x = ((float)(g_ddraw.width) / (g_ddraw.render.viewport.width));
|
||||||
|
g_ddraw.mouse.unscale_y = ((float)(g_ddraw.height) / (g_ddraw.render.viewport.height));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_ddraw.mouse.scale_x = ((float)(g_ddraw.render.viewport.width - 1) / (g_ddraw.width - 1));
|
||||||
|
g_ddraw.mouse.scale_y = ((float)(g_ddraw.render.viewport.height - 1) / (g_ddraw.height - 1));
|
||||||
|
g_ddraw.mouse.unscale_x = ((float)(g_ddraw.width - 1) / (g_ddraw.render.viewport.width - 1));
|
||||||
|
g_ddraw.mouse.unscale_y = ((float)(g_ddraw.height - 1) / (g_ddraw.render.viewport.height - 1));
|
||||||
|
}
|
||||||
|
|
||||||
g_ddraw.mouse.x_adjust = g_ddraw.render.viewport.x;
|
g_ddraw.mouse.x_adjust = g_ddraw.render.viewport.x;
|
||||||
g_ddraw.mouse.y_adjust = g_ddraw.render.viewport.y;
|
g_ddraw.mouse.y_adjust = g_ddraw.render.viewport.y;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user