From a722e8a4fb250cc6985be21ec68cfa868e282131 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 24 Sep 2024 16:21:05 -0400 Subject: [PATCH 1/4] Move heal locations data to their associated map.json --- data/maps/BattleTower_Outside/map.json | 7 ++ data/maps/DewfordTown/map.json | 7 ++ data/maps/EverGrandeCity/map.json | 12 +++ data/maps/FallarborTown/map.json | 7 ++ data/maps/FortreeCity/map.json | 7 ++ data/maps/LavaridgeTown/map.json | 7 ++ data/maps/LilycoveCity/map.json | 7 ++ data/maps/LittlerootTown/map.json | 12 +++ .../LittlerootTown_BrendansHouse_2F/map.json | 7 ++ .../maps/LittlerootTown_MaysHouse_2F/map.json | 7 ++ data/maps/MauvilleCity/map.json | 7 ++ data/maps/MossdeepCity/map.json | 7 ++ data/maps/OldaleTown/map.json | 7 ++ data/maps/PacifidlogTown/map.json | 7 ++ data/maps/PetalburgCity/map.json | 7 ++ data/maps/RustboroCity/map.json | 7 ++ data/maps/SlateportCity/map.json | 7 ++ data/maps/SootopolisCity/map.json | 7 ++ data/maps/SouthernIsland_Exterior/map.json | 7 ++ data/maps/VerdanturfTown/map.json | 7 ++ map_data_rules.mk | 5 + src/data/.gitignore | 1 + src/data/heal_locations.h | 25 ----- tools/mapjson/mapjson.cpp | 91 ++++++++++++++++++- 24 files changed, 243 insertions(+), 29 deletions(-) delete mode 100644 src/data/heal_locations.h diff --git a/data/maps/BattleTower_Outside/map.json b/data/maps/BattleTower_Outside/map.json index 7378d940b0..0df103f172 100644 --- a/data/maps/BattleTower_Outside/map.json +++ b/data/maps/BattleTower_Outside/map.json @@ -96,5 +96,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "BattleTower_Outside_EventScript_16025A" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_BATTLE_TOWER_OUTSIDE", + "x": 14, + "y": 9 + } ] } diff --git a/data/maps/DewfordTown/map.json b/data/maps/DewfordTown/map.json index 87ea42d833..e7c10aa40e 100644 --- a/data/maps/DewfordTown/map.json +++ b/data/maps/DewfordTown/map.json @@ -167,5 +167,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "DewfordTown_EventScript_14E0BD" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_DEWFORD_TOWN", + "x": 2, + "y": 11 + } ] } diff --git a/data/maps/EverGrandeCity/map.json b/data/maps/EverGrandeCity/map.json index 051976aefa..c8d9dc01bb 100644 --- a/data/maps/EverGrandeCity/map.json +++ b/data/maps/EverGrandeCity/map.json @@ -189,5 +189,17 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", "script": "Common_EventScript_PokemonCenterSign" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_EVER_GRANDE_CITY", + "x": 27, + "y": 49 + }, + { + "id": "HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE", + "x": 18, + "y": 6 + } ] } diff --git a/data/maps/FallarborTown/map.json b/data/maps/FallarborTown/map.json index 057f9252c7..e235eee051 100644 --- a/data/maps/FallarborTown/map.json +++ b/data/maps/FallarborTown/map.json @@ -178,5 +178,12 @@ "item": "ITEM_NUGGET", "flag": "FLAG_HIDDEN_ITEM_1C" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_FALLARBOR_TOWN", + "x": 14, + "y": 8 + } ] } diff --git a/data/maps/FortreeCity/map.json b/data/maps/FortreeCity/map.json index 3bdf1024b6..49c0514992 100644 --- a/data/maps/FortreeCity/map.json +++ b/data/maps/FortreeCity/map.json @@ -229,5 +229,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", "script": "Common_EventScript_PokemartSign" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_FORTREE_CITY", + "x": 5, + "y": 7 + } ] } diff --git a/data/maps/LavaridgeTown/map.json b/data/maps/LavaridgeTown/map.json index 07d912f50e..99670e874c 100644 --- a/data/maps/LavaridgeTown/map.json +++ b/data/maps/LavaridgeTown/map.json @@ -255,5 +255,12 @@ "item": "ITEM_ICE_HEAL", "flag": "FLAG_HIDDEN_ITEM_0" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_LAVARIDGE_TOWN", + "x": 9, + "y": 7 + } ] } diff --git a/data/maps/LilycoveCity/map.json b/data/maps/LilycoveCity/map.json index 12a5d9c4ae..138f0b09c4 100644 --- a/data/maps/LilycoveCity/map.json +++ b/data/maps/LilycoveCity/map.json @@ -457,5 +457,12 @@ "item": "ITEM_POKE_BALL", "flag": "FLAG_HIDDEN_ITEM_4B" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_LILYCOVE_CITY", + "x": 24, + "y": 15 + } ] } diff --git a/data/maps/LittlerootTown/map.json b/data/maps/LittlerootTown/map.json index db45539f60..0508e4c93b 100644 --- a/data/maps/LittlerootTown/map.json +++ b/data/maps/LittlerootTown/map.json @@ -235,5 +235,17 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "LittlerootTown_EventScript_14D834" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE", + "x": 5, + "y": 9 + }, + { + "id": "HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE", + "x": 14, + "y": 9 + } ] } diff --git a/data/maps/LittlerootTown_BrendansHouse_2F/map.json b/data/maps/LittlerootTown_BrendansHouse_2F/map.json index 53ab5668df..6608ce0602 100644 --- a/data/maps/LittlerootTown_BrendansHouse_2F/map.json +++ b/data/maps/LittlerootTown_BrendansHouse_2F/map.json @@ -237,5 +237,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "LittlerootTown_BrendansHouse_2F_EventScript_152870" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F", + "x": 4, + "y": 2 + } ] } diff --git a/data/maps/LittlerootTown_MaysHouse_2F/map.json b/data/maps/LittlerootTown_MaysHouse_2F/map.json index 349357f2e2..62564c7037 100644 --- a/data/maps/LittlerootTown_MaysHouse_2F/map.json +++ b/data/maps/LittlerootTown_MaysHouse_2F/map.json @@ -250,5 +250,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "LittlerootTown_MaysHouse_2F_EventScript_152C39" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F", + "x": 4, + "y": 2 + } ] } diff --git a/data/maps/MauvilleCity/map.json b/data/maps/MauvilleCity/map.json index 1ae80fe0b1..126972f50a 100644 --- a/data/maps/MauvilleCity/map.json +++ b/data/maps/MauvilleCity/map.json @@ -267,5 +267,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "MauvilleCity_EventScript_14C099" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_MAUVILLE_CITY", + "x": 22, + "y": 6 + } ] } diff --git a/data/maps/MossdeepCity/map.json b/data/maps/MossdeepCity/map.json index 04d06b3a0e..de454bc638 100644 --- a/data/maps/MossdeepCity/map.json +++ b/data/maps/MossdeepCity/map.json @@ -320,5 +320,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "MossdeepCity_EventScript_14CFE4" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_MOSSDEEP_CITY", + "x": 28, + "y": 17 + } ] } diff --git a/data/maps/OldaleTown/map.json b/data/maps/OldaleTown/map.json index beb50b6e5b..48bb525fb7 100644 --- a/data/maps/OldaleTown/map.json +++ b/data/maps/OldaleTown/map.json @@ -189,5 +189,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", "script": "Common_EventScript_PokemartSign" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_OLDALE_TOWN", + "x": 6, + "y": 17 + } ] } diff --git a/data/maps/PacifidlogTown/map.json b/data/maps/PacifidlogTown/map.json index 538f74e874..10f1bfea93 100644 --- a/data/maps/PacifidlogTown/map.json +++ b/data/maps/PacifidlogTown/map.json @@ -132,5 +132,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_NORTH", "script": "Common_EventScript_PokemonCenterSign" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_PACIFIDLOG_TOWN", + "x": 8, + "y": 16 + } ] } diff --git a/data/maps/PetalburgCity/map.json b/data/maps/PetalburgCity/map.json index adfdee2695..779485d87b 100644 --- a/data/maps/PetalburgCity/map.json +++ b/data/maps/PetalburgCity/map.json @@ -287,5 +287,12 @@ "item": "ITEM_RARE_CANDY", "flag": "FLAG_HIDDEN_ITEM_5F" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_PETALBURG_CITY", + "x": 20, + "y": 17 + } ] } diff --git a/data/maps/RustboroCity/map.json b/data/maps/RustboroCity/map.json index 171cd7a484..1d68133231 100644 --- a/data/maps/RustboroCity/map.json +++ b/data/maps/RustboroCity/map.json @@ -496,5 +496,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "RustboroCity_EventScript_14C440" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_RUSTBORO_CITY", + "x": 16, + "y": 39 + } ] } diff --git a/data/maps/SlateportCity/map.json b/data/maps/SlateportCity/map.json index d50e0f89e2..92c8aaaad0 100644 --- a/data/maps/SlateportCity/map.json +++ b/data/maps/SlateportCity/map.json @@ -608,5 +608,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "SlateportCity_EventScript_14BC3C" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_SLATEPORT_CITY", + "x": 19, + "y": 20 + } ] } diff --git a/data/maps/SootopolisCity/map.json b/data/maps/SootopolisCity/map.json index 2b97319bc7..0e5e525964 100644 --- a/data/maps/SootopolisCity/map.json +++ b/data/maps/SootopolisCity/map.json @@ -301,5 +301,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "SootopolisCity_EventScript_14D2F6" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_SOOTOPOLIS_CITY", + "x": 43, + "y": 32 + } ] } diff --git a/data/maps/SouthernIsland_Exterior/map.json b/data/maps/SouthernIsland_Exterior/map.json index f9c6c2232a..b7f20d578c 100644 --- a/data/maps/SouthernIsland_Exterior/map.json +++ b/data/maps/SouthernIsland_Exterior/map.json @@ -64,5 +64,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "SouthernIsland_Exterior_EventScript_160B4A" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR", + "x": 15, + "y": 20 + } ] } diff --git a/data/maps/VerdanturfTown/map.json b/data/maps/VerdanturfTown/map.json index c9b222919e..9b11c3a5b7 100644 --- a/data/maps/VerdanturfTown/map.json +++ b/data/maps/VerdanturfTown/map.json @@ -192,5 +192,12 @@ "player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY", "script": "VerdanturfTown_EventScript_14E8E5" } + ], + "heal_locations": [ + { + "id": "HEAL_LOCATION_VERDANTURF_TOWN", + "x": 16, + "y": 4 + } ] } diff --git a/map_data_rules.mk b/map_data_rules.mk index 6a7d4c96c4..b9e6939847 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -11,11 +11,13 @@ INCLUDECONSTS_OUTDIR := include/constants AUTO_GEN_TARGETS += $(INCLUDECONSTS_OUTDIR)/map_groups.h AUTO_GEN_TARGETS += $(INCLUDECONSTS_OUTDIR)/layouts.h +AUTO_GEN_TARGETS += $(DATA_SRC_SUBDIR)/heal_locations.h MAP_DIRS := $(dir $(wildcard $(MAPS_DIR)/*/map.json)) MAP_CONNECTIONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/connections.inc,$(MAP_DIRS)) MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS)) MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS)) +MAP_JSONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/map.json,$(MAP_DIRS)) $(BUILD_DIR)/data/maps.o: data/maps.s $(LAYOUTS_DIR)/layouts.inc $(LAYOUTS_DIR)/layouts_table.inc $(MAPS_DIR)/headers.inc $(MAPS_DIR)/groups.inc $(MAPS_DIR)/connections.inc $(MAP_CONNECTIONS) $(MAP_HEADERS) $(PREPROC) $< charmap.txt | $(CPP) -I include -nostdinc -undef -Wno-unicode - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ @@ -30,3 +32,6 @@ $(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.i $(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json $(MAPJSON) layouts ruby $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR) + +$(DATA_SRC_SUBDIR)/heal_locations.h: $(MAP_JSONS) + @$(MAPJSON) heal_locations ruby $^ $(DATA_SRC_SUBDIR)/heal_locations.h diff --git a/src/data/.gitignore b/src/data/.gitignore index eaf9e1f6d0..65490f828e 100644 --- a/src/data/.gitignore +++ b/src/data/.gitignore @@ -1 +1,2 @@ +heal_locations.h wild_encounters.h diff --git a/src/data/heal_locations.h b/src/data/heal_locations.h deleted file mode 100644 index 9d382602a3..0000000000 --- a/src/data/heal_locations.h +++ /dev/null @@ -1,25 +0,0 @@ -static const struct HealLocation sHealLocations[] = -{ - [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F - 1] = {MAP_GROUP(MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2}, - [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F - 1] = {MAP_GROUP(MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2}, - [HEAL_LOCATION_PETALBURG_CITY - 1] = {MAP_GROUP(MAP_PETALBURG_CITY), MAP_NUM(MAP_PETALBURG_CITY), 20, 17}, - [HEAL_LOCATION_SLATEPORT_CITY - 1] = {MAP_GROUP(MAP_SLATEPORT_CITY), MAP_NUM(MAP_SLATEPORT_CITY), 19, 20}, - [HEAL_LOCATION_MAUVILLE_CITY - 1] = {MAP_GROUP(MAP_MAUVILLE_CITY), MAP_NUM(MAP_MAUVILLE_CITY), 22, 6}, - [HEAL_LOCATION_RUSTBORO_CITY - 1] = {MAP_GROUP(MAP_RUSTBORO_CITY), MAP_NUM(MAP_RUSTBORO_CITY), 16, 39}, - [HEAL_LOCATION_FORTREE_CITY - 1] = {MAP_GROUP(MAP_FORTREE_CITY), MAP_NUM(MAP_FORTREE_CITY), 5, 7}, - [HEAL_LOCATION_LILYCOVE_CITY - 1] = {MAP_GROUP(MAP_LILYCOVE_CITY), MAP_NUM(MAP_LILYCOVE_CITY), 24, 15}, - [HEAL_LOCATION_MOSSDEEP_CITY - 1] = {MAP_GROUP(MAP_MOSSDEEP_CITY), MAP_NUM(MAP_MOSSDEEP_CITY), 28, 17}, - [HEAL_LOCATION_SOOTOPOLIS_CITY - 1] = {MAP_GROUP(MAP_SOOTOPOLIS_CITY), MAP_NUM(MAP_SOOTOPOLIS_CITY), 43, 32}, - [HEAL_LOCATION_EVER_GRANDE_CITY - 1] = {MAP_GROUP(MAP_EVER_GRANDE_CITY), MAP_NUM(MAP_EVER_GRANDE_CITY), 27, 49}, - [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE - 1] = {MAP_GROUP(MAP_LITTLEROOT_TOWN), MAP_NUM(MAP_LITTLEROOT_TOWN), 5, 9}, - [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE - 1] = {MAP_GROUP(MAP_LITTLEROOT_TOWN), MAP_NUM(MAP_LITTLEROOT_TOWN), 14, 9}, - [HEAL_LOCATION_OLDALE_TOWN - 1] = {MAP_GROUP(MAP_OLDALE_TOWN), MAP_NUM(MAP_OLDALE_TOWN), 6, 17}, - [HEAL_LOCATION_DEWFORD_TOWN - 1] = {MAP_GROUP(MAP_DEWFORD_TOWN), MAP_NUM(MAP_DEWFORD_TOWN), 2, 11}, - [HEAL_LOCATION_LAVARIDGE_TOWN - 1] = {MAP_GROUP(MAP_LAVARIDGE_TOWN), MAP_NUM(MAP_LAVARIDGE_TOWN), 9, 7}, - [HEAL_LOCATION_FALLARBOR_TOWN - 1] = {MAP_GROUP(MAP_FALLARBOR_TOWN), MAP_NUM(MAP_FALLARBOR_TOWN), 14, 8}, - [HEAL_LOCATION_VERDANTURF_TOWN - 1] = {MAP_GROUP(MAP_VERDANTURF_TOWN), MAP_NUM(MAP_VERDANTURF_TOWN), 16, 4}, - [HEAL_LOCATION_PACIFIDLOG_TOWN - 1] = {MAP_GROUP(MAP_PACIFIDLOG_TOWN), MAP_NUM(MAP_PACIFIDLOG_TOWN), 8, 16}, - [HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE - 1] = {MAP_GROUP(MAP_EVER_GRANDE_CITY), MAP_NUM(MAP_EVER_GRANDE_CITY), 18, 6}, - [HEAL_LOCATION_BATTLE_TOWER_OUTSIDE - 1] = {MAP_GROUP(MAP_BATTLE_TOWER_OUTSIDE), MAP_NUM(MAP_BATTLE_TOWER_OUTSIDE), 14, 9}, - [HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR - 1] = {MAP_GROUP(MAP_SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(MAP_SOUTHERN_ISLAND_EXTERIOR), 15, 20}, -}; diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 94328b4857..e4c02da361 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -371,6 +371,76 @@ void process_map(string map_filepath, string layouts_filepath, string output_dir write_text_file(out_dir + "connections.inc", connections_text); } +void process_heal_locations(const vector &map_filepaths, string output_file) { + ostringstream heal_locations_text; + ostringstream respawn_maps_text; + ostringstream respawn_npcs_text; + + // Get heal location data from each map + for (const string &filepath : map_filepaths) { + string err; + string map_json_text = read_text_file(filepath); + Json map_data = Json::parse(map_json_text, err); + if (map_data == Json()) + FATAL_ERROR("Failed to read '%s' while generating '%s': %s\n", filepath.c_str(), output_file.c_str(), err.c_str()); + + // Skip if no heal locations present + if (map_data.object_items().find("heal_locations") == map_data.object_items().end() || map_data["heal_locations"].array_items().size() <= 0) + continue; + + string map_id = json_to_string(map_data, "id"); + for (auto &heal_location : map_data["heal_locations"].array_items()) { + // Each array is indexed with the heal location's ID, e.g. '[HEAL_LOCATION_NAME - 1] = ' + string index_text = "\t[" + json_to_string(heal_location, "id") + " - 1] ="; + + // Add element to main heal locations array + heal_locations_text << index_text << "\n\t{\n" + << "\t\tMAP_GROUP(" << map_id << "),\n" + << "\t\tMAP_NUM(" << map_id << "),\n" + << "\t\t" << json_to_string(heal_location, "x") << ",\n" + << "\t\t" << json_to_string(heal_location, "y") << ",\n" + << "\t},\n"; + + // Add element to respawn map array (if field is present) + if (heal_location.object_items().find("respawn_map") != heal_location.object_items().end()) { + string respawn_map_id = json_to_string(heal_location, "respawn_map"); + respawn_maps_text << index_text << " {" + << "MAP_GROUP(" << respawn_map_id << "), " + << "MAP_NUM(" << respawn_map_id << ")" + << "},\n"; + } + + // Add element to respawn NPC array (if field is present) + if (heal_location.object_items().find("respawn_npc") != heal_location.object_items().end()) { + respawn_npcs_text << index_text << " " << json_to_string(heal_location, "respawn_npc") << ",\n"; + } + } + } + + ostringstream text; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/*/map.json\n//\n\n"; + + string arr_name; + if (version == "firered") { + arr_name = "sSpawnPoints"; + } else { + arr_name = "sHealLocations"; + } + + string arr_body = heal_locations_text.str(); + text << "static const struct HealLocation " << arr_name << "[] =\n{\n" << arr_body << "};\n\n"; + + arr_body = respawn_maps_text.str(); + if (!arr_body.empty()) + text << "static const u16 sWhiteoutRespawnHealCenterMapIdxs[][2] =\n{\n" << arr_body << "};\n\n"; + + arr_body = respawn_npcs_text.str(); + if (!arr_body.empty()) + text << "static const u8 sWhiteoutRespawnHealerNpcIds[] =\n{\n" << arr_body << "};\n\n"; + + write_text_file(output_file, text.str()); +} + string generate_groups_text(Json groups_data) { ostringstream text; @@ -627,9 +697,6 @@ int main(int argc, char *argv[]) { char *mode_arg = argv[1]; string mode(mode_arg); - if (mode != "layouts" && mode != "map" && mode != "groups") - FATAL_ERROR("ERROR: must be 'layouts', 'map', or 'groups'.\n"); - if (mode == "map") { if (argc != 6) FATAL_ERROR("USAGE: mapjson map \n"); @@ -663,8 +730,24 @@ int main(int argc, char *argv[]) { process_layouts(filepath, output_asm, output_c); } + else if (mode == "heal_locations") { + if (argc < 5) + FATAL_ERROR("USAGE: mapjson heal_locations [additional_map_files] "); + + infer_separator(argv[3]); + + vector filepaths; + const int firstMapFileArg = 3; + const int lastMapFileArg = argc - 2; + for (int i = firstMapFileArg; i <= lastMapFileArg; i++) { + filepaths.push_back(argv[i]); + } + string output_file(argv[argc - 1]); + + process_heal_locations(filepaths, output_file); + } else { - FATAL_ERROR("ERROR: must be 'layouts', 'map', or 'groups'.\n"); + FATAL_ERROR("ERROR: must be 'layouts', 'map', 'heal_locations', or 'groups'.\n"); } return 0; From e301b9af308b5700f35ce7f48e05776450e93336 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 24 Sep 2024 16:23:22 -0400 Subject: [PATCH 2/4] Replace unusual heal location member names --- include/heal_location.h | 4 ++-- src/heal_location.c | 2 +- src/overworld.c | 6 +++--- tools/mapjson/mapjson.cpp | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/heal_location.h b/include/heal_location.h index 46f0d785ab..c087cfb3cd 100644 --- a/include/heal_location.h +++ b/include/heal_location.h @@ -3,8 +3,8 @@ struct HealLocation { - s8 group; - s8 map; + s8 mapGroup; + s8 mapNum; u16 x; u16 y; }; diff --git a/src/heal_location.c b/src/heal_location.c index 5eda24d67a..0396f01c6d 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -11,7 +11,7 @@ u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) for (i = 0; i < ARRAY_COUNT(sHealLocations); i++) { - if (sHealLocations[i].group == mapGroup && sHealLocations[i].map == mapNum) + if (sHealLocations[i].mapGroup == mapGroup && sHealLocations[i].mapNum == mapNum) return i + 1; } return 0; diff --git a/src/overworld.c b/src/overworld.c index 34a7cd8eb8..99c1c03f6f 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -477,7 +477,7 @@ void sub_8053538(u8 a1) const struct HealLocation *warp = GetHealLocation(a1); if (warp) - Overworld_SetWarpDestination(warp->group, warp->map, -1, warp->x, warp->y); + Overworld_SetWarpDestination(warp->mapGroup, warp->mapNum, -1, warp->x, warp->y); } void Overworld_SetWarpDestToLastHealLoc(void) @@ -490,7 +490,7 @@ void Overworld_SetHealLocationWarp(u8 healLocationId) const struct HealLocation *healLocation = GetHealLocation(healLocationId); if (healLocation != NULL) - SetWarpData(&gSaveBlock1.lastHealLocation, healLocation->group, healLocation->map, -1, healLocation->x, healLocation->y); + SetWarpData(&gSaveBlock1.lastHealLocation, healLocation->mapGroup, healLocation->mapNum, -1, healLocation->x, healLocation->y); } void sub_80535C4(s16 a1, s16 a2) @@ -548,7 +548,7 @@ void sub_80537CC(u8 a1) { const struct HealLocation *warp = GetHealLocation(a1); if (warp) - SetWarpData(&gSaveBlock1.warp1, warp->group, warp->map, -1, warp->x, warp->y); + SetWarpData(&gSaveBlock1.warp1, warp->mapGroup, warp->mapNum, -1, warp->x, warp->y); } void gpu_sync_bg_hide() diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index e4c02da361..30de674266 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -395,10 +395,10 @@ void process_heal_locations(const vector &map_filepaths, string output_f // Add element to main heal locations array heal_locations_text << index_text << "\n\t{\n" - << "\t\tMAP_GROUP(" << map_id << "),\n" - << "\t\tMAP_NUM(" << map_id << "),\n" - << "\t\t" << json_to_string(heal_location, "x") << ",\n" - << "\t\t" << json_to_string(heal_location, "y") << ",\n" + << "\t\t.mapGroup = MAP_GROUP(" << map_id << "),\n" + << "\t\t.mapNum = MAP_NUM(" << map_id << "),\n" + << "\t\t.x = " << json_to_string(heal_location, "x") << ",\n" + << "\t\t.y = " << json_to_string(heal_location, "y") << ",\n" << "\t},\n"; // Add element to respawn map array (if field is present) From 3e27fc8de41396cd84390cff055438ed158c5416 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 26 Sep 2024 13:36:36 -0400 Subject: [PATCH 3/4] Heal locations to enum, add NONE --- Makefile | 2 +- include/constants/heal_locations.h | 47 ++++++------- src/heal_location.c | 6 +- src/region_map.c | 102 ++++++++++++++--------------- 4 files changed, 80 insertions(+), 77 deletions(-) diff --git a/Makefile b/Makefile index d09b000492..38e66dd84f 100644 --- a/Makefile +++ b/Makefile @@ -242,7 +242,7 @@ $(C_OBJECTS): $(BUILD_DIR)/%.o: %.c $$(C_DEP) # Only .s files in data need preproc $(BUILD_DIR)/data/%.o: data/%.s $$(ASM_DEP) @echo "$(AS) -o $@ $<" - @$(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@ + @$(PREPROC) $< charmap.txt | $(CPP) -I include | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ $(BUILD_DIR)/%.o: %.s $$(ASM_DEP) @echo "$(AS) -o $@ $<" diff --git a/include/constants/heal_locations.h b/include/constants/heal_locations.h index f7be5e16e8..9fa821cd38 100644 --- a/include/constants/heal_locations.h +++ b/include/constants/heal_locations.h @@ -1,27 +1,30 @@ #ifndef GUARD_CONSTANTS_HEAL_LOCATIONS_H #define GUARD_CONSTANTS_HEAL_LOCATIONS_H -#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 -#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F 2 -#define HEAL_LOCATION_PETALBURG_CITY 3 -#define HEAL_LOCATION_SLATEPORT_CITY 4 -#define HEAL_LOCATION_MAUVILLE_CITY 5 -#define HEAL_LOCATION_RUSTBORO_CITY 6 -#define HEAL_LOCATION_FORTREE_CITY 7 -#define HEAL_LOCATION_LILYCOVE_CITY 8 -#define HEAL_LOCATION_MOSSDEEP_CITY 9 -#define HEAL_LOCATION_SOOTOPOLIS_CITY 10 -#define HEAL_LOCATION_EVER_GRANDE_CITY 11 -#define HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE 12 -#define HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE 13 -#define HEAL_LOCATION_OLDALE_TOWN 14 -#define HEAL_LOCATION_DEWFORD_TOWN 15 -#define HEAL_LOCATION_LAVARIDGE_TOWN 16 -#define HEAL_LOCATION_FALLARBOR_TOWN 17 -#define HEAL_LOCATION_VERDANTURF_TOWN 18 -#define HEAL_LOCATION_PACIFIDLOG_TOWN 19 -#define HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE 20 -#define HEAL_LOCATION_BATTLE_TOWER_OUTSIDE 21 -#define HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR 22 +enum { + HEAL_LOCATION_NONE, + HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, + HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F, + HEAL_LOCATION_PETALBURG_CITY, + HEAL_LOCATION_SLATEPORT_CITY, + HEAL_LOCATION_MAUVILLE_CITY, + HEAL_LOCATION_RUSTBORO_CITY, + HEAL_LOCATION_FORTREE_CITY, + HEAL_LOCATION_LILYCOVE_CITY, + HEAL_LOCATION_MOSSDEEP_CITY, + HEAL_LOCATION_SOOTOPOLIS_CITY, + HEAL_LOCATION_EVER_GRANDE_CITY, + HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE, + HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE, + HEAL_LOCATION_OLDALE_TOWN, + HEAL_LOCATION_DEWFORD_TOWN, + HEAL_LOCATION_LAVARIDGE_TOWN, + HEAL_LOCATION_FALLARBOR_TOWN, + HEAL_LOCATION_VERDANTURF_TOWN, + HEAL_LOCATION_PACIFIDLOG_TOWN, + HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE, + HEAL_LOCATION_BATTLE_TOWER_OUTSIDE, + HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR, +}; #endif // GUARD_CONSTANTS_HEAL_LOCATIONS_H diff --git a/src/heal_location.c b/src/heal_location.c index 0396f01c6d..8e646b2d53 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -14,14 +14,14 @@ u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum) if (sHealLocations[i].mapGroup == mapGroup && sHealLocations[i].mapNum == mapNum) return i + 1; } - return 0; + return HEAL_LOCATION_NONE; } const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum) { u32 index = GetHealLocationIndexByMap(mapGroup, mapNum); - if (index == 0) + if (index == HEAL_LOCATION_NONE) return NULL; else return &sHealLocations[index - 1]; @@ -29,7 +29,7 @@ const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum) const struct HealLocation *GetHealLocation(u32 index) { - if (index == 0) + if (index == HEAL_LOCATION_NONE) return NULL; else if (index > ARRAY_COUNT(sHealLocations)) return NULL; diff --git a/src/region_map.c b/src/region_map.c index ae24e5010f..5cd65432a8 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1164,56 +1164,56 @@ static const u8 sFlyTargetIcons_ImageLZ[] = INCBIN_U8("graphics/pokenav/fly_targ static const u8 sMapHealLocations[][3] = { - {MAP_GROUP(MAP_LITTLEROOT_TOWN), MAP_NUM(MAP_LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, - {MAP_GROUP(MAP_OLDALE_TOWN), MAP_NUM(MAP_OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, - {MAP_GROUP(MAP_DEWFORD_TOWN), MAP_NUM(MAP_DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, - {MAP_GROUP(MAP_LAVARIDGE_TOWN), MAP_NUM(MAP_LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN}, - {MAP_GROUP(MAP_FALLARBOR_TOWN), MAP_NUM(MAP_FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN}, - {MAP_GROUP(MAP_VERDANTURF_TOWN), MAP_NUM(MAP_VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN}, - {MAP_GROUP(MAP_PACIFIDLOG_TOWN), MAP_NUM(MAP_PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN}, - {MAP_GROUP(MAP_PETALBURG_CITY), MAP_NUM(MAP_PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY}, - {MAP_GROUP(MAP_SLATEPORT_CITY), MAP_NUM(MAP_SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY}, - {MAP_GROUP(MAP_MAUVILLE_CITY), MAP_NUM(MAP_MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY}, - {MAP_GROUP(MAP_RUSTBORO_CITY), MAP_NUM(MAP_RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY}, - {MAP_GROUP(MAP_FORTREE_CITY), MAP_NUM(MAP_FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY}, - {MAP_GROUP(MAP_LILYCOVE_CITY), MAP_NUM(MAP_LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, - {MAP_GROUP(MAP_MOSSDEEP_CITY), MAP_NUM(MAP_MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, - {MAP_GROUP(MAP_SOOTOPOLIS_CITY), MAP_NUM(MAP_SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, - {MAP_GROUP(MAP_EVER_GRANDE_CITY), MAP_NUM(MAP_EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY}, - {MAP_GROUP(MAP_ROUTE101), MAP_NUM(MAP_ROUTE101), 0}, - {MAP_GROUP(MAP_ROUTE102), MAP_NUM(MAP_ROUTE102), 0}, - {MAP_GROUP(MAP_ROUTE103), MAP_NUM(MAP_ROUTE103), 0}, - {MAP_GROUP(MAP_ROUTE104), MAP_NUM(MAP_ROUTE104), 0}, - {MAP_GROUP(MAP_ROUTE105), MAP_NUM(MAP_ROUTE105), 0}, - {MAP_GROUP(MAP_ROUTE106), MAP_NUM(MAP_ROUTE106), 0}, - {MAP_GROUP(MAP_ROUTE107), MAP_NUM(MAP_ROUTE107), 0}, - {MAP_GROUP(MAP_ROUTE108), MAP_NUM(MAP_ROUTE108), 0}, - {MAP_GROUP(MAP_ROUTE109), MAP_NUM(MAP_ROUTE109), 0}, - {MAP_GROUP(MAP_ROUTE110), MAP_NUM(MAP_ROUTE110), 0}, - {MAP_GROUP(MAP_ROUTE111), MAP_NUM(MAP_ROUTE111), 0}, - {MAP_GROUP(MAP_ROUTE112), MAP_NUM(MAP_ROUTE112), 0}, - {MAP_GROUP(MAP_ROUTE113), MAP_NUM(MAP_ROUTE113), 0}, - {MAP_GROUP(MAP_ROUTE114), MAP_NUM(MAP_ROUTE114), 0}, - {MAP_GROUP(MAP_ROUTE115), MAP_NUM(MAP_ROUTE115), 0}, - {MAP_GROUP(MAP_ROUTE116), MAP_NUM(MAP_ROUTE116), 0}, - {MAP_GROUP(MAP_ROUTE117), MAP_NUM(MAP_ROUTE117), 0}, - {MAP_GROUP(MAP_ROUTE118), MAP_NUM(MAP_ROUTE118), 0}, - {MAP_GROUP(MAP_ROUTE119), MAP_NUM(MAP_ROUTE119), 0}, - {MAP_GROUP(MAP_ROUTE120), MAP_NUM(MAP_ROUTE120), 0}, - {MAP_GROUP(MAP_ROUTE121), MAP_NUM(MAP_ROUTE121), 0}, - {MAP_GROUP(MAP_ROUTE122), MAP_NUM(MAP_ROUTE122), 0}, - {MAP_GROUP(MAP_ROUTE123), MAP_NUM(MAP_ROUTE123), 0}, - {MAP_GROUP(MAP_ROUTE124), MAP_NUM(MAP_ROUTE124), 0}, - {MAP_GROUP(MAP_ROUTE125), MAP_NUM(MAP_ROUTE125), 0}, - {MAP_GROUP(MAP_ROUTE126), MAP_NUM(MAP_ROUTE126), 0}, - {MAP_GROUP(MAP_ROUTE127), MAP_NUM(MAP_ROUTE127), 0}, - {MAP_GROUP(MAP_ROUTE128), MAP_NUM(MAP_ROUTE128), 0}, - {MAP_GROUP(MAP_ROUTE129), MAP_NUM(MAP_ROUTE129), 0}, - {MAP_GROUP(MAP_ROUTE130), MAP_NUM(MAP_ROUTE130), 0}, - {MAP_GROUP(MAP_ROUTE131), MAP_NUM(MAP_ROUTE131), 0}, - {MAP_GROUP(MAP_ROUTE132), MAP_NUM(MAP_ROUTE132), 0}, - {MAP_GROUP(MAP_ROUTE133), MAP_NUM(MAP_ROUTE133), 0}, - {MAP_GROUP(MAP_ROUTE134), MAP_NUM(MAP_ROUTE134), 0}, + [MAPSEC_LITTLEROOT_TOWN] = {MAP_GROUP(MAP_LITTLEROOT_TOWN), MAP_NUM(MAP_LITTLEROOT_TOWN), HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F}, + [MAPSEC_OLDALE_TOWN] = {MAP_GROUP(MAP_OLDALE_TOWN), MAP_NUM(MAP_OLDALE_TOWN), HEAL_LOCATION_OLDALE_TOWN}, + [MAPSEC_DEWFORD_TOWN] = {MAP_GROUP(MAP_DEWFORD_TOWN), MAP_NUM(MAP_DEWFORD_TOWN), HEAL_LOCATION_DEWFORD_TOWN}, + [MAPSEC_LAVARIDGE_TOWN] = {MAP_GROUP(MAP_LAVARIDGE_TOWN), MAP_NUM(MAP_LAVARIDGE_TOWN), HEAL_LOCATION_LAVARIDGE_TOWN}, + [MAPSEC_FALLARBOR_TOWN] = {MAP_GROUP(MAP_FALLARBOR_TOWN), MAP_NUM(MAP_FALLARBOR_TOWN), HEAL_LOCATION_FALLARBOR_TOWN}, + [MAPSEC_VERDANTURF_TOWN] = {MAP_GROUP(MAP_VERDANTURF_TOWN), MAP_NUM(MAP_VERDANTURF_TOWN), HEAL_LOCATION_VERDANTURF_TOWN}, + [MAPSEC_PACIFIDLOG_TOWN] = {MAP_GROUP(MAP_PACIFIDLOG_TOWN), MAP_NUM(MAP_PACIFIDLOG_TOWN), HEAL_LOCATION_PACIFIDLOG_TOWN}, + [MAPSEC_PETALBURG_CITY] = {MAP_GROUP(MAP_PETALBURG_CITY), MAP_NUM(MAP_PETALBURG_CITY), HEAL_LOCATION_PETALBURG_CITY}, + [MAPSEC_SLATEPORT_CITY] = {MAP_GROUP(MAP_SLATEPORT_CITY), MAP_NUM(MAP_SLATEPORT_CITY), HEAL_LOCATION_SLATEPORT_CITY}, + [MAPSEC_MAUVILLE_CITY] = {MAP_GROUP(MAP_MAUVILLE_CITY), MAP_NUM(MAP_MAUVILLE_CITY), HEAL_LOCATION_MAUVILLE_CITY}, + [MAPSEC_RUSTBORO_CITY] = {MAP_GROUP(MAP_RUSTBORO_CITY), MAP_NUM(MAP_RUSTBORO_CITY), HEAL_LOCATION_RUSTBORO_CITY}, + [MAPSEC_FORTREE_CITY] = {MAP_GROUP(MAP_FORTREE_CITY), MAP_NUM(MAP_FORTREE_CITY), HEAL_LOCATION_FORTREE_CITY}, + [MAPSEC_LILYCOVE_CITY] = {MAP_GROUP(MAP_LILYCOVE_CITY), MAP_NUM(MAP_LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY}, + [MAPSEC_MOSSDEEP_CITY] = {MAP_GROUP(MAP_MOSSDEEP_CITY), MAP_NUM(MAP_MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY}, + [MAPSEC_SOOTOPOLIS_CITY] = {MAP_GROUP(MAP_SOOTOPOLIS_CITY), MAP_NUM(MAP_SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY}, + [MAPSEC_EVER_GRANDE_CITY] = {MAP_GROUP(MAP_EVER_GRANDE_CITY), MAP_NUM(MAP_EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY}, + [MAPSEC_ROUTE_101] = {MAP_GROUP(MAP_ROUTE101), MAP_NUM(MAP_ROUTE101), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_102] = {MAP_GROUP(MAP_ROUTE102), MAP_NUM(MAP_ROUTE102), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_103] = {MAP_GROUP(MAP_ROUTE103), MAP_NUM(MAP_ROUTE103), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_104] = {MAP_GROUP(MAP_ROUTE104), MAP_NUM(MAP_ROUTE104), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_105] = {MAP_GROUP(MAP_ROUTE105), MAP_NUM(MAP_ROUTE105), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_106] = {MAP_GROUP(MAP_ROUTE106), MAP_NUM(MAP_ROUTE106), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_107] = {MAP_GROUP(MAP_ROUTE107), MAP_NUM(MAP_ROUTE107), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_108] = {MAP_GROUP(MAP_ROUTE108), MAP_NUM(MAP_ROUTE108), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_109] = {MAP_GROUP(MAP_ROUTE109), MAP_NUM(MAP_ROUTE109), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_110] = {MAP_GROUP(MAP_ROUTE110), MAP_NUM(MAP_ROUTE110), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_111] = {MAP_GROUP(MAP_ROUTE111), MAP_NUM(MAP_ROUTE111), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_112] = {MAP_GROUP(MAP_ROUTE112), MAP_NUM(MAP_ROUTE112), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_113] = {MAP_GROUP(MAP_ROUTE113), MAP_NUM(MAP_ROUTE113), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_114] = {MAP_GROUP(MAP_ROUTE114), MAP_NUM(MAP_ROUTE114), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_115] = {MAP_GROUP(MAP_ROUTE115), MAP_NUM(MAP_ROUTE115), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_116] = {MAP_GROUP(MAP_ROUTE116), MAP_NUM(MAP_ROUTE116), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_117] = {MAP_GROUP(MAP_ROUTE117), MAP_NUM(MAP_ROUTE117), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_118] = {MAP_GROUP(MAP_ROUTE118), MAP_NUM(MAP_ROUTE118), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_119] = {MAP_GROUP(MAP_ROUTE119), MAP_NUM(MAP_ROUTE119), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_120] = {MAP_GROUP(MAP_ROUTE120), MAP_NUM(MAP_ROUTE120), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_121] = {MAP_GROUP(MAP_ROUTE121), MAP_NUM(MAP_ROUTE121), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_122] = {MAP_GROUP(MAP_ROUTE122), MAP_NUM(MAP_ROUTE122), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_123] = {MAP_GROUP(MAP_ROUTE123), MAP_NUM(MAP_ROUTE123), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_124] = {MAP_GROUP(MAP_ROUTE124), MAP_NUM(MAP_ROUTE124), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_125] = {MAP_GROUP(MAP_ROUTE125), MAP_NUM(MAP_ROUTE125), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_126] = {MAP_GROUP(MAP_ROUTE126), MAP_NUM(MAP_ROUTE126), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_127] = {MAP_GROUP(MAP_ROUTE127), MAP_NUM(MAP_ROUTE127), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_128] = {MAP_GROUP(MAP_ROUTE128), MAP_NUM(MAP_ROUTE128), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_129] = {MAP_GROUP(MAP_ROUTE129), MAP_NUM(MAP_ROUTE129), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_130] = {MAP_GROUP(MAP_ROUTE130), MAP_NUM(MAP_ROUTE130), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_131] = {MAP_GROUP(MAP_ROUTE131), MAP_NUM(MAP_ROUTE131), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_132] = {MAP_GROUP(MAP_ROUTE132), MAP_NUM(MAP_ROUTE132), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_133] = {MAP_GROUP(MAP_ROUTE133), MAP_NUM(MAP_ROUTE133), HEAL_LOCATION_NONE}, + [MAPSEC_ROUTE_134] = {MAP_GROUP(MAP_ROUTE134), MAP_NUM(MAP_ROUTE134), HEAL_LOCATION_NONE}, }; static const u8 *const sEverGrandeCityAreaNames[] = @@ -1631,7 +1631,7 @@ void sub_80FC69C(void) sub_8053538((FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && gRegionMapState->regionMap.everGrandeCityArea == 0) ? HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE : HEAL_LOCATION_EVER_GRANDE_CITY); break; default: - if (sMapHealLocations[gRegionMapState->regionMap.mapSectionId][2] != 0) + if (sMapHealLocations[gRegionMapState->regionMap.mapSectionId][2] != HEAL_LOCATION_NONE) sub_8053538(sMapHealLocations[gRegionMapState->regionMap.mapSectionId][2]); else warp1_set_2(sMapHealLocations[gRegionMapState->regionMap.mapSectionId][0], sMapHealLocations[gRegionMapState->regionMap.mapSectionId][1], -1); From f52092495b76ad50ecb9b647f7c0bc6f32f90c6f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 11 Oct 2024 12:24:47 -0400 Subject: [PATCH 4/4] Sync different heal location array names --- tools/mapjson/mapjson.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 30de674266..3a427f98c2 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -420,15 +420,8 @@ void process_heal_locations(const vector &map_filepaths, string output_f ostringstream text; text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/*/map.json\n//\n\n"; - string arr_name; - if (version == "firered") { - arr_name = "sSpawnPoints"; - } else { - arr_name = "sHealLocations"; - } - string arr_body = heal_locations_text.str(); - text << "static const struct HealLocation " << arr_name << "[] =\n{\n" << arr_body << "};\n\n"; + text << "static const struct HealLocation sHealLocations[] =\n{\n" << arr_body << "};\n\n"; arr_body = respawn_maps_text.str(); if (!arr_body.empty())