From 78632822c35c5c8f6f9fb03547bb608ec5e5d223 Mon Sep 17 00:00:00 2001 From: Cheng Hann Gan Date: Tue, 5 Oct 2021 20:09:53 -0400 Subject: Added move data JSON (#60) * Added move data JSON * Fixed typo * Fixed name of placeholder move --- tools/dungeonjson/dungeonjson.cpp | 45 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) (limited to 'tools/dungeonjson/dungeonjson.cpp') diff --git a/tools/dungeonjson/dungeonjson.cpp b/tools/dungeonjson/dungeonjson.cpp index cdcf0ba..546a59e 100644 --- a/tools/dungeonjson/dungeonjson.cpp +++ b/tools/dungeonjson/dungeonjson.cpp @@ -464,6 +464,43 @@ string generate_item_data_text(Json data) { return text.str(); } +string generate_move_data_text(Json data) { + ostringstream text; + + text << "@ This is auto-generated by move_data.json.\n"; + text << ".include \"include/constants/type.h\"\n"; + text << ".global gMoveData\n"; + text << "gMoveData:"; + for (Json data_entry : data.array_items()) { + text << read_json_string(data_entry["namePointer"], 4) + << read_json_int(data_entry["power"], 1) + << "\n.byte 0" + << read_json_string(data_entry["type"], 1) + << "\n.byte 0" + << read_json_int(data_entry["targetingFlags"], 2) + << read_json_int(data_entry["aiTargetingFlags"], 2) + << read_json_int(data_entry["maxPP"], 1) + << read_json_int(data_entry["weight"], 1) + << read_json_int(data_entry["accuracy1"], 1) + << read_json_int(data_entry["accuracy2"], 1) + << read_json_int(data_entry["useChance"], 1) + << read_json_int(data_entry["hitCount"], 1) + << read_json_int(data_entry["unk12"], 1) + << read_json_int(data_entry["criticalHitChance"], 1) + << read_json_bool(data_entry["affectedByMagicCoat"]) + << read_json_bool(data_entry["targetsUser"]) + << read_json_bool(data_entry["affectedByMuzzled"]) + << read_json_bool(data_entry["cannotHitFrozen"]) + << read_json_bool(data_entry["dealsDirectDamage"]) + << read_json_int(data_entry["unk19"], 1) + << "\n.2byte 0" + << read_json_string(data_entry["descriptionPointer"], 4) + << read_json_string(data_entry["useText"], 4); + } + text << TABLE_END; + return text.str(); +} + string get_directory_name(string filename) { size_t dir_pos = filename.find_last_of("/\\"); @@ -752,12 +789,14 @@ int main(int argc, char *argv[]) { process_json(filepath, "pokemon_found.inc", generate_pokemon_table_text); } else if (mode == "floor") { process_json(filepath, "floor_id.inc", generate_floorID_table_text); - } else if (mode == "species_data") { + } else if (mode == "species") { process_json(filepath, "species_data.inc", generate_species_data_text); - } else if (mode == "item_data") { + } else if (mode == "item") { process_json(filepath, "item_data.inc", generate_item_data_text); + } else if (mode == "move") { + process_json(filepath, "move_data.inc", generate_move_data_text); } else { - FATAL_ERROR("ERROR: must be 'layouts', 'map', 'groups', 'dungeon', 'floor', 'species_data', or 'item_data'.\n"); + FATAL_ERROR("ERROR: must be 'layouts', 'map', 'groups', 'dungeon', 'floor', 'species', 'item', or 'move'.\n"); } } -- cgit v1.2.3