summaryrefslogtreecommitdiff
path: root/tools/jsonproc/jsonproc.cpp
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-06-18 13:53:34 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-06-18 13:53:34 -0400
commit28b7cf28c73879c406324f14df424fd7f46e9c14 (patch)
treee4616cf2702e62b3dd35f9d65ff4b012d0f02b22 /tools/jsonproc/jsonproc.cpp
parent42efbaf26211b24edc4e31a7ae51948458caef65 (diff)
Implement o2narc; decompile base stats and movelearns to json
Diffstat (limited to 'tools/jsonproc/jsonproc.cpp')
-rw-r--r--tools/jsonproc/jsonproc.cpp25
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>();