Skip to content

Commit

Permalink
client: Remove uses of Autohook from languagehooks.cpp (R2Northstar…
Browse files Browse the repository at this point in the history
…#787)

Removes AUTOHOOK macro from `languagehooks.cpp`.
  • Loading branch information
ASpoonPlaysGames authored and wolf109909 committed Sep 8, 2024
1 parent 2ce06a2 commit 395fb0a
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions primedev/client/languagehooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include <filesystem>
#include <regex>

AUTOHOOK_INIT()
namespace fs = std::filesystem;

typedef LANGID (*Tier0_DetectDefaultLanguageType)();

Expand Down Expand Up @@ -46,10 +46,8 @@ std::string GetAnyInstalledAudioLanguage()
return "NO LANGUAGE DETECTED";
}

// clang-format off
AUTOHOOK(GetGameLanguage, tier0.dll + 0xF560,
char*, __fastcall, ())
// clang-format on
static char*(__fastcall* o_pGetGameLanguage)() = nullptr;
static char* __fastcall h_GetGameLanguage()
{
auto tier0Handle = GetModuleHandleA("tier0.dll");
auto Tier0_DetectDefaultLanguageType = GetProcAddress(tier0Handle, "Tier0_DetectDefaultLanguage");
Expand All @@ -76,7 +74,7 @@ char*, __fastcall, ())

canOriginDictateLang = true; // let it try
{
auto lang = GetGameLanguage();
auto lang = o_pGetGameLanguage();
if (!CheckLangAudioExists(lang))
{
if (strcmp(lang, "russian") !=
Expand All @@ -94,7 +92,7 @@ char*, __fastcall, ())
Tier0_DetectDefaultLanguageType(); // force the global in tier0 to be populated with language inferred from user's system rather than
// defaulting to Russian
canOriginDictateLang = false; // Origin has no say anymore, we will fallback to user's system setup language
auto lang = GetGameLanguage();
auto lang = o_pGetGameLanguage();
spdlog::info("Detected system language: {}", lang);
if (!CheckLangAudioExists(lang))
{
Expand All @@ -111,5 +109,6 @@ char*, __fastcall, ())

ON_DLL_LOAD_CLIENT("tier0.dll", LanguageHooks, (CModule module))
{
AUTOHOOK_DISPATCH()
o_pGetGameLanguage = module.Offset(0xF560).RCast<decltype(o_pGetGameLanguage)>();
HookAttach(&(PVOID&)o_pGetGameLanguage, (PVOID)h_GetGameLanguage);
}

0 comments on commit 395fb0a

Please sign in to comment.