mirror of
https://github.com/pret/pokeruby.git
synced 2026-03-21 17:54:19 -05:00
Move heal locations data to their associated map.json (#869)
This commit is contained in:
parent
68acbcf740
commit
0696597361
2
Makefile
2
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) <flags> -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) <flags> -o $@ $<"
|
||||
|
|
|
|||
7
data/maps/BattleTower_Outside/map.json
vendored
7
data/maps/BattleTower_Outside/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/DewfordTown/map.json
vendored
7
data/maps/DewfordTown/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
12
data/maps/EverGrandeCity/map.json
vendored
12
data/maps/EverGrandeCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/FallarborTown/map.json
vendored
7
data/maps/FallarborTown/map.json
vendored
|
|
@ -178,5 +178,12 @@
|
|||
"item": "ITEM_NUGGET",
|
||||
"flag": "FLAG_HIDDEN_ITEM_1C"
|
||||
}
|
||||
],
|
||||
"heal_locations": [
|
||||
{
|
||||
"id": "HEAL_LOCATION_FALLARBOR_TOWN",
|
||||
"x": 14,
|
||||
"y": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/FortreeCity/map.json
vendored
7
data/maps/FortreeCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/LavaridgeTown/map.json
vendored
7
data/maps/LavaridgeTown/map.json
vendored
|
|
@ -255,5 +255,12 @@
|
|||
"item": "ITEM_ICE_HEAL",
|
||||
"flag": "FLAG_HIDDEN_ITEM_0"
|
||||
}
|
||||
],
|
||||
"heal_locations": [
|
||||
{
|
||||
"id": "HEAL_LOCATION_LAVARIDGE_TOWN",
|
||||
"x": 9,
|
||||
"y": 7
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/LilycoveCity/map.json
vendored
7
data/maps/LilycoveCity/map.json
vendored
|
|
@ -457,5 +457,12 @@
|
|||
"item": "ITEM_POKE_BALL",
|
||||
"flag": "FLAG_HIDDEN_ITEM_4B"
|
||||
}
|
||||
],
|
||||
"heal_locations": [
|
||||
{
|
||||
"id": "HEAL_LOCATION_LILYCOVE_CITY",
|
||||
"x": 24,
|
||||
"y": 15
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
12
data/maps/LittlerootTown/map.json
vendored
12
data/maps/LittlerootTown/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/MauvilleCity/map.json
vendored
7
data/maps/MauvilleCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/MossdeepCity/map.json
vendored
7
data/maps/MossdeepCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/OldaleTown/map.json
vendored
7
data/maps/OldaleTown/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/PacifidlogTown/map.json
vendored
7
data/maps/PacifidlogTown/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/PetalburgCity/map.json
vendored
7
data/maps/PetalburgCity/map.json
vendored
|
|
@ -287,5 +287,12 @@
|
|||
"item": "ITEM_RARE_CANDY",
|
||||
"flag": "FLAG_HIDDEN_ITEM_5F"
|
||||
}
|
||||
],
|
||||
"heal_locations": [
|
||||
{
|
||||
"id": "HEAL_LOCATION_PETALBURG_CITY",
|
||||
"x": 20,
|
||||
"y": 17
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/RustboroCity/map.json
vendored
7
data/maps/RustboroCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/SlateportCity/map.json
vendored
7
data/maps/SlateportCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/SootopolisCity/map.json
vendored
7
data/maps/SootopolisCity/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/SouthernIsland_Exterior/map.json
vendored
7
data/maps/SouthernIsland_Exterior/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
7
data/maps/VerdanturfTown/map.json
vendored
7
data/maps/VerdanturfTown/map.json
vendored
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
struct HealLocation
|
||||
{
|
||||
s8 group;
|
||||
s8 map;
|
||||
s8 mapGroup;
|
||||
s8 mapNum;
|
||||
u16 x;
|
||||
u16 y;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
1
src/data/.gitignore
vendored
1
src/data/.gitignore
vendored
|
|
@ -1 +1,2 @@
|
|||
heal_locations.h
|
||||
wild_encounters.h
|
||||
|
|
|
|||
|
|
@ -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},
|
||||
};
|
||||
|
|
@ -11,17 +11,17 @@ 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;
|
||||
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;
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
102
src/region_map.c
102
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);
|
||||
|
|
|
|||
|
|
@ -371,6 +371,69 @@ 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<string> &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\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)
|
||||
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_body = heal_locations_text.str();
|
||||
text << "static const struct HealLocation sHealLocations[] =\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 +690,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: <mode> must be 'layouts', 'map', or 'groups'.\n");
|
||||
|
||||
if (mode == "map") {
|
||||
if (argc != 6)
|
||||
FATAL_ERROR("USAGE: mapjson map <game-version> <map_file> <layouts_file> <output_dir>\n");
|
||||
|
|
@ -663,8 +723,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 <game-version> <map_file> [additional_map_files] <output_file>");
|
||||
|
||||
infer_separator(argv[3]);
|
||||
|
||||
vector<string> 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: <mode> must be 'layouts', 'map', or 'groups'.\n");
|
||||
FATAL_ERROR("ERROR: <mode> must be 'layouts', 'map', 'heal_locations', or 'groups'.\n");
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user