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
36
src/dd.c
36
src/dd.c
|
@ -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;
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in a new issue