From f400504dd8bd4488a956428df039908cb6d3b713 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Thu, 8 Aug 2019 03:19:15 +0200 Subject: [PATCH] clean up bnet related code --- inc/main.h | 1 - src/main.c | 27 +++------------------------ src/mouse.c | 11 ++++++----- src/settings.c | 11 ----------- src/surface.c | 2 +- 5 files changed, 10 insertions(+), 42 deletions(-) diff --git a/inc/main.h b/inc/main.h index 7d6dcbb..7a81d2d 100644 --- a/inc/main.h +++ b/inc/main.h @@ -125,7 +125,6 @@ typedef struct IDirectDrawImpl BOOL altenter; BOOL hidecursor; BOOL accurateTimers; - int bnetHack; BOOL bnetActive; BOOL bnetD3d9Fullscreen; SpeedLimiter ticksLimiter; diff --git a/src/main.c b/src/main.c index 39bcc11..df41f6e 100644 --- a/src/main.c +++ b/src/main.c @@ -818,7 +818,7 @@ HRESULT __stdcall ddraw_SetDisplayMode(IDirectDrawImpl *This, DWORD width, DWORD } } - if (!ddraw->windowed && ddraw->bnetHack && ddraw->renderer == render_main) + if (!ddraw->windowed && ddraw->renderer == render_main) This->render.height++; if (!ddraw->handlemouse) @@ -944,7 +944,7 @@ HRESULT __stdcall ddraw_SetDisplayMode2(IDirectDrawImpl *This, DWORD width, DWOR void ToggleFullscreen() { - if (ddraw->bnetHack && ddraw->bnetActive && ddraw->renderer == render_d3d9_main) + if (ddraw->bnetActive && ddraw->renderer == render_d3d9_main) return; if (ddraw->windowed) @@ -1248,7 +1248,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) int x = (int)(short)LOWORD(lParam); int y = (int)(short)HIWORD(lParam); - if (ddraw->bnetHack && x != -32000 && y != -32000) + if (ddraw->bnetActive && x != -32000 && y != -32000) UpdateBnetPos(x, y); if (inSizeMove || ddraw->wine) @@ -1716,16 +1716,6 @@ HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACK lpCallback, LPVOID lpContex return DD_OK; } -//Force redraw when the "Player Profile" screen exits - Idea taken from Aqrit's war2 ddraw -static WNDPROC ButtonWndProc_original; -LRESULT __stdcall ButtonWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - if (msg == WM_DESTROY) - RedrawWindow(NULL, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); - - return ButtonWndProc_original(hwnd, msg, wParam, lParam); -} - int stdout_open = 0; HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnknown FAR* pUnkOuter) { @@ -1778,16 +1768,5 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk Settings_Load(); - if (ddraw->bnetHack) - { - WNDCLASS wc; - HINSTANCE hInst = GetModuleHandle(NULL); - GetClassInfo(NULL, "Button", &wc); - wc.hInstance = hInst; - ButtonWndProc_original = wc.lpfnWndProc; - wc.lpfnWndProc = ButtonWndProc; - RegisterClass(&wc); - } - return DD_OK; } diff --git a/src/mouse.c b/src/mouse.c index 3b571c8..5e000c2 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -143,7 +143,7 @@ void mouse_lock() { RECT rc; - if (ddraw->bnetHack && ddraw->bnetActive) + if (ddraw->bnetActive) return; if (ddraw->devmode) @@ -416,8 +416,7 @@ BOOL WINAPI fake_EnableWindow(HWND hWnd, BOOL bEnable) { if (ddraw && ddraw->hWnd == hWnd) { - if (ddraw->bnetHack) - return FALSE; + return FALSE; } return real_EnableWindow(hWnd, bEnable); @@ -427,7 +426,9 @@ BOOL WINAPI fake_DestroyWindow(HWND hWnd) { BOOL result = real_DestroyWindow(hWnd); - if (ddraw && ddraw->hWnd != hWnd && ddraw->bnetActive && ddraw->bnetHack && !FindWindowEx(HWND_DESKTOP, NULL, "SDlgDialog", NULL)) + RedrawWindow(NULL, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_ALLCHILDREN); + + if (ddraw && ddraw->hWnd != hWnd && ddraw->bnetActive && !FindWindowEx(HWND_DESKTOP, NULL, "SDlgDialog", NULL)) { ddraw->bnetActive = FALSE; mouse_lock(); @@ -446,7 +447,7 @@ HWND WINAPI fake_CreateWindowExA( DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam) { - if (lpClassName && _strcmpi(lpClassName, "SDlgDialog") == 0 && ddraw && ddraw->bnetHack) + if (lpClassName && _strcmpi(lpClassName, "SDlgDialog") == 0 && ddraw) { if (!ddraw->bnetActive) { diff --git a/src/settings.c b/src/settings.c index 61b4c71..160f7c8 100644 --- a/src/settings.c +++ b/src/settings.c @@ -42,7 +42,6 @@ void Settings_Load() ddraw->noactivateapp = GetBool("noactivateapp", FALSE); ddraw->vhack = GetBool("vhack", FALSE); ddraw->accurateTimers = GetBool("accuratetimers", FALSE); - ddraw->bnetHack = GetBool("bnetHack", TRUE); WindowRect.right = GetInt("width", 0); WindowRect.bottom = GetInt("height", 0); @@ -284,9 +283,6 @@ static void CreateSettingsIni() "; Note: Can be used to fix issues related to new features added by cnc-ddraw such as windowed mode or stretching\n" "hook=1\n" "\n" - "; Workaround for battle.net on Diablo and Warcraft 2 BNE\n" - "bnetHack=true\n" - "\n" "\n" "\n" "; ### Game specific settings ###\n" @@ -411,13 +407,6 @@ static void CreateSettingsIni() "noactivateapp=true\n" "handlemouse=false\n" "maxfps=60\n" - "; Diablo\n" - "[Diablo]\n" - "bnetHack=true\n" - "\n" - "; Warcraft 2 Battle.net Edition\n" - "[Warcraft II BNE]\n" - "bnetHack=true\n" "\n" , fh); diff --git a/src/surface.c b/src/surface.c index 749792f..5de71f1 100644 --- a/src/surface.c +++ b/src/surface.c @@ -1005,7 +1005,7 @@ HRESULT __stdcall ddraw_surface_Unlock(IDirectDrawSurfaceImpl *This, LPVOID lpRe printf("DirectDrawSurface::Unlock(This=%p, lpRect=%p)\n", This, lpRect); #endif - HWND hWnd = ddraw->bnetHack ? FindWindowEx(HWND_DESKTOP, NULL, "SDlgDialog", NULL) : NULL; + HWND hWnd = ddraw->bnetActive ? FindWindowEx(HWND_DESKTOP, NULL, "SDlgDialog", NULL) : NULL; if (hWnd && (This->caps & DDSCAPS_PRIMARYSURFACE)) { if (ddraw->primary->palette && ddraw->primary->palette->data_rgb)