iw4x-client/src/Components/Modules/Localization.cpp

52 lines
1.5 KiB
C++
Raw Normal View History

2015-12-28 20:52:31 -05:00
#include "..\..\STDInclude.hpp"
2015-12-25 17:17:29 -05:00
namespace Components
{
2015-12-25 20:51:58 -05:00
Dvar::Var Localization::UseLocalization;
2015-12-25 17:17:29 -05:00
std::map<std::string, std::string> Localization::LocalizeMap;
void Localization::Set(const char* key, const char* value)
{
Localization::LocalizeMap[key] = value;
}
const char* Localization::Get(const char* key)
{
2015-12-25 20:51:58 -05:00
if (!Localization::UseLocalization.Get<bool>()) return key;
2015-12-25 17:17:29 -05:00
if (Localization::LocalizeMap.find(key) != Localization::LocalizeMap.end())
{
return Localization::LocalizeMap[key].data();
}
Game::localizedEntry_s* entry = Game::DB_FindXAssetHeader(Game::XAssetType::ASSET_TYPE_LOCALIZE, key).localize;
if (entry)
{
return entry->value;
}
return key;
}
Localization::Localization()
{
Utils::Hook(0x629B90, Localization::Get, HOOK_JUMP).Install()->Quick();
2015-12-29 22:19:52 -05:00
Localization::Set("MENU_SEARCHINGFORGAMES_100MS", "");
2015-12-30 09:37:53 -05:00
Localization::Set("MP_SEARCHING_FOR_PLAYER", "Waiting");
Localization::Set("MENU_WAITING_FOR_MORE_PLAYERS_TEAMS", "Waiting for more players to balance teams");
// Don't perform non-english localization here, do it in fastfiles instead
//Localization::Set("MP_SEARCHING_FOR_PLAYER", "Warte");
//Localization::Set("MENU_WAITING_FOR_MORE_PLAYERS_TEAMS", "Auf weitere Spieler zum Teamausgleich warten");
2015-12-29 22:19:52 -05:00
2015-12-26 21:56:00 -05:00
Localization::UseLocalization = Dvar::Register<bool>("ui_localize", true, Game::dvar_flag::DVAR_FLAG_NONE, "Use localization strings");
2015-12-25 17:17:29 -05:00
}
Localization::~Localization()
{
Localization::LocalizeMap.clear();
}
}