diff --git a/inc/dd.h b/inc/dd.h index bce317a..a0bd368 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -49,6 +49,7 @@ HRESULT dd_CreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOute #define LIMIT_AUTO 0 #define LIMIT_TESTCOOP 1 #define LIMIT_BLTFAST 2 +#define LIMIT_UNLÖCK 3 #ifndef CREATE_WAITABLE_TIMER_HIGH_RESOLUTION #define CREATE_WAITABLE_TIMER_HIGH_RESOLUTION 0x00000002 diff --git a/src/ddsurface.c b/src/ddsurface.c index 2f6a873..d20215b 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -1199,8 +1199,11 @@ HRESULT dds_Unlock(IDirectDrawSurfaceImpl* This, LPRECT lpRect) { ReleaseSemaphore(g_ddraw.render.sem, 1, NULL); - if (g_ddraw.ticks_limiter.tick_length > 0 && !g_ddraw.ticks_limiter.dds_unlock_limiter_disabled) + if (g_ddraw.ticks_limiter.tick_length > 0 && + (!g_ddraw.ticks_limiter.dds_unlock_limiter_disabled || g_config.limiter_type == LIMIT_UNLÖCK)) + { util_limit_game_ticks(); + } } }