summaryrefslogtreecommitdiff
path: root/tools/jsonproc/jsonproc.cpp
diff options
context:
space:
mode:
authorCheng Hann Gan <chenghanngan.us@gmail.com>2021-09-09 19:22:48 -0400
committerGitHub <noreply@github.com>2021-09-09 16:22:48 -0700
commit8237e29a164211eb2ec4cd161eb4183cc1947fee (patch)
tree67dc502264b755dc620f56969f3bea68a40b17af /tools/jsonproc/jsonproc.cpp
parent4eff1882443b0004d9c9fa4895cdfefdc356565f (diff)
Defined more in-dungeon structs and enums (#53)
* Defined DungeonEntity * Rename EntityType enums * Revert EntityType rename * Defined more in-dungeon structs and enums * Added more dungeon global structs/enums * Prefixed dungeonGlobalData with g * Fixed compile errors * Removed some CRLFs * Fixed compile after merge * Revert Makefile * Rename DungeonEntityData.entityType Co-authored-by: Seth Barberee <seth.barberee@gmail.com> * Renamed symbols per PR comments Co-authored-by: Cheng Hann Gan <chenghann_gan@ultimatesoftware.com> Co-authored-by: Seth Barberee <seth.barberee@gmail.com>
Diffstat (limited to 'tools/jsonproc/jsonproc.cpp')
-rw-r--r--tools/jsonproc/jsonproc.cpp218
1 files changed, 109 insertions, 109 deletions
diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp
index 5372194..2ba5fd0 100644
--- a/tools/jsonproc/jsonproc.cpp
+++ b/tools/jsonproc/jsonproc.cpp
@@ -1,109 +1,109 @@
-// jsonproc.cpp
-
-#include "jsonproc.h"
-
-#include <map>
-
-#include <string>
-using std::string; using std::to_string;
-
-#include <inja.hpp>
-using namespace inja;
-using json = nlohmann::json;
-
-std::map<string, string> customVars;
-
-void set_custom_var(string key, string value)
-{
- customVars[key] = value;
-}
-
-string get_custom_var(string key)
-{
- return customVars[key];
-}
-
-int main(int argc, char *argv[])
-{
- if (argc != 4)
- FATAL_ERROR("USAGE: jsonproc <json-filepath> <template-filepath> <output-filepath>\n");
-
- string jsonfilepath = argv[1];
- string templateFilepath = argv[2];
- string outputFilepath = argv[3];
-
- Environment env;
-
- // Add custom command callbacks.
- env.add_callback("doNotModifyHeader", 0, [jsonfilepath, templateFilepath](Arguments& args) {
- return "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n";
- });
-
- env.add_callback("subtract", 2, [](Arguments& args) {
- int minuend = args.at(0)->get<int>();
- int subtrahend = args.at(1)->get<int>();
-
- return minuend - subtrahend;
- });
-
- env.add_callback("setVar", 2, [=](Arguments& args) {
- string key = args.at(0)->get<string>();
- string value = args.at(1)->get<string>();
- set_custom_var(key, value);
- return "";
- });
-
- env.add_callback("setVarInt", 2, [=](Arguments& args) {
- string key = args.at(0)->get<string>();
- string value = to_string(args.at(1)->get<int>());
- set_custom_var(key, value);
- return "";
- });
-
- env.add_callback("getVar", 1, [=](Arguments& args) {
- string key = args.at(0)->get<string>();
- return get_custom_var(key);
- });
-
- env.add_callback("concat", 2, [](Arguments& args) {
- string first = args.at(0)->get<string>();
- string second = args.at(1)->get<string>();
- return first + second;
- });
-
- env.add_callback("removePrefix", 2, [](Arguments& args) {
- string rawValue = args.at(0)->get<string>();
- string prefix = args.at(1)->get<string>();
- string::size_type i = rawValue.find(prefix);
- if (i != 0)
- return rawValue;
-
- return rawValue.erase(0, prefix.length());
- });
-
- env.add_callback("removeSuffix", 2, [](Arguments& args) {
- string rawValue = args.at(0)->get<string>();
- string suffix = args.at(1)->get<string>();
- string::size_type i = rawValue.rfind(suffix);
- if (i == string::npos)
- return rawValue;
-
- return rawValue.substr(0, i);
- });
-
- // single argument is a json object
- env.add_callback("isEmpty", 1, [](Arguments& args) {
- return args.at(0)->empty();
- });
-
- try
- {
- env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath);
- }
- catch (const std::exception& e)
- {
- FATAL_ERROR("JSONPROC_ERROR: %s\n", e.what());
- }
-
- return 0;
-}
+// jsonproc.cpp
+
+#include "jsonproc.h"
+
+#include <map>
+
+#include <string>
+using std::string; using std::to_string;
+
+#include <inja.hpp>
+using namespace inja;
+using json = nlohmann::json;
+
+std::map<string, string> customVars;
+
+void set_custom_var(string key, string value)
+{
+ customVars[key] = value;
+}
+
+string get_custom_var(string key)
+{
+ return customVars[key];
+}
+
+int main(int argc, char *argv[])
+{
+ if (argc != 4)
+ FATAL_ERROR("USAGE: jsonproc <json-filepath> <template-filepath> <output-filepath>\n");
+
+ string jsonfilepath = argv[1];
+ string templateFilepath = argv[2];
+ string outputFilepath = argv[3];
+
+ Environment env;
+
+ // Add custom command callbacks.
+ env.add_callback("doNotModifyHeader", 0, [jsonfilepath, templateFilepath](Arguments& args) {
+ return "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from " + jsonfilepath +" and Inja template " + templateFilepath + "\n//\n";
+ });
+
+ env.add_callback("subtract", 2, [](Arguments& args) {
+ int minuend = args.at(0)->get<int>();
+ int subtrahend = args.at(1)->get<int>();
+
+ return minuend - subtrahend;
+ });
+
+ env.add_callback("setVar", 2, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ string value = args.at(1)->get<string>();
+ set_custom_var(key, value);
+ return "";
+ });
+
+ env.add_callback("setVarInt", 2, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ string value = to_string(args.at(1)->get<int>());
+ set_custom_var(key, value);
+ return "";
+ });
+
+ env.add_callback("getVar", 1, [=](Arguments& args) {
+ string key = args.at(0)->get<string>();
+ return get_custom_var(key);
+ });
+
+ env.add_callback("concat", 2, [](Arguments& args) {
+ string first = args.at(0)->get<string>();
+ string second = args.at(1)->get<string>();
+ return first + second;
+ });
+
+ env.add_callback("removePrefix", 2, [](Arguments& args) {
+ string rawValue = args.at(0)->get<string>();
+ string prefix = args.at(1)->get<string>();
+ string::size_type i = rawValue.find(prefix);
+ if (i != 0)
+ return rawValue;
+
+ return rawValue.erase(0, prefix.length());
+ });
+
+ env.add_callback("removeSuffix", 2, [](Arguments& args) {
+ string rawValue = args.at(0)->get<string>();
+ string suffix = args.at(1)->get<string>();
+ string::size_type i = rawValue.rfind(suffix);
+ if (i == string::npos)
+ return rawValue;
+
+ return rawValue.substr(0, i);
+ });
+
+ // single argument is a json object
+ env.add_callback("isEmpty", 1, [](Arguments& args) {
+ return args.at(0)->empty();
+ });
+
+ try
+ {
+ env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath);
+ }
+ catch (const std::exception& e)
+ {
+ FATAL_ERROR("JSONPROC_ERROR: %s\n", e.what());
+ }
+
+ return 0;
+}