2023-05-02 19:26:49 +01:00
|
|
|
#pragma once
|
2023-09-16 00:45:11 +02:00
|
|
|
#include "localize/ilocalize.h"
|
|
|
|
|
|
|
|
bool Localize_IsLanguageSupported(const char* pLocaleName);
|
2023-05-02 19:26:49 +01:00
|
|
|
|
2023-10-22 17:00:56 +02:00
|
|
|
class CLocalize : public CBaseAppSystem< ILocalize >
|
2023-05-02 19:26:49 +01:00
|
|
|
{
|
2023-10-22 17:00:56 +02:00
|
|
|
char unk[400];
|
|
|
|
unsigned __int16 m_CurrentFile;
|
|
|
|
char unk_19A;
|
|
|
|
bool m_bUseOnlyLongestLanguageString;
|
|
|
|
bool m_bSuppressChangeCallbacks;
|
|
|
|
bool m_bQueuedChangeCallback;
|
2023-05-02 19:26:49 +01:00
|
|
|
};
|
|
|
|
|
2024-01-02 15:21:36 +01:00
|
|
|
inline bool(*CLocalize__AddFile)(CLocalize * thisptr, const char* szFileName, const char* pPathID);
|
|
|
|
inline bool(*CLocalize__LoadLocalizationFileLists)(CLocalize * thisptr);
|
2023-05-02 19:26:49 +01:00
|
|
|
|
2023-10-22 17:00:56 +02:00
|
|
|
inline CLocalize** g_ppVGuiLocalize;
|
|
|
|
inline CLocalize** g_ppLocalize;
|
2023-05-02 19:26:49 +01:00
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class VLocalize : public IDetour
|
|
|
|
{
|
2023-07-09 22:24:29 +02:00
|
|
|
virtual void GetAdr(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
LogFunAdr("CLocalize::AddFile", CLocalize__AddFile);
|
|
|
|
LogFunAdr("CLocalize::LoadLocalizationFileLists", CLocalize__LoadLocalizationFileLists);
|
|
|
|
LogFunAdr("g_Localize", g_ppLocalize);
|
2023-07-09 22:24:29 +02:00
|
|
|
}
|
2023-05-02 19:26:49 +01:00
|
|
|
virtual void GetFun(void) const
|
|
|
|
{
|
2024-01-02 15:21:36 +01:00
|
|
|
g_GameDll.FindPatternSIMD("E8 ?? ?? ?? ?? 49 FF C4").FollowNearCallSelf().GetPtr(CLocalize__AddFile);
|
|
|
|
g_GameDll.FindPatternSIMD("4C 8B DC 53 48 81 EC ?? ?? ?? ?? 33 C0").GetPtr(CLocalize__LoadLocalizationFileLists);
|
2023-05-02 19:26:49 +01:00
|
|
|
}
|
|
|
|
virtual void GetVar(void) const
|
|
|
|
{
|
2023-10-22 17:00:56 +02:00
|
|
|
g_ppVGuiLocalize = g_GameDll.FindPatternSIMD("48 8B 0D ?? ?? ?? ?? 48 8B 01 FF 50 40 40 38 2D ?? ?? ?? ??").ResolveRelativeAddressSelf(0x3, 0x7).RCast<CLocalize**>();
|
|
|
|
g_ppLocalize = g_ppVGuiLocalize; // these are set to the same thing in CSourceAppSystemGroup::Create
|
2023-05-02 19:26:49 +01:00
|
|
|
}
|
|
|
|
virtual void GetCon(void) const { }
|
2023-11-26 13:21:20 +01:00
|
|
|
virtual void Detour(const bool bAttach) const;
|
2023-05-02 19:26:49 +01:00
|
|
|
};
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|