summaryrefslogtreecommitdiff
path: root/tools/jsonproc
diff options
context:
space:
mode:
authorLouis Hampton <roastveg@hotmail.co.uk>2020-06-20 19:01:00 +0100
committerLouis Hampton <roastveg@hotmail.co.uk>2020-06-20 19:01:00 +0100
commit3cf5ef0a661c62a94766e2c08025bb7ecb785b2a (patch)
tree7fa9fc230a0517f65876613318f043f3c14b8f63 /tools/jsonproc
parent59f6bdfa9a7645d3e2e9d1ac0bde5af3ad77e8b2 (diff)
parent6298426d9ad4c59a875b0a90a0facfa1a3a513cc (diff)
Merge branch 'master' of https://github.com/roastveg/pokediamond
Diffstat (limited to 'tools/jsonproc')
-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>();