summaryrefslogtreecommitdiff
path: root/tools/msgenc/MessagesDecoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/msgenc/MessagesDecoder.h')
-rw-r--r--tools/msgenc/MessagesDecoder.h36
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