mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
add new optionm to fixchild= ini setting
This commit is contained in:
parent
a6adda6ace
commit
efb524ee4d
2
inc/dd.h
2
inc/dd.h
@ -32,6 +32,7 @@ HRESULT dd_CreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOute
|
|||||||
#define FIX_CHILDS_DETECT 1
|
#define FIX_CHILDS_DETECT 1
|
||||||
#define FIX_CHILDS_DETECT_PAINT 2
|
#define FIX_CHILDS_DETECT_PAINT 2
|
||||||
#define FIX_CHILDS_DETECT_HIDE 3
|
#define FIX_CHILDS_DETECT_HIDE 3
|
||||||
|
#define FIX_CHILDS_DETECT_HIDE_NOSCALE 4
|
||||||
|
|
||||||
#define RESLIST_NORMAL 0
|
#define RESLIST_NORMAL 0
|
||||||
#define RESLIST_MINI 1
|
#define RESLIST_MINI 1
|
||||||
@ -150,7 +151,6 @@ typedef struct CNCDDRAW
|
|||||||
void* last_freed_palette; /* Dungeon Keeper hack */
|
void* last_freed_palette; /* Dungeon Keeper hack */
|
||||||
void* last_freed_surface; /* Nox hack */
|
void* last_freed_surface; /* Nox hack */
|
||||||
BOOL child_window_exists;
|
BOOL child_window_exists;
|
||||||
HWND video_window_hwnd;
|
|
||||||
BOOL got_child_windows;
|
BOOL got_child_windows;
|
||||||
DWORD last_set_window_pos_tick; /* WINE hack */
|
DWORD last_set_window_pos_tick; /* WINE hack */
|
||||||
SPEEDLIMITER ticks_limiter;
|
SPEEDLIMITER ticks_limiter;
|
||||||
|
@ -291,7 +291,7 @@ static void cfg_create_ini()
|
|||||||
"; Note: Set this to 1 if the game is crashing on startup\n"
|
"; Note: Set this to 1 if the game is crashing on startup\n"
|
||||||
"resolutions=0\n"
|
"resolutions=0\n"
|
||||||
"\n"
|
"\n"
|
||||||
"; Child window handling, possible values: 0 = Disabled, 1 = Display top left, 2 = Display top left + repaint, 3 = Hide\n"
|
"; Child window handling, possible values: 0 = Disabled, 1 = Display top left, 2 = Display top left + repaint, 3 = Hide, 4 = Display top left + hide\n"
|
||||||
"; Note: Disables upscaling if a child window was detected (to ensure the game is fully playable, may look weird though)\n"
|
"; Note: Disables upscaling if a child window was detected (to ensure the game is fully playable, may look weird though)\n"
|
||||||
"fixchilds=2\n"
|
"fixchilds=2\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -634,7 +634,6 @@ DWORD WINAPI d3d9_render_main(void)
|
|||||||
if (g_config.fixchilds)
|
if (g_config.fixchilds)
|
||||||
{
|
{
|
||||||
g_ddraw.child_window_exists = FALSE;
|
g_ddraw.child_window_exists = FALSE;
|
||||||
InterlockedExchangePointer((void*)&g_ddraw.video_window_hwnd, NULL);
|
|
||||||
EnumChildWindows(g_ddraw.hwnd, util_enum_child_proc, (LPARAM)g_ddraw.primary);
|
EnumChildWindows(g_ddraw.hwnd, util_enum_child_proc, (LPARAM)g_ddraw.primary);
|
||||||
|
|
||||||
if (g_ddraw.render.width != g_ddraw.width || g_ddraw.render.height != g_ddraw.height)
|
if (g_ddraw.render.width != g_ddraw.width || g_ddraw.render.height != g_ddraw.height)
|
||||||
|
@ -85,7 +85,6 @@ DWORD WINAPI gdi_render_main(void)
|
|||||||
if (g_config.fixchilds)
|
if (g_config.fixchilds)
|
||||||
{
|
{
|
||||||
g_ddraw.child_window_exists = FALSE;
|
g_ddraw.child_window_exists = FALSE;
|
||||||
InterlockedExchangePointer((void*)&g_ddraw.video_window_hwnd, NULL);
|
|
||||||
EnumChildWindows(g_ddraw.hwnd, util_enum_child_proc, (LPARAM)g_ddraw.primary);
|
EnumChildWindows(g_ddraw.hwnd, util_enum_child_proc, (LPARAM)g_ddraw.primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1034,7 +1034,6 @@ static void ogl_render()
|
|||||||
if (g_config.fixchilds)
|
if (g_config.fixchilds)
|
||||||
{
|
{
|
||||||
g_ddraw.child_window_exists = FALSE;
|
g_ddraw.child_window_exists = FALSE;
|
||||||
InterlockedExchangePointer((void*)&g_ddraw.video_window_hwnd, NULL);
|
|
||||||
EnumChildWindows(g_ddraw.hwnd, util_enum_child_proc, (LPARAM)g_ddraw.primary);
|
EnumChildWindows(g_ddraw.hwnd, util_enum_child_proc, (LPARAM)g_ddraw.primary);
|
||||||
|
|
||||||
if (g_ddraw.render.width != g_ddraw.width || g_ddraw.render.height != g_ddraw.height)
|
if (g_ddraw.render.width != g_ddraw.width || g_ddraw.render.height != g_ddraw.height)
|
||||||
|
@ -861,6 +861,7 @@ BOOL CALLBACK util_enum_child_proc(HWND hwnd, LPARAM lparam)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
if (g_config.fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
if (g_config.fixchilds == FIX_CHILDS_DETECT_HIDE ||
|
||||||
|
g_config.fixchilds == FIX_CHILDS_DETECT_HIDE_NOSCALE ||
|
||||||
strcmp(class_name, "msctls_statusbar32") == 0 ||
|
strcmp(class_name, "msctls_statusbar32") == 0 ||
|
||||||
strcmp(class_name, "VideoRenderer") == 0 ||
|
strcmp(class_name, "VideoRenderer") == 0 ||
|
||||||
strcmp(class_name, "MCIQTZ_Window") == 0 ||
|
strcmp(class_name, "MCIQTZ_Window") == 0 ||
|
||||||
@ -869,9 +870,9 @@ BOOL CALLBACK util_enum_child_proc(HWND hwnd, LPARAM lparam)
|
|||||||
strcmp(class_name, "MCIWndClass") == 0 ||
|
strcmp(class_name, "MCIWndClass") == 0 ||
|
||||||
strcmp(class_name, "AVI Window") == 0)
|
strcmp(class_name, "AVI Window") == 0)
|
||||||
{
|
{
|
||||||
if (g_config.fixchilds != FIX_CHILDS_DETECT_HIDE)
|
if (g_config.fixchilds == FIX_CHILDS_DETECT_HIDE_NOSCALE)
|
||||||
{
|
{
|
||||||
InterlockedExchangePointer((void*)&g_ddraw.video_window_hwnd, hwnd);
|
g_ddraw.got_child_windows = g_ddraw.child_window_exists = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(exstyle & WS_EX_TRANSPARENT))
|
if (!(exstyle & WS_EX_TRANSPARENT))
|
||||||
|
@ -830,13 +830,6 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
HWND video_hwnd = (HWND)InterlockedExchangeAdd((LONG*)&g_ddraw.video_window_hwnd, 0);
|
|
||||||
if (video_hwnd)
|
|
||||||
{
|
|
||||||
//PostMessageA(video_hwnd, uMsg, wParam, lParam);
|
|
||||||
//return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WM_KEYUP:
|
case WM_KEYUP:
|
||||||
@ -847,13 +840,6 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
if (g_config.hotkeys.screenshot && wParam == g_config.hotkeys.screenshot)
|
if (g_config.hotkeys.screenshot && wParam == g_config.hotkeys.screenshot)
|
||||||
ss_take_screenshot(g_ddraw.primary);
|
ss_take_screenshot(g_ddraw.primary);
|
||||||
|
|
||||||
HWND video_hwnd = (HWND)InterlockedExchangeAdd((LONG*)&g_ddraw.video_window_hwnd, 0);
|
|
||||||
if (video_hwnd)
|
|
||||||
{
|
|
||||||
//PostMessageA(video_hwnd, uMsg, wParam, lParam);
|
|
||||||
//return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/* button up messages reactivate cursor lock */
|
/* button up messages reactivate cursor lock */
|
||||||
@ -945,13 +931,6 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
|
|
||||||
lParam = MAKELPARAM(x, y);
|
lParam = MAKELPARAM(x, y);
|
||||||
|
|
||||||
HWND video_hwnd = (HWND)InterlockedExchangeAdd((LONG*)&g_ddraw.video_window_hwnd, 0);
|
|
||||||
if (video_hwnd)
|
|
||||||
{
|
|
||||||
//PostMessageA(video_hwnd, uMsg, wParam, lParam);
|
|
||||||
//return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WM_PARENTNOTIFY:
|
case WM_PARENTNOTIFY:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user