Skip to content

Commit 1045478

Browse files
scripts/client: Remove uses of Autohook from scriptbrowserhooks.cpp (#833)
* Manually hook OpenExternalWebBrowser * Remove AUTOHOOK_INIT and AUTOHOOK_DISPATCH
1 parent feab262 commit 1045478

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11

2-
AUTOHOOK_INIT()
3-
42
bool* bIsOriginOverlayEnabled;
53

6-
// clang-format off
7-
AUTOHOOK(OpenExternalWebBrowser, engine.dll + 0x184E40,
8-
void, __fastcall, (char* pUrl, char flags))
9-
// clang-format on
4+
static void(__fastcall* o_pOpenExternalWebBrowser)(char* pUrl, char flags) = nullptr;
5+
static void __fastcall h_OpenExternalWebBrowser(char* pUrl, char flags)
106
{
117
bool bIsOriginOverlayEnabledOriginal = *bIsOriginOverlayEnabled;
128
bool isHttp = !strncmp(pUrl, "http://", 7) || !strncmp(pUrl, "https://", 8);
139
if (flags & 2 && isHttp) // custom force external browser flag
1410
*bIsOriginOverlayEnabled = false; // if this bool is false, game will use an external browser rather than the origin overlay one
1511

16-
OpenExternalWebBrowser(pUrl, flags);
12+
o_pOpenExternalWebBrowser(pUrl, flags);
1713
*bIsOriginOverlayEnabled = bIsOriginOverlayEnabledOriginal;
1814
}
1915

2016
ON_DLL_LOAD_CLIENT("engine.dll", ScriptExternalBrowserHooks, (CModule module))
2117
{
22-
AUTOHOOK_DISPATCH()
18+
o_pOpenExternalWebBrowser = module.Offset(0x184E40).RCast<decltype(o_pOpenExternalWebBrowser)>();
19+
HookAttach(&(PVOID&)o_pOpenExternalWebBrowser, (PVOID)h_OpenExternalWebBrowser);
2320

2421
bIsOriginOverlayEnabled = module.Offset(0x13978255).RCast<bool*>();
2522
}

0 commit comments

Comments
 (0)