4jcraft/Minecraft.Client/Utils/StringTable.h
MatthewBeshay 28d68befd4 Replace remaining WinAPI types with standard C++ equivalents
DWORD→uint32_t, BYTE→uint8_t, HRESULT→int32_t, HANDLE→void*, UINT→uint32_t, INT→int32_t, WORD→uint16_t, LONG→int32_t, SHORT→int16_t, LONGLONG→int64_t, ULONG_PTR→uintptr_t, PBYTE→uint8_t*, LPWSTR/PWSTR→wchar_t*, FLOAT→float, CHAR→char, boolean→bool, CONST→const, TRUE→true, FALSE→false across 176 files (excluding vendor libs and Linux stubs).
2026-03-30 17:36:15 +11:00

69 lines
1.6 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 const wchar_t* m_wchLocaleCode[LOCALE_COUNT];
private:
// std::wstring getLangId(uint32_t dwLanguage=0);
void ProcessStringTableData(void);
};