plugy/PlugY/Language.cpp

62 lines
1.8 KiB
C++
Raw Normal View History

/*=================================================================
File created by Yohann NICOLAS.
2021-01-04 07:07:29 +00:00
Add support 1.14d by haxifix.
Language management.
=================================================================*/
#include "language.h"
2017-01-23 19:34:12 +00:00
#include "common.h"
#include <stdio.h>
2021-01-04 07:07:29 +00:00
bool active_ChangeLanguage = false;
DWORD selectedLanguage = LNG_ENG;
bool active_LanguageManagement = false;
DWORD defaultLanguage = LNG_ENG;
t_availableLanguages availableLanguages;
DWORD* ptCurrentLanguage;
2021-01-04 07:07:29 +00:00
DWORD STDCALL languageManagement()
{
2021-01-04 07:07:29 +00:00
if (active_ChangeLanguage)
*ptCurrentLanguage = selectedLanguage;
if (active_LanguageManagement)
2021-01-04 07:07:29 +00:00
{
if ((*ptCurrentLanguage >= LNG_DEF) || !((1 << *ptCurrentLanguage) & availableLanguages.all))
*ptCurrentLanguage = defaultLanguage;
}
return *ptCurrentLanguage;
}
void Install_LanguageManagement()
{
static int isInstalled = false;
if (isInstalled) return;
2021-01-04 07:07:29 +00:00
log_msg("Patch D2Lang for language management. (LanguageManagement)\n");
2021-01-04 07:07:29 +00:00
ptCurrentLanguage = *(DWORD**)((DWORD)D2GetLang + (version_D2Lang == V114d ? 0x4D : version_D2Lang >= V111 ? 0x51: 0x5C));
languageManagement();
// Language management
2020-10-25 13:10:17 +00:00
mem_seek( (DWORD)D2GetLang + (version_D2Lang == V114d ? 0x4C : version_D2Lang >= V111 ? 0x3E : 0x49));//6FC13E39-6FC10000
memt_byte( 0xA1 , 0xE8);
MEMT_REF4( ptCurrentLanguage, languageManagement);
//6FC13E39 |. A1 EC0CC26F MOV EAX,DWORD PTR DS:[6FC20CEC]
//003D91FE |. A1 1C0A3E00 MOV EAX,DWORD PTR DS:[3E0A1C]
//003DA0AE |. A1 1C0A3E00 MOV EAX,DWORD PTR DS:[3E0A1C]
2021-01-04 07:07:29 +00:00
//0052519C |> A1 EC298800 MOV EAX,DWORD PTR DS:[8829EC]
log_msg("\n");
isInstalled = true;
}
/*================================= END OF FILE =================================*/