From 6e548177186623d15def0f235ea9e9e817ebfb09 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Thu, 15 Oct 2020 07:43:03 +0200 Subject: [PATCH] add a hack for Dungeon Keeper 2 util there's a better solution --- inc/dd.h | 1 + src/config.c | 1 + src/dd.c | 6 ++++++ 3 files changed, 8 insertions(+) diff --git a/inc/dd.h b/inc/dd.h index 2c4d5ad..01abeac 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -100,6 +100,7 @@ typedef struct cnc_ddraw BOOL accurate_timers; BOOL resizable; BOOL sierrahack; + BOOL dk2hack; BOOL nonexclusive; BOOL bnet_active; BOOL bnet_was_fullscreen; diff --git a/src/config.c b/src/config.c index 3e6d285..1ec587f 100644 --- a/src/config.c +++ b/src/config.c @@ -49,6 +49,7 @@ void cfg_load() g_ddraw->resizable = cfg_get_bool("resizable", TRUE); g_ddraw->nonexclusive = cfg_get_bool("nonexclusive", FALSE); g_ddraw->sierrahack = cfg_get_bool("sierrahack", FALSE); // Sierra Caesar III, Pharaoh, and Zeus hack + g_ddraw->dk2hack = cfg_get_bool("dk2hack", FALSE); // Dungeon Keeper 2 hack g_config.window_rect.right = cfg_get_int("width", 0); g_config.window_rect.bottom = cfg_get_int("height", 0); diff --git a/src/dd.c b/src/dd.c index ca2a72a..8c251ad 100644 --- a/src/dd.c +++ b/src/dd.c @@ -739,6 +739,12 @@ ULONG dd_Release() { g_ddraw->ref--; + if (g_ddraw->dk2hack) + { + g_ddraw->dk2hack = FALSE; + g_ddraw->ref--; + } + if (g_ddraw->ref == 0) { if (g_ddraw->bpp)