Compare commits
9 commits
Author | SHA1 | Date | |
---|---|---|---|
|
05c1b2da67 | ||
|
f08a7e6688 | ||
|
f3672b5315 | ||
|
c7fc076fdb | ||
|
e6ef861cfd | ||
|
f6f3c762e6 | ||
|
38c0f9e989 | ||
|
559232eb85 | ||
|
ab88cb0bc4 |
3 changed files with 36 additions and 12 deletions
18
src/dd.c
18
src/dd.c
|
@ -14,6 +14,7 @@
|
|||
#include "debug.h"
|
||||
#include "utils.h"
|
||||
#include "blt.h"
|
||||
#include "dllmain.h"
|
||||
|
||||
|
||||
CNCDDRAW* g_ddraw = NULL;
|
||||
|
@ -931,6 +932,8 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||
|
||||
AdjustWindowRectEx(&dst, style, GetMenu(g_ddraw->hwnd) != NULL, exstyle);
|
||||
|
||||
if (!(dwFlags & 8))
|
||||
{
|
||||
real_SetWindowPos(
|
||||
g_ddraw->hwnd,
|
||||
HWND_NOTOPMOST,
|
||||
|
@ -939,7 +942,7 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl
|
|||
(dst.right - dst.left),
|
||||
(dst.bottom - dst.top),
|
||||
SWP_SHOWWINDOW | SWP_FRAMECHANGED);
|
||||
|
||||
}
|
||||
|
||||
BOOL d3d9_active = FALSE;
|
||||
|
||||
|
@ -1103,6 +1106,11 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
|
|||
|
||||
if (hwnd == NULL)
|
||||
{
|
||||
if (dwFlags & DDSCL_NORMAL)
|
||||
{
|
||||
hwnd = *(HWND*)0x46B4D8;
|
||||
}
|
||||
else
|
||||
return DD_OK;
|
||||
}
|
||||
|
||||
|
@ -1215,6 +1223,14 @@ HRESULT dd_SetCooperativeLevel(HWND hwnd, DWORD dwFlags)
|
|||
{
|
||||
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;
|
||||
|
|
|
@ -69,7 +69,7 @@ static HRESULT WINAPI fake_did_GetDeviceData(
|
|||
|
||||
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)
|
||||
{
|
||||
|
@ -91,7 +91,7 @@ static HRESULT WINAPI fake_did_GetDeviceState(IDirectInputDeviceA* This, DWORD c
|
|||
|
||||
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)
|
||||
{
|
||||
|
|
|
@ -446,6 +446,14 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||
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 */
|
||||
}
|
||||
case WM_MOVE:
|
||||
|
|
Loading…
Reference in a new issue