From 4de6eee162d34b0b415b27bc910e47f03118a07c Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Wed, 29 May 2024 04:28:05 +0200 Subject: [PATCH] make sure we got move+close menu items --- inc/config.h | 1 - src/config.c | 14 -------------- src/dd.c | 4 +--- src/winapi_hooks.c | 7 +++++++ 4 files changed, 8 insertions(+), 18 deletions(-) diff --git a/inc/config.h b/inc/config.h index 0e8f869..135f0df 100644 --- a/inc/config.h +++ b/inc/config.h @@ -99,7 +99,6 @@ typedef struct CNCDDRAWCONFIG BOOL infantryhack; BOOL stronghold_hack; BOOL mgs_hack; - BOOL learning_company_hack; } CNCDDRAWCONFIG; diff --git a/src/config.c b/src/config.c index 156f23e..379ce15 100644 --- a/src/config.c +++ b/src/config.c @@ -109,7 +109,6 @@ void cfg_load() GET_BOOL(g_config.infantryhack, "infantryhack", FALSE); GET_BOOL(g_config.stronghold_hack, "stronghold_hack", FALSE); GET_BOOL(g_config.mgs_hack, "mgs_hack", FALSE); - GET_BOOL(g_config.learning_company_hack, "learning_company_hack", FALSE); GameHandlesClose = GameHandlesClose || g_config.infantryhack; @@ -488,7 +487,6 @@ static void cfg_create_ini() "\n" "; Carmen Sandiego's Great Chase - NOT WORKING YET\n" "[TIME32]\n" - "learning_company_hack=true\n" "allow_wmactivate=true\n" "renderer=gdi\n" "adjmouse=false\n" @@ -682,7 +680,6 @@ static void cfg_create_ini() "\n" "; ClueFinders 4th Grade Adventures\n" "[4thadv32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -690,7 +687,6 @@ static void cfg_create_ini() "\n" "; ClueFinders 4th Grade Adventures\n" "[4thad32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -698,7 +694,6 @@ static void cfg_create_ini() "\n" "; ClueFinders 5th Grade Adventures\n" "[5thadv32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -706,7 +701,6 @@ static void cfg_create_ini() "\n" "; ClueFinders 5th Grade Adventures\n" "[5thad32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -714,7 +708,6 @@ static void cfg_create_ini() "\n" "; ClueFinders 6th Grade Adventures\n" "[CF6]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -722,7 +715,6 @@ static void cfg_create_ini() "\n" "; ClueFinders(R) Reading Adventures Ages 9-12\n" "[cfread]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -730,7 +722,6 @@ static void cfg_create_ini() "\n" "; ClueFinders Math Adventures 1.0\n" "[TCFM32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -738,7 +729,6 @@ static void cfg_create_ini() "\n" "; ClueFinders Math Adventures 2.0\n" "[cfmath32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -1033,7 +1023,6 @@ static void cfg_create_ini() "\n" "; Reader Rabbit Toddler: Fly the Dreamship\n" "[Fly the Dreamship]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -1041,7 +1030,6 @@ static void cfg_create_ini() "\n" "; Reader Rabbit Toddler: Playtime for Baby\n" "[rrbaby]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -1049,7 +1037,6 @@ static void cfg_create_ini() "\n" "; Reader Rabbit Learn To Read With Phonics\n" "[Superr]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" @@ -1057,7 +1044,6 @@ static void cfg_create_ini() "\n" "; Reader Rabbit's(R) Math Ages 6 - 9 (2002)\n" "[RRM69_32]\n" - "learning_company_hack=true\n" "adjmouse=false\n" "fixchilds=3\n" "maintas=false\n" diff --git a/src/dd.c b/src/dd.c index d2eee80..494177a 100644 --- a/src/dd.c +++ b/src/dd.c @@ -924,12 +924,10 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl } else { - DWORD rem_flags = (g_config.learning_company_hack ? WS_SYSMENU : 0) | WS_MAXIMIZE; - real_SetWindowLongA( g_ddraw.hwnd, GWL_STYLE, - (real_GetWindowLongA(g_ddraw.hwnd, GWL_STYLE) | WS_OVERLAPPEDWINDOW) & ~(rem_flags)); + (real_GetWindowLongA(g_ddraw.hwnd, GWL_STYLE) | WS_OVERLAPPEDWINDOW) & ~(WS_MAXIMIZE)); } LONG exstyle = real_GetWindowLongA(g_ddraw.hwnd, GWL_EXSTYLE); diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index 9b51570..af89ac0 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -534,6 +534,13 @@ BOOL WINAPI fake_ShowWindow(HWND hWnd, int nCmdShow) { if (g_ddraw.ref && g_ddraw.hwnd == hWnd) { + /* Make sure we got close/move menu items (Almost all of the The Learning Company games) */ + HMENU menu = GetSystemMenu(hWnd, FALSE); + if (!menu || GetMenuState(menu, SC_CLOSE, MF_BYCOMMAND) == -1 || GetMenuState(menu, SC_MOVE, MF_BYCOMMAND) == -1) + { + GetSystemMenu(hWnd, TRUE); + } + if (nCmdShow == SW_SHOWMAXIMIZED) nCmdShow = SW_SHOWNORMAL;