Additional localized string hook
This commit is contained in:
parent
3e04061489
commit
1c7ec6e3a7
@ -30,6 +30,32 @@ namespace localized_strings
|
||||
return seh_string_ed_get_string_hook.invoke<const char*>(reference);
|
||||
});
|
||||
}
|
||||
|
||||
game::XAssetHeader db_find_localize_entry_stub(game::XAssetType type, const char* name, int allow_create_default)
|
||||
{
|
||||
const auto value = localized_overrides.access<const char*>([&](const localized_map& map)
|
||||
-> const char*
|
||||
{
|
||||
const auto entry = map.find(name);
|
||||
if (entry != map.end())
|
||||
{
|
||||
return utils::string::va("%s", entry->second.data());
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
});
|
||||
|
||||
if (value == nullptr)
|
||||
{
|
||||
return game::DB_FindXAssetHeader(type, name, allow_create_default);
|
||||
}
|
||||
|
||||
static game::LocalizeEntry entry{};
|
||||
entry.value = value;
|
||||
entry.name = name;
|
||||
|
||||
return static_cast<game::XAssetHeader>(&entry);
|
||||
}
|
||||
}
|
||||
|
||||
void override(const std::string& key, const std::string& value)
|
||||
@ -47,6 +73,7 @@ namespace localized_strings
|
||||
{
|
||||
// Change some localized strings
|
||||
seh_string_ed_get_string_hook.create(0x1405E5FD0, &seh_string_ed_get_string);
|
||||
utils::hook::call(0x1405E5AB9, db_find_localize_entry_stub);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -822,6 +822,12 @@ namespace game
|
||||
void* models;
|
||||
};
|
||||
|
||||
struct LocalizeEntry
|
||||
{
|
||||
const char* value;
|
||||
const char* name;
|
||||
};
|
||||
|
||||
union XAssetHeader
|
||||
{
|
||||
void* data;
|
||||
@ -834,6 +840,7 @@ namespace game
|
||||
TTF* ttf;
|
||||
MapEnts* mapents;
|
||||
AddonMapEnts* addon_mapents;
|
||||
LocalizeEntry* localize;
|
||||
};
|
||||
|
||||
struct XAsset
|
||||
|
@ -156,6 +156,7 @@ namespace game
|
||||
WEAK symbol<void(int critSec)> Sys_LeaveCriticalSection{0x1406242C0};
|
||||
|
||||
WEAK symbol<const char*()> SEH_GetCurrentLanguageCode{0x1405E5180};
|
||||
WEAK symbol<const char*()> SEH_GetCurrentLanguageName{0x1405E5200};
|
||||
|
||||
WEAK symbol<const char*(const char* string)> UI_SafeTranslateString{0x1405A2930};
|
||||
WEAK symbol<int(int localClientNum, const char* sound)> UI_PlayLocalSoundAlias{0x140606080};
|
||||
|
Loading…
x
Reference in New Issue
Block a user