diff --git a/src/hook.c b/src/hook.c index 1d73afe..6fc3abc 100644 --- a/src/hook.c +++ b/src/hook.c @@ -477,9 +477,12 @@ void hook_create(HOOKLIST* hooks, BOOL initial_hook) continue; BOOL is_local = _strnicmp(game_dir, mod_dir, strlen(game_dir)) == 0; + BOOL is_wine = real_GetProcAddress(GetModuleHandleA("ntdll.dll"), "wine_get_version") != 0; + + BOOL wine_hook = is_wine && _strcmpi(mod_filename, "mciavi32") == 0; if (is_local || - _strcmpi(mod_filename, "mciavi32") == 0 || + wine_hook || _strcmpi(mod_filename, "MSVFW32") == 0 || _strcmpi(mod_filename, "quartz") == 0 || _strcmpi(mod_filename, "winmm") == 0) @@ -554,9 +557,12 @@ void hook_revert(HOOKLIST* hooks) _splitpath(mod_path, NULL, mod_dir, mod_filename, NULL); BOOL is_local = _strnicmp(game_dir, mod_dir, strlen(game_dir)) == 0; + BOOL is_wine = real_GetProcAddress(GetModuleHandleA("ntdll.dll"), "wine_get_version") != 0; + + BOOL wine_hook = is_wine && _strcmpi(mod_filename, "mciavi32") == 0; if (is_local || - _strcmpi(mod_filename, "mciavi32") == 0 || + wine_hook || _strcmpi(mod_filename, "MSVFW32") == 0 || _strcmpi(mod_filename, "quartz") == 0 || _strcmpi(mod_filename, "winmm") == 0)