diff options
author | erorcun <erayorcunus@gmail.com> | 2019-10-23 23:45:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-23 23:45:05 +0200 |
commit | 1ef0f8fdd96c26cac74e16ad304425561dae101e (patch) | |
tree | 6194c4080223c237fa898e93908d9247f9eb3382 /src/text/Text.h | |
parent | CGame::FinalShutdown (diff) | |
parent | Fixes (diff) | |
download | re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.tar re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.tar.gz re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.tar.bz2 re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.tar.lz re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.tar.xz re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.tar.zst re3-1ef0f8fdd96c26cac74e16ad304425561dae101e.zip |
Diffstat (limited to 'src/text/Text.h')
-rw-r--r-- | src/text/Text.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/text/Text.h b/src/text/Text.h new file mode 100644 index 00000000..6f39ba49 --- /dev/null +++ b/src/text/Text.h @@ -0,0 +1,59 @@ +#pragma once + +void AsciiToUnicode(const char *src, wchar *dst); +char *UnicodeToAscii(wchar *src); +char *UnicodeToAsciiForSaveLoad(wchar *src); +void UnicodeStrcpy(wchar *dst, const wchar *src); +int UnicodeStrlen(const wchar *str); +void TextCopy(wchar *dst, const wchar *src); + +struct CKeyEntry +{ + wchar *value; + char key[8]; +}; +// If this fails, CKeyArray::Load will have to be fixed +static_assert(sizeof(CKeyEntry) == 12, "CKeyEntry: error"); + +class CKeyArray +{ +public: + CKeyEntry *entries; + int numEntries; + + CKeyArray(void) : entries(nil), numEntries(0) {} + ~CKeyArray(void) { Unload(); } + void Load(uint32 length, uint8 *data, int *offset); + void Unload(void); + void Update(wchar *chars); + CKeyEntry *BinarySearch(const char *key, CKeyEntry *entries, int16 low, int16 high); + wchar *Search(const char *key); +}; + +class CData +{ +public: + wchar *chars; + int numChars; + + CData(void) : chars(nil), numChars(0) {} + ~CData(void) { Unload(); } + void Load(uint32 length, uint8 *data, int *offset); + void Unload(void); +}; + +class CText +{ + CKeyArray keyArray; + CData data; + char encoding; +public: + CText(void); + void Load(void); + void Unload(void); + wchar *Get(const char *key); + wchar GetUpperCase(wchar c); + void UpperCase(wchar *s); +}; + +extern CText &TheText; |