From a71dcc89a797602d9b61f15b93c8eed150011229 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 4 Aug 2020 10:31:34 -0400 Subject: Message data: command arg count determined automatically --- tools/msgenc/msgenc.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tools/msgenc/msgenc.cpp') diff --git a/tools/msgenc/msgenc.cpp b/tools/msgenc/msgenc.cpp index e28232a6..63a86751 100644 --- a/tools/msgenc/msgenc.cpp +++ b/tools/msgenc/msgenc.cpp @@ -102,13 +102,20 @@ void encode_messages() { if (enclosed.find("STRVAR ") == 0) { enclosed = enclosed.substr(7); encoded += enc_short(0xFFFE, seed); + vector args; 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); } -- cgit v1.2.3 From 5a110f52d215ccfa46e50d7dd24a094cde8eddaf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 4 Aug 2020 10:44:07 -0400 Subject: msgenc: Implement support for text commands --- tools/msgenc/msgenc.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'tools/msgenc/msgenc.cpp') diff --git a/tools/msgenc/msgenc.cpp b/tools/msgenc/msgenc.cpp index 63a86751..24bcda8d 100644 --- a/tools/msgenc/msgenc.cpp +++ b/tools/msgenc/msgenc.cpp @@ -99,10 +99,16 @@ 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 args; + if (command_i != 0) { + args.push_back(command_i); + } do { k = enclosed.find(','); string num = enclosed.substr(0, k); -- cgit v1.2.3