add support for Seven Kingdoms II

This commit is contained in:
FunkyFr3sh 2024-12-19 06:58:42 +01:00
parent 7ac70bd878
commit 9cefca463a
6 changed files with 23 additions and 2 deletions

View file

@ -1550,6 +1550,10 @@ static void cfg_create_ini()
"nonexclusive=true\n"
"fake_mode=640x480x32\n"
"\n"
"; Seven Kingdoms II\n"
"[7k2]\n"
"fake_mode=352x240x32\n"
"\n"
"; Sid Meier's Simgolf\n"
"[golf]\n"
"fake_mode=640x480x16\n"

View file

@ -34,6 +34,7 @@ SETWINDOWPOSPROC real_SetWindowPos = SetWindowPos;
MOVEWINDOWPROC real_MoveWindow = MoveWindow;
SENDMESSAGEAPROC real_SendMessageA = SendMessageA;
SETWINDOWLONGAPROC real_SetWindowLongA = SetWindowLongA;
SETWINDOWLONGWPROC real_SetWindowLongW = SetWindowLongW;
GETWINDOWLONGAPROC real_GetWindowLongA = GetWindowLongA;
ENABLEWINDOWPROC real_EnableWindow = EnableWindow;
CREATEWINDOWEXAPROC real_CreateWindowExA = CreateWindowExA;
@ -96,6 +97,7 @@ HOOKLIST g_hook_hooklist[] =
{ "MoveWindow", (PROC)fake_MoveWindow, (PROC*)&real_MoveWindow, 0 },
{ "SendMessageA", (PROC)fake_SendMessageA, (PROC*)&real_SendMessageA, 0 },
{ "SetWindowLongA", (PROC)fake_SetWindowLongA, (PROC*)&real_SetWindowLongA, 0 },
{ "SetWindowLongW", (PROC)fake_SetWindowLongW, (PROC*)&real_SetWindowLongW, 0 },
{ "GetWindowLongA", (PROC)fake_GetWindowLongA, (PROC*)&real_GetWindowLongA, 0 },
{ "EnableWindow", (PROC)fake_EnableWindow, (PROC*)&real_EnableWindow, 0 },
{ "CreateWindowExA", (PROC)fake_CreateWindowExA, (PROC*)&real_CreateWindowExA, 0 },

View file

@ -448,7 +448,7 @@ LRESULT WINAPI fake_SendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPar
LONG WINAPI fake_SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong)
{
if (g_ddraw.ref && g_ddraw.hwnd == hWnd)
if (g_ddraw.ref && g_ddraw.hwnd && g_ddraw.hwnd == hWnd)
{
if (nIndex == GWL_STYLE)
return 0;
@ -465,6 +465,17 @@ LONG WINAPI fake_SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong)
return real_SetWindowLongA(hWnd, nIndex, dwNewLong);
}
LONG WINAPI fake_SetWindowLongW(HWND hWnd, int nIndex, LONG dwNewLong)
{
if (g_ddraw.ref && g_ddraw.hwnd && g_ddraw.hwnd == hWnd)
{
if (nIndex == GWL_STYLE)
return 0;
}
return real_SetWindowLongW(hWnd, nIndex, dwNewLong);
}
LONG WINAPI fake_GetWindowLongA(HWND hWnd, int nIndex)
{
if (g_ddraw.ref && g_ddraw.hwnd == hWnd)