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);
|
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)
|
void override(const std::string& key, const std::string& value)
|
||||||
@ -47,6 +73,7 @@ namespace localized_strings
|
|||||||
{
|
{
|
||||||
// Change some localized strings
|
// Change some localized strings
|
||||||
seh_string_ed_get_string_hook.create(0x1405E5FD0, &seh_string_ed_get_string);
|
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;
|
void* models;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct LocalizeEntry
|
||||||
|
{
|
||||||
|
const char* value;
|
||||||
|
const char* name;
|
||||||
|
};
|
||||||
|
|
||||||
union XAssetHeader
|
union XAssetHeader
|
||||||
{
|
{
|
||||||
void* data;
|
void* data;
|
||||||
@ -834,6 +840,7 @@ namespace game
|
|||||||
TTF* ttf;
|
TTF* ttf;
|
||||||
MapEnts* mapents;
|
MapEnts* mapents;
|
||||||
AddonMapEnts* addon_mapents;
|
AddonMapEnts* addon_mapents;
|
||||||
|
LocalizeEntry* localize;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct XAsset
|
struct XAsset
|
||||||
|
@ -156,6 +156,7 @@ namespace game
|
|||||||
WEAK symbol<void(int critSec)> Sys_LeaveCriticalSection{0x1406242C0};
|
WEAK symbol<void(int critSec)> Sys_LeaveCriticalSection{0x1406242C0};
|
||||||
|
|
||||||
WEAK symbol<const char*()> SEH_GetCurrentLanguageCode{0x1405E5180};
|
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<const char*(const char* string)> UI_SafeTranslateString{0x1405A2930};
|
||||||
WEAK symbol<int(int localClientNum, const char* sound)> UI_PlayLocalSoundAlias{0x140606080};
|
WEAK symbol<int(int localClientNum, const char* sound)> UI_PlayLocalSoundAlias{0x140606080};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user