diff options
| author | red031000 <rubenru09@aol.com> | 2020-08-07 18:15:57 +0200 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-07 18:15:57 +0200 | 
| commit | 8c3282cded0a1f6a54160e7166bfea23ec31da7e (patch) | |
| tree | 4773d2f08e7c7207a884ac2bd6c0e79cb3cd5835 /tools/msgenc | |
| parent | 14655718ad3fa1ea0ce481b599943b3480ad9e3e (diff) | |
| parent | 20573e3d384f73f63836864a0c6c9b0069ee9e9d (diff) | |
Merge pull request #259 from PikalaxALT/pikalax_work
Refactor message command syntax; decomp string16 funcs
Diffstat (limited to 'tools/msgenc')
| -rw-r--r-- | tools/msgenc/msgenc.cpp | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/tools/msgenc/msgenc.cpp b/tools/msgenc/msgenc.cpp index e28232a6..24bcda8d 100644 --- a/tools/msgenc/msgenc.cpp +++ b/tools/msgenc/msgenc.cpp @@ -99,16 +99,29 @@ void encode_messages() {                  size_t k = message.find('}', j);                  string enclosed = message.substr(j + 1, k - j - 1);                  j = k; -                if (enclosed.find("STRVAR ") == 0) { -                    enclosed = enclosed.substr(7); +                size_t pos = enclosed.find(' '); +                string command = enclosed.substr(0, pos); +                enclosed = enclosed.substr(pos + 1); +                uint16_t command_i = charmap[command]; +                if (command_i != 0 || command == "STRVAR") {                      encoded += enc_short(0xFFFE, seed); +                    vector<uint16_t> args; +                    if (command_i != 0) { +                        args.push_back(command_i); +                    }                      do {                          k = enclosed.find(',');                          string num = enclosed.substr(0, k);                          uint16_t num_i = stoi(num); -                        encoded += enc_short(num_i, seed); +                        args.push_back(num_i);                          enclosed = enclosed.substr(k + 1);                      } while (k++ != string::npos); +                    encoded += enc_short(args[0], seed); +                    args.erase(args.begin()); +                    encoded += enc_short(args.size(), seed); +                    for (auto num_i : args) { +                        encoded += enc_short(num_i, seed); +                    }                  } else {                      encoded += enc_short(stoi(enclosed, nullptr, 16), seed);                  } | 
