diff options
Diffstat (limited to 'tools/msgenc/MessagesDecoder.h')
-rw-r--r-- | tools/msgenc/MessagesDecoder.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/msgenc/MessagesDecoder.h b/tools/msgenc/MessagesDecoder.h new file mode 100644 index 00000000..98c2383f --- /dev/null +++ b/tools/msgenc/MessagesDecoder.h @@ -0,0 +1,36 @@ +#ifndef GUARD_MESSAGESDECODER_H +#define GUARD_MESSAGESDECODER_H + + +#include "MessagesConverter.h" + +enum StrConvMode { + STR_CONV_MODE_LEFT_ALIGN = 0, + STR_CONV_MODE_RIGHT_ALIGN, + STR_CONV_MODE_LEADING_ZEROS +}; + +class MessagesDecoder : public MessagesConverter +{ + map <uint16_t, string> cmdmap; + map <uint16_t, string> charmap; + set<uint16_t> strvar_codes; + + void ReadMessagesFromBin(string& filename); + void WriteMessagesToText(string& filename); + template <typename T> void WriteBinaryFile(string& filename, T& data); + static u16string DecodeTrainerNameMessage(u16string const &message); + string DecodeMessage(u16string& message, int& i); + void CharmapRegisterCharacter(string& code, uint16_t value) override; + void CmdmapRegisterCommand(string& command, uint16_t value) override; + +public: + MessagesDecoder(string &_textfilename, int _key, string &_charmapfilename, string &_binfilename) : MessagesConverter(CONV_DECODE, _textfilename, _key, _charmapfilename, _binfilename) {} + void ReadInput() override; + void Convert() override; + void WriteOutput() override; + ~MessagesDecoder() override = default; +}; + + +#endif //GUARD_MESSAGESDECODER_H |