diff options
author | Jack <66967891+ASpoonPlaysGames@users.noreply.github.com> | 2024-12-15 22:52:23 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-15 23:52:23 +0100 |
commit | 104547893807b2e961bee0dbf457ef35bd7bf80c (patch) | |
tree | 8033a5e6c01e0ff56ae5d4e3c73bc836f026bd7a /primedev | |
parent | feab262e44372c937903bcc48aab360976fa24a6 (diff) | |
download | NorthstarLauncher-104547893807b2e961bee0dbf457ef35bd7bf80c.tar.gz NorthstarLauncher-104547893807b2e961bee0dbf457ef35bd7bf80c.zip |
* Manually hook OpenExternalWebBrowser
* Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
Diffstat (limited to 'primedev')
-rw-r--r-- | primedev/scripts/client/scriptbrowserhooks.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/primedev/scripts/client/scriptbrowserhooks.cpp b/primedev/scripts/client/scriptbrowserhooks.cpp index dcf051d2..3c4af1b5 100644 --- a/primedev/scripts/client/scriptbrowserhooks.cpp +++ b/primedev/scripts/client/scriptbrowserhooks.cpp @@ -1,25 +1,22 @@ -AUTOHOOK_INIT() - bool* bIsOriginOverlayEnabled; -// clang-format off -AUTOHOOK(OpenExternalWebBrowser, engine.dll + 0x184E40, -void, __fastcall, (char* pUrl, char flags)) -// clang-format on +static void(__fastcall* o_pOpenExternalWebBrowser)(char* pUrl, char flags) = nullptr; +static void __fastcall h_OpenExternalWebBrowser(char* pUrl, char flags) { bool bIsOriginOverlayEnabledOriginal = *bIsOriginOverlayEnabled; bool isHttp = !strncmp(pUrl, "http://", 7) || !strncmp(pUrl, "https://", 8); if (flags & 2 && isHttp) // custom force external browser flag *bIsOriginOverlayEnabled = false; // if this bool is false, game will use an external browser rather than the origin overlay one - OpenExternalWebBrowser(pUrl, flags); + o_pOpenExternalWebBrowser(pUrl, flags); *bIsOriginOverlayEnabled = bIsOriginOverlayEnabledOriginal; } ON_DLL_LOAD_CLIENT("engine.dll", ScriptExternalBrowserHooks, (CModule module)) { - AUTOHOOK_DISPATCH() + o_pOpenExternalWebBrowser = module.Offset(0x184E40).RCast<decltype(o_pOpenExternalWebBrowser)>(); + HookAttach(&(PVOID&)o_pOpenExternalWebBrowser, (PVOID)h_OpenExternalWebBrowser); bIsOriginOverlayEnabled = module.Offset(0x13978255).RCast<bool*>(); } |