1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-25 01:57:47 +01:00

replace IsIconic with custom function

This commit is contained in:
FunkyFr3sh 2023-08-20 23:12:00 +02:00
parent 5c23d2d8a5
commit 66e86aa37c
7 changed files with 17 additions and 8 deletions

View File

@ -5,6 +5,7 @@
#include <windows.h> #include <windows.h>
BOOL util_is_minimized(HWND hwnd);
BOOL util_is_avx_supported(); BOOL util_is_avx_supported();
void util_limit_game_ticks(); void util_limit_game_ticks();
void util_update_bnet_pos(int newX, int newY); void util_update_bnet_pos(int newX, int newY);

View File

@ -861,7 +861,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
x = y = 0; x = y = 0;
} }
if (IsIconic(g_ddraw->hwnd)) if (util_is_minimized(g_ddraw->hwnd))
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE); real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
RECT dst = { x, y, g_ddraw->render.width + x, g_ddraw->render.height + y }; RECT dst = { x, y, g_ddraw->render.width + x, g_ddraw->render.height + y };
@ -930,7 +930,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
{ {
if (g_ddraw->nonexclusive) if (g_ddraw->nonexclusive)
{ {
if (IsIconic(g_ddraw->hwnd)) if (util_is_minimized(g_ddraw->hwnd))
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE); real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
real_SetWindowPos( real_SetWindowPos(
@ -972,7 +972,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
real_GetWindowLongA(g_ddraw->hwnd, GWL_STYLE) | WS_MINIMIZEBOX); real_GetWindowLongA(g_ddraw->hwnd, GWL_STYLE) | WS_MINIMIZEBOX);
} }
if (IsIconic(g_ddraw->hwnd)) if (util_is_minimized(g_ddraw->hwnd))
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE); real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
real_SetWindowPos( real_SetWindowPos(

View File

@ -206,7 +206,7 @@ int dbg_printf(const char* fmt, ...)
void dbg_print_rect(char* info, LPRECT rect) void dbg_print_rect(char* info, LPRECT rect)
{ {
#ifdef _DEBUG_X #ifdef _DEBUG
if (rect) if (rect)
{ {
TRACE( TRACE(

View File

@ -3,6 +3,7 @@
#include "winapi_hooks.h" #include "winapi_hooks.h"
#include "dd.h" #include "dd.h"
#include "hook.h" #include "hook.h"
#include "utils.h"
BOOL g_mouse_locked; BOOL g_mouse_locked;
@ -14,7 +15,7 @@ void mouse_lock()
if (g_ddraw->devmode || g_ddraw->bnet_active || !g_ddraw->hwnd) if (g_ddraw->devmode || g_ddraw->bnet_active || !g_ddraw->hwnd)
return; return;
if (g_hook_active && !g_mouse_locked && !IsIconic(g_ddraw->hwnd)) if (g_hook_active && !g_mouse_locked && !util_is_minimized(g_ddraw->hwnd))
{ {
int game_count = InterlockedExchangeAdd((LONG*)&g_ddraw->show_cursor_count, 0); int game_count = InterlockedExchangeAdd((LONG*)&g_ddraw->show_cursor_count, 0);
int cur_count = real_ShowCursor(TRUE) - 1; int cur_count = real_ShowCursor(TRUE) - 1;

View File

@ -11,6 +11,13 @@
#include "config.h" #include "config.h"
BOOL util_is_minimized(HWND hwnd)
{
RECT rc = { 0 };
return IsIconic(hwnd) || (real_GetClientRect(hwnd, &rc) && (rc.right - rc.left == 0 || rc.bottom - rc.top == 0));
}
BOOL util_is_avx_supported() BOOL util_is_avx_supported()
{ {
const DWORD XMM_STATE_BIT = 1 << 1; const DWORD XMM_STATE_BIT = 1 << 1;

View File

@ -170,7 +170,7 @@ BOOL WINAPI fake_ClipCursor(const RECT* lpRect)
CopyRect(&g_ddraw->mouse.rc, &dst_rc); CopyRect(&g_ddraw->mouse.rc, &dst_rc);
if (g_mouse_locked && !IsIconic(g_ddraw->hwnd)) if (g_mouse_locked && !util_is_minimized(g_ddraw->hwnd))
{ {
real_MapWindowPoints(g_ddraw->hwnd, HWND_DESKTOP, (LPPOINT)&dst_rc, 2); real_MapWindowPoints(g_ddraw->hwnd, HWND_DESKTOP, (LPPOINT)&dst_rc, 2);

View File

@ -137,7 +137,7 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
} }
case WM_D3D9DEVICELOST: case WM_D3D9DEVICELOST:
{ {
if (((!g_ddraw->windowed && !g_ddraw->nonexclusive) || !IsIconic(g_ddraw->hwnd)) && if (((!g_ddraw->windowed && !g_ddraw->nonexclusive) || !util_is_minimized(g_ddraw->hwnd)) &&
g_ddraw->renderer == d3d9_render_main && g_ddraw->renderer == d3d9_render_main &&
d3d9_on_device_lost()) d3d9_on_device_lost())
{ {
@ -531,7 +531,7 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
{ {
if (g_ddraw->renderer == d3d9_render_main) /* Needed for Windows 7 */ if (g_ddraw->renderer == d3d9_render_main) /* Needed for Windows 7 */
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE); real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
ChangeDisplaySettings(&g_ddraw->render.mode, CDS_FULLSCREEN); ChangeDisplaySettings(&g_ddraw->render.mode, CDS_FULLSCREEN);
real_ShowWindow(g_ddraw->hwnd, SW_RESTORE); real_ShowWindow(g_ddraw->hwnd, SW_RESTORE);
mouse_lock(); mouse_lock();