Compare commits

...

9 commits

Author SHA1 Message Date
FunkyFr3sh
05c1b2da67 use proper window size 2024-03-28 05:54:56 +01:00
FunkyFr3sh
f08a7e6688 add some more checks 2024-03-28 05:40:38 +01:00
FunkyFr3sh
f3672b5315 let game handle window close so it can restore the original cursor 2024-03-18 01:10:04 +01:00
FunkyFr3sh
c7fc076fdb modify temp hack (it didn't work in all cases) 2024-03-18 00:19:58 +01:00
FunkyFr3sh
e6ef861cfd fix keyboard not working with devmode TRUE 2024-03-18 00:16:38 +01:00
FunkyFr3sh
f6f3c762e6 add temporary hack for testing - Fixes bad winodw size 2024-03-17 23:36:27 +01:00
FunkyFr3sh
38c0f9e989 Revert "fix window size"
This reverts commit 559232eb85.
2024-03-17 22:51:13 +01:00
FunkyFr3sh
559232eb85 fix window size 2024-03-17 22:47:13 +01:00
FunkyFr3sh
ab88cb0bc4 experimental WinBolo support 2024-03-17 22:23:39 +01:00
3 changed files with 36 additions and 12 deletions

View file

@ -14,6 +14,7 @@
#include "debug.h" #include "debug.h"
#include "utils.h" #include "utils.h"
#include "blt.h" #include "blt.h"
#include "dllmain.h"
CNCDDRAW* g_ddraw = NULL; CNCDDRAW* g_ddraw = NULL;
@ -931,15 +932,17 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
AdjustWindowRectEx(&dst, style, GetMenu(g_ddraw->hwnd) != NULL, exstyle); AdjustWindowRectEx(&dst, style, GetMenu(g_ddraw->hwnd) != NULL, exstyle);
real_SetWindowPos( if (!(dwFlags & 8))
g_ddraw->hwnd, {
HWND_NOTOPMOST, real_SetWindowPos(
dst.left, g_ddraw->hwnd,
dst.top, HWND_NOTOPMOST,
(dst.right - dst.left), dst.left,
(dst.bottom - dst.top), dst.top,
SWP_SHOWWINDOW | SWP_FRAMECHANGED); (dst.right - dst.left),
(dst.bottom - dst.top),
SWP_SHOWWINDOW | SWP_FRAMECHANGED);
}
BOOL d3d9_active = FALSE; BOOL d3d9_active = FALSE;
@ -1103,7 +1106,12 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
if (hwnd == NULL) if (hwnd == NULL)
{ {
return DD_OK; if (dwFlags & DDSCL_NORMAL)
{
hwnd = *(HWND*)0x46B4D8;
}
else
return DD_OK;
} }
if (g_ddraw->hwnd == NULL) if (g_ddraw->hwnd == NULL)
@ -1215,6 +1223,14 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
{ {
dd_SetDisplayMode(640, 480, 16, 0); dd_SetDisplayMode(640, 480, 16, 0);
} }
else
{
GameHandlesClose = TRUE;
g_config.devmode = TRUE;
g_config.fullscreen = FALSE;
g_config.windowed = TRUE;
dd_SetDisplayMode(515, 325, 32, 8);
}
} }
return DD_OK; return DD_OK;

View file

@ -69,7 +69,7 @@ static HRESULT WINAPI fake_did_GetDeviceData(
HRESULT result = real_did_GetDeviceData(This, cbObjectData, rgdod, pdwInOut, dwFlags); HRESULT result = real_did_GetDeviceData(This, cbObjectData, rgdod, pdwInOut, dwFlags);
if (SUCCEEDED(result) && g_ddraw && !g_mouse_locked) if (SUCCEEDED(result) && g_ddraw && !g_mouse_locked && !g_config.devmode)
{ {
if (pdwInOut) if (pdwInOut)
{ {
@ -91,7 +91,7 @@ static HRESULT WINAPI fake_did_GetDeviceState(IDirectInputDeviceA* This, DWORD c
HRESULT result = real_did_GetDeviceState(This, cbData, lpvData); HRESULT result = real_did_GetDeviceState(This, cbData, lpvData);
if (SUCCEEDED(result) && g_ddraw && !g_mouse_locked) if (SUCCEEDED(result) && g_ddraw && !g_mouse_locked && !g_config.devmode)
{ {
if (cbData > 0 && lpvData) if (cbData > 0 && lpvData)
{ {

View file

@ -446,6 +446,14 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN); RedrawWindow(hWnd, NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN);
} }
static BOOL initialized = FALSE;
if (!initialized && (LOWORD(lParam) >= 460 && LOWORD(lParam) <= 540) && HIWORD(lParam) < 350 && GetMenu(g_ddraw->hwnd))
{
initialized = TRUE;
dd_SetDisplayMode(515, 325, 32, 0);
}
return DefWindowProc(hWnd, uMsg, wParam, lParam); /* Carmageddon fix */ return DefWindowProc(hWnd, uMsg, wParam, lParam); /* Carmageddon fix */
} }
case WM_MOVE: case WM_MOVE: