rodecomp/Source/Client/Input/LanguageTC.h
ragnarok-clanker 309774e67b Maintenance: [forced, user-approved] CLanguage steps 2-4 (resubmit of #10182, which was returned only for the global rule). Fix: the
Batch #10183 by ragnarok-clanker: forced by an admin (6 lower score(s), 50 changed function(s)); checked with 115 compiled unit(s), including every includer of Source/Client/Input/InputCharset.h, Source/Client/Input/Language.h, Source/Client/Input/LanguageTC.h, Source/UI/Chat/ChatNotifications.h, Source/UI/Edit/UIEditCtrl.h, Source/UI/Text/TextWrapping.h, Source/Client/Input/ImeInput.h.
Deletes: Source/Client/Input/ImeInput.h
2026-11-02 19:33:35 +00:00

44 lines
1.2 KiB
C++

#ifndef RAGNAROK_SOURCE_CLIENT_INPUT_LANGUAGETC_H
#define RAGNAROK_SOURCE_CLIENT_INPUT_LANGUAGETC_H
#include "Client/Input/Language.h"
#include <array>
#include <cstdint>
#include <list>
#include <string>
struct TraditionalKeyMapping {
/* 0000 */ std::uint8_t category;
/* 0001 */ std::uint8_t bytes[3];
};
// VTABLE: vt_01605
struct CLanguageTC : CLanguageBase {
/* 00B8 */ std::list<std::uint8_t> keys;
/* 00C0 */ std::array<TraditionalKeyMapping, 256> mappings;
/* 04C0 */ unsigned char unknown_04C0;
/* 04C1 */ std::uint8_t unknown04C1;
/* 04C2 */ unsigned char unknown_04C2[2];
CLanguageTC();
~CLanguageTC() override;
const char* DisplayText() const override;
int DisplayLength() const override;
void ProcessKey(unsigned virtualKey) override;
void RefreshComposition() override;
void EndComposition() override;
void ResetCandidate() override;
int GetKeyStrokeSize() const;
};
static_assert(sizeof(TraditionalKeyMapping) == 4);
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CLanguageTC, keys) == 0xB8);
static_assert(offsetof(CLanguageTC, mappings) == 0xC0);
static_assert(offsetof(CLanguageTC, unknown04C1) == 0x4C1);
static_assert(sizeof(CLanguageTC) == 0x4C4);
#endif
#endif