4jcraft/Minecraft.Client/Utils/StringTable.h

69 lines
1.5 KiB
C++

#pragma once
#include <cstdint>
#define LOCALE_COUNT 11
class StringTable {
private:
bool isStatic;
std::unordered_map<std::wstring, std::wstring> m_stringsMap;
std::vector<std::wstring> m_stringsVec;
byteArray src;
public:
// enum eLocale
// {
// eLocale_Default=0,
// eLocale_American,
// eLocale_Japanese,
// eLocale_German,
// eLocale_French,
// eLocale_Spanish,
// eLocale_Italian,
// eLocale_Korean,
// eLocale_TradChinese,
// eLocale_Portuguese,
// eLocale_Brazilian,
// #if 0 || 0 || 0
// eLocale_Russian,
// eLocale_Dutch,
// eLocale_Finish,
// eLocale_Swedish,
// eLocale_Danish,
// eLocale_Norwegian,
// eLocale_Polish,
// eLocale_Turkish,
// eLocale_LatinAmericanSpanish,
// eLocale_Greek,
// #elif 0 || 0
// eLocale_British,
// eLocale_Irish,
// eLocale_Australian,
// eLocale_NewZealand,
// eLocale_Canadian,
// eLocale_Mexican,
// eLocale_FrenchCanadian,
// eLocale_Austrian,
// #endif
// };
StringTable(void);
StringTable(std::uint8_t* pbData, unsigned int dataSize);
~StringTable(void);
void ReloadStringTable();
void getData(std::uint8_t** ppData, unsigned int* pSize);
const wchar_t* getString(const std::wstring& id);
const wchar_t* getString(int id);
// static LPCWSTR m_wchLocaleCode[LOCALE_COUNT];
private:
// std::wstring getLangId(DWORD dwLanguage=0);
void ProcessStringTableData(void);
};