diff --git a/inc/config.h b/inc/config.h index 2bf06ad..abaa180 100644 --- a/inc/config.h +++ b/inc/config.h @@ -101,6 +101,7 @@ typedef struct CNCDDRAWCONFIG BOOL infantryhack; BOOL stronghold_hack; BOOL mgs_hack; + BOOL tlc_hack; } CNCDDRAWCONFIG; diff --git a/src/IDirectDraw/IDirectDraw.c b/src/IDirectDraw/IDirectDraw.c index 1e6f6a4..3bd8379 100644 --- a/src/IDirectDraw/IDirectDraw.c +++ b/src/IDirectDraw/IDirectDraw.c @@ -487,7 +487,7 @@ HRESULT __stdcall IDirectDraw__RestoreAllSurfaces(IDirectDrawImpl* This) HRESULT __stdcall IDirectDraw__TestCooperativeLevel(IDirectDrawImpl* This) { TRACE_EXT("-> %s(This=%p)\n", __FUNCTION__, This); - HRESULT ret = DD_OK; + HRESULT ret = g_config.tlc_hack ? DDERR_NOEXCLUSIVEMODE : DD_OK; TRACE_EXT("<- %s\n", __FUNCTION__); return ret; } diff --git a/src/config.c b/src/config.c index dbf2f20..e868036 100644 --- a/src/config.c +++ b/src/config.c @@ -111,6 +111,7 @@ 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.tlc_hack, "tlc_hack", FALSE); GameHandlesClose = GameHandlesClose || g_config.infantryhack; @@ -1359,6 +1360,18 @@ static void cfg_create_ini() "game_handles_close=true\n" "max_resolutions=32\n" "\n" + "; The Learning Company Launcher\n" + "[TLCLauncher]\n" + "tlc_hack=true\n" + "windowed=true\n" + "fullscreen=false\n" + "adjmouse=false\n" + "width=0\n" + "height=0\n" + "resizable=false\n" + "maintas=false\n" + "boxing=false\n" + "\n" "; Three Kingdoms: Fate of the Dragon\n" "[sanguo]\n" "maxgameticks=60\n"