diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-18 13:53:34 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-06-18 13:53:34 -0400 |
commit | 28b7cf28c73879c406324f14df424fd7f46e9c14 (patch) | |
tree | e4616cf2702e62b3dd35f9d65ff4b012d0f02b22 /tools/jsonproc/jsonproc.cpp | |
parent | 42efbaf26211b24edc4e31a7ae51948458caef65 (diff) |
Implement o2narc; decompile base stats and movelearns to json
Diffstat (limited to 'tools/jsonproc/jsonproc.cpp')
-rw-r--r-- | tools/jsonproc/jsonproc.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp index f70c9131..bcbe53e4 100644 --- a/tools/jsonproc/jsonproc.cpp +++ b/tools/jsonproc/jsonproc.cpp @@ -5,6 +5,7 @@ #include <map> #include <string> +#include <sstream> using std::string; using std::to_string; #include <inja.hpp> @@ -53,6 +54,21 @@ int main(int argc, char *argv[]) return minuend - subtrahend; }); + env.add_callback("add", 2, [](Arguments& args) { + int x = args.at(0)->get<int>(); + int y = args.at(1)->get<int>(); + + return x + y; + }); + + env.add_callback("setBit", 2, [=](Arguments& args) { + string key = args.at(0)->get<string>(); + unsigned long value = std::stoul(get_custom_var(key)); + value |= (1 << (args.at(1)->get<int>())); + set_custom_var(key, to_string(value)); + return ""; + }); + env.add_callback("setVar", 2, [=](Arguments& args) { string key = args.at(0)->get<string>(); string value = args.at(1)->get<string>(); @@ -72,6 +88,15 @@ int main(int argc, char *argv[]) return get_custom_var(key); }); + env.add_callback("getVarHex", 1, [=](Arguments& args) { + string key = args.at(0)->get<string>(); + unsigned long value = std::stoul(get_custom_var(key)); + std::stringstream ss; + ss << "0x" << std::hex << (value & 0xFFFFFFFFul); + string s = ss.str(); + return s; + }); + env.add_callback("concat", 2, [](Arguments& args) { string first = args.at(0)->get<string>(); string second = args.at(1)->get<string>(); |