From 7fa9819d9a91ea6641b966d13b5135d6a40074c9 Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Sat, 11 Nov 2023 22:51:04 +1300 Subject: [PATCH 01/99] Makefile uses make_tools, mapjson takes out dir. Removed generated files (layouts.h, map_groups.h) from git. --- Makefile | 55 ++- include/constants/.gitignore | 3 + include/constants/layouts.h | 450 ------------------------- include/constants/map_groups.h | 596 --------------------------------- make_tools.mk | 18 +- map_data_rules.mk | 30 +- tools/jsonproc/jsonproc.cpp | 2 + tools/mapjson/mapjson.cpp | 122 ++++--- 8 files changed, 131 insertions(+), 1145 deletions(-) create mode 100644 include/constants/.gitignore delete mode 100755 include/constants/layouts.h delete mode 100755 include/constants/map_groups.h diff --git a/Makefile b/Makefile index 5c073b36ca..7d92bad21c 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,9 @@ ifeq (compare,$(MAKECMDGOALS)) COMPARE := 1 endif +# Default make rule +all: rom + # don't use dkP's base_tools anymore # because the redefinition of $(CC) conflicts # with when we want to use $(CC) to preprocess files @@ -121,24 +124,21 @@ endif LDFLAGS = -Map ../../$(MAP) +AUTO_GEN_TARGETS := +include make_tools.mk SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c -GFX := tools/gbagfx/gbagfx$(EXE) -AIF := tools/aif2pcm/aif2pcm$(EXE) -MID := tools/mid2agb/mid2agb$(EXE) -SCANINC := tools/scaninc/scaninc$(EXE) -PREPROC := tools/preproc/preproc$(EXE) -RAMSCRGEN := tools/ramscrgen/ramscrgen$(EXE) -FIX := tools/gbafix/gbafix$(EXE) -MAPJSON := tools/mapjson/mapjson$(EXE) -JSONPROC := tools/jsonproc/jsonproc$(EXE) +GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE) +AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE) +MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE) +SCANINC := $(TOOLS_DIR)/scaninc/scaninc$(EXE) +PREPROC := $(TOOLS_DIR)/preproc/preproc$(EXE) +RAMSCRGEN := $(TOOLS_DIR)/ramscrgen/ramscrgen$(EXE) +FIX := $(TOOLS_DIR)/gbafix/gbafix$(EXE) +MAPJSON := $(TOOLS_DIR)/mapjson/mapjson$(EXE) +JSONPROC := $(TOOLS_DIR)/jsonproc/jsonproc$(EXE) PERL := perl -# Inclusive list. If you don't want a tool to be built, don't add it here. -TOOLDIRS := tools/aif2pcm tools/bin2c tools/gbafix tools/gbagfx tools/jsonproc tools/mapjson tools/mid2agb tools/preproc tools/ramscrgen tools/rsfont tools/scaninc -TOOLBASE = $(TOOLDIRS:tools/%=%) -TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) - MAKEFLAGS += --no-print-directory # Clear the default suffixes @@ -151,7 +151,7 @@ MAKEFLAGS += --no-print-directory # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) libagbsyscall modern tidymodern tidynonmodern +.PHONY: all rom clean compare tidy mostlyclean libagbsyscall modern tidymodern tidynonmodern infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) @@ -161,6 +161,7 @@ infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst # Since we don't need to reload most of this makefile ifeq (,$(filter-out all rom compare modern libagbsyscall syms,$(MAKECMDGOALS))) $(call infoshell, $(MAKE) -f make_tools.mk) +$(call infoshell, $(MAKE) generated) else NODEP ?= 1 endif @@ -211,17 +212,8 @@ SUBDIRS := $(sort $(dir $(OBJS))) $(shell mkdir -p $(SUBDIRS)) endif -AUTO_GEN_TARGETS := - -all: rom - -tools: $(TOOLDIRS) - syms: $(SYM) -$(TOOLDIRS): - @$(MAKE) -C $@ - rom: $(ROM) ifeq ($(COMPARE),1) @$(SHA1) rom.sha1 @@ -232,9 +224,6 @@ compare: all clean: mostlyclean clean-tools -clean-tools: - @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) - mostlyclean: tidynonmodern tidymodern find sound -iname '*.bin' -exec rm {} + rm -f $(MID_SUBDIR)/*.s @@ -265,6 +254,8 @@ include spritesheet_rules.mk include json_data_rules.mk include songs.mk +generated: $(AUTO_GEN_TARGETS) + %.s: ; %.png: ; %.pal: ; @@ -282,7 +273,7 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@ ifeq ($(MODERN),0) -$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) +$(C_BUILDDIR)/libc.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/libc.o: CFLAGS := -O2 $(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork @@ -291,10 +282,10 @@ $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork -$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) +$(C_BUILDDIR)/m4a.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding -$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) +$(C_BUILDDIR)/librfu_intr.o: CC1 := $(TOOLS_DIR)/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet else $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast @@ -322,7 +313,7 @@ else endif else define C_DEP -$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) +$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include -I gflib $2) ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - @@ -349,7 +340,7 @@ else endif else define GFLIB_DEP -$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) +$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include -I gflib $2) ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - diff --git a/include/constants/.gitignore b/include/constants/.gitignore new file mode 100644 index 0000000000..761af9db76 --- /dev/null +++ b/include/constants/.gitignore @@ -0,0 +1,3 @@ +# Will be moved to build/ eventually +map_groups.h +layouts.h \ No newline at end of file diff --git a/include/constants/layouts.h b/include/constants/layouts.h deleted file mode 100755 index db92c95942..0000000000 --- a/include/constants/layouts.h +++ /dev/null @@ -1,450 +0,0 @@ -#ifndef GUARD_CONSTANTS_LAYOUTS_H -#define GUARD_CONSTANTS_LAYOUTS_H - -// -// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json -// - -#define LAYOUT_PETALBURG_CITY 1 -#define LAYOUT_SLATEPORT_CITY 2 -#define LAYOUT_MAUVILLE_CITY 3 -#define LAYOUT_RUSTBORO_CITY 4 -#define LAYOUT_FORTREE_CITY 5 -#define LAYOUT_LILYCOVE_CITY 6 -#define LAYOUT_MOSSDEEP_CITY 7 -#define LAYOUT_SOOTOPOLIS_CITY 8 -#define LAYOUT_EVER_GRANDE_CITY 9 -#define LAYOUT_LITTLEROOT_TOWN 10 -#define LAYOUT_OLDALE_TOWN 11 -#define LAYOUT_DEWFORD_TOWN 12 -#define LAYOUT_LAVARIDGE_TOWN 13 -#define LAYOUT_FALLARBOR_TOWN 14 -#define LAYOUT_VERDANTURF_TOWN 15 -#define LAYOUT_PACIFIDLOG_TOWN 16 -#define LAYOUT_ROUTE101 17 -#define LAYOUT_ROUTE102 18 -#define LAYOUT_ROUTE103 19 -#define LAYOUT_ROUTE104 20 -#define LAYOUT_ROUTE105 21 -#define LAYOUT_ROUTE106 22 -#define LAYOUT_ROUTE107 23 -#define LAYOUT_ROUTE108 24 -#define LAYOUT_ROUTE109 25 -#define LAYOUT_ROUTE110 26 -#define LAYOUT_ROUTE111 27 -#define LAYOUT_ROUTE112 28 -#define LAYOUT_ROUTE113 29 -#define LAYOUT_ROUTE114 30 -#define LAYOUT_ROUTE115 31 -#define LAYOUT_ROUTE116 32 -#define LAYOUT_ROUTE117 33 -#define LAYOUT_ROUTE118 34 -#define LAYOUT_ROUTE119 35 -#define LAYOUT_ROUTE120 36 -#define LAYOUT_ROUTE121 37 -#define LAYOUT_ROUTE122 38 -#define LAYOUT_ROUTE123 39 -#define LAYOUT_ROUTE124 40 -#define LAYOUT_ROUTE125 41 -#define LAYOUT_ROUTE126 42 -#define LAYOUT_ROUTE127 43 -#define LAYOUT_ROUTE128 44 -#define LAYOUT_ROUTE129 45 -#define LAYOUT_ROUTE130_MIRAGE_ISLAND 46 -#define LAYOUT_ROUTE131 47 -#define LAYOUT_ROUTE132 48 -#define LAYOUT_ROUTE133 49 -#define LAYOUT_ROUTE134 50 -#define LAYOUT_UNDERWATER_ROUTE126 51 -#define LAYOUT_UNDERWATER_ROUTE127 52 -#define LAYOUT_UNDERWATER_ROUTE128 53 -#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 54 -#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 55 -#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F 56 -#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F 57 -#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 58 -#define LAYOUT_HOUSE1 59 -#define LAYOUT_HOUSE2 60 -#define LAYOUT_POKEMON_CENTER_1F 61 -#define LAYOUT_POKEMON_CENTER_2F 62 -#define LAYOUT_MART 63 -#define LAYOUT_HOUSE3 64 -#define LAYOUT_DEWFORD_TOWN_GYM 65 -#define LAYOUT_DEWFORD_TOWN_HALL 66 -#define LAYOUT_HOUSE4 67 -#define LAYOUT_LAVARIDGE_TOWN_HERB_SHOP 68 -#define LAYOUT_LAVARIDGE_TOWN_GYM_1F 69 -#define LAYOUT_LAVARIDGE_TOWN_GYM_B1F 70 -#define LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F 71 -#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72 -#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73 -#define LAYOUT_LILYCOVE_CITY_HOUSE2 74 -#define LAYOUT_UNUSED_CONTEST_ROOM1 75 -#define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76 -#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77 -#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78 -#define LAYOUT_PETALBURG_CITY_GYM 79 -#define LAYOUT_HOUSE_WITH_BED 80 -#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81 -#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82 -#define LAYOUT_UNUSED_CONTEST_ROOM2 83 -#define LAYOUT_UNUSED_CONTEST_ROOM3 84 -#define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85 -#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86 -#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87 -#define LAYOUT_HARBOR 88 -#define LAYOUT_MAUVILLE_CITY_GYM 89 -#define LAYOUT_MAUVILLE_CITY_BIKE_SHOP 90 -#define LAYOUT_MAUVILLE_CITY_GAME_CORNER 91 -#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F 92 -#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F 93 -#define LAYOUT_RUSTBORO_CITY_GYM 94 -#define LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL 95 -#define LAYOUT_RUSTBORO_CITY_HOUSE 96 -#define LAYOUT_RUSTBORO_CITY_HOUSE1 97 -#define LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE 98 -#define LAYOUT_FORTREE_CITY_HOUSE1 99 -#define LAYOUT_FORTREE_CITY_GYM 100 -#define LAYOUT_FORTREE_CITY_HOUSE2 101 -#define LAYOUT_ROUTE104_MR_BRINEYS_HOUSE 102 -#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 103 -#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 104 -#define LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY 105 -#define LAYOUT_LILYCOVE_CITY_CONTEST_HALL 106 -#define LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 107 -#define LAYOUT_MOSSDEEP_CITY_GYM 108 -#define LAYOUT_SOOTOPOLIS_CITY_GYM_1F 109 -#define LAYOUT_SOOTOPOLIS_CITY_GYM_B1F 110 -#define LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM 111 -#define LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM 112 -#define LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM 113 -#define LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM 114 -#define LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM 115 -#define LAYOUT_EVER_GRANDE_CITY_SHORT_HALL 116 -#define LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 117 -#define LAYOUT_CABLE_CAR_STATION 118 -#define LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE 119 -#define LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL 120 -#define LAYOUT_ROUTE114_LANETTES_HOUSE 121 -#define LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE 122 -#define LAYOUT_ROUTE117_POKEMON_DAY_CARE 123 -#define LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE 124 -#define LAYOUT_METEOR_FALLS_1F_1R 125 -#define LAYOUT_METEOR_FALLS_1F_2R 126 -#define LAYOUT_METEOR_FALLS_B1F_1R 127 -#define LAYOUT_METEOR_FALLS_B1F_2R 128 -#define LAYOUT_RUSTURF_TUNNEL 129 -#define LAYOUT_UNDERWATER_SOOTOPOLIS_CITY 130 -#define LAYOUT_DESERT_RUINS 131 -#define LAYOUT_GRANITE_CAVE_1F 132 -#define LAYOUT_GRANITE_CAVE_B1F 133 -#define LAYOUT_GRANITE_CAVE_B2F 134 -#define LAYOUT_PETALBURG_WOODS 135 -#define LAYOUT_MT_CHIMNEY 136 -#define LAYOUT_MT_PYRE_1F 137 -#define LAYOUT_MT_PYRE_2F 138 -#define LAYOUT_MT_PYRE_3F 139 -#define LAYOUT_MT_PYRE_4F 140 -#define LAYOUT_MT_PYRE_5F 141 -#define LAYOUT_MT_PYRE_6F 142 -#define LAYOUT_AQUA_HIDEOUT_1F 143 -#define LAYOUT_AQUA_HIDEOUT_B1F 144 -#define LAYOUT_AQUA_HIDEOUT_B2F 145 -#define LAYOUT_UNDERWATER_SEAFLOOR_CAVERN 146 -#define LAYOUT_SEAFLOOR_CAVERN_ENTRANCE 147 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM1 148 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM2 149 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM3 150 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM4 151 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM5 152 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM6 153 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM7 154 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM8 155 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM9 156 -#define LAYOUT_CAVE_OF_ORIGIN_ENTRANCE 157 -#define LAYOUT_CAVE_OF_ORIGIN_1F 158 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 159 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 160 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 161 -#define LAYOUT_CAVE_OF_ORIGIN_B1F 162 -#define LAYOUT_VICTORY_ROAD_1F 163 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 164 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 165 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 166 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167 -#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168 -#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169 -#define LAYOUT_UNUSED_CAVE1 170 -#define LAYOUT_UNUSED_CAVE2 171 -#define LAYOUT_UNUSED_CAVE3 172 -#define LAYOUT_UNUSED_CAVE4 173 -#define LAYOUT_UNUSED_CAVE5 174 -#define LAYOUT_UNUSED_CAVE6 175 -#define LAYOUT_UNUSED_CAVE7 176 -#define LAYOUT_UNUSED_CAVE8 177 -#define LAYOUT_UNUSED_CAVE9 178 -#define LAYOUT_UNUSED_CAVE10 179 -#define LAYOUT_UNUSED_CAVE11 180 -#define LAYOUT_UNUSED_CAVE12 181 -#define LAYOUT_UNUSED_CAVE13 182 -#define LAYOUT_UNUSED_CAVE14 183 -#define LAYOUT_NEW_MAUVILLE_ENTRANCE 184 -#define LAYOUT_NEW_MAUVILLE_INSIDE 185 -#define LAYOUT_ABANDONED_SHIP_DECK 186 -#define LAYOUT_ABANDONED_SHIP_CORRIDORS_1F 187 -#define LAYOUT_ABANDONED_SHIP_ROOMS_1F 188 -#define LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F 189 -#define LAYOUT_ABANDONED_SHIP_ROOMS_B1F 190 -#define LAYOUT_ABANDONED_SHIP_ROOMS2_B1F 191 -#define LAYOUT_ABANDONED_SHIP_UNDERWATER1 192 -#define LAYOUT_ABANDONED_SHIP_ROOM_B1F 193 -#define LAYOUT_ABANDONED_SHIP_ROOMS2_1F 194 -#define LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE 195 -#define LAYOUT_ABANDONED_SHIP_UNDERWATER2 196 -#define LAYOUT_SECRET_BASE_RED_CAVE1 197 -#define LAYOUT_SECRET_BASE_BROWN_CAVE1 198 -#define LAYOUT_SECRET_BASE_BLUE_CAVE1 199 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE1 200 -#define LAYOUT_SECRET_BASE_TREE1 201 -#define LAYOUT_SECRET_BASE_SHRUB1 202 -#define LAYOUT_SECRET_BASE_RED_CAVE2 203 -#define LAYOUT_SECRET_BASE_BROWN_CAVE2 204 -#define LAYOUT_SECRET_BASE_BLUE_CAVE2 205 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE2 206 -#define LAYOUT_SECRET_BASE_TREE2 207 -#define LAYOUT_SECRET_BASE_SHRUB2 208 -#define LAYOUT_SECRET_BASE_RED_CAVE3 209 -#define LAYOUT_SECRET_BASE_BROWN_CAVE3 210 -#define LAYOUT_SECRET_BASE_BLUE_CAVE3 211 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE3 212 -#define LAYOUT_SECRET_BASE_TREE3 213 -#define LAYOUT_SECRET_BASE_SHRUB3 214 -#define LAYOUT_SECRET_BASE_RED_CAVE4 215 -#define LAYOUT_SECRET_BASE_BROWN_CAVE4 216 -#define LAYOUT_SECRET_BASE_BLUE_CAVE4 217 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE4 218 -#define LAYOUT_SECRET_BASE_TREE4 219 -#define LAYOUT_SECRET_BASE_SHRUB4 220 -#define LAYOUT_BATTLE_COLOSSEUM_2P 221 -#define LAYOUT_TRADE_CENTER 222 -#define LAYOUT_RECORD_CORNER 223 -#define LAYOUT_BATTLE_COLOSSEUM_4P 224 -#define LAYOUT_CONTEST_HALL 225 -#define LAYOUT_UNUSED_CONTEST_HALL1 226 -#define LAYOUT_UNUSED_CONTEST_HALL2 227 -#define LAYOUT_UNUSED_CONTEST_HALL3 228 -#define LAYOUT_UNUSED_CONTEST_HALL4 229 -#define LAYOUT_UNUSED_CONTEST_HALL5 230 -#define LAYOUT_UNUSED_CONTEST_HALL6 231 -#define LAYOUT_CONTEST_HALL_BEAUTY 232 -#define LAYOUT_CONTEST_HALL_TOUGH 233 -#define LAYOUT_CONTEST_HALL_COOL 234 -#define LAYOUT_CONTEST_HALL_SMART 235 -#define LAYOUT_CONTEST_HALL_CUTE 236 -#define LAYOUT_INSIDE_OF_TRUCK 237 -#define LAYOUT_SAFARI_ZONE_NORTHWEST 238 -#define LAYOUT_SAFARI_ZONE_NORTH 239 -#define LAYOUT_SAFARI_ZONE_SOUTHWEST 240 -#define LAYOUT_SAFARI_ZONE_SOUTH 241 -#define LAYOUT_UNUSED_OUTDOOR_AREA 242 -#define LAYOUT_ROUTE109_SEASHORE_HOUSE 243 -#define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244 -#define LAYOUT_ROUTE110_TRICK_HOUSE_END 245 -#define LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR 246 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1 247 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2 248 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3 249 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4 250 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5 251 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6 252 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7 253 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8 254 -#define LAYOUT_FORTREE_CITY_DECORATION_SHOP 255 -#define LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE 256 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F 257 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F 258 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F 259 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F 260 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F 261 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 262 -#define LAYOUT_ROUTE130 263 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY 264 -#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST 265 -#define LAYOUT_BATTLE_ELEVATOR 266 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR 267 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM 268 -#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F 269 -#define LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 270 -#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F 271 -#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F 272 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 273 -#define LAYOUT_UNDERWATER_ROUTE124 274 -#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F 275 -#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F 276 -#define LAYOUT_SS_TIDAL_CORRIDOR 277 -#define LAYOUT_SS_TIDAL_LOWER_DECK 278 -#define LAYOUT_SS_TIDAL_ROOMS 279 -#define LAYOUT_ISLAND_CAVE 280 -#define LAYOUT_ANCIENT_TOMB 281 -#define LAYOUT_UNDERWATER_ROUTE134 282 -#define LAYOUT_UNDERWATER_SEALED_CHAMBER 283 -#define LAYOUT_SEALED_CHAMBER_OUTER_ROOM 284 -#define LAYOUT_VICTORY_ROAD_B1F 285 -#define LAYOUT_VICTORY_ROAD_B2F 286 -#define LAYOUT_ROUTE104_PROTOTYPE 287 -#define LAYOUT_GRANITE_CAVE_STEVENS_ROOM 288 -#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 289 -#define LAYOUT_SOUTHERN_ISLAND_EXTERIOR 290 -#define LAYOUT_SOUTHERN_ISLAND_INTERIOR 291 -#define LAYOUT_JAGGED_PASS 292 -#define LAYOUT_FIERY_PATH 293 -#define LAYOUT_RUSTBORO_CITY_FLAT2_1F 294 -#define LAYOUT_RUSTBORO_CITY_FLAT2_2F 295 -#define LAYOUT_RUSTBORO_CITY_FLAT2_3F 296 -#define LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE 297 -#define LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME 298 -#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 299 -#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 300 -#define LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 301 -#define LAYOUT_MT_PYRE_EXTERIOR 302 -#define LAYOUT_MT_PYRE_SUMMIT 303 -#define LAYOUT_SEALED_CHAMBER_INNER_ROOM 304 -#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F 305 -#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F 306 -#define LAYOUT_SOOTOPOLIS_CITY_HOUSE1 307 -#define LAYOUT_SOOTOPOLIS_CITY_HOUSE2 308 -#define LAYOUT_SOOTOPOLIS_CITY_HOUSE3 309 -#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 310 -#define LAYOUT_SCORCHED_SLAB 311 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA 312 -#define LAYOUT_RUSTBORO_CITY_FLAT1_1F 313 -#define LAYOUT_RUSTBORO_CITY_FLAT1_2F 314 -#define LAYOUT_EVER_GRANDE_CITY_HALL4 315 -#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 316 -#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 317 -#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 318 -#define LAYOUT_ROUTE131_SKY_PILLAR 319 -#define LAYOUT_SKY_PILLAR_ENTRANCE 320 -#define LAYOUT_SKY_PILLAR_OUTSIDE 321 -#define LAYOUT_SKY_PILLAR_1F 322 -#define LAYOUT_SKY_PILLAR_2F 323 -#define LAYOUT_SKY_PILLAR_3F 324 -#define LAYOUT_SKY_PILLAR_4F 325 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA 326 -#define LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE 327 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 328 -#define LAYOUT_SAFARI_ZONE_REST_HOUSE 329 -#define LAYOUT_SKY_PILLAR_5F 330 -#define LAYOUT_SKY_PILLAR_TOP 331 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY 332 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR 333 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM 334 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM 335 -#define LAYOUT_MAGMA_HIDEOUT_1F 336 -#define LAYOUT_MAGMA_HIDEOUT_2F_1R 337 -#define LAYOUT_MAGMA_HIDEOUT_2F_2R 338 -#define LAYOUT_MAGMA_HIDEOUT_3F_1R 339 -#define LAYOUT_MAGMA_HIDEOUT_3F_2R 340 -#define LAYOUT_MAGMA_HIDEOUT_4F 341 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY 342 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR 343 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM 344 -#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST 345 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY 346 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM 347 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM 348 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY 349 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR 350 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM 351 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL 352 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL 353 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY 354 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR 355 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 -#define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED 359 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR 361 -#define LAYOUT_BATTLE_PYRAMID_SQUARE01 362 -#define LAYOUT_BATTLE_PYRAMID_SQUARE02 363 -#define LAYOUT_BATTLE_PYRAMID_SQUARE03 364 -#define LAYOUT_BATTLE_PYRAMID_SQUARE04 365 -#define LAYOUT_BATTLE_PYRAMID_SQUARE05 366 -#define LAYOUT_BATTLE_PYRAMID_SQUARE06 367 -#define LAYOUT_BATTLE_PYRAMID_SQUARE07 368 -#define LAYOUT_BATTLE_PYRAMID_SQUARE08 369 -#define LAYOUT_BATTLE_PYRAMID_SQUARE09 370 -#define LAYOUT_BATTLE_PYRAMID_SQUARE10 371 -#define LAYOUT_BATTLE_PYRAMID_SQUARE11 372 -#define LAYOUT_BATTLE_PYRAMID_SQUARE12 373 -#define LAYOUT_BATTLE_PYRAMID_SQUARE13 374 -#define LAYOUT_BATTLE_PYRAMID_SQUARE14 375 -#define LAYOUT_BATTLE_PYRAMID_SQUARE15 376 -#define LAYOUT_BATTLE_PYRAMID_SQUARE16 377 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP 378 -#define LAYOUT_MAGMA_HIDEOUT_3F_3R 379 -#define LAYOUT_MAGMA_HIDEOUT_2F_3R 380 -#define LAYOUT_MIRAGE_TOWER_1F 381 -#define LAYOUT_MIRAGE_TOWER_2F 382 -#define LAYOUT_MIRAGE_TOWER_3F 383 -#define LAYOUT_BATTLE_TENT_LOBBY 384 -#define LAYOUT_BATTLE_TENT_CORRIDOR 385 -#define LAYOUT_BATTLE_TENT_BATTLE_ROOM 386 -#define LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM 387 -#define LAYOUT_MIRAGE_TOWER_4F 388 -#define LAYOUT_DESERT_UNDERPASS 389 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM 390 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR 391 -#define LAYOUT_ROUTE111_NO_MIRAGE_TOWER 392 -#define LAYOUT_UNION_ROOM 393 -#define LAYOUT_SAFARI_ZONE_NORTHEAST 394 -#define LAYOUT_SAFARI_ZONE_SOUTHEAST 395 -#define LAYOUT_BATTLE_FRONTIER_RANKING_HALL 396 -#define LAYOUT_BATTLE_FRONTIER_LOUNGE1 397 -#define LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER 398 -#define LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE 399 -#define LAYOUT_ARTISAN_CAVE_B1F 400 -#define LAYOUT_ARTISAN_CAVE_1F 401 -#define LAYOUT_FARAWAY_ISLAND_ENTRANCE 402 -#define LAYOUT_FARAWAY_ISLAND_INTERIOR 403 -#define LAYOUT_BIRTH_ISLAND_EXTERIOR 404 -#define LAYOUT_ISLAND_HARBOR 405 -#define LAYOUT_UNDERWATER_MARINE_CAVE 406 -#define LAYOUT_MARINE_CAVE_ENTRANCE 407 -#define LAYOUT_TERRA_CAVE_ENTRANCE 408 -#define LAYOUT_TERRA_CAVE_END 409 -#define LAYOUT_UNDERWATER_ROUTE105 410 -#define LAYOUT_UNDERWATER_ROUTE125 411 -#define LAYOUT_UNDERWATER_ROUTE129 412 -#define LAYOUT_MARINE_CAVE_END 413 -#define LAYOUT_TRAINER_HILL_ENTRANCE 414 -#define LAYOUT_TRAINER_HILL_1F 415 -#define LAYOUT_TRAINER_HILL_2F 416 -#define LAYOUT_TRAINER_HILL_3F 417 -#define LAYOUT_TRAINER_HILL_4F 418 -#define LAYOUT_TRAINER_HILL_ROOF 419 -#define LAYOUT_ALTERING_CAVE 420 -#define LAYOUT_NAVEL_ROCK_EXTERIOR 421 -#define LAYOUT_NAVEL_ROCK_ENTRANCE 422 -#define LAYOUT_NAVEL_ROCK_TOP 423 -#define LAYOUT_NAVEL_ROCK_BOTTOM 424 -#define LAYOUT_NAVEL_ROCK_LADDER_ROOM1 425 -#define LAYOUT_NAVEL_ROCK_LADDER_ROOM2 426 -#define LAYOUT_NAVEL_ROCK_B1F 427 -#define LAYOUT_NAVEL_ROCK_FORK 428 -#define LAYOUT_BATTLE_FRONTIER_LOUNGE2 429 -#define LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE 430 -#define LAYOUT_METEOR_FALLS_STEVENS_CAVE 431 -#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE 432 -#define LAYOUT_SKY_PILLAR_1F_CLEAN 433 -#define LAYOUT_SKY_PILLAR_2F_CLEAN 434 -#define LAYOUT_SKY_PILLAR_3F_CLEAN 435 -#define LAYOUT_SKY_PILLAR_4F_CLEAN 436 -#define LAYOUT_SKY_PILLAR_5F_CLEAN 437 -#define LAYOUT_SKY_PILLAR_TOP_CLEAN 438 -#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F 439 -#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F 440 -#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED 441 - -#endif // GUARD_CONSTANTS_LAYOUTS_H diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h deleted file mode 100755 index eaf40a525d..0000000000 --- a/include/constants/map_groups.h +++ /dev/null @@ -1,596 +0,0 @@ -#ifndef GUARD_CONSTANTS_MAP_GROUPS_H -#define GUARD_CONSTANTS_MAP_GROUPS_H - -// -// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json -// - -// gMapGroup_TownsAndRoutes -#define MAP_PETALBURG_CITY (0 | (0 << 8)) -#define MAP_SLATEPORT_CITY (1 | (0 << 8)) -#define MAP_MAUVILLE_CITY (2 | (0 << 8)) -#define MAP_RUSTBORO_CITY (3 | (0 << 8)) -#define MAP_FORTREE_CITY (4 | (0 << 8)) -#define MAP_LILYCOVE_CITY (5 | (0 << 8)) -#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) -#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) -#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) -#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) -#define MAP_OLDALE_TOWN (10 | (0 << 8)) -#define MAP_DEWFORD_TOWN (11 | (0 << 8)) -#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) -#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) -#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) -#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) -#define MAP_ROUTE101 (16 | (0 << 8)) -#define MAP_ROUTE102 (17 | (0 << 8)) -#define MAP_ROUTE103 (18 | (0 << 8)) -#define MAP_ROUTE104 (19 | (0 << 8)) -#define MAP_ROUTE105 (20 | (0 << 8)) -#define MAP_ROUTE106 (21 | (0 << 8)) -#define MAP_ROUTE107 (22 | (0 << 8)) -#define MAP_ROUTE108 (23 | (0 << 8)) -#define MAP_ROUTE109 (24 | (0 << 8)) -#define MAP_ROUTE110 (25 | (0 << 8)) -#define MAP_ROUTE111 (26 | (0 << 8)) -#define MAP_ROUTE112 (27 | (0 << 8)) -#define MAP_ROUTE113 (28 | (0 << 8)) -#define MAP_ROUTE114 (29 | (0 << 8)) -#define MAP_ROUTE115 (30 | (0 << 8)) -#define MAP_ROUTE116 (31 | (0 << 8)) -#define MAP_ROUTE117 (32 | (0 << 8)) -#define MAP_ROUTE118 (33 | (0 << 8)) -#define MAP_ROUTE119 (34 | (0 << 8)) -#define MAP_ROUTE120 (35 | (0 << 8)) -#define MAP_ROUTE121 (36 | (0 << 8)) -#define MAP_ROUTE122 (37 | (0 << 8)) -#define MAP_ROUTE123 (38 | (0 << 8)) -#define MAP_ROUTE124 (39 | (0 << 8)) -#define MAP_ROUTE125 (40 | (0 << 8)) -#define MAP_ROUTE126 (41 | (0 << 8)) -#define MAP_ROUTE127 (42 | (0 << 8)) -#define MAP_ROUTE128 (43 | (0 << 8)) -#define MAP_ROUTE129 (44 | (0 << 8)) -#define MAP_ROUTE130 (45 | (0 << 8)) -#define MAP_ROUTE131 (46 | (0 << 8)) -#define MAP_ROUTE132 (47 | (0 << 8)) -#define MAP_ROUTE133 (48 | (0 << 8)) -#define MAP_ROUTE134 (49 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE124 (50 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE126 (51 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE127 (52 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE128 (53 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE129 (54 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE105 (55 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE125 (56 | (0 << 8)) - -// gMapGroup_IndoorLittleroot -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) - -// gMapGroup_IndoorOldale -#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) -#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) -#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) - -// gMapGroup_IndoorDewford -#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) -#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) - -// gMapGroup_IndoorLavaridge -#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) - -// gMapGroup_IndoorFallarbor -#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_COZMOS_HOUSE (6 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE (7 | (5 << 8)) - -// gMapGroup_IndoorVerdanturf -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) - -// gMapGroup_IndoorPacifidlog -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) - -// gMapGroup_IndoorPetalburg -#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) -#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) -#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) - -// gMapGroup_IndoorSlateport -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) -#define MAP_SLATEPORT_CITY_NAME_RATERS_HOUSE (5 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HOUSE (10 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) -#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) - -// gMapGroup_IndoorMauville -#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) -#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) -#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) -#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) - -// gMapGroup_IndoorRustboro -#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) -#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) -#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) -#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) - -// gMapGroup_IndoorFortree -#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) -#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) -#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) -#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) - -// gMapGroup_IndoorLilycove -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) -#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) -#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) - -// gMapGroup_IndoorMossdeep -#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) - -// gMapGroup_IndoorSootopolis -#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE (12 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8)) - -// gMapGroup_IndoorEverGrande -#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL1 (5 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL2 (6 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL3 (7 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL4 (8 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL5 (9 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) - -// gMapGroup_IndoorRoute104 -#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) -#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) - -// gMapGroup_IndoorRoute111 -#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) -#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) - -// gMapGroup_IndoorRoute112 -#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) -#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) - -// gMapGroup_IndoorRoute114 -#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) -#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) -#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) - -// gMapGroup_IndoorRoute116 -#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) - -// gMapGroup_IndoorRoute117 -#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) - -// gMapGroup_IndoorRoute121 -#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) - -// gMapGroup_Dungeons -#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) -#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) -#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) -#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) -#define MAP_DESERT_RUINS (6 | (24 << 8)) -#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) -#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) -#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) -#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) -#define MAP_PETALBURG_WOODS (11 | (24 << 8)) -#define MAP_MT_CHIMNEY (12 | (24 << 8)) -#define MAP_JAGGED_PASS (13 | (24 << 8)) -#define MAP_FIERY_PATH (14 | (24 << 8)) -#define MAP_MT_PYRE_1F (15 | (24 << 8)) -#define MAP_MT_PYRE_2F (16 | (24 << 8)) -#define MAP_MT_PYRE_3F (17 | (24 << 8)) -#define MAP_MT_PYRE_4F (18 | (24 << 8)) -#define MAP_MT_PYRE_5F (19 | (24 << 8)) -#define MAP_MT_PYRE_6F (20 | (24 << 8)) -#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) -#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) -#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 (39 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 (40 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 (41 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) -#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) -#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) -#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) -#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) -#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) -#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) -#define MAP_ISLAND_CAVE (67 | (24 << 8)) -#define MAP_ANCIENT_TOMB (68 | (24 << 8)) -#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) -#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) -#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) -#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) -#define MAP_SCORCHED_SLAB (73 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 (74 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 (75 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 (76 | (24 << 8)) -#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) -#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) -#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) -#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) -#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) -#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) -#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) -#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) -#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) -#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) -#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) -#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) -#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) -#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) -#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) -#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) -#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) -#define MAP_MARINE_CAVE_END (103 | (24 << 8)) -#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) -#define MAP_TERRA_CAVE_END (105 | (24 << 8)) -#define MAP_ALTERING_CAVE (106 | (24 << 8)) -#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) - -// gMapGroup_IndoorDynamic -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8)) -#define MAP_CONTEST_HALL (28 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL1 (29 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL2 (30 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL3 (31 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL4 (32 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL5 (33 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL6 (34 | (25 << 8)) -#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8)) -#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8)) -#define MAP_CONTEST_HALL_COOL (37 | (25 << 8)) -#define MAP_CONTEST_HALL_SMART (38 | (25 << 8)) -#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) - -// gMapGroup_SpecialArea -#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) -#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM (15 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR (16 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (17 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR (26 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL (37 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL (38 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS (39 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) -#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) -#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) -#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) -#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) -#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) -#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) -#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) -#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) -#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) -#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) -#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) -#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) -#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8)) -#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8)) -#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) -#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) - -// gMapGroup_IndoorRoute104Prototype -#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) -#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) - -// gMapGroup_IndoorRoute109 -#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) - -// gMapGroup_IndoorRoute110 -#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8)) - -// gMapGroup_IndoorRoute113 -#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) - -// gMapGroup_IndoorRoute123 -#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) - -// gMapGroup_IndoorRoute119 -#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) -#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) -#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) - -// gMapGroup_IndoorRoute124 -#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) - -#define MAP_GROUPS_COUNT 34 - -#endif // GUARD_CONSTANTS_MAP_GROUPS_H diff --git a/make_tools.mk b/make_tools.mk index 7e0baf8900..00824adda6 100644 --- a/make_tools.mk +++ b/make_tools.mk @@ -1,12 +1,24 @@ +# This controls building executables in the `tools` folder. +# Can be invoked through the `Makefile` or standalone. MAKEFLAGS += --no-print-directory # Inclusive list. If you don't want a tool to be built, don't add it here. -TOOLDIRS := tools/aif2pcm tools/bin2c tools/gbafix tools/gbagfx tools/jsonproc tools/mapjson tools/mid2agb tools/preproc tools/ramscrgen tools/rsfont tools/scaninc +TOOLS_DIR := tools +TOOL_NAMES := aif2pcm bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramscrgen rsfont scaninc -.PHONY: all $(TOOLDIRS) +TOOLDIRS := $(TOOL_NAMES:%=$(TOOLS_DIR)/%) -all: $(TOOLDIRS) +.PHONY: tools check-tools clean-tools $(TOOLDIRS) $(CHECKTOOLDIRS) + +tools: $(TOOLDIRS) +check-tools: $(CHECKTOOLDIRS) $(TOOLDIRS): @$(MAKE) -C $@ + +$(CHECKTOOLDIRS): + @$(MAKE) -C $@ + +clean-tools: + @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) diff --git a/map_data_rules.mk b/map_data_rules.mk index 626cd47240..974a82f14a 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -1,8 +1,17 @@ # Map JSON data +# Inputs MAPS_DIR = $(DATA_ASM_SUBDIR)/maps LAYOUTS_DIR = $(DATA_ASM_SUBDIR)/layouts +# Outputs +MAPS_OUTDIR := $(MAPS_DIR) +LAYOUTS_OUTDIR := $(LAYOUTS_DIR) +INCLUDECONSTS_OUTDIR := include/constants + +AUTO_GEN_TARGETS += $(INCLUDECONSTS_OUTDIR)/map_groups.h +AUTO_GEN_TARGETS += $(INCLUDECONSTS_OUTDIR)/layouts.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)) @@ -13,19 +22,12 @@ $(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.in $(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ -$(MAPS_DIR)/%/header.inc: $(MAPS_DIR)/%/map.json - $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json -$(MAPS_DIR)/%/events.inc: $(MAPS_DIR)/%/header.inc ; -$(MAPS_DIR)/%/connections.inc: $(MAPS_DIR)/%/events.inc ; -$(MAPS_DIR)/groups.inc: $(MAPS_DIR)/map_groups.json - $(MAPJSON) groups emerald $< -$(MAPS_DIR)/connections.inc: $(MAPS_DIR)/groups.inc ; -$(MAPS_DIR)/events.inc: $(MAPS_DIR)/connections.inc ; -$(MAPS_DIR)/headers.inc: $(MAPS_DIR)/events.inc ; -include/constants/map_groups.h: $(MAPS_DIR)/headers.inc ; +$(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connections.inc: $(MAPS_DIR)/%/map.json + $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json $(@D) -$(LAYOUTS_DIR)/layouts.inc: $(LAYOUTS_DIR)/layouts.json - $(MAPJSON) layouts emerald $< -$(LAYOUTS_DIR)/layouts_table.inc: $(LAYOUTS_DIR)/layouts.inc ; -include/constants/layouts.h: $(LAYOUTS_DIR)/layouts_table.inc ; +$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h: $(MAPS_DIR)/map_groups.json + $(MAPJSON) groups emerald $< $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) + +$(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json + $(MAPJSON) layouts emerald $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR) \ No newline at end of file diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp index 23056a5ff3..a43c5b7624 100755 --- a/tools/jsonproc/jsonproc.cpp +++ b/tools/jsonproc/jsonproc.cpp @@ -1,4 +1,6 @@ // jsonproc.cpp +// jsonproc converts JSON data to an output file based on an Inja template. +// https://github.com/pantor/inja #include "jsonproc.h" diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index e53ac7924d..1632b56be6 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -30,6 +30,8 @@ using json11::Json; #include "mapjson.h" string version; +// System directory separator +string sep; string read_text_file(string filepath) { ifstream in_file(filepath); @@ -330,13 +332,22 @@ string generate_map_events_text(Json map_data) { return text.str(); } -string get_directory_name(string filename) { - size_t dir_pos = filename.find_last_of("/\\"); +string strip_trailing_separator(string filename) { + if(filename.back() == '/' || filename.back() == '\\') + filename.pop_back(); + return filename; +} +void infer_separator(string filename) { + size_t dir_pos = filename.find_last_of("/\\"); + sep = filename[dir_pos]; +} +string file_parent(string filename){ + size_t dir_pos = filename.find_last_of("/\\"); return filename.substr(0, dir_pos + 1); } -void process_map(string map_filepath, string layouts_filepath) { +void process_map(string map_filepath, string layouts_filepath, string output_dir) { string mapdata_err, layouts_err; string mapdata_json_text = read_text_file(map_filepath); @@ -354,16 +365,16 @@ void process_map(string map_filepath, string layouts_filepath) { string events_text = generate_map_events_text(map_data); string connections_text = generate_map_connections_text(map_data); - string files_dir = get_directory_name(map_filepath); - write_text_file(files_dir + "header.inc", header_text); - write_text_file(files_dir + "events.inc", events_text); - write_text_file(files_dir + "connections.inc", connections_text); + string out_dir = strip_trailing_separator(output_dir).append(sep); + write_text_file(out_dir + "header.inc", header_text); + write_text_file(out_dir + "events.inc", events_text); + write_text_file(out_dir + "connections.inc", connections_text); } string generate_groups_text(Json groups_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n@\n\n"; for (auto &key : groups_data["group_order"].array_items()) { string group = json_to_string(key); @@ -382,7 +393,7 @@ string generate_groups_text(Json groups_data) { return text.str(); } -string generate_connections_text(Json groups_data) { +string generate_connections_text(Json groups_data, string include_path) { vector map_names; for (auto &group : groups_data["group_order"].array_items()) @@ -404,15 +415,15 @@ string generate_connections_text(Json groups_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n@\n\n"; for (Json map_name : map_names) - text << "\t.include \"data/maps/" << json_to_string(map_name) << "/connections.inc\"\n"; + text << "\t.include \"" << include_path << "/" << json_to_string(map_name) << "/connections.inc\"\n"; return text.str(); } -string generate_headers_text(Json groups_data) { +string generate_headers_text(Json groups_data, string include_path) { vector map_names; for (auto &group : groups_data["group_order"].array_items()) @@ -421,15 +432,15 @@ string generate_headers_text(Json groups_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n@\n\n"; for (string map_name : map_names) - text << "\t.include \"data/maps/" << map_name << "/header.inc\"\n"; + text << "\t.include \"" << include_path << "/" << map_name << "/header.inc\"\n"; return text.str(); } -string generate_events_text(Json groups_data) { +string generate_events_text(Json groups_data, string include_path) { vector map_names; for (auto &group : groups_data["group_order"].array_items()) @@ -438,24 +449,23 @@ string generate_events_text(Json groups_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from " << include_path << "/map_groups.json\n@\n\n"; for (string map_name : map_names) - text << "\t.include \"data/maps/" << map_name << "/events.inc\"\n"; + text << "\t.include \"" << include_path << "/" << map_name << "/events.inc\"\n"; return text.str(); } string generate_map_constants_text(string groups_filepath, Json groups_data) { - string file_dir = get_directory_name(groups_filepath); - char dir_separator = file_dir.back(); + string file_dir = file_parent(groups_filepath) + sep; ostringstream text; text << "#ifndef GUARD_CONSTANTS_MAP_GROUPS_H\n" << "#define GUARD_CONSTANTS_MAP_GROUPS_H\n\n"; - text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n//\n\n"; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n//\n\n"; int group_num = 0; @@ -466,7 +476,7 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { size_t max_length = 0; for (auto &map_name : groups_data[groupName].array_items()) { - string map_filepath = file_dir + json_to_string(map_name) + dir_separator + "map.json"; + string map_filepath = file_dir + json_to_string(map_name) + sep + "map.json"; string err_str; Json map_data = Json::parse(read_text_file(map_filepath), err_str); if (map_data == Json()) @@ -493,7 +503,11 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { return text.str(); } -void process_groups(string groups_filepath) { +// Output paths are directories with trailing path separators +void process_groups(string groups_filepath, string output_asm, string output_c) { + output_asm = strip_trailing_separator(output_asm); // Remove separator if existing. + output_c = strip_trailing_separator(output_c); + string err; Json groups_data = Json::parse(read_text_file(groups_filepath), err); @@ -501,25 +515,22 @@ void process_groups(string groups_filepath) { FATAL_ERROR("%s\n", err.c_str()); string groups_text = generate_groups_text(groups_data); - string connections_text = generate_connections_text(groups_data); - string headers_text = generate_headers_text(groups_data); - string events_text = generate_events_text(groups_data); + string connections_text = generate_connections_text(groups_data, output_asm); + string headers_text = generate_headers_text(groups_data, output_asm); + string events_text = generate_events_text(groups_data, output_asm); string map_header_text = generate_map_constants_text(groups_filepath, groups_data); - string file_dir = get_directory_name(groups_filepath); - char s = file_dir.back(); - - write_text_file(file_dir + "groups.inc", groups_text); - write_text_file(file_dir + "connections.inc", connections_text); - write_text_file(file_dir + "headers.inc", headers_text); - write_text_file(file_dir + "events.inc", events_text); - write_text_file(file_dir + ".." + s + ".." + s + "include" + s + "constants" + s + "map_groups.h", map_header_text); + write_text_file(output_asm + sep + "groups.inc", groups_text); + write_text_file(output_asm + sep + "connections.inc", connections_text); + write_text_file(output_asm + sep + "headers.inc", headers_text); + write_text_file(output_asm + sep + "events.inc", events_text); + write_text_file(output_c + sep + "map_groups.h", map_header_text); } string generate_layout_headers_text(Json layouts_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from layouts.json\n@\n\n"; for (auto &layout : layouts_data["layouts"].array_items()) { if (layout == Json::object()) continue; @@ -586,7 +597,10 @@ string generate_layouts_constants_text(Json layouts_data) { return text.str(); } -void process_layouts(string layouts_filepath) { +void process_layouts(string layouts_filepath, string output_asm, string output_c) { + output_asm = strip_trailing_separator(output_asm).append(sep); + output_c = strip_trailing_separator(output_c).append(sep); + string err; Json layouts_data = Json::parse(read_text_file(layouts_filepath), err); @@ -597,12 +611,9 @@ void process_layouts(string layouts_filepath) { string layouts_table_text = generate_layouts_table_text(layouts_data); string layouts_constants_text = generate_layouts_constants_text(layouts_data); - string file_dir = get_directory_name(layouts_filepath); - char s = file_dir.back(); - - write_text_file(file_dir + "layouts.inc", layout_headers_text); - write_text_file(file_dir + "layouts_table.inc", layouts_table_text); - write_text_file(file_dir + ".." + s + ".." + s + "include" + s + "constants" + s + "layouts.h", layouts_constants_text); + write_text_file(output_asm + "layouts.inc", layout_headers_text); + write_text_file(output_asm + "layouts_table.inc", layouts_table_text); + write_text_file(output_c + "layouts.h", layouts_constants_text); } int main(int argc, char *argv[]) { @@ -620,29 +631,40 @@ int main(int argc, char *argv[]) { FATAL_ERROR("ERROR: must be 'layouts', 'map', or 'groups'.\n"); if (mode == "map") { - if (argc != 5) - FATAL_ERROR("USAGE: mapjson map \n"); + if (argc != 6) + FATAL_ERROR("USAGE: mapjson map \n"); + infer_separator(argv[3]); string filepath(argv[3]); string layouts_filepath(argv[4]); + string output_dir(argv[5]); - process_map(filepath, layouts_filepath); + process_map(filepath, layouts_filepath, output_dir); } else if (mode == "groups") { - if (argc != 4) - FATAL_ERROR("USAGE: mapjson groups \n"); + if (argc != 6) + FATAL_ERROR("USAGE: mapjson groups \n"); + infer_separator(argv[3]); string filepath(argv[3]); + string output_asm(argv[4]); + string output_c(argv[5]); - process_groups(filepath); + process_groups(filepath, output_asm, output_c); } else if (mode == "layouts") { - if (argc != 4) - FATAL_ERROR("USAGE: mapjson layouts \n"); + if (argc != 6) + FATAL_ERROR("USAGE: mapjson layouts \n"); + infer_separator(argv[3]); string filepath(argv[3]); + string output_asm(argv[4]); + string output_c(argv[5]); - process_layouts(filepath); + process_layouts(filepath, output_asm, output_c); + } + else { + FATAL_ERROR("ERROR: must be 'layouts', 'map', or 'groups'.\n"); } return 0; From 2198ca31c7a5239176b92bc577408bc1e7715cd4 Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Sun, 12 Nov 2023 13:20:09 +1300 Subject: [PATCH 02/99] Reordered makefile. Added some documentation and simplified dependency scanning. --- Makefile | 359 ++++++++++++++++++++++++-------------------------- make_tools.mk | 4 +- 2 files changed, 178 insertions(+), 185 deletions(-) diff --git a/Makefile b/Makefile index 7d92bad21c..1eb4b8b55a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,22 @@ -TOOLCHAIN := $(DEVKITARM) -COMPARE ?= 0 +# GBA rom header +TITLE := POKEMON EMER +GAME_CODE := BPEE +MAKER_CODE := 01 +REVISION := 0 +MODERN ?= 0 +# `File name`.gba ('_modern' will be appended to the modern builds) +FILE_NAME := pokeemerald +BUILD_DIR := build + +# Builds the ROM using a modern compiler +MODERN ?= 0 +# Compares the ROM to a checksum of the original - only makes sense using when non-modern +COMPARE ?= 0 + +ifeq (modern,$(MAKECMDGOALS)) + MODERN := 1 +endif ifeq (compare,$(MAKECMDGOALS)) COMPARE := 1 endif @@ -8,45 +24,29 @@ endif # Default make rule all: rom +# Toolchain selection +TOOLCHAIN := $(DEVKITARM) # don't use dkP's base_tools anymore # because the redefinition of $(CC) conflicts # with when we want to use $(CC) to preprocess files # thus, manually create the variables for the bin # files, or use arm-none-eabi binaries on the system # if dkP is not installed on this system - ifneq (,$(TOOLCHAIN)) -ifneq ($(wildcard $(TOOLCHAIN)/bin),) -export PATH := $(TOOLCHAIN)/bin:$(PATH) -endif + ifneq ($(wildcard $(TOOLCHAIN)/bin),) + export PATH := $(TOOLCHAIN)/bin:$(PATH) + endif endif PREFIX := arm-none-eabi- OBJCOPY := $(PREFIX)objcopy OBJDUMP := $(PREFIX)objdump AS := $(PREFIX)as - LD := $(PREFIX)ld -# note: the makefile must be set up so MODERNCC is never called -# if MODERN=0 -MODERNCC := $(PREFIX)gcc -PATH_MODERNCC := PATH="$(PATH)" $(MODERNCC) - -ifeq ($(OS),Windows_NT) -EXE := .exe -else EXE := -endif - -TITLE := POKEMON EMER -GAME_CODE := BPEE -MAKER_CODE := 01 -REVISION := 0 -MODERN ?= 0 - -ifeq (modern,$(MAKECMDGOALS)) - MODERN := 1 +ifeq ($(OS),Windows_NT) + EXE := .exe endif # use arm-none-eabi-cpp for macOS @@ -66,22 +66,29 @@ else CPP := $(PREFIX)cpp endif -ROM_NAME := pokeemerald.gba +ROM_NAME := $(FILE_NAME).gba +OBJ_DIR_NAME := $(BUILD_DIR)/emerald +MODERN_ROM_NAME := $(FILE_NAME)_modern.gba +MODERN_OBJ_DIR_NAME := $(BUILD_DIR)/modern + ELF_NAME := $(ROM_NAME:.gba=.elf) MAP_NAME := $(ROM_NAME:.gba=.map) -OBJ_DIR_NAME := build/emerald - -MODERN_ROM_NAME := pokeemerald_modern.gba MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf) MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map) -MODERN_OBJ_DIR_NAME := build/modern -SHELL := /bin/bash -o pipefail - -ELF = $(ROM:.gba=.elf) -MAP = $(ROM:.gba=.map) -SYM = $(ROM:.gba=.sym) +# Pick our active variables +ifeq ($(MODERN),0) + ROM := $(ROM_NAME) + OBJ_DIR := $(OBJ_DIR_NAME) +else + ROM := $(MODERN_ROM_NAME) + OBJ_DIR := $(MODERN_OBJ_DIR_NAME) +endif +ELF := $(ROM:.gba=.elf) +MAP := $(ROM:.gba=.map) +SYM := $(ROM:.gba=.sym) +# Commonly used directories C_SUBDIR = src GFLIB_SUBDIR = gflib ASM_SUBDIR = asm @@ -99,34 +106,43 @@ DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR) SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR) MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR) +SHELL := /bin/bash -o pipefail + +# Set flags for tools ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN) -ifeq ($(MODERN),0) -CC1 := tools/agbcc/bin/agbcc$(EXE) -override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O2 -fhex-asm -g -ROM := $(ROM_NAME) -OBJ_DIR := $(OBJ_DIR_NAME) -LIBPATH := -L ../../tools/agbcc/lib -LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall -else -CC1 = $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet -override CFLAGS += -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -ROM := $(MODERN_ROM_NAME) -OBJ_DIR := $(MODERN_OBJ_DIR_NAME) -LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))" -LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall -endif +INCLUDE_DIRS := include +INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %) +INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %) -CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN) -ifneq ($(MODERN),1) -CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef +O_LEVEL ?= 2 +CPPFLAGS := $(INCLUDE_CPP_ARGS) -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN) +ifeq ($(MODERN),0) + CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef + CC1 := tools/agbcc/bin/agbcc$(EXE) + override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O$(O_LEVEL) -fhex-asm -g + LIBPATH := -L ../../tools/agbcc/lib + LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall +else + # Note: The makefile must be set up to not call these if modern == 0 + MODERNCC := $(PREFIX)gcc + PATH_MODERNCC := PATH="$(PATH)" $(MODERNCC) + CC1 := $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet + override CFLAGS += -mthumb -mthumb-interwork -O$(O_LEVEL) -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast + LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))" + LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall +endif +# Enable debug info if set +ifeq ($(DINFO),1) + override CFLAGS += -g endif LDFLAGS = -Map ../../$(MAP) +# Variable filled out in other make files AUTO_GEN_TARGETS := include make_tools.mk -SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c +# Tool executables GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE) AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE) MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE) @@ -138,6 +154,7 @@ MAPJSON := $(TOOLS_DIR)/mapjson/mapjson$(EXE) JSONPROC := $(TOOLS_DIR)/jsonproc/jsonproc$(EXE) PERL := perl +SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c MAKEFLAGS += --no-print-directory @@ -147,39 +164,36 @@ MAKEFLAGS += --no-print-directory .SECONDARY: # Delete files that weren't built properly .DELETE_ON_ERROR: - # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: all rom clean compare tidy mostlyclean libagbsyscall modern tidymodern tidynonmodern +RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidynonmodern generated clean-generated +.PHONY: all rom modern compare +.PHONY: $(RULES_NO_SCAN) infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) -# Build tools when building the rom -# Disable dependency scanning for clean/tidy/tools -# Use a separate minimal makefile for speed -# Since we don't need to reload most of this makefile -ifeq (,$(filter-out all rom compare modern libagbsyscall syms,$(MAKECMDGOALS))) -$(call infoshell, $(MAKE) -f make_tools.mk) -$(call infoshell, $(MAKE) generated) -else -NODEP ?= 1 -endif - -# check if we need to scan dependencies based on the rule -ifeq (,$(MAKECMDGOALS)) - SCAN_DEPS ?= 1 -else - # clean, tidy, tools, mostlyclean, clean-tools, $(TOOLDIRS), tidymodern, tidynonmodern don't even build the ROM - # libagbsyscall does its own thing - ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) tidymodern tidynonmodern libagbsyscall,$(MAKECMDGOALS))) - SCAN_DEPS ?= 0 - else - SCAN_DEPS ?= 1 +# Check if we need to scan dependencies based on the chosen rule OR user preference +NODEP ?= 0 +# Check if we need to pre-build tools and generate assets based on the chosen rule. +SETUP_PREREQS ?= 1 +# Disable dependency scanning for rules that don't need it. +ifneq (,$(MAKECMDGOALS)) + ifeq (,$(filter-out $(RULES_NO_SCAN),$(MAKECMDGOALS))) + NODEP := 1 + SETUP_PREREQS := 0 endif endif -ifeq ($(SCAN_DEPS),1) +ifeq ($(SETUP_PREREQS),1) + # If set on: Default target or a rule requiring a scan + # Forcibly execute `make tools` since we need them for what we are doing. + $(call infoshell, $(MAKE) -f make_tools.mk) + # Oh and also generate mapjson sources before we use `SCANINC`. + $(call infoshell, $(MAKE) generated) +endif + +# Collect sources C_SRCS_IN := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c) C_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src))) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) @@ -187,7 +201,7 @@ C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) GFLIB_SRCS := $(wildcard $(GFLIB_SUBDIR)/*.c) GFLIB_OBJS := $(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o,$(GFLIB_SRCS)) -C_ASM_SRCS += $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s) +C_ASM_SRCS := $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s) C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS)) ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) @@ -210,29 +224,29 @@ OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) SUBDIRS := $(sort $(dir $(OBJS))) $(shell mkdir -p $(SUBDIRS)) -endif -syms: $(SYM) +# Pretend rules that are actually flags defer to `make all` +modern: all +compare: all +# Other rules rom: $(ROM) ifeq ($(COMPARE),1) @$(SHA1) rom.sha1 endif -# For contributors to make sure a change didn't affect the contents of the ROM. -compare: all +syms: $(SYM) -clean: mostlyclean clean-tools +clean: tidy clean-tools clean-generated clean-assets + @$(MAKE) clean -C libagbsyscall -mostlyclean: tidynonmodern tidymodern - find sound -iname '*.bin' -exec rm {} + +clean-assets: rm -f $(MID_SUBDIR)/*.s - find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + rm -f $(DATA_ASM_SUBDIR)/layouts/layouts.inc $(DATA_ASM_SUBDIR)/layouts/layouts_table.inc rm -f $(DATA_ASM_SUBDIR)/maps/connections.inc $(DATA_ASM_SUBDIR)/maps/events.inc $(DATA_ASM_SUBDIR)/maps/groups.inc $(DATA_ASM_SUBDIR)/maps/headers.inc + find sound -iname '*.bin' -exec rm {} + + find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.rl' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} + - rm -f $(AUTO_GEN_TARGETS) - @$(MAKE) clean -C libagbsyscall tidy: tidynonmodern tidymodern @@ -244,18 +258,13 @@ tidymodern: rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME) rm -rf $(MODERN_OBJ_DIR_NAME) -ifneq ($(MODERN),0) -$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member -endif - +# Other rules include graphics_file_rules.mk include map_data_rules.mk include spritesheet_rules.mk include json_data_rules.mk include songs.mk -generated: $(AUTO_GEN_TARGETS) - %.s: ; %.png: ; %.pal: ; @@ -271,119 +280,101 @@ generated: $(AUTO_GEN_TARGETS) $(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress sound/%.bin: sound/%.aif ; $(AIF) $< $@ +# NOTE: Tools must have been built prior (FIXME) +generated: tools $(AUTO_GEN_TARGETS) +clean-generated: + -rm -f $(AUTO_GEN_TARGETS) ifeq ($(MODERN),0) -$(C_BUILDDIR)/libc.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE) +$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/libc.o: CFLAGS := -O2 - $(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork - $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork - -$(C_BUILDDIR)/m4a.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE) - +$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding -$(C_BUILDDIR)/librfu_intr.o: CC1 := $(TOOLS_DIR)/agbcc/bin/agbcc_arm$(EXE) +$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet else $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast +$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member endif -ifeq ($(DINFO),1) -override CFLAGS += -g -endif +# Dependency rules (for the *.c & *.s sources to .o files) +# Have to be explicit or else missing files won't be reported. -# The dep rules have to be explicit or else missing files won't be reported. # As a side effect, they're evaluated immediately instead of when the rule is invoked. -# It doesn't look like $(shell) can be deferred so there might not be a better way. +# It doesn't look like $(shell) can be deferred so there might not be a better way (Icedude_907: there is soon). -ifeq ($(SCAN_DEPS),1) -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c -ifeq (,$(KEEP_TEMPS)) - @echo "$(CC1) -o $@ $<" - @$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - -else - @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i - @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s - @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s - $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s -endif -else +# For C dependencies. +# Args: $1 = Output file without extension (build/assets/src/data), $2 = Input file (src/data.c) define C_DEP -$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include -I gflib $2) -ifeq (,$$(KEEP_TEMPS)) - @echo "$$(CC1) -o $$@ $$<" - @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - -else - @$$(CPP) $$(CPPFLAGS) $$< -o $$(C_BUILDDIR)/$3.i - @$$(PREPROC) $$(C_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(C_BUILDDIR)/$3.s - @echo -e ".text\n\t.align\t2, 0\n" >> $$(C_BUILDDIR)/$3.s - $$(AS) $$(ASFLAGS) -o $$@ $$(C_BUILDDIR)/$3.s -endif +$(call C_DEP_IMPL,$1,$2,$1) endef -$(foreach src, $(C_SRCS), $(eval $(call C_DEP,$(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(C_SUBDIR)/%.c,%,$(src))))) -endif - -ifeq ($(NODEP),1) -$(GFLIB_BUILDDIR)/%.o: $(GFLIB_SUBDIR)/%.c $$(c_dep) +# Internal implementation details. +# $1: Output file without extension, $2 input file, $3 temp path (if keeping) +define C_DEP_IMPL +$1.o: $2 ifeq (,$(KEEP_TEMPS)) - @echo "$(CC1) -o $@ $<" - @$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - -else - @$(CPP) $(CPPFLAGS) $< -o $(GFLIB_BUILDDIR)/$*.i - @$(PREPROC) $(GFLIB_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(GFLIB_BUILDDIR)/$*.s - @echo -e ".text\n\t.align\t2, 0\n" >> $(GFLIB_BUILDDIR)/$*.s - $(AS) $(ASFLAGS) -o $@ $(GFLIB_BUILDDIR)/$*.s -endif -else -define GFLIB_DEP -$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include -I gflib $2) -ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - else - @$$(CPP) $$(CPPFLAGS) $$< -o $$(GFLIB_BUILDDIR)/$3.i - @$$(PREPROC) $$(GFLIB_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(GFLIB_BUILDDIR)/$3.s - @echo -e ".text\n\t.align\t2, 0\n" >> $$(GFLIB_BUILDDIR)/$3.s - $$(AS) $$(ASFLAGS) -o $$@ $$(GFLIB_BUILDDIR)/$3.s + @$$(CPP) $$(CPPFLAGS) $$< -o $3.i + @$$(PREPROC) $3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $3.s + @echo -e ".text\n\t.align\t2, 0\n" >> $3.s + $$(AS) $$(ASFLAGS) -o $$@ $3.s +endif +$(call C_SCANINC,$1,$2) +endef +# Calls SCANINC to find dependencies +define C_SCANINC +ifneq ($(NODEP),1) +$1.o: $2 $$(shell $(SCANINC) $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include -I gflib $2) endif endef -$(foreach src, $(GFLIB_SRCS), $(eval $(call GFLIB_DEP,$(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o, $(src)),$(src),$(patsubst $(GFLIB_SUBDIR)/%.c,%, $(src))))) + +# Create generic rules if no dependency scanning, else create the real rules +ifeq ($(NODEP),1) +$(eval $(call C_DEP,$(C_BUILDDIR)/%,$(C_SUBDIR)/%.c)) +$(eval $(call C_DEP,$(GFLIB_BUILDDIR)/%,$(GFLIB_SUBDIR)/%.c)) +else +$(foreach src,$(C_SRCS),$(eval $(call C_DEP,$(OBJ_DIR)/$(basename $(src)),$(src)))) +$(foreach src,$(GFLIB_SRCS),$(eval $(call C_DEP,$(OBJ_DIR)/$(basename $(src)),$(src)))) endif -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ -else -define SRC_ASM_DATA_DEP -$1: $2 $$(shell $(SCANINC) -I include -I "" $2) - $$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(AS) $$(ASFLAGS) -o $$@ -endef -$(foreach src, $(C_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src)))) -endif - -ifeq ($(NODEP),1) -$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s - $(AS) $(ASFLAGS) -o $@ $< -else +# Similar methodology for Assembly files +# $1: Output path without extension, $2: Input file (`*.s`) define ASM_DEP -$1: $2 $$(shell $(SCANINC) -I include -I "" $2) +$1.o: $2 $$(AS) $$(ASFLAGS) -o $$@ $$< +$(call ASM_SCANINC,$1,$2) +endef +# As above but first doing a preprocessor pass +define ASM_DEP_PREPROC +$1.o: $2 + $$(PREPROC) $$< charmap.txt | $$(CPP) $(INCLUDE_SCANINC_ARGS) - | $$(AS) $$(ASFLAGS) -o $$@ +$(call ASM_SCANINC,$1,$2) endef -$(foreach src, $(ASM_SRCS), $(eval $(call ASM_DEP,$(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o, $(src)),$(src)))) -endif +define ASM_SCANINC +ifneq ($(NODEP),1) +$1.o: $2 $$(shell $(SCANINC) $(INCLUDE_SCANINC_ARGS) -I "" $2) +endif +endef + +# Dummy rules or real rules ifeq ($(NODEP),1) -$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ +$(eval $(call ASM_DEP,$(ASM_BUILDDIR)/%,$(ASM_SUBDIR)/%.s)) +$(eval $(call ASM_DEP_PREPROC,$(C_BUILDDIR)/%,$(C_SUBDIR)/%.s)) +$(eval $(call ASM_DEP_PREPROC,$(DATA_ASM_BUILDDIR)/%,$(DATA_ASM_SUBDIR)/%.s)) else -$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src)))) -endif +$(foreach src, $(ASM_SRCS), $(eval $(call ASM_DEP,$(src:%.s=$(OBJ_DIR)/%),$(src)))) +$(foreach src, $(C_ASM_SRCS), $(eval $(call ASM_DEP_PREPROC,$(src:%.s=$(OBJ_DIR)/%),$(src)))) +$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call ASM_DEP_PREPROC,$(src:%.s=$(OBJ_DIR)/%),$(src)))) endif +# Additional rules $(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s $(AS) $(ASFLAGS) -I sound -o $@ $< @@ -396,6 +387,7 @@ $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) $(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt $(RAMSCRGEN) ewram_data $< ENGLISH > $@ +# Linker script ifeq ($(MODERN),0) LD_SCRIPT := ld_script.txt LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld @@ -405,25 +397,24 @@ LD_SCRIPT_DEPS := endif $(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) - cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld + sed "s#tools/#tools/#g" $(LD_SCRIPT) > $(OBJ_DIR)/ld_script.ld +# Final rules + +libagbsyscall: + @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) + +# Elf from object files $(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB) $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent +# Builds the rom from the elf file $(ROM): $(ELF) $(OBJCOPY) -O binary $< $@ $(FIX) $@ -p --silent -modern: all - -libagbsyscall: - @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) - -################### -### Symbol file ### -################### - +# Symbol file (`make syms`) $(SYM): $(ELF) $(OBJDUMP) -t $< | sort -u | grep -E "^0[2389]" | $(PERL) -p -e 's/^(\w{8}) (\w).{6} \S+\t(\w{8}) (\S+)$$/\1 \2 \3 \4/g' > $@ diff --git a/make_tools.mk b/make_tools.mk index 00824adda6..78ff1beeb0 100644 --- a/make_tools.mk +++ b/make_tools.mk @@ -9,7 +9,9 @@ TOOL_NAMES := aif2pcm bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramsc TOOLDIRS := $(TOOL_NAMES:%=$(TOOLS_DIR)/%) -.PHONY: tools check-tools clean-tools $(TOOLDIRS) $(CHECKTOOLDIRS) +# Tool making doesnt require a pokeemerald dependency scan. +RULES_NO_SCAN += tools check-tools clean-tools $(TOOLDIRS) $(CHECKTOOLDIRS) +.PHONY: $(RULES_NO_SCAN) tools: $(TOOLDIRS) check-tools: $(CHECKTOOLDIRS) From 4b2054c3ea1f0240ba6bed903f4e960da2d3716e Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Sun, 12 Nov 2023 16:38:32 +1300 Subject: [PATCH 03/99] Parallel SCANINC via `.d` generation. Secondary expansion is redundant. --- Makefile | 12 ++++++---- tools/scaninc/scaninc.cpp | 49 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 1eb4b8b55a..56d1e3812f 100644 --- a/Makefile +++ b/Makefile @@ -164,8 +164,6 @@ MAKEFLAGS += --no-print-directory .SECONDARY: # Delete files that weren't built properly .DELETE_ON_ERROR: -# Secondary expansion is required for dependency variables in object rules. -.SECONDEXPANSION: RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidynonmodern generated clean-generated .PHONY: all rom modern compare @@ -330,7 +328,10 @@ endef # Calls SCANINC to find dependencies define C_SCANINC ifneq ($(NODEP),1) -$1.o: $2 $$(shell $(SCANINC) $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include -I gflib $2) +$1.o: $1.d +$1.d: $2 + $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include -I gflib $2 +include $1.d endif endef @@ -359,7 +360,10 @@ endef define ASM_SCANINC ifneq ($(NODEP),1) -$1.o: $2 $$(shell $(SCANINC) $(INCLUDE_SCANINC_ARGS) -I "" $2) +$1.o: $1.d +$1.d: $2 + $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I "" $2 +include $1.d endif endef diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp index dcb16c0e79..f5ee7ad6de 100644 --- a/tools/scaninc/scaninc.cpp +++ b/tools/scaninc/scaninc.cpp @@ -24,6 +24,9 @@ #include #include #include +#include +#include +#include #include "scaninc.h" #include "source_file.h" @@ -38,15 +41,19 @@ bool CanOpenFile(std::string path) return true; } -const char *const USAGE = "Usage: scaninc [-I INCLUDE_PATH] FILE_PATH\n"; +const char *const USAGE = "Usage: scaninc [-I INCLUDE_PATH] [-M DEPENDENCY_OUT_PATH] FILE_PATH\n"; int main(int argc, char **argv) { std::queue filesToProcess; std::set dependencies; + std::set dependencies_includes; std::vector includeDirs; + bool makeformat = false; + std::string make_outfile; + argc--; argv++; @@ -68,6 +75,13 @@ int main(int argc, char **argv) } includeDirs.push_back(includeDir); } + else if(arg.substr(0, 2) == "-M") + { + makeformat = true; + argc--; + argv++; + make_outfile = std::string(argv[0]); + } else { FATAL_ERROR(USAGE); @@ -112,6 +126,7 @@ int main(int argc, char **argv) { path = include; } + dependencies_includes.insert(path); bool inserted = dependencies.insert(path).second; if (inserted && exists) { @@ -121,8 +136,36 @@ int main(int argc, char **argv) includeDirs.pop_back(); } - for (const std::string &path : dependencies) + if(!makeformat) { - std::printf("%s\n", path.c_str()); + for (const std::string &path : dependencies) + { + std::printf("%s\n", path.c_str()); + } + std::cout << std::endl; + } + else + { + // Write out make rules to a file + std::ofstream output(make_outfile); + + // Print a make rule for the object file + size_t ext_pos = make_outfile.find_last_of("."); + auto object_file = make_outfile.substr(0, ext_pos + 1) + "o"; + output << object_file.c_str() << ": "; + for (const std::string &path : dependencies) + { + output << path << " "; + } + + // Dependency list rule. + // Although these rules are identical, they need to be separate, else make will trigger the rule again after the file is created for the first time. + output << "\n" << make_outfile.c_str() << ": "; + for (const std::string &path : dependencies_includes) + { + output << path << " "; + } + output.flush(); + output.close(); } } From 85f4ca69434a9bfe05fe8e0f3c16efe953eded2a Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:26:49 +1300 Subject: [PATCH 04/99] All `mid2agb` songs are controlled by a `midi.cfg` file --- songs.mk | 1277 +------------------------------------ sound/songs/midi/midi.cfg | 420 ++++++++++++ 2 files changed, 438 insertions(+), 1259 deletions(-) create mode 100644 sound/songs/midi/midi.cfg diff --git a/songs.mk b/songs.mk index 698f983ceb..feef64cf5b 100644 --- a/songs.mk +++ b/songs.mk @@ -1,1264 +1,23 @@ -STD_REVERB = 50 +# This file contains rules for making assemblies for most music in the game. -$(MID_BUILDDIR)/%.o: $(MID_SUBDIR)/%.s - $(AS) $(ASFLAGS) -I sound -o $@ $< +MID_ASM_DIR = $(MID_SUBDIR) -$(MID_SUBDIR)/mus_aqua_magma_hideout.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G076 -V084 +# For each line in midi.cfg, we do some trickery to convert it into a make rule for the `.mid` file described on the line +# Data following the colon in said file corresponds to arguments passed into mid2agb +MID_CFG_PATH := $(MID_SUBDIR)/midi.cfg -$(MID_SUBDIR)/mus_encounter_aqua.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G065 -V086 +# $1: Source path no extension, $2 Options +define MID_RULE +$(MID_ASM_DIR)/$1.s: $(MID_SUBDIR)/$1.mid + $(MID) $$< $$@ $2 +endef +# source path, remaining text (options) +define MID_EXPANSION + $(eval $(call MID_RULE,$(basename $(patsubst %:,%,$(word 1,$1))),$(wordlist 2,999,$1))) +endef -$(MID_SUBDIR)/mus_route111.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G055 -V076 +$(foreach line,$(shell cat $(MID_CFG_PATH) | sed "s/ /__SPACE__/g"),$(call MID_EXPANSION,$(subst __SPACE__, ,$(line)))) -$(MID_SUBDIR)/mus_encounter_suspicious.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G069 -V078 - -$(MID_SUBDIR)/mus_b_arena.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G104 -V090 - -$(MID_SUBDIR)/mus_b_dome.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G111 -V090 - -$(MID_SUBDIR)/mus_b_dome_lobby.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G111 -V056 - -$(MID_SUBDIR)/mus_b_factory.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G113 -V100 - -$(MID_SUBDIR)/mus_b_frontier.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V094 - -$(MID_SUBDIR)/mus_b_palace.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G108 -V105 - -$(MID_SUBDIR)/mus_b_tower_rs.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G035 -V080 - -$(MID_SUBDIR)/mus_b_pike.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G112 -V092 - -$(MID_SUBDIR)/mus_vs_trainer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G119 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_wild.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G117 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_aqua_magma_leader.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G126 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_aqua_magma.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G118 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_gym_leader.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G120 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_champion.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G121 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_kyogre_groudon.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G123 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_rival.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G124 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_regi.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G122 -V080 -P1 - -$(MID_SUBDIR)/mus_vs_elite_four.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G125 -V080 -P1 - -$(MID_SUBDIR)/mus_roulette.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G038 -V080 - -$(MID_SUBDIR)/mus_lilycove_museum.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G020 -V080 - -$(MID_SUBDIR)/mus_encounter_brendan.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G067 -V078 - -$(MID_SUBDIR)/mus_encounter_male.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G028 -V080 - -$(MID_SUBDIR)/mus_victory_road.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G075 -V076 - -$(MID_SUBDIR)/mus_game_corner.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G072 -V072 - -$(MID_SUBDIR)/mus_contest_winner.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G085 -V100 - -$(MID_SUBDIR)/mus_contest_results.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G092 -V080 - -$(MID_SUBDIR)/mus_contest_lobby.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G098 -V060 - -$(MID_SUBDIR)/mus_contest.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G086 -V088 - -$(MID_SUBDIR)/mus_cycling.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G049 -V083 - -$(MID_SUBDIR)/mus_encounter_champion.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G100 -V076 - -$(MID_SUBDIR)/mus_petalburg_woods.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G018 -V080 - -$(MID_SUBDIR)/mus_abandoned_ship.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G030 -V080 - -$(MID_SUBDIR)/mus_cave_of_origin.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G037 -V080 - -$(MID_SUBDIR)/mus_underwater.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G057 -V094 - -$(MID_SUBDIR)/mus_intro.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G060 -V090 - -$(MID_SUBDIR)/mus_hall_of_fame.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G082 -V078 - -$(MID_SUBDIR)/mus_route110.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G010 -V080 - -$(MID_SUBDIR)/mus_route120.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G014 -V080 - -$(MID_SUBDIR)/mus_route122.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G021 -V080 - -$(MID_SUBDIR)/mus_route101.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G011 -V080 - -$(MID_SUBDIR)/mus_dummy.s: %.s: %.mid - $(MID) $< $@ -E -R40 - -$(MID_SUBDIR)/mus_hall_of_fame_room.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G093 -V080 - -$(MID_SUBDIR)/mus_end.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G102 -V036 - -$(MID_SUBDIR)/mus_help.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G056 -V078 - -$(MID_SUBDIR)/mus_level_up.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_obtain_item.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_evolved.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_gsc_route38.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -V080 - -$(MID_SUBDIR)/mus_slateport.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G079 -V070 - -$(MID_SUBDIR)/mus_poke_mart.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G050 -V085 - -$(MID_SUBDIR)/mus_oceanic_museum.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G023 -V080 - -$(MID_SUBDIR)/mus_gym.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G013 -V080 - -$(MID_SUBDIR)/mus_encounter_may.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G061 -V078 - -$(MID_SUBDIR)/mus_encounter_female.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G053 -V072 - -$(MID_SUBDIR)/mus_verdanturf.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G044 -V090 - -$(MID_SUBDIR)/mus_rustboro.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G045 -V085 - -$(MID_SUBDIR)/mus_route119.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G048 -V096 - -$(MID_SUBDIR)/mus_encounter_intense.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G062 -V078 - -$(MID_SUBDIR)/mus_weather_groudon.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G090 -V050 - -$(MID_SUBDIR)/mus_dewford.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G073 -V078 - -$(MID_SUBDIR)/mus_encounter_twins.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G095 -V075 - -$(MID_SUBDIR)/mus_encounter_interviewer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G099 -V062 - -$(MID_SUBDIR)/mus_victory_trainer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G058 -V091 - -$(MID_SUBDIR)/mus_victory_wild.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 - -$(MID_SUBDIR)/mus_victory_gym_leader.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G024 -V080 - -$(MID_SUBDIR)/mus_victory_aqua_magma.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G070 -V088 - -$(MID_SUBDIR)/mus_victory_league.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G029 -V080 - -$(MID_SUBDIR)/mus_caught.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G025 -V080 - -$(MID_SUBDIR)/mus_encounter_cool.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G063 -V086 - -$(MID_SUBDIR)/mus_trick_house.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G094 -V070 - -$(MID_SUBDIR)/mus_route113.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G064 -V084 - -$(MID_SUBDIR)/mus_sailing.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G077 -V086 - -$(MID_SUBDIR)/mus_mt_pyre.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G078 -V088 - -$(MID_SUBDIR)/mus_sealed_chamber.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G084 -V100 - -$(MID_SUBDIR)/mus_petalburg.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G015 -V080 - -$(MID_SUBDIR)/mus_fortree.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G032 -V080 - -$(MID_SUBDIR)/mus_oldale.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G019 -V080 - -$(MID_SUBDIR)/mus_mt_pyre_exterior.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G080 -V080 - -$(MID_SUBDIR)/mus_heal.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_slots_jackpot.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_slots_win.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_obtain_badge.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_obtain_berry.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_obtain_b_points.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V090 -P5 - -$(MID_SUBDIR)/mus_rg_photo.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G180 -V100 -P5 - -$(MID_SUBDIR)/mus_evolution_intro.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G026 -V080 - -$(MID_SUBDIR)/mus_obtain_symbol.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G103 -V100 -P5 - -$(MID_SUBDIR)/mus_awaken_legend.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_register_match_call.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G105 -V090 -P5 - -$(MID_SUBDIR)/mus_move_deleted.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_obtain_tmhm.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_too_bad.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G012 -V090 -P5 - -$(MID_SUBDIR)/mus_encounter_magma.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G087 -V072 - -$(MID_SUBDIR)/mus_lilycove.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G054 -V085 - -$(MID_SUBDIR)/mus_littleroot.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G051 -V100 - -$(MID_SUBDIR)/mus_surf.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G017 -V080 - -$(MID_SUBDIR)/mus_route104.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G047 -V097 - -$(MID_SUBDIR)/mus_gsc_pewter.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -V080 - -$(MID_SUBDIR)/mus_birch_lab.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G033 -V080 - -$(MID_SUBDIR)/mus_abnormal_weather.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G089 -V080 - -$(MID_SUBDIR)/mus_school.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G081 -V100 - -$(MID_SUBDIR)/mus_c_comm_center.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -V080 - -$(MID_SUBDIR)/mus_poke_center.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G046 -V092 - -$(MID_SUBDIR)/mus_b_pyramid.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G106 -V079 - -$(MID_SUBDIR)/mus_b_pyramid_top.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G107 -V077 - -$(MID_SUBDIR)/mus_ever_grande.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G068 -V086 - -$(MID_SUBDIR)/mus_rayquaza_appears.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G109 -V090 - -$(MID_SUBDIR)/mus_rg_rocket_hideout.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G133 -V090 - -$(MID_SUBDIR)/mus_rg_follow_me.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G131 -V068 - -$(MID_SUBDIR)/mus_rg_victory_road.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G154 -V090 - -$(MID_SUBDIR)/mus_rg_cycling.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G141 -V090 - -$(MID_SUBDIR)/mus_rg_intro_fight.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G136 -V090 - -$(MID_SUBDIR)/mus_rg_hall_of_fame.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G145 -V079 - -$(MID_SUBDIR)/mus_rg_encounter_deoxys.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G184 -V079 - -$(MID_SUBDIR)/mus_rg_credits.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G149 -V090 - -$(MID_SUBDIR)/mus_rg_encounter_gym_leader.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G144 -V090 - -$(MID_SUBDIR)/mus_rg_dex_rating.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G175 -V070 -P5 - -$(MID_SUBDIR)/mus_rg_obtain_key_item.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G178 -V077 -P5 - -$(MID_SUBDIR)/mus_rg_caught_intro.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G179 -V094 -P5 - -$(MID_SUBDIR)/mus_rg_caught.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G170 -V100 - -$(MID_SUBDIR)/mus_rg_cinnabar.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G138 -V090 - -$(MID_SUBDIR)/mus_rg_gym.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G134 -V090 - -$(MID_SUBDIR)/mus_rg_fuchsia.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G167 -V090 - -$(MID_SUBDIR)/mus_rg_poke_jump.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 - -$(MID_SUBDIR)/mus_rg_heal.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G140 -V090 - -$(MID_SUBDIR)/mus_rg_oak_lab.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G160 -V075 - -$(MID_SUBDIR)/mus_rg_berry_pick.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 - -$(MID_SUBDIR)/mus_rg_vermillion.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G172 -V090 - -$(MID_SUBDIR)/mus_rg_route1.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G150 -V079 - -$(MID_SUBDIR)/mus_rg_route3.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G152 -V083 - -$(MID_SUBDIR)/mus_rg_route11.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G153 -V090 - -$(MID_SUBDIR)/mus_rg_pallet.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G159 -V100 - -$(MID_SUBDIR)/mus_rg_surf.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G164 -V071 - -$(MID_SUBDIR)/mus_rg_sevii_45.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G188 -V084 - -$(MID_SUBDIR)/mus_rg_sevii_67.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G189 -V084 - -$(MID_SUBDIR)/mus_rg_sevii_123.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G173 -V084 - -$(MID_SUBDIR)/mus_rg_sevii_cave.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G147 -V090 - -$(MID_SUBDIR)/mus_rg_sevii_dungeon.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G146 -V090 - -$(MID_SUBDIR)/mus_rg_sevii_route.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G187 -V080 - -$(MID_SUBDIR)/mus_rg_net_center.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G162 -V096 - -$(MID_SUBDIR)/mus_rg_pewter.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G173 -V084 - -$(MID_SUBDIR)/mus_rg_oak.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G161 -V086 - -$(MID_SUBDIR)/mus_rg_mystery_gift.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G183 -V100 - -$(MID_SUBDIR)/mus_rg_route24.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G151 -V086 - -$(MID_SUBDIR)/mus_rg_teachy_tv_show.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G131 -V068 - -$(MID_SUBDIR)/mus_rg_mt_moon.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G147 -V090 - -$(MID_SUBDIR)/mus_rg_poke_tower.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G165 -V090 - -$(MID_SUBDIR)/mus_rg_poke_center.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G162 -V096 - -$(MID_SUBDIR)/mus_rg_poke_flute.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G165 -V048 -P5 - -$(MID_SUBDIR)/mus_rg_poke_mansion.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G148 -V090 - -$(MID_SUBDIR)/mus_rg_jigglypuff.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G135 -V068 -P5 - -$(MID_SUBDIR)/mus_rg_encounter_rival.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G174 -V079 - -$(MID_SUBDIR)/mus_rg_rival_exit.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G174 -V079 - -$(MID_SUBDIR)/mus_rg_encounter_rocket.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G142 -V096 - -$(MID_SUBDIR)/mus_rg_ss_anne.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G163 -V090 - -$(MID_SUBDIR)/mus_rg_new_game_exit.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V088 - -$(MID_SUBDIR)/mus_rg_new_game_intro.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V088 - -$(MID_SUBDIR)/mus_rg_lavender.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G139 -V090 - -$(MID_SUBDIR)/mus_rg_silph.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G166 -V076 - -$(MID_SUBDIR)/mus_rg_encounter_girl.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G143 -V051 - -$(MID_SUBDIR)/mus_rg_encounter_boy.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G144 -V090 - -$(MID_SUBDIR)/mus_rg_game_corner.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 - -$(MID_SUBDIR)/mus_rg_slow_pallet.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G159 -V092 - -$(MID_SUBDIR)/mus_rg_new_game_instruct.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G182 -V085 - -$(MID_SUBDIR)/mus_rg_viridian_forest.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G146 -V090 - -$(MID_SUBDIR)/mus_rg_trainer_tower.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G134 -V090 - -$(MID_SUBDIR)/mus_rg_celadon.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G168 -V070 - -$(MID_SUBDIR)/mus_rg_title.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G137 -V090 - -$(MID_SUBDIR)/mus_rg_game_freak.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G181 -V075 - -$(MID_SUBDIR)/mus_rg_teachy_tv_menu.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G186 -V059 - -$(MID_SUBDIR)/mus_rg_union_room.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G132 -V090 - -$(MID_SUBDIR)/mus_rg_vs_legend.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 - -$(MID_SUBDIR)/mus_rg_vs_deoxys.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G185 -V080 - -$(MID_SUBDIR)/mus_rg_vs_gym_leader.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G155 -V090 - -$(MID_SUBDIR)/mus_rg_vs_champion.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G158 -V090 - -$(MID_SUBDIR)/mus_rg_vs_mewtwo.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 - -$(MID_SUBDIR)/mus_rg_vs_trainer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G156 -V090 - -$(MID_SUBDIR)/mus_rg_vs_wild.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G157 -V090 - -$(MID_SUBDIR)/mus_rg_victory_gym_leader.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G171 -V090 - -$(MID_SUBDIR)/mus_rg_victory_trainer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G169 -V089 - -$(MID_SUBDIR)/mus_rg_victory_wild.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G170 -V090 - -$(MID_SUBDIR)/mus_cable_car.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G071 -V078 - -$(MID_SUBDIR)/mus_sootopolis.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G091 -V062 - -$(MID_SUBDIR)/mus_safari_zone.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G074 -V082 - -$(MID_SUBDIR)/mus_b_tower.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G110 -V100 - -$(MID_SUBDIR)/mus_evolution.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G026 -V080 - -$(MID_SUBDIR)/mus_encounter_elite_four.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G096 -V078 - -$(MID_SUBDIR)/mus_c_vs_legend_beast.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -V080 - -$(MID_SUBDIR)/mus_encounter_swimmer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G036 -V080 - -$(MID_SUBDIR)/mus_encounter_girl.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G027 -V080 - -$(MID_SUBDIR)/mus_intro_battle.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G088 -V088 - -$(MID_SUBDIR)/mus_encounter_rich.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G043 -V094 - -$(MID_SUBDIR)/mus_link_contest_p1.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G039 -V079 - -$(MID_SUBDIR)/mus_link_contest_p2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G040 -V090 - -$(MID_SUBDIR)/mus_link_contest_p3.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G041 -V075 - -$(MID_SUBDIR)/mus_link_contest_p4.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G042 -V090 - -$(MID_SUBDIR)/mus_littleroot_test.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G034 -V099 - -$(MID_SUBDIR)/mus_credits.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G101 -V100 - -$(MID_SUBDIR)/mus_title.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G059 -V090 - -$(MID_SUBDIR)/mus_fallarbor.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G083 -V100 - -$(MID_SUBDIR)/mus_mt_chimney.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G052 -V078 - -$(MID_SUBDIR)/mus_follow_me.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G066 -V074 - -$(MID_SUBDIR)/mus_vs_frontier_brain.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G115 -V090 -P1 - -$(MID_SUBDIR)/mus_vs_mew.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G116 -V090 - -$(MID_SUBDIR)/mus_vs_rayquaza.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G114 -V080 -P1 - -$(MID_SUBDIR)/mus_encounter_hiker.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G097 -V076 - -$(MID_SUBDIR)/ph_choice_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_choice_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_choice_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_cloth_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_cloth_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_cloth_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_cure_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_cure_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_cure_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_dress_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_dress_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_dress_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_face_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_face_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_face_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_fleece_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_fleece_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_fleece_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_foot_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_foot_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_foot_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_goat_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_goat_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_goat_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_goose_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_goose_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_goose_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_kit_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_kit_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_kit_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_lot_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_lot_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_lot_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_mouth_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_mouth_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_mouth_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_nurse_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_nurse_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_nurse_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_price_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_price_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_price_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_strut_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_strut_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_strut_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_thought_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_thought_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_thought_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_trap_blend.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_trap_held.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/ph_trap_solo.s: %.s: %.mid - $(MID) $< $@ -E -G130 -P4 - -$(MID_SUBDIR)/se_a.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 - -$(MID_SUBDIR)/se_bang.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_taillow_wing_flap.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5 - -$(MID_SUBDIR)/se_glass_flute.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P5 - -$(MID_SUBDIR)/se_boo.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 - -$(MID_SUBDIR)/se_ball.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V070 -P4 - -$(MID_SUBDIR)/se_ball_open.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_mugshot.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 - -$(MID_SUBDIR)/se_contest_heart.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 - -$(MID_SUBDIR)/se_contest_curtain_fall.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5 - -$(MID_SUBDIR)/se_contest_curtain_rise.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V070 -P5 - -$(MID_SUBDIR)/se_contest_icon_change.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 - -$(MID_SUBDIR)/se_contest_mons_turn.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 - -$(MID_SUBDIR)/se_contest_icon_clear.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P5 - -$(MID_SUBDIR)/se_card.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 - -$(MID_SUBDIR)/se_pike_curtain_close.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_pike_curtain_open.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_ledge.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 - -$(MID_SUBDIR)/se_itemfinder.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 - -$(MID_SUBDIR)/se_applause.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5 - -$(MID_SUBDIR)/se_field_poison.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 - -$(MID_SUBDIR)/se_door.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 - -$(MID_SUBDIR)/se_e.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 - -$(MID_SUBDIR)/se_elevator.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_escalator.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_exp.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 - -$(MID_SUBDIR)/se_exp_max.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V094 -P5 - -$(MID_SUBDIR)/se_fu_zaku.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4 - -$(MID_SUBDIR)/se_contest_condition_lose.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 - -$(MID_SUBDIR)/se_lavaridge_fall_warp.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4 - -$(MID_SUBDIR)/se_balloon_red.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 - -$(MID_SUBDIR)/se_balloon_blue.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 - -$(MID_SUBDIR)/se_balloon_yellow.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 - -$(MID_SUBDIR)/se_arena_timeup1.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_arena_timeup2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_bridge_walk.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 - -$(MID_SUBDIR)/se_failure.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P4 - -$(MID_SUBDIR)/se_rotating_gate.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 - -$(MID_SUBDIR)/se_low_health.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P3 - -$(MID_SUBDIR)/se_i.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 - -$(MID_SUBDIR)/se_sliding_door.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 - -$(MID_SUBDIR)/se_vend.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_bike_hop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 - -$(MID_SUBDIR)/se_bike_bell.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 - -$(MID_SUBDIR)/se_contest_place.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 - -$(MID_SUBDIR)/se_exit.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V120 -P5 - -$(MID_SUBDIR)/se_use_item.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_unlock.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_ball_bounce_1.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_ball_bounce_2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_ball_bounce_3.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_ball_bounce_4.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_super_effective.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 - -$(MID_SUBDIR)/se_not_effective.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 - -$(MID_SUBDIR)/se_effective.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 - -$(MID_SUBDIR)/se_puddle.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V020 -P4 - -$(MID_SUBDIR)/se_berry_blender.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 - -$(MID_SUBDIR)/se_switch.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 - -$(MID_SUBDIR)/se_n.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 - -$(MID_SUBDIR)/se_ball_throw.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P5 - -$(MID_SUBDIR)/se_ship.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V075 -P4 - -$(MID_SUBDIR)/se_flee.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 - -$(MID_SUBDIR)/se_o.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 - -$(MID_SUBDIR)/se_intro_blast.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_pc_login.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_pc_off.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_pc_on.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_pin.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V060 -P4 - -$(MID_SUBDIR)/se_ding_dong.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 - -$(MID_SUBDIR)/se_pokenav_off.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_pokenav_on.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_faint.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P5 - -$(MID_SUBDIR)/se_shiny.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P5 - -$(MID_SUBDIR)/se_shop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P5 - -$(MID_SUBDIR)/se_rg_bag_cursor.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_rg_bag_pocket.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_rg_card_flip.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_rg_card_flipping.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -P5 - -$(MID_SUBDIR)/se_rg_card_open.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V112 -P5 - -$(MID_SUBDIR)/se_rg_deoxys_move.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V080 -P5 - -$(MID_SUBDIR)/se_rg_poke_jump_success.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 - -$(MID_SUBDIR)/se_rg_ball_click.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V100 -P5 - -$(MID_SUBDIR)/se_rg_help_close.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V095 -P5 - -$(MID_SUBDIR)/se_rg_help_error.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V125 -P5 - -$(MID_SUBDIR)/se_rg_help_open.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V096 -P5 - -$(MID_SUBDIR)/se_rg_ss_anne_horn.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V096 -P5 - -$(MID_SUBDIR)/se_rg_poke_jump_failure.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P5 - -$(MID_SUBDIR)/se_rg_shop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V080 -P5 - -$(MID_SUBDIR)/se_rg_door.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V100 -P5 - -$(MID_SUBDIR)/se_ice_crack.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P4 - -$(MID_SUBDIR)/se_ice_stairs.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 - -$(MID_SUBDIR)/se_ice_break.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_fall.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_save.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P5 - -$(MID_SUBDIR)/se_success.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P4 - -$(MID_SUBDIR)/se_select.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V080 -P5 - -$(MID_SUBDIR)/se_ball_trade.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_thunderstorm.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 - -$(MID_SUBDIR)/se_thunderstorm_stop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 - -$(MID_SUBDIR)/se_thunder.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P3 - -$(MID_SUBDIR)/se_thunder2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P3 - -$(MID_SUBDIR)/se_rain.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 - -$(MID_SUBDIR)/se_rain_stop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V080 -P2 - -$(MID_SUBDIR)/se_downpour.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P2 - -$(MID_SUBDIR)/se_downpour_stop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P2 - -$(MID_SUBDIR)/se_orb.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P5 - -$(MID_SUBDIR)/se_egg_hatch.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P5 - -$(MID_SUBDIR)/se_roulette_ball.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P2 - -$(MID_SUBDIR)/se_roulette_ball2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P2 - -$(MID_SUBDIR)/se_ball_tray_exit.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V100 -P5 - -$(MID_SUBDIR)/se_ball_tray_ball.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 - -$(MID_SUBDIR)/se_ball_tray_enter.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P5 - -$(MID_SUBDIR)/se_click.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V110 -P4 - -$(MID_SUBDIR)/se_warp_in.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 - -$(MID_SUBDIR)/se_warp_out.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 - -$(MID_SUBDIR)/se_pokenav_call.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V120 -P5 - -$(MID_SUBDIR)/se_pokenav_hang_up.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V110 -P5 - -$(MID_SUBDIR)/se_note_a.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_b.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_c.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_c_high.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_d.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_mud_ball.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_e.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_f.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_note_g.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_breakable_door.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_truck_door.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_truck_unload.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -P4 - -$(MID_SUBDIR)/se_truck_move.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 - -$(MID_SUBDIR)/se_truck_stop.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 - -$(MID_SUBDIR)/se_repel.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -V090 -P4 - -$(MID_SUBDIR)/se_u.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -P4 - -$(MID_SUBDIR)/se_sudowoodo_shake.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G129 -V077 -P5 - -$(MID_SUBDIR)/se_m_double_slap.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_comet_punch.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 - -$(MID_SUBDIR)/se_m_pay_day.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V095 -P4 - -$(MID_SUBDIR)/se_m_fire_punch.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_scratch.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_vicegrip.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_razor_wind.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_razor_wind2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 - -$(MID_SUBDIR)/se_m_swords_dance.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_m_cut.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V120 -P4 - -$(MID_SUBDIR)/se_m_gust.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_gust2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_wing_attack.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 - -$(MID_SUBDIR)/se_m_fly.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_bind.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V100 -P4 - -$(MID_SUBDIR)/se_m_mega_kick.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V090 -P4 - -$(MID_SUBDIR)/se_m_mega_kick2.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_jump_kick.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_sand_attack.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_headbutt.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_horn_attack.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_take_down.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V105 -P4 - -$(MID_SUBDIR)/se_m_tail_whip.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_m_leer.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G128 -V110 -P4 - -$(MID_SUBDIR)/se_dex_search.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G127 -v100 -P5 +# Warn users building without a .cfg - build will fail at link time +$(MID_ASM_DIR)/%.s: $(MID_SUBDIR)/%.mid + $(warning $< does not have an associated entry in midi.cfg! It cannot be built) \ No newline at end of file diff --git a/sound/songs/midi/midi.cfg b/sound/songs/midi/midi.cfg new file mode 100644 index 0000000000..439778e9bd --- /dev/null +++ b/sound/songs/midi/midi.cfg @@ -0,0 +1,420 @@ +mus_abandoned_ship.mid: -E -R50 -G030 -V080 +mus_abnormal_weather.mid: -E -R50 -G089 -V080 +mus_aqua_magma_hideout.mid: -E -R50 -G076 -V084 +mus_awaken_legend.mid: -E -R50 -G012 -V090 -P5 +mus_b_arena.mid: -E -R50 -G104 -V090 +mus_b_dome_lobby.mid: -E -R50 -G111 -V056 +mus_b_dome.mid: -E -R50 -G111 -V090 +mus_b_factory.mid: -E -R50 -G113 -V100 +mus_b_frontier.mid: -E -R50 -G103 -V094 +mus_b_palace.mid: -E -R50 -G108 -V105 +mus_b_pike.mid: -E -R50 -G112 -V092 +mus_b_pyramid_top.mid: -E -R50 -G107 -V077 +mus_b_pyramid.mid: -E -R50 -G106 -V079 +mus_b_tower_rs.mid: -E -R50 -G035 -V080 +mus_b_tower.mid: -E -R50 -G110 -V100 +mus_birch_lab.mid: -E -R50 -G033 -V080 +mus_c_comm_center.mid: -E -R50 -V080 +mus_c_vs_legend_beast.mid: -E -R50 -V080 +mus_cable_car.mid: -E -R50 -G071 -V078 +mus_caught.mid: -E -R50 -G025 -V080 +mus_cave_of_origin.mid: -E -R50 -G037 -V080 +mus_contest_lobby.mid: -E -R50 -G098 -V060 +mus_contest_results.mid: -E -R50 -G092 -V080 +mus_contest_winner.mid: -E -R50 -G085 -V100 +mus_contest.mid: -E -R50 -G086 -V088 +mus_credits.mid: -E -R50 -G101 -V100 +mus_cycling.mid: -E -R50 -G049 -V083 +mus_dewford.mid: -E -R50 -G073 -V078 +mus_dummy.mid: -E -R40 +mus_encounter_aqua.mid: -E -R50 -G065 -V086 +mus_encounter_brendan.mid: -E -R50 -G067 -V078 +mus_encounter_champion.mid: -E -R50 -G100 -V076 +mus_encounter_cool.mid: -E -R50 -G063 -V086 +mus_encounter_elite_four.mid: -E -R50 -G096 -V078 +mus_encounter_female.mid: -E -R50 -G053 -V072 +mus_encounter_girl.mid: -E -R50 -G027 -V080 +mus_encounter_hiker.mid: -E -R50 -G097 -V076 +mus_encounter_intense.mid: -E -R50 -G062 -V078 +mus_encounter_interviewer.mid: -E -R50 -G099 -V062 +mus_encounter_magma.mid: -E -R50 -G087 -V072 +mus_encounter_male.mid: -E -R50 -G028 -V080 +mus_encounter_may.mid: -E -R50 -G061 -V078 +mus_encounter_rich.mid: -E -R50 -G043 -V094 +mus_encounter_suspicious.mid: -E -R50 -G069 -V078 +mus_encounter_swimmer.mid: -E -R50 -G036 -V080 +mus_encounter_twins.mid: -E -R50 -G095 -V075 +mus_end.mid: -E -R50 -G102 -V036 +mus_ever_grande.mid: -E -R50 -G068 -V086 +mus_evolution_intro.mid: -E -R50 -G026 -V080 +mus_evolution.mid: -E -R50 -G026 -V080 +mus_evolved.mid: -E -R50 -G012 -V090 -P5 +mus_fallarbor.mid: -E -R50 -G083 -V100 +mus_follow_me.mid: -E -R50 -G066 -V074 +mus_fortree.mid: -E -R50 -G032 -V080 +mus_game_corner.mid: -E -R50 -G072 -V072 +mus_gsc_pewter.mid: -E -R50 -V080 +mus_gsc_route38.mid: -E -R50 -V080 +mus_gym.mid: -E -R50 -G013 -V080 +mus_hall_of_fame_room.mid: -E -R50 -G093 -V080 +mus_hall_of_fame.mid: -E -R50 -G082 -V078 +mus_heal.mid: -E -R50 -G012 -V090 -P5 +mus_help.mid: -E -R50 -G056 -V078 +mus_intro_battle.mid: -E -R50 -G088 -V088 +mus_intro.mid: -E -R50 -G060 -V090 +mus_level_up.mid: -E -R50 -G012 -V090 -P5 +mus_lilycove_museum.mid: -E -R50 -G020 -V080 +mus_lilycove.mid: -E -R50 -G054 -V085 +mus_link_contest_p1.mid: -E -R50 -G039 -V079 +mus_link_contest_p2.mid: -E -R50 -G040 -V090 +mus_link_contest_p3.mid: -E -R50 -G041 -V075 +mus_link_contest_p4.mid: -E -R50 -G042 -V090 +mus_littleroot_test.mid: -E -R50 -G034 -V099 +mus_littleroot.mid: -E -R50 -G051 -V100 +mus_move_deleted.mid: -E -R50 -G012 -V090 -P5 +mus_mt_chimney.mid: -E -R50 -G052 -V078 +mus_mt_pyre_exterior.mid: -E -R50 -G080 -V080 +mus_mt_pyre.mid: -E -R50 -G078 -V088 +mus_obtain_b_points.mid: -E -R50 -G103 -V090 -P5 +mus_obtain_badge.mid: -E -R50 -G012 -V090 -P5 +mus_obtain_berry.mid: -E -R50 -G012 -V090 -P5 +mus_obtain_item.mid: -E -R50 -G012 -V090 -P5 +mus_obtain_symbol.mid: -E -R50 -G103 -V100 -P5 +mus_obtain_tmhm.mid: -E -R50 -G012 -V090 -P5 +mus_oceanic_museum.mid: -E -R50 -G023 -V080 +mus_oldale.mid: -E -R50 -G019 -V080 +mus_petalburg_woods.mid: -E -R50 -G018 -V080 +mus_petalburg.mid: -E -R50 -G015 -V080 +mus_poke_center.mid: -E -R50 -G046 -V092 +mus_poke_mart.mid: -E -R50 -G050 -V085 +mus_rayquaza_appears.mid: -E -R50 -G109 -V090 +mus_register_match_call.mid: -E -R50 -G105 -V090 -P5 +mus_rg_berry_pick.mid: -E -R50 -G132 -V090 +mus_rg_caught_intro.mid: -E -R50 -G179 -V094 -P5 +mus_rg_caught.mid: -E -R50 -G170 -V100 +mus_rg_celadon.mid: -E -R50 -G168 -V070 +mus_rg_cinnabar.mid: -E -R50 -G138 -V090 +mus_rg_credits.mid: -E -R50 -G149 -V090 +mus_rg_cycling.mid: -E -R50 -G141 -V090 +mus_rg_dex_rating.mid: -E -R50 -G175 -V070 -P5 +mus_rg_encounter_boy.mid: -E -R50 -G144 -V090 +mus_rg_encounter_deoxys.mid: -E -R50 -G184 -V079 +mus_rg_encounter_girl.mid: -E -R50 -G143 -V051 +mus_rg_encounter_gym_leader: -E -R50 -G144 -V090 +mus_rg_encounter_rival.mid: -E -R50 -G174 -V079 +mus_rg_encounter_rocket.mid: -E -R50 -G142 -V096 +mus_rg_follow_me.mid: -E -R50 -G131 -V068 +mus_rg_fuchsia.mid: -E -R50 -G167 -V090 +mus_rg_game_corner.mid: -E -R50 -G132 -V090 +mus_rg_game_freak.mid: -E -R50 -G181 -V075 +mus_rg_gym.mid: -E -R50 -G134 -V090 +mus_rg_hall_of_fame.mid: -E -R50 -G145 -V079 +mus_rg_heal.mid: -E -R50 -G140 -V090 +mus_rg_intro_fight.mid: -E -R50 -G136 -V090 +mus_rg_jigglypuff.mid: -E -R50 -G135 -V068 -P5 +mus_rg_lavender.mid: -E -R50 -G139 -V090 +mus_rg_mt_moon.mid: -E -R50 -G147 -V090 +mus_rg_mystery_gift.mid: -E -R50 -G183 -V100 +mus_rg_net_center.mid: -E -R50 -G162 -V096 +mus_rg_new_game_exit.mid: -E -R50 -G182 -V088 +mus_rg_new_game_instruct.mid: -E -R50 -G182 -V085 +mus_rg_new_game_intro.mid: -E -R50 -G182 -V088 +mus_rg_oak_lab.mid: -E -R50 -G160 -V075 +mus_rg_oak.mid: -E -R50 -G161 -V086 +mus_rg_obtain_key_item.mid: -E -R50 -G178 -V077 -P5 +mus_rg_pallet.mid: -E -R50 -G159 -V100 +mus_rg_pewter.mid: -E -R50 -G173 -V084 +mus_rg_photo.mid: -E -R50 -G180 -V100 -P5 +mus_rg_poke_center.mid: -E -R50 -G162 -V096 +mus_rg_poke_flute.mid: -E -R50 -G165 -V048 -P5 +mus_rg_poke_jump.mid: -E -R50 -G132 -V090 +mus_rg_poke_mansion.mid: -E -R50 -G148 -V090 +mus_rg_poke_tower.mid: -E -R50 -G165 -V090 +mus_rg_rival_exit.mid: -E -R50 -G174 -V079 +mus_rg_rocket_hideout.mid: -E -R50 -G133 -V090 +mus_rg_route1.mid: -E -R50 -G150 -V079 +mus_rg_route3.mid: -E -R50 -G152 -V083 +mus_rg_route11.mid: -E -R50 -G153 -V090 +mus_rg_route24.mid: -E -R50 -G151 -V086 +mus_rg_sevii_45.mid: -E -R50 -G188 -V084 +mus_rg_sevii_67.mid: -E -R50 -G189 -V084 +mus_rg_sevii_123.mid: -E -R50 -G173 -V084 +mus_rg_sevii_cave.mid: -E -R50 -G147 -V090 +mus_rg_sevii_dungeon.mid: -E -R50 -G146 -V090 +mus_rg_sevii_route.mid: -E -R50 -G187 -V080 +mus_rg_silph.mid: -E -R50 -G166 -V076 +mus_rg_slow_pallet.mid: -E -R50 -G159 -V092 +mus_rg_ss_anne.mid: -E -R50 -G163 -V090 +mus_rg_surf.mid: -E -R50 -G164 -V071 +mus_rg_teachy_tv_menu.mid: -E -R50 -G186 -V059 +mus_rg_teachy_tv_show.mid: -E -R50 -G131 -V068 +mus_rg_title.mid: -E -R50 -G137 -V090 +mus_rg_trainer_tower.mid: -E -R50 -G134 -V090 +mus_rg_union_room.mid: -E -R50 -G132 -V090 +mus_rg_vermillion.mid: -E -R50 -G172 -V090 +mus_rg_victory_gym_leader.mid: -E -R50 -G171 -V090 +mus_rg_victory_road.mid: -E -R50 -G154 -V090 +mus_rg_victory_trainer.mid: -E -R50 -G169 -V089 +mus_rg_victory_wild.mid: -E -R50 -G170 -V090 +mus_rg_viridian_forest.mid: -E -R50 -G146 -V090 +mus_rg_vs_champion.mid: -E -R50 -G158 -V090 +mus_rg_vs_deoxys.mid: -E -R50 -G185 -V080 +mus_rg_vs_gym_leader.mid: -E -R50 -G155 -V090 +mus_rg_vs_legend.mid: -E -R50 -G157 -V090 +mus_rg_vs_mewtwo.mid: -E -R50 -G157 -V090 +mus_rg_vs_trainer.mid: -E -R50 -G156 -V090 +mus_rg_vs_wild.mid: -E -R50 -G157 -V090 +mus_roulette.mid: -E -R50 -G038 -V080 +mus_route101.mid: -E -R50 -G011 -V080 +mus_route104.mid: -E -R50 -G047 -V097 +mus_route110.mid: -E -R50 -G010 -V080 +mus_route111.mid: -E -R50 -G055 -V076 +mus_route113.mid: -E -R50 -G064 -V084 +mus_route119.mid: -E -R50 -G048 -V096 +mus_route120.mid: -E -R50 -G014 -V080 +mus_route122.mid: -E -R50 -G021 -V080 +mus_rustboro.mid: -E -R50 -G045 -V085 +mus_safari_zone.mid: -E -R50 -G074 -V082 +mus_sailing.mid: -E -R50 -G077 -V086 +mus_school.mid: -E -R50 -G081 -V100 +mus_sealed_chamber.mid: -E -R50 -G084 -V100 +mus_slateport.mid: -E -R50 -G079 -V070 +mus_slots_jackpot.mid: -E -R50 -G012 -V090 -P5 +mus_slots_win.mid: -E -R50 -G012 -V090 -P5 +mus_sootopolis.mid: -E -R50 -G091 -V062 +mus_surf.mid: -E -R50 -G017 -V080 +mus_title.mid: -E -R50 -G059 -V090 +mus_too_bad.mid: -E -R50 -G012 -V090 -P5 +mus_trick_house.mid: -E -R50 -G094 -V070 +mus_underwater.mid: -E -R50 -G057 -V094 +mus_verdanturf.mid: -E -R50 -G044 -V090 +mus_victory_aqua_magma.mid: -E -R50 -G070 -V088 +mus_victory_gym_leader.mid: -E -R50 -G024 -V080 +mus_victory_league.mid: -E -R50 -G029 -V080 +mus_victory_road.mid: -E -R50 -G075 -V076 +mus_victory_trainer.mid: -E -R50 -G058 -V091 +mus_victory_wild.mid: -E -R50 -G025 -V080 +mus_vs_aqua_magma_leader.mid: -E -R50 -G126 -V080 -P1 +mus_vs_aqua_magma.mid: -E -R50 -G118 -V080 -P1 +mus_vs_champion.mid: -E -R50 -G121 -V080 -P1 +mus_vs_elite_four.mid: -E -R50 -G125 -V080 -P1 +mus_vs_frontier_brain.mid: -E -R50 -G115 -V090 -P1 +mus_vs_gym_leader.mid: -E -R50 -G120 -V080 -P1 +mus_vs_kyogre_groudon.mid: -E -R50 -G123 -V080 -P1 +mus_vs_mew.mid: -E -R50 -G116 -V090 +mus_vs_rayquaza.mid: -E -R50 -G114 -V080 -P1 +mus_vs_regi.mid: -E -R50 -G122 -V080 -P1 +mus_vs_rival.mid: -E -R50 -G124 -V080 -P1 +mus_vs_trainer.mid: -E -R50 -G119 -V080 -P1 +mus_vs_wild.mid: -E -R50 -G117 -V080 -P1 +mus_weather_groudon.mid: -E -R50 -G090 -V050 +ph_choice_blend.mid: -E -G130 -P4 +ph_choice_held.mid: -E -G130 -P4 +ph_choice_solo.mid: -E -G130 -P4 +ph_cloth_blend.mid: -E -G130 -P4 +ph_cloth_held.mid: -E -G130 -P4 +ph_cloth_solo.mid: -E -G130 -P4 +ph_cure_blend.mid: -E -G130 -P4 +ph_cure_held.mid: -E -G130 -P4 +ph_cure_solo.mid: -E -G130 -P4 +ph_dress_blend.mid: -E -G130 -P4 +ph_dress_held.mid: -E -G130 -P4 +ph_dress_solo.mid: -E -G130 -P4 +ph_face_blend.mid: -E -G130 -P4 +ph_face_held.mid: -E -G130 -P4 +ph_face_solo.mid: -E -G130 -P4 +ph_fleece_blend.mid: -E -G130 -P4 +ph_fleece_held.mid: -E -G130 -P4 +ph_fleece_solo.mid: -E -G130 -P4 +ph_foot_blend.mid: -E -G130 -P4 +ph_foot_held.mid: -E -G130 -P4 +ph_foot_solo.mid: -E -G130 -P4 +ph_goat_blend.mid: -E -G130 -P4 +ph_goat_held.mid: -E -G130 -P4 +ph_goat_solo.mid: -E -G130 -P4 +ph_goose_blend.mid: -E -G130 -P4 +ph_goose_held.mid: -E -G130 -P4 +ph_goose_solo.mid: -E -G130 -P4 +ph_kit_blend.mid: -E -G130 -P4 +ph_kit_held.mid: -E -G130 -P4 +ph_kit_solo.mid: -E -G130 -P4 +ph_lot_blend.mid: -E -G130 -P4 +ph_lot_held.mid: -E -G130 -P4 +ph_lot_solo.mid: -E -G130 -P4 +ph_mouth_blend.mid: -E -G130 -P4 +ph_mouth_held.mid: -E -G130 -P4 +ph_mouth_solo.mid: -E -G130 -P4 +ph_nurse_blend.mid: -E -G130 -P4 +ph_nurse_held.mid: -E -G130 -P4 +ph_nurse_solo.mid: -E -G130 -P4 +ph_price_blend.mid: -E -G130 -P4 +ph_price_held.mid: -E -G130 -P4 +ph_price_solo.mid: -E -G130 -P4 +ph_strut_blend.mid: -E -G130 -P4 +ph_strut_held.mid: -E -G130 -P4 +ph_strut_solo.mid: -E -G130 -P4 +ph_thought_blend.mid: -E -G130 -P4 +ph_thought_held.mid: -E -G130 -P4 +ph_thought_solo.mid: -E -G130 -P4 +ph_trap_blend.mid: -E -G130 -P4 +ph_trap_held.mid: -E -G130 -P4 +ph_trap_solo.mid: -E -G130 -P4 +se_a.mid: -E -R50 -G128 -V095 -P4 +se_applause.mid: -E -R50 -G128 -V100 -P5 +se_arena_timeup1.mid: -E -R50 -G129 -P5 +se_arena_timeup2.mid: -E -R50 -G129 -P5 +se_ball_bounce_1.mid: -E -R50 -G128 -V100 -P4 +se_ball_bounce_2.mid: -E -R50 -G128 -V100 -P4 +se_ball_bounce_3.mid: -E -R50 -G128 -V100 -P4 +se_ball_bounce_4.mid: -E -R50 -G128 -V100 -P4 +se_ball_open.mid: -E -R50 -G127 -V100 -P5 +se_ball_throw.mid: -E -R50 -G128 -V120 -P5 +se_ball_trade.mid: -E -R50 -G127 -V100 -P5 +se_ball_tray_ball.mid: -E -R50 -G128 -V110 -P5 +se_ball_tray_enter.mid: -E -R50 -G128 -V110 -P5 +se_ball_tray_exit.mid: -E -R50 -G127 -V100 -P5 +se_ball.mid: -E -R50 -G127 -V070 -P4 +se_balloon_blue.mid: -E -R50 -G128 -V105 -P4 +se_balloon_red.mid: -E -R50 -G128 -V105 -P4 +se_balloon_yellow.mid: -E -R50 -G128 -V105 -P4 +se_bang.mid: -E -R50 -G128 -V110 -P4 +se_berry_blender.mid: -E -R50 -G128 -V090 -P4 +se_bike_bell.mid: -E -R50 -G128 -V090 -P4 +se_bike_hop.mid: -E -R50 -G127 -V090 -P4 +se_boo.mid: -E -R50 -G127 -V110 -P4 +se_breakable_door.mid: -E -R50 -G128 -V110 -P4 +se_bridge_walk.mid: -E -R50 -G128 -V095 -P4 +se_card.mid: -E -R50 -G127 -V100 -P4 +se_click.mid: -E -R50 -G127 -V110 -P4 +se_contest_condition_lose.mid: -E -R50 -G127 -V110 -P4 +se_contest_curtain_fall.mid: -E -R50 -G128 -V070 -P5 +se_contest_curtain_rise.mid: -E -R50 -G128 -V070 -P5 +se_contest_heart.mid: -E -R50 -G128 -V090 -P5 +se_contest_icon_change.mid: -E -R50 -G128 -V110 -P5 +se_contest_icon_clear.mid: -E -R50 -G128 -V090 -P5 +se_contest_mons_turn.mid: -E -R50 -G128 -V090 -P5 +se_contest_place.mid: -E -R50 -G127 -V110 -P4 +se_dex_search.mid: -E -R50 -G127 -v100 -P5 +se_ding_dong.mid: -E -R50 -G127 -V090 -P5 +se_door.mid: -E -R50 -G127 -V080 -P5 +se_downpour_stop.mid: -E -R50 -G128 -V100 -P2 +se_downpour.mid: -E -R50 -G128 -V100 -P2 +se_e.mid: -E -R50 -G128 -V120 -P4 +se_effective.mid: -E -R50 -G127 -V110 -P5 +se_egg_hatch.mid: -E -R50 -G128 -V120 -P5 +se_elevator.mid: -E -R50 -G128 -V100 -P4 +se_escalator.mid: -E -R50 -G128 -V100 -P4 +se_exit.mid: -E -R50 -G127 -V120 -P5 +se_exp_max.mid: -E -R50 -G128 -V094 -P5 +se_exp.mid: -E -R50 -G127 -V080 -P5 +se_failure.mid: -E -R50 -G127 -V120 -P4 +se_faint.mid: -E -R50 -G127 -V110 -P5 +se_fall.mid: -E -R50 -G128 -V110 -P4 +se_field_poison.mid: -E -R50 -G127 -V110 -P5 +se_flee.mid: -E -R50 -G127 -V090 -P5 +se_fu_zaku.mid: -E -R50 -G127 -V120 -P4 +se_glass_flute.mid: -E -R50 -G128 -V105 -P5 +se_i.mid: -E -R50 -G128 -V120 -P4 +se_ice_break.mid: -E -R50 -G128 -V100 -P4 +se_ice_crack.mid: -E -R50 -G127 -V100 -P4 +se_ice_stairs.mid: -E -R50 -G128 -V090 -P4 +se_intro_blast.mid: -E -R50 -G127 -V100 -P5 +se_itemfinder.mid: -E -R50 -G127 -V090 -P5 +se_lavaridge_fall_warp.mid: -E -R50 -G127 -P4 +se_ledge.mid: -E -R50 -G127 -V100 -P4 +se_low_health.mid: -E -R50 -G127 -V100 -P3 +se_m_bind.mid: -E -R50 -G128 -V100 -P4 +se_m_comet_punch.mid: -E -R50 -G128 -V120 -P4 +se_m_cut.mid: -E -R50 -G128 -V120 -P4 +se_m_double_slap.mid: -E -R50 -G128 -V110 -P4 +se_m_fire_punch.mid: -E -R50 -G128 -V110 -P4 +se_m_fly.mid: -E -R50 -G128 -V110 -P4 +se_m_gust.mid: -E -R50 -G128 -V110 -P4 +se_m_gust2.mid: -E -R50 -G128 -V110 -P4 +se_m_headbutt.mid: -E -R50 -G128 -V110 -P4 +se_m_horn_attack.mid: -E -R50 -G128 -V110 -P4 +se_m_jump_kick.mid: -E -R50 -G128 -V110 -P4 +se_m_leer.mid: -E -R50 -G128 -V110 -P4 +se_m_mega_kick.mid: -E -R50 -G128 -V090 -P4 +se_m_mega_kick2.mid: -E -R50 -G128 -V110 -P4 +se_m_pay_day.mid: -E -R50 -G128 -V095 -P4 +se_m_razor_wind.mid: -E -R50 -G128 -V110 -P4 +se_m_razor_wind2.mid: -E -R50 -G128 -V090 -P4 +se_m_sand_attack.mid: -E -R50 -G128 -V110 -P4 +se_m_scratch.mid: -E -R50 -G128 -V110 -P4 +se_m_swords_dance.mid: -E -R50 -G128 -V100 -P4 +se_m_tail_whip.mid: -E -R50 -G128 -V110 -P4 +se_m_take_down.mid: -E -R50 -G128 -V105 -P4 +se_m_vicegrip.mid: -E -R50 -G128 -V110 -P4 +se_m_wing_attack.mid: -E -R50 -G128 -V105 -P4 +se_mud_ball.mid: -E -R50 -G128 -V110 -P4 +se_mugshot.mid: -E -R50 -G128 -V090 -P5 +se_n.mid: -E -R50 -G128 -P4 +se_not_effective.mid: -E -R50 -G127 -V110 -P5 +se_note_a.mid: -E -R50 -G128 -V110 -P4 +se_note_b.mid: -E -R50 -G128 -V110 -P4 +se_note_c_high.mid: -E -R50 -G128 -V110 -P4 +se_note_c.mid: -E -R50 -G128 -V110 -P4 +se_note_d.mid: -E -R50 -G128 -V110 -P4 +se_note_e.mid: -E -R50 -G128 -V110 -P4 +se_note_f.mid: -E -R50 -G128 -V110 -P4 +se_note_g.mid: -E -R50 -G128 -V110 -P4 +se_o.mid: -E -R50 -G128 -V120 -P4 +se_orb.mid: -E -R50 -G128 -V100 -P5 +se_pc_login.mid: -E -R50 -G127 -V100 -P5 +se_pc_off.mid: -E -R50 -G127 -V100 -P5 +se_pc_on.mid: -E -R50 -G127 -V100 -P5 +se_pike_curtain_close.mid: -E -R50 -G129 -P5 +se_pike_curtain_open.mid: -E -R50 -G129 -P5 +se_pin.mid: -E -R50 -G127 -V060 -P4 +se_pokenav_call.mid: -E -R50 -G129 -V120 -P5 +se_pokenav_hang_up.mid: -E -R50 -G129 -V110 -P5 +se_pokenav_off.mid: -E -R50 -G127 -V100 -P5 +se_pokenav_on.mid: -E -R50 -G127 -V100 -P5 +se_puddle.mid: -E -R50 -G128 -V020 -P4 +se_rain_stop.mid: -E -R50 -G128 -V080 -P2 +se_rain.mid: -E -R50 -G128 -V080 -P2 +se_repel.mid: -E -R50 -G127 -V090 -P4 +se_rg_bag_cursor.mid: -E -R50 -G129 -P5 +se_rg_bag_pocket.mid: -E -R50 -G129 -P5 +se_rg_ball_click.mid: -E -R50 -G129 -V100 -P5 +se_rg_card_flip.mid: -E -R50 -G129 -P5 +se_rg_card_flipping.mid: -E -R50 -G129 -P5 +se_rg_card_open.mid: -E -R50 -G129 -V112 -P5 +se_rg_deoxys_move.mid: -E -R50 -G129 -V080 -P5 +se_rg_door.mid: -E -R50 -G129 -V100 -P5 +se_rg_help_close.mid: -E -R50 -G129 -V095 -P5 +se_rg_help_error.mid: -E -R50 -G129 -V125 -P5 +se_rg_help_open.mid: -E -R50 -G129 -V096 -P5 +se_rg_poke_jump_failure.mid: -E -R50 -G127 -P5 +se_rg_poke_jump_success.mid: -E -R50 -G128 -V110 -P5 +se_rg_shop.mid: -E -R50 -G129 -V080 -P5 +se_rg_ss_anne_horn.mid: -E -R50 -G129 -V096 -P5 +se_rotating_gate.mid: -E -R50 -G128 -V090 -P4 +se_roulette_ball.mid: -E -R50 -G128 -V110 -P2 +se_roulette_ball2.mid: -E -R50 -G128 -V110 -P2 +se_save.mid: -E -R50 -G128 -V080 -P5 +se_select.mid: -E -R50 -G127 -V080 -P5 +se_shiny.mid: -E -R50 -G128 -V095 -P5 +se_ship.mid: -E -R50 -G127 -V075 -P4 +se_shop.mid: -E -R50 -G127 -V090 -P5 +se_sliding_door.mid: -E -R50 -G128 -V095 -P4 +se_success.mid: -E -R50 -G127 -V080 -P4 +se_sudowoodo_shake.mid: -E -R50 -G129 -V077 -P5 +se_super_effective.mid: -E -R50 -G127 -V110 -P5 +se_switch.mid: -E -R50 -G127 -V100 -P4 +se_taillow_wing_flap.mid: -E -R50 -G128 -V105 -P5 +se_thunder.mid: -E -R50 -G128 -V110 -P3 +se_thunder2.mid: -E -R50 -G128 -V110 -P3 +se_thunderstorm_stop.mid: -E -R50 -G128 -V080 -P2 +se_thunderstorm.mid: -E -R50 -G128 -V080 -P2 +se_truck_door.mid: -E -R50 -G128 -V110 -P4 +se_truck_move.mid: -E -R50 -G128 -P4 +se_truck_stop.mid: -E -R50 -G128 -P4 +se_truck_unload.mid: -E -R50 -G127 -P4 +se_u.mid: -E -R50 -G128 -P4 +se_unlock.mid: -E -R50 -G128 -V100 -P4 +se_use_item.mid: -E -R50 -G127 -V100 -P5 +se_vend.mid: -E -R50 -G128 -V110 -P4 +se_warp_in.mid: -E -R50 -G127 -V090 -P4 +se_warp_out.mid: -E -R50 -G127 -V090 -P4 \ No newline at end of file From cf1eaea7f7dbe438ab28a7949e94e9b0c453be74 Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:36:35 +1300 Subject: [PATCH 05/99] Coalesced audio rules into `audio.mk` --- Makefile | 9 +-------- songs.mk => audio_rules.mk | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 9 deletions(-) rename songs.mk => audio_rules.mk (58%) diff --git a/Makefile b/Makefile index 5c073b36ca..df574e4545 100644 --- a/Makefile +++ b/Makefile @@ -86,8 +86,6 @@ DATA_SRC_SUBDIR = src/data DATA_ASM_SUBDIR = data SONG_SUBDIR = sound/songs MID_SUBDIR = sound/songs/midi -SAMPLE_SUBDIR = sound/direct_sound_samples -CRY_SUBDIR = sound/direct_sound_samples/cries C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) GFLIB_BUILDDIR = $(OBJ_DIR)/$(GFLIB_SUBDIR) @@ -263,7 +261,7 @@ include graphics_file_rules.mk include map_data_rules.mk include spritesheet_rules.mk include json_data_rules.mk -include songs.mk +include audio_rules.mk %.s: ; %.png: ; @@ -277,8 +275,6 @@ include songs.mk %.gbapal: %.png ; $(GFX) $< $@ %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ -$(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress -sound/%.bin: sound/%.aif ; $(AIF) $< $@ ifeq ($(MODERN),0) @@ -393,9 +389,6 @@ $(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsub endif endif -$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s - $(AS) $(ASFLAGS) -I sound -o $@ $< - $(OBJ_DIR)/sym_bss.ld: sym_bss.txt $(RAMSCRGEN) .bss $< ENGLISH > $@ diff --git a/songs.mk b/audio_rules.mk similarity index 58% rename from songs.mk rename to audio_rules.mk index feef64cf5b..69d482fdfa 100644 --- a/songs.mk +++ b/audio_rules.mk @@ -1,6 +1,28 @@ # This file contains rules for making assemblies for most music in the game. -MID_ASM_DIR = $(MID_SUBDIR) +CRY_SUBDIR := sound/direct_sound_samples/cries + +MID_ASM_DIR := $(MID_SUBDIR) +CRY_BIN_DIR := $(CRY_SUBDIR) +SOUND_BIN_DIR := sound + +SPECIAL_OUTDIRS := $(MID_ASM_DIR) $(CRY_BIN_DIR) +SPECIAL_OUTDIRS += $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/direct_sound_samples/phonemes $(SOUND_BIN_DIR)/direct_sound_samples/cries +$(shell mkdir -p $(SPECIAL_OUTDIRS) ) + +# Assembly song compilation +$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s + $(AS) $(ASFLAGS) -I sound -o $@ $< +$(MID_BUILDDIR)/%.o: $(MID_ASM_DIR)/%.s + $(AS) $(ASFLAGS) -I sound -o $@ $< + +# Compressed cries +$(CRY_BIN_DIR)/%.bin: $(CRY_SUBDIR)/%.aif + $(AIF) $< $@ --compress + +# Uncompressed sounds +$(SOUND_BIN_DIR)/%.bin: sound/%.aif + $(AIF) $< $@ # For each line in midi.cfg, we do some trickery to convert it into a make rule for the `.mid` file described on the line # Data following the colon in said file corresponds to arguments passed into mid2agb From 5e4e522d9264cd6c6c139293887acda3cf5e0909 Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Wed, 15 Nov 2023 17:33:25 +1300 Subject: [PATCH 06/99] `.cfg` edits now rebuild `.mid` --- audio_rules.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/audio_rules.mk b/audio_rules.mk index 69d482fdfa..fccb9fc548 100644 --- a/audio_rules.mk +++ b/audio_rules.mk @@ -30,7 +30,7 @@ MID_CFG_PATH := $(MID_SUBDIR)/midi.cfg # $1: Source path no extension, $2 Options define MID_RULE -$(MID_ASM_DIR)/$1.s: $(MID_SUBDIR)/$1.mid +$(MID_ASM_DIR)/$1.s: $(MID_SUBDIR)/$1.mid $(MID_CFG_PATH) $(MID) $$< $$@ $2 endef # source path, remaining text (options) From 2db9ab2a2f68f66383edde08b9d731002f9a9b33 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 16 Nov 2023 13:08:47 -0500 Subject: [PATCH 07/99] Document camera sprite functions --- include/event_object_movement.h | 10 +++- src/event_object_movement.c | 102 ++++++++++++++++---------------- src/field_camera.c | 4 +- src/field_effect.c | 28 ++++----- src/field_player_avatar.c | 6 +- 5 files changed, 78 insertions(+), 72 deletions(-) diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 01269cdb5e..2a273b7991 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -71,6 +71,12 @@ enum ReflectionTypes #define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18) #define GROUND_EFFECT_FLAG_SEAWEED (1 << 19) +// Sprite data for the CameraObject functions +#define sCamera_FollowSpriteId data[0] +#define sCamera_State data[1] +#define sCamera_MoveX data[2] +#define sCamera_MoveY data[3] + struct StepAnimTable { const union AnimCmd *const *anims; @@ -123,7 +129,7 @@ u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup); u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation); u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *); void SetSpritePosToMapCoords(s16 mapX, s16 mapY, s16 *destX, s16 *destY); -void CameraObjectReset1(void); +void CameraObjectReset(void); void ObjectEventSetGraphicsId(struct ObjectEvent *, u8 graphicsId); void ObjectEventTurn(struct ObjectEvent *, u8 direction); void ObjectEventTurnByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 direction); @@ -211,7 +217,7 @@ u16 GetObjectPaletteTag(u8 palSlot); void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible); s16 GetFigure8XOffset(s16 idx); s16 GetFigure8YOffset(s16 idx); -void CameraObjectReset2(void); +void CameraObjectFreeze(void); u8 GetObjectEventBerryTreeId(u8 objectEventId); void SetBerryTreeJustPicked(u8 mapId, u8 mapNumber, u8 mapGroup); bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup); diff --git a/src/event_object_movement.c b/src/event_object_movement.c index a181ea9f21..5a746579d4 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -144,9 +144,9 @@ static u8 FindObjectEventPaletteIndexByTag(u16); static void _PatchObjectPalette(u16, u8); static bool8 ObjectEventDoesElevationMatch(struct ObjectEvent *, u8); static void SpriteCB_CameraObject(struct Sprite *); -static void CameraObject_0(struct Sprite *); -static void CameraObject_1(struct Sprite *); -static void CameraObject_2(struct Sprite *); +static void CameraObject_Init(struct Sprite *); +static void CameraObject_UpdateMove(struct Sprite *); +static void CameraObject_UpdateFrozen(struct Sprite *); static const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8, const struct ObjectEventTemplate *, u8); static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *); static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); @@ -193,10 +193,16 @@ static const struct SpriteTemplate sCameraSpriteTemplate = { .callback = SpriteCB_CameraObject }; +enum { + CAMERA_STATE_INIT, + CAMERA_STATE_MOVE, + CAMERA_STATE_FROZEN, +}; + static void (*const sCameraObjectFuncs[])(struct Sprite *) = { - CameraObject_0, - CameraObject_1, - CameraObject_2, + [CAMERA_STATE_INIT] = CameraObject_Init, + [CAMERA_STATE_MOVE] = CameraObject_UpdateMove, + [CAMERA_STATE_FROZEN] = CameraObject_UpdateFrozen, }; #include "data/object_events/object_event_graphics.h" @@ -1836,7 +1842,7 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) sprite->x += 8; sprite->y += 16 + sprite->centerToCornerVecY; if (objectEvent->trackedByCamera) - CameraObjectReset1(); + CameraObjectReset(); } void ObjectEventSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId) @@ -2128,7 +2134,7 @@ void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y) sprite->y += 16 + sprite->centerToCornerVecY; ResetObjectEventFldEffData(objectEvent); if (objectEvent->trackedByCamera) - CameraObjectReset1(); + CameraObjectReset(); } void TryMoveObjectEventToMapCoords(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y) @@ -2204,15 +2210,15 @@ void UpdateObjectEventsForCameraUpdate(s16 x, s16 y) RemoveObjectEventsOutsideView(); } -#define sLinkedSpriteId data[0] -#define sState data[1] - -u8 AddCameraObject(u8 linkedSpriteId) +// The "CameraObject" functions below are responsible for an invisible sprite +// that follows the movements of a different sprite (normally the player's sprite) +// and tracks x/y movement distances for the camera so it knows where to move. +u8 AddCameraObject(u8 followSpriteId) { u8 spriteId = CreateSprite(&sCameraSpriteTemplate, 0, 0, 4); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].sLinkedSpriteId = linkedSpriteId; + gSprites[spriteId].sCamera_FollowSpriteId = followSpriteId; return spriteId; } @@ -2221,35 +2227,37 @@ static void SpriteCB_CameraObject(struct Sprite *sprite) void (*callbacks[ARRAY_COUNT(sCameraObjectFuncs)])(struct Sprite *); memcpy(callbacks, sCameraObjectFuncs, sizeof sCameraObjectFuncs); - callbacks[sprite->sState](sprite); + callbacks[sprite->sCamera_State](sprite); } -static void CameraObject_0(struct Sprite *sprite) +static void CameraObject_Init(struct Sprite *sprite) { - sprite->x = gSprites[sprite->sLinkedSpriteId].x; - sprite->y = gSprites[sprite->sLinkedSpriteId].y; + sprite->x = gSprites[sprite->sCamera_FollowSpriteId].x; + sprite->y = gSprites[sprite->sCamera_FollowSpriteId].y; sprite->invisible = TRUE; - sprite->sState = 1; - CameraObject_1(sprite); + sprite->sCamera_State = CAMERA_STATE_MOVE; + CameraObject_UpdateMove(sprite); } -static void CameraObject_1(struct Sprite *sprite) +static void CameraObject_UpdateMove(struct Sprite *sprite) { - s16 x = gSprites[sprite->sLinkedSpriteId].x; - s16 y = gSprites[sprite->sLinkedSpriteId].y; + s16 x = gSprites[sprite->sCamera_FollowSpriteId].x; + s16 y = gSprites[sprite->sCamera_FollowSpriteId].y; - sprite->data[2] = x - sprite->x; - sprite->data[3] = y - sprite->y; + sprite->sCamera_MoveX = x - sprite->x; + sprite->sCamera_MoveY = y - sprite->y; sprite->x = x; sprite->y = y; } -static void CameraObject_2(struct Sprite *sprite) +// Invisible sprite will continue to follow the parent sprite, +// but no corresponding camera movement will be shown. +static void CameraObject_UpdateFrozen(struct Sprite *sprite) { - sprite->x = gSprites[sprite->sLinkedSpriteId].x; - sprite->y = gSprites[sprite->sLinkedSpriteId].y; - sprite->data[2] = 0; - sprite->data[3] = 0; + sprite->x = gSprites[sprite->sCamera_FollowSpriteId].x; + sprite->y = gSprites[sprite->sCamera_FollowSpriteId].y; + sprite->sCamera_MoveX = 0; + sprite->sCamera_MoveY = 0; } static struct Sprite *FindCameraSprite(void) @@ -2264,51 +2272,43 @@ static struct Sprite *FindCameraSprite(void) return NULL; } -void CameraObjectReset1(void) +void CameraObjectReset(void) { - struct Sprite *camera; - - camera = FindCameraSprite(); + struct Sprite *camera = FindCameraSprite(); if (camera != NULL) { - camera->sState = 0; + camera->sCamera_State = CAMERA_STATE_INIT; camera->callback(camera); } } void CameraObjectSetFollowedSpriteId(u8 spriteId) { - struct Sprite *camera; - - camera = FindCameraSprite(); + struct Sprite *camera = FindCameraSprite(); if (camera != NULL) { - camera->sLinkedSpriteId = spriteId; - CameraObjectReset1(); + camera->sCamera_FollowSpriteId = spriteId; + CameraObjectReset(); } } static u8 UNUSED CameraObjectGetFollowedSpriteId(void) { - struct Sprite *camera; - - camera = FindCameraSprite(); + struct Sprite *camera = FindCameraSprite(); if (camera == NULL) return MAX_SPRITES; - return camera->sLinkedSpriteId; + return camera->sCamera_FollowSpriteId; } -void CameraObjectReset2(void) +void CameraObjectFreeze(void) { - // UB: Possible null dereference -#ifdef UBFIX struct Sprite *camera = FindCameraSprite(); - if (camera) - camera->sState = 2; -#else - FindCameraSprite()->sState = 2; -#endif // UBFIX +#ifdef UBFIX // Possible null dereference + if (camera == NULL) + return; +#endif + camera->sCamera_State = CAMERA_STATE_FROZEN; } u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) diff --git a/src/field_camera.c b/src/field_camera.c index 3f7e29208c..31ebc63c05 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -331,8 +331,8 @@ static void CameraUpdateCallback(struct CameraObject *fieldCamera) { if (fieldCamera->spriteId != 0) { - fieldCamera->movementSpeedX = gSprites[fieldCamera->spriteId].data[2]; - fieldCamera->movementSpeedY = gSprites[fieldCamera->spriteId].data[3]; + fieldCamera->movementSpeedX = gSprites[fieldCamera->spriteId].sCamera_MoveX; + fieldCamera->movementSpeedY = gSprites[fieldCamera->spriteId].sCamera_MoveY; } } diff --git a/src/field_effect.c b/src/field_effect.c index 86f1ca97d2..4c82d0f0c4 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1444,7 +1444,7 @@ static bool8 FallWarpEffect_Init(struct Task *task) struct Sprite *playerSprite; playerObject = &gObjectEvents[gPlayerAvatar.objectEventId]; playerSprite = &gSprites[gPlayerAvatar.spriteId]; - CameraObjectReset2(); + CameraObjectFreeze(); gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; gPlayerAvatar.preventStep = TRUE; ObjectEventSetHeldMovement(playerObject, GetFaceDirectionMovementAction(GetPlayerFacingDirection())); @@ -1540,7 +1540,7 @@ static bool8 FallWarpEffect_End(struct Task *task) { gPlayerAvatar.preventStep = FALSE; UnlockPlayerFieldControls(); - CameraObjectReset1(); + CameraObjectReset(); UnfreezeObjectEvents(); InstallCameraPanAheadCallback(); DestroyTask(FindTaskIdByFunc(Task_FallWarpFieldEffect)); @@ -1579,7 +1579,7 @@ static void Task_EscalatorWarpOut(u8 taskId) static bool8 EscalatorWarpOut_Init(struct Task *task) { FreezeObjectEvents(); - CameraObjectReset2(); + CameraObjectFreeze(); StartEscalator(task->tGoingUp); task->tState++; return FALSE; @@ -1711,7 +1711,7 @@ static bool8 EscalatorWarpIn_Init(struct Task *task) s16 x; s16 y; u8 behavior; - CameraObjectReset2(); + CameraObjectFreeze(); objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; ObjectEventSetHeldMovement(objectEvent, GetFaceDirectionMovementAction(DIR_EAST)); PlayerGetDestCoords(&x, &y); @@ -1811,7 +1811,7 @@ static bool8 EscalatorWarpIn_End(struct Task *task) objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId]; if (ObjectEventClearHeldMovementIfFinished(objectEvent)) { - CameraObjectReset1(); + CameraObjectReset(); UnlockPlayerFieldControls(); ObjectEventSetHeldMovement(objectEvent, GetWalkNormalMovementAction(DIR_EAST)); DestroyTask(FindTaskIdByFunc(Task_EscalatorWarpIn)); @@ -1957,7 +1957,7 @@ static void Task_LavaridgeGymB1FWarp(u8 taskId) static bool8 LavaridgeGymB1FWarpEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); - CameraObjectReset2(); + CameraObjectFreeze(); SetCameraPanningCallback(NULL); gPlayerAvatar.preventStep = TRUE; objectEvent->fixedPriority = 1; @@ -2072,7 +2072,7 @@ static void Task_LavaridgeGymB1FWarpExit(u8 taskId) static bool8 LavaridgeGymB1FWarpExitEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { - CameraObjectReset2(); + CameraObjectFreeze(); FreezeObjectEvents(); gPlayerAvatar.preventStep = TRUE; objectEvent->invisible = TRUE; @@ -2101,7 +2101,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_PopOut(struct Task *task, struct Obje { task->data[0]++; objectEvent->invisible = FALSE; - CameraObjectReset1(); + CameraObjectReset(); PlaySE(SE_M_DIG); ObjectEventSetHeldMovement(objectEvent, GetJumpMovementAction(DIR_EAST)); } @@ -2150,7 +2150,7 @@ static void Task_LavaridgeGym1FWarp(u8 taskId) static bool8 LavaridgeGym1FWarpEffect_Init(struct Task *task, struct ObjectEvent *objectEvent, struct Sprite *sprite) { FreezeObjectEvents(); - CameraObjectReset2(); + CameraObjectFreeze(); gPlayerAvatar.preventStep = TRUE; objectEvent->fixedPriority = 1; task->data[0]++; @@ -2370,7 +2370,7 @@ static void TeleportWarpOutFieldEffect_Init(struct Task *task) { LockPlayerFieldControls(); FreezeObjectEvents(); - CameraObjectReset2(); + CameraObjectFreeze(); task->data[15] = GetPlayerFacingDirection(); task->tState++; } @@ -2452,7 +2452,7 @@ static void FieldCallback_TeleportWarpIn(void) FreezeObjectEvents(); gFieldCallback = NULL; gObjectEvents[gPlayerAvatar.objectEventId].invisible = TRUE; - CameraObjectReset2(); + CameraObjectFreeze(); CreateTask(Task_TeleportWarpIn, 0); } @@ -2536,7 +2536,7 @@ static void TeleportWarpInFieldEffect_SpinGround(struct Task *task) if ((++task->data[2]) > 4 && task->data[14] == objectEvent->facingDirection) { UnlockPlayerFieldControls(); - CameraObjectReset1(); + CameraObjectReset(); UnfreezeObjectEvents(); DestroyTask(FindTaskIdByFunc(Task_TeleportWarpIn)); } @@ -3268,7 +3268,7 @@ static void FlyOutFieldEffect_FlyOffWithBird(struct Task *task) objectEvent->inanimate = FALSE; objectEvent->hasShadow = FALSE; SetFlyBirdPlayerSpriteId(task->tBirdSpriteId, objectEvent->spriteId); - CameraObjectReset2(); + CameraObjectFreeze(); task->tState++; } } @@ -3483,7 +3483,7 @@ static void FlyInFieldEffect_BirdSwoopDown(struct Task *task) SetSurfBlob_BobState(objectEvent->fieldEffectSpriteId, BOB_NONE); } ObjectEventSetGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_STATE_SURFING)); - CameraObjectReset2(); + CameraObjectFreeze(); ObjectEventTurn(objectEvent, DIR_WEST); StartSpriteAnim(&gSprites[objectEvent->spriteId], ANIM_GET_ON_OFF_POKEMON_WEST); objectEvent->invisible = FALSE; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 5f4573c533..04aa5383bd 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -2093,7 +2093,7 @@ static void Task_DoPlayerSpinExit(u8 taskId) tSpeed = 1; tCurY = (u16)(sprite->y + sprite->y2) << 4; sprite->y2 = 0; - CameraObjectReset2(); + CameraObjectFreeze(); object->fixedPriority = TRUE; sprite->oam.priority = 0; sprite->subpriority = 0; @@ -2162,7 +2162,7 @@ static void Task_DoPlayerSpinEntrance(u8 taskId) tSubpriority = sprite->subpriority; tCurY = -((u16)sprite->y2 + 32) * 16; sprite->y2 = 0; - CameraObjectReset2(); + CameraObjectFreeze(); object->fixedPriority = TRUE; sprite->oam.priority = 1; sprite->subpriority = 0; @@ -2197,7 +2197,7 @@ static void Task_DoPlayerSpinEntrance(u8 taskId) object->fixedPriority = 0; sprite->oam.priority = tPriority; sprite->subpriority = tSubpriority; - CameraObjectReset1(); + CameraObjectReset(); DestroyTask(taskId); } break; From 8e8d2f5efab9fff392326eee19a32ac936b99e5b Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 18 Jan 2024 14:31:04 -0500 Subject: [PATCH 08/99] Remove non-existent tilesets from label comments and alphabetize --- include/constants/metatile_labels.h | 142 ++++++++++++++-------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h index c2c018761a..3b63d80f84 100644 --- a/include/constants/metatile_labels.h +++ b/include/constants/metatile_labels.h @@ -9,18 +9,6 @@ #define METATILE_BattleDome_Door_Lobby 0x209 #define METATILE_BattleDome_Door_PreBattleRoom 0x20A -// gTileset_BattleFrontierOutsideEast -#define METATILE_BattleFrontierOutsideEast_Door 0x3FC -#define METATILE_BattleFrontierOutsideEast_Door_BattleArena 0x291 -#define METATILE_BattleFrontierOutsideEast_Door_BattleTower 0x329 -#define METATILE_BattleFrontierOutsideEast_Door_Sliding 0x396 - -// gTileset_BattleFrontierOutsideWest -#define METATILE_BattleFrontierOutsideWest_Door 0x3FC -#define METATILE_BattleFrontierOutsideWest_Door_BattleDome 0x28A -#define METATILE_BattleFrontierOutsideWest_Door_BattleFactory 0x263 -#define METATILE_BattleFrontierOutsideWest_Door_Sliding 0x396 - // gTileset_BattleFrontier #define METATILE_BattleFrontier_CorridorOpenDoor_Bottom 0x20F #define METATILE_BattleFrontier_CorridorOpenDoor_Top 0x207 @@ -36,6 +24,18 @@ #define METATILE_BattleFrontier_Elevator_Top1 0x32A #define METATILE_BattleFrontier_Elevator_Top2 0x32B +// gTileset_BattleFrontierOutsideEast +#define METATILE_BattleFrontierOutsideEast_Door 0x3FC +#define METATILE_BattleFrontierOutsideEast_Door_BattleArena 0x291 +#define METATILE_BattleFrontierOutsideEast_Door_BattleTower 0x329 +#define METATILE_BattleFrontierOutsideEast_Door_Sliding 0x396 + +// gTileset_BattleFrontierOutsideWest +#define METATILE_BattleFrontierOutsideWest_Door 0x3FC +#define METATILE_BattleFrontierOutsideWest_Door_BattleDome 0x28A +#define METATILE_BattleFrontierOutsideWest_Door_BattleFactory 0x263 +#define METATILE_BattleFrontierOutsideWest_Door_Sliding 0x396 + // gTileset_BattlePalace #define METATILE_BattlePalace_Door 0x219 @@ -272,6 +272,18 @@ #define METATILE_Lavaridge_NormalGrass 0x206 #define METATILE_Lavaridge_RockWall 0x274 +// gTileset_Lilycove +#define METATILE_Lilycove_Door 0x246 +#define METATILE_Lilycove_Door_DeptStore 0x30C +#define METATILE_Lilycove_Door_SafariZone 0x32D +#define METATILE_Lilycove_Door_Wooden 0x28E +#define METATILE_Lilycove_Wailmer0 0x290 +#define METATILE_Lilycove_Wailmer0_Alt 0x298 +#define METATILE_Lilycove_Wailmer1 0x291 +#define METATILE_Lilycove_Wailmer1_Alt 0x299 +#define METATILE_Lilycove_Wailmer2 0x2A0 +#define METATILE_Lilycove_Wailmer3 0x2A1 + // gTileset_LilycoveMuseum #define METATILE_LilycoveMuseum_Painting0_Left 0x25A #define METATILE_LilycoveMuseum_Painting0_Right 0x25B @@ -284,17 +296,31 @@ #define METATILE_LilycoveMuseum_Painting4_Left 0x262 #define METATILE_LilycoveMuseum_Painting4_Right 0x263 -// gTileset_Lilycove -#define METATILE_Lilycove_Door 0x246 -#define METATILE_Lilycove_Door_DeptStore 0x30C -#define METATILE_Lilycove_Door_SafariZone 0x32D -#define METATILE_Lilycove_Door_Wooden 0x28E -#define METATILE_Lilycove_Wailmer0 0x290 -#define METATILE_Lilycove_Wailmer0_Alt 0x298 -#define METATILE_Lilycove_Wailmer1 0x291 -#define METATILE_Lilycove_Wailmer1_Alt 0x299 -#define METATILE_Lilycove_Wailmer2 0x2A0 -#define METATILE_Lilycove_Wailmer3 0x2A1 +// gTileset_Mauville +#define METATILE_Mauville_DeepSand_BottomMid 0x259 +#define METATILE_Mauville_DeepSand_Center 0x251 +#define METATILE_Mauville_Door 0x2AC +#define METATILE_Mauville_Door_BattleTent 0x3D4 +#define METATILE_Mauville_Door_CyclingRoad 0x289 +#define METATILE_Mauville_Door_Verdanturf 0x3A1 +#define METATILE_Mauville_MirageTower_Tile0 0x3D8 +#define METATILE_Mauville_MirageTower_Tile1 0x3D9 +#define METATILE_Mauville_MirageTower_Tile10 0x3E4 +#define METATILE_Mauville_MirageTower_Tile11 0x3E5 +#define METATILE_Mauville_MirageTower_Tile2 0x3DA +#define METATILE_Mauville_MirageTower_Tile3 0x3E0 +#define METATILE_Mauville_MirageTower_Tile4 0x3E1 +#define METATILE_Mauville_MirageTower_Tile5 0x3E2 +#define METATILE_Mauville_MirageTower_Tile6 0x3E8 +#define METATILE_Mauville_MirageTower_Tile7 0x3E9 +#define METATILE_Mauville_MirageTower_Tile8 0x3EA +#define METATILE_Mauville_MirageTower_Tile9 0x3F0 +#define METATILE_Mauville_MirageTower_TileA 0x3F1 +#define METATILE_Mauville_MirageTower_TileB 0x3F2 +#define METATILE_Mauville_MirageTower_TileC 0x3DB +#define METATILE_Mauville_MirageTower_TileD 0x3DC +#define METATILE_Mauville_MirageTower_TileE 0x3DD +#define METATILE_Mauville_MirageTower_TileF 0x3E3 // gTileset_MauvilleGym #define METATILE_MauvilleGym_FloorTile 0x21A @@ -325,38 +351,16 @@ #define METATILE_MauvilleGym_RedBeamV1_On 0x241 #define METATILE_MauvilleGym_RedBeamV2_On 0x249 -// gTileset_Mauville -#define METATILE_Mauville_DeepSand_BottomMid 0x259 -#define METATILE_Mauville_DeepSand_Center 0x251 -#define METATILE_Mauville_Door 0x2AC -#define METATILE_Mauville_Door_BattleTent 0x3D4 -#define METATILE_Mauville_Door_CyclingRoad 0x289 -#define METATILE_Mauville_Door_Verdanturf 0x3A1 -#define METATILE_Mauville_MirageTower_Tile0 0x3D8 -#define METATILE_Mauville_MirageTower_Tile1 0x3D9 -#define METATILE_Mauville_MirageTower_Tile10 0x3E4 -#define METATILE_Mauville_MirageTower_Tile11 0x3E5 -#define METATILE_Mauville_MirageTower_Tile2 0x3DA -#define METATILE_Mauville_MirageTower_Tile3 0x3E0 -#define METATILE_Mauville_MirageTower_Tile4 0x3E1 -#define METATILE_Mauville_MirageTower_Tile5 0x3E2 -#define METATILE_Mauville_MirageTower_Tile6 0x3E8 -#define METATILE_Mauville_MirageTower_Tile7 0x3E9 -#define METATILE_Mauville_MirageTower_Tile8 0x3EA -#define METATILE_Mauville_MirageTower_Tile9 0x3F0 -#define METATILE_Mauville_MirageTower_TileA 0x3F1 -#define METATILE_Mauville_MirageTower_TileB 0x3F2 -#define METATILE_Mauville_MirageTower_TileC 0x3DB -#define METATILE_Mauville_MirageTower_TileD 0x3DC -#define METATILE_Mauville_MirageTower_TileE 0x3DD -#define METATILE_Mauville_MirageTower_TileF 0x3E3 - // gTileset_MeteorFalls #define METATILE_MeteorFalls_CaveEntrance_Bottom 0x24E #define METATILE_MeteorFalls_CaveEntrance_Left 0x24D #define METATILE_MeteorFalls_CaveEntrance_Right 0x24F #define METATILE_MeteorFalls_CaveEntrance_Top 0x246 +// gTileset_Mossdeep +#define METATILE_Mossdeep_Door 0x2A1 +#define METATILE_Mossdeep_Door_SpaceCenter 0x2ED + // gTileset_MossdeepGameCorner #define METATILE_MossdeepGameCorner_CounterClosed_Bottom 0x232 #define METATILE_MossdeepGameCorner_CounterClosed_Top 0x22A @@ -366,10 +370,6 @@ // gTileset_MossdeepGym #define METATILE_MossdeepGym_YellowArrow_Right 0x250 -// gTileset_Mossdeep -#define METATILE_Mossdeep_Door 0x2A1 -#define METATILE_Mossdeep_Door_SpaceCenter 0x2ED - // gTileset_Pacifidlog #define METATILE_Pacifidlog_Door 0x21A #define METATILE_Pacifidlog_FloatingLogs_HorizontalLeft 0x250 @@ -388,6 +388,11 @@ #define METATILE_Pacifidlog_SubmergedLogs_VerticalBottom 0x262 #define METATILE_Pacifidlog_SubmergedLogs_VerticalTop 0x25A +// gTileset_Petalburg +#define METATILE_Petalburg_Door_BirchsLab 0x249 +#define METATILE_Petalburg_Door_Littleroot 0x248 +#define METATILE_Petalburg_Door_Oldale 0x287 + // gTileset_PetalburgGym #define METATILE_PetalburgGym_Door 0x224 #define METATILE_PetalburgGym_RoomEntrance_Left 0x210 @@ -398,11 +403,6 @@ #define METATILE_PetalburgGym_SlidingDoor_Frame3 0x21B #define METATILE_PetalburgGym_SlidingDoor_Frame4 0x21C -// gTileset_Petalburg -#define METATILE_Petalburg_Door_BirchsLab 0x249 -#define METATILE_Petalburg_Door_Littleroot 0x248 -#define METATILE_Petalburg_Door_Oldale 0x287 - // gTileset_PokemonCenter #define METATILE_PokemonCenter_CounterBarrier 0x25D #define METATILE_PokemonCenter_Door_CableClub 0x264 @@ -431,14 +431,6 @@ #define METATILE_PokemonCenter_Floor_ShadowTop 0x21E #define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC -// gTileset_RSMossdeepGym -#define METATILE_RSMossdeepGym_RedArrow_Down 0x205 -#define METATILE_RSMossdeepGym_RedArrow_Left 0x20C -#define METATILE_RSMossdeepGym_RedArrow_Right 0x204 -#define METATILE_RSMossdeepGym_RedArrow_Up 0x20D -#define METATILE_RSMossdeepGym_Switch_Down 0x239 -#define METATILE_RSMossdeepGym_Switch_Up 0x238 - // gTileset_Rustboro #define METATILE_Rustboro_Door_Gray 0x21F #define METATILE_Rustboro_Door_Tan 0x22F @@ -726,11 +718,6 @@ #define METATILE_Slateport_Door 0x2DC #define METATILE_Slateport_Door_BattleTent 0x393 -// gTileset_SootopolisGym -#define METATILE_SootopolisGym_Ice_Broken 0x206 -#define METATILE_SootopolisGym_Ice_Cracked 0x20E -#define METATILE_SootopolisGym_Stairs 0x207 - // gTileset_Sootopolis #define METATILE_Sootopolis_Door 0x21E #define METATILE_Sootopolis_Door_Closed 0x248 @@ -738,6 +725,11 @@ #define METATILE_Sootopolis_GymDoor_Closed 0x250 #define METATILE_Sootopolis_RoughWater 0x290 +// gTileset_SootopolisGym +#define METATILE_SootopolisGym_Ice_Broken 0x206 +#define METATILE_SootopolisGym_Ice_Cracked 0x20E +#define METATILE_SootopolisGym_Stairs 0x207 + // gTileset_TrainerHill #define METATILE_TrainerHill_CounterDoor 0x334 #define METATILE_TrainerHill_Door_Elevator_Lobby 0x32C @@ -787,4 +779,12 @@ #define METATILE_Underwater_FloorShadow 0x228 #define METATILE_Underwater_RockWall 0x21E +// Other +#define METATILE_RSMossdeepGym_RedArrow_Down 0x205 +#define METATILE_RSMossdeepGym_RedArrow_Left 0x20C +#define METATILE_RSMossdeepGym_RedArrow_Right 0x204 +#define METATILE_RSMossdeepGym_RedArrow_Up 0x20D +#define METATILE_RSMossdeepGym_Switch_Down 0x239 +#define METATILE_RSMossdeepGym_Switch_Up 0x238 + #endif // GUARD_METATILE_LABELS_H From 8cab1b7094999e7b8c95fc47d23fbdc76b26b471 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 18 Jan 2024 17:07:17 -0300 Subject: [PATCH 09/99] Fixed braces style --- gflib/malloc.c | 34 +++++++++++++++++++++++----------- src/battle_anim_ghost.c | 6 ++++-- src/berry_blender.c | 3 ++- src/contest_effect.c | 3 ++- src/decompress.c | 15 ++++++++++----- src/decoration.c | 6 ++++-- src/dodrio_berry_picking.c | 21 ++++++++++++++------- src/mini_printf.c | 15 ++++++++++----- src/slot_machine.c | 3 ++- 9 files changed, 71 insertions(+), 35 deletions(-) diff --git a/gflib/malloc.c b/gflib/malloc.c index f54c751a4c..829877d892 100644 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -55,18 +55,24 @@ void *AllocInternal(void *heapStart, u32 size) if (size & 3) size = 4 * ((size / 4) + 1); - for (;;) { + for (;;) + { // Loop through the blocks looking for unused block that's big enough. - if (!pos->flag) { + if (!pos->flag) + { foundBlockSize = pos->size; - if (foundBlockSize >= size) { - if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) { + if (foundBlockSize >= size) + { + if (foundBlockSize - size < 2 * sizeof(struct MemBlock)) + { // The block isn't much bigger than the requested size, // so just use it. pos->flag = TRUE; - } else { + } + else + { // The block is significantly bigger than the requested // size, so split the rest into a separate block. foundBlockSize -= sizeof(struct MemBlock); @@ -98,15 +104,18 @@ void *AllocInternal(void *heapStart, u32 size) void FreeInternal(void *heapStart, void *pointer) { - if (pointer) { + if (pointer) + { struct MemBlock *head = (struct MemBlock *)heapStart; struct MemBlock *block = (struct MemBlock *)((u8 *)pointer - sizeof(struct MemBlock)); block->flag = FALSE; // If the freed block isn't the last one, merge with the next block // if it's not in use. - if (block->next != head) { - if (!block->next->flag) { + if (block->next != head) + { + if (!block->next->flag) + { block->size += sizeof(struct MemBlock) + block->next->size; block->next->magic = 0; block->next = block->next->next; @@ -117,8 +126,10 @@ void FreeInternal(void *heapStart, void *pointer) // If the freed block isn't the first one, merge with the previous block // if it's not in use. - if (block != head) { - if (!block->prev->flag) { + if (block != head) + { + if (!block->prev->flag) + { block->prev->next = block->next; if (block->next != head) @@ -135,7 +146,8 @@ void *AllocZeroedInternal(void *heapStart, u32 size) { void *mem = AllocInternal(heapStart, size); - if (mem != NULL) { + if (mem != NULL) + { if (size & 3) size = 4 * ((size / 4) + 1); diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index fed1325bc3..d6afd4c304 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -628,11 +628,13 @@ static void AnimTask_SpiteTargetShadow_Step1(u8 taskId) task->data[3] = 16; task->data[13] = GetAnimBattlerSpriteId(ANIM_TARGET); task->data[4] = OBJ_PLTT_ID2(gSprites[task->data[13]].oam.paletteNum); - if (position == 1) { + if (position == 1) + { u16 mask = DISPCNT_BG1_ON; mask2 = mask; } - else { + else + { u16 mask = DISPCNT_BG2_ON; mask2 = mask; } diff --git a/src/berry_blender.c b/src/berry_blender.c index 97262a4e2f..a91cafb0fb 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -2050,7 +2050,8 @@ static void UpdateSpeedFromHit(u16 cmd) switch (cmd) { case LINKCMD_BLENDER_SCORE_BEST: - if (sBerryBlender->speed < 1500) { + if (sBerryBlender->speed < 1500) + { sBerryBlender->speed += (384 / sNumPlayersToSpeedDivisor[sBerryBlender->numPlayers]); } else diff --git a/src/contest_effect.c b/src/contest_effect.c index b927943036..24de8e1692 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -138,7 +138,8 @@ static void ContestEffect_StartleFrontMon(void) u8 idx = 0; u8 a = eContestAppealResults.contestant; - if (eContestAppealResults.turnOrder[a] != 0) { + if (eContestAppealResults.turnOrder[a] != 0) + { int i; for (i = 0; i < CONTESTANT_COUNT; i++) diff --git a/src/decompress.c b/src/decompress.c index 8452f340ed..55807e89bb 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -214,7 +214,8 @@ static void UNUSED StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u // While the remaining space will be filled with actual data if (object_size == 6) { - for (k = 0; k < 256; k++) { + for (k = 0; k < 256; k++) + { *dest = 0; dest++; } @@ -224,14 +225,16 @@ static void UNUSED StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u { if (object_size == 6) { - for (k = 0; k < 32; k++) { + for (k = 0; k < 32; k++) + { *dest = 0; dest++; } } // Copy tile data - for (k = 0; k < 32 * object_size; k++) { + for (k = 0; k < 32 * object_size; k++) + { *dest = *src; src++; dest++; @@ -239,7 +242,8 @@ static void UNUSED StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u if (object_size == 6) { - for (k = 0; k < 32; k++) { + for (k = 0; k < 32; k++) + { *dest = 0; dest++; } @@ -248,7 +252,8 @@ static void UNUSED StitchObjectsOn8x8Canvas(s32 object_size, s32 object_count, u if (object_size == 6) { - for (k = 0; k < 256; k++) { + for (k = 0; k < 256; k++) + { *dest = 0; dest++; } diff --git a/src/decoration.c b/src/decoration.c index f4fae6cc5e..18d6e2e680 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1340,7 +1340,8 @@ static void DecorationItemsMenuAction_AttemptPlace(u8 taskId) else { ConvertIntToDecimalStringN(gStringVar1, sDecorationContext.size, STR_CONV_MODE_RIGHT_ALIGN, 2); - if (sDecorationContext.isPlayerRoom == FALSE) { + if (sDecorationContext.isPlayerRoom == FALSE) + { StringExpandPlaceholders(gStringVar4, gText_NoMoreDecorations); } else @@ -2254,7 +2255,8 @@ static void Task_PutAwayDecoration(u8 taskId) gTasks[taskId].tState = 1; break; case 1: - if (!gPaletteFade.active) { + if (!gPaletteFade.active) + { DrawWholeMapView(); ScriptContext_SetupScript(SecretBase_EventScript_PutAwayDecoration); ClearDialogWindowAndFrame(0, TRUE); diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 1b4500002c..ce1877c6cd 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -1091,32 +1091,39 @@ static void InitResults_Member(void) { u8 i; - switch (sGame->state) { + switch (sGame->state) + { case 0: - if (SendBlock(0, sGame->berryResults[sGame->timer], sizeof(sGame->berryResults))) { + if (SendBlock(0, sGame->berryResults[sGame->timer], sizeof(sGame->berryResults))) + { sGame->playersReceived = 0; sGame->state++; } break; case 1: - if (IsLinkTaskFinished()) { + if (IsLinkTaskFinished()) + { sGame->state++; } break; case 2: - if (AllLinkBlocksReceived()) { - for (i = 0; i < sGame->numPlayers; i++) { + if (AllLinkBlocksReceived()) + { + for (i = 0; i < sGame->numPlayers; i++) + { memcpy(sGame->berryResults, gBlockRecvBuffer, sizeof(sGame->berryResults)); sGame->playersReceived = sGame->numPlayers; } } - if (sGame->playersReceived >= sGame->numPlayers) { + if (sGame->playersReceived >= sGame->numPlayers) + { sGame->timer++; sGame->state++; } break; default: - if (WaitFanfare(TRUE)) { + if (WaitFanfare(TRUE)) + { sGame->maxBerriesPickedInRow = sGame->berryResults[sGame->multiplayerId][BERRY_IN_ROW]; SetGameFunc(FUNC_RESULTS); FadeOutAndPlayNewMapMusic(MUS_RG_VICTORY_WILD, 4); diff --git a/src/mini_printf.c b/src/mini_printf.c index 2a8c6e5cb7..cab78d7611 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -102,8 +102,10 @@ static s32 _putsAscii(char *s, s32 len, void *buf) p0 = b->buffer; /* Copy to buffer */ - for (i = 0; i < len; i++) { - if(b->pbuffer == b->buffer + b->buffer_len - 1) { + for (i = 0; i < len; i++) + { + if(b->pbuffer == b->buffer + b->buffer_len - 1) + { break; } *(b->pbuffer ++) = s[i]; @@ -125,8 +127,10 @@ static s32 _putsEncoded(char *s, s32 len, void *buf) p0 = b->buffer; /* Copy to buffer */ - for (i = 0; i < len; i++) { - if(b->pbuffer == b->buffer + b->buffer_len - 1) { + for (i = 0; i < len; i++) + { + if(b->pbuffer == b->buffer + b->buffer_len - 1) + { break; } *(b->pbuffer ++) = mini_pchar_decode(s[i]); @@ -191,7 +195,8 @@ static s32 mini_pad(char* ptr, s32 len, char pad_char, s32 pad_to, char *buffer) char * pbuffer = buffer; if(pad_to == 0) pad_to = len; - if (len > pad_to) { + if (len > pad_to) + { len = pad_to; overflow = TRUE; } diff --git a/src/slot_machine.c b/src/slot_machine.c index 5ae0f9f1d5..4941ec0c7e 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -3324,7 +3324,8 @@ static void SpriteCB_FlashMatchingLines(struct Sprite *sprite) if (sprite->sNumFullFlashes) sprite->sNumFullFlashes--; } - else if (sprite->sColor >= maxColorChange) { + else if (sprite->sColor >= maxColorChange) + { // Reached peak darkness, reverse sprite->sColorIncr = -sprite->sColorIncr; } From e85750bb55d040e829a141f9fe23732a952a4361 Mon Sep 17 00:00:00 2001 From: Sierraffinity Date: Sat, 27 Jan 2024 14:29:31 -0800 Subject: [PATCH 10/99] gbagfx bit depth upconversion fix --- tools/gbagfx/convert_png.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/gbagfx/convert_png.c b/tools/gbagfx/convert_png.c index c9c240efbb..58371229c0 100644 --- a/tools/gbagfx/convert_png.c +++ b/tools/gbagfx/convert_png.c @@ -62,7 +62,7 @@ static unsigned char *ConvertBitDepth(unsigned char *src, int srcBitDepth, int d for (j = 8 - srcBitDepth; j >= 0; j -= srcBitDepth) { - unsigned char pixel = (srcByte >> j) % (1 << destBitDepth); + unsigned char pixel = ((srcByte >> j) % (1 << srcBitDepth)) % (1 << destBitDepth); *dest |= pixel << destBit; destBit -= destBitDepth; if (destBit < 0) From b98e044ce914a9068ee5e763831179b83398b585 Mon Sep 17 00:00:00 2001 From: Sierraffinity Date: Sat, 27 Jan 2024 19:29:29 -0800 Subject: [PATCH 11/99] jsonproc: filter out every non-alphanumeric character --- tools/jsonproc/jsonproc.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp index 23056a5ff3..9ef23cd43e 100755 --- a/tools/jsonproc/jsonproc.cpp +++ b/tools/jsonproc/jsonproc.cpp @@ -105,10 +105,13 @@ int main(int argc, char *argv[]) }); env.add_callback("cleanString", 1, [](Arguments& args) { - string badChars = ".'{} \n\t-\u00e9"; string str = args.at(0)->get(); for (unsigned int i = 0; i < str.length(); i++) { - if (badChars.find(str[i]) != std::string::npos) { + // This code is not Unicode aware, so UTF-8 is not easily parsable without introducing + // another library. Just filter out any non-alphanumeric characters for now. + // TODO: proper Unicode string normalization + if ((i == 0 && isdigit(str[i])) + || !isalnum(str[i])) { str[i] = '_'; } } From e2eca97b02c322f16e023e9e0915739640d1a74e Mon Sep 17 00:00:00 2001 From: sbird Date: Sun, 28 Jan 2024 12:36:36 +0100 Subject: [PATCH 12/99] fix(linking): link gflib/malloc.c at top of EWRAM in ld_script_modern.ld --- ld_script_modern.ld | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ld_script_modern.ld b/ld_script_modern.ld index 4ccbfbaa0f..4f4bdae492 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -15,6 +15,11 @@ SECTIONS { ewram 0x2000000 (NOLOAD) : ALIGN(4) { + /* + We link malloc.o here to prevent `gHeap` from landing in the middle of EWRAM. + Otherwise this causes corruption issues on some ld versions + */ + gflib/malloc.o(ewram_data); src/*.o(ewram_data); gflib/*.o(ewram_data); } > EWRAM From 5be69b2713df03e9ca991c419f193bf972809a90 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Tue, 30 Jan 2024 11:46:19 -0500 Subject: [PATCH 13/99] Merge slot machine smoke SubspriteTable arrays --- src/slot_machine.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/slot_machine.c b/src/slot_machine.c index 4941ec0c7e..34c7ef8849 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -6985,7 +6985,7 @@ static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Win[] = {ARRAY_COUNT(sSubsprites_DigitalDisplay_Win), sSubsprites_DigitalDisplay_Win} }; -static const struct Subsprite sSubsprites_DigitalDisplay_Smoke[] = +static const struct Subsprite sSubsprites_DigitalDisplay_SmokeBig[] = { { .x = -16, @@ -6997,7 +6997,7 @@ static const struct Subsprite sSubsprites_DigitalDisplay_Smoke[] = } }; -static const struct Subsprite sSubsprites_DigitalDisplay_Unused2[] = +static const struct Subsprite sSubsprites_DigitalDisplay_SmokeSmall[] = { { .x = -8, @@ -7011,12 +7011,8 @@ static const struct Subsprite sSubsprites_DigitalDisplay_Unused2[] = static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Smoke[] = { - {ARRAY_COUNT(sSubsprites_DigitalDisplay_Smoke), sSubsprites_DigitalDisplay_Smoke} -}; - -static const struct SubspriteTable sSubspriteTable_DigitalDisplay_Unused2[] = -{ - {ARRAY_COUNT(sSubsprites_DigitalDisplay_Unused2), sSubsprites_DigitalDisplay_Unused2} + {ARRAY_COUNT(sSubsprites_DigitalDisplay_SmokeBig), sSubsprites_DigitalDisplay_SmokeBig}, + {ARRAY_COUNT(sSubsprites_DigitalDisplay_SmokeSmall), sSubsprites_DigitalDisplay_SmokeSmall} }; /* From e87a69a5e7fd9cf2e51bcdff021de6d51d3426e6 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2024 22:31:20 +0100 Subject: [PATCH 14/99] Fix HideMapNamePopUpWindow possible overflow --- ld_script_modern.ld | 5 ----- src/map_name_popup.c | 9 +++++++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ld_script_modern.ld b/ld_script_modern.ld index 4f4bdae492..4ccbfbaa0f 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -15,11 +15,6 @@ SECTIONS { ewram 0x2000000 (NOLOAD) : ALIGN(4) { - /* - We link malloc.o here to prevent `gHeap` from landing in the middle of EWRAM. - Otherwise this causes corruption issues on some ld versions - */ - gflib/malloc.o(ewram_data); src/*.o(ewram_data); gflib/*.o(ewram_data); } > EWRAM diff --git a/src/map_name_popup.c b/src/map_name_popup.c index eed2f2b714..d004b18d56 100644 --- a/src/map_name_popup.c +++ b/src/map_name_popup.c @@ -317,8 +317,13 @@ void HideMapNamePopUpWindow(void) { if (FuncIsActiveTask(Task_MapNamePopUpWindow)) { - ClearStdWindowAndFrame(GetMapNamePopUpWindowId(), TRUE); - RemoveMapNamePopUpWindow(); + #ifdef UBFIX + if (GetMapNamePopUpWindowId() != WINDOW_NONE) + #endif // UBFIX + { + ClearStdWindowAndFrame(GetMapNamePopUpWindowId(), TRUE); + RemoveMapNamePopUpWindow(); + } SetGpuReg_ForcedBlank(REG_OFFSET_BG0VOFS, 0); DestroyTask(sPopupTaskId); } From 132ca1be145176893efe4ff31e7794cfa890ddc2 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 2 Feb 2024 22:57:02 +0100 Subject: [PATCH 15/99] Change Safe Div to explicitly check b != 0 --- include/global.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/global.h b/include/global.h index 1ea3b65d64..658af43da7 100644 --- a/include/global.h +++ b/include/global.h @@ -80,7 +80,7 @@ // Used in cases where division by 0 can occur in the retail version. // Avoids invalid opcodes on some emulators, and the otherwise UB. #ifdef UBFIX -#define SAFE_DIV(a, b) ((b) ? (a) / (b) : 0) +#define SAFE_DIV(a, b) (((b) != 0) ? (a) / (b) : 0) #else #define SAFE_DIV(a, b) ((a) / (b)) #endif From 3342fdafc2f51825e7b05ae48aed3663eefc5f48 Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Sat, 10 Feb 2024 05:32:03 -0500 Subject: [PATCH 16/99] add missing constant --- src/pokedex_cry_screen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 2c352c67a0..437ef8cf5a 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -362,7 +362,7 @@ static void BufferCryWaveformSegment(void) else baseBuffer = gSoundInfo.pcmBuffer + (gSoundInfo.pcmDmaPeriod + 1 - gPcmDmaCounter) * gSoundInfo.pcmSamplesPerVBlank; - buffer = baseBuffer + 0x630; + buffer = baseBuffer + PCM_DMA_BUF_SIZE; for (i = 0; i < ARRAY_COUNT(sDexCryScreen->cryWaveformBuffer); i++) sDexCryScreen->cryWaveformBuffer[i] = buffer[i * 2] * 2; } From 7da5cb421ecd65d5b607158feebde53728e1171c Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 6 Mar 2024 16:13:06 +0100 Subject: [PATCH 17/99] Make sure gHeap is always aligned --- gflib/malloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gflib/malloc.c b/gflib/malloc.c index 829877d892..8573611bb9 100644 --- a/gflib/malloc.c +++ b/gflib/malloc.c @@ -4,7 +4,7 @@ static void *sHeapStart; static u32 sHeapSize; -EWRAM_DATA u8 gHeap[HEAP_SIZE] = {0}; +ALIGNED(4) EWRAM_DATA u8 gHeap[HEAP_SIZE] = {0}; #define MALLOC_SYSTEM_ID 0xA3A3 From 9e67594dcea5f69c5dc264509a442bd43eba871e Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 8 Mar 2024 16:19:04 +0100 Subject: [PATCH 18/99] Simplify weirdly matching division/substraction code --- src/battle_anim_effects_2.c | 13 ++----------- src/battle_anim_fight.c | 2 +- src/battle_anim_rock.c | 9 +-------- src/battle_intro.c | 4 ++-- src/international_string_util.c | 5 +---- src/pokemon_animation.c | 19 +++++++------------ 6 files changed, 14 insertions(+), 38 deletions(-) mode change 100755 => 100644 src/battle_anim_effects_2.c diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c old mode 100755 new mode 100644 index d26e0ba4c7..3d2e72cacb --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -3673,7 +3673,6 @@ static void AnimTask_UproarDistortion_Step(u8 taskId) static void AnimJaggedMusicNote(struct Sprite *sprite) { - int var1; u8 battler = !gBattleAnimArgs[0] ? gBattleAnimAttacker : gBattleAnimTarget; if (GetBattlerSide(battler) == B_SIDE_OPPONENT) @@ -3684,16 +3683,8 @@ static void AnimJaggedMusicNote(struct Sprite *sprite) sprite->data[0] = 0; sprite->data[1] = (u16)sprite->x << 3; sprite->data[2] = (u16)sprite->y << 3; - - var1 = gBattleAnimArgs[1] << 3; - if (var1 < 0) - var1 += 7; - sprite->data[3] = var1 >> 3; - - var1 = gBattleAnimArgs[2] << 3; - if (var1 < 0) - var1 += 7; - sprite->data[4] = var1 >> 3; + sprite->data[3] = (gBattleAnimArgs[1] << 3) / 8; + sprite->data[4] = (gBattleAnimArgs[2] << 3) / 8; sprite->oam.tileNum += gBattleAnimArgs[3] * 16; sprite->callback = AnimJaggedMusicNote_Step; diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c index 764a951ef8..cbefb41f1e 100644 --- a/src/battle_anim_fight.c +++ b/src/battle_anim_fight.c @@ -493,7 +493,7 @@ static void AnimFistOrFootRandomPos(struct Sprite *sprite) y *= -1; if (GET_BATTLER_SIDE2(battler) == B_SIDE_PLAYER) - y += 0xFFF0; + y -= 16; sprite->x += x; sprite->y += y; diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index f9253675ca..bb8c3aa2f6 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -558,7 +558,6 @@ void AnimTask_Rollout(u8 taskId) { u16 var0, var1, var2, var3; u8 rolloutCounter; - int var5; s16 pan1, pan2; struct Task *task; @@ -582,13 +581,7 @@ void AnimTask_Rollout(u8 taskId) task->data[11] = 0; task->data[9] = 0; task->data[12] = 1; - - var5 = task->data[8]; - if (var5 < 0) - var5 += 7; - - task->data[10] = (var5 >> 3) - 1; - + task->data[10] = (task->data[8] / 8) - 1; task->data[2] = var0 * 8; task->data[3] = var1 * 8; task->data[4] = ((var2 - var0) * 8) / task->data[8]; diff --git a/src/battle_intro.c b/src/battle_intro.c index 5df697e3ae..571c5e85a2 100644 --- a/src/battle_intro.c +++ b/src/battle_intro.c @@ -196,12 +196,12 @@ static void BattleIntroSlide1(u8 taskId) { if (gTasks[taskId].tTerrain == BATTLE_TERRAIN_LONG_GRASS) { - if (gBattle_BG1_Y != 0xFFB0) + if (gBattle_BG1_Y != (u16)(-80)) gBattle_BG1_Y -= 2; } else { - if (gBattle_BG1_Y != 0xFFC8) + if (gBattle_BG1_Y != (u16)(-56)) gBattle_BG1_Y -= 1; } } diff --git a/src/international_string_util.c b/src/international_string_util.c index 457e3260be..6186bd116c 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -76,10 +76,7 @@ int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu) } finalWidth = maxWidth + listMenu->item_X + 9; - if (finalWidth < 0) - finalWidth += 7; - - finalWidth >>= 3; + finalWidth /= 8; if (finalWidth > 28) finalWidth = 28; diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index 25c7778f8b..c5ef33878f 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -4969,29 +4969,24 @@ static void ShrinkGrowVibrate(struct Sprite *sprite) } else { - u8 posY_unsigned; - s8 posY_signed; - s32 posY; - s16 index = (u16)(sprite->data[2] % sprite->data[6] * 256) / sprite->data[6] % 256; + s8 sinY; + u16 y; + s16 index = ((u16)(sprite->data[2] % sprite->data[6] * 256) / sprite->data[6]) % 256; if (sprite->data[2] % 2 == 0) { sprite->data[4] = Sin(index, 32) + 256; sprite->data[5] = Sin(index, 32) + 256; - posY_unsigned = Sin(index, 32); - posY_signed = posY_unsigned; + sinY = Sin(index, 32); } else { sprite->data[4] = Sin(index, 8) + 256; sprite->data[5] = Sin(index, 8) + 256; - posY_unsigned = Sin(index, 8); - posY_signed = posY_unsigned; + sinY = Sin(index, 8); } - posY = posY_signed; - if (posY < 0) - posY += 7; - sprite->y2 = (u32)(posY) >> 3; + y = sinY / 8; + sprite->y2 = y; HandleSetAffineData(sprite, sprite->data[4], sprite->data[5], 0); } From 82f8636502afa4ed0960eb7457551538d38a5457 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 9 Mar 2024 20:06:58 +0100 Subject: [PATCH 19/99] Simplify division in berry_crush and field weather functions --- src/berry_crush.c | 7 +------ src/field_weather.c | 7 +------ 2 files changed, 2 insertions(+), 12 deletions(-) mode change 100755 => 100644 src/berry_crush.c diff --git a/src/berry_crush.c b/src/berry_crush.c old mode 100755 new mode 100644 index 4e789f27a4..05e708162d --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -1373,7 +1373,6 @@ static void CreateBerrySprites(struct BerryCrushGame *game, struct BerryCrushGam u8 spriteId; s16 distance, var1; s16 *data; - s32 amplitude; s16 speed; u32 var2; @@ -1395,11 +1394,7 @@ static void CreateBerrySprites(struct BerryCrushGame *game, struct BerryCrushGam sYAccel = 32; sBitfield = 112; // Setting bits in MASK_TARGET_Y distance = gfx->playerCoords[i]->berryXDest - gfx->playerCoords[i]->berryXOffset; - amplitude = distance; - if (distance < 0) - amplitude += 3; - - sAmplitude = amplitude >> 2; + sAmplitude = distance / 4; distance *= 128; var2 = speed + 32; var2 = var2 / 2; diff --git a/src/field_weather.c b/src/field_weather.c index 5ca9075250..bc86bcdc7d 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -277,7 +277,6 @@ static void BuildColorMaps(void) u16 brightnessDelta; u16 colorMapIndex; u16 baseBrightness; - u32 remainingBrightness; s16 diff; sPaletteColorMapTypes = sBasePaletteColorMapTypes; @@ -305,11 +304,7 @@ static void BuildColorMaps(void) } baseBrightness = curBrightness; - remainingBrightness = 0x1f00 - curBrightness; - if ((0x1f00 - curBrightness) < 0) - remainingBrightness += 0xf; - - brightnessDelta = remainingBrightness / (NUM_WEATHER_COLOR_MAPS - 3); + brightnessDelta = (0x1f00 - curBrightness) / (NUM_WEATHER_COLOR_MAPS - 3); if (colorVal < 12) { // For shadows (color values < 12), the remaining color mappings are From 927f098cf5ea42fb67ed045cd00d13e772eb7a33 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Mon, 11 Mar 2024 01:41:07 -0300 Subject: [PATCH 20/99] Renamed setmodernfatefulencounter and checkmodernfatefulencounter for consistency reasons --- data/script_cmd_table.inc | 4 ++-- src/scrcmd.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index f50ce5322b..e73a39a5dd 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -205,8 +205,8 @@ gScriptCmdTable:: .4byte ScrCmd_nop1 @ 0xca .4byte ScrCmd_nop1 @ 0xcb .4byte ScrCmd_nop1 @ 0xcc - .4byte ScrCmd_setmonmodernfatefulencounter @ 0xcd - .4byte ScrCmd_checkmonmodernfatefulencounter @ 0xce + .4byte ScrCmd_setmodernfatefulencounter @ 0xcd + .4byte ScrCmd_checkmodernfatefulencounter @ 0xce .4byte ScrCmd_trywondercardscript @ 0xcf .4byte ScrCmd_nop1 @ 0xd0 .4byte ScrCmd_warpspinenter @ 0xd1 diff --git a/src/scrcmd.c b/src/scrcmd.c index 147a11b869..218be539f5 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -2207,7 +2207,7 @@ bool8 ScrCmd_lockfortrainer(struct ScriptContext *ctx) } // This command will set a Pokémon's modernFatefulEncounter bit; there is no similar command to clear it. -bool8 ScrCmd_setmonmodernfatefulencounter(struct ScriptContext *ctx) +bool8 ScrCmd_setmodernfatefulencounter(struct ScriptContext *ctx) { bool8 isModernFatefulEncounter = TRUE; u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); @@ -2216,7 +2216,7 @@ bool8 ScrCmd_setmonmodernfatefulencounter(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_checkmonmodernfatefulencounter(struct ScriptContext *ctx) +bool8 ScrCmd_checkmodernfatefulencounter(struct ScriptContext *ctx) { u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); From 7ee921e9dae948713f94c5f286855e3001f05a3f Mon Sep 17 00:00:00 2001 From: pkmnsnfrn Date: Thu, 4 Apr 2024 16:17:48 -0400 Subject: [PATCH 21/99] Added BUGFIX for groundEffectsOnMove when the player stops Surfing --- src/field_player_avatar.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 04aa5383bd..1f0708af22 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -1663,6 +1663,10 @@ static void Task_WaitStopSurfing(u8 taskId) gPlayerAvatar.preventStep = FALSE; UnlockPlayerFieldControls(); DestroySprite(&gSprites[playerObjEvent->fieldEffectSpriteId]); +#ifdef BUGFIX + // If this is not defined but the player steps into grass from surfing, they will appear over the grass instead of in the grass. + playerObjEvent->triggerGroundEffectsOnMove = TRUE; +#endif DestroyTask(taskId); } } From 71b8d2039732554235cee49f765d0a0dd7f03dff Mon Sep 17 00:00:00 2001 From: pkmnsnfrn Date: Thu, 4 Apr 2024 16:21:34 -0400 Subject: [PATCH 22/99] Replaced magic numbers regarding triggerGroundEffectsOnMove to TRUE / FALSE --- src/event_object_movement.c | 4 ++-- src/field_effect.c | 2 +- src/overworld.c | 4 ++-- src/trainer_see.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 5a746579d4..ece1bfa631 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8077,7 +8077,7 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite GetAllGroundEffectFlags_OnSpawn(objEvent, &flags); SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); DoFlaggedGroundEffects(objEvent, sprite, flags); - objEvent->triggerGroundEffectsOnMove = 0; + objEvent->triggerGroundEffectsOnMove = FALSE; objEvent->disableCoveringGroundEffects = 0; } } @@ -8094,7 +8094,7 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr SetObjectEventSpriteOamTableForLongGrass(objEvent, sprite); filters_out_some_ground_effects(objEvent, &flags); DoFlaggedGroundEffects(objEvent, sprite, flags); - objEvent->triggerGroundEffectsOnMove = 0; + objEvent->triggerGroundEffectsOnMove = FALSE; objEvent->disableCoveringGroundEffects = 0; } } diff --git a/src/field_effect.c b/src/field_effect.c index 9ef70a1655..d907c3f16d 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -2496,7 +2496,7 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) if (task->data[13] == 0) { task->data[13]++; - objectEvent->triggerGroundEffectsOnMove = 1; + objectEvent->triggerGroundEffectsOnMove = TRUE; sprite->subspriteMode = task->data[14]; } } else diff --git a/src/overworld.c b/src/overworld.c index 2e01a2e52f..e1cb0a1cad 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3050,7 +3050,7 @@ static void SetPlayerFacingDirection(u8 linkPlayerId, u8 facing) { if (facing > FACING_FORCED_RIGHT) { - objEvent->triggerGroundEffectsOnMove = 1; + objEvent->triggerGroundEffectsOnMove = TRUE; } else { @@ -3199,7 +3199,7 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion) sprite = &gSprites[objEvent->spriteId]; sprite->coordOffsetEnabled = TRUE; sprite->data[0] = linkPlayerId; - objEvent->triggerGroundEffectsOnMove = 0; + objEvent->triggerGroundEffectsOnMove = FALSE; } } diff --git a/src/trainer_see.c b/src/trainer_see.c index 88f9215f77..51cc64f4a0 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -595,7 +595,7 @@ static bool8 JumpInPlaceBuriedTrainer(u8 taskId, struct Task *task, struct Objec if (gSprites[task->tOutOfAshSpriteId].animCmdIndex == 2) { trainerObj->fixedPriority = 0; - trainerObj->triggerGroundEffectsOnMove = 1; + trainerObj->triggerGroundEffectsOnMove = TRUE; sprite = &gSprites[trainerObj->spriteId]; sprite->oam.priority = 2; From 3135a1fc2b1461c328c6a11e88d1df6b7a6b1455 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Fri, 5 Apr 2024 17:04:46 -0300 Subject: [PATCH 23/99] Updated value-setting of gMain.inBattle at OpponentHandleEndLinkBattle --- src/battle_controller_opponent.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index e5284f9abc..dc3652b457 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -2007,7 +2007,7 @@ static void OpponentHandleEndLinkBattle(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER)) { - gMain.inBattle = 0; + gMain.inBattle = FALSE; gMain.callback1 = gPreBattleCallback1; SetMainCallback2(gMain.savedCallback); } From f9d690bafeeea422d113ab44297704269abf2f48 Mon Sep 17 00:00:00 2001 From: pkmnsnfrn Date: Fri, 5 Apr 2024 14:58:31 -0700 Subject: [PATCH 24/99] Added fix to Keep the Camera from Making Waves --- src/event_object_movement.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 5a746579d4..d668aa1a08 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -8070,7 +8070,11 @@ static void DoGroundEffects_OnSpawn(struct ObjectEvent *objEvent, struct Sprite { u32 flags; +#ifdef BUGFIX + if (objEvent->triggerGroundEffectsOnMove && objEvent->localId != OBJ_EVENT_ID_CAMERA) +#else if (objEvent->triggerGroundEffectsOnMove) +#endif { flags = 0; UpdateObjectEventElevationAndPriority(objEvent, sprite); @@ -8086,7 +8090,11 @@ static void DoGroundEffects_OnBeginStep(struct ObjectEvent *objEvent, struct Spr { u32 flags; +#ifdef BUGFIX + if (objEvent->triggerGroundEffectsOnMove && objEvent->localId != OBJ_EVENT_ID_CAMERA) +#else if (objEvent->triggerGroundEffectsOnMove) +#endif { flags = 0; UpdateObjectEventElevationAndPriority(objEvent, sprite); @@ -8103,7 +8111,11 @@ static void DoGroundEffects_OnFinishStep(struct ObjectEvent *objEvent, struct Sp { u32 flags; +#ifdef BUGFIX + if (objEvent->triggerGroundEffectsOnStop && objEvent->localId != OBJ_EVENT_ID_CAMERA) +#else if (objEvent->triggerGroundEffectsOnStop) +#endif { flags = 0; UpdateObjectEventElevationAndPriority(objEvent, sprite); From c64453efe50959e6286e984a2a7dda47a1d86831 Mon Sep 17 00:00:00 2001 From: NT_x86 Date: Sat, 13 Apr 2024 10:14:31 +0300 Subject: [PATCH 25/99] Fix poison projectile array being incorrectly combined into three seperate arrays --- src/battle_anim_poison.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/battle_anim_poison.c b/src/battle_anim_poison.c index d9a15c835c..bfe1fc835f 100644 --- a/src/battle_anim_poison.c +++ b/src/battle_anim_poison.c @@ -59,15 +59,7 @@ static const union AnimCmd sAnim_SludgeBombHit[] = static const union AnimCmd *const sAnims_PoisonProjectile[] = { sAnim_PoisonProjectile, -}; - -static const union AnimCmd *const sAnims_AcidPoisonDroplet[] = -{ sAnim_AcidPoisonDroplet, -}; - -static const union AnimCmd *const sAnims_SludgeBombHit[] = -{ sAnim_SludgeBombHit, }; @@ -122,7 +114,7 @@ const struct SpriteTemplate gSludgeBombHitParticleSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineNormal_ObjNormal_16x16, - .anims = sAnims_SludgeBombHit, + .anims = &sAnims_PoisonProjectile[2], .images = NULL, .affineAnims = sAffineAnims_SludgeBombHit, .callback = AnimSludgeBombHitParticle, @@ -145,7 +137,7 @@ const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate = .tileTag = ANIM_TAG_POISON_BUBBLE, .paletteTag = ANIM_TAG_POISON_BUBBLE, .oam = &gOamData_AffineDouble_ObjNormal_16x16, - .anims = sAnims_AcidPoisonDroplet, + .anims = &sAnims_PoisonProjectile[1], .images = NULL, .affineAnims = gAffineAnims_Droplet, .callback = AnimAcidPoisonDroplet, From 2b78a85828eb40b68a0973615665fd22b961bfd9 Mon Sep 17 00:00:00 2001 From: NT_x86 Date: Sat, 13 Apr 2024 13:09:24 +0300 Subject: [PATCH 26/99] Fix hoenn pokedex palette being split in two --- graphics/pokedex/bg_hoenn.pal | 50 ++++++++++++++++++++++++++++- graphics/pokedex/caught_screen.pal | 51 ------------------------------ src/graphics.c | 1 - src/pokedex.c | 2 +- 4 files changed, 50 insertions(+), 54 deletions(-) delete mode 100644 graphics/pokedex/caught_screen.pal diff --git a/graphics/pokedex/bg_hoenn.pal b/graphics/pokedex/bg_hoenn.pal index 569c7821a9..01bd8a3a3d 100644 --- a/graphics/pokedex/bg_hoenn.pal +++ b/graphics/pokedex/bg_hoenn.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -48 +96 123 131 0 255 255 255 222 222 222 @@ -49,3 +49,51 @@ JASC-PAL 49 139 255 189 156 90 0 0 0 +123 131 0 +255 255 255 +255 238 0 +255 189 0 +255 115 0 +98 98 115 +41 57 65 +41 57 106 +0 0 41 +255 255 255 +238 246 57 +255 0 189 +49 213 74 +24 131 32 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +41 57 106 +0 0 41 +255 255 255 +238 246 57 +189 0 0 +74 148 180 +8 90 131 +189 156 90 +0 0 0 +123 131 0 +255 255 255 +197 32 32 +189 189 189 +164 164 164 +98 98 115 +41 57 65 +41 57 106 +0 0 41 +255 255 255 +238 246 57 +255 0 189 +180 205 246 +49 139 255 +189 156 90 +0 0 0 diff --git a/graphics/pokedex/caught_screen.pal b/graphics/pokedex/caught_screen.pal deleted file mode 100644 index 26da98a84c..0000000000 --- a/graphics/pokedex/caught_screen.pal +++ /dev/null @@ -1,51 +0,0 @@ -JASC-PAL -0100 -48 -123 131 0 -255 255 255 -255 238 0 -255 189 0 -255 115 0 -98 98 115 -41 57 65 -41 57 106 -0 0 41 -255 255 255 -238 246 57 -255 0 189 -49 213 74 -24 131 32 -189 156 90 -0 0 0 -123 131 0 -255 255 255 -197 32 32 -189 189 189 -164 164 164 -98 98 115 -41 57 65 -41 57 106 -0 0 41 -255 255 255 -238 246 57 -189 0 0 -74 148 180 -8 90 131 -189 156 90 -0 0 0 -123 131 0 -255 255 255 -197 32 32 -189 189 189 -164 164 164 -98 98 115 -41 57 65 -41 57 106 -0 0 41 -255 255 255 -238 246 57 -255 0 189 -180 205 246 -49 139 255 -189 156 90 -0 0 0 diff --git a/src/graphics.c b/src/graphics.c index 8f1bc89ea6..2612022695 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1230,7 +1230,6 @@ const u16 gFrontierPassMedalsGold_Pal[] = INCBIN_U16("graphics/frontier_pass/gol // Pokédex const u16 gPokedexBgHoenn_Pal[] = INCBIN_U16("graphics/pokedex/bg_hoenn.gbapal"); -const u16 gPokedexCaughtScreen_Pal[] = INCBIN_U16("graphics/pokedex/caught_screen.gbapal"); const u16 gPokedexSearchResults_Pal[] = INCBIN_U16("graphics/pokedex/search_results_bg.gbapal"); const u16 gPokedexBgNational_Pal[] = INCBIN_U16("graphics/pokedex/bg_national.gbapal"); const u32 gPokedexMenu_Gfx[] = INCBIN_U32("graphics/pokedex/menu.4bpp.lz"); diff --git a/src/pokedex.c b/src/pokedex.c index 0d1520a490..09a25b872b 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -4036,7 +4036,7 @@ static void Task_HandleCaughtMonPageInput(u8 taskId) } else { - LoadPalette(gPokedexCaughtScreen_Pal + 1, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(7)); + LoadPalette(gPokedexBgHoenn_Pal + 49, BG_PLTT_ID(3) + 1, PLTT_SIZEOF(7)); } } From 5dbd90b917c2474cd89b45b2c2e33e1544c43b0e Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Fri, 19 Apr 2024 14:17:12 -0400 Subject: [PATCH 27/99] Use Only One Loop in RandomlyGivePartyPokerus (#1991) --- src/pokemon.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 6ee052fda5..2b8f4fc95f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -6038,14 +6038,10 @@ void RandomlyGivePartyPokerus(struct Pokemon *party) do { - do - { - rnd = Random() % PARTY_SIZE; - mon = &party[rnd]; - } - while (!GetMonData(mon, MON_DATA_SPECIES, 0)); + rnd = Random() % PARTY_SIZE; + mon = &party[rnd]; } - while (GetMonData(mon, MON_DATA_IS_EGG, 0)); + while (!GetMonData(mon, MON_DATA_SPECIES, 0) || GetMonData(mon, MON_DATA_IS_EGG, 0)); if (!(CheckPartyHasHadPokerus(party, gBitTable[rnd]))) { From 411d7e617777a3a7e7c60fdaf5d73d39a2695599 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Tue, 14 May 2024 12:48:20 +0200 Subject: [PATCH 28/99] Make AdjustFriendship more readable --- src/pokemon.c | 60 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 2b8f4fc95f..ef8e7e9e05 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5877,16 +5877,11 @@ u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) return retVal; } -#define IS_LEAGUE_BATTLE \ - ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ - && (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_ELITE_FOUR \ - || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_LEADER \ - || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_CHAMPION)) \ - void AdjustFriendship(struct Pokemon *mon, u8 event) { u16 species, heldItem; u8 holdEffect; + s8 mod; if (ShouldSkipFriendshipChange()) return; @@ -5916,26 +5911,43 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) if (friendship > 199) friendshipLevel++; - if ((event != FRIENDSHIP_EVENT_WALKING || !(Random() & 1)) - && (event != FRIENDSHIP_EVENT_LEAGUE_BATTLE || IS_LEAGUE_BATTLE)) + if (event == FRIENDSHIP_EVENT_WALKING) { - s8 mod = sFriendshipEventModifiers[event][friendshipLevel]; - if (mod > 0 && holdEffect == HOLD_EFFECT_FRIENDSHIP_UP) - mod = (150 * mod) / 100; - friendship += mod; - if (mod > 0) - { - if (GetMonData(mon, MON_DATA_POKEBALL, 0) == ITEM_LUXURY_BALL) - friendship++; - if (GetMonData(mon, MON_DATA_MET_LOCATION, 0) == GetCurrentRegionMapSectionId()) - friendship++; - } - if (friendship < 0) - friendship = 0; - if (friendship > MAX_FRIENDSHIP) - friendship = MAX_FRIENDSHIP; - SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); + // 50% chance every 128 steps + if (Random() & 1) + return; } + if (event == FRIENDSHIP_EVENT_LEAGUE_BATTLE) + { + // Only if it's a trainer battle with league progression significance + if (!(gBattleTypeFlags & BATTLE_TYPE_TRAINER)) + return; + if (!(gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_LEADER + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_ELITE_FOUR + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_CHAMPION)) + return; + } + + mod = sFriendshipEventModifiers[event][friendshipLevel]; + if (mod > 0 && holdEffect == HOLD_EFFECT_FRIENDSHIP_UP) + // 50% increase, rounding down + mod = (150 * mod) / 100; + + friendship += mod; + if (mod > 0) + { + if (GetMonData(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) + friendship++; + if (GetMonData(mon, MON_DATA_MET_LOCATION, NULL) == GetCurrentRegionMapSectionId()) + friendship++; + } + + if (friendship < 0) + friendship = 0; + if (friendship > MAX_FRIENDSHIP) + friendship = MAX_FRIENDSHIP; + + SetMonData(mon, MON_DATA_FRIENDSHIP, &friendship); } } From ef03daf6d4798e450d1bb3cfab1267738d3d0a92 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Sun, 19 May 2024 12:52:04 +0200 Subject: [PATCH 29/99] Fix Pokeblock script missing a releaseall --- data/scripts/safari_zone.inc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/scripts/safari_zone.inc b/data/scripts/safari_zone.inc index eb6a90abdf..77e795a0eb 100644 --- a/data/scripts/safari_zone.inc +++ b/data/scripts/safari_zone.inc @@ -53,6 +53,9 @@ SafariZone_EventScript_ChoosePokeblock:: special OpenPokeblockCaseOnFeeder waitstate goto_if_ne VAR_RESULT, 0xFFFF, SafariZone_EventScript_PokeblockPlaced +#ifdef BUGFIX + releaseall @ Only gets called from EventScript_PokeBlockFeeder which uses lockall. +#endif end SafariZone_EventScript_PokeblockPlaced:: From b592c6eae5015e6b01198212444a3b852bda27d0 Mon Sep 17 00:00:00 2001 From: sneed Date: Thu, 23 May 2024 02:45:22 +0300 Subject: [PATCH 30/99] Add POKE_ICON_BASE_PAL_TAG to a header --- include/constants/pokemon_icon.h | 6 ++++++ src/pokemon_icon.c | 3 +-- src/pokemon_storage_system.c | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 include/constants/pokemon_icon.h diff --git a/include/constants/pokemon_icon.h b/include/constants/pokemon_icon.h new file mode 100644 index 0000000000..d57d5111a9 --- /dev/null +++ b/include/constants/pokemon_icon.h @@ -0,0 +1,6 @@ +#ifndef GUARD_CONSTANTS_POKEMON_ICON_H +#define GUARD_CONSTANTS_POKEMON_ICON_H + +#define POKE_ICON_BASE_PAL_TAG 56000 + +#endif // GUARD_CONSTANTS_POKEMON_ICON_H diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index e659eebe21..caed0bcdc3 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -4,8 +4,7 @@ #include "palette.h" #include "pokemon_icon.h" #include "sprite.h" - -#define POKE_ICON_BASE_PAL_TAG 56000 +#include "constants/pokemon_icon.h" #define INVALID_ICON_SPECIES SPECIES_OLD_UNOWN_J // Oddly specific, used when an icon should be a ?. Any of the 'old unown' would work diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index c8c87961c8..b398b88752 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -40,6 +40,7 @@ #include "constants/moves.h" #include "constants/rgb.h" #include "constants/songs.h" +#include "constants/pokemon_icon.h" /* NOTE: This file is large. Some general groups of functions have @@ -215,7 +216,7 @@ enum { #define BOXID_CANCELED 201 enum { - PALTAG_MON_ICON_0 = 56000, + PALTAG_MON_ICON_0 = POKE_ICON_BASE_PAL_TAG, PALTAG_MON_ICON_1, // Used implicitly in CreateMonIconSprite PALTAG_MON_ICON_2, // Used implicitly in CreateMonIconSprite PALTAG_3, // Unused From ef2330593c7762d20865b2442d9b3e30c1b5e6f2 Mon Sep 17 00:00:00 2001 From: leo60228 Date: Wed, 29 May 2024 19:32:17 -0400 Subject: [PATCH 31/99] Don't assume bash is at /bin/bash --- Makefile | 2 +- asmdiff.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 50953be79c..21c010003b 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf) MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map) MODERN_OBJ_DIR_NAME := build/modern -SHELL := /bin/bash -o pipefail +SHELL := bash -o pipefail ELF = $(ROM:.gba=.elf) MAP = $(ROM:.gba=.map) diff --git a/asmdiff.sh b/asmdiff.sh index f5a7010747..aca670e324 100755 --- a/asmdiff.sh +++ b/asmdiff.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash if [[ -d "$DEVKITARM/bin/" ]]; then OBJDUMP_BIN="$DEVKITARM/bin/arm-none-eabi-objdump" From d8d4885c11dbf99538b6c474cf23f77d1b7ce95b Mon Sep 17 00:00:00 2001 From: leo60228 Date: Wed, 29 May 2024 18:53:16 -0400 Subject: [PATCH 32/99] Add NixOS install instructions --- INSTALL.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/INSTALL.md b/INSTALL.md index 920e03c713..964de4b68f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -354,6 +354,13 @@ Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to > [install devkitARM on Arch Linux](#installing-devkitarm-on-arch-linux). +### NixOS +Run the following command to start an interactive shell with the necessary packages: +```bash +nix-shell -p pkgsCross.arm-embedded.stdenv.cc git pkg-config libpng +``` +Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux). + ### Other distributions _(Specific instructions for other distributions would be greatly appreciated!)_ From 189d542520e57b9a09a223ba3ee99115f6726af2 Mon Sep 17 00:00:00 2001 From: Jaizu Date: Mon, 17 Jun 2024 21:44:52 +0200 Subject: [PATCH 33/99] Fix Steven partner battle post-battle script (#2001) --- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 4a22bf8eea..c82a33e78d 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -320,6 +320,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_DefeatedMaxieTabitha:: setobjectmovementtype LOCALID_SCIENTIST, MOVEMENT_TYPE_WANDER_AROUND addobject LOCALID_SCIENTIST fadescreen FADE_FROM_BLACK +#ifdef BUGFIX + releaseall +#endif end MossdeepCity_SpaceCenter_2F_EventScript_StevenFacePlayer:: From c0d630ee6304df61a5304942386308a872aeb504 Mon Sep 17 00:00:00 2001 From: Alex Nash Date: Mon, 17 Jun 2024 22:45:10 -0400 Subject: [PATCH 34/99] Add support for LF line endings to gbagfx --- tools/gbagfx/jasc_pal.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/gbagfx/jasc_pal.c b/tools/gbagfx/jasc_pal.c index e5ba9c3c2f..8d4bb137d5 100644 --- a/tools/gbagfx/jasc_pal.c +++ b/tools/gbagfx/jasc_pal.c @@ -46,10 +46,14 @@ void ReadJascPaletteLine(FILE *fp, char *line) } if (c == '\n') - FATAL_ERROR("LF line endings aren't supported.\n"); + { + line[length] = 0; + + return; + } if (c == EOF) - FATAL_ERROR("Unexpected EOF. No CRLF at end of file.\n"); + FATAL_ERROR("Unexpected EOF. No LF or CRLF at end of file.\n"); if (c == 0) FATAL_ERROR("NUL character in file.\n"); From 5dac97aa5d7f562fa544a9e57b4e8ba78db3115b Mon Sep 17 00:00:00 2001 From: leo60228 Date: Thu, 20 Jun 2024 15:55:47 -0400 Subject: [PATCH 35/99] Fix pokeemerald-expansion reference in INSTALL.md --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 964de4b68f..30b5d0f25a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -359,7 +359,7 @@ Run the following command to start an interactive shell with the necessary packa ```bash nix-shell -p pkgsCross.arm-embedded.stdenv.cc git pkg-config libpng ``` -Then proceed to [Choosing where to store pokeemerald Expansion (Linux)](#choosing-where-to-store-pokeemerald-expansion-linux). +Then proceed to [Choosing where to store pokeemerald (Linux)](#choosing-where-to-store-pokeemerald-linux). ### Other distributions _(Specific instructions for other distributions would be greatly appreciated!)_ From 5eea3d39cd50955e62904d146f67f65dc001b735 Mon Sep 17 00:00:00 2001 From: cawtds <38510667+cawtds@users.noreply.github.com> Date: Tue, 25 Jun 2024 21:53:05 +0200 Subject: [PATCH 36/99] UB fix ClockwiseWipe_TopRight --- src/battle_transition.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/battle_transition.c b/src/battle_transition.c index 11f9cddf4b..c23578e608 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -1907,7 +1907,11 @@ static bool8 ClockwiseWipe_TopRight(struct Task *task) { sTransitionData->VBlank_DMA = FALSE; +#ifdef UBFIX + InitBlackWipe(sTransitionData->data, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sTransitionData->tWipeEndX, 0, 1, 1); +#else InitBlackWipe(sTransitionData->data, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sTransitionData->tWipeEndX, -1, 1, 1); +#endif do { gScanlineEffectRegBuffers[0][sTransitionData->tWipeCurrY] = (sTransitionData->tWipeCurrX + 1) | ((DISPLAY_WIDTH / 2) << 8); From 779855ee02226cb4da16ab6d7a7822a8b0a6e3be Mon Sep 17 00:00:00 2001 From: abcboy101 <16735361+abcboy101@users.noreply.github.com> Date: Sat, 29 Jun 2024 13:59:30 -0400 Subject: [PATCH 37/99] Decode unused JP text in berry_blender.c --- src/berry_blender.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/berry_blender.c b/src/berry_blender.c index a91cafb0fb..1242a1dad9 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -916,14 +916,14 @@ static const u8 sBlackPokeblockFlavorFlags[] = { (1 << FLAVOR_SOUR) | (1 << FLAVOR_SWEET) | (1 << FLAVOR_SPICY), }; -static const u8 sUnused[] = -{ - 0xfe, 0x02, 0x02, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f, 0x0c, 0x10, - 0x00, 0xff, 0xfe, 0x91, 0x72, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f, - 0x0c, 0x10, 0x00, 0xff, 0x06, 0x27, 0x02, 0xff, 0x00, 0x0c, 0x48, - 0x02, 0xff, 0x00, 0x01, 0x1f, 0x02, 0xff, 0x00, 0x16, 0x37, 0x02, - 0xff, 0x00, 0x0d, 0x50, 0x4b, 0x02, 0xff, 0x06, 0x06, 0x06, 0x06, - 0x05, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02 +static const u8 sJPText_GoodTvReady[] = _("\nいいTVができました "); // Unused +static const u8 sJPText_BadTvReady[] = _("\nダメTVができました "); // Unused +static const u8 sJPText_Flavors[][5] = {_("からい"), _("しぶい"), _("あまい"), _("にがい"), _("すっぱい")}; // Unused + +static const u8 sUnused[] = { + 6, 6, 6, 6, 5, + 3, 3, 3, 2, 2, + 3, 3, 3, 3, 2 }; static const struct WindowTemplate sBlenderRecordWindowTemplate = From 47533e3a7ebd60e54b34c6ef3a367bf19b5dd96f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 4 Jul 2024 20:56:22 +0200 Subject: [PATCH 38/99] Berry blender's Task_HandleOpponent small fixes --- src/berry_blender.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/berry_blender.c b/src/berry_blender.c index 1242a1dad9..a5102d48fb 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1908,7 +1908,7 @@ static void Task_HandleOpponent1(u8 taskId) static void Task_HandleOpponent2(u8 taskId) { u32 var1 = (sBerryBlender->arrowPos + 0x1800) & 0xFFFF; - u32 arrowId = sBerryBlender->playerIdToArrowId[2] & 0xFF; + u8 arrowId = sBerryBlender->playerIdToArrowId[2]; if ((var1 >> 8) > sArrowHitRangeStart[arrowId] + 20 && (var1 >> 8) < sArrowHitRangeStart[arrowId] + 40) { if (!gTasks[taskId].tDidInput) @@ -1925,11 +1925,9 @@ static void Task_HandleOpponent2(u8 taskId) } else { - u8 value; if (rand > 65) gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST; - value = rand - 41; - if (value < 25) + if (rand > 40 && rand <= 65) gRecvCmds[2][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD; if (rand < 10) CreateOpponentMissTask(2, 5); @@ -1953,7 +1951,7 @@ static void Task_HandleOpponent2(u8 taskId) static void Task_HandleOpponent3(u8 taskId) { u32 var1 = (sBerryBlender->arrowPos + 0x1800) & 0xFFFF; - u32 arrowId = sBerryBlender->playerIdToArrowId[3] & 0xFF; + u8 arrowId = sBerryBlender->playerIdToArrowId[3]; if ((var1 >> 8) > sArrowHitRangeStart[arrowId] + 20 && (var1 >> 8) < sArrowHitRangeStart[arrowId] + 40) { if (gTasks[taskId].data[0] == 0) @@ -1971,16 +1969,9 @@ static void Task_HandleOpponent3(u8 taskId) else { if (rand > 60) - { gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_BEST; - } - else - { - s8 value = rand - 56; // makes me wonder what the original code was - u8 value2 = value; - if (value2 < 5) - gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD; - } + else if (rand > 55 && rand <= 60) + gRecvCmds[3][BLENDER_COMM_SCORE] = LINKCMD_BLENDER_SCORE_GOOD; if (rand < 5) CreateOpponentMissTask(3, 5); } From 550e6688aa3b511a9aa9ea851c49ba4d90c7708a Mon Sep 17 00:00:00 2001 From: Philipp AUER Date: Sat, 13 Jul 2024 19:26:33 +0200 Subject: [PATCH 39/99] Support C-Style `enum` in preproc (#1984) * [preproc] C-style enums - asm files parseable from stdin - 2nd preproc pass - add parser for C-style `enum` - positional arguments at end of command --------- Co-authored-by: sbird Co-authored-by: Martin Griffin --- Makefile | 14 +-- tools/preproc/Makefile | 4 +- tools/preproc/asm_file.cpp | 223 ++++++++++++++++++++++++++++++++----- tools/preproc/asm_file.h | 9 +- tools/preproc/c_file.cpp | 48 +------- tools/preproc/c_file.h | 2 - tools/preproc/io.cpp | 51 +++++++++ tools/preproc/io.h | 8 ++ tools/preproc/preproc.cpp | 83 ++++++++++---- 9 files changed, 339 insertions(+), 103 deletions(-) create mode 100644 tools/preproc/io.cpp create mode 100644 tools/preproc/io.h diff --git a/Makefile b/Makefile index 21c010003b..bf74e0331a 100644 --- a/Makefile +++ b/Makefile @@ -311,7 +311,7 @@ ifeq ($(NODEP),1) $(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c ifeq (,$(KEEP_TEMPS)) @echo "$(CC1) -o $@ $<" - @$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - + @$(CPP) $(CPPFLAGS) $< | $(PREPROC) -i $< charmap.txt | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - else @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s @@ -323,7 +323,7 @@ define C_DEP $1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" - @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - + @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - else @$$(CPP) $$(CPPFLAGS) $$< -o $$(C_BUILDDIR)/$3.i @$$(PREPROC) $$(C_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(C_BUILDDIR)/$3.s @@ -338,7 +338,7 @@ ifeq ($(NODEP),1) $(GFLIB_BUILDDIR)/%.o: $(GFLIB_SUBDIR)/%.c $$(c_dep) ifeq (,$(KEEP_TEMPS)) @echo "$(CC1) -o $@ $<" - @$(CPP) $(CPPFLAGS) $< | $(PREPROC) $< charmap.txt -i | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - + @$(CPP) $(CPPFLAGS) $< | $(PREPROC) -i $< charmap.txt | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - else @$(CPP) $(CPPFLAGS) $< -o $(GFLIB_BUILDDIR)/$*.i @$(PREPROC) $(GFLIB_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(GFLIB_BUILDDIR)/$*.s @@ -350,7 +350,7 @@ define GFLIB_DEP $1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" - @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) $$< charmap.txt -i | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - + @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - else @$$(CPP) $$(CPPFLAGS) $$< -o $$(GFLIB_BUILDDIR)/$3.i @$$(PREPROC) $$(GFLIB_BUILDDIR)/$3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $$(GFLIB_BUILDDIR)/$3.s @@ -363,11 +363,11 @@ endif ifeq ($(NODEP),1) $(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -i $$< charmap.txt | $(AS) $(ASFLAGS) -o $@ else define SRC_ASM_DATA_DEP $1: $2 $$(shell $(SCANINC) -I include -I "" $2) - $$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(AS) $$(ASFLAGS) -o $$@ + $$(PREPROC) $$< charmap.txt | $$(CPP) -I include - | $$(PREPROC) -ie $$< charmap.txt | $$(AS) $$(ASFLAGS) -o $$@ endef $(foreach src, $(C_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o, $(src)),$(src)))) endif @@ -385,7 +385,7 @@ endif ifeq ($(NODEP),1) $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $$< charmap.txt | $(AS) $(ASFLAGS) -o $@ else $(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call SRC_ASM_DATA_DEP,$(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o, $(src)),$(src)))) endif diff --git a/tools/preproc/Makefile b/tools/preproc/Makefile index 1507c973f2..606318944c 100644 --- a/tools/preproc/Makefile +++ b/tools/preproc/Makefile @@ -3,10 +3,10 @@ CXX ?= g++ CXXFLAGS := -std=c++11 -O2 -Wall -Wno-switch -Werror SRCS := asm_file.cpp c_file.cpp charmap.cpp preproc.cpp string_parser.cpp \ - utf8.cpp + utf8.cpp io.cpp HEADERS := asm_file.h c_file.h char_util.h charmap.h preproc.h string_parser.h \ - utf8.h + utf8.h io.h ifeq ($(OS),Windows_NT) EXE := .exe diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp index 04a7410e00..ca8b8cc4ae 100644 --- a/tools/preproc/asm_file.cpp +++ b/tools/preproc/asm_file.cpp @@ -27,33 +27,12 @@ #include "utf8.h" #include "string_parser.h" #include "../../gflib/characters.h" +#include "io.h" -AsmFile::AsmFile(std::string filename) : m_filename(filename) +AsmFile::AsmFile(std::string filename, bool isStdin, bool doEnum) : m_filename(filename) { - FILE *fp = std::fopen(filename.c_str(), "rb"); - - if (fp == NULL) - FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); - - std::fseek(fp, 0, SEEK_END); - - m_size = std::ftell(fp); - - if (m_size < 0) - FATAL_ERROR("File size of \"%s\" is less than zero.\n", filename.c_str()); - else if (m_size == 0) - return; // Empty file - - m_buffer = new char[m_size + 1]; - - std::rewind(fp); - - if (std::fread(m_buffer, m_size, 1, fp) != 1) - FATAL_ERROR("Failed to read \"%s\".\n", filename.c_str()); - - m_buffer[m_size] = 0; - - std::fclose(fp); + m_buffer = ReadFileToBuffer(filename.c_str(), isStdin, &m_size); + m_doEnum = doEnum; m_pos = 0; m_lineNum = 1; @@ -65,6 +44,7 @@ AsmFile::AsmFile(std::string filename) : m_filename(filename) AsmFile::AsmFile(AsmFile&& other) : m_filename(std::move(other.m_filename)) { m_buffer = other.m_buffer; + m_doEnum = other.m_doEnum; m_pos = other.m_pos; m_size = other.m_size; m_lineNum = other.m_lineNum; @@ -174,6 +154,8 @@ Directive AsmFile::GetDirective() return Directive::String; else if (CheckForDirective(".braille")) return Directive::Braille; + else if (CheckForDirective("enum")) + return Directive::Enum; else return Directive::Unknown; } @@ -527,6 +509,70 @@ void AsmFile::OutputLine() } } +// parses an assumed C `enum`. Returns false if `enum { ...` is not matched +bool AsmFile::ParseEnum() +{ + if (!m_doEnum) + return false; + + long fallbackPosition = m_pos; + std::string headerFilename = ""; + long currentHeaderLine = SkipWhitespaceAndEol(); + std::string enumName = ReadIdentifier(); + currentHeaderLine += SkipWhitespaceAndEol(); + long enumCounter = 0; + long symbolCount = 0; + + if (m_buffer[m_pos] != '{') // assume assembly macro, otherwise assume enum and report errors accordingly + { + m_pos = fallbackPosition - 4; + return false; + } + + currentHeaderLine += FindLastLineNumber(headerFilename); + m_pos++; + for (;;) + { + currentHeaderLine += SkipWhitespaceAndEol(); + std::string currentIdentName = ReadIdentifier(); + if (!currentIdentName.empty()) + { + std::printf("# %ld \"%s\"\n", currentHeaderLine, headerFilename.c_str()); + currentHeaderLine += SkipWhitespaceAndEol(); + if (m_buffer[m_pos] == '=') + { + m_pos++; + currentHeaderLine += SkipWhitespaceAndEol(); + enumCounter = ReadInteger(headerFilename, currentHeaderLine); + currentHeaderLine += SkipWhitespaceAndEol(); + } + std::printf(".equiv %s, %ld\n", currentIdentName.c_str(), enumCounter); + enumCounter++; + symbolCount++; + } + else if (symbolCount == 0) + { + RaiseError("%s:%ld: empty enum is invalid", headerFilename.c_str(), currentHeaderLine); + } + + if (m_buffer[m_pos] != ',') + { + currentHeaderLine += SkipWhitespaceAndEol(); + if (m_buffer[m_pos++] == '}' && m_buffer[m_pos++] == ';') + { + ExpectEmptyRestOfLine(); + break; + } + else + { + RaiseError("unterminated enum from included file %s:%ld", headerFilename.c_str(), currentHeaderLine); + } + } + m_pos++; + } + return true; +} + // Asserts that the rest of the line is empty and moves to the next one. void AsmFile::ExpectEmptyRestOfLine() { @@ -599,3 +645,130 @@ void AsmFile::RaiseWarning(const char* format, ...) { DO_REPORT("warning"); } + +// Skips Whitespace including newlines and returns the amount of newlines skipped +int AsmFile::SkipWhitespaceAndEol() +{ + int newlines = 0; + while (m_buffer[m_pos] == '\t' || m_buffer[m_pos] == ' ' || m_buffer[m_pos] == '\n') + { + if (m_buffer[m_pos] == '\n') + newlines++; + m_pos++; + } + return newlines; +} + +// returns the last line indicator and its corresponding file name without modifying the token index +int AsmFile::FindLastLineNumber(std::string& filename) +{ + long pos = m_pos; + long linebreaks = 0; + while (m_buffer[pos] != '#' && pos >= 0) + { + if (m_buffer[pos] == '\n') + linebreaks++; + pos--; + } + + if (pos < 0) + RaiseError("line indicator for header file not found before `enum`"); + + pos++; + while (m_buffer[pos] == ' ' || m_buffer[pos] == '\t') + pos++; + + if (!IsAsciiDigit(m_buffer[pos])) + RaiseError("malformatted line indicator found before `enum`, expected line number"); + + unsigned n = 0; + int digit = 0; + while ((digit = ConvertDigit(m_buffer[pos++], 10)) != -1) + n = 10 * n + digit; + + while (m_buffer[pos] == ' ' || m_buffer[pos] == '\t') + pos++; + + if (m_buffer[pos++] != '"') + RaiseError("malformatted line indicator found before `enum`, expected filename"); + + while (m_buffer[pos] != '"') + { + unsigned char c = m_buffer[pos++]; + + if (c == 0) + { + if (pos >= m_size) + RaiseError("unexpected EOF in line indicator"); + else + RaiseError("unexpected null character in line indicator"); + } + + if (!IsAsciiPrintable(c)) + RaiseError("unexpected character '\\x%02X' in line indicator", c); + + if (c == '\\') + { + c = m_buffer[pos]; + RaiseError("unexpected escape '\\%c' in line indicator", c); + } + + filename += c; + } + + return n + linebreaks - 1; +} + +std::string AsmFile::ReadIdentifier() +{ + long start = m_pos; + if (!IsIdentifierStartingChar(m_buffer[m_pos])) + return std::string(); + + m_pos++; + + while (IsIdentifierChar(m_buffer[m_pos])) + m_pos++; + + return std::string(&m_buffer[start], m_pos - start); +} + +long AsmFile::ReadInteger(std::string filename, long line) +{ + bool negate = false; + int radix = 10; + if (!IsAsciiDigit(m_buffer[m_pos])) + { + if (m_buffer[m_pos++] == '-') + negate = true; + else + RaiseError("expected number in included file %s:%ld", filename.c_str(), line); + } + + if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'x') + { + radix = 16; + m_pos += 2; + } + else if (m_buffer[m_pos] == '0' && m_buffer[m_pos + 1] == 'b') + { + radix = 2; + m_pos += 2; + } + else if (m_buffer[m_pos] == '0' && IsAsciiDigit(m_buffer[m_pos+1])) + { + radix = 8; + m_pos++; + } + + long n = 0; + int digit; + + while ((digit = ConvertDigit(m_buffer[m_pos], radix)) != -1) + { + n = n * radix + digit; + m_pos++; + } + + return negate ? -n : n; +} diff --git a/tools/preproc/asm_file.h b/tools/preproc/asm_file.h index 29435f76a4..33e6ce5c49 100644 --- a/tools/preproc/asm_file.h +++ b/tools/preproc/asm_file.h @@ -31,13 +31,14 @@ enum class Directive Include, String, Braille, + Enum, Unknown }; class AsmFile { public: - AsmFile(std::string filename); + AsmFile(std::string filename, bool isStdin, bool doEnum); AsmFile(AsmFile&& other); AsmFile(const AsmFile&) = delete; ~AsmFile(); @@ -49,9 +50,11 @@ public: bool IsAtEnd(); void OutputLine(); void OutputLocation(); + bool ParseEnum(); private: char* m_buffer; + bool m_doEnum; long m_pos; long m_size; long m_lineNum; @@ -68,6 +71,10 @@ private: void RaiseError(const char* format, ...); void RaiseWarning(const char* format, ...); void VerifyStringLength(int length); + int SkipWhitespaceAndEol(); + int FindLastLineNumber(std::string& filename); + std::string ReadIdentifier(); + long ReadInteger(std::string filename, long line); }; #endif // ASM_FILE_H diff --git a/tools/preproc/c_file.cpp b/tools/preproc/c_file.cpp index 508c628731..191ca4c152 100644 --- a/tools/preproc/c_file.cpp +++ b/tools/preproc/c_file.cpp @@ -30,56 +30,16 @@ #include "char_util.h" #include "utf8.h" #include "string_parser.h" +#include "io.h" CFile::CFile(const char * filenameCStr, bool isStdin) { - FILE *fp; - - if (isStdin) { - fp = stdin; + if (isStdin) m_filename = std::string{"/"}.append(filenameCStr); - } else { - fp = std::fopen(filenameCStr, "rb"); + else m_filename = std::string(filenameCStr); - } - std::string& filename = m_filename; - - if (fp == NULL) - FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename.c_str()); - - m_size = 0; - m_buffer = (char *)malloc(CHUNK_SIZE + 1); - if (m_buffer == NULL) { - FATAL_ERROR("Failed to allocate memory to process file \"%s\"!", filename.c_str()); - } - - std::size_t numAllocatedBytes = CHUNK_SIZE + 1; - std::size_t bufferOffset = 0; - std::size_t count; - - while ((count = std::fread(m_buffer + bufferOffset, 1, CHUNK_SIZE, fp)) != 0) { - if (!std::ferror(fp)) { - m_size += count; - - if (std::feof(fp)) { - break; - } - - numAllocatedBytes += CHUNK_SIZE; - bufferOffset += CHUNK_SIZE; - m_buffer = (char *)realloc(m_buffer, numAllocatedBytes); - if (m_buffer == NULL) { - FATAL_ERROR("Failed to allocate memory to process file \"%s\"!", filename.c_str()); - } - } else { - FATAL_ERROR("Failed to read \"%s\". (error: %s)", filename.c_str(), std::strerror(errno)); - } - } - - m_buffer[m_size] = 0; - - std::fclose(fp); + m_buffer = ReadFileToBuffer(filenameCStr, isStdin, &m_size); m_pos = 0; m_lineNum = 1; diff --git a/tools/preproc/c_file.h b/tools/preproc/c_file.h index 49e633a18d..c40c33c962 100644 --- a/tools/preproc/c_file.h +++ b/tools/preproc/c_file.h @@ -56,6 +56,4 @@ private: void RaiseWarning(const char* format, ...); }; -#define CHUNK_SIZE 4096 - #endif // C_FILE_H diff --git a/tools/preproc/io.cpp b/tools/preproc/io.cpp new file mode 100644 index 0000000000..321676180d --- /dev/null +++ b/tools/preproc/io.cpp @@ -0,0 +1,51 @@ +#include "preproc.h" +#include "io.h" +#include +#include +#include + +char *ReadFileToBuffer(const char *filename, bool isStdin, long *size) +{ + FILE *fp; + if (isStdin) + fp = stdin; + else + fp = std::fopen(filename, "rb"); + + if (fp == NULL) + FATAL_ERROR("Failed to open \"%s\" for reading.\n", filename); + + *size = 0; + char *buffer = (char *)malloc(CHUNK_SIZE + 1); + if (buffer == NULL) { + FATAL_ERROR("Failed to allocate memory to process file \"%s\"!", filename); + } + + std::size_t numAllocatedBytes = CHUNK_SIZE + 1; + std::size_t bufferOffset = 0; + std::size_t count; + + while ((count = std::fread(buffer + bufferOffset, 1, CHUNK_SIZE, fp)) != 0) { + if (!std::ferror(fp)) { + *size += count; + + if (std::feof(fp)) { + break; + } + + numAllocatedBytes += CHUNK_SIZE; + bufferOffset += CHUNK_SIZE; + buffer = (char *)realloc(buffer, numAllocatedBytes); + if (buffer == NULL) { + FATAL_ERROR("Failed to allocate memory to process file \"%s\"!", filename); + } + } else { + FATAL_ERROR("Failed to read \"%s\". (error: %s)", filename, std::strerror(errno)); + } + } + + buffer[*size] = 0; + + std::fclose(fp); + return buffer; +} diff --git a/tools/preproc/io.h b/tools/preproc/io.h new file mode 100644 index 0000000000..ac4e91051f --- /dev/null +++ b/tools/preproc/io.h @@ -0,0 +1,8 @@ +#ifndef IO_H_ +#define IO_H_ + +#define CHUNK_SIZE 4096 + +char *ReadFileToBuffer(const char *filename, bool isStdin, long *size); + +#endif // IO_H_ diff --git a/tools/preproc/preproc.cpp b/tools/preproc/preproc.cpp index eb2d4c8a23..20c2de51b6 100644 --- a/tools/preproc/preproc.cpp +++ b/tools/preproc/preproc.cpp @@ -20,11 +20,14 @@ #include #include +#include #include "preproc.h" #include "asm_file.h" #include "c_file.h" #include "charmap.h" +static void UsageAndExit(const char *program); + Charmap* g_charmap; void PrintAsmBytes(unsigned char *s, int length) @@ -43,11 +46,12 @@ void PrintAsmBytes(unsigned char *s, int length) } } -void PreprocAsmFile(std::string filename) +void PreprocAsmFile(std::string filename, bool isStdin, bool doEnum) { std::stack stack; - stack.push(AsmFile(filename)); + stack.push(AsmFile(filename, isStdin, doEnum)); + std::printf("# 1 \"%s\"\n", filename.c_str()); for (;;) { @@ -66,7 +70,7 @@ void PreprocAsmFile(std::string filename) switch (directive) { case Directive::Include: - stack.push(AsmFile(stack.top().ReadPath())); + stack.push(AsmFile(stack.top().ReadPath(), false, doEnum)); stack.top().OutputLocation(); break; case Directive::String: @@ -83,6 +87,12 @@ void PreprocAsmFile(std::string filename) PrintAsmBytes(s, length); break; } + case Directive::Enum: + { + if (!stack.top().ParseEnum()) + stack.top().OutputLine(); + break; + } case Directive::Unknown: { std::string globalLabel = stack.top().GetGlobalLabel(); @@ -109,9 +119,9 @@ void PreprocCFile(const char * filename, bool isStdin) cFile.Preproc(); } -char* GetFileExtension(char* filename) +const char* GetFileExtension(const char* filename) { - char* extension = filename; + const char* extension = filename; while (*extension != 0) extension++; @@ -130,35 +140,64 @@ char* GetFileExtension(char* filename) return extension; } +static void UsageAndExit(const char *program) +{ + std::fprintf(stderr, "Usage: %s [-i] [-e] SRC_FILE CHARMAP_FILE\nwhere -i denotes if input is from stdin\n -e enables enum handling\n", program); + std::exit(EXIT_FAILURE); +} + int main(int argc, char **argv) { - if (argc < 3 || argc > 4) + int opt; + const char *source = NULL; + const char *charmap = NULL; + bool isStdin = false; + bool doEnum = false; + + /* preproc [-i] [-e] SRC_FILE CHARMAP_FILE */ + while ((opt = getopt(argc, argv, "ie")) != -1) { - std::fprintf(stderr, "Usage: %s SRC_FILE CHARMAP_FILE [-i]\nwhere -i denotes if input is from stdin\n", argv[0]); - return 1; + switch (opt) + { + case 'i': + isStdin = true; + break; + case 'e': + doEnum = true; + break; + default: + UsageAndExit(argv[0]); + break; + } } - g_charmap = new Charmap(argv[2]); + if (optind + 2 != argc) + UsageAndExit(argv[0]); - char* extension = GetFileExtension(argv[1]); + source = argv[optind + 0]; + charmap = argv[optind + 1]; + + g_charmap = new Charmap(charmap); + + const char* extension = GetFileExtension(source); if (!extension) FATAL_ERROR("\"%s\" has no file extension.\n", argv[1]); if ((extension[0] == 's') && extension[1] == 0) - PreprocAsmFile(argv[1]); - else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) { - if (argc == 4) { - if (argv[3][0] == '-' && argv[3][1] == 'i' && argv[3][2] == '\0') { - PreprocCFile(argv[1], true); - } else { - FATAL_ERROR("unknown argument flag \"%s\".\n", argv[3]); - } - } else { - PreprocCFile(argv[1], false); - } - } else + { + PreprocAsmFile(source, isStdin, doEnum); + } + else if ((extension[0] == 'c' || extension[0] == 'i') && extension[1] == 0) + { + if (doEnum) + FATAL_ERROR("-e is invalid for C sources\n"); + PreprocCFile(source, isStdin); + } + else + { FATAL_ERROR("\"%s\" has an unknown file extension of \"%s\".\n", argv[1], extension); + } return 0; } From 3d2b861436a522c83dce702961587dc5486d7fdc Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Tue, 23 Jul 2024 17:53:19 -0400 Subject: [PATCH 40/99] Fix WSL1 install instructions --- INSTALL.md | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 30b5d0f25a..7ffcdee07b 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -33,27 +33,23 @@ WSL1 is the preferred terminal to build **pokeemerald**. The following instructi - Otherwise, **open WSL** and go to [Choosing where to store pokeemerald (WSL1)](#Choosing-where-to-store-pokeemerald-WSL1). ### Installing WSL1 -1. Open [Windows Powershell **as Administrator**](https://i.imgur.com/QKmVbP9.png), and run the following command (Right Click or Shift+Insert is paste in the Powershell). +1. Open [Windows Powershell **as Administrator**](https://i.imgur.com/QKmVbP9.png), and run the following commands (Right Click or Shift+Insert is paste in the Powershell). ```powershell - dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart + wsl --install -d Ubuntu --enable-wsl1 ``` 2. Once the process finishes, restart your machine. -3. The next step is to choose and install a Linux distribution from the Microsoft Store. The following instructions will assume Ubuntu as the Linux distribution of choice. +3. Open Windows Powershell **as Administrator** again (after restarting), and run the following command to configure Ubuntu to use WSL1. + + ```powershell + wsl --set-version Ubuntu 1 + ```
- Note for advanced users... + Note... - > You can pick a preferred Linux distribution, but setup instructions may differ. Debian should work with the given instructions, but has not been tested. -
- -4. Open the [Microsoft Store Linux Selection](https://aka.ms/wslstore), click Ubuntu, then click Get, which will install the Ubuntu distribution. -
- Notes... - - > Note 1: If a dialog pops up asking for you to sign into a Microsoft Account, then just close the dialog. - > Note 2: If the link does not work, then open the Microsoft Store manually, and search for the Ubuntu app (choose the one with no version number). + > WSL may open automatically after restarting, but you can ignore it for now.
### Setting up WSL1 From 91b48a10d4f0b4c85ffa0363c19f6979b34889c9 Mon Sep 17 00:00:00 2001 From: pkmnsnfrn Date: Fri, 26 Jul 2024 21:57:42 -0700 Subject: [PATCH 41/99] Added constant for NUM_SNOWFLAKE_SPRITES --- include/constants/field_weather.h | 1 + src/field_weather_effect.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/constants/field_weather.h b/include/constants/field_weather.h index e84dbc48c4..fe7eb6a1ae 100644 --- a/include/constants/field_weather.h +++ b/include/constants/field_weather.h @@ -8,6 +8,7 @@ #define NUM_FOG_DIAGONAL_SPRITES 20 #define NUM_SANDSTORM_SPRITES 20 #define NUM_SWIRL_SANDSTORM_SPRITES 5 +#define NUM_SNOWFLAKE_SPRITES 16 // Controls how the weather should be changing the screen palettes. #define WEATHER_PAL_STATE_CHANGING_WEATHER 0 diff --git a/src/field_weather_effect.c b/src/field_weather_effect.c index de0b90c480..10ce1bc37a 100644 --- a/src/field_weather_effect.c +++ b/src/field_weather_effect.c @@ -770,7 +770,7 @@ void Snow_InitVars(void) gWeatherPtr->weatherGfxLoaded = FALSE; gWeatherPtr->targetColorMapIndex = 3; gWeatherPtr->colorMapStepDelay = 20; - gWeatherPtr->targetSnowflakeSpriteCount = 16; + gWeatherPtr->targetSnowflakeSpriteCount = NUM_SNOWFLAKE_SPRITES; gWeatherPtr->snowflakeVisibleCounter = 0; } From 62b4ea5aaad856f7aa43235bcd1384d70f68eb2e Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 1 Aug 2024 13:18:29 -0400 Subject: [PATCH 42/99] Fixed bottom half of Mt. Pyre not being labeled in PokeNav --- src/landmark.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/landmark.c b/src/landmark.c index 615a9bfe3e..d2bb3c4105 100644 --- a/src/landmark.c +++ b/src/landmark.c @@ -369,8 +369,13 @@ static const struct LandmarkList sLandmarkLists[] = {MAPSEC_ROUTE_120, 2, Landmarks_Route120_2}, {MAPSEC_ROUTE_121, 2, Landmarks_Route121_2}, {MAPSEC_ROUTE_122, 0, Landmarks_Route122_0}, +#ifdef BUGFIX + {MAPSEC_ROUTE_122, 1, Landmarks_Route122_0}, + {MAPSEC_ROUTE_123, 0, Landmarks_Route123_0}, +#else {MAPSEC_ROUTE_123, 0, Landmarks_Route123_0}, {MAPSEC_ROUTE_122, 1, Landmarks_Route122_0}, +#endif {MAPSEC_ROUTE_124, 7, Landmarks_Route124_7}, {MAPSEC_ROUTE_125, 2, Landmarks_Route125_2}, {MAPSEC_ROUTE_128, 1, Landmarks_Route128_1}, From 312749dd3109e607779bb1a15f3669ea2b0979dc Mon Sep 17 00:00:00 2001 From: psf <77138753+pkmnsnfrn@users.noreply.github.com> Date: Tue, 6 Aug 2024 22:44:03 -0700 Subject: [PATCH 43/99] Changed type1 and type2 to be consistent (#2021) * Changed type1 and type2 in gBattleMons to match gSpeciesInfo * Changed monType1 and monType2 to monTypes to match gSpeciesInfo --- include/battle.h | 6 +-- include/battle_controllers.h | 3 +- include/pokemon.h | 3 +- src/battle_ai_script_commands.c | 10 ++--- src/battle_ai_switch_items.c | 4 +- src/battle_controller_player.c | 2 +- src/battle_gfx_sfx_util.c | 2 +- src/battle_main.c | 12 +++--- src/battle_script_commands.c | 68 ++++++++++++++++----------------- src/pokemon.c | 4 +- 10 files changed, 56 insertions(+), 58 deletions(-) diff --git a/include/battle.h b/include/battle.h index 6c4d780186..eb25b96550 100644 --- a/include/battle.h +++ b/include/battle.h @@ -465,11 +465,11 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER #define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0)) -#define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type)) +#define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].types[0] == type || gBattleMons[battlerId].types[1] == type)) #define SET_BATTLER_TYPE(battlerId, type) \ { \ - gBattleMons[battlerId].type1 = type; \ - gBattleMons[battlerId].type2 = type; \ + gBattleMons[battlerId].types[0] = type; \ + gBattleMons[battlerId].types[1] = type; \ } #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 064c080f61..0024e006b6 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -124,8 +124,7 @@ struct ChooseMoveStruct u8 currentPp[MAX_MON_MOVES]; u8 maxPp[MAX_MON_MOVES]; u16 species; - u8 monType1; - u8 monType2; + u8 monTypes[2]; }; enum diff --git a/include/pokemon.h b/include/pokemon.h index 6d08f48746..771d947f0a 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -276,8 +276,7 @@ struct BattlePokemon /*0x17*/ u32 abilityNum:1; /*0x18*/ s8 statStages[NUM_BATTLE_STATS]; /*0x20*/ u8 ability; - /*0x21*/ u8 type1; - /*0x22*/ u8 type2; + /*0x21*/ u8 types[2]; /*0x23*/ u8 unknown; /*0x24*/ u8 pp[MAX_MON_MOVES]; /*0x28*/ u16 hp; diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 4cb4c51654..716c456794 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1119,16 +1119,16 @@ static void Cmd_get_type(void) switch (typeVar) { case AI_TYPE1_USER: // AI user primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].types[0]; break; case AI_TYPE1_TARGET: // target primary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type1; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].types[0]; break; case AI_TYPE2_USER: // AI user secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[sBattler_AI].types[1]; break; case AI_TYPE2_TARGET: // target secondary type - AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].type2; + AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerTarget].types[1]; break; case AI_TYPE_MOVE: // type of move being pointed to AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; @@ -1527,7 +1527,7 @@ static void Cmd_if_type_effectiveness(void) // TypeCalc does not assign to gMoveResultFlags, Cmd_typecalc does // This makes the check for gMoveResultFlags below always fail - // This is how you get the "dual non-immunity" glitch, where AI + // This is how you get the "dual non-immunity" glitch, where AI // will use ineffective moves on immune pokémon if the second type // has a non-neutral, non-immune effectiveness #ifdef BUGFIX diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 5ef15b627a..eeb28f8f0f 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -706,8 +706,8 @@ u8 GetMostSuitableMonToSwitchInto(void) u8 type1 = gSpeciesInfo[species].types[0]; u8 type2 = gSpeciesInfo[species].types[1]; u8 typeDmg = TYPE_MUL_NORMAL; - ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type1, type1, type2, &typeDmg); - ModulateByTypeEffectiveness(gBattleMons[opposingBattler].type2, type1, type2, &typeDmg); + ModulateByTypeEffectiveness(gBattleMons[opposingBattler].types[0], type1, type2, &typeDmg); + ModulateByTypeEffectiveness(gBattleMons[opposingBattler].types[1], type1, type2, &typeDmg); /* Possible bug: this comparison gives the type that takes the most damage, when a "good" AI would want to select the type that takes the least damage. Unknown if this diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 8e09d126c9..e447858fc8 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -485,7 +485,7 @@ static void HandleInputChooseMove(void) PlaySE(SE_SELECT); if (moveInfo->moves[gMoveSelectionCursor[gActiveBattler]] == MOVE_CURSE) { - if (moveInfo->monType1 != TYPE_GHOST && moveInfo->monType2 != TYPE_GHOST) + if (moveInfo->monTypes[0] != TYPE_GHOST && moveInfo->monTypes[1] != TYPE_GHOST) moveTarget = MOVE_TARGET_USER; else moveTarget = MOVE_TARGET_SELECTED; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index a17ebcb5ab..ed8cf572ea 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -264,7 +264,7 @@ u16 ChooseMoveAndTargetInBattlePalace(void) if (moveInfo->moves[chosenMoveId] == MOVE_CURSE) { - if (moveInfo->monType1 != TYPE_GHOST && moveInfo->monType2 != TYPE_GHOST) + if (moveInfo->monTypes[0] != TYPE_GHOST && moveInfo->monTypes[1] != TYPE_GHOST) moveTarget = MOVE_TARGET_USER; else moveTarget = MOVE_TARGET_SELECTED; diff --git a/src/battle_main.c b/src/battle_main.c index c19089deb0..9039655c4d 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -3343,8 +3343,8 @@ void FaintClearSetData(void) gBattleResources->flags->flags[gActiveBattler] = 0; - gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; - gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; + gBattleMons[gActiveBattler].types[0] = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; + gBattleMons[gActiveBattler].types[1] = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; ClearBattlerMoveHistory(gActiveBattler); ClearBattlerAbilityHistory(gActiveBattler); @@ -3411,8 +3411,8 @@ static void BattleIntroDrawTrainersOrMonsSprites(void) for (i = 0; i < sizeof(struct BattlePokemon); i++) ptr[i] = gBattleBufferB[gActiveBattler][4 + i]; - gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; - gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; + gBattleMons[gActiveBattler].types[0] = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; + gBattleMons[gActiveBattler].types[1] = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum); hpOnSwitchout = &gBattleStruct->hpOnSwitchout[GetBattlerSide(gActiveBattler)]; *hpOnSwitchout = gBattleMons[gActiveBattler].hp; @@ -4173,8 +4173,8 @@ static void HandleTurnActionSelectionState(void) struct ChooseMoveStruct moveInfo; moveInfo.species = gBattleMons[gActiveBattler].species; - moveInfo.monType1 = gBattleMons[gActiveBattler].type1; - moveInfo.monType2 = gBattleMons[gActiveBattler].type2; + moveInfo.monTypes[0] = gBattleMons[gActiveBattler].types[0]; + moveInfo.monTypes[1] = gBattleMons[gActiveBattler].types[1]; for (i = 0; i < MAX_MON_MOVES; i++) { diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 49279bdb9c..6f43c6af70 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1395,11 +1395,11 @@ static void Cmd_typecalc(void) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[0]) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 && - gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1] && + gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1]) ModulateDmgByType(TYPE_EFFECT_MULTIPLIER(i)); } i += 3; @@ -1454,14 +1454,14 @@ static void CheckWonderGuardAndLevitate(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check no effect - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[0] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; gProtectStructs[gBattlerAttacker].targetNotAffected = 1; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 && - gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 && + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1] && + gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; @@ -1469,18 +1469,18 @@ static void CheckWonderGuardAndLevitate(void) } // check super effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 20) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[0] && TYPE_EFFECT_MULTIPLIER(i) == 20) flags |= 1; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 - && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1] + && gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) flags |= 1; // check not very effective - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1 && TYPE_EFFECT_MULTIPLIER(i) == 5) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[0] && TYPE_EFFECT_MULTIPLIER(i) == 5) flags |= 2; - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 - && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1] + && gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) flags |= 2; } @@ -1570,11 +1570,11 @@ u8 TypeCalc(u16 move, u8 attacker, u8 defender) else if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].types[0]) ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags); // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].type2 && - gBattleMons[defender].type1 != gBattleMons[defender].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[defender].types[1] && + gBattleMons[defender].types[0] != gBattleMons[defender].types[1]) ModulateDmgByType2(TYPE_EFFECT_MULTIPLIER(i), move, &flags); } i += 3; @@ -3971,7 +3971,7 @@ static void Cmd_jumpiftype2(void) { u8 battlerId = GetBattlerForBattleScript(gBattlescriptCurrInstr[1]); - if (gBattlescriptCurrInstr[2] == gBattleMons[battlerId].type1 || gBattlescriptCurrInstr[2] == gBattleMons[battlerId].type2) + if (gBattlescriptCurrInstr[2] == gBattleMons[battlerId].types[0] || gBattlescriptCurrInstr[2] == gBattleMons[battlerId].types[1]) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3); else gBattlescriptCurrInstr += 7; @@ -4520,7 +4520,7 @@ static void Cmd_typecalc2(void) if (TYPE_EFFECT_ATK_TYPE(i) == moveType) { // check type1 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type1) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[0]) { if (TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { @@ -4537,22 +4537,22 @@ static void Cmd_typecalc2(void) } } // check type2 - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2) + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1]) { - if (gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 + if (gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NO_EFFECT) { gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; break; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 - && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1] + && gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_NOT_EFFECTIVE) { flags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; } - if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].type2 - && gBattleMons[gBattlerTarget].type1 != gBattleMons[gBattlerTarget].type2 + if (TYPE_EFFECT_DEF_TYPE(i) == gBattleMons[gBattlerTarget].types[1] + && gBattleMons[gBattlerTarget].types[0] != gBattleMons[gBattlerTarget].types[1] && TYPE_EFFECT_MULTIPLIER(i) == TYPE_MUL_SUPER_EFFECTIVE) { flags |= MOVE_RESULT_SUPER_EFFECTIVE; @@ -4623,8 +4623,8 @@ static void Cmd_switchindataupdate(void) for (i = 0; i < sizeof(struct BattlePokemon); i++) monData[i] = gBattleBufferB[gActiveBattler][4 + i]; - gBattleMons[gActiveBattler].type1 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; - gBattleMons[gActiveBattler].type2 = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; + gBattleMons[gActiveBattler].types[0] = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[0]; + gBattleMons[gActiveBattler].types[1] = gSpeciesInfo[gBattleMons[gActiveBattler].species].types[1]; gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].abilityNum); // check knocked off item @@ -7354,8 +7354,8 @@ static void Cmd_tryconversiontypechange(void) else moveType = TYPE_NORMAL; } - if (moveType != gBattleMons[gBattlerAttacker].type1 - && moveType != gBattleMons[gBattlerAttacker].type2) + if (moveType != gBattleMons[gBattlerAttacker].types[0] + && moveType != gBattleMons[gBattlerAttacker].types[1]) { break; } @@ -7381,7 +7381,7 @@ static void Cmd_tryconversiontypechange(void) moveType = TYPE_NORMAL; } } - while (moveType == gBattleMons[gBattlerAttacker].type1 || moveType == gBattleMons[gBattlerAttacker].type2); + while (moveType == gBattleMons[gBattlerAttacker].types[0] || moveType == gBattleMons[gBattlerAttacker].types[1]); SET_BATTLER_TYPE(gBattlerAttacker, moveType); PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType); @@ -7548,12 +7548,12 @@ static void Cmd_weatherdamage(void) { if (gBattleWeather & B_WEATHER_SANDSTORM) { - if (gBattleMons[gBattlerAttacker].type1 != TYPE_ROCK - && gBattleMons[gBattlerAttacker].type1 != TYPE_STEEL - && gBattleMons[gBattlerAttacker].type1 != TYPE_GROUND - && gBattleMons[gBattlerAttacker].type2 != TYPE_ROCK - && gBattleMons[gBattlerAttacker].type2 != TYPE_STEEL - && gBattleMons[gBattlerAttacker].type2 != TYPE_GROUND + if (gBattleMons[gBattlerAttacker].types[0] != TYPE_ROCK + && gBattleMons[gBattlerAttacker].types[0] != TYPE_STEEL + && gBattleMons[gBattlerAttacker].types[0] != TYPE_GROUND + && gBattleMons[gBattlerAttacker].types[1] != TYPE_ROCK + && gBattleMons[gBattlerAttacker].types[1] != TYPE_STEEL + && gBattleMons[gBattlerAttacker].types[1] != TYPE_GROUND && gBattleMons[gBattlerAttacker].ability != ABILITY_SAND_VEIL && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERGROUND) && !(gStatuses3[gBattlerAttacker] & STATUS3_UNDERWATER)) diff --git a/src/pokemon.c b/src/pokemon.c index ef8e7e9e05..077b856793 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4670,8 +4670,8 @@ void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) gBattleMons[battlerId].isEgg = GetMonData(&gPlayerParty[partyIndex], MON_DATA_IS_EGG, NULL); gBattleMons[battlerId].abilityNum = GetMonData(&gPlayerParty[partyIndex], MON_DATA_ABILITY_NUM, NULL); gBattleMons[battlerId].otId = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_ID, NULL); - gBattleMons[battlerId].type1 = gSpeciesInfo[gBattleMons[battlerId].species].types[0]; - gBattleMons[battlerId].type2 = gSpeciesInfo[gBattleMons[battlerId].species].types[1]; + gBattleMons[battlerId].types[0] = gSpeciesInfo[gBattleMons[battlerId].species].types[0]; + gBattleMons[battlerId].types[1] = gSpeciesInfo[gBattleMons[battlerId].species].types[1]; gBattleMons[battlerId].ability = GetAbilityBySpecies(gBattleMons[battlerId].species, gBattleMons[battlerId].abilityNum); GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); StringCopy_Nickname(gBattleMons[battlerId].nickname, nickname); From a3d5f54b7588d6b5b3125c6c61356dcc0123b544 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 1 Jul 2024 15:51:15 -0400 Subject: [PATCH 44/99] Fix type for offset in MapConnection --- include/global.fieldmap.h | 2 +- src/fieldmap.c | 2 +- src/item_use.c | 45 ++++++++++++++++++--------------------- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index 7461929c3a..c7a4133ea8 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -131,7 +131,7 @@ struct MapEvents struct MapConnection { u8 direction; - u32 offset; + s32 offset; u8 mapGroup; u8 mapNum; }; diff --git a/src/fieldmap.c b/src/fieldmap.c index d9c4fa371a..5fdc4cbfb7 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -144,7 +144,7 @@ static void InitBackupMapLayoutConnections(struct MapHeader *mapHeader) for (i = 0; i < count; i++, connection++) { struct MapHeader const *cMap = GetMapHeaderFromConnection(connection); - u32 offset = connection->offset; + s32 offset = connection->offset; switch (connection->direction) { case CONNECTION_SOUTH: diff --git a/src/item_use.c b/src/item_use.c index 60338e437a..abd80e0eae 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -393,46 +393,43 @@ static bool8 IsHiddenItemPresentAtCoords(const struct MapEvents *events, s16 x, static bool8 IsHiddenItemPresentInConnection(const struct MapConnection *connection, int x, int y) { + s16 connectionX, connectionY; + struct MapHeader const *const connectionHeader = GetMapHeaderFromConnection(connection); - u16 localX, localY; - u32 localOffset; - s32 localLength; - - struct MapHeader const *const mapHeader = GetMapHeaderFromConnection(connection); - +// To convert our x/y into coordinates that are relative to the connected map, we must: +// - Subtract the virtual offset used for the border buffer (MAP_OFFSET). +// - Subtract the horizontal offset between North/South connections, or the vertical offset for East/West +// - Account for map size. (0,0) is in the NW corner of our map, so when looking North/West we have to add the height/width of the connected map, +// and when looking South/East we have to subtract the height/width of our current map. +#define localX (x - MAP_OFFSET) +#define localY (y - MAP_OFFSET) switch (connection->direction) { - // same weird temp variable behavior seen in IsHiddenItemPresentAtCoords case CONNECTION_NORTH: - localOffset = connection->offset + MAP_OFFSET; - localX = x - localOffset; - localLength = mapHeader->mapLayout->height - MAP_OFFSET; - localY = localLength + y; // additions are reversed for some reason + connectionX = localX - connection->offset; + connectionY = connectionHeader->mapLayout->height + localY; break; case CONNECTION_SOUTH: - localOffset = connection->offset + MAP_OFFSET; - localX = x - localOffset; - localLength = gMapHeader.mapLayout->height + MAP_OFFSET; - localY = y - localLength; + connectionX = localX - connection->offset; + connectionY = localY - gMapHeader.mapLayout->height; break; case CONNECTION_WEST: - localLength = mapHeader->mapLayout->width - MAP_OFFSET; - localX = localLength + x; // additions are reversed for some reason - localOffset = connection->offset + MAP_OFFSET; - localY = y - localOffset; + connectionX = connectionHeader->mapLayout->width + localX; + connectionY = localY - connection->offset; break; case CONNECTION_EAST: - localLength = gMapHeader.mapLayout->width + MAP_OFFSET; - localX = x - localLength; - localOffset = connection->offset + MAP_OFFSET; - localY = y - localOffset; + connectionX = localX - gMapHeader.mapLayout->width; + connectionY = localY - connection->offset; break; default: return FALSE; } - return IsHiddenItemPresentAtCoords(mapHeader->events, localX, localY); + return IsHiddenItemPresentAtCoords(connectionHeader->events, connectionX, connectionY); } +#undef localX +#undef localY + static void CheckForHiddenItemsInMapConnection(u8 taskId) { s16 playerX, playerY; From 7d921fa89b877ec0a76d6441453c005fa516590d Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Wed, 14 Aug 2024 18:27:44 -0400 Subject: [PATCH 45/99] Slight storage system documentation --- src/pokemon_storage_system.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index b398b88752..48eefd66fd 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -4824,7 +4824,7 @@ static void MovePartySpriteToNextSlot(struct Sprite *sprite, u16 partyId) sprite->sMonY = (u16)(sprite->y) * 8; sprite->sSpeedX = ((x * 8) - sprite->sMonX) / 8; sprite->sSpeedY = ((y * 8) - sprite->sMonY) / 8; - sprite->data[6] = 8; + sprite->sMoveSteps = 8; sprite->callback = SpriteCB_MovePartyMonToNextSlot; } @@ -8258,7 +8258,7 @@ static bool8 MultiMove_GrabSelection(void) if (!DoMonPlaceChange()) { StartCursorAnim(CURSOR_ANIM_FIST); - MultiMove_InitMove(0, 256, 8); + MultiMove_InitMove(0, Q_8_8(1), 8); InitMultiMonPlaceChange(TRUE); sMultiMove->state++; } @@ -8291,7 +8291,7 @@ static bool8 MultiMove_PlaceMons(void) { case 0: MultiMove_SetPlacedMonData(); - MultiMove_InitMove(0, -256, 8); + MultiMove_InitMove(0, Q_8_8(-1), 8); InitMultiMonPlaceChange(FALSE); sMultiMove->state++; break; @@ -8335,25 +8335,25 @@ static bool8 MultiMove_TryMoveGroup(u8 dir) if (sMultiMove->minRow == 0) return FALSE; sMultiMove->minRow--; - MultiMove_InitMove(0, 1024, 6); + MultiMove_InitMove(0, Q_8_8(4), 6); break; case 1: // Down if (sMultiMove->minRow + sMultiMove->rowsTotal >= IN_BOX_ROWS) return FALSE; sMultiMove->minRow++; - MultiMove_InitMove(0, -1024, 6); + MultiMove_InitMove(0, Q_8_8(-4), 6); break; case 2: // Left if (sMultiMove->minColumn == 0) return FALSE; sMultiMove->minColumn--; - MultiMove_InitMove(1024, 0, 6); + MultiMove_InitMove(Q_8_8(4), 0, 6); break; case 3: // Right if (sMultiMove->minColumn + sMultiMove->columnsTotal >= IN_BOX_COLUMNS) return FALSE; sMultiMove->minColumn++; - MultiMove_InitMove(-1024, 0, 6); + MultiMove_InitMove(Q_8_8(-4), 0, 6); break; } return TRUE; From c1ee43254e7f9e5032fd61eac65e090c3a80049f Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Thu, 15 Aug 2024 19:34:56 +0200 Subject: [PATCH 46/99] Clean up defines lacking spaces --- include/battle.h | 16 ++++++++-------- include/battle_main.h | 6 +++--- include/battle_util.h | 6 +++--- include/constants/items.h | 4 ++-- include/data.h | 8 ++++---- include/gba/defines.h | 2 +- include/global.h | 4 ++-- include/mail.h | 2 +- include/menu_specialized.h | 2 +- include/random.h | 4 ++-- src/battle_setup.c | 2 +- src/data/decoration/tilemaps.h | 2 +- src/data/pokemon/experience_tables.h | 12 ++++++------ src/data/union_room.h | 8 ++++---- src/field_specials.c | 14 +++++++------- src/fieldmap.c | 2 +- src/frontier_pass.c | 2 +- src/link_rfu_2.c | 2 +- src/menu_specialized.c | 2 +- src/pokemon_jump.c | 2 +- src/pokenav_ribbons_summary.c | 2 +- src/region_map.c | 2 +- src/roulette.c | 10 +++++----- src/union_room_player_avatar.c | 2 +- 24 files changed, 59 insertions(+), 59 deletions(-) diff --git a/include/battle.h b/include/battle.h index eb25b96550..1edd784030 100644 --- a/include/battle.h +++ b/include/battle.h @@ -460,26 +460,26 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER typeArg = gBattleMoves[move].type; \ } -#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY) -#define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY) +#define IS_TYPE_PHYSICAL(moveType) (moveType < TYPE_MYSTERY) +#define IS_TYPE_SPECIAL(moveType) (moveType > TYPE_MYSTERY) #define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0)) -#define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].types[0] == type || gBattleMons[battlerId].types[1] == type)) +#define IS_BATTLER_OF_TYPE(battlerId, type) ((gBattleMons[battlerId].types[0] == type || gBattleMons[battlerId].types[1] == type)) #define SET_BATTLER_TYPE(battlerId, type) \ { \ gBattleMons[battlerId].types[0] = type; \ gBattleMons[battlerId].types[1] = type; \ } -#define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 -#define GET_STAT_BUFF_VALUE2(n)((n & 0xF0)) -#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 +#define GET_STAT_BUFF_ID(n) ((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 +#define GET_STAT_BUFF_VALUE2(n) ((n & 0xF0)) +#define GET_STAT_BUFF_VALUE(n) (((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit -#define SET_STAT_BUFF_VALUE(n)((((n) << 4) & 0xF0)) +#define SET_STAT_BUFF_VALUE(n) ((((n) << 4) & 0xF0)) -#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7)) +#define SET_STATCHANGER(statId, stage, goesDown) (gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7)) // NOTE: The members of this struct have hard-coded offsets // in include/constants/battle_script_commands.h diff --git a/include/battle_main.h b/include/battle_main.h index e3e0cb7ea4..ae970286ca 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -23,9 +23,9 @@ struct MultiPartnerMenuPokemon }; // defines for the u8 array gTypeEffectiveness -#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0])) -#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1])) -#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2])) +#define TYPE_EFFECT_ATK_TYPE(i) ((gTypeEffectiveness[i + 0])) +#define TYPE_EFFECT_DEF_TYPE(i) ((gTypeEffectiveness[i + 1])) +#define TYPE_EFFECT_MULTIPLIER(i) ((gTypeEffectiveness[i + 2])) // defines for the gTypeEffectiveness multipliers #define TYPE_MUL_NO_EFFECT 0 diff --git a/include/battle_util.h b/include/battle_util.h index c7de9aae86..870990e9f5 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -33,9 +33,9 @@ #define ABILITYEFFECT_WATER_SPORT 254 #define ABILITYEFFECT_SWITCH_IN_WEATHER 255 -#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0)) -#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0)) -#define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0)) +#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId) (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0)) +#define ABILITY_ON_FIELD(abilityId) (AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0)) +#define ABILITY_ON_FIELD2(abilityId) (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0)) // For the first argument of ItemBattleEffects, to deteremine which block of item effects to try #define ITEMEFFECT_ON_SWITCH_IN 0 diff --git a/include/constants/items.h b/include/constants/items.h index ed9bfb5ec8..9e6fecf014 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -441,8 +441,8 @@ #define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1) #define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX) -#define ITEM_TO_BERRY(itemId)(((itemId) - FIRST_BERRY_INDEX) + 1) -#define ITEM_TO_MAIL(itemId)((itemId) - FIRST_MAIL_INDEX) +#define ITEM_TO_BERRY(itemId) (((itemId) - FIRST_BERRY_INDEX) + 1) +#define ITEM_TO_MAIL(itemId) ((itemId) - FIRST_MAIL_INDEX) #define MAIL_NONE 0xFF #define NUM_TECHNICAL_MACHINES 50 diff --git a/include/data.h b/include/data.h index 41b34d73e2..558b1dfff3 100644 --- a/include/data.h +++ b/include/data.h @@ -28,9 +28,9 @@ struct MonCoords u8 y_offset; }; -#define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8)) -#define GET_MON_COORDS_WIDTH(size)((size >> 4) * 8) -#define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 8) +#define MON_COORDS_SIZE(width, height) (DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8)) +#define GET_MON_COORDS_WIDTH(size) ((size >> 4) * 8) +#define GET_MON_COORDS_HEIGHT(size) ((size & 0xF) * 8) struct TrainerMonNoItemDefaultMoves { @@ -91,7 +91,7 @@ struct Trainer /*0x24*/ union TrainerMonPtr party; }; -#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) +#define TRAINER_ENCOUNTER_MUSIC(trainer) ((gTrainers[trainer].encounterMusic_gender & 0x7F)) extern const u16 gMinigameDigits_Pal[]; extern const u32 gMinigameDigits_Gfx[]; diff --git a/include/gba/defines.h b/include/gba/defines.h index fa3a30fd6e..febe6882cf 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -75,7 +75,7 @@ #define DISPLAY_TILE_HEIGHT (DISPLAY_HEIGHT / TILE_HEIGHT) // Size of different tile formats in bytes -#define TILE_SIZE(bpp)((bpp) * TILE_WIDTH * TILE_HEIGHT / 8) +#define TILE_SIZE(bpp) ((bpp) * TILE_WIDTH * TILE_HEIGHT / 8) #define TILE_SIZE_1BPP TILE_SIZE(1) // 8 #define TILE_SIZE_4BPP TILE_SIZE(4) // 32 #define TILE_SIZE_8BPP TILE_SIZE(8) // 64 diff --git a/include/global.h b/include/global.h index 658af43da7..00d608e672 100644 --- a/include/global.h +++ b/include/global.h @@ -89,7 +89,7 @@ // There are cases where GF does a&(n-1) where we would really like to have a%n, because // if n is changed to a value that isn't a power of 2 then a&(n-1) is unlikely to work as // intended, and a%n for powers of 2 isn't always optimized to use &. -#define MOD(a, n)(((n) & ((n)-1)) ? ((a) % (n)) : ((a) & ((n)-1))) +#define MOD(a, n) (((n) & ((n)-1)) ? ((a) % (n)) : ((a) & ((n)-1))) // Extracts the upper 16 bits of a 32-bit number #define HIHALF(n) (((n) & 0xFFFF0000) >> 16) @@ -130,7 +130,7 @@ f; \ }) -#define DIV_ROUND_UP(val, roundBy)(((val) / (roundBy)) + (((val) % (roundBy)) ? 1 : 0)) +#define DIV_ROUND_UP(val, roundBy) (((val) / (roundBy)) + (((val) % (roundBy)) ? 1 : 0)) #define ROUND_BITS_TO_BYTES(numBits) DIV_ROUND_UP(numBits, 8) diff --git a/include/mail.h b/include/mail.h index f4590a70ec..403078f097 100644 --- a/include/mail.h +++ b/include/mail.h @@ -1,7 +1,7 @@ #ifndef GUARD_MAIL_H #define GUARD_MAIL_H -#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \ +#define IS_ITEM_MAIL(itemId) ((itemId == ITEM_ORANGE_MAIL \ || itemId == ITEM_HARBOR_MAIL \ || itemId == ITEM_GLITTER_MAIL \ || itemId == ITEM_MECH_MAIL \ diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 06a188b8a0..152afb59ac 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -44,7 +44,7 @@ enum { // The number of extra sparkles shown on a Pokémon's condition screen. // All Pokémon start with 1, so the max here is MAX_CONDITION_SPARKLES - 1 -#define GET_NUM_CONDITION_SPARKLES(sheen)((sheen) != MAX_SHEEN) ? (sheen) / ((u32)MAX_SHEEN / (MAX_CONDITION_SPARKLES - 1) + 1) : MAX_CONDITION_SPARKLES - 1; +#define GET_NUM_CONDITION_SPARKLES(sheen) ((sheen) != MAX_SHEEN) ? (sheen) / ((u32)MAX_SHEEN / (MAX_CONDITION_SPARKLES - 1) + 1) : MAX_CONDITION_SPARKLES - 1; #define CONDITION_GRAPH_TOP_Y 56 #define CONDITION_GRAPH_BOTTOM_Y 121 diff --git a/include/random.h b/include/random.h index 6bf61de6c6..ba7aeccc1a 100644 --- a/include/random.h +++ b/include/random.h @@ -13,8 +13,8 @@ u16 Random2(void); // The number 1103515245 comes from the example implementation of rand and srand // in the ISO C standard. -#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691) -#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345) +#define ISO_RANDOMIZE1(val) (1103515245 * (val) + 24691) +#define ISO_RANDOMIZE2(val) (1103515245 * (val) + 12345) //Sets the initial seed value of the pseudorandom number generator void SeedRng(u16 seed); diff --git a/src/battle_setup.c b/src/battle_setup.c index e87ce6dd27..be5b09e5e5 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -859,7 +859,7 @@ static u8 GetTrainerBattleTransition(void) return sBattleTransitionTable_Trainer[transitionType][1]; } -#define RANDOM_TRANSITION(table)(table[Random() % ARRAY_COUNT(table)]) +#define RANDOM_TRANSITION(table) (table[Random() % ARRAY_COUNT(table)]) u8 GetSpecialBattleTransition(s32 id) { u16 var; diff --git a/src/data/decoration/tilemaps.h b/src/data/decoration/tilemaps.h index eebb3acb25..d6c351ae85 100644 --- a/src/data/decoration/tilemaps.h +++ b/src/data/decoration/tilemaps.h @@ -171,7 +171,7 @@ static const u8 sDecorTilemap_3x2_X[] = { 0x06, 0x07, 0x06, 0x07, 0x06, 0x07 }; -#define DECORSIZE(width, height)((width) * (height) * 4) +#define DECORSIZE(width, height) ((width) * (height) * 4) static const struct { const u8 *tiles; diff --git a/src/data/pokemon/experience_tables.h b/src/data/pokemon/experience_tables.h index 8f50e10918..848d5c5016 100644 --- a/src/data/pokemon/experience_tables.h +++ b/src/data/pokemon/experience_tables.h @@ -1,10 +1,10 @@ -#define SQUARE(n)((n) * (n)) -#define CUBE(n)((n) * (n) * (n)) +#define SQUARE(n) ((n) * (n)) +#define CUBE(n) ((n) * (n) * (n)) -#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4 -#define EXP_FAST(n)((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5 -#define EXP_MEDIUM_FAST(n)(CUBE(n)) // (n)^3 -#define EXP_MEDIUM_SLOW(n)((6 * CUBE(n)) / 5 - (15 * SQUARE(n)) + (100 * n) - 140) // (6 * (n)^3) / 5 - (15 * (n)^2) + (100 * n) - 140 +#define EXP_SLOW(n) ((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4 +#define EXP_FAST(n) ((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5 +#define EXP_MEDIUM_FAST(n) (CUBE(n)) // (n)^3 +#define EXP_MEDIUM_SLOW(n) ((6 * CUBE(n)) / 5 - (15 * SQUARE(n)) + (100 * n) - 140) // (6 * (n)^3) / 5 - (15 * (n)^2) + (100 * n) - 140 #define EXP_ERRATIC(n) \ (n <= 50) ? ((100 - n) * CUBE(n) / 50) \ :(n <= 68) ? ((150 - n) * CUBE(n) / 100) \ diff --git a/src/data/union_room.h b/src/data/union_room.h index 129c629941..c4bd984736 100644 --- a/src/data/union_room.h +++ b/src/data/union_room.h @@ -633,10 +633,10 @@ static const struct WindowTemplate sWindowTemplate_BButtonCancel = { // Minimum and maximum number of players for a link group // A minimum of 0 means the min and max are equal -#define LINK_GROUP_CAPACITY(min, max)(((min) << 12) | ((max) << 8)) -#define GROUP_MAX(capacity)(capacity & 0x0F) -#define GROUP_MIN(capacity)(capacity >> 4) -#define GROUP_MIN2(capacity)(capacity & 0xF0) // Unnecessary to have both, but needed to match +#define LINK_GROUP_CAPACITY(min, max) (((min) << 12) | ((max) << 8)) +#define GROUP_MAX(capacity) (capacity & 0x0F) +#define GROUP_MIN(capacity) (capacity >> 4) +#define GROUP_MIN2(capacity) (capacity & 0xF0) // Unnecessary to have both, but needed to match static const u32 sLinkGroupToActivityAndCapacity[NUM_LINK_GROUP_TYPES] = { [LINK_GROUP_SINGLE_BATTLE] = ACTIVITY_BATTLE_SINGLE | LINK_GROUP_CAPACITY(0, 2), diff --git a/src/field_specials.c b/src/field_specials.c index 7d20d3571d..d8fc96c49d 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3957,14 +3957,14 @@ bool8 InPokemonCenter(void) #define FANCLUB_BITFIELD (gSaveBlock1Ptr->vars[VAR_FANCLUB_FAN_COUNTER - VARS_START]) #define FANCLUB_COUNTER 0x007F -#define GET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD >> (flag) & 1) -#define SET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD |= 1 << (flag)) -#define FLIP_TRAINER_FAN_CLUB_FLAG(flag)(FANCLUB_BITFIELD ^= 1 << (flag)) +#define GET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD >> (flag) & 1) +#define SET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD |= 1 << (flag)) +#define FLIP_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD ^= 1 << (flag)) -#define GET_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD & FANCLUB_COUNTER) -#define SET_TRAINER_FAN_CLUB_COUNTER(count) (FANCLUB_BITFIELD = (FANCLUB_BITFIELD & ~FANCLUB_COUNTER) | (count)) -#define INCR_TRAINER_FAN_CLUB_COUNTER(count)(FANCLUB_BITFIELD += (count)) -#define CLEAR_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD &= ~FANCLUB_COUNTER) +#define GET_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD & FANCLUB_COUNTER) +#define SET_TRAINER_FAN_CLUB_COUNTER(count) (FANCLUB_BITFIELD = (FANCLUB_BITFIELD & ~FANCLUB_COUNTER) | (count)) +#define INCR_TRAINER_FAN_CLUB_COUNTER(count) (FANCLUB_BITFIELD += (count)) +#define CLEAR_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD &= ~FANCLUB_COUNTER) void ResetFanClub(void) { diff --git a/src/fieldmap.c b/src/fieldmap.c index 5fdc4cbfb7..e4dc0026a3 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -48,7 +48,7 @@ static const struct MapConnection *GetIncomingConnection(u8 direction, int x, in static bool8 IsPosInIncomingConnectingMap(u8 direction, int x, int y, const struct MapConnection *connection); static bool8 IsCoordInIncomingConnectingMap(int coord, int srcMax, int destMax, int offset); -#define GetBorderBlockAt(x, y)({ \ +#define GetBorderBlockAt(x, y) ({ \ u16 block; \ int i; \ const u16 *border = gMapHeader.mapLayout->border; /* Unused, they read it again below */ \ diff --git a/src/frontier_pass.c b/src/frontier_pass.c index 07e06ad3b9..a351d81ce9 100644 --- a/src/frontier_pass.c +++ b/src/frontier_pass.c @@ -1241,7 +1241,7 @@ static void ShowHideZoomingArea(bool8 show, bool8 zoomedIn) static void UpdateAreaHighlight(u8 cursorArea, u8 previousCursorArea) { - #define NON_HIGHLIGHT_AREA(area)((area) == CURSOR_AREA_NOTHING || (area) > CURSOR_AREA_CANCEL) + #define NON_HIGHLIGHT_AREA(area) ((area) == CURSOR_AREA_NOTHING || (area) > CURSOR_AREA_CANCEL) // If moving off highlightable area, unhighlight it switch (previousCursorArea) diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 9979097a49..b34c7184cf 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -138,7 +138,7 @@ static const u8 sAvailSlots[] = { [4] = AVAIL_SLOT4 }; -#define BLOCK_MASK(bitNum)((1 << (bitNum)) - 1) +#define BLOCK_MASK(bitNum) ((1 << (bitNum)) - 1) static const u32 sAllBlocksReceived[] = { BLOCK_MASK(0), BLOCK_MASK(1), diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 20ddce1f44..1272277aa5 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -317,7 +317,7 @@ void MailboxMenu_Free(void) // filled with the graph color. //--------------------------------------- -#define SHIFT_RIGHT_ADJUSTED(n, s)(((n) >> (s)) + (((n) >> ((s) - 1)) & 1)) +#define SHIFT_RIGHT_ADJUSTED(n, s) (((n) >> (s)) + (((n) >> ((s) - 1)) & 1)) void ConditionGraph_Init(struct ConditionGraph *graph) { diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index d744ff6650..a1c401c6df 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -108,7 +108,7 @@ enum { // the lower 8 bits are a timer to the next state. // When the timer is incremented above 255, it increments // the vine state and the timer is reset. -#define VINE_STATE_TIMER(vineState)(((vineState) << 8) | 0xFF) +#define VINE_STATE_TIMER(vineState) (((vineState) << 8) | 0xFF) enum { MONSTATE_NORMAL, // Pokémon is either on the ground or in the middle of a jump diff --git a/src/pokenav_ribbons_summary.c b/src/pokenav_ribbons_summary.c index e77f839a80..c799daf57b 100644 --- a/src/pokenav_ribbons_summary.c +++ b/src/pokenav_ribbons_summary.c @@ -1080,7 +1080,7 @@ enum { RIBBONGFX_GIFT_3, }; -#define TO_PAL_OFFSET(palNum)((palNum) - PALTAG_RIBBON_ICONS_1) +#define TO_PAL_OFFSET(palNum) ((palNum) - PALTAG_RIBBON_ICONS_1) struct { diff --git a/src/region_map.c b/src/region_map.c index 21c6314d30..8fa53a0e7b 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -189,7 +189,7 @@ static const u16 sTerraOrMarineCaveMapSecIds[ABNORMAL_WEATHER_LOCATIONS] = [ABNORMAL_WEATHER_ROUTE_129_EAST - 1] = MAPSEC_ROUTE_129 }; -#define MARINE_CAVE_COORD(location)(ABNORMAL_WEATHER_##location - MARINE_CAVE_LOCATIONS_START) +#define MARINE_CAVE_COORD(location) (ABNORMAL_WEATHER_##location - MARINE_CAVE_LOCATIONS_START) static const struct UCoords16 sMarineCaveLocationCoords[MARINE_CAVE_LOCATIONS] = { diff --git a/src/roulette.c b/src/roulette.c index ec4c8cfcfe..f4e6012a8d 100644 --- a/src/roulette.c +++ b/src/roulette.c @@ -70,13 +70,13 @@ // Get the id of the col/row from the selection ID // e.g. GET_ROW(SQU_PURPLE_SKITTY) is ROW_PURPLE -#define GET_COL(selectionId)((selectionId) % (NUM_BOARD_POKES + 1)) -#define GET_ROW(selectionId)((selectionId) / (NUM_BOARD_POKES + 1) * (NUM_BOARD_POKES + 1)) +#define GET_COL(selectionId) ((selectionId) % (NUM_BOARD_POKES + 1)) +#define GET_ROW(selectionId) ((selectionId) / (NUM_BOARD_POKES + 1) * (NUM_BOARD_POKES + 1)) // Get the col/row index from the selection ID // e.g. GET_ROW_IDX(SQU_PURPLE_SKITTY) is 2 (purple being the 3rd row) -#define GET_COL_IDX(selectionId)(selectionId - 1) -#define GET_ROW_IDX(selectionId)(selectionId / 5 - 1) +#define GET_COL_IDX(selectionId) (selectionId - 1) +#define GET_ROW_IDX(selectionId) (selectionId / 5 - 1) // Flags for the above selections, used to set which spaces have been hit or bet on #define F_WYNAUT_COL (1 << COL_WYNAUT) @@ -149,7 +149,7 @@ // 2 different Roulette tables with 2 different rates (normal vs service day special) // & 1 gets which table, >> 7 gets if ROULETTE_SPECIAL_RATE is set -#define GET_MIN_BET_ID(var)(((var) & 1) + (((var) >> 7) * 2)) +#define GET_MIN_BET_ID(var) (((var) & 1) + (((var) >> 7) * 2)) // Having Shroomish or Taillow in the party can make rolls more consistent in length // It also increases the likelihood that, if they appear to unstick a ball, they'll move it to a slot the player bet on diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index a7d5045b38..1bb7968359 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -14,7 +14,7 @@ // Each parent player can lead a group of up to MAX_RFU_PLAYERS (including themselves). // Multiply the leader's id by MAX_RFU_PLAYERS and add the member's id (0 if the leader) to // get the sprite index of that player. -#define UR_PLAYER_SPRITE_ID(leaderId, memberId)(MAX_RFU_PLAYERS * leaderId + memberId) +#define UR_PLAYER_SPRITE_ID(leaderId, memberId) (MAX_RFU_PLAYERS * leaderId + memberId) static EWRAM_DATA struct UnionRoomObject * sUnionObjWork = NULL; static EWRAM_DATA u32 sUnionObjRefreshTimer = 0; From 3f49c5cbaf5bd8bdb02cb54d0a44e61faba114f4 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 7 Aug 2024 16:24:30 -0400 Subject: [PATCH 47/99] Fix trainer match call flags --- include/constants/flags.h | 164 +++++++++++++++++----------------- include/constants/rematches.h | 89 ++++++++++++++++++ include/gym_leader_rematch.h | 85 +----------------- map_data_rules.mk | 4 +- src/battle_setup.c | 4 +- src/field_specials.c | 2 +- src/match_call.c | 11 +-- src/pokenav_match_call_data.c | 16 ++-- src/pokenav_match_call_list.c | 2 +- 9 files changed, 194 insertions(+), 183 deletions(-) create mode 100644 include/constants/rematches.h diff --git a/include/constants/flags.h b/include/constants/flags.h index 8d98e3aa04..5b1b5efd19 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -2,6 +2,7 @@ #define GUARD_CONSTANTS_FLAGS_H #include "constants/opponents.h" +#include "constants/rematches.h" // Temporary Flags // These temporary flags are are cleared every time a map is loaded. They are used @@ -375,86 +376,89 @@ #define FLAG_MET_FRONTIER_BEAUTY_MOVE_TUTOR 0x15A #define FLAG_MET_FRONTIER_SWIMMER_MOVE_TUTOR 0x15B -// Trainer Rematch Flags -#define FLAG_MATCH_CALL_REGISTERED 0x15C -#define FLAG_REMATCH_ROSE 0x15D -#define FLAG_REMATCH_ANDRES 0x15E -#define FLAG_REMATCH_DUSTY 0x15F -#define FLAG_REMATCH_LOLA 0x160 -#define FLAG_REMATCH_RICKY 0x161 -#define FLAG_REMATCH_LILA_AND_ROY 0x162 -#define FLAG_REMATCH_CRISTIN 0x163 -#define FLAG_REMATCH_BROOKE 0x164 -#define FLAG_REMATCH_WILTON 0x165 -#define FLAG_REMATCH_VALERIE 0x166 -#define FLAG_REMATCH_CINDY 0x167 -#define FLAG_REMATCH_THALIA 0x168 -#define FLAG_REMATCH_JESSICA 0x169 -#define FLAG_REMATCH_WINSTON 0x16A -#define FLAG_REMATCH_STEVE 0x16B -#define FLAG_REMATCH_TONY 0x16C -#define FLAG_REMATCH_NOB 0x16D -#define FLAG_REMATCH_KOJI 0x16E -#define FLAG_REMATCH_FERNANDO 0x16F -#define FLAG_REMATCH_DALTON 0x170 -#define FLAG_REMATCH_BERNIE 0x171 -#define FLAG_REMATCH_ETHAN 0x172 -#define FLAG_REMATCH_JOHN_AND_JAY 0x173 -#define FLAG_REMATCH_JEFFREY 0x174 -#define FLAG_REMATCH_CAMERON 0x175 -#define FLAG_REMATCH_JACKI 0x176 -#define FLAG_REMATCH_WALTER 0x177 -#define FLAG_REMATCH_KAREN 0x178 -#define FLAG_REMATCH_JERRY 0x179 -#define FLAG_REMATCH_ANNA_AND_MEG 0x17A -#define FLAG_REMATCH_ISABEL 0x17B -#define FLAG_REMATCH_MIGUEL 0x17C -#define FLAG_REMATCH_TIMOTHY 0x17D -#define FLAG_REMATCH_SHELBY 0x17E -#define FLAG_REMATCH_CALVIN 0x17F -#define FLAG_REMATCH_ELLIOT 0x180 -#define FLAG_REMATCH_ISAIAH 0x181 -#define FLAG_REMATCH_MARIA 0x182 -#define FLAG_REMATCH_ABIGAIL 0x183 -#define FLAG_REMATCH_DYLAN 0x184 -#define FLAG_REMATCH_KATELYN 0x185 -#define FLAG_REMATCH_BENJAMIN 0x186 -#define FLAG_REMATCH_PABLO 0x187 -#define FLAG_REMATCH_NICOLAS 0x188 -#define FLAG_REMATCH_ROBERT 0x189 -#define FLAG_REMATCH_LAO 0x18A -#define FLAG_REMATCH_CYNDY 0x18B -#define FLAG_REMATCH_MADELINE 0x18C -#define FLAG_REMATCH_JENNY 0x18D -#define FLAG_REMATCH_DIANA 0x18E -#define FLAG_REMATCH_AMY_AND_LIV 0x18F -#define FLAG_REMATCH_ERNEST 0x190 -#define FLAG_REMATCH_CORY 0x191 -#define FLAG_REMATCH_EDWIN 0x192 -#define FLAG_REMATCH_LYDIA 0x193 -#define FLAG_REMATCH_ISAAC 0x194 -#define FLAG_REMATCH_GABRIELLE 0x195 -#define FLAG_REMATCH_CATHERINE 0x196 -#define FLAG_REMATCH_JACKSON 0x197 -#define FLAG_REMATCH_HALEY 0x198 -#define FLAG_REMATCH_JAMES 0x199 -#define FLAG_REMATCH_TRENT 0x19A -#define FLAG_REMATCH_SAWYER 0x19B -#define FLAG_REMATCH_KIRA_AND_DAN 0x19C -#define FLAG_REMATCH_WALLY 0x19D -#define FLAG_REMATCH_ROXANNE 0x19E -#define FLAG_REMATCH_BRAWLY 0x19F -#define FLAG_REMATCH_WATTSON 0x1A0 -#define FLAG_REMATCH_FLANNERY 0x1A1 -#define FLAG_REMATCH_NORMAN 0x1A2 -#define FLAG_REMATCH_WINONA 0x1A3 -#define FLAG_REMATCH_TATE_AND_LIZA 0x1A4 -// Note: FLAG_REMATCH_JUAN is handled by FLAG_ENABLE_JUAN_MATCH_CALL instead. -#define FLAG_REMATCH_SIDNEY 0x1A5 -#define FLAG_REMATCH_PHOEBE 0x1A6 -#define FLAG_REMATCH_GLACIA 0x1A7 -#define FLAG_REMATCH_DRAKE 0x1A8 -#define FLAG_REMATCH_WALLACE 0x1A9 +// Flags for whether a rematchable trainer has been registered in the player's Match Call. +// Most are used implicitly by adding their REMATCH_* id to TRAINER_REGISTERED_FLAGS_START. +// Some Match Call entries (like those for gym leaders, Wally, and all non-trainer NPCs like Prof. Birch) +// have their own separate flag that needs to be set to be enabled; see src/pokenav_match_call_data.c +#define TRAINER_REGISTERED_FLAGS_START 0x15C +#define FLAG_REGISTERED_ROSE (TRAINER_REGISTERED_FLAGS_START + REMATCH_ROSE) +#define FLAG_REGISTERED_ANDRES (TRAINER_REGISTERED_FLAGS_START + REMATCH_ANDRES) +#define FLAG_REGISTERED_DUSTY (TRAINER_REGISTERED_FLAGS_START + REMATCH_DUSTY) +#define FLAG_REGISTERED_LOLA (TRAINER_REGISTERED_FLAGS_START + REMATCH_LOLA) +#define FLAG_REGISTERED_RICKY (TRAINER_REGISTERED_FLAGS_START + REMATCH_RICKY) +#define FLAG_REGISTERED_LILA_AND_ROY (TRAINER_REGISTERED_FLAGS_START + REMATCH_LILA_AND_ROY) +#define FLAG_REGISTERED_CRISTIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_CRISTIN) +#define FLAG_REGISTERED_BROOKE (TRAINER_REGISTERED_FLAGS_START + REMATCH_BROOKE) +#define FLAG_REGISTERED_WILTON (TRAINER_REGISTERED_FLAGS_START + REMATCH_WILTON) +#define FLAG_REGISTERED_VALERIE (TRAINER_REGISTERED_FLAGS_START + REMATCH_VALERIE) +#define FLAG_REGISTERED_CINDY (TRAINER_REGISTERED_FLAGS_START + REMATCH_CINDY) +#define FLAG_REGISTERED_THALIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_THALIA) +#define FLAG_REGISTERED_JESSICA (TRAINER_REGISTERED_FLAGS_START + REMATCH_JESSICA) +#define FLAG_REGISTERED_WINSTON (TRAINER_REGISTERED_FLAGS_START + REMATCH_WINSTON) +#define FLAG_REGISTERED_STEVE (TRAINER_REGISTERED_FLAGS_START + REMATCH_STEVE) +#define FLAG_REGISTERED_TONY (TRAINER_REGISTERED_FLAGS_START + REMATCH_TONY) +#define FLAG_REGISTERED_NOB (TRAINER_REGISTERED_FLAGS_START + REMATCH_NOB) +#define FLAG_REGISTERED_KOJI (TRAINER_REGISTERED_FLAGS_START + REMATCH_KOJI) +#define FLAG_REGISTERED_FERNANDO (TRAINER_REGISTERED_FLAGS_START + REMATCH_FERNANDO) +#define FLAG_REGISTERED_DALTON (TRAINER_REGISTERED_FLAGS_START + REMATCH_DALTON) +#define FLAG_REGISTERED_BERNIE (TRAINER_REGISTERED_FLAGS_START + REMATCH_BERNIE) +#define FLAG_REGISTERED_ETHAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_ETHAN) +#define FLAG_REGISTERED_JOHN_AND_JAY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JOHN_AND_JAY) +#define FLAG_REGISTERED_JEFFREY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JEFFREY) +#define FLAG_REGISTERED_CAMERON (TRAINER_REGISTERED_FLAGS_START + REMATCH_CAMERON) +#define FLAG_REGISTERED_JACKI (TRAINER_REGISTERED_FLAGS_START + REMATCH_JACKI) +#define FLAG_REGISTERED_WALTER (TRAINER_REGISTERED_FLAGS_START + REMATCH_WALTER) +#define FLAG_REGISTERED_KAREN (TRAINER_REGISTERED_FLAGS_START + REMATCH_KAREN) +#define FLAG_REGISTERED_JERRY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JERRY) +#define FLAG_REGISTERED_ANNA_AND_MEG (TRAINER_REGISTERED_FLAGS_START + REMATCH_ANNA_AND_MEG) +#define FLAG_REGISTERED_ISABEL (TRAINER_REGISTERED_FLAGS_START + REMATCH_ISABEL) +#define FLAG_REGISTERED_MIGUEL (TRAINER_REGISTERED_FLAGS_START + REMATCH_MIGUEL) +#define FLAG_REGISTERED_TIMOTHY (TRAINER_REGISTERED_FLAGS_START + REMATCH_TIMOTHY) +#define FLAG_REGISTERED_SHELBY (TRAINER_REGISTERED_FLAGS_START + REMATCH_SHELBY) +#define FLAG_REGISTERED_CALVIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_CALVIN) +#define FLAG_REGISTERED_ELLIOT (TRAINER_REGISTERED_FLAGS_START + REMATCH_ELLIOT) +#define FLAG_REGISTERED_ISAIAH (TRAINER_REGISTERED_FLAGS_START + REMATCH_ISAIAH) +#define FLAG_REGISTERED_MARIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_MARIA) +#define FLAG_REGISTERED_ABIGAIL (TRAINER_REGISTERED_FLAGS_START + REMATCH_ABIGAIL) +#define FLAG_REGISTERED_DYLAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_DYLAN) +#define FLAG_REGISTERED_KATELYN (TRAINER_REGISTERED_FLAGS_START + REMATCH_KATELYN) +#define FLAG_REGISTERED_BENJAMIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_BENJAMIN) +#define FLAG_REGISTERED_PABLO (TRAINER_REGISTERED_FLAGS_START + REMATCH_PABLO) +#define FLAG_REGISTERED_NICOLAS (TRAINER_REGISTERED_FLAGS_START + REMATCH_NICOLAS) +#define FLAG_REGISTERED_ROBERT (TRAINER_REGISTERED_FLAGS_START + REMATCH_ROBERT) +#define FLAG_REGISTERED_LAO (TRAINER_REGISTERED_FLAGS_START + REMATCH_LAO) +#define FLAG_REGISTERED_CYNDY (TRAINER_REGISTERED_FLAGS_START + REMATCH_CYNDY) +#define FLAG_REGISTERED_MADELINE (TRAINER_REGISTERED_FLAGS_START + REMATCH_MADELINE) +#define FLAG_REGISTERED_JENNY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JENNY) +#define FLAG_REGISTERED_DIANA (TRAINER_REGISTERED_FLAGS_START + REMATCH_DIANA) +#define FLAG_REGISTERED_AMY_AND_LIV (TRAINER_REGISTERED_FLAGS_START + REMATCH_AMY_AND_LIV) +#define FLAG_REGISTERED_ERNEST (TRAINER_REGISTERED_FLAGS_START + REMATCH_ERNEST) +#define FLAG_REGISTERED_CORY (TRAINER_REGISTERED_FLAGS_START + REMATCH_CORY) +#define FLAG_REGISTERED_EDWIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_EDWIN) +#define FLAG_REGISTERED_LYDIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_LYDIA) +#define FLAG_REGISTERED_ISAAC (TRAINER_REGISTERED_FLAGS_START + REMATCH_ISAAC) +#define FLAG_REGISTERED_GABRIELLE (TRAINER_REGISTERED_FLAGS_START + REMATCH_GABRIELLE) +#define FLAG_REGISTERED_CATHERINE (TRAINER_REGISTERED_FLAGS_START + REMATCH_CATHERINE) +#define FLAG_REGISTERED_JACKSON (TRAINER_REGISTERED_FLAGS_START + REMATCH_JACKSON) +#define FLAG_REGISTERED_HALEY (TRAINER_REGISTERED_FLAGS_START + REMATCH_HALEY) +#define FLAG_REGISTERED_JAMES (TRAINER_REGISTERED_FLAGS_START + REMATCH_JAMES) +#define FLAG_REGISTERED_TRENT (TRAINER_REGISTERED_FLAGS_START + REMATCH_TRENT) +#define FLAG_REGISTERED_SAWYER (TRAINER_REGISTERED_FLAGS_START + REMATCH_SAWYER) +#define FLAG_REGISTERED_KIRA_AND_DAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_KIRA_AND_DAN) +#define FLAG_REGISTERED_WALLY (TRAINER_REGISTERED_FLAGS_START + REMATCH_WALLY) +#define FLAG_REGISTERED_ROXANNE (TRAINER_REGISTERED_FLAGS_START + REMATCH_ROXANNE) +#define FLAG_REGISTERED_BRAWLY (TRAINER_REGISTERED_FLAGS_START + REMATCH_BRAWLY) +#define FLAG_REGISTERED_WATTSON (TRAINER_REGISTERED_FLAGS_START + REMATCH_WATTSON) +#define FLAG_REGISTERED_FLANNERY (TRAINER_REGISTERED_FLAGS_START + REMATCH_FLANNERY) +#define FLAG_REGISTERED_NORMAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_NORMAN) +#define FLAG_REGISTERED_WINONA (TRAINER_REGISTERED_FLAGS_START + REMATCH_WINONA) +#define FLAG_REGISTERED_TATE_AND_LIZA (TRAINER_REGISTERED_FLAGS_START + REMATCH_TATE_AND_LIZA) +#define FLAG_REGISTERED_JUAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_JUAN) +#define FLAG_REGISTERED_SIDNEY (TRAINER_REGISTERED_FLAGS_START + REMATCH_SIDNEY) +#define FLAG_REGISTERED_PHOEBE (TRAINER_REGISTERED_FLAGS_START + REMATCH_PHOEBE) +#define FLAG_REGISTERED_GLACIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_GLACIA) +#define FLAG_REGISTERED_DRAKE (TRAINER_REGISTERED_FLAGS_START + REMATCH_DRAKE) +#define FLAG_REGISTERED_WALLACE (TRAINER_REGISTERED_FLAGS_START + REMATCH_WALLACE) #define FLAG_UNUSED_0x1AA 0x1AA // Unused Flag #define FLAG_UNUSED_0x1AB 0x1AB // Unused Flag diff --git a/include/constants/rematches.h b/include/constants/rematches.h new file mode 100644 index 0000000000..2ddefcc578 --- /dev/null +++ b/include/constants/rematches.h @@ -0,0 +1,89 @@ +#ifndef GUARD_REMATCHES_H +#define GUARD_REMATCHES_H + +enum { + REMATCH_ROSE, + REMATCH_ANDRES, + REMATCH_DUSTY, + REMATCH_LOLA, + REMATCH_RICKY, + REMATCH_LILA_AND_ROY, + REMATCH_CRISTIN, + REMATCH_BROOKE, + REMATCH_WILTON, + REMATCH_VALERIE, + REMATCH_CINDY, + REMATCH_THALIA, + REMATCH_JESSICA, + REMATCH_WINSTON, + REMATCH_STEVE, + REMATCH_TONY, + REMATCH_NOB, + REMATCH_KOJI, + REMATCH_FERNANDO, + REMATCH_DALTON, + REMATCH_BERNIE, + REMATCH_ETHAN, + REMATCH_JOHN_AND_JAY, + REMATCH_JEFFREY, + REMATCH_CAMERON, + REMATCH_JACKI, + REMATCH_WALTER, + REMATCH_KAREN, + REMATCH_JERRY, + REMATCH_ANNA_AND_MEG, + REMATCH_ISABEL, + REMATCH_MIGUEL, + REMATCH_TIMOTHY, + REMATCH_SHELBY, + REMATCH_CALVIN, + REMATCH_ELLIOT, + REMATCH_ISAIAH, + REMATCH_MARIA, + REMATCH_ABIGAIL, + REMATCH_DYLAN, + REMATCH_KATELYN, + REMATCH_BENJAMIN, + REMATCH_PABLO, + REMATCH_NICOLAS, + REMATCH_ROBERT, + REMATCH_LAO, + REMATCH_CYNDY, + REMATCH_MADELINE, + REMATCH_JENNY, + REMATCH_DIANA, + REMATCH_AMY_AND_LIV, + REMATCH_ERNEST, + REMATCH_CORY, + REMATCH_EDWIN, + REMATCH_LYDIA, + REMATCH_ISAAC, + REMATCH_GABRIELLE, + REMATCH_CATHERINE, + REMATCH_JACKSON, + REMATCH_HALEY, + REMATCH_JAMES, + REMATCH_TRENT, + REMATCH_SAWYER, + REMATCH_KIRA_AND_DAN, + REMATCH_WALLY_VR, // Entries above WALLY are considered normal trainers, from Wally below are special trainers + REMATCH_ROXANNE, + REMATCH_BRAWLY, + REMATCH_WATTSON, + REMATCH_FLANNERY, + REMATCH_NORMAN, + REMATCH_WINONA, + REMATCH_TATE_AND_LIZA, + REMATCH_JUAN, + REMATCH_SIDNEY, // Entries from SIDNEY below are considered part of REMATCH_ELITE_FOUR_ENTRIES. + REMATCH_PHOEBE, + REMATCH_GLACIA, + REMATCH_DRAKE, + REMATCH_WALLACE, + REMATCH_TABLE_ENTRIES // The total number of rematch entries. Must be last in enum +}; + +#define REMATCH_SPECIAL_TRAINER_START REMATCH_WALLY_VR +#define REMATCH_ELITE_FOUR_ENTRIES REMATCH_SIDNEY + +#endif // GUARD_REMATCHES_H diff --git a/include/gym_leader_rematch.h b/include/gym_leader_rematch.h index b31fb5e228..622d2db1bc 100644 --- a/include/gym_leader_rematch.h +++ b/include/gym_leader_rematch.h @@ -1,90 +1,7 @@ #ifndef GUARD_TRAINER_REMATCH_H #define GUARD_TRAINER_REMATCH_H -enum { - REMATCH_ROSE, - REMATCH_ANDRES, - REMATCH_DUSTY, - REMATCH_LOLA, - REMATCH_RICKY, - REMATCH_LILA_AND_ROY, - REMATCH_CRISTIN, - REMATCH_BROOKE, - REMATCH_WILTON, - REMATCH_VALERIE, - REMATCH_CINDY, - REMATCH_THALIA, - REMATCH_JESSICA, - REMATCH_WINSTON, - REMATCH_STEVE, - REMATCH_TONY, - REMATCH_NOB, - REMATCH_KOJI, - REMATCH_FERNANDO, - REMATCH_DALTON, - REMATCH_BERNIE, - REMATCH_ETHAN, - REMATCH_JOHN_AND_JAY, - REMATCH_JEFFREY, - REMATCH_CAMERON, - REMATCH_JACKI, - REMATCH_WALTER, - REMATCH_KAREN, - REMATCH_JERRY, - REMATCH_ANNA_AND_MEG, - REMATCH_ISABEL, - REMATCH_MIGUEL, - REMATCH_TIMOTHY, - REMATCH_SHELBY, - REMATCH_CALVIN, - REMATCH_ELLIOT, - REMATCH_ISAIAH, - REMATCH_MARIA, - REMATCH_ABIGAIL, - REMATCH_DYLAN, - REMATCH_KATELYN, - REMATCH_BENJAMIN, - REMATCH_PABLO, - REMATCH_NICOLAS, - REMATCH_ROBERT, - REMATCH_LAO, - REMATCH_CYNDY, - REMATCH_MADELINE, - REMATCH_JENNY, - REMATCH_DIANA, - REMATCH_AMY_AND_LIV, - REMATCH_ERNEST, - REMATCH_CORY, - REMATCH_EDWIN, - REMATCH_LYDIA, - REMATCH_ISAAC, - REMATCH_GABRIELLE, - REMATCH_CATHERINE, - REMATCH_JACKSON, - REMATCH_HALEY, - REMATCH_JAMES, - REMATCH_TRENT, - REMATCH_SAWYER, - REMATCH_KIRA_AND_DAN, - REMATCH_WALLY_VR, // Entries above WALLY are considered normal trainers, from Wally below are special trainers - REMATCH_ROXANNE, - REMATCH_BRAWLY, - REMATCH_WATTSON, - REMATCH_FLANNERY, - REMATCH_NORMAN, - REMATCH_WINONA, - REMATCH_TATE_AND_LIZA, - REMATCH_JUAN, - REMATCH_SIDNEY, // Entries from SIDNEY below are considered part of REMATCH_ELITE_FOUR_ENTRIES. - REMATCH_PHOEBE, - REMATCH_GLACIA, - REMATCH_DRAKE, - REMATCH_WALLACE, - REMATCH_TABLE_ENTRIES // The total number of rematch entries. Must be last in enum -}; - -#define REMATCH_SPECIAL_TRAINER_START REMATCH_WALLY_VR -#define REMATCH_ELITE_FOUR_ENTRIES REMATCH_SIDNEY +#include "constants/rematches.h" void UpdateGymLeaderRematch(void); diff --git a/map_data_rules.mk b/map_data_rules.mk index 626cd47240..d3f47a352e 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -9,9 +9,9 @@ MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS)) MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS)) $(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/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 - | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ $(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) - $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ $(MAPS_DIR)/%/header.inc: $(MAPS_DIR)/%/map.json $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json diff --git a/src/battle_setup.c b/src/battle_setup.c index e87ce6dd27..435ba4b8a3 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -1615,7 +1615,7 @@ static bool32 UpdateRandomTrainerRematches(const struct RematchTrainer *table, u // Trainer already wants a rematch. Don't bother updating it. ret = TRUE; } - else if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i) + else if (FlagGet(TRAINER_REGISTERED_FLAGS_START + i) && (Random() % 100) <= 30) // 31% chance of getting a rematch. { SetRematchIdForTrainer(table, i); @@ -1744,7 +1744,7 @@ static u32 GetTrainerMatchCallFlag(u32 trainerId) for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) { if (gRematchTable[i].trainerIds[0] == trainerId) - return FLAG_MATCH_CALL_REGISTERED + i; + return TRAINER_REGISTERED_FLAGS_START + i; } return 0xFFFF; diff --git a/src/field_specials.c b/src/field_specials.c index 7d20d3571d..1bbbbf4e17 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -3620,7 +3620,7 @@ bool32 IsTrainerRegistered(void) int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); if (index >= 0) { - if (FlagGet(FLAG_MATCH_CALL_REGISTERED + index) == TRUE) + if (FlagGet(TRAINER_REGISTERED_FLAGS_START + index) == TRUE) return TRUE; } return FALSE; diff --git a/src/match_call.c b/src/match_call.c index a9d18b3477..2c1ad924a5 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -131,7 +131,7 @@ static EWRAM_DATA struct MatchCallState sMatchCallState = {0}; static EWRAM_DATA struct BattleFrontierStreakInfo sBattleFrontierStreakInfo = {0}; static u32 GetCurrentTotalMinutes(struct Time *); -static u32 GetNumRegisteredNPCs(void); +static u32 GetNumRegisteredTrainers(void); static u32 GetActiveMatchCallTrainerId(u32); static int GetTrainerMatchCallId(int); static u16 GetRematchTrainerLocation(int); @@ -1098,7 +1098,7 @@ static bool32 UpdateMatchCallStepCounter(void) static bool32 SelectMatchCallTrainer(void) { u32 matchCallId; - u32 numRegistered = GetNumRegisteredNPCs(); + u32 numRegistered = GetNumRegisteredTrainers(); if (numRegistered == 0) return FALSE; @@ -1114,12 +1114,13 @@ static bool32 SelectMatchCallTrainer(void) return TRUE; } -static u32 GetNumRegisteredNPCs(void) +// Ignores registrable non-trainer NPCs, and special trainers like Wally and the gym leaders. +static u32 GetNumRegisteredTrainers(void) { u32 i, count; for (i = 0, count = 0; i < REMATCH_SPECIAL_TRAINER_START; i++) { - if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i)) + if (FlagGet(TRAINER_REGISTERED_FLAGS_START + i)) count++; } @@ -1131,7 +1132,7 @@ static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId) u32 i; for (i = 0; i < REMATCH_SPECIAL_TRAINER_START; i++) { - if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i)) + if (FlagGet(TRAINER_REGISTERED_FLAGS_START + i)) { if (!activeMatchCallId) return gRematchTable[i].trainerIds[0]; diff --git a/src/pokenav_match_call_data.c b/src/pokenav_match_call_data.c index f6d71009bb..1c3cf9aeeb 100644 --- a/src/pokenav_match_call_data.c +++ b/src/pokenav_match_call_data.c @@ -506,7 +506,7 @@ static const struct MatchCallStructTrainer sSidneyMatchCallHeader = { .type = MC_TYPE_LEADER, .mapSec = MAPSEC_EVER_GRANDE_CITY, - .flag = FLAG_REMATCH_SIDNEY, + .flag = FLAG_REGISTERED_SIDNEY, .rematchTableIdx = REMATCH_SIDNEY, .desc = gText_EliteFourMatchCallDesc, .name = NULL, @@ -522,7 +522,7 @@ static const struct MatchCallStructTrainer sPhoebeMatchCallHeader = { .type = MC_TYPE_LEADER, .mapSec = MAPSEC_EVER_GRANDE_CITY, - .flag = FLAG_REMATCH_PHOEBE, + .flag = FLAG_REGISTERED_PHOEBE, .rematchTableIdx = REMATCH_PHOEBE, .desc = gText_EliteFourMatchCallDesc, .name = NULL, @@ -538,7 +538,7 @@ static const struct MatchCallStructTrainer sGlaciaMatchCallHeader = { .type = MC_TYPE_LEADER, .mapSec = MAPSEC_EVER_GRANDE_CITY, - .flag = FLAG_REMATCH_GLACIA, + .flag = FLAG_REGISTERED_GLACIA, .rematchTableIdx = REMATCH_GLACIA, .desc = gText_EliteFourMatchCallDesc, .name = NULL, @@ -554,7 +554,7 @@ static const struct MatchCallStructTrainer sDrakeMatchCallHeader = { .type = MC_TYPE_LEADER, .mapSec = MAPSEC_EVER_GRANDE_CITY, - .flag = FLAG_REMATCH_DRAKE, + .flag = FLAG_REGISTERED_DRAKE, .rematchTableIdx = REMATCH_DRAKE, .desc = gText_EliteFourMatchCallDesc, .name = NULL, @@ -570,7 +570,7 @@ static const struct MatchCallStructTrainer sWallaceMatchCallHeader = { .type = MC_TYPE_LEADER, .mapSec = MAPSEC_EVER_GRANDE_CITY, - .flag = FLAG_REMATCH_WALLACE, + .flag = FLAG_REGISTERED_WALLACE, .rematchTableIdx = REMATCH_WALLACE, .desc = gText_ChampionMatchCallDesc, .name = NULL, @@ -1136,7 +1136,7 @@ bool32 MatchCall_HasRematchId(u32 idx) void SetMatchCallRegisteredFlag(void) { - int r0 = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); - if (r0 >= 0) - FlagSet(FLAG_MATCH_CALL_REGISTERED + r0); + int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); + if (index >= 0) + FlagSet(TRAINER_REGISTERED_FLAGS_START + index); } diff --git a/src/pokenav_match_call_list.c b/src/pokenav_match_call_list.c index 8d1a73f557..fb89e33e0b 100755 --- a/src/pokenav_match_call_list.c +++ b/src/pokenav_match_call_list.c @@ -261,7 +261,7 @@ static u32 LoopedTask_BuildMatchCallList(s32 taskState) bool32 IsRematchEntryRegistered(int rematchIndex) { if (rematchIndex < REMATCH_TABLE_ENTRIES) - return FlagGet(FLAG_MATCH_CALL_REGISTERED + rematchIndex); + return FlagGet(TRAINER_REGISTERED_FLAGS_START + rematchIndex); return FALSE; } From 5c55cc374815fb99ef43f55b8d2332d3798efc59 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Wed, 21 Aug 2024 07:50:41 +0100 Subject: [PATCH 48/99] [preproc] support arbitrary expressions in enums --- tools/preproc/asm_file.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp index ca8b8cc4ae..36b6c7ed06 100644 --- a/tools/preproc/asm_file.cpp +++ b/tools/preproc/asm_file.cpp @@ -520,6 +520,7 @@ bool AsmFile::ParseEnum() long currentHeaderLine = SkipWhitespaceAndEol(); std::string enumName = ReadIdentifier(); currentHeaderLine += SkipWhitespaceAndEol(); + std::string enumBase = "0"; long enumCounter = 0; long symbolCount = 0; @@ -542,11 +543,28 @@ bool AsmFile::ParseEnum() if (m_buffer[m_pos] == '=') { m_pos++; - currentHeaderLine += SkipWhitespaceAndEol(); - enumCounter = ReadInteger(headerFilename, currentHeaderLine); - currentHeaderLine += SkipWhitespaceAndEol(); + SkipWhitespace(); + enumBase.clear(); + for (;;) + { + if (m_pos == m_size) + RaiseError("unexpected EOF"); + if (m_buffer[m_pos] == ',') + break; + if (m_buffer[m_pos] == '\n') + { + currentHeaderLine++; + enumBase.push_back(' '); + } + else + { + enumBase.push_back(m_buffer[m_pos]); + } + m_pos++; + } + enumCounter = 0; } - std::printf(".equiv %s, %ld\n", currentIdentName.c_str(), enumCounter); + std::printf(".equiv %s, (%s) + %ld\n", currentIdentName.c_str(), enumBase.c_str(), enumCounter); enumCounter++; symbolCount++; } From 625a006cabbf44734be2d0324264d86c3edba51b Mon Sep 17 00:00:00 2001 From: Icedude907 <34080011+Icedude907@users.noreply.github.com> Date: Fri, 30 Aug 2024 06:01:01 +1200 Subject: [PATCH 49/99] [Build System Rewrite] `mapjson` now takes output directory parameters. (#1949) --- Makefile | 57 ++-- include/constants/.gitignore | 3 + include/constants/layouts.h | 450 ------------------------- include/constants/map_groups.h | 596 --------------------------------- make_tools.mk | 14 +- map_data_rules.mk | 30 +- tools/jsonproc/jsonproc.cpp | 2 + tools/mapjson/mapjson.cpp | 112 ++++--- 8 files changed, 124 insertions(+), 1140 deletions(-) create mode 100644 include/constants/.gitignore delete mode 100755 include/constants/layouts.h delete mode 100755 include/constants/map_groups.h diff --git a/Makefile b/Makefile index bf74e0331a..15cbd709e4 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,9 @@ ifeq (compare,$(MAKECMDGOALS)) COMPARE := 1 endif +# Default make rule +all: rom + # don't use dkP's base_tools anymore # because the redefinition of $(CC) conflicts # with when we want to use $(CC) to preprocess files @@ -119,24 +122,23 @@ ifneq ($(MODERN),1) CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef endif +# Variable filled out in other make files +AUTO_GEN_TARGETS := +include make_tools.mk + SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c -GFX := tools/gbagfx/gbagfx$(EXE) -AIF := tools/aif2pcm/aif2pcm$(EXE) -MID := tools/mid2agb/mid2agb$(EXE) -SCANINC := tools/scaninc/scaninc$(EXE) -PREPROC := tools/preproc/preproc$(EXE) -RAMSCRGEN := tools/ramscrgen/ramscrgen$(EXE) -FIX := tools/gbafix/gbafix$(EXE) -MAPJSON := tools/mapjson/mapjson$(EXE) -JSONPROC := tools/jsonproc/jsonproc$(EXE) +GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE) +AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE) +MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE) +SCANINC := $(TOOLS_DIR)/scaninc/scaninc$(EXE) +PREPROC := $(TOOLS_DIR)/preproc/preproc$(EXE) +RAMSCRGEN := $(TOOLS_DIR)/ramscrgen/ramscrgen$(EXE) +FIX := $(TOOLS_DIR)/gbafix/gbafix$(EXE) +MAPJSON := $(TOOLS_DIR)/mapjson/mapjson$(EXE) +JSONPROC := $(TOOLS_DIR)/jsonproc/jsonproc$(EXE) PERL := perl -# Inclusive list. If you don't want a tool to be built, don't add it here. -TOOLDIRS := tools/aif2pcm tools/bin2c tools/gbafix tools/gbagfx tools/jsonproc tools/mapjson tools/mid2agb tools/preproc tools/ramscrgen tools/rsfont tools/scaninc -TOOLBASE = $(TOOLDIRS:tools/%=%) -TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) - MAKEFLAGS += --no-print-directory # Clear the default suffixes @@ -149,7 +151,7 @@ MAKEFLAGS += --no-print-directory # Secondary expansion is required for dependency variables in object rules. .SECONDEXPANSION: -.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) libagbsyscall modern tidymodern tidynonmodern +.PHONY: all rom clean compare tidy mostlyclean libagbsyscall modern tidymodern tidynonmodern infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) @@ -159,6 +161,7 @@ infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst # Since we don't need to reload most of this makefile ifeq (,$(filter-out all rom compare modern libagbsyscall syms,$(MAKECMDGOALS))) $(call infoshell, $(MAKE) -f make_tools.mk) +$(call infoshell, $(MAKE) generated) else NODEP ?= 1 endif @@ -209,17 +212,8 @@ SUBDIRS := $(sort $(dir $(OBJS))) $(shell mkdir -p $(SUBDIRS)) endif -AUTO_GEN_TARGETS := - -all: rom - -tools: $(TOOLDIRS) - syms: $(SYM) -$(TOOLDIRS): - @$(MAKE) -C $@ - rom: $(ROM) ifeq ($(COMPARE),1) @$(SHA1) rom.sha1 @@ -230,9 +224,6 @@ compare: all clean: mostlyclean clean-tools -clean-tools: - @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) - mostlyclean: tidynonmodern tidymodern find sound -iname '*.bin' -exec rm {} + rm -f $(MID_SUBDIR)/*.s @@ -263,6 +254,8 @@ include spritesheet_rules.mk include json_data_rules.mk include songs.mk +generated: $(AUTO_GEN_TARGETS) + %.s: ; %.png: ; %.pal: ; @@ -280,7 +273,7 @@ sound/%.bin: sound/%.aif ; $(AIF) $< $@ ifeq ($(MODERN),0) -$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) +$(C_BUILDDIR)/libc.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/libc.o: CFLAGS := -O2 $(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork @@ -289,10 +282,10 @@ $(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork $(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork -$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE) +$(C_BUILDDIR)/m4a.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE) $(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding -$(C_BUILDDIR)/librfu_intr.o: CC1 := tools/agbcc/bin/agbcc_arm$(EXE) +$(C_BUILDDIR)/librfu_intr.o: CC1 := $(TOOLS_DIR)/agbcc/bin/agbcc_arm$(EXE) $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet else $(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast @@ -320,7 +313,7 @@ else endif else define C_DEP -$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) +$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include -I gflib $2) ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - @@ -347,7 +340,7 @@ else endif else define GFLIB_DEP -$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) +$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include -I gflib $2) ifeq (,$$(KEEP_TEMPS)) @echo "$$(CC1) -o $$@ $$<" @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - diff --git a/include/constants/.gitignore b/include/constants/.gitignore new file mode 100644 index 0000000000..761af9db76 --- /dev/null +++ b/include/constants/.gitignore @@ -0,0 +1,3 @@ +# Will be moved to build/ eventually +map_groups.h +layouts.h \ No newline at end of file diff --git a/include/constants/layouts.h b/include/constants/layouts.h deleted file mode 100755 index db92c95942..0000000000 --- a/include/constants/layouts.h +++ /dev/null @@ -1,450 +0,0 @@ -#ifndef GUARD_CONSTANTS_LAYOUTS_H -#define GUARD_CONSTANTS_LAYOUTS_H - -// -// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json -// - -#define LAYOUT_PETALBURG_CITY 1 -#define LAYOUT_SLATEPORT_CITY 2 -#define LAYOUT_MAUVILLE_CITY 3 -#define LAYOUT_RUSTBORO_CITY 4 -#define LAYOUT_FORTREE_CITY 5 -#define LAYOUT_LILYCOVE_CITY 6 -#define LAYOUT_MOSSDEEP_CITY 7 -#define LAYOUT_SOOTOPOLIS_CITY 8 -#define LAYOUT_EVER_GRANDE_CITY 9 -#define LAYOUT_LITTLEROOT_TOWN 10 -#define LAYOUT_OLDALE_TOWN 11 -#define LAYOUT_DEWFORD_TOWN 12 -#define LAYOUT_LAVARIDGE_TOWN 13 -#define LAYOUT_FALLARBOR_TOWN 14 -#define LAYOUT_VERDANTURF_TOWN 15 -#define LAYOUT_PACIFIDLOG_TOWN 16 -#define LAYOUT_ROUTE101 17 -#define LAYOUT_ROUTE102 18 -#define LAYOUT_ROUTE103 19 -#define LAYOUT_ROUTE104 20 -#define LAYOUT_ROUTE105 21 -#define LAYOUT_ROUTE106 22 -#define LAYOUT_ROUTE107 23 -#define LAYOUT_ROUTE108 24 -#define LAYOUT_ROUTE109 25 -#define LAYOUT_ROUTE110 26 -#define LAYOUT_ROUTE111 27 -#define LAYOUT_ROUTE112 28 -#define LAYOUT_ROUTE113 29 -#define LAYOUT_ROUTE114 30 -#define LAYOUT_ROUTE115 31 -#define LAYOUT_ROUTE116 32 -#define LAYOUT_ROUTE117 33 -#define LAYOUT_ROUTE118 34 -#define LAYOUT_ROUTE119 35 -#define LAYOUT_ROUTE120 36 -#define LAYOUT_ROUTE121 37 -#define LAYOUT_ROUTE122 38 -#define LAYOUT_ROUTE123 39 -#define LAYOUT_ROUTE124 40 -#define LAYOUT_ROUTE125 41 -#define LAYOUT_ROUTE126 42 -#define LAYOUT_ROUTE127 43 -#define LAYOUT_ROUTE128 44 -#define LAYOUT_ROUTE129 45 -#define LAYOUT_ROUTE130_MIRAGE_ISLAND 46 -#define LAYOUT_ROUTE131 47 -#define LAYOUT_ROUTE132 48 -#define LAYOUT_ROUTE133 49 -#define LAYOUT_ROUTE134 50 -#define LAYOUT_UNDERWATER_ROUTE126 51 -#define LAYOUT_UNDERWATER_ROUTE127 52 -#define LAYOUT_UNDERWATER_ROUTE128 53 -#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 54 -#define LAYOUT_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 55 -#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_1F 56 -#define LAYOUT_LITTLEROOT_TOWN_MAYS_HOUSE_2F 57 -#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 58 -#define LAYOUT_HOUSE1 59 -#define LAYOUT_HOUSE2 60 -#define LAYOUT_POKEMON_CENTER_1F 61 -#define LAYOUT_POKEMON_CENTER_2F 62 -#define LAYOUT_MART 63 -#define LAYOUT_HOUSE3 64 -#define LAYOUT_DEWFORD_TOWN_GYM 65 -#define LAYOUT_DEWFORD_TOWN_HALL 66 -#define LAYOUT_HOUSE4 67 -#define LAYOUT_LAVARIDGE_TOWN_HERB_SHOP 68 -#define LAYOUT_LAVARIDGE_TOWN_GYM_1F 69 -#define LAYOUT_LAVARIDGE_TOWN_GYM_B1F 70 -#define LAYOUT_LAVARIDGE_TOWN_POKEMON_CENTER_1F 71 -#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_LOBBY 72 -#define LAYOUT_FALLARBOR_TOWN_LEFTOVER_RSCONTEST_HALL 73 -#define LAYOUT_LILYCOVE_CITY_HOUSE2 74 -#define LAYOUT_UNUSED_CONTEST_ROOM1 75 -#define LAYOUT_VERDANTURF_TOWN_WANDAS_HOUSE 76 -#define LAYOUT_PACIFIDLOG_TOWN_HOUSE1 77 -#define LAYOUT_PACIFIDLOG_TOWN_HOUSE2 78 -#define LAYOUT_PETALBURG_CITY_GYM 79 -#define LAYOUT_HOUSE_WITH_BED 80 -#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_1F 81 -#define LAYOUT_SLATEPORT_CITY_STERNS_SHIPYARD_2F 82 -#define LAYOUT_UNUSED_CONTEST_ROOM2 83 -#define LAYOUT_UNUSED_CONTEST_ROOM3 84 -#define LAYOUT_SLATEPORT_CITY_POKEMON_FAN_CLUB 85 -#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 86 -#define LAYOUT_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 87 -#define LAYOUT_HARBOR 88 -#define LAYOUT_MAUVILLE_CITY_GYM 89 -#define LAYOUT_MAUVILLE_CITY_BIKE_SHOP 90 -#define LAYOUT_MAUVILLE_CITY_GAME_CORNER 91 -#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_1F 92 -#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_2F 93 -#define LAYOUT_RUSTBORO_CITY_GYM 94 -#define LAYOUT_RUSTBORO_CITY_POKEMON_SCHOOL 95 -#define LAYOUT_RUSTBORO_CITY_HOUSE 96 -#define LAYOUT_RUSTBORO_CITY_HOUSE1 97 -#define LAYOUT_RUSTBORO_CITY_CUTTERS_HOUSE 98 -#define LAYOUT_FORTREE_CITY_HOUSE1 99 -#define LAYOUT_FORTREE_CITY_GYM 100 -#define LAYOUT_FORTREE_CITY_HOUSE2 101 -#define LAYOUT_ROUTE104_MR_BRINEYS_HOUSE 102 -#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 103 -#define LAYOUT_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 104 -#define LAYOUT_LILYCOVE_CITY_CONTEST_LOBBY 105 -#define LAYOUT_LILYCOVE_CITY_CONTEST_HALL 106 -#define LAYOUT_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 107 -#define LAYOUT_MOSSDEEP_CITY_GYM 108 -#define LAYOUT_SOOTOPOLIS_CITY_GYM_1F 109 -#define LAYOUT_SOOTOPOLIS_CITY_GYM_B1F 110 -#define LAYOUT_EVER_GRANDE_CITY_SIDNEYS_ROOM 111 -#define LAYOUT_EVER_GRANDE_CITY_PHOEBES_ROOM 112 -#define LAYOUT_EVER_GRANDE_CITY_GLACIAS_ROOM 113 -#define LAYOUT_EVER_GRANDE_CITY_DRAKES_ROOM 114 -#define LAYOUT_EVER_GRANDE_CITY_CHAMPIONS_ROOM 115 -#define LAYOUT_EVER_GRANDE_CITY_SHORT_HALL 116 -#define LAYOUT_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 117 -#define LAYOUT_CABLE_CAR_STATION 118 -#define LAYOUT_ROUTE114_FOSSIL_MANIACS_HOUSE 119 -#define LAYOUT_ROUTE114_FOSSIL_MANIACS_TUNNEL 120 -#define LAYOUT_ROUTE114_LANETTES_HOUSE 121 -#define LAYOUT_ROUTE116_TUNNELERS_REST_HOUSE 122 -#define LAYOUT_ROUTE117_POKEMON_DAY_CARE 123 -#define LAYOUT_ROUTE121_SAFARI_ZONE_ENTRANCE 124 -#define LAYOUT_METEOR_FALLS_1F_1R 125 -#define LAYOUT_METEOR_FALLS_1F_2R 126 -#define LAYOUT_METEOR_FALLS_B1F_1R 127 -#define LAYOUT_METEOR_FALLS_B1F_2R 128 -#define LAYOUT_RUSTURF_TUNNEL 129 -#define LAYOUT_UNDERWATER_SOOTOPOLIS_CITY 130 -#define LAYOUT_DESERT_RUINS 131 -#define LAYOUT_GRANITE_CAVE_1F 132 -#define LAYOUT_GRANITE_CAVE_B1F 133 -#define LAYOUT_GRANITE_CAVE_B2F 134 -#define LAYOUT_PETALBURG_WOODS 135 -#define LAYOUT_MT_CHIMNEY 136 -#define LAYOUT_MT_PYRE_1F 137 -#define LAYOUT_MT_PYRE_2F 138 -#define LAYOUT_MT_PYRE_3F 139 -#define LAYOUT_MT_PYRE_4F 140 -#define LAYOUT_MT_PYRE_5F 141 -#define LAYOUT_MT_PYRE_6F 142 -#define LAYOUT_AQUA_HIDEOUT_1F 143 -#define LAYOUT_AQUA_HIDEOUT_B1F 144 -#define LAYOUT_AQUA_HIDEOUT_B2F 145 -#define LAYOUT_UNDERWATER_SEAFLOOR_CAVERN 146 -#define LAYOUT_SEAFLOOR_CAVERN_ENTRANCE 147 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM1 148 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM2 149 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM3 150 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM4 151 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM5 152 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM6 153 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM7 154 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM8 155 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM9 156 -#define LAYOUT_CAVE_OF_ORIGIN_ENTRANCE 157 -#define LAYOUT_CAVE_OF_ORIGIN_1F 158 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 159 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 160 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 161 -#define LAYOUT_CAVE_OF_ORIGIN_B1F 162 -#define LAYOUT_VICTORY_ROAD_1F 163 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 164 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 165 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 166 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 167 -#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 168 -#define LAYOUT_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 169 -#define LAYOUT_UNUSED_CAVE1 170 -#define LAYOUT_UNUSED_CAVE2 171 -#define LAYOUT_UNUSED_CAVE3 172 -#define LAYOUT_UNUSED_CAVE4 173 -#define LAYOUT_UNUSED_CAVE5 174 -#define LAYOUT_UNUSED_CAVE6 175 -#define LAYOUT_UNUSED_CAVE7 176 -#define LAYOUT_UNUSED_CAVE8 177 -#define LAYOUT_UNUSED_CAVE9 178 -#define LAYOUT_UNUSED_CAVE10 179 -#define LAYOUT_UNUSED_CAVE11 180 -#define LAYOUT_UNUSED_CAVE12 181 -#define LAYOUT_UNUSED_CAVE13 182 -#define LAYOUT_UNUSED_CAVE14 183 -#define LAYOUT_NEW_MAUVILLE_ENTRANCE 184 -#define LAYOUT_NEW_MAUVILLE_INSIDE 185 -#define LAYOUT_ABANDONED_SHIP_DECK 186 -#define LAYOUT_ABANDONED_SHIP_CORRIDORS_1F 187 -#define LAYOUT_ABANDONED_SHIP_ROOMS_1F 188 -#define LAYOUT_ABANDONED_SHIP_CORRIDORS_B1F 189 -#define LAYOUT_ABANDONED_SHIP_ROOMS_B1F 190 -#define LAYOUT_ABANDONED_SHIP_ROOMS2_B1F 191 -#define LAYOUT_ABANDONED_SHIP_UNDERWATER1 192 -#define LAYOUT_ABANDONED_SHIP_ROOM_B1F 193 -#define LAYOUT_ABANDONED_SHIP_ROOMS2_1F 194 -#define LAYOUT_ABANDONED_SHIP_CAPTAINS_OFFICE 195 -#define LAYOUT_ABANDONED_SHIP_UNDERWATER2 196 -#define LAYOUT_SECRET_BASE_RED_CAVE1 197 -#define LAYOUT_SECRET_BASE_BROWN_CAVE1 198 -#define LAYOUT_SECRET_BASE_BLUE_CAVE1 199 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE1 200 -#define LAYOUT_SECRET_BASE_TREE1 201 -#define LAYOUT_SECRET_BASE_SHRUB1 202 -#define LAYOUT_SECRET_BASE_RED_CAVE2 203 -#define LAYOUT_SECRET_BASE_BROWN_CAVE2 204 -#define LAYOUT_SECRET_BASE_BLUE_CAVE2 205 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE2 206 -#define LAYOUT_SECRET_BASE_TREE2 207 -#define LAYOUT_SECRET_BASE_SHRUB2 208 -#define LAYOUT_SECRET_BASE_RED_CAVE3 209 -#define LAYOUT_SECRET_BASE_BROWN_CAVE3 210 -#define LAYOUT_SECRET_BASE_BLUE_CAVE3 211 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE3 212 -#define LAYOUT_SECRET_BASE_TREE3 213 -#define LAYOUT_SECRET_BASE_SHRUB3 214 -#define LAYOUT_SECRET_BASE_RED_CAVE4 215 -#define LAYOUT_SECRET_BASE_BROWN_CAVE4 216 -#define LAYOUT_SECRET_BASE_BLUE_CAVE4 217 -#define LAYOUT_SECRET_BASE_YELLOW_CAVE4 218 -#define LAYOUT_SECRET_BASE_TREE4 219 -#define LAYOUT_SECRET_BASE_SHRUB4 220 -#define LAYOUT_BATTLE_COLOSSEUM_2P 221 -#define LAYOUT_TRADE_CENTER 222 -#define LAYOUT_RECORD_CORNER 223 -#define LAYOUT_BATTLE_COLOSSEUM_4P 224 -#define LAYOUT_CONTEST_HALL 225 -#define LAYOUT_UNUSED_CONTEST_HALL1 226 -#define LAYOUT_UNUSED_CONTEST_HALL2 227 -#define LAYOUT_UNUSED_CONTEST_HALL3 228 -#define LAYOUT_UNUSED_CONTEST_HALL4 229 -#define LAYOUT_UNUSED_CONTEST_HALL5 230 -#define LAYOUT_UNUSED_CONTEST_HALL6 231 -#define LAYOUT_CONTEST_HALL_BEAUTY 232 -#define LAYOUT_CONTEST_HALL_TOUGH 233 -#define LAYOUT_CONTEST_HALL_COOL 234 -#define LAYOUT_CONTEST_HALL_SMART 235 -#define LAYOUT_CONTEST_HALL_CUTE 236 -#define LAYOUT_INSIDE_OF_TRUCK 237 -#define LAYOUT_SAFARI_ZONE_NORTHWEST 238 -#define LAYOUT_SAFARI_ZONE_NORTH 239 -#define LAYOUT_SAFARI_ZONE_SOUTHWEST 240 -#define LAYOUT_SAFARI_ZONE_SOUTH 241 -#define LAYOUT_UNUSED_OUTDOOR_AREA 242 -#define LAYOUT_ROUTE109_SEASHORE_HOUSE 243 -#define LAYOUT_ROUTE110_TRICK_HOUSE_ENTRANCE 244 -#define LAYOUT_ROUTE110_TRICK_HOUSE_END 245 -#define LAYOUT_ROUTE110_TRICK_HOUSE_CORRIDOR 246 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE1 247 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE2 248 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE3 249 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE4 250 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE5 251 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE6 252 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE7 253 -#define LAYOUT_ROUTE110_TRICK_HOUSE_PUZZLE8 254 -#define LAYOUT_FORTREE_CITY_DECORATION_SHOP 255 -#define LAYOUT_ROUTE110_SEASIDE_CYCLING_ROAD_ENTRANCE 256 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_1F 257 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_2F 258 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_3F 259 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_4F 260 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_5F 261 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 262 -#define LAYOUT_ROUTE130 263 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY 264 -#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_WEST 265 -#define LAYOUT_BATTLE_ELEVATOR 266 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR 267 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM 268 -#define LAYOUT_RUSTBORO_CITY_DEVON_CORP_3F 269 -#define LAYOUT_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 270 -#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_1F 271 -#define LAYOUT_ROUTE119_WEATHER_INSTITUTE_2F 272 -#define LAYOUT_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 273 -#define LAYOUT_UNDERWATER_ROUTE124 274 -#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_1F 275 -#define LAYOUT_MOSSDEEP_CITY_SPACE_CENTER_2F 276 -#define LAYOUT_SS_TIDAL_CORRIDOR 277 -#define LAYOUT_SS_TIDAL_LOWER_DECK 278 -#define LAYOUT_SS_TIDAL_ROOMS 279 -#define LAYOUT_ISLAND_CAVE 280 -#define LAYOUT_ANCIENT_TOMB 281 -#define LAYOUT_UNDERWATER_ROUTE134 282 -#define LAYOUT_UNDERWATER_SEALED_CHAMBER 283 -#define LAYOUT_SEALED_CHAMBER_OUTER_ROOM 284 -#define LAYOUT_VICTORY_ROAD_B1F 285 -#define LAYOUT_VICTORY_ROAD_B2F 286 -#define LAYOUT_ROUTE104_PROTOTYPE 287 -#define LAYOUT_GRANITE_CAVE_STEVENS_ROOM 288 -#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 289 -#define LAYOUT_SOUTHERN_ISLAND_EXTERIOR 290 -#define LAYOUT_SOUTHERN_ISLAND_INTERIOR 291 -#define LAYOUT_JAGGED_PASS 292 -#define LAYOUT_FIERY_PATH 293 -#define LAYOUT_RUSTBORO_CITY_FLAT2_1F 294 -#define LAYOUT_RUSTBORO_CITY_FLAT2_2F 295 -#define LAYOUT_RUSTBORO_CITY_FLAT2_3F 296 -#define LAYOUT_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE 297 -#define LAYOUT_EVER_GRANDE_CITY_HALL_OF_FAME 298 -#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 299 -#define LAYOUT_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 300 -#define LAYOUT_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 301 -#define LAYOUT_MT_PYRE_EXTERIOR 302 -#define LAYOUT_MT_PYRE_SUMMIT 303 -#define LAYOUT_SEALED_CHAMBER_INNER_ROOM 304 -#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_1F 305 -#define LAYOUT_MOSSDEEP_CITY_GAME_CORNER_B1F 306 -#define LAYOUT_SOOTOPOLIS_CITY_HOUSE1 307 -#define LAYOUT_SOOTOPOLIS_CITY_HOUSE2 308 -#define LAYOUT_SOOTOPOLIS_CITY_HOUSE3 309 -#define LAYOUT_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 310 -#define LAYOUT_SCORCHED_SLAB 311 -#define LAYOUT_CAVE_OF_ORIGIN_UNUSED_B4F_LAVA 312 -#define LAYOUT_RUSTBORO_CITY_FLAT1_1F 313 -#define LAYOUT_RUSTBORO_CITY_FLAT1_2F 314 -#define LAYOUT_EVER_GRANDE_CITY_HALL4 315 -#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 316 -#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 317 -#define LAYOUT_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 318 -#define LAYOUT_ROUTE131_SKY_PILLAR 319 -#define LAYOUT_SKY_PILLAR_ENTRANCE 320 -#define LAYOUT_SKY_PILLAR_OUTSIDE 321 -#define LAYOUT_SKY_PILLAR_1F 322 -#define LAYOUT_SKY_PILLAR_2F 323 -#define LAYOUT_SKY_PILLAR_3F 324 -#define LAYOUT_SKY_PILLAR_4F 325 -#define LAYOUT_SEAFLOOR_CAVERN_ROOM9_LAVA 326 -#define LAYOUT_MOSSDEEP_CITY_STEVENS_HOUSE 327 -#define LAYOUT_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 328 -#define LAYOUT_SAFARI_ZONE_REST_HOUSE 329 -#define LAYOUT_SKY_PILLAR_5F 330 -#define LAYOUT_SKY_PILLAR_TOP 331 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_LOBBY 332 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR 333 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM 334 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM 335 -#define LAYOUT_MAGMA_HIDEOUT_1F 336 -#define LAYOUT_MAGMA_HIDEOUT_2F_1R 337 -#define LAYOUT_MAGMA_HIDEOUT_2F_2R 338 -#define LAYOUT_MAGMA_HIDEOUT_3F_1R 339 -#define LAYOUT_MAGMA_HIDEOUT_3F_2R 340 -#define LAYOUT_MAGMA_HIDEOUT_4F 341 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY 342 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR 343 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM 344 -#define LAYOUT_BATTLE_FRONTIER_OUTSIDE_EAST 345 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY 346 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM 347 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM 348 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY 349 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR 350 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM 351 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL 352 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL 353 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY 354 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR 355 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM 356 -#define LAYOUT_SOOTOPOLIS_CITY_LEGENDS_BATTLE 357 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS 358 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_UNUSED 359 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY 360 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR 361 -#define LAYOUT_BATTLE_PYRAMID_SQUARE01 362 -#define LAYOUT_BATTLE_PYRAMID_SQUARE02 363 -#define LAYOUT_BATTLE_PYRAMID_SQUARE03 364 -#define LAYOUT_BATTLE_PYRAMID_SQUARE04 365 -#define LAYOUT_BATTLE_PYRAMID_SQUARE05 366 -#define LAYOUT_BATTLE_PYRAMID_SQUARE06 367 -#define LAYOUT_BATTLE_PYRAMID_SQUARE07 368 -#define LAYOUT_BATTLE_PYRAMID_SQUARE08 369 -#define LAYOUT_BATTLE_PYRAMID_SQUARE09 370 -#define LAYOUT_BATTLE_PYRAMID_SQUARE10 371 -#define LAYOUT_BATTLE_PYRAMID_SQUARE11 372 -#define LAYOUT_BATTLE_PYRAMID_SQUARE12 373 -#define LAYOUT_BATTLE_PYRAMID_SQUARE13 374 -#define LAYOUT_BATTLE_PYRAMID_SQUARE14 375 -#define LAYOUT_BATTLE_PYRAMID_SQUARE15 376 -#define LAYOUT_BATTLE_PYRAMID_SQUARE16 377 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP 378 -#define LAYOUT_MAGMA_HIDEOUT_3F_3R 379 -#define LAYOUT_MAGMA_HIDEOUT_2F_3R 380 -#define LAYOUT_MIRAGE_TOWER_1F 381 -#define LAYOUT_MIRAGE_TOWER_2F 382 -#define LAYOUT_MIRAGE_TOWER_3F 383 -#define LAYOUT_BATTLE_TENT_LOBBY 384 -#define LAYOUT_BATTLE_TENT_CORRIDOR 385 -#define LAYOUT_BATTLE_TENT_BATTLE_ROOM 386 -#define LAYOUT_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM 387 -#define LAYOUT_MIRAGE_TOWER_4F 388 -#define LAYOUT_DESERT_UNDERPASS 389 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM 390 -#define LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR 391 -#define LAYOUT_ROUTE111_NO_MIRAGE_TOWER 392 -#define LAYOUT_UNION_ROOM 393 -#define LAYOUT_SAFARI_ZONE_NORTHEAST 394 -#define LAYOUT_SAFARI_ZONE_SOUTHEAST 395 -#define LAYOUT_BATTLE_FRONTIER_RANKING_HALL 396 -#define LAYOUT_BATTLE_FRONTIER_LOUNGE1 397 -#define LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER 398 -#define LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE 399 -#define LAYOUT_ARTISAN_CAVE_B1F 400 -#define LAYOUT_ARTISAN_CAVE_1F 401 -#define LAYOUT_FARAWAY_ISLAND_ENTRANCE 402 -#define LAYOUT_FARAWAY_ISLAND_INTERIOR 403 -#define LAYOUT_BIRTH_ISLAND_EXTERIOR 404 -#define LAYOUT_ISLAND_HARBOR 405 -#define LAYOUT_UNDERWATER_MARINE_CAVE 406 -#define LAYOUT_MARINE_CAVE_ENTRANCE 407 -#define LAYOUT_TERRA_CAVE_ENTRANCE 408 -#define LAYOUT_TERRA_CAVE_END 409 -#define LAYOUT_UNDERWATER_ROUTE105 410 -#define LAYOUT_UNDERWATER_ROUTE125 411 -#define LAYOUT_UNDERWATER_ROUTE129 412 -#define LAYOUT_MARINE_CAVE_END 413 -#define LAYOUT_TRAINER_HILL_ENTRANCE 414 -#define LAYOUT_TRAINER_HILL_1F 415 -#define LAYOUT_TRAINER_HILL_2F 416 -#define LAYOUT_TRAINER_HILL_3F 417 -#define LAYOUT_TRAINER_HILL_4F 418 -#define LAYOUT_TRAINER_HILL_ROOF 419 -#define LAYOUT_ALTERING_CAVE 420 -#define LAYOUT_NAVEL_ROCK_EXTERIOR 421 -#define LAYOUT_NAVEL_ROCK_ENTRANCE 422 -#define LAYOUT_NAVEL_ROCK_TOP 423 -#define LAYOUT_NAVEL_ROCK_BOTTOM 424 -#define LAYOUT_NAVEL_ROCK_LADDER_ROOM1 425 -#define LAYOUT_NAVEL_ROCK_LADDER_ROOM2 426 -#define LAYOUT_NAVEL_ROCK_B1F 427 -#define LAYOUT_NAVEL_ROCK_FORK 428 -#define LAYOUT_BATTLE_FRONTIER_LOUNGE2 429 -#define LAYOUT_BATTLE_FRONTIER_SCOTTS_HOUSE 430 -#define LAYOUT_METEOR_FALLS_STEVENS_CAVE 431 -#define LAYOUT_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB_WITH_TABLE 432 -#define LAYOUT_SKY_PILLAR_1F_CLEAN 433 -#define LAYOUT_SKY_PILLAR_2F_CLEAN 434 -#define LAYOUT_SKY_PILLAR_3F_CLEAN 435 -#define LAYOUT_SKY_PILLAR_4F_CLEAN 436 -#define LAYOUT_SKY_PILLAR_5F_CLEAN 437 -#define LAYOUT_SKY_PILLAR_TOP_CLEAN 438 -#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F 439 -#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F 440 -#define LAYOUT_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F_STAIRS_UNBLOCKED 441 - -#endif // GUARD_CONSTANTS_LAYOUTS_H diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h deleted file mode 100755 index eaf40a525d..0000000000 --- a/include/constants/map_groups.h +++ /dev/null @@ -1,596 +0,0 @@ -#ifndef GUARD_CONSTANTS_MAP_GROUPS_H -#define GUARD_CONSTANTS_MAP_GROUPS_H - -// -// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json -// - -// gMapGroup_TownsAndRoutes -#define MAP_PETALBURG_CITY (0 | (0 << 8)) -#define MAP_SLATEPORT_CITY (1 | (0 << 8)) -#define MAP_MAUVILLE_CITY (2 | (0 << 8)) -#define MAP_RUSTBORO_CITY (3 | (0 << 8)) -#define MAP_FORTREE_CITY (4 | (0 << 8)) -#define MAP_LILYCOVE_CITY (5 | (0 << 8)) -#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) -#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) -#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) -#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) -#define MAP_OLDALE_TOWN (10 | (0 << 8)) -#define MAP_DEWFORD_TOWN (11 | (0 << 8)) -#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) -#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) -#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) -#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) -#define MAP_ROUTE101 (16 | (0 << 8)) -#define MAP_ROUTE102 (17 | (0 << 8)) -#define MAP_ROUTE103 (18 | (0 << 8)) -#define MAP_ROUTE104 (19 | (0 << 8)) -#define MAP_ROUTE105 (20 | (0 << 8)) -#define MAP_ROUTE106 (21 | (0 << 8)) -#define MAP_ROUTE107 (22 | (0 << 8)) -#define MAP_ROUTE108 (23 | (0 << 8)) -#define MAP_ROUTE109 (24 | (0 << 8)) -#define MAP_ROUTE110 (25 | (0 << 8)) -#define MAP_ROUTE111 (26 | (0 << 8)) -#define MAP_ROUTE112 (27 | (0 << 8)) -#define MAP_ROUTE113 (28 | (0 << 8)) -#define MAP_ROUTE114 (29 | (0 << 8)) -#define MAP_ROUTE115 (30 | (0 << 8)) -#define MAP_ROUTE116 (31 | (0 << 8)) -#define MAP_ROUTE117 (32 | (0 << 8)) -#define MAP_ROUTE118 (33 | (0 << 8)) -#define MAP_ROUTE119 (34 | (0 << 8)) -#define MAP_ROUTE120 (35 | (0 << 8)) -#define MAP_ROUTE121 (36 | (0 << 8)) -#define MAP_ROUTE122 (37 | (0 << 8)) -#define MAP_ROUTE123 (38 | (0 << 8)) -#define MAP_ROUTE124 (39 | (0 << 8)) -#define MAP_ROUTE125 (40 | (0 << 8)) -#define MAP_ROUTE126 (41 | (0 << 8)) -#define MAP_ROUTE127 (42 | (0 << 8)) -#define MAP_ROUTE128 (43 | (0 << 8)) -#define MAP_ROUTE129 (44 | (0 << 8)) -#define MAP_ROUTE130 (45 | (0 << 8)) -#define MAP_ROUTE131 (46 | (0 << 8)) -#define MAP_ROUTE132 (47 | (0 << 8)) -#define MAP_ROUTE133 (48 | (0 << 8)) -#define MAP_ROUTE134 (49 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE124 (50 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE126 (51 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE127 (52 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE128 (53 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE129 (54 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE105 (55 | (0 << 8)) -#define MAP_UNDERWATER_ROUTE125 (56 | (0 << 8)) - -// gMapGroup_IndoorLittleroot -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) -#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) - -// gMapGroup_IndoorOldale -#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) -#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) -#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) -#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) - -// gMapGroup_IndoorDewford -#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) -#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) -#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) -#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) - -// gMapGroup_IndoorLavaridge -#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) -#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) - -// gMapGroup_IndoorFallarbor -#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_COZMOS_HOUSE (6 | (5 << 8)) -#define MAP_FALLARBOR_TOWN_MOVE_RELEARNERS_HOUSE (7 | (5 << 8)) - -// gMapGroup_IndoorVerdanturf -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) -#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) - -// gMapGroup_IndoorPacifidlog -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) -#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) - -// gMapGroup_IndoorPetalburg -#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) -#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) -#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) -#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) -#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) - -// gMapGroup_IndoorSlateport -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) -#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) -#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) -#define MAP_SLATEPORT_CITY_NAME_RATERS_HOUSE (5 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) -#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) -#define MAP_SLATEPORT_CITY_HOUSE (10 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) -#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) -#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) - -// gMapGroup_IndoorMauville -#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) -#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) -#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) -#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) -#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) -#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) - -// gMapGroup_IndoorRustboro -#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) -#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) -#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) -#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) -#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) -#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) -#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) -#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) - -// gMapGroup_IndoorFortree -#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) -#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) -#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) -#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) -#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) -#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) - -// gMapGroup_IndoorLilycove -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) -#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) -#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) -#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) -#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) -#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) -#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) -#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) -#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) - -// gMapGroup_IndoorMossdeep -#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) -#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) - -// gMapGroup_IndoorSootopolis -#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_LOTAD_AND_SEEDOT_HOUSE (12 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_1F (13 | (15 << 8)) -#define MAP_SOOTOPOLIS_CITY_MYSTERY_EVENTS_HOUSE_B1F (14 | (15 << 8)) - -// gMapGroup_IndoorEverGrande -#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL1 (5 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL2 (6 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL3 (7 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL4 (8 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL5 (9 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) -#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) - -// gMapGroup_IndoorRoute104 -#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) -#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) - -// gMapGroup_IndoorRoute111 -#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) -#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) - -// gMapGroup_IndoorRoute112 -#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) -#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) - -// gMapGroup_IndoorRoute114 -#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) -#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) -#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) - -// gMapGroup_IndoorRoute116 -#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) - -// gMapGroup_IndoorRoute117 -#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) - -// gMapGroup_IndoorRoute121 -#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) - -// gMapGroup_Dungeons -#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) -#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) -#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) -#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) -#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) -#define MAP_DESERT_RUINS (6 | (24 << 8)) -#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) -#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) -#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) -#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) -#define MAP_PETALBURG_WOODS (11 | (24 << 8)) -#define MAP_MT_CHIMNEY (12 | (24 << 8)) -#define MAP_JAGGED_PASS (13 | (24 << 8)) -#define MAP_FIERY_PATH (14 | (24 << 8)) -#define MAP_MT_PYRE_1F (15 | (24 << 8)) -#define MAP_MT_PYRE_2F (16 | (24 << 8)) -#define MAP_MT_PYRE_3F (17 | (24 << 8)) -#define MAP_MT_PYRE_4F (18 | (24 << 8)) -#define MAP_MT_PYRE_5F (19 | (24 << 8)) -#define MAP_MT_PYRE_6F (20 | (24 << 8)) -#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) -#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) -#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) -#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP1 (39 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP2 (40 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_UNUSED_RUBY_SAPPHIRE_MAP3 (41 | (24 << 8)) -#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) -#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) -#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) -#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) -#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) -#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) -#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) -#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) -#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) -#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) -#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) -#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) -#define MAP_ISLAND_CAVE (67 | (24 << 8)) -#define MAP_ANCIENT_TOMB (68 | (24 << 8)) -#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) -#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) -#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) -#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) -#define MAP_SCORCHED_SLAB (73 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP1 (74 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP2 (75 | (24 << 8)) -#define MAP_AQUA_HIDEOUT_UNUSED_RUBY_MAP3 (76 | (24 << 8)) -#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) -#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) -#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) -#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) -#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) -#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) -#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) -#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) -#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) -#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) -#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) -#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) -#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) -#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) -#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) -#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) -#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) -#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) -#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) -#define MAP_MARINE_CAVE_END (103 | (24 << 8)) -#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) -#define MAP_TERRA_CAVE_END (105 | (24 << 8)) -#define MAP_ALTERING_CAVE (106 | (24 << 8)) -#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) - -// gMapGroup_IndoorDynamic -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_2P (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_BATTLE_COLOSSEUM_4P (27 | (25 << 8)) -#define MAP_CONTEST_HALL (28 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL1 (29 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL2 (30 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL3 (31 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL4 (32 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL5 (33 | (25 << 8)) -#define MAP_UNUSED_CONTEST_HALL6 (34 | (25 << 8)) -#define MAP_CONTEST_HALL_BEAUTY (35 | (25 << 8)) -#define MAP_CONTEST_HALL_TOUGH (36 | (25 << 8)) -#define MAP_CONTEST_HALL_COOL (37 | (25 << 8)) -#define MAP_CONTEST_HALL_SMART (38 | (25 << 8)) -#define MAP_CONTEST_HALL_CUTE (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) - -// gMapGroup_SpecialArea -#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTH (1 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTH (3 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) -#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) -#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) -#define MAP_SAFARI_ZONE_NORTHEAST (12 | (26 << 8)) -#define MAP_SAFARI_ZONE_SOUTHEAST (13 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM (15 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR (16 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (17 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR (26 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL (37 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL (38 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS (39 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE1 (41 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE2 (43 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE3 (44 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE4 (45 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE5 (47 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE6 (48 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE7 (49 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE8 (51 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_LOUNGE9 (52 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) -#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) -#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) -#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) -#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) -#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) -#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) -#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) -#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) -#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) -#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) -#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) -#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) -#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) -#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) -#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP1 (71 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP2 (72 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP3 (73 | (26 << 8)) -#define MAP_NAVEL_ROCK_UP4 (74 | (26 << 8)) -#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN01 (76 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN02 (77 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN03 (78 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN04 (79 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN05 (80 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN06 (81 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN07 (82 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN08 (83 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN09 (84 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN10 (85 | (26 << 8)) -#define MAP_NAVEL_ROCK_DOWN11 (86 | (26 << 8)) -#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) -#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) - -// gMapGroup_IndoorRoute104Prototype -#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) -#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) - -// gMapGroup_IndoorRoute109 -#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) - -// gMapGroup_IndoorRoute110 -#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) -#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (11 | (29 << 8)) -#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (12 | (29 << 8)) - -// gMapGroup_IndoorRoute113 -#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) - -// gMapGroup_IndoorRoute123 -#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) - -// gMapGroup_IndoorRoute119 -#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) -#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) -#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) - -// gMapGroup_IndoorRoute124 -#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) - -#define MAP_GROUPS_COUNT 34 - -#endif // GUARD_CONSTANTS_MAP_GROUPS_H diff --git a/make_tools.mk b/make_tools.mk index 7e0baf8900..7adf510319 100644 --- a/make_tools.mk +++ b/make_tools.mk @@ -1,12 +1,20 @@ +# This controls building executables in the `tools` folder. +# Can be invoked through the `Makefile` or standalone. MAKEFLAGS += --no-print-directory # Inclusive list. If you don't want a tool to be built, don't add it here. -TOOLDIRS := tools/aif2pcm tools/bin2c tools/gbafix tools/gbagfx tools/jsonproc tools/mapjson tools/mid2agb tools/preproc tools/ramscrgen tools/rsfont tools/scaninc +TOOLS_DIR := tools +TOOL_NAMES := aif2pcm bin2c gbafix gbagfx jsonproc mapjson mid2agb preproc ramscrgen rsfont scaninc -.PHONY: all $(TOOLDIRS) +TOOLDIRS := $(TOOL_NAMES:%=$(TOOLS_DIR)/%) -all: $(TOOLDIRS) +.PHONY: tools check-tools clean-tools $(TOOLDIRS) + +tools: $(TOOLDIRS) $(TOOLDIRS): @$(MAKE) -C $@ + +clean-tools: + @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) diff --git a/map_data_rules.mk b/map_data_rules.mk index d3f47a352e..ed7c08edea 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -1,8 +1,17 @@ # Map JSON data +# Inputs MAPS_DIR = $(DATA_ASM_SUBDIR)/maps LAYOUTS_DIR = $(DATA_ASM_SUBDIR)/layouts +# Outputs +MAPS_OUTDIR := $(MAPS_DIR) +LAYOUTS_OUTDIR := $(LAYOUTS_DIR) +INCLUDECONSTS_OUTDIR := include/constants + +AUTO_GEN_TARGETS += $(INCLUDECONSTS_OUTDIR)/map_groups.h +AUTO_GEN_TARGETS += $(INCLUDECONSTS_OUTDIR)/layouts.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)) @@ -13,19 +22,12 @@ $(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.in $(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ -$(MAPS_DIR)/%/header.inc: $(MAPS_DIR)/%/map.json - $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json -$(MAPS_DIR)/%/events.inc: $(MAPS_DIR)/%/header.inc ; -$(MAPS_DIR)/%/connections.inc: $(MAPS_DIR)/%/events.inc ; -$(MAPS_DIR)/groups.inc: $(MAPS_DIR)/map_groups.json - $(MAPJSON) groups emerald $< -$(MAPS_DIR)/connections.inc: $(MAPS_DIR)/groups.inc ; -$(MAPS_DIR)/events.inc: $(MAPS_DIR)/connections.inc ; -$(MAPS_DIR)/headers.inc: $(MAPS_DIR)/events.inc ; -include/constants/map_groups.h: $(MAPS_DIR)/headers.inc ; +$(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connections.inc: $(MAPS_DIR)/%/map.json + $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json $(@D) -$(LAYOUTS_DIR)/layouts.inc: $(LAYOUTS_DIR)/layouts.json - $(MAPJSON) layouts emerald $< -$(LAYOUTS_DIR)/layouts_table.inc: $(LAYOUTS_DIR)/layouts.inc ; -include/constants/layouts.h: $(LAYOUTS_DIR)/layouts_table.inc ; +$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h: $(MAPS_DIR)/map_groups.json + $(MAPJSON) groups emerald $< $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) + +$(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json + $(MAPJSON) layouts emerald $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR) diff --git a/tools/jsonproc/jsonproc.cpp b/tools/jsonproc/jsonproc.cpp index 9ef23cd43e..03e51b765a 100755 --- a/tools/jsonproc/jsonproc.cpp +++ b/tools/jsonproc/jsonproc.cpp @@ -1,4 +1,6 @@ // jsonproc.cpp +// jsonproc converts JSON data to an output file based on an Inja template. +// https://github.com/pantor/inja #include "jsonproc.h" diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index e53ac7924d..1a10c9dab8 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -30,6 +30,8 @@ using json11::Json; #include "mapjson.h" string version; +// System directory separator +string sep; string read_text_file(string filepath) { ifstream in_file(filepath); @@ -330,13 +332,22 @@ string generate_map_events_text(Json map_data) { return text.str(); } -string get_directory_name(string filename) { - size_t dir_pos = filename.find_last_of("/\\"); +string strip_trailing_separator(string filename) { + if(filename.back() == '/' || filename.back() == '\\') + filename.pop_back(); + return filename; +} +void infer_separator(string filename) { + size_t dir_pos = filename.find_last_of("/\\"); + sep = filename[dir_pos]; +} +string file_parent(string filename){ + size_t dir_pos = filename.find_last_of("/\\"); return filename.substr(0, dir_pos + 1); } -void process_map(string map_filepath, string layouts_filepath) { +void process_map(string map_filepath, string layouts_filepath, string output_dir) { string mapdata_err, layouts_err; string mapdata_json_text = read_text_file(map_filepath); @@ -354,10 +365,10 @@ void process_map(string map_filepath, string layouts_filepath) { string events_text = generate_map_events_text(map_data); string connections_text = generate_map_connections_text(map_data); - string files_dir = get_directory_name(map_filepath); - write_text_file(files_dir + "header.inc", header_text); - write_text_file(files_dir + "events.inc", events_text); - write_text_file(files_dir + "connections.inc", connections_text); + string out_dir = strip_trailing_separator(output_dir).append(sep); + write_text_file(out_dir + "header.inc", header_text); + write_text_file(out_dir + "events.inc", events_text); + write_text_file(out_dir + "connections.inc", connections_text); } string generate_groups_text(Json groups_data) { @@ -382,7 +393,7 @@ string generate_groups_text(Json groups_data) { return text.str(); } -string generate_connections_text(Json groups_data) { +string generate_connections_text(Json groups_data, string include_path) { vector map_names; for (auto &group : groups_data["group_order"].array_items()) @@ -407,12 +418,12 @@ string generate_connections_text(Json groups_data) { text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; for (Json map_name : map_names) - text << "\t.include \"data/maps/" << json_to_string(map_name) << "/connections.inc\"\n"; + text << "\t.include \"" << include_path << "/" << json_to_string(map_name) << "/connections.inc\"\n"; return text.str(); } -string generate_headers_text(Json groups_data) { +string generate_headers_text(Json groups_data, string include_path) { vector map_names; for (auto &group : groups_data["group_order"].array_items()) @@ -424,12 +435,12 @@ string generate_headers_text(Json groups_data) { text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; for (string map_name : map_names) - text << "\t.include \"data/maps/" << map_name << "/header.inc\"\n"; + text << "\t.include \"" << include_path << "/" << map_name << "/header.inc\"\n"; return text.str(); } -string generate_events_text(Json groups_data) { +string generate_events_text(Json groups_data, string include_path) { vector map_names; for (auto &group : groups_data["group_order"].array_items()) @@ -438,17 +449,16 @@ string generate_events_text(Json groups_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from " << include_path << "/map_groups.json\n@\n\n"; for (string map_name : map_names) - text << "\t.include \"data/maps/" << map_name << "/events.inc\"\n"; + text << "\t.include \"" << include_path << "/" << map_name << "/events.inc\"\n"; return text.str(); } string generate_map_constants_text(string groups_filepath, Json groups_data) { - string file_dir = get_directory_name(groups_filepath); - char dir_separator = file_dir.back(); + string file_dir = file_parent(groups_filepath) + sep; ostringstream text; @@ -466,7 +476,7 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { size_t max_length = 0; for (auto &map_name : groups_data[groupName].array_items()) { - string map_filepath = file_dir + json_to_string(map_name) + dir_separator + "map.json"; + string map_filepath = file_dir + json_to_string(map_name) + sep + "map.json"; string err_str; Json map_data = Json::parse(read_text_file(map_filepath), err_str); if (map_data == Json()) @@ -493,7 +503,11 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { return text.str(); } -void process_groups(string groups_filepath) { +// Output paths are directories with trailing path separators +void process_groups(string groups_filepath, string output_asm, string output_c) { + output_asm = strip_trailing_separator(output_asm); // Remove separator if existing. + output_c = strip_trailing_separator(output_c); + string err; Json groups_data = Json::parse(read_text_file(groups_filepath), err); @@ -501,19 +515,16 @@ void process_groups(string groups_filepath) { FATAL_ERROR("%s\n", err.c_str()); string groups_text = generate_groups_text(groups_data); - string connections_text = generate_connections_text(groups_data); - string headers_text = generate_headers_text(groups_data); - string events_text = generate_events_text(groups_data); + string connections_text = generate_connections_text(groups_data, output_asm); + string headers_text = generate_headers_text(groups_data, output_asm); + string events_text = generate_events_text(groups_data, output_asm); string map_header_text = generate_map_constants_text(groups_filepath, groups_data); - string file_dir = get_directory_name(groups_filepath); - char s = file_dir.back(); - - write_text_file(file_dir + "groups.inc", groups_text); - write_text_file(file_dir + "connections.inc", connections_text); - write_text_file(file_dir + "headers.inc", headers_text); - write_text_file(file_dir + "events.inc", events_text); - write_text_file(file_dir + ".." + s + ".." + s + "include" + s + "constants" + s + "map_groups.h", map_header_text); + write_text_file(output_asm + sep + "groups.inc", groups_text); + write_text_file(output_asm + sep + "connections.inc", connections_text); + write_text_file(output_asm + sep + "headers.inc", headers_text); + write_text_file(output_asm + sep + "events.inc", events_text); + write_text_file(output_c + sep + "map_groups.h", map_header_text); } string generate_layout_headers_text(Json layouts_data) { @@ -586,7 +597,10 @@ string generate_layouts_constants_text(Json layouts_data) { return text.str(); } -void process_layouts(string layouts_filepath) { +void process_layouts(string layouts_filepath, string output_asm, string output_c) { + output_asm = strip_trailing_separator(output_asm).append(sep); + output_c = strip_trailing_separator(output_c).append(sep); + string err; Json layouts_data = Json::parse(read_text_file(layouts_filepath), err); @@ -597,12 +611,9 @@ void process_layouts(string layouts_filepath) { string layouts_table_text = generate_layouts_table_text(layouts_data); string layouts_constants_text = generate_layouts_constants_text(layouts_data); - string file_dir = get_directory_name(layouts_filepath); - char s = file_dir.back(); - - write_text_file(file_dir + "layouts.inc", layout_headers_text); - write_text_file(file_dir + "layouts_table.inc", layouts_table_text); - write_text_file(file_dir + ".." + s + ".." + s + "include" + s + "constants" + s + "layouts.h", layouts_constants_text); + write_text_file(output_asm + "layouts.inc", layout_headers_text); + write_text_file(output_asm + "layouts_table.inc", layouts_table_text); + write_text_file(output_c + "layouts.h", layouts_constants_text); } int main(int argc, char *argv[]) { @@ -620,29 +631,40 @@ int main(int argc, char *argv[]) { FATAL_ERROR("ERROR: must be 'layouts', 'map', or 'groups'.\n"); if (mode == "map") { - if (argc != 5) - FATAL_ERROR("USAGE: mapjson map \n"); + if (argc != 6) + FATAL_ERROR("USAGE: mapjson map \n"); + infer_separator(argv[3]); string filepath(argv[3]); string layouts_filepath(argv[4]); + string output_dir(argv[5]); - process_map(filepath, layouts_filepath); + process_map(filepath, layouts_filepath, output_dir); } else if (mode == "groups") { - if (argc != 4) - FATAL_ERROR("USAGE: mapjson groups \n"); + if (argc != 6) + FATAL_ERROR("USAGE: mapjson groups \n"); + infer_separator(argv[3]); string filepath(argv[3]); + string output_asm(argv[4]); + string output_c(argv[5]); - process_groups(filepath); + process_groups(filepath, output_asm, output_c); } else if (mode == "layouts") { - if (argc != 4) - FATAL_ERROR("USAGE: mapjson layouts \n"); + if (argc != 6) + FATAL_ERROR("USAGE: mapjson layouts \n"); + infer_separator(argv[3]); string filepath(argv[3]); + string output_asm(argv[4]); + string output_c(argv[5]); - process_layouts(filepath); + process_layouts(filepath, output_asm, output_c); + } + else { + FATAL_ERROR("ERROR: must be 'layouts', 'map', or 'groups'.\n"); } return 0; From a4dd8216587f73841ba9016678c1af88cb78b62c Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 31 Aug 2024 00:32:43 -0400 Subject: [PATCH 50/99] Restore review changes from dependent PR --- map_data_rules.mk | 1 + tools/mapjson/mapjson.cpp | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/map_data_rules.mk b/map_data_rules.mk index 3ec86da7dd..ed7c08edea 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -22,6 +22,7 @@ $(DATA_ASM_BUILDDIR)/maps.o: $(DATA_ASM_SUBDIR)/maps.s $(LAYOUTS_DIR)/layouts.in $(DATA_ASM_BUILDDIR)/map_events.o: $(DATA_ASM_SUBDIR)/map_events.s $(MAPS_DIR)/events.inc $(MAP_EVENTS) $(PREPROC) $< charmap.txt | $(CPP) -I include - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ + $(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connections.inc: $(MAPS_DIR)/%/map.json $(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json $(@D) diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 1632b56be6..1a10c9dab8 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -374,7 +374,7 @@ void process_map(string map_filepath, string layouts_filepath, string output_dir string generate_groups_text(Json groups_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; for (auto &key : groups_data["group_order"].array_items()) { string group = json_to_string(key); @@ -415,7 +415,7 @@ string generate_connections_text(Json groups_data, string include_path) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; for (Json map_name : map_names) text << "\t.include \"" << include_path << "/" << json_to_string(map_name) << "/connections.inc\"\n"; @@ -432,7 +432,7 @@ string generate_headers_text(Json groups_data, string include_path) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n@\n\n"; for (string map_name : map_names) text << "\t.include \"" << include_path << "/" << map_name << "/header.inc\"\n"; @@ -465,7 +465,7 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { text << "#ifndef GUARD_CONSTANTS_MAP_GROUPS_H\n" << "#define GUARD_CONSTANTS_MAP_GROUPS_H\n\n"; - text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from /map_groups.json\n//\n\n"; + text << "//\n// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json\n//\n\n"; int group_num = 0; @@ -530,7 +530,7 @@ void process_groups(string groups_filepath, string output_asm, string output_c) string generate_layout_headers_text(Json layouts_data) { ostringstream text; - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from layouts.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json\n@\n\n"; for (auto &layout : layouts_data["layouts"].array_items()) { if (layout == Json::object()) continue; From 32f05269a3c96b45464ca0e1f5c4090c2f37d75f Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 31 Aug 2024 00:53:23 -0400 Subject: [PATCH 51/99] Add missing terminal newlines --- audio_rules.mk | 2 +- sound/songs/midi/midi.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/audio_rules.mk b/audio_rules.mk index fccb9fc548..0acbccec07 100644 --- a/audio_rules.mk +++ b/audio_rules.mk @@ -42,4 +42,4 @@ $(foreach line,$(shell cat $(MID_CFG_PATH) | sed "s/ /__SPACE__/g"),$(call MID_E # Warn users building without a .cfg - build will fail at link time $(MID_ASM_DIR)/%.s: $(MID_SUBDIR)/%.mid - $(warning $< does not have an associated entry in midi.cfg! It cannot be built) \ No newline at end of file + $(warning $< does not have an associated entry in midi.cfg! It cannot be built) diff --git a/sound/songs/midi/midi.cfg b/sound/songs/midi/midi.cfg index 439778e9bd..5802904b41 100644 --- a/sound/songs/midi/midi.cfg +++ b/sound/songs/midi/midi.cfg @@ -417,4 +417,4 @@ se_unlock.mid: -E -R50 -G128 -V100 -P4 se_use_item.mid: -E -R50 -G127 -V100 -P5 se_vend.mid: -E -R50 -G128 -V110 -P4 se_warp_in.mid: -E -R50 -G127 -V090 -P4 -se_warp_out.mid: -E -R50 -G127 -V090 -P4 \ No newline at end of file +se_warp_out.mid: -E -R50 -G127 -V090 -P4 From 04197b49126604a310fae1d314709334f6d2460d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 31 Aug 2024 01:54:25 -0400 Subject: [PATCH 52/99] Fix swapped cycling road entrances --- data/event_scripts.s | 2 +- data/maps/Route110/map.json | 8 ++++---- .../map.json | 8 ++++---- .../scripts.inc | 16 ++++++++++++++++ .../map.json | 8 ++++---- .../scripts.inc | 16 ---------------- data/maps/map_groups.json | 4 ++-- src/field_specials.c | 2 +- 8 files changed, 32 insertions(+), 32 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index e8fb9dcbd1..55720a6add 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -563,8 +563,8 @@ gStdScripts_End:: .include "data/maps/Route110_TrickHousePuzzle6/scripts.inc" .include "data/maps/Route110_TrickHousePuzzle7/scripts.inc" .include "data/maps/Route110_TrickHousePuzzle8/scripts.inc" - .include "data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc" .include "data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc" + .include "data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc" .include "data/maps/Route113_GlassWorkshop/scripts.inc" .include "data/maps/Route123_BerryMastersHouse/scripts.inc" .include "data/maps/Route119_WeatherInstitute_1F/scripts.inc" diff --git a/data/maps/Route110/map.json b/data/maps/Route110/map.json index 2b52164113..6e4982fa22 100644 --- a/data/maps/Route110/map.json +++ b/data/maps/Route110/map.json @@ -518,28 +518,28 @@ "x": 15, "y": 16, "elevation": 0, - "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE", + "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE", "dest_warp_id": "0" }, { "x": 18, "y": 16, "elevation": 0, - "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE", + "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE", "dest_warp_id": "2" }, { "x": 16, "y": 88, "elevation": 0, - "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE", + "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE", "dest_warp_id": "0" }, { "x": 19, "y": 88, "elevation": 0, - "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE", + "dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE", "dest_warp_id": "2" } ], diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json index 6f3c6c75c5..88cbf1cc88 100644 --- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json +++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/map.json @@ -34,28 +34,28 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "4" + "dest_warp_id": "2" }, { "x": 2, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "4" + "dest_warp_id": "2" }, { "x": 12, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "5" + "dest_warp_id": "3" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "5" + "dest_warp_id": "3" } ], "coord_events": [ diff --git a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc index 5eb1f3dea2..fb1cdc5c71 100644 --- a/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc @@ -1,6 +1,16 @@ Route110_SeasideCyclingRoadNorthEntrance_MapScripts:: + map_script MAP_SCRIPT_ON_TRANSITION, Route110_SeasideCyclingRoadNorthEntrance_OnTransition .byte 0 +Route110_SeasideCyclingRoadNorthEntrance_OnTransition: + call_if_eq VAR_CYCLING_CHALLENGE_STATE, 3, Route110_SeasideCyclingRoadNorthEntrance_EventScript_RestartChallenge + call_if_eq VAR_CYCLING_CHALLENGE_STATE, 2, Route110_SeasideCyclingRoadNorthEntrance_EventScript_RestartChallenge + end + +Route110_SeasideCyclingRoadNorthEntrance_EventScript_RestartChallenge:: + setvar VAR_CYCLING_CHALLENGE_STATE, 1 + return + Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk:: lock faceplayer @@ -11,12 +21,17 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk:: Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck:: lockall specialvar VAR_RESULT, GetPlayerAvatarBike + call_if_eq VAR_RESULT, 2, Route110_SeasideCyclingRoadNorthEntrance_EventScript_OnMachBike goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike setflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 1 releaseall end +Route110_SeasideCyclingRoadNorthEntrance_EventScript_OnMachBike:: + setvar VAR_CYCLING_CHALLENGE_STATE, 1 + return + Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike:: msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT closemessage @@ -31,6 +46,7 @@ Route110_SeasideCyclingRoadNorthEntrance_Movement_PushPlayerBackFromCounter: Route110_SeasideCyclingRoadNorthEntrance_EventScript_ClearCyclingRoad:: lockall + setvar VAR_CYCLING_CHALLENGE_STATE, 0 clearflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 0 releaseall diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json index 59e3e5be65..943984075d 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/map.json @@ -34,28 +34,28 @@ "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "2" + "dest_warp_id": "4" }, { "x": 2, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "2" + "dest_warp_id": "4" }, { "x": 12, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "3" + "dest_warp_id": "5" }, { "x": 13, "y": 5, "elevation": 0, "dest_map": "MAP_ROUTE110", - "dest_warp_id": "3" + "dest_warp_id": "5" } ], "coord_events": [ diff --git a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc index df53f55ccf..5c4dcfa219 100644 --- a/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc +++ b/data/maps/Route110_SeasideCyclingRoadSouthEntrance/scripts.inc @@ -1,16 +1,6 @@ Route110_SeasideCyclingRoadSouthEntrance_MapScripts:: - map_script MAP_SCRIPT_ON_TRANSITION, Route110_SeasideCyclingRoadSouthEntrance_OnTransition .byte 0 -Route110_SeasideCyclingRoadSouthEntrance_OnTransition: - call_if_eq VAR_CYCLING_CHALLENGE_STATE, 3, Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge - call_if_eq VAR_CYCLING_CHALLENGE_STATE, 2, Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge - end - -Route110_SeasideCyclingRoadSouthEntrance_EventScript_RestartChallenge:: - setvar VAR_CYCLING_CHALLENGE_STATE, 1 - return - Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk:: lock faceplayer @@ -21,17 +11,12 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk:: Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck:: lockall specialvar VAR_RESULT, GetPlayerAvatarBike - call_if_eq VAR_RESULT, 2, Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike setflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 1 releaseall end -Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike:: - setvar VAR_CYCLING_CHALLENGE_STATE, 1 - return - Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike:: msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT closemessage @@ -46,7 +31,6 @@ Route110_SeasideCyclingRoadSouthEntrance_Movement_PushPlayerBackFromCounter: Route110_SeasideCyclingRoadSouthEntrance_EventScript_ClearCyclingRoad:: lockall - setvar VAR_CYCLING_CHALLENGE_STATE, 0 clearflag FLAG_SYS_CYCLING_ROAD setvar VAR_TEMP_1, 0 releaseall diff --git a/data/maps/map_groups.json b/data/maps/map_groups.json index ebef431b30..8a90679c8d 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -604,8 +604,8 @@ "Route110_TrickHousePuzzle6", "Route110_TrickHousePuzzle7", "Route110_TrickHousePuzzle8", - "Route110_SeasideCyclingRoadNorthEntrance", - "Route110_SeasideCyclingRoadSouthEntrance" + "Route110_SeasideCyclingRoadSouthEntrance", + "Route110_SeasideCyclingRoadNorthEntrance" ], "gMapGroup_IndoorRoute113": [ "Route113_GlassWorkshop" diff --git a/src/field_specials.c b/src/field_specials.c index f1e5d7bb2d..f8d493493c 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -263,7 +263,7 @@ u16 GetRecordedCyclingRoadResults(void) void UpdateCyclingRoadState(void) { - if (gLastUsedWarp.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE) && gLastUsedWarp.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE)) + if (gLastUsedWarp.mapNum == MAP_NUM(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE) && gLastUsedWarp.mapGroup == MAP_GROUP(ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE)) return; if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3) From 71fcb2e7b5b24d5bd64717d2ca7d9d760b55722c Mon Sep 17 00:00:00 2001 From: NT_x86 Date: Sun, 8 Sep 2024 12:50:35 +0300 Subject: [PATCH 53/99] Fix incorrect point macros in contest_ai_script.inc --- asm/macros/contest_ai_script.inc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/asm/macros/contest_ai_script.inc b/asm/macros/contest_ai_script.inc index 9ab7184c3c..d66d9a8ffd 100644 --- a/asm/macros/contest_ai_script.inc +++ b/asm/macros/contest_ai_script.inc @@ -141,25 +141,25 @@ .macro if_points_less_than num:req, destination:req .byte 0x16 - .byte \num + .2byte \num .4byte \destination .endm .macro if_points_more_than num:req, destination:req .byte 0x17 - .byte \num + .2byte \num .4byte \destination .endm .macro if_points_eq num:req, destination:req .byte 0x18 - .byte \num + .2byte \num .4byte \destination .endm .macro if_points_not_eq num:req, destination:req .byte 0x19 - .byte \num + .2byte \num .4byte \destination .endm @@ -171,25 +171,25 @@ .macro if_preliminary_points_less_than num:req, destination:req .byte 0x1B - .byte \num + .2byte \num .4byte \destination .endm .macro if_preliminary_points_more_than num:req, destination:req .byte 0x1C - .byte \num + .2byte \num .4byte \destination .endm .macro if_preliminary_points_eq num:req, destination:req .byte 0x1D - .byte \num + .2byte \num .4byte \destination .endm .macro if_preliminary_points_not_eq num:req, destination:req .byte 0x1E - .byte \num + .2byte \num .4byte \destination .endm From 28786b42a6cf2f31333d9bc618ef63eae1553d0b Mon Sep 17 00:00:00 2001 From: Skye Chappelle Date: Tue, 10 Sep 2024 23:36:13 -0400 Subject: [PATCH 54/99] Update INSTALL.md to state that Windows 8 is no longer supported by Microsoft --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 7ffcdee07b..03b28ba464 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -24,7 +24,7 @@ Unscientific benchmarks suggest **msys2 is 2x slower** than WSL1, and **Cygwin i All of the Windows instructions assume that the default drive is C:\\. If this differs to your actual drive letter, then replace C with the correct drive letter when reading the instructions. -**A note of caution**: As Windows 7 is officially unsupported by Microsoft and Windows 8 has very little usage, some maintainers are unwilling to maintain the Windows 7/8 instructions. Thus, these instructions may break in the future with fixes taking longer than fixes to the Windows 10 instructions. +**A note of caution**: As Windows 7 and Windows 8 are officially unsupported by Microsoft, some maintainers are unwilling to maintain the Windows 7/8 instructions. Thus, these instructions may break in the future with fixes taking longer than fixes to the Windows 10/11 instructions. ## Windows 10/11 (WSL1) WSL1 is the preferred terminal to build **pokeemerald**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL). From a75be4124d9d06524ef42c9eb670f3bb93c5749b Mon Sep 17 00:00:00 2001 From: Skye Chappelle Date: Tue, 10 Sep 2024 23:39:41 -0400 Subject: [PATCH 55/99] Update pull_request_template.md to include Discord username update --- .github/pull_request_template.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c381b50f1b..6bf2034006 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -4,5 +4,5 @@ ## **Discord contact info** - - \ No newline at end of file + + From d9b824db3f6ede8007be70b58c03874451f9d046 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Sep 2024 12:27:31 -0400 Subject: [PATCH 56/99] Sync missing alignment from pokefirered --- tools/mapjson/mapjson.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 1a10c9dab8..94328b4857 100644 --- a/tools/mapjson/mapjson.cpp +++ b/tools/mapjson/mapjson.cpp @@ -197,7 +197,7 @@ string generate_map_events_text(Json map_data) { string mapName = json_to_string(map_data, "name"); - text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" << mapName << "/map.json\n@\n\n"; + text << "@\n@ DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/" << mapName << "/map.json\n@\n\n\t.align 2\n\n"; string objects_label, warps_label, coords_label, bgs_label; From 7007439be899cd0901c2145f5eb219c9d7776a51 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 12 Sep 2024 13:50:47 -0400 Subject: [PATCH 57/99] Remove old ld_script processing --- Makefile | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 7e5e14cd61..ce868f06bd 100644 --- a/Makefile +++ b/Makefile @@ -392,18 +392,14 @@ LD_SCRIPT := ld_script_modern.ld LD_SCRIPT_DEPS := endif -$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) - sed "s#tools/#tools/#g" $(LD_SCRIPT) > $(OBJ_DIR)/ld_script.ld - # Final rules libagbsyscall: @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) # Elf from object files -$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) libagbsyscall - @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ " - @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat +$(ELF): $(LD_SCRIPT) $(LD_SCRIPT_DEPS) $(OBJS) libagbsyscall + @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../../$< --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent # Builds the rom from the elf file From b8c71fa84d7d590006b94b0b5b46aa9a74cf2f41 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 13 Sep 2024 23:38:50 -0400 Subject: [PATCH 58/99] Fix .d files not updating if .o fails, fix clean rule, remove some unnecessary warnings --- Makefile | 31 ++++++++++++++----------------- tools/mapjson/json11.cpp | 17 ++++++++--------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index ce868f06bd..48350147a4 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,7 @@ GAME_CODE := BPEE MAKER_CODE := 01 REVISION := 0 MODERN ?= 0 +KEEP_TEMPS ?= 0 # `File name`.gba ('_modern' will be appended to the modern builds) FILE_NAME := pokeemerald @@ -261,18 +262,18 @@ include audio_rules.mk generated: $(AUTO_GEN_TARGETS) -%.s: ; +%.s: ; %.png: ; %.pal: ; %.aif: ; -%.1bpp: %.png ; $(GFX) $< $@ -%.4bpp: %.png ; $(GFX) $< $@ -%.8bpp: %.png ; $(GFX) $< $@ -%.gbapal: %.pal ; $(GFX) $< $@ -%.gbapal: %.png ; $(GFX) $< $@ -%.lz: % ; $(GFX) $< $@ -%.rl: % ; $(GFX) $< $@ +%.1bpp: %.png ; $(GFX) $< $@ +%.4bpp: %.png ; $(GFX) $< $@ +%.8bpp: %.png ; $(GFX) $< $@ +%.gbapal: %.pal ; $(GFX) $< $@ +%.gbapal: %.png ; $(GFX) $< $@ +%.lz: % ; $(GFX) $< $@ +%.rl: % ; $(GFX) $< $@ # NOTE: Tools must have been built prior (FIXME) generated: tools $(AUTO_GEN_TARGETS) @@ -310,7 +311,7 @@ endef # $1: Output file without extension, $2 input file, $3 temp path (if keeping) define C_DEP_IMPL $1.o: $2 -ifeq (,$(KEEP_TEMPS)) +ifneq ($(KEEP_TEMPS),1) @echo "$$(CC1) -o $$@ $$<" @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - else @@ -319,15 +320,11 @@ else @echo -e ".text\n\t.align\t2, 0\n" >> $3.s $$(AS) $$(ASFLAGS) -o $$@ $3.s endif -$(call C_SCANINC,$1,$2) -endef -# Calls SCANINC to find dependencies -define C_SCANINC -ifneq ($(NODEP),1) -$1.o: $1.d $1.d: $2 $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include -I gflib $2 -include $1.d +ifneq ($(NODEP),1) +$1.o: $1.d +-include $1.d endif endef @@ -359,7 +356,7 @@ ifneq ($(NODEP),1) $1.o: $1.d $1.d: $2 $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I "" $2 -include $1.d +-include $1.d endif endef diff --git a/tools/mapjson/json11.cpp b/tools/mapjson/json11.cpp index 1da530206b..3ac5f392a0 100644 --- a/tools/mapjson/json11.cpp +++ b/tools/mapjson/json11.cpp @@ -33,7 +33,6 @@ using std::vector; using std::map; using std::make_shared; using std::initializer_list; -using std::move; /* Helper for representing null - just a do-nothing struct, plus comparison * operators so the helpers in JsonValue work. We can't use nullptr_t because @@ -149,7 +148,7 @@ protected: // Constructors explicit Value(const T &value) : m_value(value) {} - explicit Value(T &&value) : m_value(move(value)) {} + explicit Value(T &&value) : m_value(std::move(value)) {} // Get type tag Json::Type type() const override { @@ -196,7 +195,7 @@ class JsonString final : public Value { const string &string_value() const override { return m_value; } public: explicit JsonString(const string &value) : Value(value) {} - explicit JsonString(string &&value) : Value(move(value)) {} + explicit JsonString(string &&value) : Value(std::move(value)) {} }; class JsonArray final : public Value { @@ -204,7 +203,7 @@ class JsonArray final : public Value { const Json & operator[](size_t i) const override; public: explicit JsonArray(const Json::array &value) : Value(value) {} - explicit JsonArray(Json::array &&value) : Value(move(value)) {} + explicit JsonArray(Json::array &&value) : Value(std::move(value)) {} }; class JsonObject final : public Value { @@ -212,7 +211,7 @@ class JsonObject final : public Value { const Json & operator[](const string &key) const override; public: explicit JsonObject(const Json::object &value) : Value(value) {} - explicit JsonObject(Json::object &&value) : Value(move(value)) {} + explicit JsonObject(Json::object &&value) : Value(std::move(value)) {} }; class JsonNull final : public Value { @@ -254,12 +253,12 @@ Json::Json(double value) : m_ptr(make_shared(value)) { Json::Json(int value) : m_ptr(make_shared(value)) {} Json::Json(bool value) : m_ptr(value ? statics().t : statics().f) {} Json::Json(const string &value) : m_ptr(make_shared(value)) {} -Json::Json(string &&value) : m_ptr(make_shared(move(value))) {} +Json::Json(string &&value) : m_ptr(make_shared(std::move(value))) {} Json::Json(const char * value) : m_ptr(make_shared(value)) {} Json::Json(const Json::array &values) : m_ptr(make_shared(values)) {} -Json::Json(Json::array &&values) : m_ptr(make_shared(move(values))) {} +Json::Json(Json::array &&values) : m_ptr(make_shared(std::move(values))) {} Json::Json(const Json::object &values) : m_ptr(make_shared(values)) {} -Json::Json(Json::object &&values) : m_ptr(make_shared(move(values))) {} +Json::Json(Json::object &&values) : m_ptr(make_shared(std::move(values))) {} /* * * * * * * * * * * * * * * * * * * * * Accessors @@ -357,7 +356,7 @@ struct JsonParser final { * Mark this parse as failed. */ Json fail(string &&msg) { - return fail(move(msg), Json()); + return fail(std::move(msg), Json()); } template From 302193a814ffcf12fa2a5c394ce2ce85e6c49250 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 13 Sep 2024 23:40:00 -0400 Subject: [PATCH 59/99] Have scaninc ignore non-existing files --- tools/scaninc/scaninc.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp index f5ee7ad6de..c1b7987a5a 100644 --- a/tools/scaninc/scaninc.cpp +++ b/tools/scaninc/scaninc.cpp @@ -125,7 +125,12 @@ int main(int argc, char **argv) if (!exists && (file.FileType() == SourceFileType::Asm || file.FileType() == SourceFileType::Inc)) { path = include; + if (CanOpenFile(path)) + exists = true; } + if (!exists) + continue; + dependencies_includes.insert(path); bool inserted = dependencies.insert(path).second; if (inserted && exists) From c4b5818d986b6c4525ee78a360342ec2cb534e68 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 14 Sep 2024 19:13:02 +0200 Subject: [PATCH 60/99] remove ScriptContext_Enable from secret_base.h --- include/secret_base.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/secret_base.h b/include/secret_base.h index cb3b95ee78..567316cf9c 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -24,7 +24,6 @@ void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const st void TrySetCurSecretBaseIndex(void); void CheckPlayerHasSecretBase(void); void ToggleSecretBaseEntranceMetatile(void); -void ScriptContext_Enable(void); void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx); #endif //GUARD_SECRET_BASE_H From 52c2728ff6d07a5d8d420cbe39c08365aa1ca01e Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Wed, 18 Sep 2024 10:37:34 -0400 Subject: [PATCH 61/99] remove gflib --- Makefile | 13 ++------- {gflib => include}/bg.h | 0 {gflib => include}/blit.h | 0 {gflib => include/constants}/characters.h | 0 {gflib => include}/dma3.h | 0 {gflib => include}/gpu_regs.h | 0 {gflib => include}/io_reg.h | 0 {gflib => include}/malloc.h | 0 {gflib => include}/sprite.h | 0 {gflib => include}/string_util.h | 0 {gflib => include}/text.h | 2 +- {gflib => include}/window.h | 0 ld_script.ld | 34 ++++++++++------------- ld_script_modern.ld | 5 ---- {gflib => src}/bg.c | 0 {gflib => src}/blit.c | 0 {gflib => src}/dma3_manager.c | 0 {gflib => src}/gpu_regs.c | 0 {gflib => src}/io_reg.c | 0 {gflib => src}/malloc.c | 0 src/mini_printf.c | 2 +- {gflib => src}/sprite.c | 0 {gflib => src}/string_util.c | 0 {gflib => src}/text.c | 0 {gflib => src}/window.c | 0 sym_bss.txt | 12 ++++---- sym_common.txt | 8 +++--- sym_ewram.txt | 10 +++---- tools/preproc/asm_file.cpp | 2 +- 29 files changed, 36 insertions(+), 52 deletions(-) rename {gflib => include}/bg.h (100%) rename {gflib => include}/blit.h (100%) rename {gflib => include/constants}/characters.h (100%) rename {gflib => include}/dma3.h (100%) rename {gflib => include}/gpu_regs.h (100%) rename {gflib => include}/io_reg.h (100%) rename {gflib => include}/malloc.h (100%) rename {gflib => include}/sprite.h (100%) rename {gflib => include}/string_util.h (100%) rename {gflib => include}/text.h (99%) rename {gflib => include}/window.h (100%) rename {gflib => src}/bg.c (100%) rename {gflib => src}/blit.c (100%) rename {gflib => src}/dma3_manager.c (100%) rename {gflib => src}/gpu_regs.c (100%) rename {gflib => src}/io_reg.c (100%) rename {gflib => src}/malloc.c (100%) rename {gflib => src}/sprite.c (100%) rename {gflib => src}/string_util.c (100%) rename {gflib => src}/text.c (100%) rename {gflib => src}/window.c (100%) diff --git a/Makefile b/Makefile index ce868f06bd..9082680c8c 100644 --- a/Makefile +++ b/Makefile @@ -90,7 +90,6 @@ SYM := $(ROM:.gba=.sym) # Commonly used directories C_SUBDIR = src -GFLIB_SUBDIR = gflib ASM_SUBDIR = asm DATA_SRC_SUBDIR = src/data DATA_ASM_SUBDIR = data @@ -98,7 +97,6 @@ SONG_SUBDIR = sound/songs MID_SUBDIR = sound/songs/midi C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) -GFLIB_BUILDDIR = $(OBJ_DIR)/$(GFLIB_SUBDIR) ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR) SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR) @@ -114,7 +112,7 @@ INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %) INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %) O_LEVEL ?= 2 -CPPFLAGS := $(INCLUDE_CPP_ARGS) -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN) +CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=$(MODERN) ifeq ($(MODERN),0) CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef CC1 := tools/agbcc/bin/agbcc$(EXE) @@ -192,9 +190,6 @@ C_SRCS_IN := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c) C_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src))) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) -GFLIB_SRCS := $(wildcard $(GFLIB_SUBDIR)/*.c) -GFLIB_OBJS := $(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o,$(GFLIB_SRCS)) - C_ASM_SRCS := $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s) C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS)) @@ -213,7 +208,7 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS)) MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid) MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS)) -OBJS := $(C_OBJS) $(GFLIB_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) +OBJS := $(C_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) SUBDIRS := $(sort $(dir $(OBJS))) @@ -326,7 +321,7 @@ define C_SCANINC ifneq ($(NODEP),1) $1.o: $1.d $1.d: $2 - $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include -I gflib $2 + $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $2 include $1.d endif endef @@ -334,10 +329,8 @@ endef # Create generic rules if no dependency scanning, else create the real rules ifeq ($(NODEP),1) $(eval $(call C_DEP,$(C_BUILDDIR)/%,$(C_SUBDIR)/%.c)) -$(eval $(call C_DEP,$(GFLIB_BUILDDIR)/%,$(GFLIB_SUBDIR)/%.c)) else $(foreach src,$(C_SRCS),$(eval $(call C_DEP,$(OBJ_DIR)/$(basename $(src)),$(src)))) -$(foreach src,$(GFLIB_SRCS),$(eval $(call C_DEP,$(OBJ_DIR)/$(basename $(src)),$(src)))) endif # Similar methodology for Assembly files diff --git a/gflib/bg.h b/include/bg.h similarity index 100% rename from gflib/bg.h rename to include/bg.h diff --git a/gflib/blit.h b/include/blit.h similarity index 100% rename from gflib/blit.h rename to include/blit.h diff --git a/gflib/characters.h b/include/constants/characters.h similarity index 100% rename from gflib/characters.h rename to include/constants/characters.h diff --git a/gflib/dma3.h b/include/dma3.h similarity index 100% rename from gflib/dma3.h rename to include/dma3.h diff --git a/gflib/gpu_regs.h b/include/gpu_regs.h similarity index 100% rename from gflib/gpu_regs.h rename to include/gpu_regs.h diff --git a/gflib/io_reg.h b/include/io_reg.h similarity index 100% rename from gflib/io_reg.h rename to include/io_reg.h diff --git a/gflib/malloc.h b/include/malloc.h similarity index 100% rename from gflib/malloc.h rename to include/malloc.h diff --git a/gflib/sprite.h b/include/sprite.h similarity index 100% rename from gflib/sprite.h rename to include/sprite.h diff --git a/gflib/string_util.h b/include/string_util.h similarity index 100% rename from gflib/string_util.h rename to include/string_util.h diff --git a/gflib/text.h b/include/text.h similarity index 99% rename from gflib/text.h rename to include/text.h index ff13efa9a8..db9f4db873 100644 --- a/gflib/text.h +++ b/include/text.h @@ -1,7 +1,7 @@ #ifndef GUARD_TEXT_H #define GUARD_TEXT_H -#include "characters.h" +#include "constants/characters.h" // Given as a text speed when all the text should be // loaded at once but not copied to vram yet. diff --git a/gflib/window.h b/include/window.h similarity index 100% rename from gflib/window.h rename to include/window.h diff --git a/ld_script.ld b/ld_script.ld index c4abf075f8..1e08a8d61c 100644 --- a/ld_script.ld +++ b/ld_script.ld @@ -23,7 +23,6 @@ SECTIONS { { INCLUDE "sym_ewram.ld" src/*.o(ewram_data); - gflib/*.o(ewram_data); *libc.a:impure.o(.data); *libc.a:locale.o(.data); @@ -36,7 +35,6 @@ SECTIONS { /* .bss starts at 0x3000000 */ INCLUDE "sym_bss.ld" src/*.o(.bss); - gflib/*.o(.bss); data/*.o(.bss); /* .bss.code starts at 0x3001AA8 */ @@ -57,15 +55,15 @@ SECTIONS { src/rom_header_gf.o(.text.*); src/crt0.o(.text); src/main.o(.text); - gflib/malloc.o(.text); - gflib/dma3_manager.o(.text); - gflib/gpu_regs.o(.text); - gflib/bg.o(.text); - gflib/blit.o(.text); - gflib/window.o(.text); - gflib/text.o(.text); - gflib/sprite.o(.text); - gflib/string_util.o(.text); + src/malloc.o(.text); + src/dma3_manager.o(.text); + src/gpu_regs.o(.text); + src/bg.o(.text); + src/blit.o(.text); + src/window.o(.text); + src/text.o(.text); + src/sprite.o(.text); + src/string_util.o(.text); src/link.o(.text); src/AgbRfu_LinkManager.o(.text); src/link_rfu_3.o(.text); @@ -446,12 +444,12 @@ SECTIONS { src/rom_header.o(.rodata); src/rom_header_gf.o(.rodata); src/main.o(.rodata); - gflib/bg.o(.rodata); - gflib/window.o(.rodata); - gflib/text.o(.rodata); - gflib/sprite.o(.rodata); - gflib/io_reg.o(.rodata); - gflib/string_util.o(.rodata); + src/bg.o(.rodata); + src/window.o(.rodata); + src/text.o(.rodata); + src/sprite.o(.rodata); + src/io_reg.o(.rodata); + src/string_util.o(.rodata); src/link.o(.rodata); src/link.o(.rodata.str1.4); src/AgbRfu_LinkManager.o(.rodata); @@ -1317,9 +1315,7 @@ SECTIONS { ALIGN(4) { src/*.o(.text); - gflib/*.o(.text); src/*.o(.rodata); - gflib/*.o(.rodata); data/*.o(.rodata); } > ROM = 0 diff --git a/ld_script_modern.ld b/ld_script_modern.ld index 4ccbfbaa0f..fac4a134c3 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -16,14 +16,12 @@ SECTIONS { ALIGN(4) { src/*.o(ewram_data); - gflib/*.o(ewram_data); } > EWRAM iwram 0x3000000 (NOLOAD) : ALIGN(4) { src/*.o(.bss); - gflib/*.o(.bss); data/*.o(.bss); *libc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); @@ -31,7 +29,6 @@ SECTIONS { src/m4a.o(.bss.code); src/*.o(COMMON); - gflib/*.o(COMMON); *libc.a:*.o(COMMON); *libnosys.a:*.o(COMMON); } > IWRAM @@ -46,7 +43,6 @@ SECTIONS { src/rom_header_gf.o(.text.*); src/crt0.o(.text); src/main.o(.text); - gflib/*.o(.text*); src/*.o(.text*); asm/*.o(.text*); } > ROM =0 @@ -82,7 +78,6 @@ SECTIONS { ALIGN(4) { src/*.o(.rodata*); - gflib/*.o(.rodata*); data/*.o(.rodata*); } > ROM =0 diff --git a/gflib/bg.c b/src/bg.c similarity index 100% rename from gflib/bg.c rename to src/bg.c diff --git a/gflib/blit.c b/src/blit.c similarity index 100% rename from gflib/blit.c rename to src/blit.c diff --git a/gflib/dma3_manager.c b/src/dma3_manager.c similarity index 100% rename from gflib/dma3_manager.c rename to src/dma3_manager.c diff --git a/gflib/gpu_regs.c b/src/gpu_regs.c similarity index 100% rename from gflib/gpu_regs.c rename to src/gpu_regs.c diff --git a/gflib/io_reg.c b/src/io_reg.c similarity index 100% rename from gflib/io_reg.c rename to src/io_reg.c diff --git a/gflib/malloc.c b/src/malloc.c similarity index 100% rename from gflib/malloc.c rename to src/malloc.c diff --git a/src/mini_printf.c b/src/mini_printf.c index cab78d7611..ac8a0ef127 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -36,7 +36,7 @@ #include "gba/types.h" #include "gba/defines.h" #include "config.h" -#include "characters.h" +#include "constants/characters.h" #include "string_util.h" #ifndef NDEBUG diff --git a/gflib/sprite.c b/src/sprite.c similarity index 100% rename from gflib/sprite.c rename to src/sprite.c diff --git a/gflib/string_util.c b/src/string_util.c similarity index 100% rename from gflib/string_util.c rename to src/string_util.c diff --git a/gflib/text.c b/src/text.c similarity index 100% rename from gflib/text.c rename to src/text.c diff --git a/gflib/window.c b/src/window.c similarity index 100% rename from gflib/window.c rename to src/window.c diff --git a/sym_bss.txt b/sym_bss.txt index 3a23e74789..0520e0b5b0 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -1,10 +1,10 @@ .include "src/main.o" - .include "gflib/malloc.o" - .include "gflib/dma3_manager.o" - .include "gflib/gpu_regs.o" - .include "gflib/bg.o" - .include "gflib/text.o" - .include "gflib/sprite.o" + .include "src/malloc.o" + .include "src/dma3_manager.o" + .include "src/gpu_regs.o" + .include "src/bg.o" + .include "src/text.o" + .include "src/sprite.o" .include "src/link.o" .include "src/AgbRfu_LinkManager.o" .include "src/link_rfu_3.o" diff --git a/sym_common.txt b/sym_common.txt index 7eebcac74e..bffabfbdf3 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -1,17 +1,17 @@ .space 0x8 .include "main.o" - @ ../gflib/bg.o + @ ../src/bg.o .align 2 gWindowTileAutoAllocEnabled: .space 4 - @ ../gflib/window.o + @ ../src/window.o .align 4 gTransparentTileNumber: .space 1 .align 4 gWindowBgTilemapBuffers: .space 16 - @ ../gflib/text.o + @ ../src/text.o .align 4 gFonts: .space 4 @@ -24,7 +24,7 @@ gCurGlyph: .align 2 gTextFlags: .space 4 - @ ../gflib/sprite.o + @ ../src/sprite.o .align 2 gOamMatrixAllocBitmap: .space 4 diff --git a/sym_ewram.txt b/sym_ewram.txt index 31c507ee9b..92a69cc4c9 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1,10 +1,10 @@ - .include "gflib/malloc.o" + .include "src/malloc.o" .include "src/decompress.o" .include "src/main.o" - .include "gflib/window.o" - .include "gflib/text.o" - .include "gflib/sprite.o" - .include "gflib/string_util.o" + .include "src/window.o" + .include "src/text.o" + .include "src/sprite.o" + .include "src/string_util.o" .include "src/link.o" .include "src/AgbRfu_LinkManager.o" .include "src/link_rfu_3.o" diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp index 36b6c7ed06..4eda54a3aa 100644 --- a/tools/preproc/asm_file.cpp +++ b/tools/preproc/asm_file.cpp @@ -26,7 +26,7 @@ #include "char_util.h" #include "utf8.h" #include "string_parser.h" -#include "../../gflib/characters.h" +#include "../../include/constants/characters.h" #include "io.h" AsmFile::AsmFile(std::string filename, bool isStdin, bool doEnum) : m_filename(filename) From 9cb353179ba77e9d1247e003d018d5f005df8861 Mon Sep 17 00:00:00 2001 From: Kurausukun Date: Wed, 18 Sep 2024 10:42:28 -0400 Subject: [PATCH 62/99] fix indentation --- sym_common.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sym_common.txt b/sym_common.txt index bffabfbdf3..335af85a30 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -4,14 +4,14 @@ .align 2 gWindowTileAutoAllocEnabled: .space 4 - @ ../src/window.o + @ ../src/window.o .align 4 gTransparentTileNumber: .space 1 .align 4 gWindowBgTilemapBuffers: .space 16 - @ ../src/text.o + @ ../src/text.o .align 4 gFonts: .space 4 @@ -24,7 +24,7 @@ gCurGlyph: .align 2 gTextFlags: .space 4 - @ ../src/sprite.o + @ ../src/sprite.o .align 2 gOamMatrixAllocBitmap: .space 4 From 80a37c16beb71698903836e7bf583a03ea78c112 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 25 Sep 2024 13:35:52 -0400 Subject: [PATCH 63/99] Remove explicit symbol sizes in sym_common.txt --- common_syms/ereader_screen.txt | 1 + src/ereader_screen.c | 3 +++ sym_common.txt | 48 +++++----------------------------- 3 files changed, 11 insertions(+), 41 deletions(-) diff --git a/common_syms/ereader_screen.txt b/common_syms/ereader_screen.txt index 2189eedbc9..26b01f678d 100644 --- a/common_syms/ereader_screen.txt +++ b/common_syms/ereader_screen.txt @@ -1 +1,2 @@ +gUnknownSpace gEReaderData diff --git a/src/ereader_screen.c b/src/ereader_screen.c index c625c78a9e..cb048d2ae3 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -40,6 +40,9 @@ struct EReaderData static void Task_EReader(u8); +// This belongs in COMMON somewhere between party_menu and ereader_screen, but it's unused so it's unclear where. +UNUSED u8 gUnknownSpace[64]; + struct EReaderData gEReaderData; extern const u8 gMultiBootProgram_EReader_Start[]; diff --git a/sym_common.txt b/sym_common.txt index 335af85a30..e001c2ca59 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -1,37 +1,10 @@ - .space 0x8 + .align 4 .include "main.o" - @ ../src/bg.o - .align 2 -gWindowTileAutoAllocEnabled: - .space 4 - @ ../src/window.o - .align 4 -gTransparentTileNumber: - .space 1 - .align 4 -gWindowBgTilemapBuffers: - .space 16 - @ ../src/text.o - .align 4 -gFonts: - .space 4 - .align 2 -gDisableTextPrinters: - .space 1 - .align 4 -gCurGlyph: - .space 132 - .align 2 -gTextFlags: - .space 4 - @ ../src/sprite.o - .align 2 -gOamMatrixAllocBitmap: - .space 4 - .align 2 -gReservedSpritePaletteCount: - .space 1 + .include "bg.o" .align 4 + .include "window.o" + .include "text.o" + .include "sprite.o" .include "link.o" .include "AgbRfu_LinkManager.o" .include "link_rfu_2.o" @@ -53,9 +26,7 @@ gReservedSpritePaletteCount: .include "tv.o" .include "mauville_old_man.o" .include "image_processing_effects.o" - - .space 0x4 - + .align 4 .include "contest_painting.o" .include "field_specials.o" .include "evolution_scene.o" @@ -66,14 +37,9 @@ gReservedSpritePaletteCount: .include "battle_anim_throw.o" .include "battle_factory_screen.o" .include "apprentice.o" - - .space 0x8 - + .align 4 .include "list_menu.o" .include "party_menu.o" - - .space 0x44 - .include "ereader_screen.o" .include "m4a.o" .include "agb_flash.o" From 8e2c3ca3f2238765e993d005a00dbe4a6abf4a83 Mon Sep 17 00:00:00 2001 From: Scyrous <74797764+Scyrous@users.noreply.github.com> Date: Sun, 29 Sep 2024 14:13:50 +0200 Subject: [PATCH 64/99] Bugfix for cable car sprite array count --- src/cable_car.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cable_car.c b/src/cable_car.c index 8a666a536e..9a6166b599 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -880,8 +880,12 @@ static void CreateCableCarSprites(void) // 1/64 chance for an NPC to appear hiking on the ground below the Cable Car if ((rval % 64) == 0) { - // Unclear if this was intentional, but the - 1 in the below ARRAY_COUNT means the Zigzagoon is never used + // BUGFIX: The - 1 in the below ARRAY_COUNT means the Zigzagoon is never used +#ifdef #BUGFIX + spriteId = CreateObjectGraphicsSprite(hikerGraphicsIds[rval % ARRAY_COUNT(hikerGraphicsIds)], hikerCallbacks[GOING_DOWN], hikerCoords[GOING_DOWN][0], hikerCoords[GOING_DOWN][1], 106); +#else spriteId = CreateObjectGraphicsSprite(hikerGraphicsIds[rval % (ARRAY_COUNT(hikerGraphicsIds) - 1)], hikerCallbacks[GOING_DOWN], hikerCoords[GOING_DOWN][0], hikerCoords[GOING_DOWN][1], 106); +#endif if (spriteId != MAX_SPRITES) { gSprites[spriteId].oam.priority = 2; From 1dc85df1f0ab617dc402ee2da1f37097e3758461 Mon Sep 17 00:00:00 2001 From: Scyrous <74797764+Scyrous@users.noreply.github.com> Date: Sun, 29 Sep 2024 14:38:08 +0200 Subject: [PATCH 65/99] Update cable_car.c --- src/cable_car.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cable_car.c b/src/cable_car.c index 9a6166b599..522ea01a97 100644 --- a/src/cable_car.c +++ b/src/cable_car.c @@ -881,7 +881,7 @@ static void CreateCableCarSprites(void) if ((rval % 64) == 0) { // BUGFIX: The - 1 in the below ARRAY_COUNT means the Zigzagoon is never used -#ifdef #BUGFIX +#ifdef BUGFIX spriteId = CreateObjectGraphicsSprite(hikerGraphicsIds[rval % ARRAY_COUNT(hikerGraphicsIds)], hikerCallbacks[GOING_DOWN], hikerCoords[GOING_DOWN][0], hikerCoords[GOING_DOWN][1], 106); #else spriteId = CreateObjectGraphicsSprite(hikerGraphicsIds[rval % (ARRAY_COUNT(hikerGraphicsIds) - 1)], hikerCallbacks[GOING_DOWN], hikerCoords[GOING_DOWN][0], hikerCoords[GOING_DOWN][1], 106); From c8cc0fa5a34f15b2ff1841dc380f215da677ff1f Mon Sep 17 00:00:00 2001 From: Jaizu Date: Tue, 1 Oct 2024 10:07:45 +0200 Subject: [PATCH 66/99] Ignore mGBA screenshots Everytime I make a new project I suffer, please merge. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 9fa431e143..f940d26b21 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,5 @@ prefabs.json *.diff *.sym *.js +/pokeemerald-*.png +/pokeemerald_modern-*.png From 9a24c031bb21e5f9d198a93ef7b8acb66bbcdec7 Mon Sep 17 00:00:00 2001 From: psf <77138753+pkmnsnfrn@users.noreply.github.com> Date: Wed, 2 Oct 2024 17:48:54 -0700 Subject: [PATCH 67/99] Replaced copyright magic numbers in intro.c with constants (#2035) --- src/intro.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/intro.c b/src/intro.c index 195374bba0..02c3a1f948 100644 --- a/src/intro.c +++ b/src/intro.c @@ -112,6 +112,12 @@ extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[]; +enum { + COPYRIGHT_INITIALIZE, + COPYRIGHT_START_FADE = 140, + COPYRIGHT_START_INTRO, +}; + #define TAG_VOLBEAT 1500 #define TAG_TORCHIC 1501 #define TAG_MANECTRIC 1502 @@ -1067,7 +1073,7 @@ static u8 SetUpCopyrightScreen(void) { switch (gMain.state) { - case 0: + case COPYRIGHT_INITIALIZE: SetVBlankCallback(NULL); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); @@ -1101,7 +1107,7 @@ static u8 SetUpCopyrightScreen(void) gMain.state++; GameCubeMultiBoot_Main(&gMultibootProgramStruct); break; - case 140: + case COPYRIGHT_START_FADE: GameCubeMultiBoot_Main(&gMultibootProgramStruct); if (gMultibootProgramStruct.gcmb_field_2 != 1) { @@ -1109,7 +1115,7 @@ static u8 SetUpCopyrightScreen(void) gMain.state++; } break; - case 141: + case COPYRIGHT_START_INTRO: if (UpdatePaletteFade()) break; CreateTask(Task_Scene1_Load, 0); From 9ad0018c176092ea3ff2a1884cf11ae1b5a194b7 Mon Sep 17 00:00:00 2001 From: Rose <83477269+AreaZR@users.noreply.github.com> Date: Thu, 10 Oct 2024 10:27:33 -0400 Subject: [PATCH 68/99] Fix typo: | should be || in Task_TryFieldPoisonWhiteOut Yes, this is honestly overkill, as it doesn't actually fix any behavioral bugs, but I was suggested to do this. This was a typo made in the source that GameFreak made, and the compiler warns against this. I opened a PR in pokeemerald expansion and was suggested to open one here. --- src/field_poison.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/field_poison.c b/src/field_poison.c index f254a6d142..d952b4b640 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -89,7 +89,11 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId) if (AllMonsFainted()) { // Battle facilities have their own white out script to handle the challenge loss +#ifdef BUGFIX + if (InBattlePyramid() || InBattlePike() || InTrainerHillChallenge()) +#else if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge()) +#endif gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT; else gSpecialVar_Result = FLDPSN_WHITEOUT; From 6d24d8a78f4e0fb9bc139343a970b84beabb6560 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 11 Oct 2024 13:05:56 -0400 Subject: [PATCH 69/99] Fix libpng installation for workflow on Ubuntu 24.04 --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 283e6f8fb5..a99c99283d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,8 +32,9 @@ jobs: repository: pret/agbcc - name: Install binutils - run: sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi - # build-essential, git, and libpng-dev are already installed + run: | + sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi libpng-dev + # build-essential and git are already installed # gcc-arm-none-eabi is only needed for the modern build # as an alternative to dkP From fcc067e5154bedc92a2e8ab009718d97d1fc94e5 Mon Sep 17 00:00:00 2001 From: Martin Griffin Date: Fri, 11 Oct 2024 18:50:26 +0100 Subject: [PATCH 70/99] [preproc] support C23 enum underlying type syntax (#2043) --- tools/preproc/asm_file.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp index 4eda54a3aa..a82354cb5f 100644 --- a/tools/preproc/asm_file.cpp +++ b/tools/preproc/asm_file.cpp @@ -524,6 +524,17 @@ bool AsmFile::ParseEnum() long enumCounter = 0; long symbolCount = 0; + if (m_buffer[m_pos] == ':') // : + { + m_pos++; + std::string underlyingType; + do { + currentHeaderLine += SkipWhitespaceAndEol(); + underlyingType = ReadIdentifier(); + } while (!underlyingType.empty()); + currentHeaderLine += SkipWhitespaceAndEol(); + } + if (m_buffer[m_pos] != '{') // assume assembly macro, otherwise assume enum and report errors accordingly { m_pos = fallbackPosition - 4; From 2c7964dbc273b0bed4456cdbd31ed4ee9b0bc783 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Fri, 11 Oct 2024 18:33:32 +0000 Subject: [PATCH 71/99] Fix deleting files with dependency files (#2045) --- Makefile | 4 +--- tools/scaninc/scaninc.cpp | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 5eaf4cf0bc..ee36562b13 100644 --- a/Makefile +++ b/Makefile @@ -315,10 +315,9 @@ else @echo -e ".text\n\t.align\t2, 0\n" >> $3.s $$(AS) $$(ASFLAGS) -o $$@ $3.s endif +ifneq ($(NODEP),1) $1.d: $2 $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $2 -ifneq ($(NODEP),1) -$1.o: $1.d -include $1.d endif endef @@ -346,7 +345,6 @@ endef define ASM_SCANINC ifneq ($(NODEP),1) -$1.o: $1.d $1.d: $2 $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I "" $2 -include $1.d diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp index c1b7987a5a..d470a3f163 100644 --- a/tools/scaninc/scaninc.cpp +++ b/tools/scaninc/scaninc.cpp @@ -157,19 +157,29 @@ int main(int argc, char **argv) // Print a make rule for the object file size_t ext_pos = make_outfile.find_last_of("."); auto object_file = make_outfile.substr(0, ext_pos + 1) + "o"; - output << object_file.c_str() << ": "; + output << object_file.c_str() << ":"; for (const std::string &path : dependencies) { - output << path << " "; + output << " " << path; } + output << '\n'; // Dependency list rule. // Although these rules are identical, they need to be separate, else make will trigger the rule again after the file is created for the first time. - output << "\n" << make_outfile.c_str() << ": "; + output << make_outfile.c_str() << ":"; for (const std::string &path : dependencies_includes) { - output << path << " "; + output << " " << path; } + output << '\n'; + + // Dummy rules + // If a dependency is deleted, make will try to make it, instead of rescanning the dependencies before trying to do that. + for (const std::string &path : dependencies) + { + output << path << ":\n"; + } + output.flush(); output.close(); } From b6892f5b67782afe05fcd31eaa2d1850bc4e3bc1 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 11 Oct 2024 15:03:38 -0400 Subject: [PATCH 72/99] Let scaninc ignore empty C files --- tools/scaninc/c_file.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp index 595f366cbe..c1fe10d374 100644 --- a/tools/scaninc/c_file.cpp +++ b/tools/scaninc/c_file.cpp @@ -33,6 +33,11 @@ CFile::CFile(std::string path) m_size = std::ftell(fp); + if (m_size < 0) + FATAL_ERROR("File size of \"%s\" is less than zero.\n", path.c_str()); + else if (m_size == 0) + return; // Empty file + m_buffer = new char[m_size + 1]; m_buffer[m_size] = 0; @@ -49,7 +54,7 @@ CFile::CFile(std::string path) CFile::~CFile() { - delete[] m_buffer; + if (m_size > 0) delete[] m_buffer; } void CFile::FindIncbins() From a0be2cbf7b451f20cc5940fa04caf0dc3c5221a3 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 12 Oct 2024 23:50:12 -0400 Subject: [PATCH 73/99] Fix Fallorbor typo --- data/maps/FallarborTown_PokemonCenter_1F/map.json | 2 +- include/constants/flags.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/maps/FallarborTown_PokemonCenter_1F/map.json b/data/maps/FallarborTown_PokemonCenter_1F/map.json index 93204a215a..0c3dd726df 100644 --- a/data/maps/FallarborTown_PokemonCenter_1F/map.json +++ b/data/maps/FallarborTown_PokemonCenter_1F/map.json @@ -64,7 +64,7 @@ "trainer_type": "TRAINER_TYPE_NONE", "trainer_sight_or_berry_tree_id": "0", "script": "FallarborTown_PokemonCenter_1F_EventScript_Lanette", - "flag": "FLAG_HIDE_FALLORBOR_POKEMON_CENTER_LANETTE" + "flag": "FLAG_HIDE_FALLARBOR_POKEMON_CENTER_LANETTE" } ], "warp_events": [ diff --git a/include/constants/flags.h b/include/constants/flags.h index 5b1b5efd19..f291a61871 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -919,7 +919,7 @@ #define FLAG_HIDE_LITTLEROOT_TOWN_FAT_MAN 0x364 #define FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY 0x365 #define FLAG_HIDE_LANETTES_HOUSE_LANETTE 0x366 -#define FLAG_HIDE_FALLORBOR_POKEMON_CENTER_LANETTE 0x367 +#define FLAG_HIDE_FALLARBOR_POKEMON_CENTER_LANETTE 0x367 #define FLAG_HIDE_TRICK_HOUSE_ENTRANCE_MAN 0x368 #define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT 0x369 #define FLAG_HIDE_DESERT_UNDERPASS_FOSSIL 0x36A From 253d3dd7ef1cd123d4ba2cce4117da13a503a8b9 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Tue, 15 Oct 2024 03:47:07 +0000 Subject: [PATCH 74/99] Remove unnecessary looping for rule generation and unroll macros (#2046) --- Makefile | 89 +++++++++++++++++++++++--------------------------------- 1 file changed, 36 insertions(+), 53 deletions(-) diff --git a/Makefile b/Makefile index ee36562b13..58f6c14513 100644 --- a/Makefile +++ b/Makefile @@ -297,69 +297,52 @@ endif # As a side effect, they're evaluated immediately instead of when the rule is invoked. # It doesn't look like $(shell) can be deferred so there might not be a better way (Icedude_907: there is soon). -# For C dependencies. -# Args: $1 = Output file without extension (build/assets/src/data), $2 = Input file (src/data.c) -define C_DEP -$(call C_DEP_IMPL,$1,$2,$1) -endef -# Internal implementation details. -# $1: Output file without extension, $2 input file, $3 temp path (if keeping) -define C_DEP_IMPL -$1.o: $2 +$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c ifneq ($(KEEP_TEMPS),1) - @echo "$$(CC1) -o $$@ $$<" - @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - + @echo "$(CC1) -o $@ $<" + @$(CPP) $(CPPFLAGS) $< | $(PREPROC) -i $< charmap.txt | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - else - @$$(CPP) $$(CPPFLAGS) $$< -o $3.i - @$$(PREPROC) $3.i charmap.txt | $$(CC1) $$(CFLAGS) -o $3.s - @echo -e ".text\n\t.align\t2, 0\n" >> $3.s - $$(AS) $$(ASFLAGS) -o $$@ $3.s + @$(CPP) $(CPPFLAGS) $< -o $*.i + @$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) -o $*.s + @echo -e ".text\n\t.align\t2, 0\n" >> $*.s + $(AS) $(ASFLAGS) -o $@ $*.s endif + +$(C_BUILDDIR)/%.d: $(C_SUBDIR)/%.c + $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $< + ifneq ($(NODEP),1) -$1.d: $2 - $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $2 --include $1.d -endif -endef - -# Create generic rules if no dependency scanning, else create the real rules -ifeq ($(NODEP),1) -$(eval $(call C_DEP,$(C_BUILDDIR)/%,$(C_SUBDIR)/%.c)) -else -$(foreach src,$(C_SRCS),$(eval $(call C_DEP,$(OBJ_DIR)/$(basename $(src)),$(src)))) +-include $(addprefix $(OBJ_DIR)/,$(C_SRCS:.c=.d)) endif -# Similar methodology for Assembly files -# $1: Output path without extension, $2: Input file (`*.s`) -define ASM_DEP -$1.o: $2 - $$(AS) $$(ASFLAGS) -o $$@ $$< -$(call ASM_SCANINC,$1,$2) -endef -# As above but first doing a preprocessor pass -define ASM_DEP_PREPROC -$1.o: $2 - $$(PREPROC) $$< charmap.txt | $$(CPP) $(INCLUDE_SCANINC_ARGS) - | $$(PREPROC) -ie $$< charmap.txt | $$(AS) $$(ASFLAGS) -o $$@ -$(call ASM_SCANINC,$1,$2) -endef +$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s + $(AS) $(ASFLAGS) -o $@ $< + +$(ASM_BUILDDIR)/%.d: $(ASM_SUBDIR)/%.s + $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I "" $< -define ASM_SCANINC ifneq ($(NODEP),1) -$1.d: $2 - $(SCANINC) -M $1.d $(INCLUDE_SCANINC_ARGS) -I "" $2 --include $1.d +-include $(addprefix $(OBJ_DIR)/,$(ASM_SRCS:.s=.d)) endif -endef -# Dummy rules or real rules -ifeq ($(NODEP),1) -$(eval $(call ASM_DEP,$(ASM_BUILDDIR)/%,$(ASM_SUBDIR)/%.s)) -$(eval $(call ASM_DEP_PREPROC,$(C_BUILDDIR)/%,$(C_SUBDIR)/%.s)) -$(eval $(call ASM_DEP_PREPROC,$(DATA_ASM_BUILDDIR)/%,$(DATA_ASM_SUBDIR)/%.s)) -else -$(foreach src, $(ASM_SRCS), $(eval $(call ASM_DEP,$(src:%.s=$(OBJ_DIR)/%),$(src)))) -$(foreach src, $(C_ASM_SRCS), $(eval $(call ASM_DEP_PREPROC,$(src:%.s=$(OBJ_DIR)/%),$(src)))) -$(foreach src, $(REGULAR_DATA_ASM_SRCS), $(eval $(call ASM_DEP_PREPROC,$(src:%.s=$(OBJ_DIR)/%),$(src)))) +$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s + $(PREPROC) $< charmap.txt | $(CPP) $(INCLUDE_SCANINC_ARGS) - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ + +$(C_BUILDDIR)/%.d: $(C_SUBDIR)/%.s + $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I "" $< + +ifneq ($(NODEP),1) +-include $(addprefix $(OBJ_DIR)/,$(C_ASM_SRCS:.s=.d)) +endif + +$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s + $(PREPROC) $< charmap.txt | $(CPP) $(INCLUDE_SCANINC_ARGS) - | $(PREPROC) -ie $< charmap.txt | $(AS) $(ASFLAGS) -o $@ + +$(DATA_ASM_BUILDDIR)/%.d: $(DATA_ASM_SUBDIR)/%.s + $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I "" $< + +ifneq ($(NODEP),1) +-include $(addprefix $(OBJ_DIR)/,$(REGULAR_DATA_ASM_SRCS:.s=.d)) endif $(OBJ_DIR)/sym_bss.ld: sym_bss.txt From a55c75d350969624745a357711ba01edf8ce9590 Mon Sep 17 00:00:00 2001 From: luckytyphlosion <10688458+luckytyphlosion@users.noreply.github.com> Date: Mon, 14 Oct 2024 23:52:11 -0400 Subject: [PATCH 75/99] Get rid of common syms (#2040) --- Makefile | 17 ++- common_syms/AgbRfu_LinkManager.txt | 1 - common_syms/agb_flash.txt | 10 -- common_syms/apprentice.txt | 3 - common_syms/battle_anim_throw.txt | 3 - common_syms/battle_factory_screen.txt | 1 - common_syms/battle_main.txt | 9 -- common_syms/battle_tower.txt | 1 - common_syms/berry_blender.txt | 1 - common_syms/bg.txt | 1 - common_syms/contest.txt | 1 - common_syms/contest_painting.txt | 4 - common_syms/ereader_screen.txt | 2 - common_syms/evolution_scene.txt | 1 - common_syms/faraway_island.txt | 3 - common_syms/field_camera.txt | 3 - common_syms/field_control_avatar.txt | 1 - common_syms/field_specials.txt | 1 - common_syms/fieldmap.txt | 1 - common_syms/image_processing_effects.txt | 10 -- common_syms/intro.txt | 2 - common_syms/librfu_rfu.txt | 5 - common_syms/librfu_sio32id.txt | 1 - common_syms/librfu_stwi.txt | 1 - common_syms/link.txt | 35 ------ common_syms/link_rfu_2.txt | 2 - common_syms/list_menu.txt | 2 - common_syms/load_save.txt | 4 - common_syms/m4a.txt | 12 --- common_syms/main.txt | 9 -- common_syms/mauville_old_man.txt | 1 - common_syms/overworld.txt | 8 -- common_syms/party_menu.txt | 1 - common_syms/pokedex.txt | 2 - common_syms/pokedex_cry_screen.txt | 1 - common_syms/random.txt | 2 - common_syms/rtc.txt | 1 - common_syms/save.txt | 13 --- common_syms/sound.txt | 1 - common_syms/sprite.txt | 2 - common_syms/start_menu.txt | 1 - common_syms/task.txt | 1 - common_syms/text.txt | 4 - common_syms/trainer_see.txt | 5 - common_syms/tv.txt | 4 - common_syms/window.txt | 2 - include/gba/defines.h | 1 + ld_script.ld | 1 + ld_script_modern.ld | 1 + src/AgbRfu_LinkManager.c | 2 +- src/agb_flash.c | 20 ++-- src/apprentice.c | 6 +- src/battle_anim_throw.c | 6 +- src/battle_factory_screen.c | 2 +- src/battle_main.c | 18 ++-- src/battle_tower.c | 2 +- src/berry_blender.c | 2 +- src/bg.c | 2 +- src/contest.c | 2 +- src/contest_painting.c | 8 +- src/ereader_screen.c | 4 +- src/evolution_scene.c | 2 +- src/field_camera.c | 6 +- src/field_control_avatar.c | 2 +- src/field_specials.c | 2 +- src/fieldmap.c | 2 +- src/image_processing_effects.c | 20 ++-- src/intro.c | 4 +- src/librfu_rfu.c | 10 +- src/librfu_sio32id.c | 2 +- src/librfu_stwi.c | 2 +- src/link.c | 70 ++++++------ src/link_rfu_2.c | 4 +- src/list_menu.c | 6 +- src/load_save.c | 8 +- src/m4a.c | 24 ++--- src/main.c | 18 ++-- src/mauville_old_man.c | 2 +- src/overworld.c | 16 +-- src/party_menu.c | 2 +- src/pokedex.c | 4 +- src/pokedex_cry_screen.c | 2 +- src/random.c | 4 +- src/rtc.c | 2 +- src/save.c | 26 ++--- src/sound.c | 2 +- src/sprite.c | 4 +- src/start_menu.c | 2 +- src/task.c | 2 +- src/text.c | 8 +- src/trainer_see.c | 10 +- src/tv.c | 10 +- src/window.c | 4 +- tools/ramscrgen/elf.cpp | 129 +++++++---------------- tools/ramscrgen/elf.h | 4 +- tools/ramscrgen/main.cpp | 55 ++-------- 96 files changed, 243 insertions(+), 500 deletions(-) delete mode 100644 common_syms/AgbRfu_LinkManager.txt delete mode 100644 common_syms/agb_flash.txt delete mode 100644 common_syms/apprentice.txt delete mode 100755 common_syms/battle_anim_throw.txt delete mode 100644 common_syms/battle_factory_screen.txt delete mode 100644 common_syms/battle_main.txt delete mode 100644 common_syms/battle_tower.txt delete mode 100644 common_syms/berry_blender.txt delete mode 100644 common_syms/bg.txt delete mode 100644 common_syms/contest.txt delete mode 100644 common_syms/contest_painting.txt delete mode 100644 common_syms/ereader_screen.txt delete mode 100644 common_syms/evolution_scene.txt delete mode 100755 common_syms/faraway_island.txt delete mode 100644 common_syms/field_camera.txt delete mode 100644 common_syms/field_control_avatar.txt delete mode 100644 common_syms/field_specials.txt delete mode 100644 common_syms/fieldmap.txt delete mode 100644 common_syms/image_processing_effects.txt delete mode 100644 common_syms/intro.txt delete mode 100644 common_syms/librfu_rfu.txt delete mode 100644 common_syms/librfu_sio32id.txt delete mode 100644 common_syms/librfu_stwi.txt delete mode 100644 common_syms/link.txt delete mode 100644 common_syms/link_rfu_2.txt delete mode 100644 common_syms/list_menu.txt delete mode 100644 common_syms/load_save.txt delete mode 100644 common_syms/m4a.txt delete mode 100644 common_syms/main.txt delete mode 100644 common_syms/mauville_old_man.txt delete mode 100644 common_syms/overworld.txt delete mode 100644 common_syms/party_menu.txt delete mode 100644 common_syms/pokedex.txt delete mode 100644 common_syms/pokedex_cry_screen.txt delete mode 100644 common_syms/random.txt delete mode 100644 common_syms/rtc.txt delete mode 100644 common_syms/save.txt delete mode 100644 common_syms/sound.txt delete mode 100644 common_syms/sprite.txt delete mode 100644 common_syms/start_menu.txt delete mode 100644 common_syms/task.txt delete mode 100644 common_syms/text.txt delete mode 100644 common_syms/trainer_see.txt delete mode 100644 common_syms/tv.txt delete mode 100644 common_syms/window.txt diff --git a/Makefile b/Makefile index 58f6c14513..6d66c34d65 100644 --- a/Makefile +++ b/Makefile @@ -178,12 +178,20 @@ ifneq (,$(MAKECMDGOALS)) endif endif +.SHELLSTATUS ?= 0 + ifeq ($(SETUP_PREREQS),1) # If set on: Default target or a rule requiring a scan # Forcibly execute `make tools` since we need them for what we are doing. - $(call infoshell, $(MAKE) -f make_tools.mk) + $(foreach line, $(shell $(MAKE) -f make_tools.mk | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) + ifneq ($(.SHELLSTATUS),0) + $(error Errors occurred while building tools. See error messages above for more details) + endif # Oh and also generate mapjson sources before we use `SCANINC`. - $(call infoshell, $(MAKE) generated) + $(foreach line, $(shell $(MAKE) generated | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line)))) + ifneq ($(.SHELLSTATUS),0) + $(error Errors occurred while generating map-related sources. See error messages above for more details) + endif endif # Collect sources @@ -255,6 +263,8 @@ include spritesheet_rules.mk include json_data_rules.mk include audio_rules.mk +# NOTE: Tools must have been built prior (FIXME) +# so you can't really call this rule directly generated: $(AUTO_GEN_TARGETS) %.s: ; @@ -270,8 +280,6 @@ generated: $(AUTO_GEN_TARGETS) %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ -# NOTE: Tools must have been built prior (FIXME) -generated: tools $(AUTO_GEN_TARGETS) clean-generated: -rm -f $(AUTO_GEN_TARGETS) @@ -371,6 +379,7 @@ libagbsyscall: # Elf from object files $(ELF): $(LD_SCRIPT) $(LD_SCRIPT_DEPS) $(OBJS) libagbsyscall @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../../$< --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat + @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../../$< --print-memory-usage -o ../../$@ | cat" $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent # Builds the rom from the elf file diff --git a/common_syms/AgbRfu_LinkManager.txt b/common_syms/AgbRfu_LinkManager.txt deleted file mode 100644 index 7ff8cd53dd..0000000000 --- a/common_syms/AgbRfu_LinkManager.txt +++ /dev/null @@ -1 +0,0 @@ -lman diff --git a/common_syms/agb_flash.txt b/common_syms/agb_flash.txt deleted file mode 100644 index cb421ec80d..0000000000 --- a/common_syms/agb_flash.txt +++ /dev/null @@ -1,10 +0,0 @@ -gFlashTimeoutFlag -PollFlashStatus -WaitForFlashWrite -ProgramFlashSector -gFlash -ProgramFlashByte -gFlashNumRemainingBytes -EraseFlashChip -EraseFlashSector -gFlashMaxTime diff --git a/common_syms/apprentice.txt b/common_syms/apprentice.txt deleted file mode 100644 index 0d3569dcbb..0000000000 --- a/common_syms/apprentice.txt +++ /dev/null @@ -1,3 +0,0 @@ -gApprenticePartyMovesData -gApprenticeQuestionData -gApprenticeFunc diff --git a/common_syms/battle_anim_throw.txt b/common_syms/battle_anim_throw.txt deleted file mode 100755 index 5e2e8b3ff3..0000000000 --- a/common_syms/battle_anim_throw.txt +++ /dev/null @@ -1,3 +0,0 @@ -gMonShrinkDuration -gMonShrinkDelta -gMonShrinkDistance diff --git a/common_syms/battle_factory_screen.txt b/common_syms/battle_factory_screen.txt deleted file mode 100644 index 3ddeb6d3b1..0000000000 --- a/common_syms/battle_factory_screen.txt +++ /dev/null @@ -1 +0,0 @@ -gFactorySelect_CurrentOptionFunc diff --git a/common_syms/battle_main.txt b/common_syms/battle_main.txt deleted file mode 100644 index f6f02c48d3..0000000000 --- a/common_syms/battle_main.txt +++ /dev/null @@ -1,9 +0,0 @@ -gPreBattleCallback1 -gBattleMainFunc -gBattleResults -gLeveledUpInBattle -gBattlerControllerFuncs -gHealthboxSpriteIds -gMultiUsePlayerCursor -gNumberOfMovesToChoose -gBattleControllerData diff --git a/common_syms/battle_tower.txt b/common_syms/battle_tower.txt deleted file mode 100644 index 7371109d51..0000000000 --- a/common_syms/battle_tower.txt +++ /dev/null @@ -1 +0,0 @@ -gFrontierTempParty diff --git a/common_syms/berry_blender.txt b/common_syms/berry_blender.txt deleted file mode 100644 index 1b15a33d61..0000000000 --- a/common_syms/berry_blender.txt +++ /dev/null @@ -1 +0,0 @@ -gInGameOpponentsNo diff --git a/common_syms/bg.txt b/common_syms/bg.txt deleted file mode 100644 index 0a3c3aecca..0000000000 --- a/common_syms/bg.txt +++ /dev/null @@ -1 +0,0 @@ -gWindowTileAutoAllocEnabled diff --git a/common_syms/contest.txt b/common_syms/contest.txt deleted file mode 100644 index 6a519fb463..0000000000 --- a/common_syms/contest.txt +++ /dev/null @@ -1 +0,0 @@ -gContestRngValue diff --git a/common_syms/contest_painting.txt b/common_syms/contest_painting.txt deleted file mode 100644 index 32bb8be161..0000000000 --- a/common_syms/contest_painting.txt +++ /dev/null @@ -1,4 +0,0 @@ -gContestMonPixels -gImageProcessingContext -gContestPaintingWinner -gContestPaintingMonPalette diff --git a/common_syms/ereader_screen.txt b/common_syms/ereader_screen.txt deleted file mode 100644 index 26b01f678d..0000000000 --- a/common_syms/ereader_screen.txt +++ /dev/null @@ -1,2 +0,0 @@ -gUnknownSpace -gEReaderData diff --git a/common_syms/evolution_scene.txt b/common_syms/evolution_scene.txt deleted file mode 100644 index 137cd3e05d..0000000000 --- a/common_syms/evolution_scene.txt +++ /dev/null @@ -1 +0,0 @@ -gCB2_AfterEvolution diff --git a/common_syms/faraway_island.txt b/common_syms/faraway_island.txt deleted file mode 100755 index e02ca2ec25..0000000000 --- a/common_syms/faraway_island.txt +++ /dev/null @@ -1,3 +0,0 @@ -sPlayerToMewDeltaX -sPlayerToMewDeltaY -sMewDirectionCandidates diff --git a/common_syms/field_camera.txt b/common_syms/field_camera.txt deleted file mode 100644 index 02301ce23c..0000000000 --- a/common_syms/field_camera.txt +++ /dev/null @@ -1,3 +0,0 @@ -gFieldCamera -gTotalCameraPixelOffsetY -gTotalCameraPixelOffsetX diff --git a/common_syms/field_control_avatar.txt b/common_syms/field_control_avatar.txt deleted file mode 100644 index 268f60c641..0000000000 --- a/common_syms/field_control_avatar.txt +++ /dev/null @@ -1 +0,0 @@ -gSelectedObjectEvent diff --git a/common_syms/field_specials.txt b/common_syms/field_specials.txt deleted file mode 100644 index 7adb3f6692..0000000000 --- a/common_syms/field_specials.txt +++ /dev/null @@ -1 +0,0 @@ -gScrollableMultichoice_ListMenuTemplate diff --git a/common_syms/fieldmap.txt b/common_syms/fieldmap.txt deleted file mode 100644 index 0ead758462..0000000000 --- a/common_syms/fieldmap.txt +++ /dev/null @@ -1 +0,0 @@ -gBackupMapLayout diff --git a/common_syms/image_processing_effects.txt b/common_syms/image_processing_effects.txt deleted file mode 100644 index 134f7e88b2..0000000000 --- a/common_syms/image_processing_effects.txt +++ /dev/null @@ -1,10 +0,0 @@ -gCanvasColumnStart -gCanvasPixels -gCanvasRowEnd -gCanvasHeight -gCanvasColumnEnd -gCanvasRowStart -gCanvasMonPersonality -gCanvasWidth -gCanvasPalette -gCanvasPaletteStart diff --git a/common_syms/intro.txt b/common_syms/intro.txt deleted file mode 100644 index d069b1014f..0000000000 --- a/common_syms/intro.txt +++ /dev/null @@ -1,2 +0,0 @@ -gIntroFrameCounter -gMultibootProgramStruct diff --git a/common_syms/librfu_rfu.txt b/common_syms/librfu_rfu.txt deleted file mode 100644 index 4b742dcd25..0000000000 --- a/common_syms/librfu_rfu.txt +++ /dev/null @@ -1,5 +0,0 @@ -gRfuSlotStatusUNI -gRfuSlotStatusNI -gRfuLinkStatus -gRfuStatic -gRfuFixed diff --git a/common_syms/librfu_sio32id.txt b/common_syms/librfu_sio32id.txt deleted file mode 100644 index 97395e84b3..0000000000 --- a/common_syms/librfu_sio32id.txt +++ /dev/null @@ -1 +0,0 @@ -gRfuSIO32Id diff --git a/common_syms/librfu_stwi.txt b/common_syms/librfu_stwi.txt deleted file mode 100644 index a1f7735535..0000000000 --- a/common_syms/librfu_stwi.txt +++ /dev/null @@ -1 +0,0 @@ -gSTWIStatus diff --git a/common_syms/link.txt b/common_syms/link.txt deleted file mode 100644 index 4118d1eb4b..0000000000 --- a/common_syms/link.txt +++ /dev/null @@ -1,35 +0,0 @@ -gLinkPartnersHeldKeys -gLinkDebugSeed -gLocalLinkPlayerBlock -gLinkErrorOccurred -gLinkDebugFlags -gLinkFiller1 -gRemoteLinkPlayersNotReceived -gBlockReceivedStatus -gLinkFiller2 -gLinkHeldKeys -gRecvCmds -gLinkStatus -gLinkDummy1 -gLinkDummy2 -gReadyToExitStandby -gReadyToCloseLink -gReadyCloseLinkType -gSuppressLinkErrorMessage -gWirelessCommType -gSavedLinkPlayerCount -gSendCmd -gSavedMultiplayerId -gReceivedRemoteLinkPlayers -gLinkTestBGInfo -gLinkCallback -gShouldAdvanceLinkState -gLinkTestBlockChecksums -gBlockRequestType -gLinkFiller3 -gLinkFiller4 -gLinkFiller5 -gLastSendQueueCount -gLink -gLastRecvQueueCount -gLinkSavedIme diff --git a/common_syms/link_rfu_2.txt b/common_syms/link_rfu_2.txt deleted file mode 100644 index 4b8f02bad8..0000000000 --- a/common_syms/link_rfu_2.txt +++ /dev/null @@ -1,2 +0,0 @@ -gRfuAPIBuffer -gRfu diff --git a/common_syms/list_menu.txt b/common_syms/list_menu.txt deleted file mode 100644 index ed5343618c..0000000000 --- a/common_syms/list_menu.txt +++ /dev/null @@ -1,2 +0,0 @@ -gListMenuOverride -gMultiuseListMenuTemplate diff --git a/common_syms/load_save.txt b/common_syms/load_save.txt deleted file mode 100644 index 2d3d9b802f..0000000000 --- a/common_syms/load_save.txt +++ /dev/null @@ -1,4 +0,0 @@ -gFlashMemoryPresent -gSaveBlock1Ptr -gSaveBlock2Ptr -gPokemonStoragePtr diff --git a/common_syms/m4a.txt b/common_syms/m4a.txt deleted file mode 100644 index 0d6b13a79b..0000000000 --- a/common_syms/m4a.txt +++ /dev/null @@ -1,12 +0,0 @@ -gSoundInfo -gPokemonCrySongs -gPokemonCryMusicPlayers -gMPlayInfo_BGM -gMPlayJumpTable -gCgbChans -gMPlayInfo_SE1 -gMPlayInfo_SE2 -gPokemonCryTracks -gPokemonCrySong -gMPlayMemAccArea -gMPlayInfo_SE3 diff --git a/common_syms/main.txt b/common_syms/main.txt deleted file mode 100644 index a620083d19..0000000000 --- a/common_syms/main.txt +++ /dev/null @@ -1,9 +0,0 @@ -gKeyRepeatStartDelay -gLinkTransferringData -gMain -gKeyRepeatContinueDelay -gSoftResetDisabled -gIntrTable -gLinkVSyncDisabled -IntrMain_Buffer -gPcmDmaCounter diff --git a/common_syms/mauville_old_man.txt b/common_syms/mauville_old_man.txt deleted file mode 100644 index 9d77b8692b..0000000000 --- a/common_syms/mauville_old_man.txt +++ /dev/null @@ -1 +0,0 @@ -gBardSong diff --git a/common_syms/overworld.txt b/common_syms/overworld.txt deleted file mode 100644 index dcada0bbef..0000000000 --- a/common_syms/overworld.txt +++ /dev/null @@ -1,8 +0,0 @@ -gOverworldTilemapBuffer_Bg2 -gOverworldTilemapBuffer_Bg1 -gOverworldTilemapBuffer_Bg3 -gHeldKeyCodeToSend -gFieldCallback -gFieldCallback2 -gLocalLinkPlayerId -gFieldLinkPlayerCount diff --git a/common_syms/party_menu.txt b/common_syms/party_menu.txt deleted file mode 100644 index 6ed37392c2..0000000000 --- a/common_syms/party_menu.txt +++ /dev/null @@ -1 +0,0 @@ -gItemUseCB diff --git a/common_syms/pokedex.txt b/common_syms/pokedex.txt deleted file mode 100644 index c7a297b2af..0000000000 --- a/common_syms/pokedex.txt +++ /dev/null @@ -1,2 +0,0 @@ -gUnusedPokedexU8 -gPokedexVBlankCB diff --git a/common_syms/pokedex_cry_screen.txt b/common_syms/pokedex_cry_screen.txt deleted file mode 100644 index d16ec36d64..0000000000 --- a/common_syms/pokedex_cry_screen.txt +++ /dev/null @@ -1 +0,0 @@ -gDexCryScreenState diff --git a/common_syms/random.txt b/common_syms/random.txt deleted file mode 100644 index 8037c69586..0000000000 --- a/common_syms/random.txt +++ /dev/null @@ -1,2 +0,0 @@ -gRngValue -gRng2Value diff --git a/common_syms/rtc.txt b/common_syms/rtc.txt deleted file mode 100644 index fa00a34d51..0000000000 --- a/common_syms/rtc.txt +++ /dev/null @@ -1 +0,0 @@ -gLocalTime diff --git a/common_syms/save.txt b/common_syms/save.txt deleted file mode 100644 index 131031d506..0000000000 --- a/common_syms/save.txt +++ /dev/null @@ -1,13 +0,0 @@ -gLastWrittenSector -gLastSaveCounter -gLastKnownGoodSector -gDamagedSaveSectors -gSaveCounter -gReadWriteSector -gIncrementalSectorId -gSaveUnusedVar -gSaveFileStatus -gGameContinueCallback -gRamSaveSectorLocations -gSaveUnusedVar2 -gSaveAttemptStatus diff --git a/common_syms/sound.txt b/common_syms/sound.txt deleted file mode 100644 index 0f6f2fc758..0000000000 --- a/common_syms/sound.txt +++ /dev/null @@ -1 +0,0 @@ -gDisableMusic diff --git a/common_syms/sprite.txt b/common_syms/sprite.txt deleted file mode 100644 index 627c01c0d0..0000000000 --- a/common_syms/sprite.txt +++ /dev/null @@ -1,2 +0,0 @@ -gOamMatrixAllocBitmap -gReservedSpritePaletteCount diff --git a/common_syms/start_menu.txt b/common_syms/start_menu.txt deleted file mode 100644 index 05beaf57c2..0000000000 --- a/common_syms/start_menu.txt +++ /dev/null @@ -1 +0,0 @@ -gMenuCallback diff --git a/common_syms/task.txt b/common_syms/task.txt deleted file mode 100644 index 6601bd11bb..0000000000 --- a/common_syms/task.txt +++ /dev/null @@ -1 +0,0 @@ -gTasks diff --git a/common_syms/text.txt b/common_syms/text.txt deleted file mode 100644 index cd8886e5b1..0000000000 --- a/common_syms/text.txt +++ /dev/null @@ -1,4 +0,0 @@ -gFonts -gDisableTextPrinters -gCurGlyph -gTextFlags diff --git a/common_syms/trainer_see.txt b/common_syms/trainer_see.txt deleted file mode 100644 index 0b30a632a0..0000000000 --- a/common_syms/trainer_see.txt +++ /dev/null @@ -1,5 +0,0 @@ -gWhichTrainerToFaceAfterBattle -gPostBattleMovementScript -gApproachingTrainers -gNoOfApproachingTrainers -gTrainerApproachedPlayer diff --git a/common_syms/tv.txt b/common_syms/tv.txt deleted file mode 100644 index 0370f65e1f..0000000000 --- a/common_syms/tv.txt +++ /dev/null @@ -1,4 +0,0 @@ -sCurTVShowSlot -sTV_SecretBaseVisitMovesTemp -sTV_DecorationsBuffer -sTV_SecretBaseVisitMonsTemp diff --git a/common_syms/window.txt b/common_syms/window.txt deleted file mode 100644 index 24c093a226..0000000000 --- a/common_syms/window.txt +++ /dev/null @@ -1,2 +0,0 @@ -gTransparentTileNumber -gWindowBgTilemapBuffers diff --git a/include/gba/defines.h b/include/gba/defines.h index febe6882cf..a549bab7e2 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -8,6 +8,7 @@ #define IWRAM_DATA __attribute__((section("iwram_data"))) #define EWRAM_DATA __attribute__((section("ewram_data"))) +#define COMMON_DATA __attribute__((section("common_data"))) #define UNUSED __attribute__((unused)) #if MODERN diff --git a/ld_script.ld b/ld_script.ld index 1e08a8d61c..316b5fe20f 100644 --- a/ld_script.ld +++ b/ld_script.ld @@ -42,6 +42,7 @@ SECTIONS { /* COMMON starts at 0x30022A8 */ INCLUDE "sym_common.ld" + src/*.o(COMMON); *libc.a:sbrkr.o(COMMON); } > IWRAM diff --git a/ld_script_modern.ld b/ld_script_modern.ld index fac4a134c3..788a5736f0 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -28,6 +28,7 @@ SECTIONS { src/m4a.o(.bss.code); + src/*.o(common_data); src/*.o(COMMON); *libc.a:*.o(COMMON); *libnosys.a:*.o(COMMON); diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index e4ee377f7b..d696c01d3c 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -14,7 +14,7 @@ #define FSP_ON 0x01 #define FSP_START 0x02 -LINK_MANAGER lman; +COMMON_DATA LINK_MANAGER lman = {0}; static void rfu_LMAN_clearVariables(void); static void rfu_LMAN_settingPCSWITCH(u32 rand); diff --git a/src/agb_flash.c b/src/agb_flash.c index 6b9381c704..ffec206fee 100644 --- a/src/agb_flash.c +++ b/src/agb_flash.c @@ -6,16 +6,16 @@ static u16 sTimerCount; static vu16 *sTimerReg; static u16 sSavedIme; -u8 gFlashTimeoutFlag; -u8 (*PollFlashStatus)(u8 *); -u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData); -u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src); -const struct FlashType *gFlash; -u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data); -u16 gFlashNumRemainingBytes; -u16 (*EraseFlashChip)(); -u16 (*EraseFlashSector)(u16 sectorNum); -const u16 *gFlashMaxTime; +COMMON_DATA u8 gFlashTimeoutFlag = 0; +COMMON_DATA u8 (*PollFlashStatus)(u8 *) = NULL; +COMMON_DATA u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData) = NULL; +COMMON_DATA u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src) = NULL; +COMMON_DATA const struct FlashType *gFlash = NULL; +COMMON_DATA u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data) = NULL; +COMMON_DATA u16 gFlashNumRemainingBytes = 0; +COMMON_DATA u16 (*EraseFlashChip)() = NULL; +COMMON_DATA u16 (*EraseFlashSector)(u16 sectorNum) = 0; +COMMON_DATA const u16 *gFlashMaxTime = NULL; void SetReadFlash1(u16 *dest); diff --git a/src/apprentice.c b/src/apprentice.c index 2280412fe7..72ab8f24c8 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -75,9 +75,9 @@ struct ApprenticeQuestionData }; // IWRAM common -struct ApprenticePartyMovesData *gApprenticePartyMovesData; -struct ApprenticeQuestionData *gApprenticeQuestionData; -void (*gApprenticeFunc)(void); +COMMON_DATA struct ApprenticePartyMovesData *gApprenticePartyMovesData = NULL; +COMMON_DATA struct ApprenticeQuestionData *gApprenticeQuestionData = NULL; +COMMON_DATA void (*gApprenticeFunc)(void) = NULL; // This file's functions. static u16 GetRandomAlternateMove(u8 monId); diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index 8296126f14..951794fc54 100755 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -23,9 +23,9 @@ #include "constants/rgb.h" // iwram -u32 gMonShrinkDuration; -u16 gMonShrinkDelta; -u16 gMonShrinkDistance; +COMMON_DATA u32 gMonShrinkDuration = 0; +COMMON_DATA u16 gMonShrinkDelta = 0; +COMMON_DATA u16 gMonShrinkDistance = 0; enum { BALL_ROLL_1, diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index 0533d1e2a3..adf241153f 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -256,7 +256,7 @@ static struct FactorySelectScreen *sFactorySelectScreen; static void (*sSwap_CurrentOptionFunc)(u8 taskId); static struct FactorySwapScreen *sFactorySwapScreen; -u8 (*gFactorySelect_CurrentOptionFunc)(void); +COMMON_DATA u8 (*gFactorySelect_CurrentOptionFunc)(void) = NULL; static const u16 sPokeballGray_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/pokeball_gray.gbapal"); static const u16 sPokeballSelected_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/pokeball_selected.gbapal"); diff --git a/src/battle_main.c b/src/battle_main.c index 9039655c4d..7ee8d8cf55 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -237,15 +237,15 @@ EWRAM_DATA u16 gBattleMovePower = 0; EWRAM_DATA u16 gMoveToLearn = 0; EWRAM_DATA u8 gBattleMonForms[MAX_BATTLERS_COUNT] = {0}; -void (*gPreBattleCallback1)(void); -void (*gBattleMainFunc)(void); -struct BattleResults gBattleResults; -u8 gLeveledUpInBattle; -void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); -u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; -u8 gMultiUsePlayerCursor; -u8 gNumberOfMovesToChoose; -u8 gBattleControllerData[MAX_BATTLERS_COUNT]; // Used by the battle controllers to store misc sprite/task IDs for each battler +COMMON_DATA void (*gPreBattleCallback1)(void) = NULL; +COMMON_DATA void (*gBattleMainFunc)(void) = NULL; +COMMON_DATA struct BattleResults gBattleResults = {0}; +COMMON_DATA u8 gLeveledUpInBattle = 0; +COMMON_DATA void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void) = {0}; +COMMON_DATA u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT] = {0}; +COMMON_DATA u8 gMultiUsePlayerCursor = 0; +COMMON_DATA u8 gNumberOfMovesToChoose = 0; +COMMON_DATA u8 gBattleControllerData[MAX_BATTLERS_COUNT] = {0}; // Used by the battle controllers to store misc sprite/task IDs for each battler static const struct ScanlineEffectParams sIntroScanlineParams16Bit = { diff --git a/src/battle_tower.c b/src/battle_tower.c index ec6019afb0..0420a15f63 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -45,7 +45,7 @@ EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL; EWRAM_DATA const struct FacilityMon *gFacilityTrainerMons = NULL; // IWRAM common -u16 gFrontierTempParty[MAX_FRONTIER_PARTY_SIZE]; +COMMON_DATA u16 gFrontierTempParty[MAX_FRONTIER_PARTY_SIZE] = {0}; // This file's functions. static void InitTowerChallenge(void); diff --git a/src/berry_blender.c b/src/berry_blender.c index a5102d48fb..5f0e170607 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -246,7 +246,7 @@ static s16 sPokeblockPresentFlavors[FLAVOR_COUNT + 1]; static s16 sDebug_MaxRPMStage; static s16 sDebug_GameTimeStage; -u8 gInGameOpponentsNo; +COMMON_DATA u8 gInGameOpponentsNo = 0; static const u16 sBlenderCenter_Pal[] = INCBIN_U16("graphics/berry_blender/center.gbapal"); static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin"); diff --git a/src/bg.c b/src/bg.c index 4ccb95eb6b..166c59df0c 100644 --- a/src/bg.c +++ b/src/bg.c @@ -42,7 +42,7 @@ static struct BgControl sGpuBgConfigs; static struct BgConfig2 sGpuBgConfigs2[NUM_BACKGROUNDS]; static u32 sDmaBusyBitfield[NUM_BACKGROUNDS]; -u32 gWindowTileAutoAllocEnabled; +COMMON_DATA u32 gWindowTileAutoAllocEnabled = 0; static const struct BgConfig sZeroedBgControlStruct = { 0 }; diff --git a/src/contest.c b/src/contest.c index 8f0ad7fbfe..5b9560faf5 100644 --- a/src/contest.c +++ b/src/contest.c @@ -358,7 +358,7 @@ EWRAM_DATA bool8 gCurContestWinnerIsForArtist = 0; EWRAM_DATA u8 gCurContestWinnerSaveIdx = 0; // IWRAM common vars. -u32 gContestRngValue; +COMMON_DATA u32 gContestRngValue = 0; extern const u8 gText_LinkStandby4[]; extern const u8 gText_BDot[]; diff --git a/src/contest_painting.c b/src/contest_painting.c index 30ca51c966..c72d0dc6af 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -21,10 +21,10 @@ #include "window.h" #include "constants/rgb.h" -u16 (*gContestMonPixels)[][32]; -struct ImageProcessingContext gImageProcessingContext; -struct ContestWinner *gContestPaintingWinner; -u16 *gContestPaintingMonPalette; +COMMON_DATA u16 (*gContestMonPixels)[][32] = {0}; +COMMON_DATA struct ImageProcessingContext gImageProcessingContext = {0}; +COMMON_DATA struct ContestWinner *gContestPaintingWinner = {0}; +COMMON_DATA u16 *gContestPaintingMonPalette = NULL; static u8 sHoldState; static u16 sMosaicVal; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index cb048d2ae3..556acf8e3c 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -41,9 +41,9 @@ struct EReaderData static void Task_EReader(u8); // This belongs in COMMON somewhere between party_menu and ereader_screen, but it's unused so it's unclear where. -UNUSED u8 gUnknownSpace[64]; +COMMON_DATA UNUSED u8 gUnknownSpace[64] = {0}; -struct EReaderData gEReaderData; +COMMON_DATA struct EReaderData gEReaderData = {0}; extern const u8 gMultiBootProgram_EReader_Start[]; extern const u8 gMultiBootProgram_EReader_End[]; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 133afe3b0d..db28ceb8f2 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -48,7 +48,7 @@ struct EvoInfo static EWRAM_DATA struct EvoInfo *sEvoStructPtr = NULL; static EWRAM_DATA u16 *sBgAnimPal = NULL; -void (*gCB2_AfterEvolution)(void); +COMMON_DATA void (*gCB2_AfterEvolution)(void) = NULL; #define sEvoCursorPos gBattleCommunication[1] // when learning a new move #define sEvoGraphicsTaskId gBattleCommunication[2] diff --git a/src/field_camera.c b/src/field_camera.c index 31ebc63c05..290ddddaf1 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -39,9 +39,9 @@ static s16 sVerticalCameraPan; static bool8 sBikeCameraPanFlag; static void (*sFieldCameraPanningCallback)(void); -struct CameraObject gFieldCamera; -u16 gTotalCameraPixelOffsetY; -u16 gTotalCameraPixelOffsetX; +COMMON_DATA struct CameraObject gFieldCamera = {0}; +COMMON_DATA u16 gTotalCameraPixelOffsetY = 0; +COMMON_DATA u16 gTotalCameraPixelOffsetX = 0; static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset) { diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 09d6ae7838..b1c3aa6d8e 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -38,7 +38,7 @@ static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0; static EWRAM_DATA u16 sPrevMetatileBehavior = 0; -u8 gSelectedObjectEvent; +COMMON_DATA u8 gSelectedObjectEvent = 0; static void GetPlayerPosition(struct MapPosition *); static void GetInFrontOfPlayerPosition(struct MapPosition *); diff --git a/src/field_specials.c b/src/field_specials.c index f8d493493c..43d07356aa 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -92,7 +92,7 @@ static EWRAM_DATA u8 sFrontierExchangeCorner_ItemIconWindowId = 0; static EWRAM_DATA u8 sPCBoxToSendMon = 0; static EWRAM_DATA u32 sBattleTowerMultiBattleTypeFlags = 0; -struct ListMenuTemplate gScrollableMultichoice_ListMenuTemplate; +COMMON_DATA struct ListMenuTemplate gScrollableMultichoice_ListMenuTemplate = {0}; void TryLoseFansFromPlayTime(void); void SetPlayerGotFirstFans(void); diff --git a/src/fieldmap.c b/src/fieldmap.c index e4dc0026a3..8c0e416f45 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -31,7 +31,7 @@ EWRAM_DATA struct Camera gCamera = {0}; EWRAM_DATA static struct ConnectionFlags sMapConnectionFlags = {0}; EWRAM_DATA static u32 UNUSED sFiller = 0; // without this, the next file won't align properly -struct BackupMapLayout gBackupMapLayout; +COMMON_DATA struct BackupMapLayout gBackupMapLayout = {0}; static const struct ConnectionFlags sDummyConnectionFlags = {0}; diff --git a/src/image_processing_effects.c b/src/image_processing_effects.c index 51a5d13993..b09e881fe0 100644 --- a/src/image_processing_effects.c +++ b/src/image_processing_effects.c @@ -4,16 +4,16 @@ #include "constants/rgb.h" // IWRAM common -u8 gCanvasColumnStart; -u16 *gCanvasPixels; -u8 gCanvasRowEnd; -u8 gCanvasHeight; -u8 gCanvasColumnEnd; -u8 gCanvasRowStart; -u8 gCanvasMonPersonality; -u8 gCanvasWidth; -u16 *gCanvasPalette; -u16 gCanvasPaletteStart; +COMMON_DATA u8 gCanvasColumnStart = 0; +COMMON_DATA u16 *gCanvasPixels = NULL; +COMMON_DATA u8 gCanvasRowEnd = 0; +COMMON_DATA u8 gCanvasHeight = 0; +COMMON_DATA u8 gCanvasColumnEnd = 0; +COMMON_DATA u8 gCanvasRowStart = 0; +COMMON_DATA u8 gCanvasMonPersonality = 0; +COMMON_DATA u8 gCanvasWidth = 0; +COMMON_DATA u16 *gCanvasPalette = NULL; +COMMON_DATA u16 gCanvasPaletteStart = 0; static void ApplyImageEffect_Pointillism(void); static void ApplyImageEffect_Blur(void); diff --git a/src/intro.c b/src/intro.c index 02c3a1f948..68432b5b98 100644 --- a/src/intro.c +++ b/src/intro.c @@ -178,8 +178,8 @@ static EWRAM_DATA u16 sIntroCharacterGender = 0; static EWRAM_DATA u16 UNUSED sUnusedVar = 0; static EWRAM_DATA u16 sFlygonYOffset = 0; -u32 gIntroFrameCounter; -struct GcmbStruct gMultibootProgramStruct; +COMMON_DATA u32 gIntroFrameCounter = 0; +COMMON_DATA struct GcmbStruct gMultibootProgramStruct = {0}; static const u16 sIntroDrops_Pal[] = INCBIN_U16("graphics/intro/scene_1/drops.gbapal"); static const u16 sIntroLogo_Pal[] = INCBIN_U16("graphics/intro/scene_1/logo.gbapal"); diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index 828d6450bc..ee5dbe6af4 100644 --- a/src/librfu_rfu.c +++ b/src/librfu_rfu.c @@ -76,11 +76,11 @@ static void rfu_STC_NI_receive_Sender(u8, u8, const struct RfuLocalStruct *, UNU static void rfu_STC_NI_initSlot_asRecvDataEntity(u8, struct NIComm *); static void rfu_STC_NI_initSlot_asRecvControllData(u8, struct NIComm *); -struct RfuSlotStatusUNI *gRfuSlotStatusUNI[RFU_CHILD_MAX]; -struct RfuSlotStatusNI *gRfuSlotStatusNI[RFU_CHILD_MAX]; -struct RfuLinkStatus *gRfuLinkStatus; -struct RfuStatic *gRfuStatic; -struct RfuFixed *gRfuFixed; +COMMON_DATA struct RfuSlotStatusUNI *gRfuSlotStatusUNI[RFU_CHILD_MAX] = {0}; +COMMON_DATA struct RfuSlotStatusNI *gRfuSlotStatusNI[RFU_CHILD_MAX] = {0}; +COMMON_DATA struct RfuLinkStatus *gRfuLinkStatus = NULL; +COMMON_DATA struct RfuStatic *gRfuStatic = NULL; +COMMON_DATA struct RfuFixed *gRfuFixed = NULL; static const struct LLSFStruct llsf_struct[2] = { [MODE_CHILD] = { diff --git a/src/librfu_sio32id.c b/src/librfu_sio32id.c index 1c02840e85..32391d781c 100644 --- a/src/librfu_sio32id.c +++ b/src/librfu_sio32id.c @@ -15,7 +15,7 @@ struct RfuSIO32Id u16 lastId; }; -struct RfuSIO32Id gRfuSIO32Id; +COMMON_DATA struct RfuSIO32Id gRfuSIO32Id = {0}; static const u16 Sio32ConnectionData[] = { 0x494e, 0x544e, 0x4e45, 0x4f44 }; // NINTENDO static const char Sio32IDLib_Var[] = "Sio32ID_030820"; diff --git a/src/librfu_stwi.c b/src/librfu_stwi.c index b515f338e0..13a7e34082 100644 --- a/src/librfu_stwi.c +++ b/src/librfu_stwi.c @@ -8,7 +8,7 @@ static void STWI_stop_timer(void); static s32 STWI_restart_Command(void); static s32 STWI_reset_ClockCounter(void); -struct STWIStatus *gSTWIStatus; +COMMON_DATA struct STWIStatus *gSTWIStatus = NULL; void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam) { diff --git a/src/link.c b/src/link.c index f784a36c67..bb74574a31 100644 --- a/src/link.c +++ b/src/link.c @@ -68,41 +68,41 @@ static u16 sRecvNonzeroCheck; static u8 sChecksumAvailable; static u8 sHandshakePlayerCount; -u16 gLinkPartnersHeldKeys[6]; -u32 gLinkDebugSeed; -struct LinkPlayerBlock gLocalLinkPlayerBlock; -bool8 gLinkErrorOccurred; -u32 gLinkDebugFlags; -u32 gLinkFiller1; -bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS]; -u8 gBlockReceivedStatus[MAX_LINK_PLAYERS]; -u32 gLinkFiller2; -u16 gLinkHeldKeys; -u16 ALIGNED(4) gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH]; -u32 gLinkStatus; -bool8 gLinkDummy1; // Never read -bool8 gLinkDummy2; // Never read -bool8 gReadyToExitStandby[MAX_LINK_PLAYERS]; -bool8 gReadyToCloseLink[MAX_LINK_PLAYERS]; -u16 gReadyCloseLinkType; // Never read -u8 gSuppressLinkErrorMessage; -bool8 gWirelessCommType; -bool8 gSavedLinkPlayerCount; -u16 gSendCmd[CMD_LENGTH]; -u8 gSavedMultiplayerId; -bool8 gReceivedRemoteLinkPlayers; -struct LinkTestBGInfo gLinkTestBGInfo; -void (*gLinkCallback)(void); -u8 gShouldAdvanceLinkState; -u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS]; -u8 gBlockRequestType; -u32 gLinkFiller3; -u32 gLinkFiller4; -u32 gLinkFiller5; -u8 gLastSendQueueCount; -struct Link gLink; -u8 gLastRecvQueueCount; -u16 gLinkSavedIme; +COMMON_DATA u16 gLinkPartnersHeldKeys[6] = {0}; +COMMON_DATA u32 gLinkDebugSeed = 0; +COMMON_DATA struct LinkPlayerBlock gLocalLinkPlayerBlock = {0}; +COMMON_DATA bool8 gLinkErrorOccurred = 0; +COMMON_DATA u32 gLinkDebugFlags = 0; +COMMON_DATA u32 gLinkFiller1 = 0; +COMMON_DATA bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS] = {0}; +COMMON_DATA u8 gBlockReceivedStatus[MAX_LINK_PLAYERS] = {0}; +COMMON_DATA u32 gLinkFiller2 = 0; +COMMON_DATA u16 gLinkHeldKeys = 0; +COMMON_DATA u16 ALIGNED(4) gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH] = {0}; +COMMON_DATA u32 gLinkStatus = 0; +COMMON_DATA bool8 gLinkDummy1 = 0; // Never read +COMMON_DATA bool8 gLinkDummy2 = 0; // Never read +COMMON_DATA bool8 gReadyToExitStandby[MAX_LINK_PLAYERS] = {0}; +COMMON_DATA bool8 gReadyToCloseLink[MAX_LINK_PLAYERS] = {0}; +COMMON_DATA u16 gReadyCloseLinkType = 0; // Never read +COMMON_DATA u8 gSuppressLinkErrorMessage = 0; +COMMON_DATA bool8 gWirelessCommType = 0; +COMMON_DATA bool8 gSavedLinkPlayerCount = 0; +COMMON_DATA u16 gSendCmd[CMD_LENGTH] = {0}; +COMMON_DATA u8 gSavedMultiplayerId = 0; +COMMON_DATA bool8 gReceivedRemoteLinkPlayers = 0; +COMMON_DATA struct LinkTestBGInfo gLinkTestBGInfo = {0}; +COMMON_DATA void (*gLinkCallback)(void) = NULL; +COMMON_DATA u8 gShouldAdvanceLinkState = 0; +COMMON_DATA u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS] = {0}; +COMMON_DATA u8 gBlockRequestType = 0; +COMMON_DATA u32 gLinkFiller3 = 0; +COMMON_DATA u32 gLinkFiller4 = 0; +COMMON_DATA u32 gLinkFiller5 = 0; +COMMON_DATA u8 gLastSendQueueCount = 0; +COMMON_DATA struct Link gLink = {0}; +COMMON_DATA u8 gLastRecvQueueCount = 0; +COMMON_DATA u16 gLinkSavedIme = 0; static EWRAM_DATA u8 sLinkTestDebugValuesEnabled = 0; static EWRAM_DATA u8 sDummyFlag = FALSE; diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index b34c7184cf..4c4323c1ed 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -77,8 +77,8 @@ struct RfuDebug u8 unused4[88]; }; -u32 gRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4]; -struct RfuManager gRfu; +COMMON_DATA u32 gRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4] = {0}; +COMMON_DATA struct RfuManager gRfu = {0}; static u8 sHeldKeyCount; static u8 sResendBlock8[CMD_LENGTH * 2]; diff --git a/src/list_menu.c b/src/list_menu.c index e24442ca02..8201caa34d 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -99,7 +99,7 @@ static EWRAM_DATA struct { EWRAM_DATA struct ScrollArrowsTemplate gTempScrollArrowTemplate = {0}; // IWRAM common -struct { +COMMON_DATA struct { u8 cursorPal:4; u8 fillValue:4; u8 cursorShadowPal:4; @@ -107,9 +107,9 @@ struct { u8 field_2_2:6; // unused u8 fontId:7; bool8 enabled:1; -} gListMenuOverride; +} gListMenuOverride = {0}; -struct ListMenuTemplate gMultiuseListMenuTemplate; +COMMON_DATA struct ListMenuTemplate gMultiuseListMenuTemplate = {0}; // const rom data static const struct diff --git a/src/load_save.c b/src/load_save.c index 44e08b5e9c..a6284ffebd 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -37,10 +37,10 @@ EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0}; EWRAM_DATA u32 gLastEncryptionKey = 0; // IWRAM common -bool32 gFlashMemoryPresent; -struct SaveBlock1 *gSaveBlock1Ptr; -struct SaveBlock2 *gSaveBlock2Ptr; -struct PokemonStorage *gPokemonStoragePtr; +COMMON_DATA bool32 gFlashMemoryPresent = 0; +COMMON_DATA struct SaveBlock1 *gSaveBlock1Ptr = NULL; +COMMON_DATA struct SaveBlock2 *gSaveBlock2Ptr = NULL; +COMMON_DATA struct PokemonStorage *gPokemonStoragePtr = NULL; // code void CheckForFlashMemory(void) diff --git a/src/m4a.c b/src/m4a.c index 7774d09cba..9caedd34a0 100644 --- a/src/m4a.c +++ b/src/m4a.c @@ -7,18 +7,18 @@ extern const u8 gCgb3Vol[]; BSS_CODE ALIGNED(4) char SoundMainRAM_Buffer[0x800] = {0}; -struct SoundInfo gSoundInfo; -struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES]; -struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES]; -MPlayFunc gMPlayJumpTable[36]; -struct CgbChannel gCgbChans[4]; -struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2]; -struct PokemonCrySong gPokemonCrySong; -struct MusicPlayerInfo gMPlayInfo_BGM; -struct MusicPlayerInfo gMPlayInfo_SE1; -struct MusicPlayerInfo gMPlayInfo_SE2; -struct MusicPlayerInfo gMPlayInfo_SE3; -u8 gMPlayMemAccArea[0x10]; +COMMON_DATA struct SoundInfo gSoundInfo = {0}; +COMMON_DATA struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES] = {0}; +COMMON_DATA struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES] = {0}; +COMMON_DATA struct MusicPlayerInfo gMPlayInfo_BGM = {0}; +COMMON_DATA MPlayFunc gMPlayJumpTable[36] = {0}; +COMMON_DATA struct CgbChannel gCgbChans[4] = {0}; +COMMON_DATA struct MusicPlayerInfo gMPlayInfo_SE1 = {0}; +COMMON_DATA struct MusicPlayerInfo gMPlayInfo_SE2 = {0}; +COMMON_DATA struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2] = {0}; +COMMON_DATA struct PokemonCrySong gPokemonCrySong = {0}; +COMMON_DATA u8 gMPlayMemAccArea[0x10] = {0}; +COMMON_DATA struct MusicPlayerInfo gMPlayInfo_SE3 = {0}; u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust) { diff --git a/src/main.c b/src/main.c index 5f12a2996e..5750ad2171 100644 --- a/src/main.c +++ b/src/main.c @@ -59,15 +59,15 @@ const IntrFunc gIntrTableTemplate[] = static u16 sUnusedVar; // Never read -u16 gKeyRepeatStartDelay; -bool8 gLinkTransferringData; -struct Main gMain; -u16 gKeyRepeatContinueDelay; -bool8 gSoftResetDisabled; -IntrFunc gIntrTable[INTR_COUNT]; -u8 gLinkVSyncDisabled; -u32 IntrMain_Buffer[0x200]; -s8 gPcmDmaCounter; +COMMON_DATA u16 gKeyRepeatStartDelay = 0; +COMMON_DATA bool8 gLinkTransferringData = 0; +COMMON_DATA struct Main gMain = {0}; +COMMON_DATA u16 gKeyRepeatContinueDelay = 0; +COMMON_DATA bool8 gSoftResetDisabled = 0; +COMMON_DATA IntrFunc gIntrTable[INTR_COUNT] = {0}; +COMMON_DATA u8 gLinkVSyncDisabled = 0; +COMMON_DATA u32 IntrMain_Buffer[0x200] = {0}; +COMMON_DATA s8 gPcmDmaCounter = 0; static EWRAM_DATA u16 sTrainerId = 0; diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 287419f901..dda6e6bffa 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -31,7 +31,7 @@ static void Storyteller_ResetFlag(void); static u8 sSelectedStory; -struct BardSong gBardSong; +COMMON_DATA struct BardSong gBardSong = {0}; static EWRAM_DATA u16 sUnknownBardRelated = 0; static EWRAM_DATA struct MauvilleManStoryteller * sStorytellerPtr = NULL; diff --git a/src/overworld.c b/src/overworld.c index e1cb0a1cad..e2c47530be 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -180,14 +180,14 @@ static u16 (*sPlayerKeyInterceptCallback)(u32); static bool8 sReceivingFromLink; static u8 sRfuKeepAliveTimer; -u16 *gOverworldTilemapBuffer_Bg2; -u16 *gOverworldTilemapBuffer_Bg1; -u16 *gOverworldTilemapBuffer_Bg3; -u16 gHeldKeyCodeToSend; -void (*gFieldCallback)(void); -bool8 (*gFieldCallback2)(void); -u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode. -u8 gFieldLinkPlayerCount; +COMMON_DATA u16 *gOverworldTilemapBuffer_Bg2 = NULL; +COMMON_DATA u16 *gOverworldTilemapBuffer_Bg1 = NULL; +COMMON_DATA u16 *gOverworldTilemapBuffer_Bg3 = NULL; +COMMON_DATA u16 gHeldKeyCodeToSend = 0; +COMMON_DATA void (*gFieldCallback)(void) = NULL; +COMMON_DATA bool8 (*gFieldCallback2)(void) = NULL; +COMMON_DATA u8 gLocalLinkPlayerId = 0; // This is our player id in a multiplayer mode. +COMMON_DATA u8 gFieldLinkPlayerCount = 0; EWRAM_DATA static u8 sObjectEventLoadFlag = 0; EWRAM_DATA struct WarpData gLastUsedWarp = {0}; diff --git a/src/party_menu.c b/src/party_menu.c index adf833fe89..56625d09a3 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -231,7 +231,7 @@ static EWRAM_DATA u16 sUnused = 0; EWRAM_DATA u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2] = {0}; // bits 0-3 are the current pos of Slot 1, 4-7 are Slot 2, and so on // IWRAM common -void (*gItemUseCB)(u8, TaskFunc); +COMMON_DATA void (*gItemUseCB)(u8, TaskFunc) = NULL; static void ResetPartyMenu(void); static void CB2_InitPartyMenu(void); diff --git a/src/pokedex.c b/src/pokedex.c index 09a25b872b..c0b20bf9d6 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -121,8 +121,8 @@ static EWRAM_DATA u8 sPokeBallRotation = 0; static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL; // This is written to, but never read. -u8 gUnusedPokedexU8; -void (*gPokedexVBlankCB)(void); +COMMON_DATA u8 gUnusedPokedexU8 = 0; +COMMON_DATA void (*gPokedexVBlankCB)(void) = NULL; struct SearchOptionText { diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 437ef8cf5a..2fb3d55a24 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -60,7 +60,7 @@ static void SpriteCB_CryMeterNeedle(struct Sprite *); static void SetCryMeterNeedleTarget(s8); // IWRAM common -u8 gDexCryScreenState; +COMMON_DATA u8 gDexCryScreenState = 0; // EWRAM vars static EWRAM_DATA struct PokedexCryScreen *sDexCryScreen = NULL; diff --git a/src/random.c b/src/random.c index de923fba63..aa2c67750d 100644 --- a/src/random.c +++ b/src/random.c @@ -5,8 +5,8 @@ EWRAM_DATA static u8 sUnknown = 0; EWRAM_DATA static u32 sRandCount = 0; // IWRAM common -u32 gRngValue; -u32 gRng2Value; +COMMON_DATA u32 gRngValue = 0; +COMMON_DATA u32 gRng2Value = 0; u16 Random(void) { diff --git a/src/rtc.c b/src/rtc.c index b79f62a3c4..08d5ec4c98 100644 --- a/src/rtc.c +++ b/src/rtc.c @@ -10,7 +10,7 @@ static u8 sProbeResult; static u16 sSavedIme; // iwram common -struct Time gLocalTime; +COMMON_DATA struct Time gLocalTime = {0}; // const rom diff --git a/src/save.c b/src/save.c index 765fb045c3..31230bacb5 100644 --- a/src/save.c +++ b/src/save.c @@ -79,19 +79,19 @@ STATIC_ASSERT(sizeof(struct SaveBlock2) <= SECTOR_DATA_SIZE, SaveBlock2FreeSpace STATIC_ASSERT(sizeof(struct SaveBlock1) <= SECTOR_DATA_SIZE * (SECTOR_ID_SAVEBLOCK1_END - SECTOR_ID_SAVEBLOCK1_START + 1), SaveBlock1FreeSpace); STATIC_ASSERT(sizeof(struct PokemonStorage) <= SECTOR_DATA_SIZE * (SECTOR_ID_PKMN_STORAGE_END - SECTOR_ID_PKMN_STORAGE_START + 1), PokemonStorageFreeSpace); -u16 gLastWrittenSector; -u32 gLastSaveCounter; -u16 gLastKnownGoodSector; -u32 gDamagedSaveSectors; -u32 gSaveCounter; -struct SaveSector *gReadWriteSector; // Pointer to a buffer for reading/writing a sector -u16 gIncrementalSectorId; -u16 gSaveUnusedVar; -u16 gSaveFileStatus; -void (*gGameContinueCallback)(void); -struct SaveSectorLocation gRamSaveSectorLocations[NUM_SECTORS_PER_SLOT]; -u16 gSaveUnusedVar2; -u16 gSaveAttemptStatus; +COMMON_DATA u16 gLastWrittenSector = 0; +COMMON_DATA u32 gLastSaveCounter = 0; +COMMON_DATA u16 gLastKnownGoodSector = 0; +COMMON_DATA u32 gDamagedSaveSectors = 0; +COMMON_DATA u32 gSaveCounter = 0; +COMMON_DATA struct SaveSector *gReadWriteSector = NULL; // Pointer to a buffer for reading/writing a sector +COMMON_DATA u16 gIncrementalSectorId = 0; +COMMON_DATA u16 gSaveUnusedVar = 0; +COMMON_DATA u16 gSaveFileStatus = 0; +COMMON_DATA void (*gGameContinueCallback)(void) = NULL; +COMMON_DATA struct SaveSectorLocation gRamSaveSectorLocations[NUM_SECTORS_PER_SLOT] = {0}; +COMMON_DATA u16 gSaveUnusedVar2 = 0; +COMMON_DATA u16 gSaveAttemptStatus = 0; EWRAM_DATA struct SaveSector gSaveDataBuffer = {0}; // Buffer used for reading/writing sectors EWRAM_DATA static u8 sUnusedVar = 0; diff --git a/src/sound.c b/src/sound.c index 8685383f78..c41d6f2c4e 100644 --- a/src/sound.c +++ b/src/sound.c @@ -23,7 +23,7 @@ static u8 sMapMusicState; static u8 sMapMusicFadeInSpeed; static u16 sFanfareCounter; -bool8 gDisableMusic; +COMMON_DATA bool8 gDisableMusic = 0; extern struct ToneData gCryTable[]; extern struct ToneData gCryTable_Reverse[]; diff --git a/src/sprite.c b/src/sprite.c index 80fba81fe3..0736269be0 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -276,8 +276,8 @@ static struct AffineAnimState sAffineAnimStates[OAM_MATRIX_COUNT]; static u16 sSpritePaletteTags[16]; // iwram common -u32 gOamMatrixAllocBitmap; -u8 gReservedSpritePaletteCount; +COMMON_DATA u32 gOamMatrixAllocBitmap = 0; +COMMON_DATA u8 gReservedSpritePaletteCount = 0; EWRAM_DATA struct Sprite gSprites[MAX_SPRITES + 1] = {0}; EWRAM_DATA static u16 sSpritePriorities[MAX_SPRITES] = {0}; diff --git a/src/start_menu.c b/src/start_menu.c index 63914cbb72..0910fad84d 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -75,7 +75,7 @@ enum }; // IWRAM common -bool8 (*gMenuCallback)(void); +COMMON_DATA bool8 (*gMenuCallback)(void) = NULL; // EWRAM EWRAM_DATA static u8 sSafariBallsWindowId = 0; diff --git a/src/task.c b/src/task.c index 68fb679b3e..b188cbbcba 100644 --- a/src/task.c +++ b/src/task.c @@ -1,7 +1,7 @@ #include "global.h" #include "task.h" -struct Task gTasks[NUM_TASKS]; +COMMON_DATA struct Task gTasks[NUM_TASKS] = {0}; static void InsertTask(u8 newTaskId); static u8 FindFirstActiveTask(void); diff --git a/src/text.c b/src/text.c index bc917c7ced..1c8a64d5c7 100644 --- a/src/text.c +++ b/src/text.c @@ -43,10 +43,10 @@ static u16 sLastTextBgColor; static u16 sLastTextFgColor; static u16 sLastTextShadowColor; -const struct FontInfo *gFonts; -bool8 gDisableTextPrinters; -struct TextGlyph gCurGlyph; -TextFlags gTextFlags; +COMMON_DATA const struct FontInfo *gFonts = NULL; +COMMON_DATA bool8 gDisableTextPrinters = 0; +COMMON_DATA struct TextGlyph gCurGlyph = {0}; +COMMON_DATA TextFlags gTextFlags = {0}; static const u8 sFontHalfRowOffsets[] = { diff --git a/src/trainer_see.c b/src/trainer_see.c index 51cc64f4a0..212cbbdec3 100644 --- a/src/trainer_see.c +++ b/src/trainer_see.c @@ -49,11 +49,11 @@ static bool8 WaitRevealBuriedTrainer(u8 taskId, struct Task *task, struct Object static void SpriteCB_TrainerIcons(struct Sprite *sprite); // IWRAM common -u16 gWhichTrainerToFaceAfterBattle; -u8 gPostBattleMovementScript[4]; -struct ApproachingTrainer gApproachingTrainers[2]; -u8 gNoOfApproachingTrainers; -bool8 gTrainerApproachedPlayer; +COMMON_DATA u16 gWhichTrainerToFaceAfterBattle = 0; +COMMON_DATA u8 gPostBattleMovementScript[4] = {0}; +COMMON_DATA struct ApproachingTrainer gApproachingTrainers[2] = {0}; +COMMON_DATA u8 gNoOfApproachingTrainers = 0; +COMMON_DATA bool8 gTrainerApproachedPlayer = 0; // EWRAM EWRAM_DATA u8 gApproachingTrainerId = 0; diff --git a/src/tv.c b/src/tv.c index 0152dffa3e..9ab9fc8969 100644 --- a/src/tv.c +++ b/src/tv.c @@ -63,14 +63,14 @@ enum { ROULETTE, }; -s8 sCurTVShowSlot; -u16 sTV_SecretBaseVisitMovesTemp[8]; -u8 sTV_DecorationsBuffer[DECOR_MAX_SECRET_BASE]; -struct { +COMMON_DATA s8 sCurTVShowSlot = 0; +COMMON_DATA u16 sTV_SecretBaseVisitMovesTemp[8] = {0}; +COMMON_DATA u8 sTV_DecorationsBuffer[DECOR_MAX_SECRET_BASE] = {0}; +COMMON_DATA struct { u8 level; u16 species; u16 move; -} sTV_SecretBaseVisitMonsTemp[10]; +} sTV_SecretBaseVisitMonsTemp[10] = {0}; static u8 sTVShowMixingNumPlayers; static u8 sTVShowNewsMixingNumPlayers; diff --git a/src/window.c b/src/window.c index 6f7af457d3..ab61610b82 100644 --- a/src/window.c +++ b/src/window.c @@ -5,8 +5,8 @@ #include "blit.h" // This global is set to 0 and never changed. -u8 gTransparentTileNumber; -void *gWindowBgTilemapBuffers[NUM_BACKGROUNDS]; +COMMON_DATA u8 gTransparentTileNumber = 0; +COMMON_DATA void *gWindowBgTilemapBuffers[NUM_BACKGROUNDS] = {0}; extern u32 gWindowTileAutoAllocEnabled; EWRAM_DATA struct Window gWindows[WINDOWS_MAX] = {0}; diff --git a/tools/ramscrgen/elf.cpp b/tools/ramscrgen/elf.cpp index 7e78704b8c..077fcc82a4 100644 --- a/tools/ramscrgen/elf.cpp +++ b/tools/ramscrgen/elf.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include #include #include "ramscrgen.h" @@ -22,6 +21,7 @@ static int s_shstrtabIndex; static std::uint32_t s_symtabOffset; static std::uint32_t s_strtabOffset; +static std::uint32_t s_pseudoCommonSectionIndex; static std::uint32_t s_symbolCount; static std::uint32_t s_elfFileOffset; @@ -101,18 +101,6 @@ static void VerifyElfIdent() FATAL_ERROR("error: \"%s\" not little-endian ELF\n", s_elfPath.c_str()); } -static void VerifyAr() -{ - char expectedMagic[8] = {'!', '<', 'a', 'r', 'c', 'h', '>', '\n'}; - char magic[8]; - - if (std::fread(magic, 8, 1, s_file) != 1) - FATAL_ERROR("error: failed to read AR magic from \"%s\"\n", s_archiveFilePath.c_str()); - - if (std::memcmp(magic, expectedMagic, 8) != 0) - FATAL_ERROR("error: AR magic did not match in \"%s\"\n", s_archiveFilePath.c_str()); -} - static void ReadElfHeader() { Seek(0x20); @@ -123,40 +111,6 @@ static void ReadElfHeader() s_shstrtabIndex = ReadInt16(); } -static void FindArObj() -{ - char file_ident[17] = {0}; - char filesize_s[11] = {0}; - char expectedEndMagic[2] = { 0x60, 0x0a }; - char end_magic[2]; - std::size_t filesize; - - Seek(8); - while (!std::feof(s_file)) { - if (std::fread(file_ident, 16, 1, s_file) != 1) - FATAL_ERROR("error: failed to read file ident in \"%s\"\n", s_archiveFilePath.c_str()); - Skip(32); - if (std::fread(filesize_s, 10, 1, s_file) != 1) - FATAL_ERROR("error: failed to read filesize in \"%s\"\n", s_archiveFilePath.c_str()); - if (std::fread(end_magic, 2, 1, s_file) != 1) - FATAL_ERROR("error: failed to read end sentinel in \"%s\"\n", s_archiveFilePath.c_str()); - if (std::memcmp(end_magic, expectedEndMagic, 2) != 0) - FATAL_ERROR("error: corrupted archive header in \"%s\" at \"%s\"\n", s_archiveFilePath.c_str(), file_ident); - - char * ptr = std::strchr(file_ident, '/'); - if (ptr != nullptr) - *ptr = 0; - filesize = std::strtoul(filesize_s, nullptr, 10); - if (std::strncmp(s_archiveObjectPath.c_str(), file_ident, 16) == 0) { - s_elfFileOffset = std::ftell(s_file); - return; - } - Skip(filesize); - } - - FATAL_ERROR("error: could not find object \"%s\" in archive \"%s\"\n", s_archiveObjectPath.c_str(), s_archiveFilePath.c_str()); -} - static std::string GetSectionName(std::uint32_t shstrtabOffset, int index) { Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * index); @@ -169,6 +123,7 @@ static void FindTableOffsets() { s_symtabOffset = 0; s_strtabOffset = 0; + s_pseudoCommonSectionIndex = 0; Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * s_shstrtabIndex + 0x10); std::uint32_t shstrtabOffset = ReadInt32(); @@ -192,6 +147,11 @@ static void FindTableOffsets() FATAL_ERROR("error: mutiple .strtab sections found in \"%s\"\n", s_elfPath.c_str()); Seek(s_sectionHeaderOffset + s_sectionHeaderEntrySize * i + 0x10); s_strtabOffset = ReadInt32(); + } else if (name == "common_data") { + if (s_pseudoCommonSectionIndex) { + FATAL_ERROR("error: mutiple common_data sections found in \"%s\"\n", s_elfPath.c_str()); + } + s_pseudoCommonSectionIndex = i; } } @@ -202,65 +162,50 @@ static void FindTableOffsets() FATAL_ERROR("error: couldn't find .strtab section in \"%s\"\n", s_elfPath.c_str()); } -static std::map GetCommonSymbols_Shared() +static std::vector> GetCommonSymbols_Shared() { VerifyElfIdent(); ReadElfHeader(); FindTableOffsets(); - std::map commonSymbols; + std::vector> commonSymbols; - std::vector commonSymbolVec; - - Seek(s_symtabOffset); - - for (std::uint32_t i = 0; i < s_symbolCount; i++) - { - Symbol sym; - sym.nameOffset = ReadInt32(); - Skip(4); - sym.size = ReadInt32(); - Skip(2); - std::uint16_t sectionIndex = ReadInt16(); - if (sectionIndex == SHN_COMMON) - commonSymbolVec.push_back(sym); - } - - for (const Symbol& sym : commonSymbolVec) - { - Seek(s_strtabOffset + sym.nameOffset); - std::string name = ReadString(); - commonSymbols[name] = sym.size; + if (s_pseudoCommonSectionIndex) { + std::vector commonSymbolVec; + + Seek(s_symtabOffset); + + for (std::uint32_t i = 0; i < s_symbolCount; i++) + { + Symbol sym; + sym.nameOffset = ReadInt32(); + Skip(4); + sym.size = ReadInt32(); + Skip(2); + std::uint16_t sectionIndex = ReadInt16(); + if (sectionIndex == s_pseudoCommonSectionIndex) + commonSymbolVec.push_back(sym); + } + + for (const Symbol& sym : commonSymbolVec) + { + Seek(s_strtabOffset + sym.nameOffset); + std::string name = ReadString(); + if (name == "$d" || name == "") { + continue; + } + commonSymbols.emplace_back(name, sym.size); + } } return commonSymbols; } -std::map GetCommonSymbolsFromLib(std::string sourcePath, std::string libpath) -{ - std::size_t colonPos = libpath.find(':'); - if (colonPos == std::string::npos) - FATAL_ERROR("error: missing colon separator in libfile \"%s\"\n", s_elfPath.c_str()); - - s_archiveObjectPath = libpath.substr(colonPos + 1); - s_archiveFilePath = sourcePath + "/" + libpath.substr(1, colonPos - 1); - s_elfPath = sourcePath + "/" + libpath.substr(1); - - s_file = std::fopen(s_archiveFilePath.c_str(), "rb"); - - if (s_file == NULL) - FATAL_ERROR("error: failed to open \"%s\" for reading\n", s_archiveFilePath.c_str()); - - VerifyAr(); - FindArObj(); - return GetCommonSymbols_Shared(); -} - -std::map GetCommonSymbols(std::string sourcePath, std::string path) +std::vector> GetCommonSymbols(std::string sourcePath, std::string path) { s_elfFileOffset = 0; if (path[0] == '*') - return GetCommonSymbolsFromLib(sourcePath, path); + FATAL_ERROR("error: library common syms are unsupported (filename: \"%s\")\n", path.c_str()); s_elfPath = sourcePath + "/" + path; s_file = std::fopen(s_elfPath.c_str(), "rb"); diff --git a/tools/ramscrgen/elf.h b/tools/ramscrgen/elf.h index 3704860c0e..bf79a954e0 100644 --- a/tools/ramscrgen/elf.h +++ b/tools/ramscrgen/elf.h @@ -22,9 +22,9 @@ #define ELF_H #include -#include +#include #include -std::map GetCommonSymbols(std::string sourcePath, std::string path); +std::vector> GetCommonSymbols(std::string sourcePath, std::string path); #endif // ELF_H diff --git a/tools/ramscrgen/main.cpp b/tools/ramscrgen/main.cpp index 5e5894f470..e99cf9fa30 100644 --- a/tools/ramscrgen/main.cpp +++ b/tools/ramscrgen/main.cpp @@ -28,54 +28,19 @@ void HandleCommonInclude(std::string filename, std::string sourcePath, std::string symOrderPath, std::string lang) { auto commonSymbols = GetCommonSymbols(sourcePath, filename); - std::size_t dotIndex; - if (filename[0] == '*') { - dotIndex = filename.find_last_of(':'); - filename = filename.substr(dotIndex + 1); - } - - dotIndex = filename.find_last_of('.'); - - if (dotIndex == std::string::npos) - FATAL_ERROR("error: \"%s\" doesn't have a file extension\n", filename.c_str()); - - std::string symOrderFilename = filename.substr(0, dotIndex + 1) + "txt"; - - SymFile symFile(symOrderPath + "/" + symOrderFilename); - - while (!symFile.IsAtEnd()) + for (const auto& commonSym : commonSymbols) { - symFile.HandleLangConditional(lang); + unsigned long size = commonSym.second; - std::string label = symFile.GetLabel(false); - - if (label.length() == 0) - { - unsigned long length; - if (symFile.ReadInteger(length)) - { - if (length & 3) - symFile.RaiseWarning("gap length %d is not multiple of 4", length); - printf(". += 0x%lX;\n", length); - } - } - else - { - if (commonSymbols.count(label) == 0) - symFile.RaiseError("no common symbol named \"%s\"", label.c_str()); - unsigned long size = commonSymbols[label]; - int alignment = 4; - if (size > 4) - alignment = 8; - if (size > 8) - alignment = 16; - printf(". = ALIGN(%d);\n", alignment); - printf("%s = .;\n", label.c_str()); - printf(". += 0x%lX;\n", size); - } - - symFile.ExpectEmptyRestOfLine(); + int alignment = 4; + if (size > 4) + alignment = 8; + if (size > 8) + alignment = 16; + printf(". = ALIGN(%d);\n", alignment); + printf("%s = .;\n", commonSym.first.c_str()); + printf(". += 0x%lX;\n", size); } } From 544b76fbbf66cd2019d4b068e40de4a693e95e79 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 21 Oct 2024 08:58:49 -0400 Subject: [PATCH 76/99] Added value for bard sound length --- include/bard_music.h | 6 ++++-- src/bard_music.c | 2 +- src/data/bard_music/moves.h | 2 +- src/data/bard_music/pokemon.h | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/include/bard_music.h b/include/bard_music.h index 2942fa8e47..b1d051b8d7 100644 --- a/include/bard_music.h +++ b/include/bard_music.h @@ -1,6 +1,8 @@ #ifndef GUARD_BARD_MUSIC_H #define GUARD_BARD_MUSIC_H +#define BARD_SOUND_MAX_LENGTH 6 + struct BardSound { /*0x00*/ u8 songLengthId; @@ -26,8 +28,8 @@ struct BardSong /*0x06*/ u16 volume; /*0x08*/ s16 pitch; /*0x0A*/ s16 voiceInflection; - /*0x0C*/ u16 lyrics[6]; - /*0x18*/ struct BardPhoneme phonemes[6]; + /*0x0C*/ u16 lyrics[BARD_SOUND_MAX_LENGTH]; + /*0x18*/ struct BardPhoneme phonemes[BARD_SOUND_MAX_LENGTH]; /*0x30*/ const struct BardSound *sound; }; diff --git a/src/bard_music.c b/src/bard_music.c index 165b4fe770..369a2767d1 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -48,7 +48,7 @@ void GetWordPhonemes(struct BardSong *song, u16 word) const struct BardSound *sound; song->length = 0; - for (i = 0; i < 6; i ++) + for (i = 0; i < BARD_SOUND_MAX_LENGTH; i ++) { sound = &song->sound[i]; if (sound->songLengthId != 0xFF) diff --git a/src/data/bard_music/moves.h b/src/data/bard_music/moves.h index 6c658cd4a0..31c3395fcd 100644 --- a/src/data/bard_music/moves.h +++ b/src/data/bard_music/moves.h @@ -5,7 +5,7 @@ const u16 gNumBardWords_Moves = MOVES_COUNT; -const struct BardSound gBardSounds_Moves[MOVES_COUNT][6] = { +const struct BardSound gBardSounds_Moves[MOVES_COUNT][BARD_SOUND_MAX_LENGTH] = { [MOVE_NONE] = { NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h index 57ab426590..b3a67a24ed 100644 --- a/src/data/bard_music/pokemon.h +++ b/src/data/bard_music/pokemon.h @@ -3,7 +3,7 @@ const u16 gNumBardWords_Species = NUM_SPECIES; -const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][6] = { +const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][BARD_SOUND_MAX_LENGTH] = { [SPECIES_NONE] = { NULL_BARD_SOUND, NULL_BARD_SOUND, From da791cde9407641d3eb86700ffb8bd274a9a2d3a Mon Sep 17 00:00:00 2001 From: GriffinR Date: Thu, 24 Oct 2024 12:41:38 -0400 Subject: [PATCH 77/99] Add TRY_DRAW_SPOT_PIXEL --- src/pokemon.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/pokemon.c b/src/pokemon.c index 077b856793..d59f46ada1 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -5684,7 +5684,7 @@ u16 SpeciesToCryId(u16 species) // To draw a spot pixel, add 4 to the color index #define SPOT_COLOR_ADJUSTMENT 4 /* - The macro below handles drawing the randomly-placed spots on Spinda's front sprite. + The macros below handle drawing the randomly-placed spots on Spinda's front sprite. Spinda has 4 spots, each with an entry in gSpindaSpotGraphics. Each entry contains a base x and y coordinate for the spot and a 16x16 binary image. Each bit in the image determines whether that pixel should be considered part of the spot. @@ -5696,18 +5696,26 @@ u16 SpeciesToCryId(u16 species) coordinate is calculated as (baseCoord + (given 4 bits of personality) - 8). In effect this means each spot can start at any position -8 to +7 off of its base coordinates (256 possibilities). - The macro then loops over the 16x16 spot image. For each bit in the spot's binary image, if + DRAW_SPINDA_SPOTS loops over the 16x16 spot image. For each bit in the spot's binary image, if the bit is set then it's part of the spot; try to draw it. A pixel is drawn on Spinda if the - pixel on Spinda satisfies the following formula: ((u8)(colorIndex - 1) <= 2). The -1 excludes - transparent pixels, as these are index 0. Therefore only colors 1, 2, or 3 on Spinda will - allow a spot to be drawn. These color indexes are Spinda's light brown body colors. To create + pixel is between FIRST_SPOT_COLOR and LAST_SPOT_COLOR (so only colors 1, 2, or 3 on Spinda will + allow a spot to be drawn). These color indexes are Spinda's light brown body colors. To create the spot it adds 4 to the color index, so Spinda's spots will be colors 5, 6, and 7. - The above is done two different ways in the macro: one with << 4, and one without. This - is because Spinda's sprite is a 4 bits per pixel image, but the pointer to Spinda's pixels + The above is done in TRY_DRAW_SPOT_PIXEL two different ways: one with << 4, and one without. + This is because Spinda's sprite is a 4 bits per pixel image, but the pointer to Spinda's pixels (destPixels) is an 8 bit pointer, so it addresses two pixels. Shifting by 4 accesses the 2nd of these pixels, so this is done every other time. */ + +// Draw spot pixel if this is Spinda's body color +#define TRY_DRAW_SPOT_PIXEL(pixels, shift) \ + if (((*(pixels) & (0xF << (shift))) >= (FIRST_SPOT_COLOR << (shift))) \ + && ((*(pixels) & (0xF << (shift))) <= (LAST_SPOT_COLOR << (shift)))) \ + { \ + *(pixels) += (SPOT_COLOR_ADJUSTMENT << (shift)); \ + } + #define DRAW_SPINDA_SPOTS(personality, dest) \ { \ s32 i; \ @@ -5737,17 +5745,11 @@ u16 SpeciesToCryId(u16 species) /* of the two pixels is being considered for drawing */ \ if (column & 1) \ { \ - /* Draw spot pixel if this is Spinda's body color */ \ - if ((u8)((*destPixels & 0xF0) - (FIRST_SPOT_COLOR << 4))\ - <= ((LAST_SPOT_COLOR - FIRST_SPOT_COLOR) << 4))\ - *destPixels += (SPOT_COLOR_ADJUSTMENT << 4); \ + TRY_DRAW_SPOT_PIXEL(destPixels, 4); \ } \ else \ { \ - /* Draw spot pixel if this is Spinda's body color */ \ - if ((u8)((*destPixels & 0xF) - FIRST_SPOT_COLOR) \ - <= (LAST_SPOT_COLOR - FIRST_SPOT_COLOR)) \ - *destPixels += SPOT_COLOR_ADJUSTMENT; \ + TRY_DRAW_SPOT_PIXEL(destPixels, 0); \ } \ } \ \ From f04c2faeb0758281a334a2235f86980a412a8801 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 3 Nov 2024 17:53:53 -0500 Subject: [PATCH 78/99] Silence 'Nothing to be done for generated' messages (#2059) --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index 6d66c34d65..a5f0224331 100644 --- a/Makefile +++ b/Makefile @@ -266,6 +266,8 @@ include audio_rules.mk # NOTE: Tools must have been built prior (FIXME) # so you can't really call this rule directly generated: $(AUTO_GEN_TARGETS) + @: # Silence the "Nothing to be done for `generated'" message, which some people were confusing for an error. + %.s: ; %.png: ; From 1b8e6fbe3f57c21069b39cbd643c3c1d73d07477 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 4 Nov 2024 15:39:31 -0500 Subject: [PATCH 79/99] Lay out emerald version png horizontally --- graphics/title_screen/emerald_version.png | Bin 1138 -> 1100 bytes graphics_file_rules.mk | 7 ++++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/graphics/title_screen/emerald_version.png b/graphics/title_screen/emerald_version.png index 2e8b32da988fe9471126f94bd0fed4bf8a0dedc0..9ee2992607efdb2b1c44ce09e01457575e9aa309 100644 GIT binary patch delta 1053 zcmV+&1mgSh2+Rl}iBL{Q4GJ0x0000DNk~Le0001h0000W2m=5B0PXyM7m*=9f7eMw zK~z|U?N`~3<2VeAPU<54|9?BYtT-6JNv3BX78s$?wp$iiEEY-kpfk! z|1-ZJ*VqwfXl+2Il+sFTjZho`@5WL#oWJNdVi-$;?#H<(mwkT(b(*t2Bz>S)ZvMj?~IC!){fq0GgJc?T4--&Ec)r^aqEROEk>m=DiE;nT@@5&)dInnHgMK~Z9> zF9s`^EeXeIU#TXr`vItb5snpZHMazZ(P!DP#TmIp!0ubxDSm*b6rmoTe*;&8!MbVy z89-2vVqh}*vh|o@?f2R(0?K%rA6!g%IHO`~nbQ-C#P$^A>Ow$OEiC1OtX_smpzb&C z5pV`9>xDfzfW?QIiP|j(W^2Y+@&y3P1hOi18r{t0v<(5EFD5h|;$1lu%QlvoCdVWv zg3*vPzUBZT*JpGQ4$pw?f7Dw2x!F}}3O)2@*Bbz|<)W%m02b#^I-Yuz7oxGHev3tX zu3?8cTv;c^V(0Dv!0vRMV|CWd(zGyo-gb5=)M9%l@mYsc>xYL0^tf?QoD(Cw9f;hG(~RJ*ajY8ET$5icq%M9c^)v9*iw%Vym9?g` zNJ{{<>~tPKHXZLj3do(4fazKWpo&~VJ6b=OLETtWszm_=f2(ylGJO#B!{_lgOX}%_ zX*JP7?f5sr*{UR)tU;|*2|f<{PLP+U&9sP8{_rJ$7cklbQq&$SMpr=Xf07OcFcCx= zLlYtlOi+mk8zUVfNEMeK0AK{-VCf`LZXiLkTx8Ws)ZQZ2;Hh8 z+VuKbgTEsHt7$f0K5fR_v?l4nca8TW1jMEOtYi4#^PX8zVoL0P>Y|5@mcYevlcL09(qhh*XqE~5# z*=18%0Hd{H7Jvi3v;{C(*mq=re`4m@O`+n?I`t=&W^pV@_8h^fTn=#AX=V>d zkoCT0lwX2rFR)xZvMN3?r_+3}XejJ^4A21Zdfg~9q3Hwg&Y?mV7Ki2)&{0D$57g^O zI}Kov1X+@*`k(;a`xxE;oFto8RBthM=oAgs>eLLFNqkTMPxWd2DcA@1Sz=? z6EC;`OkeO$1Jcx!NpNWt47FpW5YCw?(7b|N=CVMl7Fy!KB#nhn!_mH(!`-q<&SB-I zna+^kBuVX@F?vokeXx{*e>r!=cpZgTrMN6QRXS&C1g;Esh7Z(6R_t`|TjpQYrg};)+%0WuAUW!MJdMN5T&L%t=tV$ZP zM0Bv(sP)j0LbM=mv94cSU>dI zixLbsxoSd;adJ^bZh~A}c>{3BkpixGA8(6!2SB7isa}#Z|B}VNcyWjS_pLwmm)PIO zE!jWOZ)ctn=EK?Je*?hCP^74HBxpV;@&l-O8DR5<_GcL!Lhf}6bKj~z7A--bqoEum zjKilTfvfirM%^x{*v!&DW>9aeQTw}^*LFEUPVaHeBJ50Fbi|Ee3m|=0xoZS#1WiMb z&Ibs}NnOn)Z@Y$*-w2BWsvUlp4pl=mDP77MiOgC`%*B2xe>;GFzAd9v?nJb%8A8G` zb^ww!0JR`xH3*7BW4mZ++5$*}WTIBpd0B%Z$3vo1<2C@)7^_%}WQI*HvZCaJXiW>f z-wxJBsN80Ip>dKWu5nS9mevj+e>Ps~+O@m4GCE~i-2zme2@{no@$EZOj7xStcjoJ^+({v3tRcaX|9Ds?H~!~J#LXr{|B)0 zt~0ksPXCtlzFE+-6icPA24{0zcRSksX=%MlJ#sO+DzlV(-sFR~IT~bg=r*|j4*()? zSDLFjb$LC+&tv#e%D(m~gTcOVZx{6=89bt|zt2*K8gbL(-TwiZqE`;Cp<|u^0000< KMNUMnLSTYt*#0p9 diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 92cc3338dc..a87344e93c 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -22,6 +22,7 @@ POKEDEXGFXDIR := graphics/pokedex STARTERGFXDIR := graphics/starter_choose NAMINGGFXDIR := graphics/naming_screen SPINDAGFXDIR := graphics/pokemon/spinda/spots +TITLESCREENGFXDIR := graphics/title_screen types := normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark contest_types := cool beauty cute smart tough @@ -298,9 +299,13 @@ $(FONTGFXDIR)/frlg_female.fwjpnfont: $(FONTGFXDIR)/japanese_frlg_female.png ### Miscellaneous ### -graphics/title_screen/pokemon_logo.gbapal: %.gbapal: %.pal + +$(TITLESCREENGFXDIR)/pokemon_logo.gbapal: %.gbapal: %.pal $(GFX) $< $@ -num_colors 224 +$(TITLESCREENGFXDIR)/emerald_version.8bpp: %.8bpp: %.png + $(GFX) $< $@ -mwidth 8 -mheight 4 + graphics/pokemon_jump/bg.4bpp: %.4bpp: %.png $(GFX) $< $@ -num_tiles 63 -Wnum_tiles From b60da57d8aad9b025e867900e55ccb83947e383a Mon Sep 17 00:00:00 2001 From: Lactozilla Date: Tue, 12 Nov 2024 14:28:33 -0300 Subject: [PATCH 80/99] Remove usage of gHeap in sSpritePalettes_ContestantsTurnBlinkEffect Those offsets into gHeap are actually just inside of eContestTempSave. --- src/contest.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/contest.c b/src/contest.c index 5b9560faf5..40a42a3529 100644 --- a/src/contest.c +++ b/src/contest.c @@ -858,23 +858,22 @@ static const struct CompressedSpriteSheet sSpriteSheets_ContestantsTurnBlinkEffe } }; -// Yup this is super dangerous but that's how it is here static const struct SpritePalette sSpritePalettes_ContestantsTurnBlinkEffect[CONTESTANT_COUNT] = { { - .data = (u16 *)(gHeap + 0x1A0A4), + .data = eContestTempSave.cachedWindowPalettes[5], .tag = TAG_BLINK_EFFECT_CONTESTANT0 }, { - .data = (u16 *)(gHeap + 0x1A0C4), + .data = eContestTempSave.cachedWindowPalettes[6], .tag = TAG_BLINK_EFFECT_CONTESTANT1 }, { - .data = (u16 *)(gHeap + 0x1A0E4), + .data = eContestTempSave.cachedWindowPalettes[7], .tag = TAG_BLINK_EFFECT_CONTESTANT2 }, { - .data = (u16 *)(gHeap + 0x1A104), + .data = eContestTempSave.cachedWindowPalettes[8], .tag = TAG_BLINK_EFFECT_CONTESTANT3 } }; From 13692076f9374a41d9ee57e7bb424fc1789cbdbc Mon Sep 17 00:00:00 2001 From: surtr-games Date: Thu, 14 Nov 2024 00:29:42 -0500 Subject: [PATCH 81/99] Fixed a bug with Counter and Mirror Coat where they would be scored up depending on the wrong target mon type category. --- data/battle_ai_scripts.s | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index a43c889502..19ee9d18a5 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -1613,6 +1613,8 @@ AI_CV_Disable2: AI_CV_Disable_End: end +@ BUG: The original script would score up Counter when the target's types were not physical +@ This is incorrect since Counter only deals double the damage received if hit by a physical attack AI_CV_Counter: if_status AI_TARGET, STATUS1_SLEEP, AI_CV_Counter_ScoreDown1 if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_Counter_ScoreDown1 @@ -1625,7 +1627,7 @@ AI_CV_Counter2: if_random_less_than 100, AI_CV_Counter3 score -1 AI_CV_Counter3: - if_has_move AI_USER, MOVE_MIRROR_COAT, AI_CV_Counter7 + if_has_move AI_USER, MOVE_MIRROR_COAT, AI_CV_Counter8 get_last_used_bank_move AI_TARGET get_move_power_from_result if_equal 0, AI_CV_Counter5 @@ -1645,15 +1647,24 @@ AI_CV_Counter5: if_random_less_than 100, AI_CV_Counter6 score +1 AI_CV_Counter6: +#ifdef BUGFIX + get_target_type1 + if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter7 + get_target_type2 + if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter7 + goto AI_CV_Counter_End +#else get_target_type1 if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_End get_target_type2 if_in_bytes AI_CV_Counter_PhysicalTypeList, AI_CV_Counter_End - if_random_less_than 50, AI_CV_Counter_End +#endif AI_CV_Counter7: - if_random_less_than 100, AI_CV_Counter8 - score +4 + if_random_less_than 50, AI_CV_Counter_End AI_CV_Counter8: + if_random_less_than 100, AI_CV_Counter9 + score +4 +AI_CV_Counter9: end AI_CV_Counter_ScoreDown1: @@ -2100,6 +2111,8 @@ AI_CV_PsychUp_ScoreDown2: AI_CV_PsychUp_End: end +@ BUG: The original script would score up Mirror Coat when the target's types were not special +@ This is incorrect since Mirror Coat only deals double the damage received if hit by a special attack AI_CV_MirrorCoat: if_status AI_TARGET, STATUS1_SLEEP, AI_CV_MirrorCoat_ScoreDown1 if_status2 AI_TARGET, STATUS2_INFATUATION, AI_CV_MirrorCoat_ScoreDown1 @@ -2132,10 +2145,19 @@ AI_CV_MirrorCoat5: if_random_less_than 100, AI_CV_MirrorCoat6 score +1 AI_CV_MirrorCoat6: +#ifdef BUGFIX + get_target_type1 + if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat7 + get_target_type2 + if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat7 + goto AI_CV_MirrorCoat_End +#else get_target_type1 if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_End get_target_type2 if_in_bytes AI_CV_MirrorCoat_SpecialTypeList, AI_CV_MirrorCoat_End +#endif +AI_CV_MirrorCoat7: if_random_less_than 50, AI_CV_MirrorCoat_End AI_CV_MirrorCoat_ScoreUp4: if_random_less_than 100, AI_CV_MirrorCoat_ScoreUp4_End From 6560bbab21ff171d7f0078d9f4966338f6466ef8 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sat, 23 Nov 2024 14:17:40 -0500 Subject: [PATCH 82/99] Restore .map file creation --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index a5f0224331..6252664bde 100644 --- a/Makefile +++ b/Makefile @@ -379,6 +379,7 @@ libagbsyscall: @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN) # Elf from object files +LDFLAGS = -Map ../../$(MAP) $(ELF): $(LD_SCRIPT) $(LD_SCRIPT_DEPS) $(OBJS) libagbsyscall @cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../../$< --print-memory-usage -o ../../$@ $(OBJS_REL) $(LIB) | cat @echo "cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ../../$< --print-memory-usage -o ../../$@ | cat" From 4beb0efbcc202048fafa606147b7b5243ed55951 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 24 Nov 2024 22:46:01 -0300 Subject: [PATCH 83/99] Added extra encoded character support (#2050) --- src/mini_printf.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/src/mini_printf.c b/src/mini_printf.c index ac8a0ef127..e4b8937242 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -86,6 +86,8 @@ static inline char mini_pchar_decode(char encoded) ret = '('; // opening parentheses else if (encoded == CHAR_RIGHT_PAREN) ret = ')'; // closing parentheses + else if (encoded == CHAR_HYPHEN) + ret = '-'; // hyphen return ret; } @@ -133,7 +135,31 @@ static s32 _putsEncoded(char *s, s32 len, void *buf) { break; } - *(b->pbuffer ++) = mini_pchar_decode(s[i]); + if (s[i] == CHAR_NEWLINE) + { + *(b->pbuffer ++) = '\\'; + *(b->pbuffer ++) = 'n'; + } + else if (s[i] == CHAR_PROMPT_SCROLL) + { + *(b->pbuffer ++) = '\\'; + *(b->pbuffer ++) = 'l'; + } + else if (s[i] == CHAR_PROMPT_CLEAR) + { + *(b->pbuffer ++) = '\\'; + *(b->pbuffer ++) = 'p'; + } + else if (s[i] == CHAR_ELLIPSIS) + { + *(b->pbuffer ++) = '.'; + *(b->pbuffer ++) = '.'; + *(b->pbuffer ++) = '.'; + } + else + { + *(b->pbuffer ++) = mini_pchar_decode(s[i]); + } } *(b->pbuffer) = 0; return b->pbuffer - p0; From e605ffba539fd54f2a5d105493c2943a6bdd91c1 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Wed, 4 Dec 2024 18:22:16 -0300 Subject: [PATCH 84/99] Fix recorded battle link player loops (#2071) --- src/recorded_battle.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 42866c723b..ebd2a5800f 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -35,13 +35,13 @@ struct RecordedBattleSave { struct Pokemon playerParty[PARTY_SIZE]; struct Pokemon opponentParty[PARTY_SIZE]; - u8 playersName[MAX_BATTLERS_COUNT][PLAYER_NAME_LENGTH + 1]; - u8 playersGender[MAX_BATTLERS_COUNT]; - u32 playersTrainerId[MAX_BATTLERS_COUNT]; - u8 playersLanguage[MAX_BATTLERS_COUNT]; + u8 playersName[MAX_LINK_PLAYERS][PLAYER_NAME_LENGTH + 1]; + u8 playersGender[MAX_LINK_PLAYERS]; + u32 playersTrainerId[MAX_LINK_PLAYERS]; + u8 playersLanguage[MAX_LINK_PLAYERS]; u32 rngSeed; u32 battleFlags; - u8 playersBattlers[MAX_BATTLERS_COUNT]; + u8 playersBattlers[MAX_LINK_PLAYERS]; u16 opponentA; u16 opponentB; u16 partnerId; @@ -85,7 +85,7 @@ EWRAM_DATA static u32 sAI_Scripts = 0; EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0}; EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0}; EWRAM_DATA static u16 sPlayerMonMoves[MAX_BATTLERS_COUNT / 2][MAX_MON_MOVES] = {0}; -EWRAM_DATA static struct PlayerInfo sPlayers[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA static struct PlayerInfo sPlayers[MAX_LINK_PLAYERS] = {0}; EWRAM_DATA static bool8 sIsPlaybackFinished = 0; EWRAM_DATA static u8 sRecordMixFriendName[PLAYER_NAME_LENGTH + 1] = {0}; EWRAM_DATA static u8 sRecordMixFriendClass = 0; @@ -148,7 +148,7 @@ void RecordedBattle_SetTrainerInfo(void) gRecordedBattleMultiplayerId = GetMultiplayerId(); linkPlayersCount = GetLinkPlayerCount(); - for (i = 0; i < MAX_BATTLERS_COUNT; i++) + for (i = 0; i < MAX_LINK_PLAYERS; i++) { sPlayers[i].trainerId = gLinkPlayers[i].trainerId; sPlayers[i].gender = gLinkPlayers[i].gender; @@ -333,7 +333,7 @@ bool32 MoveRecordedBattleToSaveData(void) battleSave->opponentParty[i] = sSavedOpponentParty[i]; } - for (i = 0; i < MAX_BATTLERS_COUNT; i++) + for (i = 0; i < MAX_LINK_PLAYERS; i++) { for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++) battleSave->playersName[i][j] = sPlayers[i].name[j]; @@ -535,7 +535,7 @@ static void SetVariablesForRecordedBattle(struct RecordedBattleSave *src) gEnemyParty[i] = src->opponentParty[i]; } - for (i = 0; i < MAX_BATTLERS_COUNT; i++) + for (i = 0; i < MAX_LINK_PLAYERS; i++) { for (var = FALSE, j = 0; j < PLAYER_NAME_LENGTH + 1; j++) { From 3f98c782973c912907ecc941aa98e519d15b27fc Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Wed, 4 Dec 2024 19:38:23 -0300 Subject: [PATCH 85/99] Added POKEMART_LIST_END to avoid users accidentally removing it (#1947) --- asm/macros/event.inc | 7 +++++++ data/maps/BattleFrontier_Mart/scripts.inc | 4 +--- .../EverGrandeCity_PokemonLeague_1F/scripts.inc | 4 +--- data/maps/FallarborTown_Mart/scripts.inc | 4 +--- data/maps/FortreeCity_DecorationShop/scripts.inc | 8 ++------ data/maps/FortreeCity_Mart/scripts.inc | 4 +--- data/maps/LavaridgeTown_HerbShop/scripts.inc | 4 +--- data/maps/LavaridgeTown_Mart/scripts.inc | 4 +--- .../LilycoveCity_DepartmentStore_2F/scripts.inc | 8 ++------ .../LilycoveCity_DepartmentStore_3F/scripts.inc | 8 ++------ .../LilycoveCity_DepartmentStore_4F/scripts.inc | 8 ++------ .../LilycoveCity_DepartmentStore_5F/scripts.inc | 16 ++++------------ data/maps/MauvilleCity_Mart/scripts.inc | 4 +--- data/maps/MossdeepCity_Mart/scripts.inc | 4 +--- data/maps/OldaleTown_Mart/scripts.inc | 8 ++------ data/maps/PetalburgCity_Mart/scripts.inc | 8 ++------ .../Route104_PrettyPetalFlowerShop/scripts.inc | 4 +--- data/maps/RustboroCity_Mart/scripts.inc | 8 ++------ data/maps/SlateportCity/scripts.inc | 16 ++++------------ data/maps/SlateportCity_Mart/scripts.inc | 4 +--- data/maps/SootopolisCity_Mart/scripts.inc | 4 +--- data/maps/TrainerHill_Entrance/scripts.inc | 8 ++------ data/maps/VerdanturfTown_Mart/scripts.inc | 4 +--- 23 files changed, 43 insertions(+), 108 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index b91ac68210..66aeb8482d 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1108,6 +1108,13 @@ .4byte \products .endm + @ Used as the endpoint for a Pokemart item list + .macro pokemartlistend + .2byte ITEM_NONE + release + end + .endm + @ Opens the Pokemart system and treats the list of items as decorations. @ Products should be a list of .2byte decoration values preceded by an .align 2 .macro pokemartdecoration products:req diff --git a/data/maps/BattleFrontier_Mart/scripts.inc b/data/maps/BattleFrontier_Mart/scripts.inc index 6afe6a0186..f118476cfe 100644 --- a/data/maps/BattleFrontier_Mart/scripts.inc +++ b/data/maps/BattleFrontier_Mart/scripts.inc @@ -28,9 +28,7 @@ BattleFrontier_Mart_Pokemart: .2byte ITEM_ZINC .2byte ITEM_CARBOS .2byte ITEM_HP_UP - .2byte ITEM_NONE - release - end + pokemartlistend BattleFrontier_Mart_EventScript_OldMan:: msgbox BattleFrontier_Mart_Text_ChaperonGrandson, MSGBOX_NPC diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index c13e716975..37e691fa3b 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -45,9 +45,7 @@ EverGrandeCity_PokemonLeague_1F_Pokemart: .2byte ITEM_FULL_HEAL .2byte ITEM_REVIVE .2byte ITEM_MAX_REPEL - .2byte ITEM_NONE - release - end + pokemartlistend @ The door guards only check for FLAG_BADGE06_GET because Winonas badge is the only one that can be skipped @ Its assumed the player has the remaining badges diff --git a/data/maps/FallarborTown_Mart/scripts.inc b/data/maps/FallarborTown_Mart/scripts.inc index cb92f28f52..0cdb11ee5e 100644 --- a/data/maps/FallarborTown_Mart/scripts.inc +++ b/data/maps/FallarborTown_Mart/scripts.inc @@ -25,9 +25,7 @@ FallarborTown_Mart_Pokemart: .2byte ITEM_X_DEFEND .2byte ITEM_DIRE_HIT .2byte ITEM_GUARD_SPEC - .2byte ITEM_NONE - release - end + pokemartlistend FallarborTown_Mart_EventScript_Woman:: msgbox FallarborTown_Mart_Text_DecidingSkittyEvolve, MSGBOX_NPC diff --git a/data/maps/FortreeCity_DecorationShop/scripts.inc b/data/maps/FortreeCity_DecorationShop/scripts.inc index 4394312876..4da66f27b9 100644 --- a/data/maps/FortreeCity_DecorationShop/scripts.inc +++ b/data/maps/FortreeCity_DecorationShop/scripts.inc @@ -29,9 +29,7 @@ FortreeCity_DecorationShop_PokemartDecor_Desks: .2byte DECOR_BRICK_DESK .2byte DECOR_CAMP_DESK .2byte DECOR_HARD_DESK - .2byte DECOR_NONE - release - end + pokemartlistend FortreeCity_DecorationShop_EventScript_ClerkChairs:: lock @@ -53,9 +51,7 @@ FortreeCity_DecorationShop_PokemartDecor_Chairs: .2byte DECOR_BRICK_CHAIR .2byte DECOR_CAMP_CHAIR .2byte DECOR_HARD_CHAIR - .2byte DECOR_NONE - release - end + pokemartlistend FortreeCity_DecorationShop_Text_MerchandiseSentToPC: .string "Merchandise you buy here is sent to\n" diff --git a/data/maps/FortreeCity_Mart/scripts.inc b/data/maps/FortreeCity_Mart/scripts.inc index c37716bc85..0986e68c0c 100644 --- a/data/maps/FortreeCity_Mart/scripts.inc +++ b/data/maps/FortreeCity_Mart/scripts.inc @@ -23,9 +23,7 @@ FortreeCity_Mart_Pokemart: .2byte ITEM_REVIVE .2byte ITEM_SUPER_REPEL .2byte ITEM_WOOD_MAIL - .2byte ITEM_NONE - release - end + pokemartlistend FortreeCity_Mart_EventScript_Woman:: msgbox FortreeCity_Mart_Text_SuperRepelBetter, MSGBOX_NPC diff --git a/data/maps/LavaridgeTown_HerbShop/scripts.inc b/data/maps/LavaridgeTown_HerbShop/scripts.inc index dbe1b564ac..22e3851e9d 100644 --- a/data/maps/LavaridgeTown_HerbShop/scripts.inc +++ b/data/maps/LavaridgeTown_HerbShop/scripts.inc @@ -17,9 +17,7 @@ LavaridgeTown_HerbShop_Pokemart: .2byte ITEM_ENERGY_ROOT .2byte ITEM_HEAL_POWDER .2byte ITEM_REVIVAL_HERB - .2byte ITEM_NONE - release - end + pokemartlistend LavaridgeTown_HerbShop_EventScript_ExpertM:: msgbox LavaridgeTown_HerbShop_Text_HerbalMedicineWorksButMonWillDislike, MSGBOX_NPC diff --git a/data/maps/LavaridgeTown_Mart/scripts.inc b/data/maps/LavaridgeTown_Mart/scripts.inc index 001df31401..8df5d02dfc 100644 --- a/data/maps/LavaridgeTown_Mart/scripts.inc +++ b/data/maps/LavaridgeTown_Mart/scripts.inc @@ -22,9 +22,7 @@ LavaridgeTown_Mart_Pokemart: .2byte ITEM_REVIVE .2byte ITEM_SUPER_REPEL .2byte ITEM_X_SPEED - .2byte ITEM_NONE - release - end + pokemartlistend LavaridgeTown_Mart_EventScript_ExpertM:: msgbox LavaridgeTown_Mart_Text_XSpeedFirstStrike, MSGBOX_NPC diff --git a/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc index 478f5cfd31..0a502a4f0e 100644 --- a/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_2F/scripts.inc @@ -36,9 +36,7 @@ LilycoveCity_DepartmentStore_2F_Pokemart1: .2byte ITEM_ICE_HEAL .2byte ITEM_AWAKENING .2byte ITEM_FLUFFY_TAIL - .2byte ITEM_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_2F_EventScript_ClerkRight:: lock @@ -62,9 +60,7 @@ LilycoveCity_DepartmentStore_2F_Pokemart2: .2byte ITEM_MAX_REPEL .2byte ITEM_WAVE_MAIL .2byte ITEM_MECH_MAIL - .2byte ITEM_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_2F_Text_LearnToUseItemsProperly: .string "Learn to use items properly.\n" diff --git a/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc index 20480068b8..bc42b293be 100644 --- a/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_3F/scripts.inc @@ -19,9 +19,7 @@ LilycoveCity_DepartmentStore_3F_Pokemart_Vitamins: .2byte ITEM_ZINC .2byte ITEM_CARBOS .2byte ITEM_HP_UP - .2byte ITEM_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_3F_EventScript_ClerkRight:: lock @@ -42,9 +40,7 @@ LilycoveCity_DepartmentStore_3F_Pokemart_StatBoosters: .2byte ITEM_DIRE_HIT .2byte ITEM_GUARD_SPEC .2byte ITEM_X_ACCURACY - .2byte ITEM_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_3F_EventScript_TriathleteM:: msgbox LilycoveCity_DepartmentStore_3F_Text_ItemsBestForTougheningPokemon, MSGBOX_NPC diff --git a/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc index 760abc600d..0d6403b206 100644 --- a/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_4F/scripts.inc @@ -29,9 +29,7 @@ LilycoveCity_DepartmentStore_4F_Pokemart_AttackTMs: .2byte ITEM_TM_THUNDER .2byte ITEM_TM_BLIZZARD .2byte ITEM_TM_HYPER_BEAM - .2byte ITEM_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_4F_EventScript_ClerkRight:: lock @@ -49,9 +47,7 @@ LilycoveCity_DepartmentStore_4F_Pokemart_DefenseTMs: .2byte ITEM_TM_SAFEGUARD .2byte ITEM_TM_REFLECT .2byte ITEM_TM_LIGHT_SCREEN - .2byte ITEM_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_4F_Text_AttackOrDefenseTM: .string "Hmm…\p" diff --git a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc index a9683d13c9..f75a48e708 100644 --- a/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStore_5F/scripts.inc @@ -41,9 +41,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Dolls: .2byte DECOR_SKITTY_DOLL .2byte DECOR_SWABLU_DOLL .2byte DECOR_GULPIN_DOLL - .2byte DECOR_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidLeft:: lock @@ -66,9 +64,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Cushions: .2byte DECOR_GRASS_CUSHION .2byte DECOR_FIRE_CUSHION .2byte DECOR_WATER_CUSHION - .2byte DECOR_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_5F_EventScript_ClerkMidRight:: lock @@ -91,9 +87,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Posters: .2byte DECOR_LONG_POSTER .2byte DECOR_SEA_POSTER .2byte DECOR_SKY_POSTER - .2byte DECOR_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_5F_EventScript_ClerkFarRight:: lock @@ -117,9 +111,7 @@ LilycoveCity_DepartmentStore_5F_Pokemart_Mats: .2byte DECOR_GLITTER_MAT .2byte DECOR_JUMP_MAT .2byte DECOR_SPIN_MAT - .2byte DECOR_NONE - release - end + pokemartlistend LilycoveCity_DepartmentStore_5F_EventScript_PokefanF:: msgbox LilycoveCity_DepartmentStore_5F_Text_PlaceFullOfCuteDolls, MSGBOX_NPC diff --git a/data/maps/MauvilleCity_Mart/scripts.inc b/data/maps/MauvilleCity_Mart/scripts.inc index 4cf5bc20bb..3a416b5907 100644 --- a/data/maps/MauvilleCity_Mart/scripts.inc +++ b/data/maps/MauvilleCity_Mart/scripts.inc @@ -25,9 +25,7 @@ MauvilleCity_Mart_Pokemart: .2byte ITEM_GUARD_SPEC .2byte ITEM_DIRE_HIT .2byte ITEM_X_ACCURACY - .2byte ITEM_NONE - release - end + pokemartlistend MauvilleCity_Mart_EventScript_ExpertM:: msgbox MauvilleCity_Mart_Text_ItemsToTemporarilyElevateStats, MSGBOX_NPC diff --git a/data/maps/MossdeepCity_Mart/scripts.inc b/data/maps/MossdeepCity_Mart/scripts.inc index 50edddd09a..b66fbe4209 100644 --- a/data/maps/MossdeepCity_Mart/scripts.inc +++ b/data/maps/MossdeepCity_Mart/scripts.inc @@ -22,9 +22,7 @@ MossdeepCity_Mart_Pokemart: .2byte ITEM_MAX_REPEL .2byte ITEM_X_ATTACK .2byte ITEM_X_DEFEND - .2byte ITEM_NONE - release - end + pokemartlistend MossdeepCity_Mart_EventScript_Woman:: msgbox MossdeepCity_Mart_Text_ReviveIsFantastic, MSGBOX_NPC diff --git a/data/maps/OldaleTown_Mart/scripts.inc b/data/maps/OldaleTown_Mart/scripts.inc index 0b3c7b1a34..1e1aacbb10 100644 --- a/data/maps/OldaleTown_Mart/scripts.inc +++ b/data/maps/OldaleTown_Mart/scripts.inc @@ -18,9 +18,7 @@ OldaleTown_Mart_Pokemart_Basic: .2byte ITEM_ANTIDOTE .2byte ITEM_PARALYZE_HEAL .2byte ITEM_AWAKENING - .2byte ITEM_NONE - release - end + pokemartlistend OldaleTown_Mart_ExpandedItems:: pokemart OldaleTown_Mart_Pokemart_Expanded @@ -35,9 +33,7 @@ OldaleTown_Mart_Pokemart_Expanded: .2byte ITEM_ANTIDOTE .2byte ITEM_PARALYZE_HEAL .2byte ITEM_AWAKENING - .2byte ITEM_NONE - release - end + pokemartlistend OldaleTown_Mart_EventScript_Woman:: lock diff --git a/data/maps/PetalburgCity_Mart/scripts.inc b/data/maps/PetalburgCity_Mart/scripts.inc index abaa7b5b0e..27393c51bf 100644 --- a/data/maps/PetalburgCity_Mart/scripts.inc +++ b/data/maps/PetalburgCity_Mart/scripts.inc @@ -25,9 +25,7 @@ PetalburgCity_Mart_Pokemart_Basic: .2byte ITEM_X_ATTACK .2byte ITEM_X_DEFEND .2byte ITEM_ORANGE_MAIL - .2byte ITEM_NONE - release - end + pokemartlistend PetalburgCity_Mart_EventScript_ExpandedItems:: pokemart PetalburgCity_Mart_Pokemart_Expanded @@ -50,9 +48,7 @@ PetalburgCity_Mart_Pokemart_Expanded: .2byte ITEM_X_ATTACK .2byte ITEM_X_DEFEND .2byte ITEM_ORANGE_MAIL - .2byte ITEM_NONE - release - end + pokemartlistend PetalburgCity_Mart_EventScript_Woman:: msgbox PetalburgCity_Mart_Text_WeakWillGrowStronger, MSGBOX_NPC diff --git a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc index 5f0ec28fa5..e239ea658b 100644 --- a/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc +++ b/data/maps/Route104_PrettyPetalFlowerShop/scripts.inc @@ -59,9 +59,7 @@ Route104_PrettyPetalFlowerShop_Pokemart_Plants: .2byte DECOR_COLORFUL_PLANT .2byte DECOR_BIG_PLANT .2byte DECOR_GORGEOUS_PLANT - .2byte DECOR_NONE - release - end + pokemartlistend Route104_PrettyPetalFlowerShop_EventScript_WailmerPailGirl:: lock diff --git a/data/maps/RustboroCity_Mart/scripts.inc b/data/maps/RustboroCity_Mart/scripts.inc index 18120cb4de..5d6a7fe5f7 100644 --- a/data/maps/RustboroCity_Mart/scripts.inc +++ b/data/maps/RustboroCity_Mart/scripts.inc @@ -28,9 +28,7 @@ RustboroCity_Mart_Pokemart_Basic: .2byte ITEM_X_SPEED .2byte ITEM_X_ATTACK .2byte ITEM_X_DEFEND - .2byte ITEM_NONE - release - end + pokemartlistend RustboroCity_Mart_EventScript_PokemartExpanded:: pokemart RustboroCity_Mart_Pokemart_Expanded @@ -52,9 +50,7 @@ RustboroCity_Mart_Pokemart_Expanded: .2byte ITEM_X_SPEED .2byte ITEM_X_ATTACK .2byte ITEM_X_DEFEND - .2byte ITEM_NONE - release - end + pokemartlistend RustboroCity_Mart_EventScript_PokefanF:: msgbox RustboroCity_Mart_Text_BuyingHealsInCaseOfShroomish, MSGBOX_NPC diff --git a/data/maps/SlateportCity/scripts.inc b/data/maps/SlateportCity/scripts.inc index ae3910750e..5438a7f364 100644 --- a/data/maps/SlateportCity/scripts.inc +++ b/data/maps/SlateportCity/scripts.inc @@ -154,9 +154,7 @@ SlateportCity_Pokemart_EnergyGuru: .2byte ITEM_ZINC .2byte ITEM_CALCIUM .2byte ITEM_HP_UP - .2byte ITEM_NONE - release - end + pokemartlistend SlateportCity_EventScript_EffortRibbonWoman:: lock @@ -514,9 +512,7 @@ SlateportCity_PokemartDecor_Dolls: .2byte DECOR_AZURILL_DOLL .2byte DECOR_MARILL_DOLL .2byte DECOR_SKITTY_DOLL - .2byte DECOR_NONE - release - end + pokemartlistend SlateportCity_EventScript_ComeBackWithSecretPower:: msgbox gText_ComeBackWithSecretPower, MSGBOX_DEFAULT @@ -550,9 +546,7 @@ SlateportCity_PokemartDecor: .2byte DECOR_A_NOTE_MAT .2byte DECOR_B_NOTE_MAT .2byte DECOR_C_HIGH_NOTE_MAT - .2byte DECOR_NONE - release - end + pokemartlistend SlateportCity_EventScript_PowerTMClerk:: lock @@ -568,9 +562,7 @@ SlateportCity_EventScript_PowerTMClerk:: SlateportCity_Pokemart_PowerTMs: .2byte ITEM_TM_HIDDEN_POWER .2byte ITEM_TM_SECRET_POWER - .2byte ITEM_NONE - release - end + pokemartlistend @ Scene with Capt Sterns interview and Team Aqua announcing plans to steal Submarine SlateportCity_EventScript_CaptStern:: diff --git a/data/maps/SlateportCity_Mart/scripts.inc b/data/maps/SlateportCity_Mart/scripts.inc index a0c0a8612e..ce7dd45b86 100644 --- a/data/maps/SlateportCity_Mart/scripts.inc +++ b/data/maps/SlateportCity_Mart/scripts.inc @@ -22,9 +22,7 @@ SlateportCity_Mart_Pokemart: .2byte ITEM_ESCAPE_ROPE .2byte ITEM_REPEL .2byte ITEM_HARBOR_MAIL - .2byte ITEM_NONE - release - end + pokemartlistend SlateportCity_Mart_EventScript_BlackBelt:: msgbox SlateportCity_Mart_Text_SomeItemsOnlyAtMart, MSGBOX_NPC diff --git a/data/maps/SootopolisCity_Mart/scripts.inc b/data/maps/SootopolisCity_Mart/scripts.inc index 3cade5fbc4..5539eb8be1 100644 --- a/data/maps/SootopolisCity_Mart/scripts.inc +++ b/data/maps/SootopolisCity_Mart/scripts.inc @@ -22,9 +22,7 @@ SootopolisCity_Mart_Pokemart: .2byte ITEM_X_ATTACK .2byte ITEM_X_DEFEND .2byte ITEM_SHADOW_MAIL - .2byte ITEM_NONE - release - end + pokemartlistend SootopolisCity_Mart_EventScript_FatMan:: lock diff --git a/data/maps/TrainerHill_Entrance/scripts.inc b/data/maps/TrainerHill_Entrance/scripts.inc index 2dd001a3ba..83a12e1c97 100644 --- a/data/maps/TrainerHill_Entrance/scripts.inc +++ b/data/maps/TrainerHill_Entrance/scripts.inc @@ -265,9 +265,7 @@ TrainerHill_Entrance_Pokemart_Basic: .2byte ITEM_DIRE_HIT .2byte ITEM_GUARD_SPEC .2byte ITEM_X_ACCURACY - .2byte ITEM_NONE - release - end + pokemartlistend TrainerHill_Entrance_EventScript_ExpandedPokemart:: pokemart TrainerHill_Entrance_Pokemart_Expanded @@ -289,9 +287,7 @@ TrainerHill_Entrance_Pokemart_Expanded: .2byte ITEM_DIRE_HIT .2byte ITEM_GUARD_SPEC .2byte ITEM_X_ACCURACY - .2byte ITEM_NONE - release - end + pokemartlistend TrainerHill_Entrance_Text_StillGettingReady: .string "This is the TRAINER HILL where\n" diff --git a/data/maps/VerdanturfTown_Mart/scripts.inc b/data/maps/VerdanturfTown_Mart/scripts.inc index 7eb340df2a..e67ccd0e60 100644 --- a/data/maps/VerdanturfTown_Mart/scripts.inc +++ b/data/maps/VerdanturfTown_Mart/scripts.inc @@ -24,9 +24,7 @@ VerdanturfTown_Mart_Pokemart: .2byte ITEM_REPEL .2byte ITEM_X_SPECIAL .2byte ITEM_FLUFFY_TAIL - .2byte ITEM_NONE - release - end + pokemartlistend VerdanturfTown_Mart_EventScript_Boy:: msgbox VerdanturfTown_Mart_Text_XSpecialIsCrucial, MSGBOX_NPC From 5483e05db65f2085fe8c4969eb3f1f9dcec3e1a0 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Thu, 5 Dec 2024 12:46:50 -0300 Subject: [PATCH 86/99] Fixed brace style inconsistencies --- src/AgbRfu_LinkManager.c | 2 ++ src/battle_anim_effects_1.c | 2 ++ src/battle_anim_effects_2.c | 4 +++ src/battle_anim_electric.c | 6 ++++ src/battle_anim_ghost.c | 2 ++ src/battle_anim_throw.c | 14 +++++++++ src/battle_controller_opponent.c | 12 ++++++-- src/battle_gfx_sfx_util.c | 8 +++++ src/battle_main.c | 34 ++++++++++++++++++++ src/battle_message.c | 6 ++++ src/battle_script_commands.c | 41 +++++++++++++++++++++---- src/battle_util.c | 10 ++++++ src/berry.c | 4 +++ src/berry_crush.c | 2 ++ src/bike.c | 2 ++ src/contest.c | 2 ++ src/contest_effect.c | 15 +++++++-- src/decompress.c | 12 ++++++++ src/evolution_graphics.c | 32 +++++++++++++++++++ src/field_camera.c | 2 ++ src/field_door.c | 2 ++ src/field_effect.c | 15 ++++++--- src/item_use.c | 12 ++++++++ src/librfu_sio32id.c | 2 ++ src/link_rfu_2.c | 11 +++++-- src/lottery_corner.c | 4 +++ src/mauville_old_man.c | 6 ++++ src/mini_printf.c | 18 ++++++----- src/party_menu.c | 2 ++ src/player_pc.c | 2 ++ src/pokedex.c | 6 ++++ src/pokemon.c | 15 ++++++++- src/pokenav_conditions_search_results.c | 10 ++++++ src/pokenav_menu_handler_gfx.c | 2 ++ src/slot_machine.c | 2 ++ src/sprite.c | 4 +++ src/tv.c | 3 +- 37 files changed, 301 insertions(+), 27 deletions(-) diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index d696c01d3c..b53b69c48b 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -59,7 +59,9 @@ void rfu_LMAN_REQ_sendData(bool8 clockChangeFlag) clockChangeFlag = FALSE; } else + { lman.parentAck_flag = 0; + } rfu_REQ_sendData(clockChangeFlag); } diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 3a558969b5..ee532f4134 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -4043,7 +4043,9 @@ static void AnimMilkBottle_Step1(struct Sprite *sprite) sprite->data[6]++; } else if (sprite->data[7] > 0) + { sprite->data[7]--; + } SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(sprite->data[6], sprite->data[7])); if (sprite->data[6] == 16 && sprite->data[7] == 0) diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 3d2e72cacb..bf7e774f6b 100644 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -2209,7 +2209,9 @@ static void AnimTask_Splash_Step(u8 taskId) task->data[4] -= 2; } else + { task->data[1]++; + } break; case 3: if (!RunAffineAnimFromTaskData(task)) @@ -2956,7 +2958,9 @@ static void AnimTask_SpeedDust_Step(u8 taskId) task->data[8] = 1; } else + { task->data[8] = 2; + } } } break; diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index b6a82b8d9a..cc36e608f8 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -597,7 +597,9 @@ static void AnimZapCannonSpark_Step(struct Sprite *sprite) sprite->invisible ^= 1; } else + { DestroyAnimSprite(sprite); + } } static void AnimThunderboltOrb_Step(struct Sprite *sprite) @@ -870,7 +872,9 @@ static void AnimTask_ElectricChargingParticles_Step(u8 taskId) } } else if(task->data[7] == 0) + { DestroyAnimVisualTask(taskId); + } } static void AnimElectricChargingParticles_Step(struct Sprite *sprite) @@ -991,7 +995,9 @@ void AnimTask_VoltTackleAttackerReappear(u8 taskId) gSprites[task->data[15]].x2 = task->data[14]; } else + { task->data[0]++; + } } break; diff --git a/src/battle_anim_ghost.c b/src/battle_anim_ghost.c index d6afd4c304..6cb7da5c20 100644 --- a/src/battle_anim_ghost.c +++ b/src/battle_anim_ghost.c @@ -280,7 +280,9 @@ static void AnimConfuseRayBallBounce_Step2(struct Sprite *sprite) sprite->callback = DestroyAnimSpriteAndDisableBlend; } else + { UpdateConfuseRayBallBlend(sprite); + } } static void UpdateConfuseRayBallBlend(struct Sprite *sprite) diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index 951794fc54..956020b305 100755 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -1147,7 +1147,9 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else + { gBattleSpritesDataPtr->animationData->ballSubpx += 176; + } sprite->sTimer++; sprite->affineAnimPaused = FALSE; @@ -1172,7 +1174,9 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) ChangeSpriteAffineAnim(sprite, BALL_ROTATE_RIGHT); } else + { sprite->affineAnimPaused = TRUE; + } break; case BALL_ROLL_2: if (gBattleSpritesDataPtr->animationData->ballSubpx > 255) @@ -1181,7 +1185,9 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else + { gBattleSpritesDataPtr->animationData->ballSubpx += 176; + } sprite->sTimer++; sprite->affineAnimPaused = FALSE; @@ -1216,7 +1222,9 @@ static void SpriteCB_Ball_Wobble_Step(struct Sprite *sprite) gBattleSpritesDataPtr->animationData->ballSubpx &= 0xFF; } else + { gBattleSpritesDataPtr->animationData->ballSubpx += 176; + } sprite->sTimer++; sprite->affineAnimPaused = FALSE; @@ -1390,7 +1398,9 @@ static void SpriteCB_Ball_FadeOut(struct Sprite *sprite) static void DestroySpriteAfterOneFrame(struct Sprite *sprite) { if (sprite->sFrame == 0) + { sprite->sFrame = -1; + } else { FreeSpriteOamMatrix(sprite); @@ -1410,7 +1420,9 @@ static void MakeCaptureStars(struct Sprite *sprite) u8 subpriority; if (sprite->subpriority) + { subpriority = sprite->subpriority - 1; + } else { subpriority = 0; @@ -2358,7 +2370,9 @@ static void SpriteCB_ShinyStars_Diagonal(struct Sprite *sprite) { // Delayed four frames to de-sync from encircling stars if (sprite->sTimer < 4) + { sprite->sTimer++; + } else { sprite->invisible = FALSE; diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index dc3652b457..c01dcb442f 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -257,7 +257,9 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } else + { return; + } } else if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim) { @@ -270,13 +272,17 @@ static void Intro_WaitForShinyAnimAndHealthbox(void) FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS); } else + { return; + } } - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; - gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE; } else + { return; + } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 3; gBattlerControllerFuncs[gActiveBattler] = Intro_DelayAndEnd; @@ -331,7 +337,9 @@ static void Intro_TryShinyAnimShowHealthbox(void) m4aMPlayContinue(&gMPlayInfo_BGM); } else + { m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100); + } } gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].bgmRestored = TRUE; bgmRestored = TRUE; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index ed8cf572ea..2deced13c0 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -773,13 +773,21 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) LoadCompressedSpriteSheet(&sSpriteSheet_SinglesPlayerHealthbox); } else if (state == 3) + { LoadCompressedSpriteSheet(&sSpriteSheet_SinglesOpponentHealthbox); + } else if (state == 4) + { LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[0]]); + } else if (state == 5) + { LoadCompressedSpriteSheet(&sSpriteSheets_HealthBar[gBattlerPositions[1]]); + } else + { retVal = TRUE; + } } else { diff --git a/src/battle_main.c b/src/battle_main.c index 7ee8d8cf55..25b1cfa844 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1654,7 +1654,9 @@ static void CB2_HandleStartMultiBattle(void) gBattleCommunication[MULTIUSE_STATE]++; } else + { break; + } // fall through case 3: if (IsLinkTaskFinished()) @@ -3084,7 +3086,9 @@ static void BattleStartClearSetData(void) gHitMarker |= HITMARKER_NO_ANIMATIONS; } else if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) && GetBattleSceneInRecordedBattle()) + { gHitMarker |= HITMARKER_NO_ANIMATIONS; + } gBattleScripting.battleStyle = gSaveBlock2Ptr->optionsBattleStyle; @@ -3584,7 +3588,9 @@ static void BattleIntroPrintOpponentSendsOut(void) return; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + { position = B_POSITION_OPPONENT_LEFT; + } else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER) @@ -3593,7 +3599,9 @@ static void BattleIntroPrintOpponentSendsOut(void) position = B_POSITION_PLAYER_LEFT; } else + { position = B_POSITION_OPPONENT_LEFT; + } PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(position)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; @@ -3604,7 +3612,9 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + { position = B_POSITION_OPPONENT_RIGHT; + } else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER) @@ -3613,7 +3623,9 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void) position = B_POSITION_PLAYER_RIGHT; } else + { position = B_POSITION_OPPONENT_RIGHT; + } for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { @@ -3641,10 +3653,14 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void) position = B_POSITION_PLAYER_LEFT; } else + { position = B_POSITION_OPPONENT_LEFT; + } } else + { position = B_POSITION_OPPONENT_LEFT; + } if (gBattleControllerExecFlags) return; @@ -3699,7 +3715,9 @@ static void BattleIntroPrintPlayerSendsOut(void) u8 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + { position = B_POSITION_PLAYER_LEFT; + } else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER) @@ -3708,7 +3726,9 @@ static void BattleIntroPrintPlayerSendsOut(void) position = B_POSITION_OPPONENT_LEFT; } else + { position = B_POSITION_PLAYER_LEFT; + } if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) PrepareStringBattle(STRINGID_INTROSENDOUT, GetBattlerAtPosition(position)); @@ -3722,7 +3742,9 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + { position = B_POSITION_PLAYER_RIGHT; + } else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER) @@ -3731,7 +3753,9 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void) position = B_POSITION_OPPONENT_RIGHT; } else + { position = B_POSITION_PLAYER_RIGHT; + } for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++) { @@ -3754,7 +3778,9 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) u32 position; if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) + { position = B_POSITION_PLAYER_LEFT; + } else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_IS_MASTER) @@ -3763,7 +3789,9 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void) position = B_POSITION_OPPONENT_LEFT; } else + { position = B_POSITION_PLAYER_LEFT; + } if (gBattleControllerExecFlags) return; @@ -4678,7 +4706,9 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) moveBattler1 = gBattleMons[battler1].moves[*(gBattleStruct->chosenMovePositions + battler1)]; } else + { moveBattler1 = MOVE_NONE; + } if (gChosenActionByBattler[battler2] == B_ACTION_USE_MOVE) { @@ -4688,7 +4718,9 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) moveBattler2 = gBattleMons[battler2].moves[*(gBattleStruct->chosenMovePositions + battler2)]; } else + { moveBattler2 = MOVE_NONE; + } } // both move priorities are different than 0 @@ -4705,7 +4737,9 @@ u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves) // else battler1 has more speed } else if (gBattleMoves[moveBattler1].priority < gBattleMoves[moveBattler2].priority) + { strikesFirst = 1; // battler2's move has greater priority + } // else battler1's move has greater priority } diff --git a/src/battle_message.c b/src/battle_message.c index e50fcff3de..d539bc540d 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -2350,7 +2350,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gStringVar2; } else + { toCpy = gBattleTextBuff2; + } break; case B_TXT_BUFF3: if (gBattleTextBuff3[0] == B_BUFF_PLACEHOLDER_BEGIN) @@ -2359,7 +2361,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = gStringVar3; } else + { toCpy = gBattleTextBuff3; + } break; case B_TXT_COPY_VAR_1: toCpy = gStringVar1; @@ -2486,7 +2490,9 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) toCpy = text; } else + { toCpy = sText_EnigmaBerry; + } } } else diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6f43c6af70..1891ea9285 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1769,7 +1769,9 @@ static void Cmd_attackanimation(void) gActiveBattler = gBattlerAttacker; if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) + { multihit = gMultiHitCounter; + } else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) { if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage) @@ -1778,7 +1780,9 @@ static void Cmd_attackanimation(void) multihit = gMultiHitCounter; } else + { multihit = gMultiHitCounter; + } BtlController_EmitMoveAnimation(BUFFER_A, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattlerAttacker].friendship, &gDisableStructs[gBattlerAttacker], multihit); gBattleScripting.animTurn++; @@ -2276,7 +2280,9 @@ void SetMoveEffect(bool8 primary, u8 certain) {} } else + { gActiveBattler = gBattlersCount; + } if (gBattleMons[gEffectBattler].status1) break; @@ -2409,7 +2415,9 @@ void SetMoveEffect(bool8 primary, u8 certain) RESET_RETURN } else + { break; + } } if (gBattleMons[gEffectBattler].status1) break; @@ -3111,7 +3119,9 @@ static void Cmd_jumpifability(void) gBattleScripting.battlerWithAbility = battlerId - 1; } else + { gBattlescriptCurrInstr += 7; + } } else if (gBattlescriptCurrInstr[1] == BS_NOT_ATTACKER_SIDE) { @@ -3124,7 +3134,9 @@ static void Cmd_jumpifability(void) gBattleScripting.battlerWithAbility = battlerId - 1; } else + { gBattlescriptCurrInstr += 7; + } } else { @@ -3137,7 +3149,9 @@ static void Cmd_jumpifability(void) gBattleScripting.battlerWithAbility = battlerId; } else + { gBattlescriptCurrInstr += 7; + } } } @@ -3387,13 +3401,10 @@ static void Cmd_getexp(void) { if (gBattlerPartyIndexes[2] == gBattleStruct->expGetterMonId && !(gAbsentBattlerFlags & gBitTable[2])) gBattleStruct->expGetterBattlerId = 2; + else if (!(gAbsentBattlerFlags & gBitTable[0])) + gBattleStruct->expGetterBattlerId = 0; else - { - if (!(gAbsentBattlerFlags & gBitTable[0])) - gBattleStruct->expGetterBattlerId = 0; - else - gBattleStruct->expGetterBattlerId = 2; - } + gBattleStruct->expGetterBattlerId = 2; } else { @@ -8558,11 +8569,17 @@ static void Cmd_presentdamagecalculation(void) s32 rand = Random() & 0xFF; if (rand < 102) + { gDynamicBasePower = 40; + } else if (rand < 178) + { gDynamicBasePower = 80; + } else if (rand < 204) + { gDynamicBasePower = 120; + } else { gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 4; @@ -8570,10 +8587,15 @@ static void Cmd_presentdamagecalculation(void) gBattleMoveDamage = 1; gBattleMoveDamage *= -1; } + if (rand < 204) + { gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; + } else if (gBattleMons[gBattlerTarget].maxHP == gBattleMons[gBattlerTarget].hp) + { gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; + } else { gMoveResultFlags &= ~MOVE_RESULT_DOESNT_AFFECT_FOE; @@ -8910,6 +8932,7 @@ static void Cmd_trydobeatup(void) && !GetMonData(&party[gBattleCommunication[0]], MON_DATA_STATUS)) break; } + if (gBattleCommunication[0] < PARTY_SIZE) { PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattlerAttacker, gBattleCommunication[0]) @@ -8927,9 +8950,13 @@ static void Cmd_trydobeatup(void) gBattleCommunication[0]++; } else if (beforeLoop != 0) + { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); + } else + { gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5); + } } } @@ -9907,7 +9934,9 @@ static void Cmd_handleballthrow(void) } } else + { ballMultiplier = sBallCatchBonuses[gLastUsedItem - ITEM_ULTRA_BALL]; + } odds = (catchRate * ballMultiplier / 10) * (gBattleMons[gBattlerTarget].maxHP * 3 - gBattleMons[gBattlerTarget].hp * 2) diff --git a/src/battle_util.c b/src/battle_util.c index d79c61b382..6e201a2956 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1336,9 +1336,13 @@ u8 DoFieldEndTurnEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_STOPPED; } else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR) + { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_DOWNPOUR_CONTINUES; + } else + { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_RAIN_CONTINUES; + } } else if (gBattleWeather & B_WEATHER_RAIN_DOWNPOUR) { @@ -3824,7 +3828,9 @@ u8 GetMoveTarget(u16 move, u8 setTarget) case MOVE_TARGET_SELECTED: side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + { targetBattler = gSideTimers[side].followmeTarget; + } else { side = GetBattlerSide(gBattlerAttacker); @@ -3853,7 +3859,9 @@ u8 GetMoveTarget(u16 move, u8 setTarget) case MOVE_TARGET_RANDOM: side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + { targetBattler = gSideTimers[side].followmeTarget; + } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) { if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) @@ -3874,7 +3882,9 @@ u8 GetMoveTarget(u16 move, u8 setTarget) targetBattler ^= BIT_FLANK; } else + { targetBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GET_BATTLER_SIDE(gBattlerAttacker))); + } break; case MOVE_TARGET_USER_OR_SELECTED: case MOVE_TARGET_USER: diff --git a/src/berry.c b/src/berry.c index 389a09a106..543041e526 100644 --- a/src/berry.c +++ b/src/berry.c @@ -980,7 +980,9 @@ bool32 IsEnigmaBerryValid(void) const struct Berry *GetBerryInfo(u8 berry) { if (berry == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid()) + { return (struct Berry *)(&gSaveBlock1Ptr->enigmaBerry.berry); + } else { if (berry == BERRY_NONE || berry > ITEM_TO_BERRY(LAST_BERRY_INDEX)) @@ -1219,7 +1221,9 @@ static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water) u32 extraYield; if (water == 0) + { return min; + } else { randMin = (max - min) * (water - 1); diff --git a/src/berry_crush.c b/src/berry_crush.c index 05e708162d..c7bff2abcd 100644 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -3398,7 +3398,9 @@ static u32 Cmd_StopGame(struct BerryCrushGame *game, u8 *args) break; case 2: if (game->gfx.counter != 0) + { game->gfx.counter--; + } else { RunOrScheduleCommand(CMD_CLOSE_LINK, SCHEDULE_CMD, NULL); diff --git a/src/bike.c b/src/bike.c index ae9dfd3e91..d8a3d1ab52 100644 --- a/src/bike.c +++ b/src/bike.c @@ -372,7 +372,9 @@ static u8 AcroBikeHandleInputWheelieStanding(u8 *newDirection, u16 newKeys, u16 gPlayerAvatar.runningState = NOT_MOVING; if (heldKeys & B_BUTTON) + { gPlayerAvatar.bikeFrameCounter++; + } else { // B button was released. diff --git a/src/contest.c b/src/contest.c index 40a42a3529..0615f7b504 100644 --- a/src/contest.c +++ b/src/contest.c @@ -2667,7 +2667,9 @@ static void Task_EndAppeals(u8 taskId) CalculateFinalScores(); ContestClearGeneralTextWindow(); if (!(gLinkContestFlags & LINK_CONTEST_FLAG_IS_LINK)) + { BravoTrainerPokemonProfile_BeforeInterview1(eContestantStatus[gContestPlayerMonIndex].prevMove); + } else { CalculateContestLiveUpdateData(); diff --git a/src/contest_effect.c b/src/contest_effect.c index 24de8e1692..92cc5a169c 100644 --- a/src/contest_effect.c +++ b/src/contest_effect.c @@ -619,15 +619,18 @@ static void ContestEffect_QualityDependsOnTiming(void) { appeal = 10; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_NOT_VERY_WELL); - } else if (rval < 6) + } + else if (rval < 6) { appeal = 20; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_SLIGHTLY_WELL2); - } else if (rval < 8) + } + else if (rval < 8) { appeal = 40; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_PRETTY_WELL2); - } else if (rval < 9) + } + else if (rval < 9) { appeal = 60; SetContestantEffectStringID(eContestAppealResults.contestant, CONTEST_STRING_APPEAL_VERY_WELL); @@ -868,7 +871,9 @@ static void ContestEffect_ScrambleNextTurnOrder(void) break; } else + { rval--; + } } } } @@ -908,7 +913,9 @@ static void ContestEffect_BadlyStartleMonsWithGoodAppeals(void) eContestAppealResults.jam = RoundUp(eContestAppealResults.jam); } else + { eContestAppealResults.jam = 10; + } eContestAppealResults.jamQueue[0] = i; eContestAppealResults.jamQueue[1] = CONTESTANT_NONE; if (WasAtLeastOneOpponentJammed()) @@ -1071,7 +1078,9 @@ static s16 RoundTowardsZero(s16 score) score -= 10 - absScore; } else + { score -= absScore; + } return score; } diff --git a/src/decompress.c b/src/decompress.c index 55807e89bb..491ae8587f 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -100,9 +100,13 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 LZ77UnCompWram(gMonFrontPicTable[i].data, dest); } else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + { LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + } else + { LZ77UnCompWram(src->data, dest); + } DuplicateDeoxysTiles(dest, species); DrawSpindaSpots(species, personality, dest, isFrontPic); @@ -327,9 +331,13 @@ void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s LZ77UnCompWram(gMonFrontPicTable[i].data, dest); } else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + { LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + } else + { LZ77UnCompWram(src->data, dest); + } DuplicateDeoxysTiles(dest, species); DrawSpindaSpots(species, personality, dest, isFrontPic); @@ -385,9 +393,13 @@ void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src LZ77UnCompWram(gMonFrontPicTable[i].data, dest); } else if (species > NUM_SPECIES) // is species unknown? draw the ? icon + { LZ77UnCompWram(gMonFrontPicTable[0].data, dest); + } else + { LZ77UnCompWram(src->data, dest); + } DrawSpindaSpots(species, personality, dest, isFrontPic); } diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 96ff1b52df..1568c18d5f 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -150,7 +150,9 @@ static void SpriteCB_Sparkle_SpiralUpward(struct Sprite *sprite) sprite->oam.matrixNum = matrixNum; } else + { DestroySprite(sprite); + } } static void CreateSparkle_SpiralUpward(u8 trigIdx) @@ -178,7 +180,9 @@ static void SpriteCB_Sparkle_ArcDown(struct Sprite *sprite) sprite->sTimer++; } else + { DestroySprite(sprite); + } } static void CreateSparkle_ArcDown(u8 trigIdx) @@ -206,7 +210,9 @@ static void SpriteCB_Sparkle_CircleInward(struct Sprite *sprite) sprite->sTrigIdx += 4; } else + { DestroySprite(sprite); + } } static void CreateSparkle_CircleInward(u8 trigIdx, u8 speed) @@ -238,7 +244,9 @@ static void SpriteCB_Sparkle_Spray(struct Sprite *sprite) sprite->sTrigIdx++; matrixNum = 31 - (sprite->sTrigIdx * 12 / 128); if (sprite->sTrigIdx > 64) + { sprite->subpriority = 1; + } else { sprite->invisible = FALSE; @@ -252,7 +260,9 @@ static void SpriteCB_Sparkle_Spray(struct Sprite *sprite) sprite->sTimer++; } else + { DestroySprite(sprite); + } } static void CreateSparkle_Spray(u8 id) @@ -348,7 +358,9 @@ static void Task_Sparkles_ArcDown(u8 taskId) gTasks[taskId].tTimer++; } else + { gTasks[taskId].func = Task_Sparkles_ArcDown_End; + } } static void Task_Sparkles_ArcDown_End(u8 taskId) @@ -388,7 +400,9 @@ static void Task_Sparkles_CircleInward(u8 taskId) gTasks[taskId].tTimer++; } else + { gTasks[taskId].func = Task_Sparkles_CircleInward_End; + } } static void Task_Sparkles_CircleInward_End(u8 taskId) @@ -437,7 +451,9 @@ static void Task_Sparkles_SprayAndFlash(u8 taskId) gTasks[taskId].tTimer++; } else + { gTasks[taskId].func = Task_Sparkles_SprayAndFlash_End; + } } static void Task_Sparkles_SprayAndFlash_End(u8 taskId) @@ -486,7 +502,9 @@ static void Task_Sparkles_SprayAndFlashTrade(u8 taskId) gTasks[taskId].tTimer++; } else + { gTasks[taskId].func = Task_Sparkles_SprayAndFlash_End; + } } #undef tTimer @@ -560,9 +578,13 @@ static void Task_CycleEvolutionMonSprite_Init(u8 taskId) static void Task_CycleEvolutionMonSprite_TryEnd(u8 taskId) { if (gTasks[taskId].tEvoStopped) + { EndOnPreEvoMon(taskId); + } else if (gTasks[taskId].tScaleSpeed == 128) + { EndOnPostEvoMon(taskId); + } else { gTasks[taskId].tScaleSpeed += 2; @@ -574,7 +596,9 @@ static void Task_CycleEvolutionMonSprite_TryEnd(u8 taskId) static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) { if (gTasks[taskId].tEvoStopped) + { gTasks[taskId].func = EndOnPreEvoMon; + } else { u16 oamMatrixArg; @@ -583,7 +607,9 @@ static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) { // Set pre-evo sprite growth if (gTasks[taskId].tPreEvoScale < MON_MAX_SCALE - gTasks[taskId].tScaleSpeed) + { gTasks[taskId].tPreEvoScale += gTasks[taskId].tScaleSpeed; + } else { gTasks[taskId].tPreEvoScale = MON_MAX_SCALE; @@ -592,7 +618,9 @@ static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) // Set post-evo sprite shrink if (gTasks[taskId].tPostEvoScale > MON_MIN_SCALE + gTasks[taskId].tScaleSpeed) + { gTasks[taskId].tPostEvoScale -= gTasks[taskId].tScaleSpeed; + } else { gTasks[taskId].tPostEvoScale = MON_MIN_SCALE; @@ -603,7 +631,9 @@ static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) { // Set post-evo sprite growth if (gTasks[taskId].tPostEvoScale < MON_MAX_SCALE - gTasks[taskId].tScaleSpeed) + { gTasks[taskId].tPostEvoScale += gTasks[taskId].tScaleSpeed; + } else { gTasks[taskId].tPostEvoScale = MON_MAX_SCALE; @@ -612,7 +642,9 @@ static void Task_CycleEvolutionMonSprite_UpdateSize(u8 taskId) // Set pre-evo sprite shrink if (gTasks[taskId].tPreEvoScale > MON_MIN_SCALE + gTasks[taskId].tScaleSpeed) + { gTasks[taskId].tPreEvoScale -= gTasks[taskId].tScaleSpeed; + } else { gTasks[taskId].tPreEvoScale = MON_MIN_SCALE; diff --git a/src/field_camera.c b/src/field_camera.c index 290ddddaf1..e76ba3d855 100644 --- a/src/field_camera.c +++ b/src/field_camera.c @@ -231,7 +231,9 @@ static void DrawMetatileAt(const struct MapLayout *mapLayout, u16 offset, int x, if (metatileId > NUM_METATILES_TOTAL) metatileId = 0; if (metatileId < NUM_METATILES_IN_PRIMARY) + { metatiles = mapLayout->primaryTileset->metatiles; + } else { metatiles = mapLayout->secondaryTileset->metatiles; diff --git a/src/field_door.c b/src/field_door.c index 255233ec23..908a65a453 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -437,7 +437,9 @@ static const struct DoorGraphics *GetDoorGraphics(const struct DoorGraphics *gfx static s8 StartDoorAnimationTask(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frames, u32 x, u32 y) { if (FuncIsActiveTask(Task_AnimateDoor) == TRUE) + { return -1; + } else { u8 taskId = CreateTask(Task_AnimateDoor, 0x50); diff --git a/src/field_effect.c b/src/field_effect.c index d907c3f16d..5dcc4b3c08 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -1293,7 +1293,8 @@ static void CreateHofMonitorSprite(s16 taskId, s16 x, s16 y, bool8 isSmallMonito { spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HofMonitorBig, x, y, 0); SetSubspriteTables(&gSprites[spriteId], &sSubspriteTable_HofMonitorBig); - } else + } + else { spriteId = CreateSpriteAtEnd(&sSpriteTemplate_HofMonitorSmall, x, y, 0); } @@ -2003,7 +2004,8 @@ static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEven { task->data[1] <<= 1; } - } else if (!(task->data[2] & 4) && (task->data[1] > 0)) + } + else if (!(task->data[2] & 4) && (task->data[1] > 0)) { task->data[1] >>= 1; } @@ -2017,7 +2019,8 @@ static bool8 LavaridgeGymB1FWarpEffect_Rise(struct Task *task, struct ObjectEven { task->data[3]++; } - } else + } + else { task->data[4] = 1; } @@ -2169,7 +2172,8 @@ static bool8 LavaridgeGym1FWarpEffect_AshPuff(struct Task *task, struct ObjectEv gFieldEffectArguments[3] = sprite->oam.priority; task->data[1] = FieldEffectStart(FLDEFF_ASH_PUFF); task->data[0]++; - } else + } + else { task->data[1]++; ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFasterMovementAction(objectEvent->facingDirection)); @@ -2499,7 +2503,8 @@ static void TeleportWarpInFieldEffect_SpinEnter(struct Task *task) objectEvent->triggerGroundEffectsOnMove = TRUE; sprite->subspriteMode = task->data[14]; } - } else + } + else { sprite->oam.priority = 1; if (sprite->subspriteMode != SUBSPRITES_OFF) diff --git a/src/item_use.c b/src/item_use.c index abd80e0eae..322eaf76c0 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -122,7 +122,9 @@ static void SetUpItemUseOnFieldCallback(u8 taskId) SetUpItemUseCallback(taskId); } else + { sItemUseOnFieldCB(taskId); + } } static void FieldCB_UseItemOnField(void) @@ -148,7 +150,9 @@ static void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyIte DisplayItemMessageInBattlePyramid(taskId, gText_DadsAdvice, Task_CloseBattlePyramidBagMessage); } else + { DisplayItemMessageOnField(taskId, gStringVar4, Task_CloseCantUseKeyItemMessage); + } } static void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) @@ -202,7 +206,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId) PlayerGetDestCoords(&coordsX, &coordsY); behavior = MapGridGetMetatileBehaviorAt(coordsX, coordsY); if (FlagGet(FLAG_SYS_CYCLING_ROAD) == TRUE || MetatileBehavior_IsVerticalRail(behavior) == TRUE || MetatileBehavior_IsHorizontalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE || MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE) + { DisplayCannotDismountBikeMessage(taskId, tUsingRegisteredKeyItem); + } else { if (Overworld_IsBikingAllowed() == TRUE && IsBikingDisallowedByPlayer() == 0) @@ -211,7 +217,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId) SetUpItemUseOnFieldCallback(taskId); } else + { DisplayDadsAdviceCannotUseItemMessage(taskId, tUsingRegisteredKeyItem); + } } } @@ -264,7 +272,9 @@ void ItemUseOutOfBattle_Rod(u8 taskId) SetUpItemUseOnFieldCallback(taskId); } else + { DisplayDadsAdviceCannotUseItemMessage(taskId, gTasks[taskId].tUsingRegisteredKeyItem); + } } static void ItemUseOnFieldCB_Rod(u8 taskId) @@ -951,7 +961,9 @@ void ItemUseInBattle_PokeBall(u8 taskId) DisplayItemMessage(taskId, FONT_NORMAL, gText_BoxFull, CloseItemMessage); } else + { DisplayItemMessageInBattlePyramid(taskId, gText_BoxFull, Task_CloseBattlePyramidBagMessage); + } } static void Task_CloseStatIncreaseMessage(u8 taskId) diff --git a/src/librfu_sio32id.c b/src/librfu_sio32id.c index 32391d781c..c40bb825b3 100644 --- a/src/librfu_sio32id.c +++ b/src/librfu_sio32id.c @@ -145,7 +145,9 @@ static void Sio32IDIntr(void) } } else + { gRfuSIO32Id.lastId = regSIODATA32; + } } else { diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 4c4323c1ed..6b20cf9678 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -1175,7 +1175,9 @@ static void RfuHandleReceiveCommand(u8 unused) gRfu.numBlocksReceived[i] = 0; } else + { gRfu.numBlocksReceived[i]++; + } } } } @@ -1302,7 +1304,9 @@ bool32 Rfu_InitBlockSend(const u8 *src, size_t size) gRfu.sendBlock.count = (size / 12) + r4; gRfu.sendBlock.next = 0; if (size > BLOCK_BUFFER_SIZE) + { gRfu.sendBlock.payload = src; + } else { if (src != gBlockSendBuffer) @@ -1629,9 +1633,8 @@ static bool8 CheckForLeavingGroupMembers(void) } else if (gRfuSlotStatusNI[gRfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED) - rfu_clearSlot(TYPE_NI_RECV, i); { - + rfu_clearSlot(TYPE_NI_RECV, i); } } } @@ -1777,7 +1780,9 @@ static void Task_PlayerExchange(u8 taskId) gTasks[taskId].tState = 101; } else + { gTasks[taskId].tState = 2; + } break; case 101: if (gSendCmd[0] == 0) @@ -1798,7 +1803,9 @@ static void Task_PlayerExchange(u8 taskId) } } else + { gTasks[taskId].tState++; + } break; case 4: if (AreAllPlayersFinishedReceiving()) diff --git a/src/lottery_corner.c b/src/lottery_corner.c index 052e2cfc38..117a5d6331 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -76,7 +76,9 @@ void PickLotteryCornerTicket(void) } } else // Pokémon are always arranged from populated spots first to unpopulated, so the moment a NONE species is found, that's the end of the list. + { break; + } } for (i = 0; i < TOTAL_BOXES_COUNT; i++) @@ -134,7 +136,9 @@ static u8 GetMatchingDigits(u16 winNumber, u16 otId) matchingDigits++; } else + { break; + } } return matchingDigits; } diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index dda6e6bffa..7338afb94b 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -481,7 +481,9 @@ static void BardSing(struct Task *task, struct BardSong *song) GetWordPhonemes(song, MACRO1(word)); song->currWord++; if (song->sound->songLengthId != 0xFF) + { song->state = 0; + } else { song->state = 3; @@ -531,7 +533,9 @@ static void BardSing(struct Task *task, struct BardSong *song) { song->currPhoneme++; if (song->currPhoneme != 6 && song->sound[song->currPhoneme].songLengthId != 0xFF) + { song->state = 0; + } else { song->state = 3; @@ -850,7 +854,9 @@ void SanitizeReceivedRubyOldMan(union OldMan * oldMan, u32 version, u32 language trader->language[i] = LANGUAGE_JAPANESE; } else + { trader->language[i] = language; + } } } else diff --git a/src/mini_printf.c b/src/mini_printf.c index e4b8937242..17665cdf06 100644 --- a/src/mini_printf.c +++ b/src/mini_printf.c @@ -167,9 +167,9 @@ static s32 _putsEncoded(char *s, s32 len, void *buf) static s32 mini_strlen(const char *s) { - s32 len = 0; - while (s[len] != '\0') len++; - return len; + s32 len = 0; + while (s[len] != '\0') len++; + return len; } static s32 mini_itoa(s32 value, u32 radix, s32 uppercase, bool32 unsig, char *buffer) @@ -274,7 +274,8 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) { len = 1; len = _putsAscii(&ch, len, buf); - } else + } + else { char pad_char = ' '; s32 pad_to = 0; @@ -310,7 +311,8 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) if(l) { len = mini_itoa(va_arg(va, u32), 10, 0, (ch=='u'), bf2); - } else + } + else { if(ch == 'u') { @@ -352,7 +354,8 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) { len = mini_pad(ptr, len, pad_char, pad_to, bf); len = _putsAscii(bf, len, buf); - } else + } + else { len = _putsAscii(ptr, len, buf); } @@ -364,7 +367,8 @@ s32 mini_vpprintf(void* buf, const char *fmt, va_list va) { len = mini_pad(ptr, len, pad_char, pad_to, bf); len = _putsEncoded(bf, len, buf); - } else + } + else { len = _putsEncoded(ptr, len, buf); } diff --git a/src/party_menu.c b/src/party_menu.c index 56625d09a3..cbd469713a 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -4800,7 +4800,9 @@ static void Task_LearnNextMoveOrClosePartyMenu(u8 taskId) if (IsFanfareTaskInactive() && ((JOY_NEW(A_BUTTON)) || (JOY_NEW(B_BUTTON)))) { if (gPartyMenu.learnMoveState == 1) + { Task_TryLearningNextMove(taskId); + } else { if (gPartyMenu.learnMoveState == 2) // never occurs diff --git a/src/player_pc.c b/src/player_pc.c index 009aa7810f..81170a86c9 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -880,7 +880,9 @@ static void Mailbox_CancelMoveToBag(u8 taskId) static void Mailbox_Give(u8 taskId) { if (CalculatePlayerPartyCount() == 0) + { Mailbox_NoPokemonForMail(taskId); + } else { FadeScreen(FADE_TO_BLACK, 0); diff --git a/src/pokedex.c b/src/pokedex.c index c0b20bf9d6..030020df89 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -2396,7 +2396,9 @@ static void CreateMonListEntry(u8 position, u16 b, u16 ignored) if (vOffset >= LIST_SCROLL_STEP) vOffset -= LIST_SCROLL_STEP; if (entryNum < 0 || entryNum >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[entryNum].dexNum == 0xFFFF) + { ClearMonListEntry(17, vOffset * 2, ignored); + } else { ClearMonListEntry(17, vOffset * 2, ignored); @@ -2685,7 +2687,9 @@ static bool8 TryDoInfoScreenScroll(void) } if (sPokedexView->selectedPokemon == selectedPokemon) + { return FALSE; + } else { sPokedexView->selectedPokemon = selectedPokemon; @@ -2708,7 +2712,9 @@ static bool8 TryDoInfoScreenScroll(void) } if (sPokedexView->selectedPokemon == selectedPokemon) + { return FALSE; + } else { sPokedexView->selectedPokemon = selectedPokemon; diff --git a/src/pokemon.c b/src/pokemon.c index d59f46ada1..e98182b0ae 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -2874,8 +2874,11 @@ void CalculateMonStats(struct Pokemon *mon) else { if (currentHP == 0 && oldMaxHP == 0) + { currentHP = newMaxHP; - else if (currentHP != 0) { + } + else if (currentHP != 0) + { // BUG: currentHP is unintentionally able to become <= 0 after the instruction below. This causes the pomeg berry glitch. currentHP += newMaxHP - oldMaxHP; #ifdef BUGFIX @@ -2884,7 +2887,9 @@ void CalculateMonStats(struct Pokemon *mon) #endif } else + { return; + } } SetMonData(mon, MON_DATA_HP, ¤tHP); @@ -6394,11 +6399,17 @@ void ClearBattleMonForms(void) u16 GetBattleBGM(void) { if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) + { return MUS_VS_KYOGRE_GROUDON; + } else if (gBattleTypeFlags & BATTLE_TYPE_REGI) + { return MUS_VS_REGI; + } else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK)) + { return MUS_VS_TRAINER; + } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { u8 trainerClass; @@ -6445,7 +6456,9 @@ u16 GetBattleBGM(void) } } else + { return MUS_VS_WILD; + } } void PlayBattleBGM(void) diff --git a/src/pokenav_conditions_search_results.c b/src/pokenav_conditions_search_results.c index 1817398020..e42f35481b 100644 --- a/src/pokenav_conditions_search_results.c +++ b/src/pokenav_conditions_search_results.c @@ -184,13 +184,21 @@ static bool32 HandleConditionSearchInput_WaitSetup(struct Pokenav_SearchResults static u32 HandleConditionSearchInput(struct Pokenav_SearchResults *menu) { if (JOY_REPEAT(DPAD_UP)) + { return CONDITION_SEARCH_FUNC_MOVE_UP; + } else if (JOY_REPEAT(DPAD_DOWN)) + { return CONDITION_SEARCH_FUNC_MOVE_DOWN; + } else if (JOY_NEW(DPAD_LEFT)) + { return CONDITION_SEARCH_FUNC_PAGE_UP; + } else if (JOY_NEW(DPAD_RIGHT)) + { return CONDITION_SEARCH_FUNC_PAGE_DOWN; + } else if (JOY_NEW(B_BUTTON)) { // Exiting back to main search menu @@ -207,7 +215,9 @@ static u32 HandleConditionSearchInput(struct Pokenav_SearchResults *menu) return CONDITION_SEARCH_FUNC_SELECT_MON; } else + { return CONDITION_SEARCH_FUNC_NONE; + } } static u32 ReturnToConditionSearchList(struct Pokenav_SearchResults *menu) diff --git a/src/pokenav_menu_handler_gfx.c b/src/pokenav_menu_handler_gfx.c index ede88affdb..e223b7caba 100644 --- a/src/pokenav_menu_handler_gfx.c +++ b/src/pokenav_menu_handler_gfx.c @@ -505,7 +505,9 @@ static u32 LoopedTask_OpenMenu(s32 state) ShowBg(2); ShowBg(3); if (gfx->pokenavAlreadyOpen) + { PokenavFadeScreen(POKENAV_FADE_FROM_BLACK); + } else { PlaySE(SE_POKENAV_ON); diff --git a/src/slot_machine.c b/src/slot_machine.c index 34c7ef8849..217767fc9e 100644 --- a/src/slot_machine.c +++ b/src/slot_machine.c @@ -2324,7 +2324,9 @@ static bool8 ReelTask_MoveToStop(struct Task *task) memcpy(reelStopShocks, sReelStopShocks, sizeof(sReelStopShocks)); reelPixelPos = sSlotMachine->reelPixelOffsets[task->tReelId] % REEL_SYMBOL_HEIGHT; if (reelPixelPos != 0) + { reelPixelPos = AdvanceSlotReelToNextSymbol(task->tReelId, sSlotMachine->reelSpeed); + } else if (sSlotMachine->reelExtraTurns[task->tReelId]) { sSlotMachine->reelExtraTurns[task->tReelId]--; diff --git a/src/sprite.c b/src/sprite.c index 0736269be0..d11277400f 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -1090,9 +1090,13 @@ void ContinueAffineAnim(struct Sprite *sprite) u8 matrixNum = GetSpriteMatrixNum(sprite); if (sAffineAnimStates[matrixNum].delayCounter) + { AffineAnimDelay(matrixNum, sprite); + } else if (sprite->affineAnimPaused) + { return; + } else { s16 type; diff --git a/src/tv.c b/src/tv.c index 9ab9fc8969..26d568642f 100644 --- a/src/tv.c +++ b/src/tv.c @@ -5364,7 +5364,8 @@ static void DoTVShow3CheersForPokeblocks(void) if (show->threeCheers.sheen > 24) { StringCopy(gStringVar2, gText_Excellent); - } else if (show->threeCheers.sheen > 22) + } + else if (show->threeCheers.sheen > 22) { StringCopy(gStringVar2, gText_VeryGood); } From 861c579c11d995c1f5d3c7d3c591988935913697 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 13 Dec 2024 23:39:51 +0100 Subject: [PATCH 87/99] remove sBirchSpeechPlatformBlackPal (#2075) --- graphics/birch_speech/bg2.pal | 10 +++++++++- src/main_menu.c | 3 +-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/graphics/birch_speech/bg2.pal b/graphics/birch_speech/bg2.pal index 3457f9b455..33f619ee44 100644 --- a/graphics/birch_speech/bg2.pal +++ b/graphics/birch_speech/bg2.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -8 +16 255 255 164 255 255 106 222 222 90 @@ -9,3 +9,11 @@ JASC-PAL 123 123 49 90 90 32 57 57 16 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/src/main_menu.c b/src/main_menu.c index 6a6ee99557..10b34728b3 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -255,7 +255,6 @@ static const u16 sBirchSpeechBgPals[][16] = { static const u32 sBirchSpeechShadowGfx[] = INCBIN_U32("graphics/birch_speech/shadow.4bpp.lz"); static const u32 sBirchSpeechBgMap[] = INCBIN_U32("graphics/birch_speech/map.bin.lz"); static const u16 sBirchSpeechBgGradientPal[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); -static const u16 sBirchSpeechPlatformBlackPal[] = {RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK, RGB_BLACK}; #define MENU_LEFT 2 #define MENU_TOP_WIN0 1 @@ -1278,7 +1277,7 @@ static void Task_NewGameBirchSpeech_Init(u8 taskId) LZ77UnCompVram(sBirchSpeechShadowGfx, (void *)VRAM); LZ77UnCompVram(sBirchSpeechBgMap, (void *)(BG_SCREEN_ADDR(7))); LoadPalette(sBirchSpeechBgPals, BG_PLTT_ID(0), 2 * PLTT_SIZE_4BPP); - LoadPalette(sBirchSpeechPlatformBlackPal, BG_PLTT_ID(0) + 1, PLTT_SIZEOF(8)); + LoadPalette(&sBirchSpeechBgGradientPal[8], BG_PLTT_ID(0) + 1, PLTT_SIZEOF(8)); ScanlineEffect_Stop(); ResetSpriteData(); FreeAllSpritePalettes(); From 50d325f081a161f4a223d999497d7a65bd896194 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Fri, 27 Dec 2024 13:09:33 -0300 Subject: [PATCH 88/99] Slight contest documentation (#2078) --- include/constants/contest.h | 1 + src/contest.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/include/constants/contest.h b/include/constants/contest.h index 905306203a..1ed0503550 100644 --- a/include/constants/contest.h +++ b/include/constants/contest.h @@ -155,6 +155,7 @@ #define CONTEST_EFFECT_TYPE_WORSEN 4 #define CONTEST_EFFECT_TYPE_SPECIAL_APPEAL 5 #define CONTEST_EFFECT_TYPE_TURN_ORDER 6 +#define CONTEST_EFFECT_TYPE_UNKNOWN 8 #define COMBO_STARTER_RAIN_DANCE 1 #define COMBO_STARTER_RAGE 2 diff --git a/src/contest.c b/src/contest.c index 0615f7b504..c48df49334 100644 --- a/src/contest.c +++ b/src/contest.c @@ -3171,16 +3171,19 @@ static u16 GetMoveEffectSymbolTileOffset(u16 move, u8 contestant) switch (gContestEffects[gContestMoves[move].effect].effectType) { - case 0: - case 1: - case 8: + case CONTEST_EFFECT_TYPE_APPEAL: + case CONTEST_EFFECT_TYPE_AVOID_STARTLE: + case CONTEST_EFFECT_TYPE_UNKNOWN: offset = 0x9082; break; - case 2: - case 3: + case CONTEST_EFFECT_TYPE_STARTLE_MON: + case CONTEST_EFFECT_TYPE_STARTLE_MONS: offset = 0x9088; break; default: + //case CONTEST_EFFECT_TYPE_WORSEN: + //case CONTEST_EFFECT_TYPE_SPECIAL_APPEAL: + //case CONTEST_EFFECT_TYPE_TURN_ORDER: offset = 0x9086; break; } From a0e8753083c1ad9da749e9d0a93171c7503a3177 Mon Sep 17 00:00:00 2001 From: shachar700 <48739719+shachar700@users.noreply.github.com> Date: Mon, 6 Jan 2025 22:17:24 +0200 Subject: [PATCH 89/99] Update vars.h (cleanup) Removed an extra are --- include/constants/vars.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/constants/vars.h b/include/constants/vars.h index e79919c329..1b71134593 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -4,7 +4,7 @@ #define VARS_START 0x4000 // temporary vars -// The first 0x10 vars are are temporary--they are cleared every time a map is loaded. +// The first 0x10 vars are temporary--they are cleared every time a map is loaded. #define TEMP_VARS_START 0x4000 #define VAR_TEMP_0 (TEMP_VARS_START + 0x0) #define VAR_TEMP_1 (TEMP_VARS_START + 0x1) From 0ec1189f3433fba0d3e05c6104aa9e86cb804024 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 7 Jan 2025 22:14:54 +0100 Subject: [PATCH 90/99] extern const gBasicHitSplatSpriteTemplate --- src/battle_anim_fight.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/battle_anim_fight.c b/src/battle_anim_fight.c index cbefb41f1e..b9cc966ecf 100644 --- a/src/battle_anim_fight.c +++ b/src/battle_anim_fight.c @@ -37,7 +37,7 @@ static void AnimRevengeScratch(struct Sprite *); static void AnimFocusPunchFist(struct Sprite *); static void AnimSpinningKickOrPunchFinish(struct Sprite *); -extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; +extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate; // Unused static const struct SpriteTemplate sUnusedHumanoidFootSpriteTemplate = From 9ab4f5d26a512e9d68aadfeea064a314134c8227 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 9 Jan 2025 15:50:39 +0100 Subject: [PATCH 91/99] extern gAncientPowerRockSpriteTemplate fix --- src/intro.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/intro.c b/src/intro.c index 68432b5b98..549acc4b7d 100644 --- a/src/intro.c +++ b/src/intro.c @@ -110,7 +110,7 @@ static void MainCB2_EndIntro(void); extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; -extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[]; +extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate; enum { COPYRIGHT_INITIALIZE, @@ -1993,7 +1993,7 @@ static void CreateGroudonRockSprites(u8 taskId) for (i = 0; i < (int)ARRAY_COUNT(sGroudonRockData); i++) { - spriteId = CreateSprite(gAncientPowerRockSpriteTemplate, sGroudonRockData[i][0], DISPLAY_HEIGHT, i); + spriteId = CreateSprite(&gAncientPowerRockSpriteTemplate, sGroudonRockData[i][0], DISPLAY_HEIGHT, i); gSprites[spriteId].callback = SpriteCB_GroudonRocks; gSprites[spriteId].oam.priority = 0; gSprites[spriteId].sRockId = i; From 84856817b2b55393eaf1a2d1d8374ca4706619ab Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 9 Jan 2025 19:33:45 +0100 Subject: [PATCH 92/99] remove undef TASK_NONE from list_menu --- src/list_menu.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/list_menu.c b/src/list_menu.c index 8201caa34d..91e34cd1b2 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -678,8 +678,6 @@ static void ListMenuDrawCursor(struct ListMenu *list) } } -#undef TASK_NONE - static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorObjId) { struct CursorStruct cursor; From 9385dfed67a4b0d68a7b6e39682ba0b3d2e7d814 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 15 Jan 2025 10:08:02 +0100 Subject: [PATCH 93/99] Fix CaveTransition pals --- graphics/cave_transition/enter.pal | 10 +++++++++- graphics/cave_transition/exit.pal | 11 ----------- src/fldeff_flash.c | 8 ++++---- 3 files changed, 13 insertions(+), 16 deletions(-) delete mode 100644 graphics/cave_transition/exit.pal diff --git a/graphics/cave_transition/enter.pal b/graphics/cave_transition/enter.pal index fea15a1765..ec7a2b50e7 100644 --- a/graphics/cave_transition/enter.pal +++ b/graphics/cave_transition/enter.pal @@ -1,6 +1,6 @@ JASC-PAL 0100 -8 +16 148 197 172 16 16 16 32 32 32 @@ -9,3 +9,11 @@ JASC-PAL 82 82 82 98 98 98 115 115 115 +131 131 131 +148 148 148 +164 164 164 +180 180 180 +197 197 197 +213 213 213 +230 230 230 +255 255 255 diff --git a/graphics/cave_transition/exit.pal b/graphics/cave_transition/exit.pal deleted file mode 100644 index 09eb37624a..0000000000 --- a/graphics/cave_transition/exit.pal +++ /dev/null @@ -1,11 +0,0 @@ -JASC-PAL -0100 -8 -131 131 131 -148 148 148 -164 164 164 -180 180 180 -197 197 197 -213 213 213 -230 230 230 -255 255 255 diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index 5c7d23b5ac..1e2b9a95fc 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -65,7 +65,7 @@ static const u16 sCaveTransitionPalette_White[] = INCBIN_U16("graphics/cave_tran static const u16 sCaveTransitionPalette_Black[] = INCBIN_U16("graphics/cave_transition/black.gbapal"); static const u16 sCaveTransitionPalette_Enter[] = INCBIN_U16("graphics/cave_transition/enter.gbapal"); -static const u16 sCaveTransitionPalette_Exit[] = INCBIN_U16("graphics/cave_transition/exit.gbapal"); + static const u32 sCaveTransitionTilemap[] = INCBIN_U32("graphics/cave_transition/tilemap.bin.lz"); static const u32 sCaveTransitionTiles[] = INCBIN_U32("graphics/cave_transition/tiles.4bpp.lz"); @@ -219,7 +219,7 @@ static void Task_ExitCaveTransition2(u8 taskId) LZ77UnCompVram(sCaveTransitionTiles, (void *)(VRAM + 0xC000)); LZ77UnCompVram(sCaveTransitionTilemap, (void *)(VRAM + 0xF800)); LoadPalette(sCaveTransitionPalette_White, BG_PLTT_ID(14), PLTT_SIZE_4BPP); - LoadPalette(sCaveTransitionPalette_Exit, BG_PLTT_ID(14), PLTT_SIZEOF(8)); + LoadPalette(&sCaveTransitionPalette_Enter[8], BG_PLTT_ID(14), PLTT_SIZEOF(8)); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 @@ -249,7 +249,7 @@ static void Task_ExitCaveTransition3(u8 taskId) u16 blend = count + 0x1000; SetGpuReg(REG_OFFSET_BLDALPHA, blend); - if (count <= 0x10) + if (count <= 16) { gTasks[taskId].data[1]++; } @@ -270,7 +270,7 @@ static void Task_ExitCaveTransition4(u8 taskId) if (count < 8) { gTasks[taskId].data[2]++; - LoadPalette(&sCaveTransitionPalette_Exit[count], BG_PLTT_ID(14), sizeof(sCaveTransitionPalette_Exit) - PLTT_SIZEOF(count)); + LoadPalette(&sCaveTransitionPalette_Enter[8 + count], BG_PLTT_ID(14), PLTT_SIZEOF(8) - PLTT_SIZEOF(count)); } else { From b5b0ffd51163ff0ea989d28420d56a24ff06b514 Mon Sep 17 00:00:00 2001 From: Raymond Dodge Date: Fri, 17 Jan 2025 12:04:00 -0500 Subject: [PATCH 94/99] Define field script opcode constants (#2005) Replace the magic number opcodes in field script command macros with these new constants --- asm/macros/event.inc | 457 ++++++++++++++++++------------------ data/event_scripts.s | 1 + data/script_cmd_table.inc | 471 ++++++++++++++++++++------------------ 3 files changed, 475 insertions(+), 454 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 66aeb8482d..b8dedb7ffc 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1,52 +1,55 @@ + .set ALLOCATE_SCRIPT_CMD_TABLE, 0 + .include "data/script_cmd_table.inc" + @ Does nothing. .macro nop - .byte 0x00 + .byte SCR_OP_NOP .endm @ Does nothing. .macro nop1 - .byte 0x01 + .byte SCR_OP_NOP1 .endm @ Terminates script execution. .macro end - .byte 0x02 + .byte SCR_OP_END .endm @ Jumps back to after the last-executed call statement, and continues script execution from there. .macro return - .byte 0x03 + .byte SCR_OP_RETURN .endm @ Jumps to destination and continues script execution from there. The location of the calling script is remembered and can be returned to later. .macro call destination:req - .byte 0x04 + .byte SCR_OP_CALL .4byte \destination .endm @ Jumps to destination and continues script execution from there. .macro goto destination:req - .byte 0x05 + .byte SCR_OP_GOTO .4byte \destination .endm @ If the result of the last comparison matches condition (see Comparison operators), jumps to destination and continues script execution from there. .macro goto_if condition:req, destination:req - .byte 0x06 + .byte SCR_OP_GOTO_IF .byte \condition .4byte \destination .endm @ If the result of the last comparison matches condition (see Comparison operators), calls destination. .macro call_if condition:req, destination:req - .byte 0x07 + .byte SCR_OP_CALL_IF .byte \condition .4byte \destination .endm @ Jumps to the script in gStdScripts at index function. .macro gotostd function:req - .byte 0x08 + .byte SCR_OP_GOTO_STD .byte \function .endm @@ -58,120 +61,120 @@ @ Calls the script in gStdScripts at index function. .macro callstd function:req - .byte 0x09 + .byte SCR_OP_CALL_STD .byte \function .endm @ If the result of the last comparison matches condition (see Comparison operators), jumps to the script in gStdScripts at index function. .macro gotostd_if condition:req, function:req - .byte 0x0a + .byte SCR_OP_GOTO_STD_IF .byte \condition .byte \function .endm @ If the result of the last comparison matches condition (see Comparison operators), calls the script in gStdScripts at index function. .macro callstd_if condition:req, function:req - .byte 0x0b + .byte SCR_OP_CALL_STD_IF .byte \condition .byte \function .endm @ Equivalent to the 'return' command for a RAM script. .macro returnram - .byte 0x0c + .byte SCR_OP_RETURNRAM .endm @ Equivalent to the 'end' command for a RAM script. .macro endram - .byte 0x0d + .byte SCR_OP_ENDRAM .endm @ Sets the Mystery Event script status (MEVENT_STATUS_*). .macro setmysteryeventstatus value:req - .byte 0x0e + .byte SCR_OP_SETMYSTERYEVENTSTATUS .byte \value .endm @ Sets the value at the specified script data index to a fixed 4-byte value. .macro loadword destIndex:req, value:req - .byte 0x0f + .byte SCR_OP_LOAD_WORD .byte \destIndex .4byte \value .endm @ Sets the value at the specified script data index to a fixed byte value. .macro loadbyte destIndex:req, value:req - .byte 0x10 + .byte SCR_OP_LOAD_BYTE .byte \destIndex .byte \value .endm @ Sets the value at the specified pointer. .macro setptr value:req, ptr:req - .byte 0x11 + .byte SCR_OP_SETPTR .byte \value .4byte \ptr .endm @ Sets the value at the specified script data index to the value at pointer 'source'. .macro loadbytefromptr destIndex:req, source:req - .byte 0x12 + .byte SCR_OP_LOADBYTEFROMPTR .byte \destIndex .4byte \source .endm @ Sets the value at pointer 'destination' to the contents of the script data at 'srcIndex'. .macro setptrbyte srcIndex:req, destination:req - .byte 0x13 + .byte SCR_OP_SETPTRBYTE .byte \srcIndex .4byte \destination .endm @ Copies the contents of the script data from one index to another. .macro copylocal destIndex:req, srcIndex:req - .byte 0x14 + .byte SCR_OP_COPYLOCAL .byte \destIndex .byte \srcIndex .endm @ Copies the byte at source to destination, replacing whatever byte was previously there. .macro copybyte destination:req, source:req - .byte 0x15 + .byte SCR_OP_COPYBYTE .4byte \destination .4byte \source .endm @ Changes the value of destination to value. .macro setvar destination:req, value:req - .byte 0x16 + .byte SCR_OP_SETVAR .2byte \destination .2byte \value .endm @ Changes the value of destination by adding value to it. Overflow is not prevented (0xFFFF + 1 = 0x0000). .macro addvar destination:req, value:req - .byte 0x17 + .byte SCR_OP_ADDVAR .2byte \destination .2byte \value .endm @ Changes the value of destination by subtracting value to it. Overflow is not prevented (0x0000 - 1 = 0xFFFF). .macro subvar destination:req, value:req - .byte 0x18 + .byte SCR_OP_SUBVAR .2byte \destination .2byte \value .endm @ Copies the value of source into destination. .macro copyvar destination:req, source:req - .byte 0x19 + .byte SCR_OP_COPYVAR .2byte \destination .2byte \source .endm @ If source is not a variable, then this function acts like setvar. Otherwise, it acts like copyvar. .macro setorcopyvar destination:req, source:req - .byte 0x1a + .byte SCR_OP_SETORCOPYVAR .2byte \destination .2byte \source .endm @@ -179,7 +182,7 @@ @ Compares the values of the script data at indexes 'local1' and 'local2'. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_local_to_local local1:req, local2:req - .byte 0x1b + .byte SCR_OP_COMPARE_LOCAL_TO_LOCAL .byte \local1 .byte \local2 .endm @@ -187,7 +190,7 @@ @ Compares the value of the script data at index 'local' to a fixed value. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_local_to_value local:req, value:req - .byte 0x1c + .byte SCR_OP_COMPARE_LOCAL_TO_VALUE .byte \local .byte \value .endm @@ -195,7 +198,7 @@ @ Compares the value of the script data at index 'local' to the value at 'ptr' @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_local_to_ptr local:req, ptr:req - .byte 0x1d + .byte SCR_OP_COMPARE_LOCAL_TO_PTR .byte \local .4byte \ptr .endm @@ -203,7 +206,7 @@ @ Compares the value at 'ptr' to the value of the script data at index 'local'. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_ptr_to_local ptr:req, local:req - .byte 0x1e + .byte SCR_OP_COMPARE_PTR_TO_LOCAL .4byte \ptr .byte \local .endm @@ -211,7 +214,7 @@ @ Compares the value at 'ptr' to a fixed value. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_ptr_to_value ptr:req, value:req - .byte 0x1f + .byte SCR_OP_COMPARE_PTR_TO_VALUE .4byte \ptr .byte \value .endm @@ -219,7 +222,7 @@ @ Compares the value at 'ptr1' to the value at 'ptr2'. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_ptr_to_ptr ptr1:req, ptr2:req - .byte 0x20 + .byte SCR_OP_COMPARE_PTR_TO_PTR .4byte \ptr1 .4byte \ptr2 .endm @@ -227,7 +230,7 @@ @ Compares the value of 'var' to a fixed value. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_var_to_value var:req, value:req - .byte 0x21 + .byte SCR_OP_COMPARE_VAR_TO_VALUE .2byte \var .2byte \value .endm @@ -235,7 +238,7 @@ @ Compares the value of 'var1' to the value of 'var2'. @ The result is stored in comparisonResult to be acted on by goto_if / call_if .macro compare_var_to_var var1:req, var2:req - .byte 0x22 + .byte SCR_OP_COMPARE_VAR_TO_VAR .2byte \var1 .2byte \var2 .endm @@ -252,26 +255,26 @@ @ Calls the native C function stored at func. .macro callnative func:req - .byte 0x23 + .byte SCR_OP_CALLNATIVE .4byte \func .endm @ Replaces the script with the function stored at func. Execution returns to the bytecode script when func returns TRUE. .macro gotonative func:req - .byte 0x24 + .byte SCR_OP_GOTONATIVE .4byte \func .endm @ Calls a function listed in the table in data/specials.inc. .macro special function:req - .byte 0x25 + .byte SCR_OP_SPECIAL .2byte SPECIAL_\function .endm @ Calls a function listed in the table in data/specials.inc. @ That function's output (if any) will be written to the variable specified by 'output'. .macro specialvar output:req, function:req - .byte 0x26 + .byte SCR_OP_SPECIALVAR .2byte \output .2byte SPECIAL_\function .endm @@ -279,77 +282,77 @@ @ Blocks script execution until a command or C code manually unblocks it. Generally used with specific @ commands and specials. Calling ScriptContext_Enable for instance will allow execution to continue. .macro waitstate - .byte 0x27 + .byte SCR_OP_WAITSTATE .endm @ Blocks script execution for frames. (Pokemon Emerald runs at just shy of 60 frames per second.) .macro delay frames:req - .byte 0x28 + .byte SCR_OP_DELAY .2byte \frames .endm @ Sets flag to TRUE. .macro setflag flag:req - .byte 0x29 + .byte SCR_OP_SETFLAG .2byte \flag .endm @ Sets flag to FALSE. .macro clearflag flag:req - .byte 0x2a + .byte SCR_OP_CLEARFLAG .2byte \flag .endm @ Compares flag to TRUE and stores the result in comparisonResult to be used by goto_if, etc @ See additional _if_unset and _if_set macros .macro checkflag flag:req - .byte 0x2b + .byte SCR_OP_CHECKFLAG .2byte \flag .endm @ Initializes the RTC`s local time offset to the given hour and minute. .macro initclock hour:req, minute:req - .byte 0x2c + .byte SCR_OP_INITCLOCK .2byte \hour .2byte \minute .endm @ Updates local time using the RTC and runs time based events. .macro dotimebasedevents - .byte 0x2d + .byte SCR_OP_DOTIMEBASEDEVENTS .endm @ Sets the values of variables VAR_0x8000, VAR_0x8001, and VAR_0x8002 to the current hour, minute, and second. .macro gettime - .byte 0x2e + .byte SCR_OP_GETTIME .endm @ Plays the specified sound. Only one sound may play at a time, with newer ones interrupting older ones. .macro playse song:req - .byte 0x2f + .byte SCR_OP_PLAYSE .2byte \song .endm @ Blocks script execution until the currently-playing sound (triggered by playse) finishes playing. .macro waitse - .byte 0x30 + .byte SCR_OP_WAITSE .endm @ Plays the fanfare specified by the song number. If the specified song is not a fanfare it will instead play the first song in sFanfares. .macro playfanfare song:req - .byte 0x31 + .byte SCR_OP_PLAYFANFARE .2byte \song .endm @ Blocks script execution until all currently-playing fanfares finish. .macro waitfanfare - .byte 0x32 + .byte SCR_OP_WAITFANFARE .endm @ Plays the specified song. If save_song is TRUE, the @ specified song will be saved as if savebgm was called with it. .macro playbgm song:req, save_song:req - .byte 0x33 + .byte SCR_OP_PLAYBGM .2byte \song .byte \save_song .endm @@ -357,30 +360,30 @@ @ Saves the specified song to be played later. Saved music may be played when Overworld_PlaySpecialMapMusic is called. This occurs on @ exiting most warps. .macro savebgm song:req - .byte 0x34 + .byte SCR_OP_SAVEBGM .2byte \song .endm @ Crossfades the currently-playing song into the map's default song. .macro fadedefaultbgm - .byte 0x35 + .byte SCR_OP_FADEDEFAULTBGM .endm @ Crossfades the currently-playing song into the specified song. .macro fadenewbgm song:req - .byte 0x36 + .byte SCR_OP_FADENEWBGM .2byte \song .endm @ Fades out the currently-playing song. .macro fadeoutbgm speed:req - .byte 0x37 + .byte SCR_OP_FADEOUTBGM .byte \speed .endm @ Fades the previously-playing song back in. .macro fadeinbgm speed:req - .byte 0x38 + .byte SCR_OP_FADEINBGM .byte \speed .endm @@ -424,7 +427,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warp map:req, a, b, c - .byte 0x39 + .byte SCR_OP_WARP formatwarp \map, \a, \b, \c .endm @@ -432,7 +435,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warpsilent map:req, a, b, c - .byte 0x3a + .byte SCR_OP_WARPSILENT formatwarp \map, \a, \b, \c .endm @@ -440,7 +443,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warpdoor map:req, a, b, c - .byte 0x3b + .byte SCR_OP_WARPDOOR formatwarp \map, \a, \b, \c .endm @@ -448,7 +451,7 @@ @ use the map set by setholewarp. In either case the target coordinates on the destination map will be the @ player's current position. .macro warphole map:req - .byte 0x3c + .byte SCR_OP_WARPHOLE map \map .endm @@ -457,7 +460,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warpteleport map:req, a, b, c - .byte 0x3d + .byte SCR_OP_WARPTELEPORT formatwarp \map, \a, \b, \c .endm @@ -465,7 +468,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setwarp map:req, a, b, c - .byte 0x3e + .byte SCR_OP_SETWARP formatwarp \map, \a, \b, \c .endm @@ -473,7 +476,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setdynamicwarp map:req, a, b, c - .byte 0x3f + .byte SCR_OP_SETDYNAMICWARP formatwarp \map, \a, \b, \c .endm @@ -483,7 +486,7 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setdivewarp map:req, a, b, c - .byte 0x40 + .byte SCR_OP_SETDIVEWARP formatwarp \map, \a, \b, \c .endm @@ -494,26 +497,26 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setholewarp map:req, a=0, b=0, c - .byte 0x41 + .byte SCR_OP_SETHOLEWARP formatwarp \map, \a, \b, \c .endm @ Retrieves the player's zero-indexed x- and y-coordinates in the map, and stores them in the specified variables. .macro getplayerxy x:req, y:req - .byte 0x42 + .byte SCR_OP_GETPLAYERXY .2byte \x .2byte \y .endm @ Retrieves the number of Pokemon in the player's party, and stores that number in VAR_RESULT. .macro getpartysize - .byte 0x43 + .byte SCR_OP_GETPARTYSIZE .endm @ Attempts to add quantity of the specified item to the player's Bag. If the player has enough room, the item will @ be added and VAR_RESULT will be set to TRUE; otherwise, VAR_RESULT is set to FALSE. .macro additem itemId:req, quantity=1 - .byte 0x44 + .byte SCR_OP_ADDITEM .2byte \itemId .2byte \quantity .endm @@ -521,7 +524,7 @@ @ Removes quantity of the specified item from the player's Bag. If the player has fewer than 'quantity' in their bag @ then none will be removed and VAR_RESULT will be set to FALSE. Otherwise it will be set to TRUE. .macro removeitem itemId:req, quantity=1 - .byte 0x45 + .byte SCR_OP_REMOVEITEM .2byte \itemId .2byte \quantity .endm @@ -529,7 +532,7 @@ @ Checks if the player has enough space in their Bag to hold quantity more of the specified item. Sets VAR_RESULT to @ TRUE if there is room, or FALSE is there is no room. .macro checkitemspace itemId:req, quantity=1 - .byte 0x46 + .byte SCR_OP_CHECKITEMSPACE .2byte \itemId .2byte \quantity .endm @@ -537,7 +540,7 @@ @ Checks if the player has quantity or more of the specified item in their Bag. Sets VAR_RESULT to TRUE if the player has @ enough of the item, or FALSE if they have fewer than quantity of the item. .macro checkitem itemId:req, quantity=1 - .byte 0x47 + .byte SCR_OP_CHECKITEM .2byte \itemId .2byte \quantity .endm @@ -545,58 +548,58 @@ @ Checks which Bag pocket the specified item belongs in, and writes the pocket value (POCKET_*) to VAR_RESULT. @ This is used to show the name of the proper Bag pocket when the player receives an item via callstd. .macro checkitemtype itemId:req - .byte 0x48 + .byte SCR_OP_CHECKITEMTYPE .2byte \itemId .endm @ Adds quantity of the specified item to the player's PC. .macro addpcitem itemId:req, quantity=1 - .byte 0x49 + .byte SCR_OP_ADDPCITEM .2byte \itemId .2byte \quantity .endm @ Checks for quantity of the specified item in the player's PC. .macro checkpcitem itemId:req, quantity=1 - .byte 0x4a + .byte SCR_OP_CHECKPCITEM .2byte \itemId .2byte \quantity .endm @ Adds a decoration to the player's PC. .macro adddecoration decoration:req - .byte 0x4b + .byte SCR_OP_ADDDECORATION .2byte \decoration .endm @ Removes a decoration from the player's PC. .macro removedecoration decoration:req - .byte 0x4c + .byte SCR_OP_REMOVEDECORATION .2byte \decoration .endm @ Checks for decoration in the player's PC. .macro checkdecor decoration:req - .byte 0x4d + .byte SCR_OP_CHECKDECOR .2byte \decoration .endm @ Checks if the player has enough space in their PC to hold the decoration. @ Sets VAR_RESULT to TRUE if there is room, or FALSE is there is no room. .macro checkdecorspace decoration:req - .byte 0x4e + .byte SCR_OP_CHECKDECORSPACE .2byte \decoration .endm @ Applies the movement data at movements to the specified (localId) object. If no map is specified, then the current map is used. .macro applymovement localId:req, movements:req, map .ifb \map - .byte 0x4f + .byte SCR_OP_APPLYMOVEMENT .2byte \localId .4byte \movements .else @ Really only useful if the object has followed from one map to another (e.g. Wally during the catching event). - .byte 0x50 + .byte SCR_OP_APPLYMOVEMENTAT .2byte \localId .4byte \movements map \map @@ -609,10 +612,10 @@ @ If no map is specified, then the current map is used. .macro waitmovement localId:req, map .ifb \map - .byte 0x51 + .byte SCR_OP_WAITMOVEMENT .2byte \localId .else - .byte 0x52 + .byte SCR_OP_WAITMOVEMENTAT .2byte \localId map \map .endif @@ -623,10 +626,10 @@ @ If no map is specified, then the current map is used. .macro removeobject localId:req, map .ifb \map - .byte 0x53 + .byte SCR_OP_REMOVEOBJECT .2byte \localId .else - .byte 0x54 + .byte SCR_OP_REMOVEOBJECTAT .2byte \localId map \map .endif @@ -637,10 +640,10 @@ @ If no map is specified, then the current map is used. .macro addobject localId:req, map .ifb \map - .byte 0x55 + .byte SCR_OP_ADDOBJECT .2byte \localId .else - .byte 0x56 + .byte SCR_OP_ADDOBJECTAT .2byte \localId map \map .endif @@ -648,7 +651,7 @@ @ Sets the specified (localId) object's position on the current map. .macro setobjectxy localId:req, x:req, y:req - .byte 0x57 + .byte SCR_OP_SETOBJECTXY .2byte \localId .2byte \x .2byte \y @@ -656,33 +659,33 @@ @ Sets the specified object's invisibility to FALSE. .macro showobjectat localId:req, map:req - .byte 0x58 + .byte SCR_OP_SHOWOBJECTAT .2byte \localId map \map .endm @ Sets the specified object's invisibility to TRUE. .macro hideobjectat localId:req, map:req - .byte 0x59 + .byte SCR_OP_HIDEOBJECTAT .2byte \localId map \map .endm @ Turns the currently selected object (if there is one) to face the player. .macro faceplayer - .byte 0x5a + .byte SCR_OP_FACEPLAYER .endm @ Turns the specified object in the specified direction. .macro turnobject localId:req, direction:req - .byte 0x5b + .byte SCR_OP_TURNOBJECT .2byte \localId .byte \direction .endm @ Configures the arguments for a trainer battle, then jumps to the appropriate script in scripts/trainer_battle.inc .macro trainerbattle type:req, trainer:req, local_id:req, pointer1:req, pointer2, pointer3, pointer4 - .byte 0x5c + .byte SCR_OP_TRAINERBATTLE .byte \type .2byte \trainer .2byte \local_id @@ -780,41 +783,41 @@ @ Starts a trainer battle using the battle information stored in RAM (usually by the scripts in trainer_battle.inc, which @ are run by trainerbattle), and blocks script execution until the battle finishes. .macro dotrainerbattle - .byte 0x5d + .byte SCR_OP_DOTRAINERBATTLE .endm @ Goes to address after the trainerbattle command (called by the battle functions, see battle_setup.c) .macro gotopostbattlescript - .byte 0x5e + .byte SCR_OP_GOTOPOSTBATTLESCRIPT .endm @ Goes to address specified in the trainerbattle command (called by the battle functions, see battle_setup.c) .macro gotobeatenscript - .byte 0x5f + .byte SCR_OP_GOTOBEATENSCRIPT .endm @ Checks if the trainer has been defeated by the player (by comparing the flag 'trainer + TRAINER_FLAGS_START' to TRUE). .macro checktrainerflag trainer:req - .byte 0x60 + .byte SCR_OP_CHECKTRAINERFLAG .2byte \trainer .endm @ Sets the trainer flag (trainer + TRAINER_FLAGS_START) to TRUE (defeated). .macro settrainerflag trainer:req - .byte 0x61 + .byte SCR_OP_SETTRAINERFLAG .2byte \trainer .endm @ Sets the trainer flag (trainer + TRAINER_FLAGS_START) to FALSE (not defeated). .macro cleartrainerflag trainer:req - .byte 0x62 + .byte SCR_OP_CLEARTRAINERFLAG .2byte \trainer .endm @ Sets the coordinates of an object's template, so that if the sprite goes off screen @ it'll still be there when it comes back on screen. .macro setobjectxyperm localId:req, x:req, y:req - .byte 0x63 + .byte SCR_OP_SETOBJECTXYPERM .2byte \localId .2byte \x .2byte \y @@ -823,13 +826,13 @@ @ Copies a live object event's xy position to its template, so that if the sprite goes off screen @ it'll still be there when it comes back on screen. .macro copyobjectxytoperm localId:req - .byte 0x64 + .byte SCR_OP_COPYOBJECTXYTOPERM .2byte \localId .endm @ Sets the movement type (MOVEMENT_TYPE_*) for an object's template. .macro setobjectmovementtype localId:req, movementType:req - .byte 0x65 + .byte SCR_OP_SETOBJECTMOVEMENTTYPE .2byte \localId .byte \movementType .endm @@ -837,51 +840,51 @@ @ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the @ box and its text have been fully drawn. .macro waitmessage - .byte 0x66 + .byte SCR_OP_WAITMESSAGE .endm @ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at @ that offset will be loaded and used. If text is NULL, then the value of script data 0 will be treated as @ a pointer to the text. The 'loadword 0' in msgbox sets this value, for instance. .macro message text:req - .byte 0x67 + .byte SCR_OP_MESSAGE .4byte \text .endm @ Closes the current message box. .macro closemessage - .byte 0x68 + .byte SCR_OP_CLOSEMESSAGE .endm @ Freezes all objects immediately except the player. The player is frozen once their movement is finished. .macro lockall - .byte 0x69 + .byte SCR_OP_LOCKALL .endm @ Freezes all objects immediately except the player and the selected object. The player and selected object are frozen once their movement is finished. .macro lock - .byte 0x6a + .byte SCR_OP_LOCK .endm @ Resumes normal movement for all objects on-screen, and closes any standard message boxes that are still open. .macro releaseall - .byte 0x6b + .byte SCR_OP_RELEASEALL .endm @ Resumes normal movement for the selected object (if there is one) and the player. Also closes any standard message boxes that are still open. .macro release - .byte 0x6c + .byte SCR_OP_RELEASE .endm @ Blocks script execution until the player presses the A or B button. .macro waitbuttonpress - .byte 0x6d + .byte SCR_OP_WAITBUTTONPRESS .endm @ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. @ Their selection is stored in VAR_RESULT as NO (0) or YES (1). Pressing B is equivalent to answering NO .macro yesnobox x:req, y:req - .byte 0x6e + .byte SCR_OP_YESNOBOX .byte \x .byte \y .endm @@ -890,7 +893,7 @@ @ Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with multichoiceId. @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. .macro multichoice x:req, y:req, multichoiceId:req, ignoreBPress:req - .byte 0x6f + .byte SCR_OP_MULTICHOICE .byte \x .byte \y .byte \multichoiceId @@ -902,7 +905,7 @@ @ The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0. @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. .macro multichoicedefault x:req, y:req, multichoiceId:req, default:req, ignoreBPress:req - .byte 0x70 + .byte SCR_OP_MULTICHOICEDEFAULT .byte \x .byte \y .byte \multichoiceId @@ -915,7 +918,7 @@ @ The per_row argument determines how many list items will be shown on a single row of the box. @ If ignoreBPress is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. .macro multichoicegrid x:req, y:req, multichoiceId:req, per_row:req, ignoreBPress:req - .byte 0x71 + .byte SCR_OP_MULTICHOICEGRID .byte \x .byte \y .byte \multichoiceId @@ -925,12 +928,12 @@ @ Nopped in Emerald. .macro drawbox - .byte 0x72 + .byte SCR_OP_DRAWBOX .endm @ Nopped in Emerald, but still consumes parameters. .macro erasebox left:req, top:req, right:req, bottom:req - .byte 0x73 + .byte SCR_OP_ERASEBOX .byte \left .byte \top .byte \right @@ -939,7 +942,7 @@ @ Nopped in Emerald, but still consumes parameters. .macro drawboxtext left:req, top:req, multichoiceId:req, ignoreBPress:req - .byte 0x74 + .byte SCR_OP_DRAWBOXTEXT .byte \left .byte \top .byte \multichoiceId @@ -948,7 +951,7 @@ @ Displays a box containing the front sprite for the specified Pokemon species. .macro showmonpic species:req, x:req, y:req - .byte 0x75 + .byte SCR_OP_SHOWMONPIC .2byte \species .byte \x .byte \y @@ -956,12 +959,12 @@ @ Hides the box displayed by showmonpic. .macro hidemonpic - .byte 0x76 + .byte SCR_OP_HIDEMONPIC .endm @ Draws an image of the winner of the contest. winnerId is any CONTEST_WINNER_* constant. .macro showcontestpainting winnerId:req - .byte 0x77 + .byte SCR_OP_SHOWCONTESTPAINTING .byte \winnerId .endm @@ -969,7 +972,7 @@ @ to convert text to braille, and be preceded by brailleformat. The brailleformat data is skipped over (in RS, these @ bytes determined the box's size and position, but in Emerald these are calculated automatically). .macro braillemessage text:req - .byte 0x78 + .byte SCR_OP_BRAILLEMESSAGE .4byte \text .endm @@ -987,7 +990,7 @@ @ Gives the player a Pokémon of the specified species and level, holding the specified item. The trailing 0s are unused parameters. @ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome. .macro givemon species:req, level:req, item=ITEM_NONE - .byte 0x79 + .byte SCR_OP_GIVEMON .2byte \species .byte \level .2byte \item @@ -999,7 +1002,7 @@ @ Gives the player an Egg of the specified species. @ VAR_RESULT will be set to MON_GIVEN_TO_PARTY, MON_GIVEN_TO_PC, or MON_CANT_GIVE depending on the outcome. .macro giveegg species:req - .byte 0x7a + .byte SCR_OP_GIVEEGG .2byte \species .endm @@ -1007,7 +1010,7 @@ @ If a value greater than PARTY_SIZE is given for partyIndex it will use the last Pokémon in the party instead. @ Note that this means in vanilla a value equal to PARTY_SIZE for partyIndex will go out of bounds. .macro setmonmove partyIndex:req, slot:req, move:req - .byte 0x7b + .byte SCR_OP_SETMONMOVE .byte \partyIndex .byte \slot .2byte \move @@ -1017,7 +1020,7 @@ @ (zero-indexed) slot number of the first Pokemon that knows the move. If not, VAR_RESULT is set to PARTY_SIZE. @ VAR_0x8004 is also set to this Pokemon's species. .macro checkpartymove move:req - .byte 0x7c + .byte SCR_OP_CHECKPARTYMOVE .2byte \move .endm @@ -1039,21 +1042,21 @@ @ Writes the name of the given Pokemon species to the specified buffer. .macro bufferspeciesname stringVarId:req, species:req - .byte 0x7d + .byte SCR_OP_BUFFERSPECIESNAME stringvar \stringVarId .2byte \species .endm @ Writes the name of the species of the first Pokemon in the player's party to the specified buffer. .macro bufferleadmonspeciesname stringVarId:req - .byte 0x7e + .byte SCR_OP_BUFFERLEADMONSPECIESNAME stringvar \stringVarId .endm @ Writes the nickname of the Pokemon in 'slot' (zero-indexed) of the player's party to the specified buffer. @ If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. .macro bufferpartymonnick stringVarId:req, slot:req - .byte 0x7f + .byte SCR_OP_BUFFERPARTYMONNICK stringvar \stringVarId .2byte \slot .endm @@ -1061,42 +1064,42 @@ @ Writes the name of the specified item to the specified buffer. If itemId is >= ITEMS_COUNT, @ then the name of ITEM_NONE ("????????") is buffered instead. .macro bufferitemname stringVarId:req, item:req - .byte 0x80 + .byte SCR_OP_BUFFERITEMNAME stringvar \stringVarId .2byte \item .endm @ Writes the name of the specified decoration to the specified buffer. .macro bufferdecorationname stringVarId:req, decoration:req - .byte 0x81 + .byte SCR_OP_BUFFERDECORATIONNAME stringvar \stringVarId .2byte \decoration .endm @ Writes the name of the specified move to the specified buffer. .macro buffermovename stringVarId:req, move:req - .byte 0x82 + .byte SCR_OP_BUFFERMOVENAME stringvar \stringVarId .2byte \move .endm @ Converts the value of input to a decimal string, and writes that string to the specified buffer. .macro buffernumberstring stringVarId:req, input:req - .byte 0x83 + .byte SCR_OP_BUFFERNUMBERSTRING stringvar \stringVarId .2byte \input .endm @ Writes the given standard string (STDSTRING_*) to the specified buffer. Invalid std string ids are not handled. .macro bufferstdstring stringVarId:req, index:req - .byte 0x84 + .byte SCR_OP_BUFFERSTDSTRING stringvar \stringVarId .2byte \index .endm @ Copies the string at the given pointer to the specified buffer. .macro bufferstring stringVarId:req, text:req - .byte 0x85 + .byte SCR_OP_BUFFERSTRING stringvar \stringVarId .4byte \text .endm @@ -1104,7 +1107,7 @@ @ Opens the Pokemart system, offering the specified products for sale. @ Products should be a list of .2byte item values preceded by an .align 2 .macro pokemart products:req - .byte 0x86 + .byte SCR_OP_POKEMART .4byte \products .endm @@ -1118,26 +1121,26 @@ @ Opens the Pokemart system and treats the list of items as decorations. @ Products should be a list of .2byte decoration values preceded by an .align 2 .macro pokemartdecoration products:req - .byte 0x87 + .byte SCR_OP_POKEMARTDECORATION .4byte \products .endm @ Identical to pokemartdecoration, but with slight changes to the clerk dialogue. See uses of MART_TYPE_DECOR2. .macro pokemartdecoration2 products:req - .byte 0x88 + .byte SCR_OP_POKEMARTDECORATION2 .4byte \products .endm @ Starts up the slot machine minigame. id is a SLOT_MACHINE_* value that influences probabilities of certain reel outcomes. .macro playslotmachine id:req - .byte 0x89 + .byte SCR_OP_PLAYSLOTMACHINE .2byte \id .endm @ Sets a berry tree's berry and growth stage. treeId is any BERRY_TREE_* constant (an index into berryTrees in SaveBlock1), @ berry is any ITEM_TO_BERRY(ITEM_BERRY_NAME) value, and growthStage is any BERRY_STAGE_* constant. .macro setberrytree treeId:req, berry:req, growthStage:req - .byte 0x8a + .byte SCR_OP_SETBERRYTREE .byte \treeId .byte \berry .byte \growthStage @@ -1145,34 +1148,34 @@ @ Opens the party menu to select a Pokemon for a contest. .macro choosecontestmon - .byte 0x8b + .byte SCR_OP_CHOOSECONTESTMON .endm @ Starts the appeals round of a contest. .macro startcontest - .byte 0x8c + .byte SCR_OP_STARTCONTEST .endm @ Shows the results screen of a contest. .macro showcontestresults - .byte 0x8d + .byte SCR_OP_SHOWCONTESTRESULTS .endm @ Starts communication to initialize a link contest. .macro contestlinktransfer - .byte 0x8e + .byte SCR_OP_CONTESTLINKTRANSFER .endm @ Stores a random integer between 0 and limit (exclusive of limit) in VAR_RESULT. .macro random limit:req - .byte 0x8f + .byte SCR_OP_RANDOM .2byte \limit .endm @ Adds value to the player's money. If adding 'value' money would exceed MAX_MONEY, the player's money is set to MAX_MONEY. @ If 'disable' is set to anything but 0 then this command does nothing. .macro addmoney value:req, disable=0 - .byte 0x90 + .byte SCR_OP_ADDMONEY .4byte \value .byte \disable .endm @@ -1180,7 +1183,7 @@ @ Subtracts value from the player's money. If the player has less than 'value' money, their money is set to 0. @ If 'disable' is set to anything but 0 then this command does nothing. .macro removemoney value:req, disable=0 - .byte 0x91 + .byte SCR_OP_REMOVEMONEY .4byte \value .byte \disable .endm @@ -1188,7 +1191,7 @@ @ Checks if the player has money >= value. VAR_RESULT is set to TRUE if the player has enough money, or FALSE if they do not. @ If 'disable' is set to anything but 0 then this command does nothing. .macro checkmoney value:req, disable=0 - .byte 0x92 + .byte SCR_OP_CHECKMONEY .4byte \value .byte \disable .endm @@ -1196,7 +1199,7 @@ @ Creates a window showing how much money the player has. @ If 'disable' is set to anything but 0 then this command does nothing. .macro showmoneybox x:req, y:req, disable=0 - .byte 0x93 + .byte SCR_OP_SHOWMONEYBOX .byte \x .byte \y .byte \disable @@ -1204,7 +1207,7 @@ @ Destroys the window created by showmoneybox. Consumption of the x and y arguments was dummied out. .macro hidemoneybox - .byte 0x94 + .byte SCR_OP_HIDEMONEYBOX .byte 0 @ \x .byte 0 @ \y .endm @@ -1212,7 +1215,7 @@ @ Updates the window created by showmoneybox. Consumption of the x and y arguments was dummied out. @ If 'disable' is set to anything but 0 then this command does nothing. .macro updatemoneybox disable=0 - .byte 0x95 + .byte SCR_OP_UPDATEMONEYBOX .byte 0 @ \x .byte 0 @ \y .byte \disable @@ -1220,19 +1223,19 @@ @ Gets whether the effects of the specified PokeNews program are active. newsKind is a POKENEWS_* constant. .macro getpokenewsactive newsKind:req - .byte 0x96 + .byte SCR_OP_GETPOKENEWSACTIVE .2byte \newsKind .endm @ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK) .macro fadescreen mode:req - .byte 0x97 + .byte SCR_OP_FADESCREEN .byte \mode .endm @ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK) .macro fadescreenspeed mode:req, speed:req - .byte 0x98 + .byte SCR_OP_FADESCREENSPEED .byte \mode .byte \speed .endm @@ -1240,64 +1243,64 @@ @ Sets the flash level. A level of 0 is fully bright, a level of 1 is the largest flash radius, a level @ of 7 is the smallest flash radius, a level of 8 is fully black. .macro setflashlevel level:req - .byte 0x99 + .byte SCR_OP_SETFLASHLEVEL .2byte \level .endm @ Animates the flash radius from its current size to the size it would be at the specified level. @ Note that this does not actually change the current flash level. It's typically used just before a setflashlevel. .macro animateflash level:req - .byte 0x9a + .byte SCR_OP_ANIMATEFLASH .byte \level .endm @ Automatically scrolls through the message without player input and at a fixed speed. .macro messageautoscroll text:req - .byte 0x9b + .byte SCR_OP_MESSAGEAUTOSCROLL .4byte \text .endm @ Executes the specified field effect animation (FLDEFF_*). .macro dofieldeffect animation:req - .byte 0x9c + .byte SCR_OP_DOFIELDEFFECT .2byte \animation .endm @ Sets the field effect argument at index 'argNum' to 'value.' .macro setfieldeffectargument argNum:req, value:req - .byte 0x9d + .byte SCR_OP_SETFIELDEFFECTARGUMENT .byte \argNum .2byte \value .endm @ Blocks script execution until all playing field effect animations complete. .macro waitfieldeffect animation:req - .byte 0x9e + .byte SCR_OP_WAITFIELDEFFECT .2byte \animation .endm @ Sets which healing location (HEAL_LOCATION_*) the player will return to if all of the Pokemon in their party faint. .macro setrespawn heallocation:req - .byte 0x9f + .byte SCR_OP_SETRESPAWN .2byte \heallocation .endm @ Checks the player's gender. Stores the result (MALE (0) or FEMALE (1)) in VAR_RESULT. .macro checkplayergender - .byte 0xa0 + .byte SCR_OP_CHECKPLAYERGENDER .endm @ Plays the cry of the given species. Mode is any CRY_MODE_* constant. @ You can use waitmoncry to block script execution until the cry finishes. .macro playmoncry species:req, mode:req - .byte 0xa1 + .byte SCR_OP_PLAYMONCRY .2byte \species .2byte \mode .endm @ Set the metatile at (x, y) on the current map to the given metatile and impassability. .macro setmetatile x:req, y:req, metatileId:req, impassable:req - .byte 0xa2 + .byte SCR_OP_SETMETATILE .2byte \x .2byte \y .2byte \metatileId @@ -1306,37 +1309,37 @@ @ Queues a weather change to the default weather for the map. .macro resetweather - .byte 0xa3 + .byte SCR_OP_RESETWEATHER .endm @ Queues a weather change to type weather. .macro setweather type:req - .byte 0xa4 + .byte SCR_OP_SETWEATHER .2byte \type .endm @ Executes the weather change queued with resetweather or setweather. The current weather will smoothly fade into the queued weather. .macro doweather - .byte 0xa5 + .byte SCR_OP_DOWEATHER .endm @ Enables the overworld task specified by stepCbId (STEP_CB_*). Only 1 can be active at a time. See src/field_tasks.c for more. .macro setstepcallback stepCbId:req - .byte 0xa6 + .byte SCR_OP_SETSTEPCALLBACK .byte \stepCbId .endm @ Sets the current map layout to the one specified by index (LAYOUT_*). @ This should be done before the layout is loaded, typically in the ON_TRANSITION map script. .macro setmaplayoutindex index:req - .byte 0xa7 + .byte SCR_OP_SETMAPLAYOUTINDEX .2byte \index .endm @ Sets the specified object's sprite's subpriority, and sets fixedPriority to TRUE. @ Only used to hide the player and Briney behind the boat. .macro setobjectsubpriority localId:req, map:req, subpriority:req - .byte 0xa8 + .byte SCR_OP_SETOBJECTSUBPRIORITY .2byte \localId map \map .byte \subpriority @@ -1344,7 +1347,7 @@ @ Sets the specified object's fixedPriority to FALSE. Does not change the subpriority field. .macro resetobjectsubpriority localId:req, map:req - .byte 0xa9 + .byte SCR_OP_RESETOBJECTSUBPRIORITY .2byte \localId map \map .endm @@ -1353,7 +1356,7 @@ @ the object event limit (e.g. Contest / Battle Dome audiences and Union Room group members). @ The specified id can be used to refer to the sprite again later with turnvobject. .macro createvobject graphicsId:req, id:req, x:req, y:req, elevation=3, direction=DIR_SOUTH - .byte 0xaa + .byte SCR_OP_CREATEVOBJECT .byte \graphicsId .byte \id .2byte \x @@ -1364,47 +1367,47 @@ @ Turns a sprite created with createvobject. .macro turnvobject id:req, direction:req - .byte 0xab + .byte SCR_OP_TURNVOBJECT .byte \id .byte \direction .endm @ Opens the door metatile at (x, y) with an animation. .macro opendoor x:req, y:req - .byte 0xac + .byte SCR_OP_OPENDOOR .2byte \x .2byte \y .endm @ Closes the door metatile at (x, y) with an animation. .macro closedoor x:req, y:req - .byte 0xad + .byte SCR_OP_CLOSEDOOR .2byte \x .2byte \y .endm @ Waits for the door animation started with opendoor or closedoor to finish. .macro waitdooranim - .byte 0xae + .byte SCR_OP_WAITDOORANIM .endm @ Sets the door metatile at (x, y) to be open without an animation. .macro setdooropen x:req, y:req - .byte 0xaf + .byte SCR_OP_SETDOOROPEN .2byte \x .2byte \y .endm @ Sets the door metatile at (x, y) to be closed without an animation. .macro setdoorclosed x:req, y:req - .byte 0xb0 + .byte SCR_OP_SETDOORCLOSED .2byte \x .2byte \y .endm @ Consumes its parameters and does nothing. It is implemented but unused in Ruby/Sapphire. .macro addelevmenuitem a:req, b:req, c:req, d:req - .byte 0xb1 + .byte SCR_OP_ADDELEVMENUITEM .byte \a .2byte \b .2byte \c @@ -1413,19 +1416,19 @@ @ Does nothing. It is implemented but unused in Ruby/Sapphire. .macro showelevmenu - .byte 0xb2 + .byte SCR_OP_SHOWELEVMENU .endm @ Gets the number of coins the player has and stores it in the variable 'out'. .macro checkcoins out:req - .byte 0xb3 + .byte SCR_OP_CHECKCOINS .2byte \out .endm @ Gives 'count' coins to the player, up to a total of MAX_COINS. @ If the player already has MAX_COINS then VAR_RESULT is set to TRUE, otherwise it is set to FALSE. .macro addcoins count:req - .byte 0xb4 + .byte SCR_OP_ADDCOINS .2byte \count .endm @@ -1433,14 +1436,14 @@ @ If the player has fewer than 'count' coins then no coins are taken and VAR_RESULT is set to TRUE. @ Otherwise VAR_RESULT is set to FALSE. .macro removecoins count:req - .byte 0xb5 + .byte SCR_OP_REMOVECOINS .2byte \count .endm @ Prepares to start a wild battle against a 'species' at 'level' holding 'item'. Running this command will not affect @ normal wild battles. You start the prepared battle with dowildbattle. .macro setwildbattle species:req, level:req, item=ITEM_NONE - .byte 0xb6 + .byte SCR_OP_SETWILDBATTLE .2byte \species .byte \level .2byte \item @@ -1448,84 +1451,84 @@ @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes. .macro dowildbattle - .byte 0xb7 + .byte SCR_OP_DOWILDBATTLE .endm @ Sets a relative address to be used by the other vcommands as part of a Mystery Gift script. .macro setvaddress pointer:req - .byte 0xb8 + .byte SCR_OP_SETVADDRESS .4byte \pointer .endm @ Equivalent to goto using the relative address set by setvaddress. .macro vgoto destination:req - .byte 0xb9 + .byte SCR_OP_VGOTO .4byte \destination .endm @ Equivalent to call using the relative address set by setvaddress. .macro vcall destination:req - .byte 0xba + .byte SCR_OP_VCALL .4byte \destination .endm @ Equivalent to goto_if using the relative address set by setvaddress. .macro vgoto_if condition:req, destination:req - .byte 0xbb + .byte SCR_OP_VGOTO_IF .byte \condition .4byte \destination .endm @ Equivalent to call_if using the relative address set by setvaddress. .macro vcall_if condition:req, destination:req - .byte 0xbc + .byte SCR_OP_VCALL_IF .byte \condition .4byte \destination .endm @ Equivalent to message using the relative address set by setvaddress. .macro vmessage text:req - .byte 0xbd + .byte SCR_OP_VMESSAGE .4byte \text .endm @ Expands the given text at the pointer (- the relative address set by setvaddress) into gStringVar4 .macro vbuffermessage text:req - .byte 0xbe + .byte SCR_OP_VBUFFERMESSAGE .4byte \text .endm @ Equivalent to bufferstring using the relative address set by setvaddress. .macro vbufferstring stringVarIndex:req, text:req - .byte 0xbf + .byte SCR_OP_VBUFFERSTRING stringvar \stringVarIndex .4byte \text .endm @ Create a window showing how many Coins the player has. .macro showcoinsbox x:req, y:req - .byte 0xc0 + .byte SCR_OP_SHOWCOINSBOX .byte \x .byte \y .endm @ Destroys the window created by showcoins. It consumes its arguments but doesn't use them. .macro hidecoinsbox x:req, y:req - .byte 0xc1 + .byte SCR_OP_HIDECOINSBOX .byte \x .byte \y .endm @ Updates the window created by showcoins. It consumes its arguments but doesn't use them. .macro updatecoinsbox x:req, y:req - .byte 0xc2 + .byte SCR_OP_UPDATECOINSBOX .byte \x .byte \y .endm @ Increases the value of the specified game stat by 1. The maximum value of a stat is 0xFFFFFF. See include/constants/game_stat.h .macro incrementgamestat stat:req - .byte 0xc3 + .byte SCR_OP_INCREMENTGAMESTAT .byte \stat .endm @@ -1533,78 +1536,78 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro setescapewarp map:req, a, b, c - .byte 0xc4 + .byte SCR_OP_SETESCAPEWARP formatwarp \map, \a, \b, \c .endm @ Blocks script execution until cry finishes. .macro waitmoncry - .byte 0xc5 + .byte SCR_OP_WAITMONCRY .endm @ Writes the name of the specified PC box to the specified buffer. .macro bufferboxname stringVarId:req, box:req - .byte 0xc6 + .byte SCR_OP_BUFFERBOXNAME stringvar \stringVarId .2byte \box .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro textcolor color:req - .byte 0xc7 + .byte SCR_OP_TEXTCOLOR .byte \color .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro loadhelp text:req - .byte 0xc8 + .byte SCR_OP_LOADHELP .4byte \text .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro unloadhelp - .byte 0xc9 + .byte SCR_OP_UNLOADHELP .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro signmsg - .byte 0xca + .byte SCR_OP_SIGNMSG .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro normalmsg - .byte 0xcb + .byte SCR_OP_NORMALMSG .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro comparehiddenvar a:req, value:req - .byte 0xcc + .byte SCR_OP_COMPAREHIDDENVAR .byte \a .4byte \value .endm @ Sets the modernFatefulEncounter bit for the Pokemon in the specified slot of the player's party. .macro setmodernfatefulencounter slot:req - .byte 0xcd + .byte SCR_OP_SETMODERNFATEFULENCOUNTER .2byte \slot .endm @ Checks if the modernFatefulEncounter bit is set for the Pokemon in the specified slot of the player's party. If it isn't set, @ VAR_RESULT is TRUE. If the bit is set (or if the specified slot is empty or invalid), VAR_RESULT is FALSE. .macro checkmodernfatefulencounter slot:req - .byte 0xce + .byte SCR_OP_CHECKMODERNFATEFULENCOUNTER .2byte \slot .endm @ Jumps to the ram script saved from a Wonder Card. If there is no valid saved Wonder Card or if the @ ram script is invalid then this does nothing. .macro trywondercardscript - .byte 0xcf + .byte SCR_OP_TRYWONDERCARDSCRIPT .endm @ Used only in FireRed/LeafGreen, does nothing in Emerald. .macro setworldmapflag worldmapflag:req - .byte 0xd0 + .byte SCR_OP_SETWORLDMAPFLAG .2byte \worldmapflag .endm @@ -1613,13 +1616,13 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warpspinenter map:req, a, b, c - .byte 0xd1 + .byte SCR_OP_WARPSPINENTER formatwarp \map, \a, \b, \c .endm @ Changes the location where the player caught the Pokemon in the specified slot of their party. .macro setmonmetlocation slot:req, location:req - .byte 0xd2 + .byte SCR_OP_SETMONMETLOCATION .2byte \slot .byte \location .endm @@ -1627,26 +1630,26 @@ @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Moves the objects one rotation @ on the colored puzzle specified by puzzleNumber. .macro moverotatingtileobjects puzzleNumber:req - .byte 0xd3 + .byte SCR_OP_MOVEROTATINGTILEOBJECTS .2byte \puzzleNumber .endm @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Updates the facing direction of all objects on the puzzle tiles .macro turnrotatingtileobjects - .byte 0xd4 + .byte SCR_OP_TURNROTATINGTILEOBJECTS .endm @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Allocates memory for the puzzle objects. @ isTrickHouse is needed to determine which of the two maps the puzzle is on, in order to know where in the tileset @ the puzzle tiles start (TRUE for Trick House Room, FALSE for Mossdeep Gym). .macro initrotatingtilepuzzle isTrickHouse:req - .byte 0xd5 + .byte SCR_OP_INITROTATINGTILEPUZZLE .2byte \isTrickHouse .endm @ For the rotating tile puzzles in Mossdeep Gym / Trick House Room 7. Frees the memory allocated for the puzzle objects. .macro freerotatingtilepuzzle - .byte 0xd6 + .byte SCR_OP_FREEROTATINGTILEPUZZLE .endm @ Warp used by the teleport tiles in the Mossdeep Gym. Plays SE_WARP_IN and does a simple fade transition. @@ -1654,44 +1657,44 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warpmossdeepgym map:req, a, b, c - .byte 0xd7 + .byte SCR_OP_WARPMOSSDEEPGYM formatwarp \map, \a, \b, \c .endm @ Sets the selected object to the id of the currently approaching trainer. .macro selectapproachingtrainer - .byte 0xd8 + .byte SCR_OP_SELECTAPPROACHINGTRAINER .endm @ Freezes all objects immediately except the player and the approaching trainers. @ The player and trainers are frozen once their movement is finished. .macro lockfortrainer - .byte 0xd9 + .byte SCR_OP_LOCKFORTRAINER .endm @ Destroys the window created by braillemessage. .macro closebraillemessage - .byte 0xda + .byte SCR_OP_CLOSEBRAILLEMESSAGE .endm @ Prints and draws the message all at once rather than character by character. @ Does not wait for player input to continue. .macro messageinstant text:req - .byte 0xdb + .byte SCR_OP_MESSAGEINSTANT .4byte \text .endm @ Equivalent to fadescreen but copies gPlttBufferUnfaded to gPaletteDecompressionBuffer on the fade out @ and the reverse on the fade in, in effect saving gPlttBufferUnfaded to restore it. .macro fadescreenswapbuffers mode:req - .byte 0xdc + .byte SCR_OP_FADESCREENSWAPBUFFERS .byte \mode .endm @ Buffers the specified trainer's class name to the given string var. @ If the trainer id is >= TRAINERS_COUNT it will be treated as TRAINER_NONE. .macro buffertrainerclassname stringVarId:req, trainerId:req - .byte 0xdd + .byte SCR_OP_BUFFERTRAINERCLASSNAME stringvar \stringVarId .2byte \trainerId .endm @@ -1699,14 +1702,14 @@ @ Buffers the specified trainer's name to the given string var. @ If the trainer id is >= TRAINERS_COUNT it will be treated as TRAINER_NONE. .macro buffertrainername stringVarId:req, trainerId:req - .byte 0xde + .byte SCR_OP_BUFFERTRAINERNAME stringvar \stringVarId .2byte \trainerId .endm @ Starts a Pokenav call with the given text. .macro pokenavcall text:req - .byte 0xdf + .byte SCR_OP_POKENAVCALL .4byte \text .endm @@ -1714,14 +1717,14 @@ @ Warp commands can be given either the id of which warp location to go to on the destination map @ or a pair of x/y coordinates to go to directly on the destination map. .macro warpwhitefade map:req, a, b, c - .byte 0xe0 + .byte SCR_OP_WARPWHITEFADE formatwarp \map, \a, \b, \c .endm @ Buffers the name of the contest category to the buffer. @ For example a category of CONTEST_CATEGORY_COOL will buffer the string "COOLNESS CONTEST". .macro buffercontestname stringVarId:req, category:req - .byte 0xe1 + .byte SCR_OP_BUFFERCONTESTNAME stringvar \stringVarId .2byte \category .endm @@ -1730,7 +1733,7 @@ @ and if the quantity is 2 or more, the buffered string will be pluralized ("IES" or "S" appended). @ If the specified item is >= ITEMS_COUNT then the name of ITEM_NONE ("????????") is buffered instead. .macro bufferitemnameplural stringVarId:req, item:req, quantity:req - .byte 0xe2 + .byte SCR_OP_BUFFERITEMNAMEPLURAL stringvar \stringVarId .2byte \item .2byte \quantity diff --git a/data/event_scripts.s b/data/event_scripts.s index 55720a6add..139219364f 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -60,6 +60,7 @@ .section script_data, "aw", %progbits + .set ALLOCATE_SCRIPT_CMD_TABLE, 1 .include "data/script_cmd_table.inc" gSpecialVars:: diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index e73a39a5dd..5b7ed740fa 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -1,232 +1,249 @@ + .ifndef SCRIPT_CMD_TABLE_ENTRY_MACRO + .set SCRIPT_CMD_TABLE_ENTRY_MACRO, 1 + .macro script_cmd_table_entry constant:req value:req + .if ALLOCATE_SCRIPT_CMD_TABLE + .4byte \value + .else + enum \constant + .endif + .endm + .endif + + + enum_start + .if ALLOCATE_SCRIPT_CMD_TABLE .align 2 gScriptCmdTable:: - .4byte ScrCmd_nop @ 0x00 - .4byte ScrCmd_nop1 @ 0x01 - .4byte ScrCmd_end @ 0x02 - .4byte ScrCmd_return @ 0x03 - .4byte ScrCmd_call @ 0x04 - .4byte ScrCmd_goto @ 0x05 - .4byte ScrCmd_goto_if @ 0x06 - .4byte ScrCmd_call_if @ 0x07 - .4byte ScrCmd_gotostd @ 0x08 - .4byte ScrCmd_callstd @ 0x09 - .4byte ScrCmd_gotostd_if @ 0x0a - .4byte ScrCmd_callstd_if @ 0x0b - .4byte ScrCmd_returnram @ 0x0c - .4byte ScrCmd_endram @ 0x0d - .4byte ScrCmd_setmysteryeventstatus @ 0x0e - .4byte ScrCmd_loadword @ 0x0f - .4byte ScrCmd_loadbyte @ 0x10 - .4byte ScrCmd_setptr @ 0x11 - .4byte ScrCmd_loadbytefromptr @ 0x12 - .4byte ScrCmd_setptrbyte @ 0x13 - .4byte ScrCmd_copylocal @ 0x14 - .4byte ScrCmd_copybyte @ 0x15 - .4byte ScrCmd_setvar @ 0x16 - .4byte ScrCmd_addvar @ 0x17 - .4byte ScrCmd_subvar @ 0x18 - .4byte ScrCmd_copyvar @ 0x19 - .4byte ScrCmd_setorcopyvar @ 0x1a - .4byte ScrCmd_compare_local_to_local @ 0x1b - .4byte ScrCmd_compare_local_to_value @ 0x1c - .4byte ScrCmd_compare_local_to_ptr @ 0x1d - .4byte ScrCmd_compare_ptr_to_local @ 0x1e - .4byte ScrCmd_compare_ptr_to_value @ 0x1f - .4byte ScrCmd_compare_ptr_to_ptr @ 0x20 - .4byte ScrCmd_compare_var_to_value @ 0x21 - .4byte ScrCmd_compare_var_to_var @ 0x22 - .4byte ScrCmd_callnative @ 0x23 - .4byte ScrCmd_gotonative @ 0x24 - .4byte ScrCmd_special @ 0x25 - .4byte ScrCmd_specialvar @ 0x26 - .4byte ScrCmd_waitstate @ 0x27 - .4byte ScrCmd_delay @ 0x28 - .4byte ScrCmd_setflag @ 0x29 - .4byte ScrCmd_clearflag @ 0x2a - .4byte ScrCmd_checkflag @ 0x2b - .4byte ScrCmd_initclock @ 0x2c - .4byte ScrCmd_dotimebasedevents @ 0x2d - .4byte ScrCmd_gettime @ 0x2e - .4byte ScrCmd_playse @ 0x2f - .4byte ScrCmd_waitse @ 0x30 - .4byte ScrCmd_playfanfare @ 0x31 - .4byte ScrCmd_waitfanfare @ 0x32 - .4byte ScrCmd_playbgm @ 0x33 - .4byte ScrCmd_savebgm @ 0x34 - .4byte ScrCmd_fadedefaultbgm @ 0x35 - .4byte ScrCmd_fadenewbgm @ 0x36 - .4byte ScrCmd_fadeoutbgm @ 0x37 - .4byte ScrCmd_fadeinbgm @ 0x38 - .4byte ScrCmd_warp @ 0x39 - .4byte ScrCmd_warpsilent @ 0x3a - .4byte ScrCmd_warpdoor @ 0x3b - .4byte ScrCmd_warphole @ 0x3c - .4byte ScrCmd_warpteleport @ 0x3d - .4byte ScrCmd_setwarp @ 0x3e - .4byte ScrCmd_setdynamicwarp @ 0x3f - .4byte ScrCmd_setdivewarp @ 0x40 - .4byte ScrCmd_setholewarp @ 0x41 - .4byte ScrCmd_getplayerxy @ 0x42 - .4byte ScrCmd_getpartysize @ 0x43 - .4byte ScrCmd_additem @ 0x44 - .4byte ScrCmd_removeitem @ 0x45 - .4byte ScrCmd_checkitemspace @ 0x46 - .4byte ScrCmd_checkitem @ 0x47 - .4byte ScrCmd_checkitemtype @ 0x48 - .4byte ScrCmd_addpcitem @ 0x49 - .4byte ScrCmd_checkpcitem @ 0x4a - .4byte ScrCmd_adddecoration @ 0x4b - .4byte ScrCmd_removedecoration @ 0x4c - .4byte ScrCmd_checkdecor @ 0x4d - .4byte ScrCmd_checkdecorspace @ 0x4e - .4byte ScrCmd_applymovement @ 0x4f - .4byte ScrCmd_applymovementat @ 0x50 - .4byte ScrCmd_waitmovement @ 0x51 - .4byte ScrCmd_waitmovementat @ 0x52 - .4byte ScrCmd_removeobject @ 0x53 - .4byte ScrCmd_removeobjectat @ 0x54 - .4byte ScrCmd_addobject @ 0x55 - .4byte ScrCmd_addobjectat @ 0x56 - .4byte ScrCmd_setobjectxy @ 0x57 - .4byte ScrCmd_showobjectat @ 0x58 - .4byte ScrCmd_hideobjectat @ 0x59 - .4byte ScrCmd_faceplayer @ 0x5a - .4byte ScrCmd_turnobject @ 0x5b - .4byte ScrCmd_trainerbattle @ 0x5c - .4byte ScrCmd_dotrainerbattle @ 0x5d - .4byte ScrCmd_gotopostbattlescript @ 0x5e - .4byte ScrCmd_gotobeatenscript @ 0x5f - .4byte ScrCmd_checktrainerflag @ 0x60 - .4byte ScrCmd_settrainerflag @ 0x61 - .4byte ScrCmd_cleartrainerflag @ 0x62 - .4byte ScrCmd_setobjectxyperm @ 0x63 - .4byte ScrCmd_copyobjectxytoperm @ 0x64 - .4byte ScrCmd_setobjectmovementtype @ 0x65 - .4byte ScrCmd_waitmessage @ 0x66 - .4byte ScrCmd_message @ 0x67 - .4byte ScrCmd_closemessage @ 0x68 - .4byte ScrCmd_lockall @ 0x69 - .4byte ScrCmd_lock @ 0x6a - .4byte ScrCmd_releaseall @ 0x6b - .4byte ScrCmd_release @ 0x6c - .4byte ScrCmd_waitbuttonpress @ 0x6d - .4byte ScrCmd_yesnobox @ 0x6e - .4byte ScrCmd_multichoice @ 0x6f - .4byte ScrCmd_multichoicedefault @ 0x70 - .4byte ScrCmd_multichoicegrid @ 0x71 - .4byte ScrCmd_drawbox @ 0x72 - .4byte ScrCmd_erasebox @ 0x73 - .4byte ScrCmd_drawboxtext @ 0x74 - .4byte ScrCmd_showmonpic @ 0x75 - .4byte ScrCmd_hidemonpic @ 0x76 - .4byte ScrCmd_showcontestpainting @ 0x77 - .4byte ScrCmd_braillemessage @ 0x78 - .4byte ScrCmd_givemon @ 0x79 - .4byte ScrCmd_giveegg @ 0x7a - .4byte ScrCmd_setmonmove @ 0x7b - .4byte ScrCmd_checkpartymove @ 0x7c - .4byte ScrCmd_bufferspeciesname @ 0x7d - .4byte ScrCmd_bufferleadmonspeciesname @ 0x7e - .4byte ScrCmd_bufferpartymonnick @ 0x7f - .4byte ScrCmd_bufferitemname @ 0x80 - .4byte ScrCmd_bufferdecorationname @ 0x81 - .4byte ScrCmd_buffermovename @ 0x82 - .4byte ScrCmd_buffernumberstring @ 0x83 - .4byte ScrCmd_bufferstdstring @ 0x84 - .4byte ScrCmd_bufferstring @ 0x85 - .4byte ScrCmd_pokemart @ 0x86 - .4byte ScrCmd_pokemartdecoration @ 0x87 - .4byte ScrCmd_pokemartdecoration2 @ 0x88 - .4byte ScrCmd_playslotmachine @ 0x89 - .4byte ScrCmd_setberrytree @ 0x8a - .4byte ScrCmd_choosecontestmon @ 0x8b - .4byte ScrCmd_startcontest @ 0x8c - .4byte ScrCmd_showcontestresults @ 0x8d - .4byte ScrCmd_contestlinktransfer @ 0x8e - .4byte ScrCmd_random @ 0x8f - .4byte ScrCmd_addmoney @ 0x90 - .4byte ScrCmd_removemoney @ 0x91 - .4byte ScrCmd_checkmoney @ 0x92 - .4byte ScrCmd_showmoneybox @ 0x93 - .4byte ScrCmd_hidemoneybox @ 0x94 - .4byte ScrCmd_updatemoneybox @ 0x95 - .4byte ScrCmd_getpokenewsactive @ 0x96 - .4byte ScrCmd_fadescreen @ 0x97 - .4byte ScrCmd_fadescreenspeed @ 0x98 - .4byte ScrCmd_setflashlevel @ 0x99 - .4byte ScrCmd_animateflash @ 0x9a - .4byte ScrCmd_messageautoscroll @ 0x9b - .4byte ScrCmd_dofieldeffect @ 0x9c - .4byte ScrCmd_setfieldeffectargument @ 0x9d - .4byte ScrCmd_waitfieldeffect @ 0x9e - .4byte ScrCmd_setrespawn @ 0x9f - .4byte ScrCmd_checkplayergender @ 0xa0 - .4byte ScrCmd_playmoncry @ 0xa1 - .4byte ScrCmd_setmetatile @ 0xa2 - .4byte ScrCmd_resetweather @ 0xa3 - .4byte ScrCmd_setweather @ 0xa4 - .4byte ScrCmd_doweather @ 0xa5 - .4byte ScrCmd_setstepcallback @ 0xa6 - .4byte ScrCmd_setmaplayoutindex @ 0xa7 - .4byte ScrCmd_setobjectsubpriority @ 0xa8 - .4byte ScrCmd_resetobjectsubpriority @ 0xa9 - .4byte ScrCmd_createvobject @ 0xaa - .4byte ScrCmd_turnvobject @ 0xab - .4byte ScrCmd_opendoor @ 0xac - .4byte ScrCmd_closedoor @ 0xad - .4byte ScrCmd_waitdooranim @ 0xae - .4byte ScrCmd_setdooropen @ 0xaf - .4byte ScrCmd_setdoorclosed @ 0xb0 - .4byte ScrCmd_addelevmenuitem @ 0xb1 - .4byte ScrCmd_showelevmenu @ 0xb2 - .4byte ScrCmd_checkcoins @ 0xb3 - .4byte ScrCmd_addcoins @ 0xb4 - .4byte ScrCmd_removecoins @ 0xb5 - .4byte ScrCmd_setwildbattle @ 0xb6 - .4byte ScrCmd_dowildbattle @ 0xb7 - .4byte ScrCmd_setvaddress @ 0xb8 - .4byte ScrCmd_vgoto @ 0xb9 - .4byte ScrCmd_vcall @ 0xba - .4byte ScrCmd_vgoto_if @ 0xbb - .4byte ScrCmd_vcall_if @ 0xbc - .4byte ScrCmd_vmessage @ 0xbd - .4byte ScrCmd_vbuffermessage @ 0xbe - .4byte ScrCmd_vbufferstring @ 0xbf - .4byte ScrCmd_showcoinsbox @ 0xc0 - .4byte ScrCmd_hidecoinsbox @ 0xc1 - .4byte ScrCmd_updatecoinsbox @ 0xc2 - .4byte ScrCmd_incrementgamestat @ 0xc3 - .4byte ScrCmd_setescapewarp @ 0xc4 - .4byte ScrCmd_waitmoncry @ 0xc5 - .4byte ScrCmd_bufferboxname @ 0xc6 - .4byte ScrCmd_nop1 @ 0xc7 - .4byte ScrCmd_nop1 @ 0xc8 - .4byte ScrCmd_nop1 @ 0xc9 - .4byte ScrCmd_nop1 @ 0xca - .4byte ScrCmd_nop1 @ 0xcb - .4byte ScrCmd_nop1 @ 0xcc - .4byte ScrCmd_setmodernfatefulencounter @ 0xcd - .4byte ScrCmd_checkmodernfatefulencounter @ 0xce - .4byte ScrCmd_trywondercardscript @ 0xcf - .4byte ScrCmd_nop1 @ 0xd0 - .4byte ScrCmd_warpspinenter @ 0xd1 - .4byte ScrCmd_setmonmetlocation @ 0xd2 - .4byte ScrCmd_moverotatingtileobjects @ 0xd3 - .4byte ScrCmd_turnrotatingtileobjects @ 0xd4 - .4byte ScrCmd_initrotatingtilepuzzle @ 0xd5 - .4byte ScrCmd_freerotatingtilepuzzle @ 0xd6 - .4byte ScrCmd_warpmossdeepgym @ 0xd7 - .4byte ScrCmd_selectapproachingtrainer @ 0xd8 - .4byte ScrCmd_lockfortrainer @ 0xd9 - .4byte ScrCmd_closebraillemessage @ 0xda - .4byte ScrCmd_messageinstant @ 0xdb - .4byte ScrCmd_fadescreenswapbuffers @ 0xdc - .4byte ScrCmd_buffertrainerclassname @ 0xdd - .4byte ScrCmd_buffertrainername @ 0xde - .4byte ScrCmd_pokenavcall @ 0xdf - .4byte ScrCmd_warpwhitefade @ 0xe0 - .4byte ScrCmd_buffercontestname @ 0xe1 - .4byte ScrCmd_bufferitemnameplural @ 0xe2 + .endif + script_cmd_table_entry SCR_OP_NOP ScrCmd_nop @ 0x00 + script_cmd_table_entry SCR_OP_NOP1 ScrCmd_nop1 @ 0x01 + script_cmd_table_entry SCR_OP_END ScrCmd_end @ 0x02 + script_cmd_table_entry SCR_OP_RETURN ScrCmd_return @ 0x03 + script_cmd_table_entry SCR_OP_CALL ScrCmd_call @ 0x04 + script_cmd_table_entry SCR_OP_GOTO ScrCmd_goto @ 0x05 + script_cmd_table_entry SCR_OP_GOTO_IF ScrCmd_goto_if @ 0x06 + script_cmd_table_entry SCR_OP_CALL_IF ScrCmd_call_if @ 0x07 + script_cmd_table_entry SCR_OP_GOTO_STD ScrCmd_gotostd @ 0x08 + script_cmd_table_entry SCR_OP_CALL_STD ScrCmd_callstd @ 0x09 + script_cmd_table_entry SCR_OP_GOTO_STD_IF ScrCmd_gotostd_if @ 0x0a + script_cmd_table_entry SCR_OP_CALL_STD_IF ScrCmd_callstd_if @ 0x0b + script_cmd_table_entry SCR_OP_RETURNRAM ScrCmd_returnram @ 0x0c + script_cmd_table_entry SCR_OP_ENDRAM ScrCmd_endram @ 0x0d + script_cmd_table_entry SCR_OP_SETMYSTERYEVENTSTATUS ScrCmd_setmysteryeventstatus @ 0x0e + script_cmd_table_entry SCR_OP_LOAD_WORD ScrCmd_loadword @ 0x0f + script_cmd_table_entry SCR_OP_LOAD_BYTE ScrCmd_loadbyte @ 0x10 + script_cmd_table_entry SCR_OP_SETPTR ScrCmd_setptr @ 0x11 + script_cmd_table_entry SCR_OP_LOADBYTEFROMPTR ScrCmd_loadbytefromptr @ 0x12 + script_cmd_table_entry SCR_OP_SETPTRBYTE ScrCmd_setptrbyte @ 0x13 + script_cmd_table_entry SCR_OP_COPYLOCAL ScrCmd_copylocal @ 0x14 + script_cmd_table_entry SCR_OP_COPYBYTE ScrCmd_copybyte @ 0x15 + script_cmd_table_entry SCR_OP_SETVAR ScrCmd_setvar @ 0x16 + script_cmd_table_entry SCR_OP_ADDVAR ScrCmd_addvar @ 0x17 + script_cmd_table_entry SCR_OP_SUBVAR ScrCmd_subvar @ 0x18 + script_cmd_table_entry SCR_OP_COPYVAR ScrCmd_copyvar @ 0x19 + script_cmd_table_entry SCR_OP_SETORCOPYVAR ScrCmd_setorcopyvar @ 0x1a + script_cmd_table_entry SCR_OP_COMPARE_LOCAL_TO_LOCAL ScrCmd_compare_local_to_local @ 0x1b + script_cmd_table_entry SCR_OP_COMPARE_LOCAL_TO_VALUE ScrCmd_compare_local_to_value @ 0x1c + script_cmd_table_entry SCR_OP_COMPARE_LOCAL_TO_PTR ScrCmd_compare_local_to_ptr @ 0x1d + script_cmd_table_entry SCR_OP_COMPARE_PTR_TO_LOCAL ScrCmd_compare_ptr_to_local @ 0x1e + script_cmd_table_entry SCR_OP_COMPARE_PTR_TO_VALUE ScrCmd_compare_ptr_to_value @ 0x1f + script_cmd_table_entry SCR_OP_COMPARE_PTR_TO_PTR ScrCmd_compare_ptr_to_ptr @ 0x20 + script_cmd_table_entry SCR_OP_COMPARE_VAR_TO_VALUE ScrCmd_compare_var_to_value @ 0x21 + script_cmd_table_entry SCR_OP_COMPARE_VAR_TO_VAR ScrCmd_compare_var_to_var @ 0x22 + script_cmd_table_entry SCR_OP_CALLNATIVE ScrCmd_callnative @ 0x23 + script_cmd_table_entry SCR_OP_GOTONATIVE ScrCmd_gotonative @ 0x24 + script_cmd_table_entry SCR_OP_SPECIAL ScrCmd_special @ 0x25 + script_cmd_table_entry SCR_OP_SPECIALVAR ScrCmd_specialvar @ 0x26 + script_cmd_table_entry SCR_OP_WAITSTATE ScrCmd_waitstate @ 0x27 + script_cmd_table_entry SCR_OP_DELAY ScrCmd_delay @ 0x28 + script_cmd_table_entry SCR_OP_SETFLAG ScrCmd_setflag @ 0x29 + script_cmd_table_entry SCR_OP_CLEARFLAG ScrCmd_clearflag @ 0x2a + script_cmd_table_entry SCR_OP_CHECKFLAG ScrCmd_checkflag @ 0x2b + script_cmd_table_entry SCR_OP_INITCLOCK ScrCmd_initclock @ 0x2c + script_cmd_table_entry SCR_OP_DOTIMEBASEDEVENTS ScrCmd_dotimebasedevents @ 0x2d + script_cmd_table_entry SCR_OP_GETTIME ScrCmd_gettime @ 0x2e + script_cmd_table_entry SCR_OP_PLAYSE ScrCmd_playse @ 0x2f + script_cmd_table_entry SCR_OP_WAITSE ScrCmd_waitse @ 0x30 + script_cmd_table_entry SCR_OP_PLAYFANFARE ScrCmd_playfanfare @ 0x31 + script_cmd_table_entry SCR_OP_WAITFANFARE ScrCmd_waitfanfare @ 0x32 + script_cmd_table_entry SCR_OP_PLAYBGM ScrCmd_playbgm @ 0x33 + script_cmd_table_entry SCR_OP_SAVEBGM ScrCmd_savebgm @ 0x34 + script_cmd_table_entry SCR_OP_FADEDEFAULTBGM ScrCmd_fadedefaultbgm @ 0x35 + script_cmd_table_entry SCR_OP_FADENEWBGM ScrCmd_fadenewbgm @ 0x36 + script_cmd_table_entry SCR_OP_FADEOUTBGM ScrCmd_fadeoutbgm @ 0x37 + script_cmd_table_entry SCR_OP_FADEINBGM ScrCmd_fadeinbgm @ 0x38 + script_cmd_table_entry SCR_OP_WARP ScrCmd_warp @ 0x39 + script_cmd_table_entry SCR_OP_WARPSILENT ScrCmd_warpsilent @ 0x3a + script_cmd_table_entry SCR_OP_WARPDOOR ScrCmd_warpdoor @ 0x3b + script_cmd_table_entry SCR_OP_WARPHOLE ScrCmd_warphole @ 0x3c + script_cmd_table_entry SCR_OP_WARPTELEPORT ScrCmd_warpteleport @ 0x3d + script_cmd_table_entry SCR_OP_SETWARP ScrCmd_setwarp @ 0x3e + script_cmd_table_entry SCR_OP_SETDYNAMICWARP ScrCmd_setdynamicwarp @ 0x3f + script_cmd_table_entry SCR_OP_SETDIVEWARP ScrCmd_setdivewarp @ 0x40 + script_cmd_table_entry SCR_OP_SETHOLEWARP ScrCmd_setholewarp @ 0x41 + script_cmd_table_entry SCR_OP_GETPLAYERXY ScrCmd_getplayerxy @ 0x42 + script_cmd_table_entry SCR_OP_GETPARTYSIZE ScrCmd_getpartysize @ 0x43 + script_cmd_table_entry SCR_OP_ADDITEM ScrCmd_additem @ 0x44 + script_cmd_table_entry SCR_OP_REMOVEITEM ScrCmd_removeitem @ 0x45 + script_cmd_table_entry SCR_OP_CHECKITEMSPACE ScrCmd_checkitemspace @ 0x46 + script_cmd_table_entry SCR_OP_CHECKITEM ScrCmd_checkitem @ 0x47 + script_cmd_table_entry SCR_OP_CHECKITEMTYPE ScrCmd_checkitemtype @ 0x48 + script_cmd_table_entry SCR_OP_ADDPCITEM ScrCmd_addpcitem @ 0x49 + script_cmd_table_entry SCR_OP_CHECKPCITEM ScrCmd_checkpcitem @ 0x4a + script_cmd_table_entry SCR_OP_ADDDECORATION ScrCmd_adddecoration @ 0x4b + script_cmd_table_entry SCR_OP_REMOVEDECORATION ScrCmd_removedecoration @ 0x4c + script_cmd_table_entry SCR_OP_CHECKDECOR ScrCmd_checkdecor @ 0x4d + script_cmd_table_entry SCR_OP_CHECKDECORSPACE ScrCmd_checkdecorspace @ 0x4e + script_cmd_table_entry SCR_OP_APPLYMOVEMENT ScrCmd_applymovement @ 0x4f + script_cmd_table_entry SCR_OP_APPLYMOVEMENTAT ScrCmd_applymovementat @ 0x50 + script_cmd_table_entry SCR_OP_WAITMOVEMENT ScrCmd_waitmovement @ 0x51 + script_cmd_table_entry SCR_OP_WAITMOVEMENTAT ScrCmd_waitmovementat @ 0x52 + script_cmd_table_entry SCR_OP_REMOVEOBJECT ScrCmd_removeobject @ 0x53 + script_cmd_table_entry SCR_OP_REMOVEOBJECTAT ScrCmd_removeobjectat @ 0x54 + script_cmd_table_entry SCR_OP_ADDOBJECT ScrCmd_addobject @ 0x55 + script_cmd_table_entry SCR_OP_ADDOBJECTAT ScrCmd_addobjectat @ 0x56 + script_cmd_table_entry SCR_OP_SETOBJECTXY ScrCmd_setobjectxy @ 0x57 + script_cmd_table_entry SCR_OP_SHOWOBJECTAT ScrCmd_showobjectat @ 0x58 + script_cmd_table_entry SCR_OP_HIDEOBJECTAT ScrCmd_hideobjectat @ 0x59 + script_cmd_table_entry SCR_OP_FACEPLAYER ScrCmd_faceplayer @ 0x5a + script_cmd_table_entry SCR_OP_TURNOBJECT ScrCmd_turnobject @ 0x5b + script_cmd_table_entry SCR_OP_TRAINERBATTLE ScrCmd_trainerbattle @ 0x5c + script_cmd_table_entry SCR_OP_DOTRAINERBATTLE ScrCmd_dotrainerbattle @ 0x5d + script_cmd_table_entry SCR_OP_GOTOPOSTBATTLESCRIPT ScrCmd_gotopostbattlescript @ 0x5e + script_cmd_table_entry SCR_OP_GOTOBEATENSCRIPT ScrCmd_gotobeatenscript @ 0x5f + script_cmd_table_entry SCR_OP_CHECKTRAINERFLAG ScrCmd_checktrainerflag @ 0x60 + script_cmd_table_entry SCR_OP_SETTRAINERFLAG ScrCmd_settrainerflag @ 0x61 + script_cmd_table_entry SCR_OP_CLEARTRAINERFLAG ScrCmd_cleartrainerflag @ 0x62 + script_cmd_table_entry SCR_OP_SETOBJECTXYPERM ScrCmd_setobjectxyperm @ 0x63 + script_cmd_table_entry SCR_OP_COPYOBJECTXYTOPERM ScrCmd_copyobjectxytoperm @ 0x64 + script_cmd_table_entry SCR_OP_SETOBJECTMOVEMENTTYPE ScrCmd_setobjectmovementtype @ 0x65 + script_cmd_table_entry SCR_OP_WAITMESSAGE ScrCmd_waitmessage @ 0x66 + script_cmd_table_entry SCR_OP_MESSAGE ScrCmd_message @ 0x67 + script_cmd_table_entry SCR_OP_CLOSEMESSAGE ScrCmd_closemessage @ 0x68 + script_cmd_table_entry SCR_OP_LOCKALL ScrCmd_lockall @ 0x69 + script_cmd_table_entry SCR_OP_LOCK ScrCmd_lock @ 0x6a + script_cmd_table_entry SCR_OP_RELEASEALL ScrCmd_releaseall @ 0x6b + script_cmd_table_entry SCR_OP_RELEASE ScrCmd_release @ 0x6c + script_cmd_table_entry SCR_OP_WAITBUTTONPRESS ScrCmd_waitbuttonpress @ 0x6d + script_cmd_table_entry SCR_OP_YESNOBOX ScrCmd_yesnobox @ 0x6e + script_cmd_table_entry SCR_OP_MULTICHOICE ScrCmd_multichoice @ 0x6f + script_cmd_table_entry SCR_OP_MULTICHOICEDEFAULT ScrCmd_multichoicedefault @ 0x70 + script_cmd_table_entry SCR_OP_MULTICHOICEGRID ScrCmd_multichoicegrid @ 0x71 + script_cmd_table_entry SCR_OP_DRAWBOX ScrCmd_drawbox @ 0x72 + script_cmd_table_entry SCR_OP_ERASEBOX ScrCmd_erasebox @ 0x73 + script_cmd_table_entry SCR_OP_DRAWBOXTEXT ScrCmd_drawboxtext @ 0x74 + script_cmd_table_entry SCR_OP_SHOWMONPIC ScrCmd_showmonpic @ 0x75 + script_cmd_table_entry SCR_OP_HIDEMONPIC ScrCmd_hidemonpic @ 0x76 + script_cmd_table_entry SCR_OP_SHOWCONTESTPAINTING ScrCmd_showcontestpainting @ 0x77 + script_cmd_table_entry SCR_OP_BRAILLEMESSAGE ScrCmd_braillemessage @ 0x78 + script_cmd_table_entry SCR_OP_GIVEMON ScrCmd_givemon @ 0x79 + script_cmd_table_entry SCR_OP_GIVEEGG ScrCmd_giveegg @ 0x7a + script_cmd_table_entry SCR_OP_SETMONMOVE ScrCmd_setmonmove @ 0x7b + script_cmd_table_entry SCR_OP_CHECKPARTYMOVE ScrCmd_checkpartymove @ 0x7c + script_cmd_table_entry SCR_OP_BUFFERSPECIESNAME ScrCmd_bufferspeciesname @ 0x7d + script_cmd_table_entry SCR_OP_BUFFERLEADMONSPECIESNAME ScrCmd_bufferleadmonspeciesname @ 0x7e + script_cmd_table_entry SCR_OP_BUFFERPARTYMONNICK ScrCmd_bufferpartymonnick @ 0x7f + script_cmd_table_entry SCR_OP_BUFFERITEMNAME ScrCmd_bufferitemname @ 0x80 + script_cmd_table_entry SCR_OP_BUFFERDECORATIONNAME ScrCmd_bufferdecorationname @ 0x81 + script_cmd_table_entry SCR_OP_BUFFERMOVENAME ScrCmd_buffermovename @ 0x82 + script_cmd_table_entry SCR_OP_BUFFERNUMBERSTRING ScrCmd_buffernumberstring @ 0x83 + script_cmd_table_entry SCR_OP_BUFFERSTDSTRING ScrCmd_bufferstdstring @ 0x84 + script_cmd_table_entry SCR_OP_BUFFERSTRING ScrCmd_bufferstring @ 0x85 + script_cmd_table_entry SCR_OP_POKEMART ScrCmd_pokemart @ 0x86 + script_cmd_table_entry SCR_OP_POKEMARTDECORATION ScrCmd_pokemartdecoration @ 0x87 + script_cmd_table_entry SCR_OP_POKEMARTDECORATION2 ScrCmd_pokemartdecoration2 @ 0x88 + script_cmd_table_entry SCR_OP_PLAYSLOTMACHINE ScrCmd_playslotmachine @ 0x89 + script_cmd_table_entry SCR_OP_SETBERRYTREE ScrCmd_setberrytree @ 0x8a + script_cmd_table_entry SCR_OP_CHOOSECONTESTMON ScrCmd_choosecontestmon @ 0x8b + script_cmd_table_entry SCR_OP_STARTCONTEST ScrCmd_startcontest @ 0x8c + script_cmd_table_entry SCR_OP_SHOWCONTESTRESULTS ScrCmd_showcontestresults @ 0x8d + script_cmd_table_entry SCR_OP_CONTESTLINKTRANSFER ScrCmd_contestlinktransfer @ 0x8e + script_cmd_table_entry SCR_OP_RANDOM ScrCmd_random @ 0x8f + script_cmd_table_entry SCR_OP_ADDMONEY ScrCmd_addmoney @ 0x90 + script_cmd_table_entry SCR_OP_REMOVEMONEY ScrCmd_removemoney @ 0x91 + script_cmd_table_entry SCR_OP_CHECKMONEY ScrCmd_checkmoney @ 0x92 + script_cmd_table_entry SCR_OP_SHOWMONEYBOX ScrCmd_showmoneybox @ 0x93 + script_cmd_table_entry SCR_OP_HIDEMONEYBOX ScrCmd_hidemoneybox @ 0x94 + script_cmd_table_entry SCR_OP_UPDATEMONEYBOX ScrCmd_updatemoneybox @ 0x95 + script_cmd_table_entry SCR_OP_GETPOKENEWSACTIVE ScrCmd_getpokenewsactive @ 0x96 + script_cmd_table_entry SCR_OP_FADESCREEN ScrCmd_fadescreen @ 0x97 + script_cmd_table_entry SCR_OP_FADESCREENSPEED ScrCmd_fadescreenspeed @ 0x98 + script_cmd_table_entry SCR_OP_SETFLASHLEVEL ScrCmd_setflashlevel @ 0x99 + script_cmd_table_entry SCR_OP_ANIMATEFLASH ScrCmd_animateflash @ 0x9a + script_cmd_table_entry SCR_OP_MESSAGEAUTOSCROLL ScrCmd_messageautoscroll @ 0x9b + script_cmd_table_entry SCR_OP_DOFIELDEFFECT ScrCmd_dofieldeffect @ 0x9c + script_cmd_table_entry SCR_OP_SETFIELDEFFECTARGUMENT ScrCmd_setfieldeffectargument @ 0x9d + script_cmd_table_entry SCR_OP_WAITFIELDEFFECT ScrCmd_waitfieldeffect @ 0x9e + script_cmd_table_entry SCR_OP_SETRESPAWN ScrCmd_setrespawn @ 0x9f + script_cmd_table_entry SCR_OP_CHECKPLAYERGENDER ScrCmd_checkplayergender @ 0xa0 + script_cmd_table_entry SCR_OP_PLAYMONCRY ScrCmd_playmoncry @ 0xa1 + script_cmd_table_entry SCR_OP_SETMETATILE ScrCmd_setmetatile @ 0xa2 + script_cmd_table_entry SCR_OP_RESETWEATHER ScrCmd_resetweather @ 0xa3 + script_cmd_table_entry SCR_OP_SETWEATHER ScrCmd_setweather @ 0xa4 + script_cmd_table_entry SCR_OP_DOWEATHER ScrCmd_doweather @ 0xa5 + script_cmd_table_entry SCR_OP_SETSTEPCALLBACK ScrCmd_setstepcallback @ 0xa6 + script_cmd_table_entry SCR_OP_SETMAPLAYOUTINDEX ScrCmd_setmaplayoutindex @ 0xa7 + script_cmd_table_entry SCR_OP_SETOBJECTSUBPRIORITY ScrCmd_setobjectsubpriority @ 0xa8 + script_cmd_table_entry SCR_OP_RESETOBJECTSUBPRIORITY ScrCmd_resetobjectsubpriority @ 0xa9 + script_cmd_table_entry SCR_OP_CREATEVOBJECT ScrCmd_createvobject @ 0xaa + script_cmd_table_entry SCR_OP_TURNVOBJECT ScrCmd_turnvobject @ 0xab + script_cmd_table_entry SCR_OP_OPENDOOR ScrCmd_opendoor @ 0xac + script_cmd_table_entry SCR_OP_CLOSEDOOR ScrCmd_closedoor @ 0xad + script_cmd_table_entry SCR_OP_WAITDOORANIM ScrCmd_waitdooranim @ 0xae + script_cmd_table_entry SCR_OP_SETDOOROPEN ScrCmd_setdooropen @ 0xaf + script_cmd_table_entry SCR_OP_SETDOORCLOSED ScrCmd_setdoorclosed @ 0xb0 + script_cmd_table_entry SCR_OP_ADDELEVMENUITEM ScrCmd_addelevmenuitem @ 0xb1 + script_cmd_table_entry SCR_OP_SHOWELEVMENU ScrCmd_showelevmenu @ 0xb2 + script_cmd_table_entry SCR_OP_CHECKCOINS ScrCmd_checkcoins @ 0xb3 + script_cmd_table_entry SCR_OP_ADDCOINS ScrCmd_addcoins @ 0xb4 + script_cmd_table_entry SCR_OP_REMOVECOINS ScrCmd_removecoins @ 0xb5 + script_cmd_table_entry SCR_OP_SETWILDBATTLE ScrCmd_setwildbattle @ 0xb6 + script_cmd_table_entry SCR_OP_DOWILDBATTLE ScrCmd_dowildbattle @ 0xb7 + script_cmd_table_entry SCR_OP_SETVADDRESS ScrCmd_setvaddress @ 0xb8 + script_cmd_table_entry SCR_OP_VGOTO ScrCmd_vgoto @ 0xb9 + script_cmd_table_entry SCR_OP_VCALL ScrCmd_vcall @ 0xba + script_cmd_table_entry SCR_OP_VGOTO_IF ScrCmd_vgoto_if @ 0xbb + script_cmd_table_entry SCR_OP_VCALL_IF ScrCmd_vcall_if @ 0xbc + script_cmd_table_entry SCR_OP_VMESSAGE ScrCmd_vmessage @ 0xbd + script_cmd_table_entry SCR_OP_VBUFFERMESSAGE ScrCmd_vbuffermessage @ 0xbe + script_cmd_table_entry SCR_OP_VBUFFERSTRING ScrCmd_vbufferstring @ 0xbf + script_cmd_table_entry SCR_OP_SHOWCOINSBOX ScrCmd_showcoinsbox @ 0xc0 + script_cmd_table_entry SCR_OP_HIDECOINSBOX ScrCmd_hidecoinsbox @ 0xc1 + script_cmd_table_entry SCR_OP_UPDATECOINSBOX ScrCmd_updatecoinsbox @ 0xc2 + script_cmd_table_entry SCR_OP_INCREMENTGAMESTAT ScrCmd_incrementgamestat @ 0xc3 + script_cmd_table_entry SCR_OP_SETESCAPEWARP ScrCmd_setescapewarp @ 0xc4 + script_cmd_table_entry SCR_OP_WAITMONCRY ScrCmd_waitmoncry @ 0xc5 + script_cmd_table_entry SCR_OP_BUFFERBOXNAME ScrCmd_bufferboxname @ 0xc6 + script_cmd_table_entry SCR_OP_TEXTCOLOR ScrCmd_nop1 @ 0xc7 + script_cmd_table_entry SCR_OP_LOADHELP ScrCmd_nop1 @ 0xc8 + script_cmd_table_entry SCR_OP_UNLOADHELP ScrCmd_nop1 @ 0xc9 + script_cmd_table_entry SCR_OP_SIGNMSG ScrCmd_nop1 @ 0xca + script_cmd_table_entry SCR_OP_NORMALMSG ScrCmd_nop1 @ 0xcb + script_cmd_table_entry SCR_OP_COMPAREHIDDENVAR ScrCmd_nop1 @ 0xcc + script_cmd_table_entry SCR_OP_SETMODERNFATEFULENCOUNTER ScrCmd_setmodernfatefulencounter @ 0xcd + script_cmd_table_entry SCR_OP_CHECKMODERNFATEFULENCOUNTER ScrCmd_checkmodernfatefulencounter @ 0xce + script_cmd_table_entry SCR_OP_TRYWONDERCARDSCRIPT ScrCmd_trywondercardscript @ 0xcf + script_cmd_table_entry SCR_OP_SETWORLDMAPFLAG ScrCmd_nop1 @ 0xd0 + script_cmd_table_entry SCR_OP_WARPSPINENTER ScrCmd_warpspinenter @ 0xd1 + script_cmd_table_entry SCR_OP_SETMONMETLOCATION ScrCmd_setmonmetlocation @ 0xd2 + script_cmd_table_entry SCR_OP_MOVEROTATINGTILEOBJECTS ScrCmd_moverotatingtileobjects @ 0xd3 + script_cmd_table_entry SCR_OP_TURNROTATINGTILEOBJECTS ScrCmd_turnrotatingtileobjects @ 0xd4 + script_cmd_table_entry SCR_OP_INITROTATINGTILEPUZZLE ScrCmd_initrotatingtilepuzzle @ 0xd5 + script_cmd_table_entry SCR_OP_FREEROTATINGTILEPUZZLE ScrCmd_freerotatingtilepuzzle @ 0xd6 + script_cmd_table_entry SCR_OP_WARPMOSSDEEPGYM ScrCmd_warpmossdeepgym @ 0xd7 + script_cmd_table_entry SCR_OP_SELECTAPPROACHINGTRAINER ScrCmd_selectapproachingtrainer @ 0xd8 + script_cmd_table_entry SCR_OP_LOCKFORTRAINER ScrCmd_lockfortrainer @ 0xd9 + script_cmd_table_entry SCR_OP_CLOSEBRAILLEMESSAGE ScrCmd_closebraillemessage @ 0xda + script_cmd_table_entry SCR_OP_MESSAGEINSTANT ScrCmd_messageinstant @ 0xdb + script_cmd_table_entry SCR_OP_FADESCREENSWAPBUFFERS ScrCmd_fadescreenswapbuffers @ 0xdc + script_cmd_table_entry SCR_OP_BUFFERTRAINERCLASSNAME ScrCmd_buffertrainerclassname @ 0xdd + script_cmd_table_entry SCR_OP_BUFFERTRAINERNAME ScrCmd_buffertrainername @ 0xde + script_cmd_table_entry SCR_OP_POKENAVCALL ScrCmd_pokenavcall @ 0xdf + script_cmd_table_entry SCR_OP_WARPWHITEFADE ScrCmd_warpwhitefade @ 0xe0 + script_cmd_table_entry SCR_OP_BUFFERCONTESTNAME ScrCmd_buffercontestname @ 0xe1 + script_cmd_table_entry SCR_OP_BUFFERITEMNAMEPLURAL ScrCmd_bufferitemnameplural @ 0xe2 + .if ALLOCATE_SCRIPT_CMD_TABLE gScriptCmdTableEnd:: .4byte ScrCmd_nop + .endif From 2f67b17571692a3d136d0cd64004430d8bf0dcd1 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 17 Jan 2025 12:54:38 -0500 Subject: [PATCH 95/99] Document bard music (#2053) * Missing bard song limit constants * Index bard sound arrays with word constants * Document bard music --- data/scripts/mauville_man.inc | 4 +- include/bard_music.h | 54 +- include/constants/global.h | 2 +- include/constants/songs.h | 8 + include/global.h | 4 +- src/bard_music.c | 236 ++- src/data/bard_music/actions.h | 622 +++---- src/data/bard_music/adjectives.h | 304 ++-- src/data/bard_music/bard_sounds.h | 52 - src/data/bard_music/battle.h | 512 +++--- src/data/bard_music/conditions.h | 574 +++--- src/data/bard_music/default_sound.h | 13 - src/data/bard_music/endings.h | 538 +++--- src/data/bard_music/events.h | 238 +-- src/data/bard_music/feelings.h | 560 +++--- src/data/bard_music/greetings.h | 348 ++-- src/data/bard_music/hobbies.h | 450 ++--- src/data/bard_music/length_table.h | 21 - src/data/bard_music/lifestyle.h | 382 ++-- src/data/bard_music/misc.h | 336 ++-- src/data/bard_music/moves.h | 2388 ++++++++++++------------- src/data/bard_music/people.h | 606 +++---- src/data/bard_music/pokemon.h | 2516 +++++++++++++-------------- src/data/bard_music/speech.h | 480 ++--- src/data/bard_music/status.h | 930 +++++----- src/data/bard_music/time.h | 364 ++-- src/data/bard_music/trainer.h | 206 +-- src/data/bard_music/trendysaying.h | 274 +-- src/data/bard_music/voices.h | 524 +++--- src/data/bard_music/word_pitch.h | 55 - src/easy_chat.c | 6 +- src/mauville_old_man.c | 180 +- 32 files changed, 6946 insertions(+), 6841 deletions(-) delete mode 100644 src/data/bard_music/bard_sounds.h delete mode 100644 src/data/bard_music/default_sound.h delete mode 100644 src/data/bard_music/length_table.h delete mode 100644 src/data/bard_music/word_pitch.h diff --git a/data/scripts/mauville_man.inc b/data/scripts/mauville_man.inc index a336360436..7c16242ef9 100644 --- a/data/scripts/mauville_man.inc +++ b/data/scripts/mauville_man.inc @@ -18,7 +18,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_Bard:: end MauvilleCity_PokemonCenter_1F_EventScript_PlaySong:: - setvar VAR_0x8004, 0 + setvar VAR_0x8004, FALSE @ Play his current song special PlayBardSong delay 60 special HasBardSongBeenChanged @@ -45,7 +45,7 @@ MauvilleCity_PokemonCenter_1F_EventScript_WriteLyrics:: faceplayer goto_if_eq VAR_RESULT, 0, MauvilleCity_PokemonCenter_1F_EventScript_DeclineWritingLyrics msgbox MauvilleCity_PokemonCenter_1F_Text_LetMeSingItForYou, MSGBOX_DEFAULT - setvar VAR_0x8004, 1 + setvar VAR_0x8004, TRUE @ Play the new song special PlayBardSong delay 60 msgbox MauvilleCity_PokemonCenter_1F_Text_ThatHowYouWantedSongToGo, MSGBOX_YESNO diff --git a/include/bard_music.h b/include/bard_music.h index b1d051b8d7..6dcf966f67 100644 --- a/include/bard_music.h +++ b/include/bard_music.h @@ -1,41 +1,49 @@ #ifndef GUARD_BARD_MUSIC_H #define GUARD_BARD_MUSIC_H -#define BARD_SOUND_MAX_LENGTH 6 +// The maximum number of BardSoundTemplates/BardSounds there can be for each easy chat word. +#define MAX_BARD_SOUNDS_PER_WORD 6 -struct BardSound +// The number of pitch tables there are for each pitch table size (see sPitchTables). +#define NUM_BARD_PITCH_TABLES_PER_SIZE 5 + +// This struct describes which phoneme song to play for the sound, and whether to +// make any adjustments to its length or volume. Very few sounds make any adjustments. +struct BardSoundTemplate { - /*0x00*/ u8 songLengthId; - /*0x01*/ s8 songLengthOffset; - /*0x02*/ u16 unused; - /*0x04*/ s16 volume; - /*0x06*/ u16 unused2; + u8 songId; + s8 lengthAdjustment; + u16 unused; // Only set on EC_WORD_WAAAH, and never read. + s16 volume; }; -struct BardPhoneme +// This is the length and pitch to play the phoneme song at. +// These will be calculated in 'CalcWordSounds'. +struct BardSound { - /*0x00*/ u16 length; - /*0x02*/ u16 pitch; + u16 length; + u16 pitch; }; struct BardSong { - /*0x00*/ u8 currWord; - /*0x01*/ u8 currPhoneme; - /*0x02*/ u8 phonemeTimer; - /*0x03*/ u8 state; - /*0x04*/ s16 length; - /*0x06*/ u16 volume; - /*0x08*/ s16 pitch; - /*0x0A*/ s16 voiceInflection; - /*0x0C*/ u16 lyrics[BARD_SOUND_MAX_LENGTH]; - /*0x18*/ struct BardPhoneme phonemes[BARD_SOUND_MAX_LENGTH]; - /*0x30*/ const struct BardSound *sound; + u8 lyricsIndex; + u8 soundIndex; + u8 timer; + u8 state; + s16 length; // Length of the sound for the word currently being sung (i.e. the sum of 'length' in all the current word's phonemes). + u16 volume; + s16 pitch; + s16 voiceInflection; + u16 lyrics[NUM_BARD_SONG_WORDS]; + struct BardSound sounds[MAX_BARD_SOUNDS_PER_WORD]; + const struct BardSoundTemplate *soundTemplates; }; extern const u16 gNumBardWords_Species; extern const u16 gNumBardWords_Moves; -const struct BardSound *GetWordSounds(u16 word); -void GetWordPhonemes(struct BardSong *song, u16 word); + +const struct BardSoundTemplate *GetWordSoundTemplates(u16 easyChatWord); +void CalcWordSounds(struct BardSong *song, u16 pitchTableIndex); #endif //GUARD_BARD_MUSIC_H diff --git a/include/constants/global.h b/include/constants/global.h index b409e80eb1..2dff51e1e9 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -114,7 +114,7 @@ #define FEMALE 1 #define GENDER_COUNT 2 -#define BARD_SONG_LENGTH 6 +#define NUM_BARD_SONG_WORDS 6 #define NUM_STORYTELLER_TALES 4 #define NUM_TRADER_ITEMS 4 #define GIDDY_MAX_TALES 10 diff --git a/include/constants/songs.h b/include/constants/songs.h index ab6ddd62bc..9ebcc5d873 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -489,6 +489,8 @@ #define MUS_RG_SLOW_PALLET 557 // MUS_RG_SLOWMASARA #define MUS_RG_TEACHY_TV_MENU 558 // MUS_RG_TVNOIZE +// These PH_* constants are phoneme sounds used by the "bard" NPC (see src/bard_music.c and src/mauville_old_man.c). +// Each comes in a triplet of PH_*_BLEND, PH_*_HELD, and PH_*_SOLO, and the name of each triplet incorporates the English phonetic sound it represents. #define PH_TRAP_BLEND 559 #define PH_TRAP_HELD 560 #define PH_TRAP_SOLO 561 @@ -545,4 +547,10 @@ #define MUS_NONE 0xFFFF +#define FIRST_PHONEME_SONG PH_TRAP_BLEND +#define LAST_PHONEME_SONG PH_NURSE_SOLO +#define NUM_PHONEME_SONGS (LAST_PHONEME_SONG - FIRST_PHONEME_SONG + 1) +#define PHONEME_ID(song) ((song) - FIRST_PHONEME_SONG) +#define PHONEME_ID_NONE 0xFF + #endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/global.h b/include/global.h index 00d608e672..11fc53962e 100644 --- a/include/global.h +++ b/include/global.h @@ -649,8 +649,8 @@ struct MauvilleManBard { /*0x00*/ u8 id; /*0x01*/ //u8 padding1; - /*0x02*/ u16 songLyrics[BARD_SONG_LENGTH]; - /*0x0E*/ u16 temporaryLyrics[BARD_SONG_LENGTH]; + /*0x02*/ u16 songLyrics[NUM_BARD_SONG_WORDS]; + /*0x0E*/ u16 newSongLyrics[NUM_BARD_SONG_WORDS]; /*0x1A*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x22*/ u8 filler_2DB6[0x3]; /*0x25*/ u8 playerTrainerId[TRAINER_ID_LENGTH]; diff --git a/src/bard_music.c b/src/bard_music.c index 369a2767d1..3335e2428f 100644 --- a/src/bard_music.c +++ b/src/bard_music.c @@ -1,63 +1,247 @@ #include "global.h" #include "bard_music.h" #include "easy_chat.h" +#include "constants/songs.h" -#include "data/bard_music/bard_sounds.h" -#include "data/bard_music/word_pitch.h" -#include "data/bard_music/default_sound.h" -#include "data/bard_music/length_table.h" +// Indicates that the previous sound should be held. +#define PREV_BARD_SOUND { .songId = NUM_PHONEME_SONGS } -static s16 CalcWordPitch(int pitchIdx, int songPos) +// Invalid sound, indicates the end of the sounds for the word. +#define NULL_BARD_SOUND { .songId = PHONEME_ID_NONE } + +#include "data/bard_music/pokemon.h" +#include "data/bard_music/moves.h" +#include "data/bard_music/trainer.h" +#include "data/bard_music/status.h" +#include "data/bard_music/battle.h" +#include "data/bard_music/greetings.h" +#include "data/bard_music/people.h" +#include "data/bard_music/voices.h" +#include "data/bard_music/speech.h" +#include "data/bard_music/endings.h" +#include "data/bard_music/feelings.h" +#include "data/bard_music/conditions.h" +#include "data/bard_music/actions.h" +#include "data/bard_music/lifestyle.h" +#include "data/bard_music/hobbies.h" +#include "data/bard_music/time.h" +#include "data/bard_music/misc.h" +#include "data/bard_music/adjectives.h" +#include "data/bard_music/events.h" +#include "data/bard_music/trendysaying.h" + +static const struct BardSoundTemplate (*const sBardSoundTemplatesTable[EC_NUM_GROUPS])[MAX_BARD_SOUNDS_PER_WORD] = { + [EC_GROUP_POKEMON] = NULL, // Handled by sBardSoundTemplates_Pokemon + [EC_GROUP_TRAINER] = sBardSoundTemplates_Trainer, + [EC_GROUP_STATUS] = sBardSoundTemplates_Status, + [EC_GROUP_BATTLE] = sBardSoundTemplates_Battle, + [EC_GROUP_GREETINGS] = sBardSoundTemplates_Greetings, + [EC_GROUP_PEOPLE] = sBardSoundTemplates_People, + [EC_GROUP_VOICES] = sBardSoundTemplates_Voices, + [EC_GROUP_SPEECH] = sBardSoundTemplates_Speech, + [EC_GROUP_ENDINGS] = sBardSoundTemplates_Endings, + [EC_GROUP_FEELINGS] = sBardSoundTemplates_Feelings, + [EC_GROUP_CONDITIONS] = sBardSoundTemplates_Conditions, + [EC_GROUP_ACTIONS] = sBardSoundTemplates_Actions, + [EC_GROUP_LIFESTYLE] = sBardSoundTemplates_Lifestyle, + [EC_GROUP_HOBBIES] = sBardSoundTemplates_Hobbies, + [EC_GROUP_TIME] = sBardSoundTemplates_Time, + [EC_GROUP_MISC] = sBardSoundTemplates_Misc, + [EC_GROUP_ADJECTIVES] = sBardSoundTemplates_Adjectives, + [EC_GROUP_EVENTS] = sBardSoundTemplates_Events, + [EC_GROUP_MOVE_1] = NULL, // Handled by sBardSoundTemplates_Moves + [EC_GROUP_MOVE_2] = NULL, // Handled by sBardSoundTemplates_Moves + [EC_GROUP_TRENDY_SAYING] = sBardSoundTemplates_TrendySaying, + [EC_GROUP_POKEMON_NATIONAL] = NULL, // Handled by sBardSoundTemplates_Pokemon +}; + +// The pitch tables below will be indexed using the number of BardSoundTemplates per word, so a table is selected +// that has at least MAX_BARD_SOUNDS_PER_WORD pitch values. Curiously they select pitch tables whose size is +1 +// of the maximum number of sounds per word, so the final pitch value (before PITCH_END) isn't used. +// (i.e., 'NUM_BARD_PITCH_TABLES_PER_SIZE * (MAX_BARD_SOUNDS_PER_WORD-1)' would select a sufficiently large table). +#define BASE_PITCH_TABLE_INDEX (NUM_BARD_PITCH_TABLES_PER_SIZE * MAX_BARD_SOUNDS_PER_WORD) + +#define PITCH_END 0x1800 + +static const s16 sPitch1_0[] = { -0x300, PITCH_END }; +static const s16 sPitch1_1[] = { 0x0900, PITCH_END }; +static const s16 sPitch1_2[] = { 0x0100, PITCH_END }; +static const s16 sPitch1_3[] = { 0x0400, PITCH_END }; +static const s16 sPitch1_4[] = { 0x0b00, PITCH_END }; + +static const s16 sPitch2_0[] = { -0x300, -0x100, PITCH_END }; +static const s16 sPitch2_1[] = { -0x300, 0x0200, PITCH_END }; +static const s16 sPitch2_2[] = { 0x0200, 0x0400, PITCH_END }; +static const s16 sPitch2_3[] = { 0x0600, 0x0800, PITCH_END }; +static const s16 sPitch2_4[] = { 0x0900, 0x0800, PITCH_END }; + +static const s16 sPitch3_0[] = { -0x300, -0x100, -0x300, PITCH_END }; +static const s16 sPitch3_1[] = { 0x0400, -0x300, 0x0400, PITCH_END }; +static const s16 sPitch3_2[] = { 0x0900, 0x0800, 0x0600, PITCH_END }; +static const s16 sPitch3_3[] = { 0x0100, 0x0200, 0x0400, PITCH_END }; +static const s16 sPitch3_4[] = { 0x0600, 0x1000, 0x0d00, PITCH_END }; + +static const s16 sPitch4_0[] = { 0x0400, 0x0900, 0x0400, 0x0900, PITCH_END }; +static const s16 sPitch4_1[] = { 0x0900, 0x0400, 0x0d00, 0x0400, PITCH_END }; +static const s16 sPitch4_2[] = { 0x0100, 0x0200, 0x0400, 0x0600, PITCH_END }; +static const s16 sPitch4_3[] = { 0x0800, 0x0600, 0x0400, 0x0200, PITCH_END }; +static const s16 sPitch4_4[] = { 0x0f00, 0x0d00, 0x0b00, 0x0a00, PITCH_END }; + +static const s16 sPitch5_0[] = { -0x300, -0x100, 0x0100, 0x0200, 0x0400, PITCH_END }; +static const s16 sPitch5_1[] = { 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, PITCH_END }; +static const s16 sPitch5_2[] = { 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, PITCH_END }; +static const s16 sPitch5_3[] = { 0x0900, 0x0400, 0x0900, 0x0400, -0x300, PITCH_END }; +static const s16 sPitch5_4[] = { 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, PITCH_END }; + +static const s16 sPitch6_0[] = { -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x0600, PITCH_END }; +static const s16 sPitch6_1[] = { 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, -0x100, PITCH_END }; +static const s16 sPitch6_2[] = { 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, PITCH_END }; +static const s16 sPitch6_3[] = { 0x0400, -0x300, 0x0900, 0x0400, 0x0900, 0x0400, PITCH_END }; +static const s16 sPitch6_4[] = { 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, PITCH_END }; + +static const s16 sPitch7_0[] = { 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, PITCH_END }; +static const s16 sPitch7_1[] = { 0x0100, 0x0100, -0x100, -0x100, -0x300, 0x0400, -0x300, PITCH_END }; +static const s16 sPitch7_2[] = { 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, PITCH_END }; +static const s16 sPitch7_3[] = { 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, PITCH_END }; +static const s16 sPitch7_4[] = { 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, PITCH_END }; + +// In practice only sPitch7_# below are used below. +// BASE_PITCH_TABLE_INDEX is 30 by default, and this table is always indexed with (x + 30), where x is some value 0 - 4 +static const s16 *const sPitchTables[NUM_BARD_PITCH_TABLES_PER_SIZE * 7] = { + sPitch1_0, sPitch1_1, sPitch1_2, sPitch1_3, sPitch1_4, + sPitch2_0, sPitch2_1, sPitch2_2, sPitch2_3, sPitch2_4, + sPitch3_0, sPitch3_1, sPitch3_2, sPitch3_3, sPitch3_4, + sPitch4_0, sPitch4_1, sPitch4_2, sPitch4_3, sPitch4_4, + sPitch5_0, sPitch5_1, sPitch5_2, sPitch5_3, sPitch5_4, + sPitch6_0, sPitch6_1, sPitch6_2, sPitch6_3, sPitch6_4, + sPitch7_0, sPitch7_1, sPitch7_2, sPitch7_3, sPitch7_4 +}; + +// If this fails, CalcWordSounds will likely read out of bounds for sPitchTables. +STATIC_ASSERT(BASE_PITCH_TABLE_INDEX + (NUM_BARD_PITCH_TABLES_PER_SIZE-1) < ARRAY_COUNT(sPitchTables), NotEnoughPitchTablesForBardSounds) + +static const struct BardSoundTemplate sEmptyPhonemeTemplate[] = { + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND, + NULL_BARD_SOUND +}; + +static const int sPhonemeLengths[NUM_PHONEME_SONGS + 1] = { + [PHONEME_ID(PH_TRAP_BLEND)] = 9, + [PHONEME_ID(PH_TRAP_HELD)] = 22, + [PHONEME_ID(PH_TRAP_SOLO)] = 15, + [PHONEME_ID(PH_FACE_BLEND)] = 16, + [PHONEME_ID(PH_FACE_HELD)] = 39, + [PHONEME_ID(PH_FACE_SOLO)] = 21, + [PHONEME_ID(PH_CLOTH_BLEND)] = 9, + [PHONEME_ID(PH_CLOTH_HELD)] = 30, + [PHONEME_ID(PH_CLOTH_SOLO)] = 24, + [PHONEME_ID(PH_DRESS_BLEND)] = 15, + [PHONEME_ID(PH_DRESS_HELD)] = 25, + [PHONEME_ID(PH_DRESS_SOLO)] = 12, + [PHONEME_ID(PH_FLEECE_BLEND)] = 22, + [PHONEME_ID(PH_FLEECE_HELD)] = 45, + [PHONEME_ID(PH_FLEECE_SOLO)] = 24, + [PHONEME_ID(PH_KIT_BLEND)] = 15, + [PHONEME_ID(PH_KIT_HELD)] = 40, + [PHONEME_ID(PH_KIT_SOLO)] = 9, + [PHONEME_ID(PH_PRICE_BLEND)] = 21, + [PHONEME_ID(PH_PRICE_HELD)] = 42, + [PHONEME_ID(PH_PRICE_SOLO)] = 18, + [PHONEME_ID(PH_LOT_BLEND)] = 9, + [PHONEME_ID(PH_LOT_HELD)] = 22, + [PHONEME_ID(PH_LOT_SOLO)] = 15, + [PHONEME_ID(PH_GOAT_BLEND)] = 27, + [PHONEME_ID(PH_GOAT_HELD)] = 48, + [PHONEME_ID(PH_GOAT_SOLO)] = 18, + [PHONEME_ID(PH_THOUGHT_BLEND)] = 27, + [PHONEME_ID(PH_THOUGHT_HELD)] = 33, + [PHONEME_ID(PH_THOUGHT_SOLO)] = 24, + [PHONEME_ID(PH_CHOICE_BLEND)] = 25, + [PHONEME_ID(PH_CHOICE_HELD)] = 39, + [PHONEME_ID(PH_CHOICE_SOLO)] = 19, + [PHONEME_ID(PH_MOUTH_BLEND)] = 16, + [PHONEME_ID(PH_MOUTH_HELD)] = 54, + [PHONEME_ID(PH_MOUTH_SOLO)] = 18, + [PHONEME_ID(PH_FOOT_BLEND)] = 9, + [PHONEME_ID(PH_FOOT_HELD)] = 45, + [PHONEME_ID(PH_FOOT_SOLO)] = 15, + [PHONEME_ID(PH_GOOSE_BLEND)] = 12, + [PHONEME_ID(PH_GOOSE_HELD)] = 39, + [PHONEME_ID(PH_GOOSE_SOLO)] = 23, + [PHONEME_ID(PH_STRUT_BLEND)] = 5, + [PHONEME_ID(PH_STRUT_HELD)] = 45, + [PHONEME_ID(PH_STRUT_SOLO)] = 12, + [PHONEME_ID(PH_CURE_BLEND)] = 21, + [PHONEME_ID(PH_CURE_HELD)] = 48, + [PHONEME_ID(PH_CURE_SOLO)] = 12, + [PHONEME_ID(PH_NURSE_BLEND)] = 21, + [PHONEME_ID(PH_NURSE_HELD)] = 69, + [PHONEME_ID(PH_NURSE_SOLO)] = 18, + [NUM_PHONEME_SONGS] = 15, // This is the length that will be used by PREV_BARD_SOUND to hold the previous phoneme sound. +}; + +static s16 GetWordPitch(int tableIndex, int pitchIndex) { - return sBardSoundPitchTables[pitchIdx][songPos]; + return sPitchTables[tableIndex][pitchIndex]; } -const struct BardSound *GetWordSounds(u16 word) +const struct BardSoundTemplate *GetWordSoundTemplates(u16 easyChatWord) { u32 category; u32 subword; - const struct BardSound (*ptr)[6]; + const struct BardSoundTemplate (*ptr)[MAX_BARD_SOUNDS_PER_WORD]; - if (IsBardWordInvalid(word)) - { - return gBardSound_InvalidWord; - } - category = EC_GROUP(word); - subword = EC_INDEX(word); + if (IsBardWordInvalid(easyChatWord)) + return sEmptyPhonemeTemplate; + + category = EC_GROUP(easyChatWord); + subword = EC_INDEX(easyChatWord); switch (category) { case EC_GROUP_POKEMON: case EC_GROUP_POKEMON_NATIONAL: - ptr = gBardSounds_Pokemon; + ptr = sBardSoundTemplates_Pokemon; break; case EC_GROUP_MOVE_1: case EC_GROUP_MOVE_2: - ptr = gBardSounds_Moves; + ptr = sBardSoundTemplates_Moves; break; default: - ptr = gBardSoundsTable[category]; + ptr = sBardSoundTemplatesTable[category]; break; } ptr += subword; return *ptr; } -void GetWordPhonemes(struct BardSong *song, u16 word) +// Assumes that 'soundTemplates' has already been loaded with the BardSoundTemplates for the easy chat word to calculate sounds for. +// 'pitchTableIndex' is chosen depending on the easy chat word, but is essentially an arbitrary value 0-4. +void CalcWordSounds(struct BardSong *song, u16 pitchTableIndex) { int i; - const struct BardSound *sound; + const struct BardSoundTemplate *template; song->length = 0; - for (i = 0; i < BARD_SOUND_MAX_LENGTH; i ++) + + for (i = 0; i < MAX_BARD_SOUNDS_PER_WORD; i ++) { - sound = &song->sound[i]; - if (sound->songLengthId != 0xFF) + template = &song->soundTemplates[i]; + if (template->songId != PHONEME_ID_NONE) { - song->phonemes[i].length = sound->songLengthOffset + gBardSoundLengthTable[sound->songLengthId]; - song->phonemes[i].pitch = CalcWordPitch(word + 30, i); - song->length += song->phonemes[i].length; + // Calculate the length and pitch of each phoneme in this word. + // A phoneme's length is always the same, and depends on the phoneme song and any adjustments in the template. + // Its pitch changes depending on the easy chat word and where in the list of templates the phoneme appears. + song->sounds[i].length = template->lengthAdjustment + sPhonemeLengths[template->songId]; + song->sounds[i].pitch = GetWordPitch(pitchTableIndex + BASE_PITCH_TABLE_INDEX, i); + + // Add this phoneme's length to the total sound length for this word. + song->length += song->sounds[i].length; } } - song->currPhoneme = 0; + song->soundIndex = 0; song->voiceInflection = 0; } diff --git a/src/data/bard_music/actions.h b/src/data/bard_music/actions.h index 5acac34502..de0f4c8fd3 100644 --- a/src/data/bard_music/actions.h +++ b/src/data/bard_music/actions.h @@ -1,626 +1,626 @@ #ifndef GUARD_DATA_BARD_MUSIC_ACTIONS_H #define GUARD_DATA_BARD_MUSIC_ACTIONS_H -const struct BardSound gBardSounds_Actions[][6] = { - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Actions[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_MEETS)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CONCEDE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIVE)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIVES)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLAYED)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLAYS)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COLLECT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WALKING)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WALKS)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SAYS)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WENT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SAID)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WAKE_UP)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WAKES_UP)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ANGERS)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, + [EC_INDEX(EC_WORD_TEACH)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TEACHES)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLEASE)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LEARN)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHANGE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STORY)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRUST)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LAVISH)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LISTENS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEARING)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRAINS)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHOOSE)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COME)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CAME)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SEARCH)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAKE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CAUSE)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KNOW)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KNOWS)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 47 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_REFUSE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_CURE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STORES)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BRAG)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 26 }, - { .songLengthId = 2 }, + [EC_INDEX(EC_WORD_IGNORANT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THINKS)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BELIEVE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SLIDE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EATS)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 47 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_USE)] = { + { .songId = PHONEME_ID(PH_CURE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 47 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_USES)] = { + { .songId = PHONEME_ID(PH_CURE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 47 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_USING)] = { + { .songId = PHONEME_ID(PH_CURE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COULDN_T)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 44 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_CAPABLE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DISAPPEAR)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_APPEAR)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THROW)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WORRY)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SLEPT)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SLEEP)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RELEASE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DRINKS)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RUNS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RUN)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WORKS)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WORKING)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TALKING)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, + [EC_INDEX(EC_WORD_TALK)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SINK)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMACK)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PRETEND)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PRAISE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 41 }, + [EC_INDEX(EC_WORD_OVERDO)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHOW)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOOKS)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SEES)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SEEK)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OWN)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TAKE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 35 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALLOW)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FORGET)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FORGETS)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_APPEARS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FAINT)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FAINTED)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/adjectives.h b/src/data/bard_music/adjectives.h index c86138d2c4..641fcb3f2e 100644 --- a/src/data/bard_music/adjectives.h +++ b/src/data/bard_music/adjectives.h @@ -1,293 +1,293 @@ #ifndef GUARD_DATA_BARD_MUSIC_ADJECTIVES_H #define GUARD_DATA_BARD_MUSIC_ADJECTIVES_H -const struct BardSound gBardSounds_Adjectives[][6] = { - { - { .songLengthId = 29 }, - { .songLengthId = 50 }, - { .songLengthId = 12 }, +static const struct BardSoundTemplate sBardSoundTemplates_Adjectives[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_WANDERING)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_RICKETY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 27 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_ROCK_SOLID)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_HUNGRY)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TIGHT)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 36 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_TICKLISH)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TWIRLING)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 8 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SPIRALING)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THIRSTY)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOLLING)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SILKY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SADLY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HOPELESS)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_USELESS)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DROOLING)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 18 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_EXCITING)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THICK)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMOOTH)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SLIMY)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THIN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BREAK)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 5 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_VORACIOUS)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SCATTER)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AWESOME)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WIMPY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WOBBLY)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHAKY)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RIPPED)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHREDDED)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_INCREASING)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YET)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 30 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DESTROYED)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 50 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_FIERY)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 44 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_LOVEY_DOVEY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_HAPPILY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 3 }, - { .songLengthId = 29 }, - { .songLengthId = 51 } + [EC_INDEX(EC_WORD_ANTICIPATION)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND } }; diff --git a/src/data/bard_music/bard_sounds.h b/src/data/bard_music/bard_sounds.h deleted file mode 100644 index 291d22872a..0000000000 --- a/src/data/bard_music/bard_sounds.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef GUARD_BARD_SOUNDS_TABLE_H -#define GUARD_BARD_SOUNDS_TABLE_H - -#define NULL_BARD_SOUND { .songLengthId = 0xff } - -#include "pokemon.h" -#include "moves.h" -#include "trainer.h" -#include "status.h" -#include "battle.h" -#include "greetings.h" -#include "people.h" -#include "voices.h" -#include "speech.h" -#include "endings.h" -#include "feelings.h" -#include "conditions.h" -#include "actions.h" -#include "lifestyle.h" -#include "hobbies.h" -#include "time.h" -#include "misc.h" -#include "adjectives.h" -#include "events.h" -#include "trendysaying.h" - -const struct BardSound (*const gBardSoundsTable[EC_NUM_GROUPS])[6] = { - [EC_GROUP_POKEMON] = NULL, // Handled by gBardSounds_Pokemon - [EC_GROUP_TRAINER] = gBardSounds_Trainer, - [EC_GROUP_STATUS] = gBardSounds_Status, - [EC_GROUP_BATTLE] = gBardSounds_Battle, - [EC_GROUP_GREETINGS] = gBardSounds_Greetings, - [EC_GROUP_PEOPLE] = gBardSounds_People, - [EC_GROUP_VOICES] = gBardSounds_Voices, - [EC_GROUP_SPEECH] = gBardSounds_Speech, - [EC_GROUP_ENDINGS] = gBardSounds_Endings, - [EC_GROUP_FEELINGS] = gBardSounds_Feelings, - [EC_GROUP_CONDITIONS] = gBardSounds_Conditions, - [EC_GROUP_ACTIONS] = gBardSounds_Actions, - [EC_GROUP_LIFESTYLE] = gBardSounds_Lifestyle, - [EC_GROUP_HOBBIES] = gBardSounds_Hobbies, - [EC_GROUP_TIME] = gBardSounds_Time, - [EC_GROUP_MISC] = gBardSounds_Misc, - [EC_GROUP_ADJECTIVES] = gBardSounds_Adjectives, - [EC_GROUP_EVENTS] = gBardSounds_Events, - [EC_GROUP_MOVE_1] = NULL, // Handled by gBardSounds_Moves - [EC_GROUP_MOVE_2] = NULL, // Handled by gBardSounds_Moves - [EC_GROUP_TRENDY_SAYING] = gBardSounds_TrendySaying, - [EC_GROUP_POKEMON_NATIONAL] = NULL // Handled by gBardSounds_Pokemon -}; - -#endif //GUARD_BARD_SOUNDS_TABLE_H diff --git a/src/data/bard_music/battle.h b/src/data/bard_music/battle.h index c2cb57134f..0ec01b0322 100644 --- a/src/data/bard_music/battle.h +++ b/src/data/bard_music/battle.h @@ -1,506 +1,506 @@ #ifndef GUARD_DATA_BARD_MUSIC_BATTLE_H #define GUARD_DATA_BARD_MUSIC_BATTLE_H -const struct BardSound gBardSounds_Battle[][6] = { - { - { .songLengthId = 2 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Battle[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_MATCH_UP)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GO)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_NO_1)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DECIDE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 15 }, + [EC_INDEX(EC_WORD_LET_ME_WIN)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WINS)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WIN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WON)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 18 }, - { .songLengthId = 15 }, + [EC_INDEX(EC_WORD_IF_I_WIN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 18 }, - { .songLengthId = 15 }, + [EC_INDEX(EC_WORD_WHEN_I_WIN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CAN_T_WIN)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CAN_WIN)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NO_MATCH)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SPIRIT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_DECIDED)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 8 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRUMP_CARD)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TAKE_THAT)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 23 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COME_ON)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ATTACK)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 9 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_SURRENDER)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GUTSY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TALENT)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 11 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_STRATEGY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMITE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MATCH)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 50 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_VICTORY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 11 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OFFENSIVE)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SENSE)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_VERSUS)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FIGHTS)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 35 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_POWER)] = { + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHALLENGE)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STRONG)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOO_STRONG)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_GO_EASY)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FOE)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 14 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_GENIUS)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LEGEND)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ESCAPE)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AIM)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BATTLE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FIGHT)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_RESUSCITATE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 30 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_POINTS)] = { + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_SERIOUS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIVE_UP)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOSS)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 18 }, - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_IF_I_LOSE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 22 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOST)] = { + { .songId = PHONEME_ID(PH_LOT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOSE)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GUARD)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PARTNER)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_REJECT)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ACCEPT)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 36 }, + [EC_INDEX(EC_WORD_INVINCIBLE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RECEIVED)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EASY)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WEAK)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOO_WEAK)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 26 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_PUSHOVER)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LEADER)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RULE)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MOVE)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/conditions.h b/src/data/bard_music/conditions.h index c56421e63f..9eb8b7f01c 100644 --- a/src/data/bard_music/conditions.h +++ b/src/data/bard_music/conditions.h @@ -1,554 +1,554 @@ #ifndef GUARD_DATA_BARD_MUSIC_CONDITIONS_H #define GUARD_DATA_BARD_MUSIC_CONDITIONS_H -const struct BardSound gBardSounds_Conditions[][6] = { - { - { .songLengthId = 21 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +const struct BardSoundTemplate sBardSoundTemplates_Conditions[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_HOT)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EXISTS)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EXCESS)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 41 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_APPROVED)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HAS)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOOD)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LESS)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 11 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MOMENTUM)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOING)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WEIRD)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BUSY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 10 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_TOGETHER)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FULL)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ABSENT)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEING)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEED)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TASTY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SKILLED)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 32 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NOISY)] = { + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BIG)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LATE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 25 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CLOSE)] = { + { .songId = PHONEME_ID(PH_GOAT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DOCILE)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 39 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_AMUSING)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 3 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ENTERTAINING)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 11 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PERFECTION)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PRETTY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEALTHY)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_EXCELLENT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 20 }, - { .songLengthId = 35 }, + [EC_INDEX(EC_WORD_UPSIDE_DOWN)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COLD)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 10 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_REFRESHING)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 42 }, - { .songLengthId = 30 }, - { .songLengthId = 44 }, - { .songLengthId = 38 }, + [EC_INDEX(EC_WORD_UNAVOIDABLE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MUCH)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 50 }, - { .songLengthId = 11 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OVERWHELMING)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_FABULOUS)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ELSE)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 10 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_EXPENSIVE)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CORRECT)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 29 }, - { .songLengthId = 42 }, - { .songLengthId = 38 }, + [EC_INDEX(EC_WORD_IMPOSSIBLE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMALL)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_DIFFERENT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TIRED)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SKILL)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOP)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 22 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NON_STOP)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 22 }, - { .songLengthId = 50 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PREPOSTEROUS)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_HELD) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NONE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NOTHING)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 50 }, - { .songLengthId = 38 }, + [EC_INDEX(EC_WORD_NATURAL)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BECOMES)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 28 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LUKEWARM)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FAST)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOW)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AWFUL)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALONE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BORED)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SECRET)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_MYSTERY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LACKS)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEST)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOUSY)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MISTAKE)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KIND)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WELL)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_WEAKENED)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SIMPLE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SEEMS)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BADLY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/default_sound.h b/src/data/bard_music/default_sound.h deleted file mode 100644 index ad4008e16e..0000000000 --- a/src/data/bard_music/default_sound.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef GUARD_default_sound_H -#define GUARD_default_sound_H - -const struct BardSound gBardSound_InvalidWord[] = { - NULL_BARD_SOUND, - NULL_BARD_SOUND, - NULL_BARD_SOUND, - NULL_BARD_SOUND, - NULL_BARD_SOUND, - NULL_BARD_SOUND -}; - -#endif //GUARD_default_sound_H diff --git a/src/data/bard_music/endings.h b/src/data/bard_music/endings.h index 2513476595..6d0669feed 100644 --- a/src/data/bard_music/endings.h +++ b/src/data/bard_music/endings.h @@ -1,554 +1,554 @@ #ifndef GUARD_DATA_BARD_MUSIC_ENDINGS_H #define GUARD_DATA_BARD_MUSIC_ENDINGS_H -const struct BardSound gBardSounds_Endings[][6] = { - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Endings[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_WILL)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_WILL_BE_HERE)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OR)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TIMES)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WONDER)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_IS_IT_QUES)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BE)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIMME)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COULD)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 14 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIKELY_TO)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WOULD)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_IS)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_ISN_T_IT_QUES)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_LET_S)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OTHER)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ARE)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WAS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WERE)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THOSE)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ISN_T)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WON_T)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CAN_T)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CAN)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DON_T)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_DO)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DOES)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHOM)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHICH)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WASN_T)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WEREN_T)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HAVE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HAVEN_T)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_A)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AN)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NOT)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THERE)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OK_QUES)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SO)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAYBE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 35 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ABOUT)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OVER)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_IT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALL)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FOR)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ON)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, + [EC_INDEX(EC_WORD_OFF)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AS)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TO)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WITH)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BETTER)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EVER)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SINCE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OF)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BELONGS_TO)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AT)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_IN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, + [EC_INDEX(EC_WORD_OUT)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOO)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIKE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DID)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DIDN_T)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DOESN_T)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 35 }, + [EC_INDEX(EC_WORD_WITHOUT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AFTER)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEFORE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHILE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THAN)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ONCE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ANYWHERE)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/events.h b/src/data/bard_music/events.h index b33c1e2b30..6bd57c0c70 100644 --- a/src/data/bard_music/events.h +++ b/src/data/bard_music/events.h @@ -1,234 +1,234 @@ #ifndef GUARD_DATA_BARD_MUSIC_EVENTS_H #define GUARD_DATA_BARD_MUSIC_EVENTS_H -const struct BardSound gBardSounds_Events[][6] = { - { - { .songLengthId = 44 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Events[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_APPEAL)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EVENTS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STAY_AT_HOME)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BERRY)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CONTEST)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MC)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_JUDGE)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SUPER)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STAGE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 44 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HALL_OF_FAME)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EVOLUTION)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HYPER)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 44 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_BATTLE_TOWER)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LEADERS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_BATTLE_ROOM)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIDDEN)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SECRET_BASE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BLEND)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_POKEBLOCK)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MASTER)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RANK)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RIBBON)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 42 }, + [EC_INDEX(EC_WORD_CRUSH)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 9 }, + [EC_INDEX(EC_WORD_DIRECT)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_TOWER)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 42 }, + [EC_INDEX(EC_WORD_UNION)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ROOM)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WIRELESS)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_FRONTIER)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/feelings.h b/src/data/bard_music/feelings.h index a465133970..34ef734ecb 100644 --- a/src/data/bard_music/feelings.h +++ b/src/data/bard_music/feelings.h @@ -1,555 +1,555 @@ #ifndef GUARD_DATA_BARD_MUSIC_FEELINGS_H #define GUARD_DATA_BARD_MUSIC_FEELINGS_H -const struct BardSound gBardSounds_Feelings[][6] = { - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Feelings[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_MEET)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLAY)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HURRIED)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 25 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOES)] = { + { .songId = PHONEME_ID(PH_GOAT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIDDY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HAPPY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_HAPPINESS)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EXCITE)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 26 }, - { .songLengthId = 0 }, + [EC_INDEX(EC_WORD_IMPORTANT)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FUNNY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOT)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GO_HOME)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 30 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_DISAPPOINTED)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 32 }, + [EC_INDEX(EC_WORD_DISAPPOINTS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SAD)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRY)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRIES)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEARS)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THINK)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEAR)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, + [EC_INDEX(EC_WORD_WANTS)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MISHEARD)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DISLIKE)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ANGRY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ANGER)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SCARY)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LONESOME)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 42 }, - { .songLengthId = 32 }, + [EC_INDEX(EC_WORD_DISAPPOINT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 32 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_JOY)] = { + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GETS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEVER)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DARN)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DOWNCAST)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 11 }, - { .songLengthId = 17 }, - { .songLengthId = 38 }, + [EC_INDEX(EC_WORD_INCREDIBLE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIKES)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DISLIKES)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BORING)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CARE)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CARES)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALL_RIGHT)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ADORE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_DISASTER)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 32 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ENJOY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 32 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ENJOYS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EAT)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LACKING)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BAD)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HARD)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 42 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_TERRIBLE)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHOULD)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NICE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DRINK)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SURPRISE)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FEAR)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WANT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WAIT)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SATISFIED)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SEE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RARE)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 44 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_NEGATIVE)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DONE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DANGER)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 14 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_DEFEATED)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEAT)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GREAT)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 0 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_ROMANTIC)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_QUESTION)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 2 }, + [EC_INDEX(EC_WORD_UNDERSTAND)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UNDERSTANDS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, } diff --git a/src/data/bard_music/greetings.h b/src/data/bard_music/greetings.h index ebddb79de4..4a64c7d006 100644 --- a/src/data/bard_music/greetings.h +++ b/src/data/bard_music/greetings.h @@ -1,338 +1,338 @@ #ifndef GUARD_DATA_BARD_MUSIC_GREETINGS_H #define GUARD_DATA_BARD_MUSIC_GREETINGS_H -const struct BardSound gBardSounds_Greetings[][6] = { - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Greetings[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_THANKS)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YES)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HERE_GOES)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 18 }, - { .songLengthId = 23 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HERE_I_COME)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 17 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_HERE_IT_IS)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YEAH)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 23 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WELCOME)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 30 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OI)] = { + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HOW_DO)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CONGRATS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIVE_ME)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SORRY)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 6 }, - { .songLengthId = 23 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_APOLOGIZE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FORGIVE)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEY_THERE)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HELLO)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOOD_BYE)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THANK_YOU)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 6 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_I_VE_ARRIVED)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PARDON)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EXCUSE)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SEE_YA)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 40 }, - { .songLengthId = 13 }, + [EC_INDEX(EC_WORD_EXCUSE_ME)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WELL_THEN)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_GO_AHEAD)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_APPRECIATE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEY_QUES)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 43 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHAT_S_UP_QUES)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HUH_QUES)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NO)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HI)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YEAH_YEAH)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BYE_BYE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MEET_YOU)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMELL)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 11 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_LISTENING)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HOO_HAH)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YAHOO)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YO)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 24 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_COME_OVER)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 35 }, - { .songLengthId = 23 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COUNT_ON)] = { + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/hobbies.h b/src/data/bard_music/hobbies.h index db55ef1246..d51e9164cf 100644 --- a/src/data/bard_music/hobbies.h +++ b/src/data/bard_music/hobbies.h @@ -1,434 +1,434 @@ #ifndef GUARD_DATA_BARD_MUSIC_HOBBIES_H #define GUARD_DATA_BARD_MUSIC_HOBBIES_H -const struct BardSound gBardSounds_Hobbies[][6] = { - { - { .songLengthId = 20 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Hobbies[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_IDOL)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_ANIME)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SONG)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MOVIE)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SWEETS)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHAT)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 38 }, - { .songLengthId = 4 }, + [EC_INDEX(EC_WORD_CHILD_S_PLAY)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 30 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOYS)] = { + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 47 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MUSIC)] = { + { .songId = PHONEME_ID(PH_CURE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CARDS)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHOPPING)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 50 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_CAMERA)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 47 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_VIEWING)] = { + { .songId = PHONEME_ID(PH_CURE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 5 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_SPECTATOR)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOURMET)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GAME)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_RPG)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 11 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COLLECTION)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COMPLETE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 44 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAGAZINE)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WALK)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BIKE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HOBBY)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SPORTS)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOFTWARE)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SONGS)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DIET)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TREASURE)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRAVEL)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DANCE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHANNEL)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAKING)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FISHING)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DATE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DESIGN)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 26 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_LOCOMOTIVE)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLUSH_DOLL)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PC)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FLOWERS)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HERO)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NAP)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 26 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEROINE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FASHION)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 11 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_ADVENTURE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BOARD)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BALL)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BOOK)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 14 }, - { .songLengthId = 8 }, + [EC_INDEX(EC_WORD_FESTIVAL)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COMICS)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 17 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_HOLIDAY)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLANS)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRENDY)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 5 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_VACATION)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOOK)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/length_table.h b/src/data/bard_music/length_table.h deleted file mode 100644 index d53dcb23fa..0000000000 --- a/src/data/bard_music/length_table.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef GUARD_LENGTH_TABLE_H -#define GUARD_LENGTH_TABLE_H - -const int gBardSoundLengthTable[] = { - 9, 22, 15, 16, - 39, 21, 9, 30, - 24, 15, 25, 12, - 22, 45, 24, 15, - 40, 9, 21, 42, - 18, 9, 22, 15, - 27, 48, 18, 27, - 33, 24, 25, 39, - 19, 16, 54, 18, - 9, 45, 15, 12, - 39, 23, 5, 45, - 12, 21, 48, 12, - 21, 69, 18, 15 -}; - - -#endif //GUARD_LENGTH_TABLE_H diff --git a/src/data/bard_music/lifestyle.h b/src/data/bard_music/lifestyle.h index 9aeac37576..4415ab638a 100644 --- a/src/data/bard_music/lifestyle.h +++ b/src/data/bard_music/lifestyle.h @@ -1,362 +1,362 @@ #ifndef GUARD_DATA_BARD_MUSIC_LIFESTYLE_H #define GUARD_DATA_BARD_MUSIC_LIFESTYLE_H -const struct BardSound gBardSounds_Lifestyle[][6] = { - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Lifestyle[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_CHORES)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HOME)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MONEY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 35 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALLOWANCE)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BATH)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 50 }, - { .songLengthId = 3 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CONVERSATION)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SCHOOL)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_COMMEMORATE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HABIT)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GROUP)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WORD)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STORE)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SERVICE)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WORK)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SYSTEM)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRAIN)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CLASS)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LESSONS)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 48 }, - { .songLengthId = 5 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_INFORMATION)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIVING)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TEACHER)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 42 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_TOURNAMENT)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LETTER)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EVENT)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_DIGITAL)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TEST)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 11 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_DEPT_STORE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TELEVISION)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PHONE)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ITEM)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NAME)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEWS)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 39 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_POPULAR)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PARTY)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STUDY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MACHINE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAIL)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MESSAGE)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PROMISE)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DREAM)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 50 }, - { .songLengthId = 23 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KINDERGARTEN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIFE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_RADIO)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RENTAL)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WORLD)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/misc.h b/src/data/bard_music/misc.h index 1bce1a45dd..730ff37d71 100644 --- a/src/data/bard_music/misc.h +++ b/src/data/bard_music/misc.h @@ -1,338 +1,338 @@ #ifndef GUARD_DATA_BARD_MUSIC_MISC_H #define GUARD_DATA_BARD_MUSIC_MISC_H -const struct BardSound gBardSounds_Misc[][6] = { - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Misc[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_HIGHS)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOWS)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UM)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_REAR)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THINGS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THING)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BELOW)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ABOVE)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BACK)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIGH)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HERE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_INSIDE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OUTSIDE)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BESIDE)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_THIS_IS_IT_EXCL)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THIS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_EVERY)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THESE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THESE_WERE)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DOWN)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THAT)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THOSE_ARE)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THOSE_WERE)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THAT_S_IT_EXCL)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AM)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THAT_WAS)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FRONT)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UP)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHOICE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FAR)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AWAY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEAR)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHERE)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHEN)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHAT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DEEP)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHALLOW)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHY)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 46 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CONFUSED)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_CURE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 26 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_OPPOSITE)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LEFT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RIGHT)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/moves.h b/src/data/bard_music/moves.h index 31c3395fcd..2c204af282 100644 --- a/src/data/bard_music/moves.h +++ b/src/data/bard_music/moves.h @@ -5,7 +5,7 @@ const u16 gNumBardWords_Moves = MOVES_COUNT; -const struct BardSound gBardSounds_Moves[MOVES_COUNT][BARD_SOUND_MAX_LENGTH] = { +static const struct BardSoundTemplate sBardSoundTemplates_Moves[MOVES_COUNT][MAX_BARD_SOUNDS_PER_WORD] = { [MOVE_NONE] = { NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -15,2311 +15,2311 @@ const struct BardSound gBardSounds_Moves[MOVES_COUNT][BARD_SOUND_MAX_LENGTH] = { NULL_BARD_SOUND, }, [MOVE_POUND] = { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_KARATE_CHOP] = { - { .songLengthId = 44 }, - { .songLengthId = 29 }, - { .songLengthId = 14 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DOUBLE_SLAP] = { - { .songLengthId = 42 }, - { .songLengthId = 10 }, - { .songLengthId = 2 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_COMET_PUNCH] = { - { .songLengthId = 29 }, - { .songLengthId = 11 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEGA_PUNCH] = { - { .songLengthId = 3 }, - { .songLengthId = 42 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PAY_DAY] = { - { .songLengthId = 5 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FIRE_PUNCH] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ICE_PUNCH] = { - { .songLengthId = 44 }, - { .songLengthId = 29 }, - { .songLengthId = 14 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THUNDER_PUNCH] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SCRATCH] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_VICE_GRIP] = { - { .songLengthId = 20 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GUILLOTINE] = { - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RAZOR_WIND] = { - { .songLengthId = 5 }, - { .songLengthId = 48 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SWORDS_DANCE] = { - { .songLengthId = 26 }, - { .songLengthId = 48 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CUT] = { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GUST] = { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WING_ATTACK] = { - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WHIRLWIND] = { - { .songLengthId = 44 }, - { .songLengthId = 29 }, - { .songLengthId = 14 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FLY] = { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BIND] = { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLAM] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_VINE_WHIP] = { - { .songLengthId = 18 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STOMP] = { - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DOUBLE_KICK] = { - { .songLengthId = 42 }, - { .songLengthId = 44 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEGA_KICK] = { - { .songLengthId = 3 }, - { .songLengthId = 42 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_JUMP_KICK] = { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROLLING_KICK] = { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SAND_ATTACK] = { - { .songLengthId = 0 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HEADBUTT] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HORN_ATTACK] = { - { .songLengthId = 24 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FURY_ATTACK] = { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 2 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HORN_DRILL] = { - { .songLengthId = 24 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TACKLE] = { - { .songLengthId = 0 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BODY_SLAM] = { - { .songLengthId = 29 }, - { .songLengthId = 12 }, - { .songLengthId = 2 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WRAP] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TAKE_DOWN] = { - { .songLengthId = 3 }, - { .songLengthId = 35 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THRASH] = { - { .songLengthId = 48 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DOUBLE_EDGE] = { - { .songLengthId = 44 }, - { .songLengthId = 36 }, - { .songLengthId = 10 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TAIL_WHIP] = { - { .songLengthId = 5 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_POISON_STING] = { - { .songLengthId = 30 }, - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TWINEEDLE] = { - { .songLengthId = 15 }, - { .songLengthId = 12 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PIN_MISSILE] = { - { .songLengthId = 15 }, - { .songLengthId = 17 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LEER] = { - { .songLengthId = 14 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BITE] = { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GROWL] = { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROAR] = { - { .songLengthId = 26 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SING] = { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SUPERSONIC] = { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 27 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SONIC_BOOM] = { - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DISABLE] = { - { .songLengthId = 17 }, - { .songLengthId = 3 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ACID] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_EMBER] = { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FLAMETHROWER] = { - { .songLengthId = 0 }, - { .songLengthId = 26 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MIST] = { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WATER_GUN] = { - { .songLengthId = 29 }, - { .songLengthId = 50 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HYDRO_PUMP] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SURF] = { - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ICE_BEAM] = { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BLIZZARD] = { - { .songLengthId = 15 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PSYBEAM] = { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BUBBLE_BEAM] = { - { .songLengthId = 42 }, - { .songLengthId = 36 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AURORA_BEAM] = { - { .songLengthId = 27 }, - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HYPER_BEAM] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PECK] = { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DRILL_PECK] = { - { .songLengthId = 17 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SUBMISSION] = { - { .songLengthId = 42 }, - { .songLengthId = 17 }, - { .songLengthId = 11 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LOW_KICK] = { - { .songLengthId = 24 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_COUNTER] = { - { .songLengthId = 33 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SEISMIC_TOSS] = { - { .songLengthId = 18 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STRENGTH] = { - { .songLengthId = 50 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ABSORB] = { - { .songLengthId = 42 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEGA_DRAIN] = { - { .songLengthId = 3 }, - { .songLengthId = 44 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LEECH_SEED] = { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GROWTH] = { - { .songLengthId = 48 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RAZOR_LEAF] = { - { .songLengthId = 5 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SOLAR_BEAM] = { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_POISON_POWDER] = { - { .songLengthId = 30 }, - { .songLengthId = 44 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STUN_SPORE] = { - { .songLengthId = 44 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLEEP_POWDER] = { - { .songLengthId = 12 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PETAL_DANCE] = { - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STRING_SHOT] = { - { .songLengthId = 50 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DRAGON_RAGE] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FIRE_SPIN] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THUNDER_SHOCK] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THUNDERBOLT] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 26 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THUNDER_WAVE] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THUNDER] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROCK_THROW] = { - { .songLengthId = 27 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_EARTHQUAKE] = { - { .songLengthId = 48 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FISSURE] = { - { .songLengthId = 17 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DIG] = { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TOXIC] = { - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CONFUSION] = { - { .songLengthId = 44 }, - { .songLengthId = 41 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PSYCHIC] = { - { .songLengthId = 18 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HYPNOSIS] = { - { .songLengthId = 17 }, - { .songLengthId = 24 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEDITATE] = { - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AGILITY] = { - { .songLengthId = 42 }, - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 14 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_QUICK_ATTACK] = { - { .songLengthId = 39 }, - { .songLengthId = 17 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RAGE] = { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TELEPORT] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_NIGHT_SHADE] = { - { .songLengthId = 18 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MIMIC] = { - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SCREECH] = { - { .songLengthId = 48 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DOUBLE_TEAM] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RECOVER] = { - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HARDEN] = { - { .songLengthId = 27 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MINIMIZE] = { - { .songLengthId = 15 }, - { .songLengthId = 15 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SMOKESCREEN] = { - { .songLengthId = 26 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CONFUSE_RAY] = { - { .songLengthId = 27 }, - { .songLengthId = 45 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WITHDRAW] = { - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DEFENSE_CURL] = { - { .songLengthId = 14 }, - { .songLengthId = 11 }, - { .songLengthId = 50 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BARRIER] = { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LIGHT_SCREEN] = { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HAZE] = { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_REFLECT] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FOCUS_ENERGY] = { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 11 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, }, [MOVE_BIDE] = { - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_METRONOME] = { - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MIRROR_MOVE] = { - { .songLengthId = 12 }, - { .songLengthId = 50 }, - { .songLengthId = 41 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SELF_DESTRUCT] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_EGG_BOMB] = { - { .songLengthId = 9 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LICK] = { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SMOG] = { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLUDGE] = { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BONE_CLUB] = { - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FIRE_BLAST] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WATERFALL] = { - { .songLengthId = 29 }, - { .songLengthId = 48 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CLAMP] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SWIFT] = { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SKULL_BASH] = { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPIKE_CANNON] = { - { .songLengthId = 20 }, - { .songLengthId = 0 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CONSTRICT] = { - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AMNESIA] = { - { .songLengthId = 2 }, - { .songLengthId = 14 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_KINESIS] = { - { .songLengthId = 15 }, - { .songLengthId = 12 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SOFT_BOILED] = { - { .songLengthId = 27 }, - { .songLengthId = 30 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HI_JUMP_KICK] = { - { .songLengthId = 18 }, - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GLARE] = { - { .songLengthId = 5 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DREAM_EATER] = { - { .songLengthId = 14 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_POISON_GAS] = { - { .songLengthId = 30 }, - { .songLengthId = 27 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BARRAGE] = { - { .songLengthId = 48 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LEECH_LIFE] = { - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LOVELY_KISS] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 12 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SKY_ATTACK] = { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TRANSFORM] = { - { .songLengthId = 0 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BUBBLE] = { - { .songLengthId = 44 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DIZZY_PUNCH] = { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPORE] = { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FLASH] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PSYWAVE] = { - { .songLengthId = 18 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPLASH] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ACID_ARMOR] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CRABHAMMER] = { - { .songLengthId = 2 }, - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_EXPLOSION] = { - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FURY_SWIPES] = { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BONEMERANG] = { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_REST] = { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROCK_SLIDE] = { - { .songLengthId = 27 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HYPER_FANG] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SHARPEN] = { - { .songLengthId = 27 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CONVERSION] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TRI_ATTACK] = { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SUPER_FANG] = { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLASH] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SUBSTITUTE] = { - { .songLengthId = 42 }, - { .songLengthId = 17 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STRUGGLE] = { - { .songLengthId = 42 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SKETCH] = { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TRIPLE_KICK] = { - { .songLengthId = 17 }, - { .songLengthId = 36 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_THIEF] = { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPIDER_WEB] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 9 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MIND_READER] = { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_NIGHTMARE] = { - { .songLengthId = 18 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FLAME_WHEEL] = { - { .songLengthId = 3 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SNORE] = { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CURSE] = { - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FLAIL] = { - { .songLengthId = 5 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CONVERSION_2] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AEROBLAST] = { - { .songLengthId = 5 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_COTTON_SPORE] = { - { .songLengthId = 29 }, - { .songLengthId = 29 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_REVERSAL] = { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPITE] = { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_POWDER_SNOW] = { - { .songLengthId = 33 }, - { .songLengthId = 48 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PROTECT] = { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MACH_PUNCH] = { - { .songLengthId = 27 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SCARY_FACE] = { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 3 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FAINT_ATTACK] = { - { .songLengthId = 3 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SWEET_KISS] = { - { .songLengthId = 14 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BELLY_DRUM] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLUDGE_BOMB] = { - { .songLengthId = 43 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MUD_SLAP] = { - { .songLengthId = 44 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_OCTAZOOKA] = { - { .songLengthId = 27 }, - { .songLengthId = 44 }, - { .songLengthId = 40 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPIKES] = { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ZAP_CANNON] = { - { .songLengthId = 0 }, - { .songLengthId = 1 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FORESIGHT] = { - { .songLengthId = 26 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DESTINY_BOND] = { - { .songLengthId = 9 }, - { .songLengthId = 15 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PERISH_SONG] = { - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ICY_WIND] = { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 15 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DETECT] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BONE_RUSH] = { - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LOCK_ON] = { - { .songLengthId = 27 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_OUTRAGE] = { - { .songLengthId = 33 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SANDSTORM] = { - { .songLengthId = 0 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GIGA_DRAIN] = { - { .songLengthId = 17 }, - { .songLengthId = 42 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ENDURE] = { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CHARM] = { - { .songLengthId = 21 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROLLOUT] = { - { .songLengthId = 26 }, - { .songLengthId = 33 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FALSE_SWIPE] = { - { .songLengthId = 27 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SWAGGER] = { - { .songLengthId = 2 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MILK_DRINK] = { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPARK] = { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FURY_CUTTER] = { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STEEL_WING] = { - { .songLengthId = 14 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEAN_LOOK] = { - { .songLengthId = 12 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ATTRACT] = { - { .songLengthId = 42 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLEEP_TALK] = { - { .songLengthId = 14 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HEAL_BELL] = { - { .songLengthId = 14 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RETURN] = { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PRESENT] = { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FRUSTRATION] = { - { .songLengthId = 44 }, - { .songLengthId = 3 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SAFEGUARD] = { - { .songLengthId = 3 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PAIN_SPLIT] = { - { .songLengthId = 3 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SACRED_FIRE] = { - { .songLengthId = 3 }, - { .songLengthId = 17 }, - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MAGNITUDE] = { - { .songLengthId = 0 }, - { .songLengthId = 15 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DYNAMIC_PUNCH] = { - { .songLengthId = 18 }, - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEGAHORN] = { - { .songLengthId = 3 }, - { .songLengthId = 42 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DRAGON_BREATH] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BATON_PASS] = { - { .songLengthId = 42 }, - { .songLengthId = 27 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ENCORE] = { - { .songLengthId = 27 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PURSUIT] = { - { .songLengthId = 48 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RAPID_SPIN] = { - { .songLengthId = 0 }, - { .songLengthId = 15 }, - { .songLengthId = 15 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SWEET_SCENT] = { - { .songLengthId = 14 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_IRON_TAIL] = { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_METAL_CLAW] = { - { .songLengthId = 9 }, - { .songLengthId = 36 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_VITAL_THROW] = { - { .songLengthId = 18 }, - { .songLengthId = 36 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MORNING_SUN] = { - { .songLengthId = 26 }, - { .songLengthId = 14 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SYNTHESIS] = { - { .songLengthId = 15 }, - { .songLengthId = 42 }, - { .songLengthId = 15 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MOONLIGHT] = { - { .songLengthId = 39 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HIDDEN_POWER] = { - { .songLengthId = 15 }, - { .songLengthId = 9 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CROSS_CHOP] = { - { .songLengthId = 27 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TWISTER] = { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RAIN_DANCE] = { - { .songLengthId = 3 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SUNNY_DAY] = { - { .songLengthId = 42 }, - { .songLengthId = 14 }, - { .songLengthId = 5 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CRUNCH] = { - { .songLengthId = 48 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MIRROR_COAT] = { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_PSYCH_UP] = { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_EXTREME_SPEED] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ANCIENT_POWER] = { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 33 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SHADOW_BALL] = { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FUTURE_SIGHT] = { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROCK_SMASH] = { - { .songLengthId = 27 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WHIRLPOOL] = { - { .songLengthId = 48 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BEAT_UP] = { - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FAKE_OUT] = { - { .songLengthId = 3 }, - { .songLengthId = 33 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_UPROAR] = { - { .songLengthId = 44 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_STOCKPILE] = { - { .songLengthId = 27 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SPIT_UP] = { - { .songLengthId = 17 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SWALLOW] = { - { .songLengthId = 27 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HEAT_WAVE] = { - { .songLengthId = 12 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HAIL] = { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TORMENT] = { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FLATTER] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WILL_O_WISP] = { - { .songLengthId = 17 }, - { .songLengthId = 24 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MEMENTO] = { - { .songLengthId = 42 }, - { .songLengthId = 9 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FACADE] = { - { .songLengthId = 44 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FOCUS_PUNCH] = { - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SMELLING_SALT] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FOLLOW_ME] = { - { .songLengthId = 21 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_NATURE_POWER] = { - { .songLengthId = 3 }, - { .songLengthId = 48 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CHARGE] = { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TAUNT] = { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HELPING_HAND] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TRICK] = { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROLE_PLAY] = { - { .songLengthId = 24 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WISH] = { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ASSIST] = { - { .songLengthId = 42 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_INGRAIN] = { - { .songLengthId = 15 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SUPERPOWER] = { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MAGIC_COAT] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_RECYCLE] = { - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_REVENGE] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BRICK_BREAK] = { - { .songLengthId = 17 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_YAWN] = { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_KNOCK_OFF] = { - { .songLengthId = 27 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ENDEAVOR] = { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ERUPTION] = { - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SKILL_SWAP] = { - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_IMPRISON] = { - { .songLengthId = 15 }, - { .songLengthId = 15 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_REFRESH] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GRUDGE] = { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SNATCH] = { - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2327,522 +2327,522 @@ const struct BardSound gBardSounds_Moves[MOVES_COUNT][BARD_SOUND_MAX_LENGTH] = { NULL_BARD_SOUND, }, [MOVE_SECRET_POWER] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DIVE] = { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ARM_THRUST] = { - { .songLengthId = 27 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CAMOUFLAGE] = { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TAIL_GLOW] = { - { .songLengthId = 4 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LUSTER_PURGE] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 50 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MIST_BALL] = { - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FEATHER_DANCE] = { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TEETER_DANCE] = { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BLAZE_KICK] = { - { .songLengthId = 5 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MUD_SPORT] = { - { .songLengthId = 42 }, - { .songLengthId = 24 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ICE_BALL] = { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_NEEDLE_ARM] = { - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SLACK_OFF] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HYPER_VOICE] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 30 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_POISON_FANG] = { - { .songLengthId = 30 }, - { .songLengthId = 42 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CRUSH_CLAW] = { - { .songLengthId = 44 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BLAST_BURN] = { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HYDRO_CANNON] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_METEOR_MASH] = { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, }, [MOVE_ASTONISH] = { - { .songLengthId = 42 }, - { .songLengthId = 27 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WEATHER_BALL] = { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AROMATHERAPY] = { - { .songLengthId = 42 }, - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 14 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, }, [MOVE_FAKE_TEARS] = { - { .songLengthId = 3 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AIR_CUTTER] = { - { .songLengthId = 5 }, - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_OVERHEAT] = { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ODOR_SLEUTH] = { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROCK_TOMB] = { - { .songLengthId = 27 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SILVER_WIND] = { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 15 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_METAL_SOUND] = { - { .songLengthId = 9 }, - { .songLengthId = 27 }, - { .songLengthId = 33 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_GRASS_WHISTLE] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_TICKLE] = { - { .songLengthId = 17 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_COSMIC_POWER] = { - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WATER_SPOUT] = { - { .songLengthId = 27 }, - { .songLengthId = 48 }, - { .songLengthId = 33 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SIGNAL_BEAM] = { - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SHADOW_PUNCH] = { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_EXTRASENSORY] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, }, [MOVE_SKY_UPPERCUT] = { - { .songLengthId = 18 }, - { .songLengthId = 44 }, - { .songLengthId = 48 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SAND_TOMB] = { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SHEER_COLD] = { - { .songLengthId = 14 }, - { .songLengthId = 48 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MUDDY_WATER] = { - { .songLengthId = 42 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BULLET_SEED] = { - { .songLengthId = 42 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_AERIAL_ACE] = { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 3 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ICICLE_SPEAR] = { - { .songLengthId = 18 }, - { .songLengthId = 15 }, - { .songLengthId = 42 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, }, [MOVE_IRON_DEFENSE] = { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 9 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BLOCK] = { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_HOWL] = { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DRAGON_CLAW] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_FRENZY_PLANT] = { - { .songLengthId = 48 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BULK_UP] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_BOUNCE] = { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MUD_SHOT] = { - { .songLengthId = 44 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_POISON_TAIL] = { - { .songLengthId = 30 }, - { .songLengthId = 44 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_COVET] = { - { .songLengthId = 42 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_VOLT_TACKLE] = { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 0 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_MAGICAL_LEAF] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 36 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WATER_SPORT] = { - { .songLengthId = 27 }, - { .songLengthId = 48 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_CALM_MIND] = { - { .songLengthId = 27 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_LEAF_BLADE] = { - { .songLengthId = 12 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DRAGON_DANCE] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_ROCK_BLAST] = { - { .songLengthId = 27 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_SHOCK_WAVE] = { - { .songLengthId = 27 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_WATER_PULSE] = { - { .songLengthId = 27 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [MOVE_DOOM_DESIRE] = { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, }, [MOVE_PSYCHO_BOOST] = { - { .songLengthId = 18 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, } diff --git a/src/data/bard_music/people.h b/src/data/bard_music/people.h index c1c2f9d3fe..6fbc39489d 100644 --- a/src/data/bard_music/people.h +++ b/src/data/bard_music/people.h @@ -1,602 +1,602 @@ #ifndef GUARD_DATA_BARD_MUSIC_PEOPLE_H #define GUARD_DATA_BARD_MUSIC_PEOPLE_H -const struct BardSound gBardSounds_People[][6] = { - { - { .songLengthId = 44 }, - { .songLengthId = 26 }, - { .songLengthId = 11 }, +static const struct BardSoundTemplate sBardSoundTemplates_People[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_OPPONENT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 19 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_I)] = { + { .songId = PHONEME_ID(PH_PRICE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YOU)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YOURS)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SON)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26, .songLengthOffset = -0x9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YOUR)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO), .lengthAdjustment = -9 }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YOU_RE)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YOU_VE)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MOTHER)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 8 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GRANDFATHER)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UNCLE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FATHER)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 30 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BOY)] = { + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ADULT)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BROTHER)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SISTER)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GRANDMOTHER)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 7 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AUNT)] = { + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PARENT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAN)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ME)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GIRL)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BABE)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_FAMILY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HER)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIM)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLACE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DAUGHTER)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIS)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HE_S)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AREN_T)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SIBLINGS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KID)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHILDREN)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MR)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MRS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MYSELF)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_I_WAS)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TO_ME)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MY)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_I_AM)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_I_VE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHO)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOMEONE)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHO_WAS)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 41 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TO_WHOM)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHOSE)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHO_IS)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 16 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_IT_S)] = { + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LADY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FRIEND)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALLY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PERSON)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 40 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DUDE)] = { + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THEY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THEY_WERE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TO_THEM)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THEIR)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THEY_RE)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THEY_VE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEEN)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TO_US)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OUR)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WE_RE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RIVAL)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WE_VE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 38 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WOMAN)] = { + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 43 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHE_WAS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TO_HER)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HERS)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHE_IS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOME)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h index b3a67a24ed..a278698041 100644 --- a/src/data/bard_music/pokemon.h +++ b/src/data/bard_music/pokemon.h @@ -3,7 +3,7 @@ const u16 gNumBardWords_Species = NUM_SPECIES; -const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][BARD_SOUND_MAX_LENGTH] = { +static const struct BardSoundTemplate sBardSoundTemplates_Pokemon[NUM_SPECIES][MAX_BARD_SOUNDS_PER_WORD] = { [SPECIES_NONE] = { NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -13,1207 +13,1207 @@ const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][BARD_SOUND_MAX_LENGTH] = NULL_BARD_SOUND, }, [SPECIES_BULBASAUR] = { - { .songLengthId = 36 }, - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_IVYSAUR] = { - { .songLengthId = 20 }, - { .songLengthId = 12 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VENUSAUR] = { - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CHARMANDER] = { - { .songLengthId = 6 }, - { .songLengthId = 2 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CHARMELEON] = { - { .songLengthId = 6 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CHARIZARD] = { - { .songLengthId = 6 }, - { .songLengthId = 17 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SQUIRTLE] = { - { .songLengthId = 48 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WARTORTLE] = { - { .songLengthId = 8 }, - { .songLengthId = 48 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BLASTOISE] = { - { .songLengthId = 0 }, - { .songLengthId = 30 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CATERPIE] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_METAPOD] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BUTTERFREE] = { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WEEDLE] = { - { .songLengthId = 14 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KAKUNA] = { - { .songLengthId = 42 }, - { .songLengthId = 39 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BEEDRILL] = { - { .songLengthId = 12 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PIDGEY] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PIDGEOTTO] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PIDGEOT] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RATTATA] = { - { .songLengthId = 0 }, - { .songLengthId = 0 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RATICATE] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 3 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SPEAROW] = { - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FEAROW] = { - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_EKANS] = { - { .songLengthId = 9 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ARBOK] = { - { .songLengthId = 6 }, - { .songLengthId = 23 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PIKACHU] = { - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RAICHU] = { - { .songLengthId = 18 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SANDSHREW] = { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SANDSLASH] = { - { .songLengthId = 0 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NIDORAN_F] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NIDORINA] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NIDOQUEEN] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NIDORAN_M] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NIDORINO] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NIDOKING] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CLEFAIRY] = { - { .songLengthId = 9 }, - { .songLengthId = 11 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CLEFABLE] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 36 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VULPIX] = { - { .songLengthId = 36 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NINETALES] = { - { .songLengthId = 18 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_JIGGLYPUFF] = { - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WIGGLYTUFF] = { - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ZUBAT] = { - { .songLengthId = 39 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GOLBAT] = { - { .songLengthId = 26 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ODDISH] = { - { .songLengthId = 21 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GLOOM] = { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VILEPLUME] = { - { .songLengthId = 20 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PARAS] = { - { .songLengthId = 9 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PARASECT] = { - { .songLengthId = 9 }, - { .songLengthId = 0 }, - { .songLengthId = 9 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VENONAT] = { - { .songLengthId = 9 }, - { .songLengthId = 26 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VENOMOTH] = { - { .songLengthId = 9 }, - { .songLengthId = 26 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DIGLETT] = { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DUGTRIO] = { - { .songLengthId = 44 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MEOWTH] = { - { .songLengthId = 12 }, - { .songLengthId = 33 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PERSIAN] = { - { .songLengthId = 50 }, - { .songLengthId = 17 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PSYDUCK] = { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GOLDUCK] = { - { .songLengthId = 24 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MANKEY] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PRIMEAPE] = { - { .songLengthId = 18 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GROWLITHE] = { - { .songLengthId = 33 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ARCANINE] = { - { .songLengthId = 6 }, - { .songLengthId = 3 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_POLIWAG] = { - { .songLengthId = 21 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_POLIWHIRL] = { - { .songLengthId = 21 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_POLIWRATH] = { - { .songLengthId = 21 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ABRA] = { - { .songLengthId = 0 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KADABRA] = { - { .songLengthId = 44 }, - { .songLengthId = 0 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ALAKAZAM] = { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MACHOP] = { - { .songLengthId = 42 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MACHOKE] = { - { .songLengthId = 42 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MACHAMP] = { - { .songLengthId = 42 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BELLSPROUT] = { - { .songLengthId = 11 }, - { .songLengthId = 33 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WEEPINBELL] = { - { .songLengthId = 12 }, - { .songLengthId = 15 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VICTREEBEL] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TENTACOOL] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TENTACRUEL] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GEODUDE] = { - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GRAVELER] = { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GOLEM] = { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PONYTA] = { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RAPIDASH] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SLOWPOKE] = { - { .songLengthId = 24 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SLOWBRO] = { - { .songLengthId = 24 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAGNEMITE] = { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 18 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAGNETON] = { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FARFETCHD] = { - { .songLengthId = 6 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DODUO] = { - { .songLengthId = 26 }, - { .songLengthId = 39 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DODRIO] = { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SEEL] = { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DEWGONG] = { - { .songLengthId = 39 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GRIMER] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MUK] = { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHELLDER] = { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CLOYSTER] = { - { .songLengthId = 30 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GASTLY] = { - { .songLengthId = 0 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HAUNTER] = { - { .songLengthId = 21 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GENGAR] = { - { .songLengthId = 9 }, - { .songLengthId = 8 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ONIX] = { - { .songLengthId = 21 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DROWZEE] = { - { .songLengthId = 33 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HYPNO] = { - { .songLengthId = 17 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KRABBY] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KINGLER] = { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VOLTORB] = { - { .songLengthId = 26 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ELECTRODE] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_EXEGGCUTE] = { - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_EXEGGUTOR] = { - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 9 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CUBONE] = { - { .songLengthId = 45 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAROWAK] = { - { .songLengthId = 0 }, - { .songLengthId = 26 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HITMONLEE] = { - { .songLengthId = 17 }, - { .songLengthId = 21 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HITMONCHAN] = { - { .songLengthId = 17 }, - { .songLengthId = 21 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LICKITUNG] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KOFFING] = { - { .songLengthId = 21 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WEEZING] = { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RHYHORN] = { - { .songLengthId = 20 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RHYDON] = { - { .songLengthId = 18 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CHANSEY] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TANGELA] = { - { .songLengthId = 2 }, - { .songLengthId = 9 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KANGASKHAN] = { - { .songLengthId = 0 }, - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HORSEA] = { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SEADRA] = { - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GOLDEEN] = { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SEAKING] = { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_STARYU] = { - { .songLengthId = 27 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_STARMIE] = { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MR_MIME] = { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 18 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SCYTHER] = { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_JYNX] = { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ELECTABUZZ] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAGMAR] = { - { .songLengthId = 0 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PINSIR] = { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TAUROS] = { - { .songLengthId = 29 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAGIKARP] = { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GYARADOS] = { - { .songLengthId = 29 }, - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 29 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LAPRAS] = { - { .songLengthId = 44 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DITTO] = { - { .songLengthId = 17 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_EEVEE] = { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VAPOREON] = { - { .songLengthId = 3 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_JOLTEON] = { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FLAREON] = { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PORYGON] = { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 21 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_OMANYTE] = { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_OMASTAR] = { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KABUTO] = { - { .songLengthId = 42 }, - { .songLengthId = 39 }, - { .songLengthId = 26 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KABUTOPS] = { - { .songLengthId = 42 }, - { .songLengthId = 39 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_AERODACTYL] = { - { .songLengthId = 3 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SNORLAX] = { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ARTICUNO] = { - { .songLengthId = 6 }, - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ZAPDOS] = { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MOLTRES] = { - { .songLengthId = 26 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DRATINI] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DRAGONAIR] = { - { .songLengthId = 0 }, - { .songLengthId = 21 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DRAGONITE] = { - { .songLengthId = 0 }, - { .songLengthId = 21 }, - { .songLengthId = 18 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MEWTWO] = { - { .songLengthId = 45 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MEW] = { - { .songLengthId = 45 }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -1221,801 +1221,801 @@ const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][BARD_SOUND_MAX_LENGTH] = NULL_BARD_SOUND, }, [SPECIES_CHIKORITA] = { - { .songLengthId = 17 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BAYLEEF] = { - { .songLengthId = 3 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MEGANIUM] = { - { .songLengthId = 3 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CYNDAQUIL] = { - { .songLengthId = 15 }, - { .songLengthId = 42 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_QUILAVA] = { - { .songLengthId = 17 }, - { .songLengthId = 6 }, - { .songLengthId = 8 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TYPHLOSION] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TOTODILE] = { - { .songLengthId = 24 }, - { .songLengthId = 24 }, - { .songLengthId = 18 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CROCONAW] = { - { .songLengthId = 27 }, - { .songLengthId = 24 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FERALIGATR] = { - { .songLengthId = 48 }, - { .songLengthId = 0 }, - { .songLengthId = 15 }, - { .songLengthId = 3 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, }, [SPECIES_SENTRET] = { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FURRET] = { - { .songLengthId = 48 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HOOTHOOT] = { - { .songLengthId = 39 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NOCTOWL] = { - { .songLengthId = 27 }, - { .songLengthId = 33 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LEDYBA] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LEDIAN] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SPINARAK] = { - { .songLengthId = 15 }, - { .songLengthId = 48 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ARIADOS] = { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CROBAT] = { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CHINCHOU] = { - { .songLengthId = 15 }, - { .songLengthId = 33 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LANTURN] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PICHU] = { - { .songLengthId = 12 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CLEFFA] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_IGGLYBUFF] = { - { .songLengthId = 17 }, - { .songLengthId = 42 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TOGEPI] = { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TOGETIC] = { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NATU] = { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_XATU] = { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAREEP] = { - { .songLengthId = 29 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FLAAFFY] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_AMPHAROS] = { - { .songLengthId = 0 }, - { .songLengthId = 6 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BELLOSSOM] = { - { .songLengthId = 9 }, - { .songLengthId = 27 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MARILL] = { - { .songLengthId = 8 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_AZUMARILL] = { - { .songLengthId = 8 }, - { .songLengthId = 39 }, - { .songLengthId = 44 }, - { .songLengthId = 16 }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SUDOWOODO] = { - { .songLengthId = 39 }, - { .songLengthId = 24 }, - { .songLengthId = 39 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_POLITOED] = { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HOPPIP] = { - { .songLengthId = 29 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SKIPLOOM] = { - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_JUMPLUFF] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_AIPOM] = { - { .songLengthId = 3 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SUNKERN] = { - { .songLengthId = 44 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SUNFLORA] = { - { .songLengthId = 44 }, - { .songLengthId = 24 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_YANMA] = { - { .songLengthId = 0 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WOOPER] = { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_QUAGSIRE] = { - { .songLengthId = 0 }, - { .songLengthId = 18 }, - { .songLengthId = 50 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ESPEON] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_UMBREON] = { - { .songLengthId = 42 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MURKROW] = { - { .songLengthId = 48 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SLOWKING] = { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MISDREAVUS] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_UNOWN] = { - { .songLengthId = 42 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WOBBUFFET] = { - { .songLengthId = 29 }, - { .songLengthId = 44 }, - { .songLengthId = 9 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GIRAFARIG] = { - { .songLengthId = 48 }, - { .songLengthId = 0 }, - { .songLengthId = 42 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PINECO] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FORRETRESS] = { - { .songLengthId = 26 }, - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DUNSPARCE] = { - { .songLengthId = 42 }, - { .songLengthId = 28 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GLIGAR] = { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_STEELIX] = { - { .songLengthId = 12 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SNUBBULL] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GRANBULL] = { - { .songLengthId = 2 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_QWILFISH] = { - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SCIZOR] = { - { .songLengthId = 17 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHUCKLE] = { - { .songLengthId = 42 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HERACROSS] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SNEASEL] = { - { .songLengthId = 12 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TEDDIURSA] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_URSARING] = { - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SLUGMA] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAGCARGO] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SWINUB] = { - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PILOSWINE] = { - { .songLengthId = 17 }, - { .songLengthId = 26 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CORSOLA] = { - { .songLengthId = 24 }, - { .songLengthId = 24 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_REMORAID] = { - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 3 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_OCTILLERY] = { - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DELIBIRD] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MANTINE] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SKARMORY] = { - { .songLengthId = 27 }, - { .songLengthId = 26 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HOUNDOUR] = { - { .songLengthId = 35 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HOUNDOOM] = { - { .songLengthId = 33 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KINGDRA] = { - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PHANPY] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DONPHAN] = { - { .songLengthId = 27 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PORYGON2] = { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_STANTLER] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SMEARGLE] = { - { .songLengthId = 48 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TYROGUE] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HITMONTOP] = { - { .songLengthId = 17 }, - { .songLengthId = 21 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SMOOCHUM] = { - { .songLengthId = 39 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ELEKID] = { - { .songLengthId = 11 }, - { .songLengthId = 11 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAGBY] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MILTANK] = { - { .songLengthId = 17 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BLISSEY] = { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RAIKOU] = { - { .songLengthId = 18 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ENTEI] = { - { .songLengthId = 9 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SUICUNE] = { - { .songLengthId = 12 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LARVITAR] = { - { .songLengthId = 21 }, - { .songLengthId = 17 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PUPITAR] = { - { .songLengthId = 39 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TYRANITAR] = { - { .songLengthId = 18 }, - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LUGIA] = { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HO_OH] = { - { .songLengthId = 24 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CELEBI] = { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, @@ -2221,1082 +2221,1082 @@ const struct BardSound gBardSounds_Pokemon[NUM_SPECIES][BARD_SOUND_MAX_LENGTH] = NULL_BARD_SOUND, }, [SPECIES_TREECKO] = { - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GROVYLE] = { - { .songLengthId = 24 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SCEPTILE] = { - { .songLengthId = 9 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TORCHIC] = { - { .songLengthId = 24 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_COMBUSKEN] = { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BLAZIKEN] = { - { .songLengthId = 3 }, - { .songLengthId = 17 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MUDKIP] = { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MARSHTOMP] = { - { .songLengthId = 27 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SWAMPERT] = { - { .songLengthId = 27 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_POOCHYENA] = { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MIGHTYENA] = { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 44 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ZIGZAGOON] = { - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 39 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LINOONE] = { - { .songLengthId = 20 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WURMPLE] = { - { .songLengthId = 48 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SILCOON] = { - { .songLengthId = 17 }, - { .songLengthId = 40 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BEAUTIFLY] = { - { .songLengthId = 45 }, - { .songLengthId = 9 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CASCOON] = { - { .songLengthId = 0 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DUSTOX] = { - { .songLengthId = 44 }, - { .songLengthId = 23 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LOTAD] = { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LOMBRE] = { - { .songLengthId = 24 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LUDICOLO] = { - { .songLengthId = 39 }, - { .songLengthId = 9 }, - { .songLengthId = 26 }, - { .songLengthId = 26 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SEEDOT] = { - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NUZLEAF] = { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHIFTRY] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NINCADA] = { - { .songLengthId = 15 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NINJASK] = { - { .songLengthId = 15 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHEDINJA] = { - { .songLengthId = 9 }, - { .songLengthId = 15 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TAILLOW] = { - { .songLengthId = 3 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SWELLOW] = { - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHROOMISH] = { - { .songLengthId = 39 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BRELOOM] = { - { .songLengthId = 9 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SPINDA] = { - { .songLengthId = 15 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WINGULL] = { - { .songLengthId = 15 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PELIPPER] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SURSKIT] = { - { .songLengthId = 48 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MASQUERAIN] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WAILMER] = { - { .songLengthId = 5 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WAILORD] = { - { .songLengthId = 3 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SKITTY] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DELCATTY] = { - { .songLengthId = 9 }, - { .songLengthId = 0 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KECLEON] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BALTOY] = { - { .songLengthId = 1 }, - { .songLengthId = 30 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CLAYDOL] = { - { .songLengthId = 3 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NOSEPASS] = { - { .songLengthId = 24 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TORKOAL] = { - { .songLengthId = 24 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SABLEYE] = { - { .songLengthId = 3 }, - { .songLengthId = 11 }, - { .songLengthId = 18 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BARBOACH] = { - { .songLengthId = 27 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WHISCASH] = { - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LUVDISC] = { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CORPHISH] = { - { .songLengthId = 24 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CRAWDAUNT] = { - { .songLengthId = 27 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FEEBAS] = { - { .songLengthId = 14 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MILOTIC] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CARVANHA] = { - { .songLengthId = 27 }, - { .songLengthId = 1 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHARPEDO] = { - { .songLengthId = 29 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TRAPINCH] = { - { .songLengthId = 0 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VIBRAVA] = { - { .songLengthId = 17 }, - { .songLengthId = 27 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_FLYGON] = { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAKUHITA] = { - { .songLengthId = 27 }, - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HARIYAMA] = { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ELECTRIKE] = { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MANECTRIC] = { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_NUMEL] = { - { .songLengthId = 44 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CAMERUPT] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SPHEAL] = { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SEALEO] = { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WALREIN] = { - { .songLengthId = 27 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CACNEA] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CACTURNE] = { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SNORUNT] = { - { .songLengthId = 24 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GLALIE] = { - { .songLengthId = 5 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LUNATONE] = { - { .songLengthId = 39 }, - { .songLengthId = 44 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SOLROCK] = { - { .songLengthId = 24 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_AZURILL] = { - { .songLengthId = 6 }, - { .songLengthId = 39 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SPOINK] = { - { .songLengthId = 30 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GRUMPIG] = { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_PLUSLE] = { - { .songLengthId = 42 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MINUN] = { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MAWILE] = { - { .songLengthId = 27 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MEDITITE] = { - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_MEDICHAM] = { - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 0 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SWABLU] = { - { .songLengthId = 27 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ALTARIA] = { - { .songLengthId = 6 }, - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WYNAUT] = { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DUSKULL] = { - { .songLengthId = 42 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DUSCLOPS] = { - { .songLengthId = 42 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ROSELIA] = { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SLAKOTH] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VIGOROTH] = { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SLAKING] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GULPIN] = { - { .songLengthId = 36 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SWALOT] = { - { .songLengthId = 27 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_TROPIUS] = { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_WHISMUR] = { - { .songLengthId = 17 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LOUDRED] = { - { .songLengthId = 33 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_EXPLOUD] = { - { .songLengthId = 9 }, - { .songLengthId = 33 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CLAMPERL] = { - { .songLengthId = 0 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_HUNTAIL] = { - { .songLengthId = 42 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GOREBYSS] = { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ABSOL] = { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHUPPET] = { - { .songLengthId = 42 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BANETTE] = { - { .songLengthId = 3 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SEVIPER] = { - { .songLengthId = 9 }, - { .songLengthId = 18 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ZANGOOSE] = { - { .songLengthId = 3 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RELICANTH] = { - { .songLengthId = 9 }, - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ARON] = { - { .songLengthId = 27 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LAIRON] = { - { .songLengthId = 5 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_AGGRON] = { - { .songLengthId = 0 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CASTFORM] = { - { .songLengthId = 0 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_VOLBEAT] = { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ILLUMISE] = { - { .songLengthId = 12 }, - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 3 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LILEEP] = { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CRADILY] = { - { .songLengthId = 3 }, - { .songLengthId = 17 }, - { .songLengthId = 12 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ANORITH] = { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 17 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_ARMALDO] = { - { .songLengthId = 27 }, - { .songLengthId = 27 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RALTS] = { - { .songLengthId = 7 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KIRLIA] = { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GARDEVOIR] = { - { .songLengthId = 27 }, - { .songLengthId = 9 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BAGON] = { - { .songLengthId = 5 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SHELGON] = { - { .songLengthId = 9 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_SALAMENCE] = { - { .songLengthId = 0 }, - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_BELDUM] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_METANG] = { - { .songLengthId = 9 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_METAGROSS] = { - { .songLengthId = 9 }, - { .songLengthId = 42 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_REGIROCK] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_REGICE] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_REGISTEEL] = { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_KYOGRE] = { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 48 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_GROUDON] = { - { .songLengthId = 33 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_RAYQUAZA] = { - { .songLengthId = 3 }, - { .songLengthId = 3 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LATIAS] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_LATIOS] = { - { .songLengthId = 0 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_JIRACHI] = { - { .songLengthId = 48 }, - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_DEOXYS] = { - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, [SPECIES_CHIMECHO] = { - { .songLengthId = 18 }, - { .songLengthId = 9 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, } diff --git a/src/data/bard_music/speech.h b/src/data/bard_music/speech.h index dc7844ec89..d6f409be8b 100644 --- a/src/data/bard_music/speech.h +++ b/src/data/bard_music/speech.h @@ -1,482 +1,482 @@ #ifndef GUARD_DATA_BARD_MUSIC_SPEECH_H #define GUARD_DATA_BARD_MUSIC_SPEECH_H -const struct BardSound gBardSounds_Speech[][6] = { - { - { .songLengthId = 9 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Speech[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_LISTEN)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 9 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_NOT_VERY)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MEAN)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LAY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 10 }, + [EC_INDEX(EC_WORD_RECOMMEND)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NITWIT)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_QUITE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FROM)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FEELING)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BUT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 9 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_HOWEVER)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CASE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THE)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_MISS)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HOW)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ENOUGH)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 23 }, + [EC_INDEX(EC_WORD_A_LOT)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 17 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_A_LITTLE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 45 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ABSOLUTELY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, + [EC_INDEX(EC_WORD_AND)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ONLY)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, + [EC_INDEX(EC_WORD_AROUND)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PROBABLY)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_IF)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_VERY)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 20 }, - { .songLengthId = 12 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_A_TINY_BIT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WILD)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 11 }, + [EC_INDEX(EC_WORD_THAT_S)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_JUST)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 11 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EVEN_SO)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MUST_BE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 48 }, - { .songLengthId = 6 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NATURALLY)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 35 }, + [EC_INDEX(EC_WORD_FOR_NOW)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 50 }, - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_UNDERSTOOD)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_JOKING)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_READY)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_SOMETHING)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 35 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOMEHOW)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALTHOUGH)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALSO)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PERFECT)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 44 }, - { .songLengthId = 1 }, + [EC_INDEX(EC_WORD_AS_MUCH_AS)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 10 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_REALLY)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRULY)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 14 }, - { .songLengthId = 38 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SERIOUSLY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 7 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOTALLY)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 16 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UNTIL)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AS_IF)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 40 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MOOD)] = { + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RATHER)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 38 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AWFULLY)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_MODE)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MORE)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOO_LATE)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 6 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FINALLY)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 8 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ANY)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_INSTEAD)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FANTASTIC)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/status.h b/src/data/bard_music/status.h index 9a3fd01393..d4acac9739 100644 --- a/src/data/bard_music/status.h +++ b/src/data/bard_music/status.h @@ -1,874 +1,874 @@ #ifndef GUARD_DATA_BARD_MUSIC_STATUS_H #define GUARD_DATA_BARD_MUSIC_STATUS_H -const struct BardSound gBardSounds_Status[][6] = { - { - { .songLengthId = 8 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Status[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_DARK)] = { + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STENCH)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THICK_FAT)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RAIN_DISH)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DRIZZLE)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 12 }, - { .songLengthId = 6 }, - { .songLengthId = 0 }, + [EC_INDEX(EC_WORD_ARENA_TRAP)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 17 }, - { .songLengthId = 44 }, - { .songLengthId = 3 }, + [EC_INDEX(EC_WORD_INTIMIDATE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ROCK_HEAD)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COLOR)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 50 }, - { .songLengthId = 1 }, - { .songLengthId = 44 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_ALT_COLOR)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ROCK)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 36 }, + [EC_INDEX(EC_WORD_BEAUTIFUL)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEAUTY)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 21 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AIR_LOCK)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PSYCHIC)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_HYPER_CUTTER)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FIGHTING)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 24 }, - { .songLengthId = 0 }, + [EC_INDEX(EC_WORD_SHADOW_TAG)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMART)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 50 }, - { .songLengthId = 9 }, + [EC_INDEX(EC_WORD_SMARTNESS)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SPEED_BOOST)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COOL)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 41 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COOLNESS)] = { + { .songId = PHONEME_ID(PH_GOOSE_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 6 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_BATTLE_ARMOR)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CUTE)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CUTENESS)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STURDY)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 15 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SUCTION_CUPS)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GRASS)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 23 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_CLEAR_BODY)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TORRENT)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GHOST)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ICE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GUTS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ROUGH_SKIN)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 6 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHELL_ARMOR)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 50 }, - { .songLengthId = 8 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NATURAL_CURE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DAMP)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GROUND)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LIMBER)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MAGNET_PULL)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHITE_SMOKE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 24 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SYNCHRONIZE)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 48 }, - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_OVERGROW)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SWIFT_SWIM)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SAND_STREAM)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SAND_VEIL)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KEEN_EYE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 48 }, - { .songLengthId = 24 }, - { .songLengthId = 42 }, + [EC_INDEX(EC_WORD_INNER_FOCUS)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STATIC)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TYPE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOUGH)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TOUGHNESS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHED_SKIN)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_HUGE_POWER)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 36 }, - { .songLengthId = 44 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_VOLT_ABSORB)] = { + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 48 }, - { .songLengthId = 44 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_WATER_ABSORB)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 9 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_ELECTRIC)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 2 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FORECAST)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 14 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SERENE_GRACE)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 32 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_POISON)] = { + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 32 }, - { .songLengthId = 27 }, - { .songLengthId = 30 }, + [EC_INDEX(EC_WORD_POISON_POINT)] = { + { .songId = PHONEME_ID(PH_CHOICE_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DRAGON)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRACE)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OBLIVIOUS)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 0 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRUANT)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 8 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_RUN_AWAY)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_STICKY_HOLD)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CLOUD_NINE)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NORMAL)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STEEL)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 15 }, - { .songLengthId = 3 }, + [EC_INDEX(EC_WORD_ILLUMINATE)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_EARLY_BIRD)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 38 }, + [EC_INDEX(EC_WORD_HUSTLE)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHINE)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FLYING)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DROUGHT)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 17 }, - { .songLengthId = 21 }, + [EC_INDEX(EC_WORD_LIGHTNINGROD)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 33 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COMPOUNDEYES)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 36 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_MARVEL_SCALE)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 48 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_WONDER_GUARD)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 21 }, - { .songLengthId = 12 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_INSOMNIA)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 12 }, - { .songLengthId = 3 }, + [EC_INDEX(EC_WORD_LEVITATE)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PLUS)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PRESSURE)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 9 }, - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_LIQUID_OOZE)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 48 }, - { .songLengthId = 3 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COLOR_CHANGE)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 39 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOUNDPROOF)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 9 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EFFECT_SPORE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 42 }, + [EC_INDEX(EC_WORD_PKRS)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FIRE)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 21 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_FLAME_BODY)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MINUS)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_OWN_TEMPO)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 1 }, - { .songLengthId = 44 }, - { .songLengthId = 27 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_MAGMA_ARMOR)] = { + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WATER)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 48 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WATER_VEIL)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BUG)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 7 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SWARM)] = { + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 7 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CUTE_CHARM)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 39 }, - { .songLengthId = 17 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_IMMUNITY)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BLAZE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PICKUP)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PATTERN)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 20 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_FLASH_FIRE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 27 }, - { .songLengthId = 48 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_VITAL_SPIRIT)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CHLOROPHYLL)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 45 }, - { .songLengthId = 33 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_PURE_POWER)] = { + { .songId = PHONEME_ID(PH_CURE_BLEND) }, + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 43 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHIELD_DUST)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/time.h b/src/data/bard_music/time.h index 1f7dac8a60..a2952517ef 100644 --- a/src/data/bard_music/time.h +++ b/src/data/bard_music/time.h @@ -1,362 +1,362 @@ #ifndef GUARD_DATA_BARD_MUSIC_TIME_H #define GUARD_DATA_BARD_MUSIC_TIME_H -const struct BardSound gBardSounds_Time[][6] = { - { - { .songLengthId = 27 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Time[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_FALL)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MORNING)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 28 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_TOMORROW)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 2 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LAST)] = { + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DAY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOMETIME)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALWAYS)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CURRENT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 9 }, - { .songLengthId = 44 }, + [EC_INDEX(EC_WORD_FOREVER)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DAYS)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_END)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TUESDAY)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 50 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_YESTERDAY)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TODAY)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FRIDAY)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MONDAY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LATER)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 12 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_EARLIER)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 44 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_ANOTHER)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TIME)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 17 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FINISH)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WEDNESDAY)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 40 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SOON)] = { + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_START)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MONTH)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_STOP)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 33 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NOW)] = { + { .songId = PHONEME_ID(PH_MOUTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FINAL)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEXT)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AGE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 48 }, - { .songLengthId = 5 }, + [EC_INDEX(EC_WORD_SATURDAY)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SUMMER)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SUNDAY)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 15 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BEGINNING)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SPRING)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DAYTIME)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 50 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WINTER)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DAILY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 10 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OLDEN)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ALMOST)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEARLY)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 48 }, - { .songLengthId = 5 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_THURSDAY)] = { + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 18 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NIGHTTIME)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 20 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NIGHT)] = { + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 14 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WEEK)] = { + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/trainer.h b/src/data/bard_music/trainer.h index 05fc6a6ef4..d49397eabf 100644 --- a/src/data/bard_music/trainer.h +++ b/src/data/bard_music/trainer.h @@ -1,218 +1,218 @@ #ifndef GUARD_DATA_BARD_MUSIC_TRAINER_H #define GUARD_DATA_BARD_MUSIC_TRAINER_H -const struct BardSound gBardSounds_Trainer[][6] = { - { - { .songLengthId = 18 }, - { .songLengthId = 39 }, - { .songLengthId = 45 }, +static const struct BardSoundTemplate sBardSoundTemplates_Trainer[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_I_CHOOSE_YOU)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_CURE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 21 }, - { .songLengthId = 42 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GOTCHA)] = { + { .songId = PHONEME_ID(PH_LOT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRADE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 18 }, - { .songLengthId = 50 }, + [EC_INDEX(EC_WORD_SAPPHIRE)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 27 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EVOLVE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 18 }, - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_ENCYCLOPEDIA)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, }, - { - { .songLengthId = 3 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_NATURE)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CENTER)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EGG)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LINK)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 8 }, - { .songLengthId = 6 }, - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_SP_ABILITY)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_SOLO) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, }, - { - { .songLengthId = 3 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TRAINER)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 50 }, - { .songLengthId = 15 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_VERSION)] = { + { .songId = PHONEME_ID(PH_NURSE_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 0 }, + [EC_INDEX(EC_WORD_POKENAV)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 27 }, + [EC_INDEX(EC_WORD_POKEMON)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GET)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 12 }, - { .songLengthId = 9 }, + [EC_INDEX(EC_WORD_POKEDEX)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_RUBY)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LEVEL)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, + [EC_INDEX(EC_WORD_RED)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GREEN)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, + [EC_INDEX(EC_WORD_BAG)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FLAME)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_GOLD)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_LEAF)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_SILVER)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 48 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_EMERALD)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/trendysaying.h b/src/data/bard_music/trendysaying.h index ccd9083ead..575f105cbc 100644 --- a/src/data/bard_music/trendysaying.h +++ b/src/data/bard_music/trendysaying.h @@ -1,266 +1,266 @@ #ifndef GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H #define GUARD_DATA_BARD_MUSIC_TRENDYSAYING_H -const struct BardSound gBardSounds_TrendySaying[][6] = { - { - { .songLengthId = 5 }, - { .songLengthId = 2 }, - { .songLengthId = 20 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_TrendySaying[NUM_TRENDY_SAYINGS][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_KTHX_BYE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YES_SIR_EXCL)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27 }, - { .songLengthId = 27 }, - { .songLengthId = 23 }, + [EC_INDEX(EC_WORD_AVANT_GARDE)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_THOUGHT_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 38 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_COUPLE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 44 }, - { .songLengthId = 18 }, + [EC_INDEX(EC_WORD_MUCH_OBLIGED)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 29 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YEEHAW_EXCL)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MEGA)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 17 }, - { .songLengthId = 3 }, - { .songLengthId = 26 }, + [EC_INDEX(EC_WORD_1_HIT_KO_EXCL)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 11 }, - { .songLengthId = 17 }, - { .songLengthId = 14 }, + [EC_INDEX(EC_WORD_DESTINY)] = { + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CANCEL)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NEW)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 9 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FLATTEN)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KIDDING)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOSER)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_LOSING)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 0 }, - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HAPPENING)] = { + { .songId = PHONEME_ID(PH_TRAP_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIP_AND)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHAKE)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHADY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UPBEAT)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MODERN)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SMELL_YA)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 3 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BANG)] = { + { .songId = PHONEME_ID(PH_FACE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 35 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_KNOCKOUT)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 36 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HASSLE)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WINNER)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_FEVER)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 29 }, - { .songLengthId = 44 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_WANNABE)] = { + { .songId = PHONEME_ID(PH_THOUGHT_SOLO) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_BABY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEART)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OLD)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 43 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YOUNG)] = { + { .songId = PHONEME_ID(PH_STRUT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UGLY)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, diff --git a/src/data/bard_music/voices.h b/src/data/bard_music/voices.h index 97f249ecb5..ca7012198f 100644 --- a/src/data/bard_music/voices.h +++ b/src/data/bard_music/voices.h @@ -1,507 +1,507 @@ #ifndef GUARD_DATA_BARD_MUSIC_VOICES_H #define GUARD_DATA_BARD_MUSIC_VOICES_H -const struct BardSound gBardSounds_Voices[][6] = { - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, +static const struct BardSoundTemplate sBardSoundTemplates_Voices[][MAX_BARD_SOUNDS_PER_WORD] = { + [EC_INDEX(EC_WORD_EXCL)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EXCL_EXCL)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_QUES_EXCL)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_QUES)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ELLIPSIS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ELLIPSIS_EXCL)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 48 }, - { .songLengthId = 51 }, - { .songLengthId = 12 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, + PREV_BARD_SOUND, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DASH)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_DASH_DASH_DASH)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 26 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UH_OH)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 27, .songLengthOffset = 0x5, .unused = 0x8 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WAAAH)] = { + { .songId = PHONEME_ID(PH_THOUGHT_BLEND), .lengthAdjustment = +5, .unused = 8 }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AHAHA)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OH_QUES)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_NOPE)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_URGH)] = { + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 40 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HMM)] = { + { .songId = PHONEME_ID(PH_GOOSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 25 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WHOAH)] = { + { .songId = PHONEME_ID(PH_GOAT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 49 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WROOOAAR_EXCL)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + { .songId = PHONEME_ID(PH_NURSE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 35 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WOW)] = { + { .songId = PHONEME_ID(PH_MOUTH_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 17 }, - { .songLengthId = 17 }, - { .songLengthId = 17 }, + [EC_INDEX(EC_WORD_GIGGLE)] = { + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, + { .songId = PHONEME_ID(PH_KIT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 10 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SIGH)] = { + { .songId = PHONEME_ID(PH_DRESS_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 14 }, - { .songLengthId = 12 }, - { .songLengthId = 2 }, - { .songLengthId = 36 }, + [EC_INDEX(EC_WORD_UNBELIEVABLE)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_SOLO) }, + { .songId = PHONEME_ID(PH_FOOT_BLEND) }, NULL_BARD_SOUND, }, - { - { .songLengthId = 19 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CRIES)] = { + { .songId = PHONEME_ID(PH_PRICE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 14 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AGREE)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EH_QUES)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 18 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_CRY)] = { + { .songId = PHONEME_ID(PH_PRICE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_EHEHE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 30 }, - { .songLengthId = 30 }, - { .songLengthId = 30 }, + [EC_INDEX(EC_WORD_OI_OI_OI)] = { + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, + { .songId = PHONEME_ID(PH_CHOICE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 1 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OH_YEAH)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_TRAP_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OH)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OOPS)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 23 }, - { .songLengthId = 11 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SHOCKED)] = { + { .songId = PHONEME_ID(PH_LOT_SOLO) }, + { .songId = PHONEME_ID(PH_DRESS_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 13 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_EEK)] = { + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GRAAAH)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 23 }, + [EC_INDEX(EC_WORD_GWAHAHAHA)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_LOT_SOLO) }, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 5 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WAY)] = { + { .songId = PHONEME_ID(PH_FACE_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_TCH)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEHE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HAH)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 44 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YUP)] = { + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_HAHAHA)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 19 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AIYEEH)] = { + { .songId = PHONEME_ID(PH_PRICE_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 7 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HIYAH)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 39 }, - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_FUFUFU)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 26 }, - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_LOL)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 26 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_SNORT)] = { + { .songId = PHONEME_ID(PH_GOAT_SOLO) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HUMPH)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 12 }, - { .songLengthId = 12 }, - { .songLengthId = 12 }, + [EC_INDEX(EC_WORD_HEHEHE)] = { + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 9 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_HEH)] = { + { .songId = PHONEME_ID(PH_DRESS_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 24 }, - { .songLengthId = 24 }, + [EC_INDEX(EC_WORD_HOHOHO)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 42 }, - { .songLengthId = 44 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_UH_HUH)] = { + { .songId = PHONEME_ID(PH_STRUT_BLEND) }, + { .songId = PHONEME_ID(PH_STRUT_SOLO) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 14 }, - { .songLengthId = 48 }, + [EC_INDEX(EC_WORD_OH_DEAR)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FLEECE_SOLO) }, + { .songId = PHONEME_ID(PH_NURSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 28 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_ARRGH)] = { + { .songId = PHONEME_ID(PH_THOUGHT_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 39 }, - { .songLengthId = 39 }, - { .songLengthId = 39 }, + [EC_INDEX(EC_WORD_MUFUFU)] = { + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, + { .songId = PHONEME_ID(PH_GOOSE_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 15 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_MMM)] = { + { .songId = PHONEME_ID(PH_KIT_BLEND) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OH_KAY)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 24 }, - { .songLengthId = 4 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_OKAY)] = { + { .songId = PHONEME_ID(PH_GOAT_BLEND) }, + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_LALALA)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 4 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_YAY)] = { + { .songId = PHONEME_ID(PH_FACE_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 7 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_AWW)] = { + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 34 }, - { .songLengthId = 13 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_WOWEE)] = { + { .songId = PHONEME_ID(PH_MOUTH_HELD) }, + { .songId = PHONEME_ID(PH_FLEECE_HELD) }, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 7 }, - { .songLengthId = 51 }, - { .songLengthId = 51 }, + [EC_INDEX(EC_WORD_GWAH)] = { + { .songId = PHONEME_ID(PH_CLOTH_HELD) }, + PREV_BARD_SOUND, + PREV_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, NULL_BARD_SOUND, }, - { - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, - { .songLengthId = 6 }, + [EC_INDEX(EC_WORD_WAHAHAHA)] = { + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, + { .songId = PHONEME_ID(PH_CLOTH_BLEND) }, NULL_BARD_SOUND, NULL_BARD_SOUND, } diff --git a/src/data/bard_music/word_pitch.h b/src/data/bard_music/word_pitch.h deleted file mode 100644 index 7b4205da5f..0000000000 --- a/src/data/bard_music/word_pitch.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef GUARD_WORD_PITCH_H -#define GUARD_WORD_PITCH_H - -#define PITCH_END 0x1800 - -static const s16 sPitch1_0[] = { -0x300, PITCH_END }; -static const s16 sPitch1_1[] = { 0x0900, PITCH_END }; -static const s16 sPitch1_2[] = { 0x0100, PITCH_END }; -static const s16 sPitch1_3[] = { 0x0400, PITCH_END }; -static const s16 sPitch1_4[] = { 0x0b00, PITCH_END }; -static const s16 sPitch2_0[] = { -0x300, -0x100, PITCH_END }; -static const s16 sPitch2_1[] = { -0x300, 0x0200, PITCH_END }; -static const s16 sPitch2_2[] = { 0x0200, 0x0400, PITCH_END }; -static const s16 sPitch2_3[] = { 0x0600, 0x0800, PITCH_END }; -static const s16 sPitch2_4[] = { 0x0900, 0x0800, PITCH_END }; -static const s16 sPitch3_0[] = { -0x300, -0x100, -0x300, PITCH_END }; -static const s16 sPitch3_1[] = { 0x0400, -0x300, 0x0400, PITCH_END }; -static const s16 sPitch3_2[] = { 0x0900, 0x0800, 0x0600, PITCH_END }; -static const s16 sPitch3_3[] = { 0x0100, 0x0200, 0x0400, PITCH_END }; -static const s16 sPitch3_4[] = { 0x0600, 0x1000, 0x0d00, PITCH_END }; -static const s16 sPitch4_0[] = { 0x0400, 0x0900, 0x0400, 0x0900, PITCH_END }; -static const s16 sPitch4_1[] = { 0x0900, 0x0400, 0x0d00, 0x0400, PITCH_END }; -static const s16 sPitch4_2[] = { 0x0100, 0x0200, 0x0400, 0x0600, PITCH_END }; -static const s16 sPitch4_3[] = { 0x0800, 0x0600, 0x0400, 0x0200, PITCH_END }; -static const s16 sPitch4_4[] = { 0x0f00, 0x0d00, 0x0b00, 0x0a00, PITCH_END }; -static const s16 sPitch5_0[] = { -0x300, -0x100, 0x0100, 0x0200, 0x0400, PITCH_END }; -static const s16 sPitch5_1[] = { 0x0900, 0x0800, 0x0600, 0x0400, 0x0200, PITCH_END }; -static const s16 sPitch5_2[] = { 0x0100, 0x0400, 0x0900, 0x0400, 0x0100, PITCH_END }; -static const s16 sPitch5_3[] = { 0x0900, 0x0400, 0x0900, 0x0400, -0x300, PITCH_END }; -static const s16 sPitch5_4[] = { 0x0b00, 0x0800, 0x0400, 0x0400, 0x0600, PITCH_END }; -static const s16 sPitch6_0[] = { -0x300, -0x100, 0x0100, 0x0200, 0x0400, 0x0600, PITCH_END }; -static const s16 sPitch6_1[] = { 0x0800, 0x0600, 0x0400, 0x0200, 0x0100, -0x100, PITCH_END }; -static const s16 sPitch6_2[] = { 0x0100, 0x0200, 0x0400, 0x0100, 0x0200, 0x1000, PITCH_END }; -static const s16 sPitch6_3[] = { 0x0400, -0x300, 0x0900, 0x0400, 0x0900, 0x0400, PITCH_END }; -static const s16 sPitch6_4[] = { 0x0800, 0x0900, 0x0800, 0x0900, 0x0800, 0x0900, PITCH_END }; -static const s16 sPitch7_0[] = { 0x0200, 0x0100, 0x0200, 0x0100, 0x0200, 0x0400, 0x0200, PITCH_END }; -static const s16 sPitch7_1[] = { 0x0100, 0x0100, -0x100, -0x100, -0x300, 0x0400, -0x300, PITCH_END }; -static const s16 sPitch7_2[] = { 0x0800, 0x0900, 0x0b00, 0x0d00, 0x0e00, 0x0d00, 0x0b00, PITCH_END }; -static const s16 sPitch7_3[] = { 0x0800, 0x0600, 0x0400, 0x0200, 0x0d00, 0x0b00, 0x0900, PITCH_END }; -static const s16 sPitch7_4[] = { 0x0300, 0x0400, 0x0600, 0x0800, 0x0700, 0x0800, 0x0400, PITCH_END }; - -// Only sPitch7_# are used below -// This table is always indexed with (x + 30), where x is some value 0 - 4 -static const s16 *const sBardSoundPitchTables[] = { - sPitch1_0, sPitch1_1, sPitch1_2, sPitch1_3, sPitch1_4, - sPitch2_0, sPitch2_1, sPitch2_2, sPitch2_3, sPitch2_4, - sPitch3_0, sPitch3_1, sPitch3_2, sPitch3_3, sPitch3_4, - sPitch4_0, sPitch4_1, sPitch4_2, sPitch4_3, sPitch4_4, - sPitch5_0, sPitch5_1, sPitch5_2, sPitch5_3, sPitch5_4, - sPitch6_0, sPitch6_1, sPitch6_2, sPitch6_3, sPitch6_4, - sPitch7_0, sPitch7_1, sPitch7_2, sPitch7_3, sPitch7_4 -}; - - -#endif //GUARD_WORD_PITCH_H diff --git a/src/easy_chat.c b/src/easy_chat.c index 8e93ca310e..760b07e382 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1478,10 +1478,10 @@ void ShowEasyChatScreen(void) break; case EASY_CHAT_TYPE_BARD_SONG: bard = &gSaveBlock1Ptr->oldMan.bard; - for (i = 0; i < BARD_SONG_LENGTH; i ++) - bard->temporaryLyrics[i] = bard->songLyrics[i]; + for (i = 0; i < NUM_BARD_SONG_WORDS; i ++) + bard->newSongLyrics[i] = bard->songLyrics[i]; - words = bard->temporaryLyrics; + words = bard->newSongLyrics; break; case EASY_CHAT_TYPE_INTERVIEW: words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index 7338afb94b..db25df253b 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -24,7 +24,7 @@ #include "constants/mauville_old_man.h" static void InitGiddyTaleList(void); -static void StartBardSong(bool8 useTemporaryLyrics); +static void StartBardSong(bool8 useNewSongLyrics); static void Task_BardSong(u8 taskId); static void StorytellerSetup(void); static void Storyteller_ResetFlag(void); @@ -33,11 +33,11 @@ static u8 sSelectedStory; COMMON_DATA struct BardSong gBardSong = {0}; -static EWRAM_DATA u16 sUnknownBardRelated = 0; +static EWRAM_DATA u16 sUnusedPitchTableIndex = 0; static EWRAM_DATA struct MauvilleManStoryteller * sStorytellerPtr = NULL; static EWRAM_DATA u8 sStorytellerWindowId = 0; -static const u16 sDefaultBardSongLyrics[BARD_SONG_LENGTH] = { +static const u16 sDefaultBardSongLyrics[NUM_BARD_SONG_WORDS] = { EC_WORD_SHAKE, EC_WORD_IT, EC_WORD_DO, @@ -79,7 +79,7 @@ static void SetupBard(void) bard->id = MAUVILLE_MAN_BARD; bard->hasChangedSong = FALSE; bard->language = gGameLanguage; - for (i = 0; i < BARD_SONG_LENGTH; i++) + for (i = 0; i < NUM_BARD_SONG_WORDS; i++) bard->songLyrics[i] = sDefaultBardSongLyrics[i]; } @@ -163,24 +163,33 @@ void SaveBardSongLyrics(void) for (i = 0; i < TRAINER_ID_LENGTH; i++) bard->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; - for (i = 0; i < BARD_SONG_LENGTH; i++) - bard->songLyrics[i] = bard->temporaryLyrics[i]; + for (i = 0; i < NUM_BARD_SONG_WORDS; i++) + bard->songLyrics[i] = bard->newSongLyrics[i]; bard->hasChangedSong = TRUE; } -// Copies lyrics into gStringVar4 +// Copies lyrics into gStringVar4. +// gSpecialVar_0x8004 is used in these functions to indicate which song should be played. +// If it's set to 0 the Bard's current song should be played, otherwise the new user-provided song should be played. +// Its set in the scripts right before 'PlayBardSong' is called. static void PrepareSongText(void) { struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard; - u16 * lyrics = gSpecialVar_0x8004 == 0 ? bard->songLyrics : bard->temporaryLyrics; + u16 * lyrics = !gSpecialVar_0x8004 ? bard->songLyrics : bard->newSongLyrics; u8 * wordEnd = gStringVar4; u8 * str = wordEnd; - u16 lineNum; + u16 paragraphNum; - // Put three words on each line - for (lineNum = 0; lineNum < 2; lineNum++) + // Easy chat "words" aren't strictly single words, e.g. EC_WORD_MATCH_UP is the string "MATCH UP". + // The bard song needs to know when it's at the end of an easy chat word and not just at a space in + // the middle of one, so the loop below will replace spaces in each easy chat word with CHAR_BARD_WORD_DELIMIT. + // When it comes time to print the song's text all the CHAR_BARD_WORD_DELIMIT will get replaced with CHAR_SPACE. + // + // The song text will be displayed in two paragraphs, each containing 3 easy chat words (2 on the first line and 1 on the second). + for (paragraphNum = 0; paragraphNum < 2; paragraphNum++) { + // Line 1, 1st word wordEnd = CopyEasyChatWord(wordEnd, *(lyrics++)); while (wordEnd != str) { @@ -192,6 +201,7 @@ static void PrepareSongText(void) str++; *(wordEnd++) = CHAR_SPACE; + // Line 1, 2nd word wordEnd = CopyEasyChatWord(wordEnd, *(lyrics++)); while (wordEnd != str) { @@ -203,6 +213,7 @@ static void PrepareSongText(void) str++; *(wordEnd++) = CHAR_NEWLINE; + // Line 2, 1st word wordEnd = CopyEasyChatWord(wordEnd, *(lyrics++)); while (wordEnd != str) { @@ -211,8 +222,10 @@ static void PrepareSongText(void) str++; } - if (lineNum == 0) + if (paragraphNum == 0) { + // Erase the 1st paragraph for displaying the 2nd. + // The == 0 check assumes there are only 2 paragraphs. *(wordEnd++) = EXT_CTRL_CODE_BEGIN; *(wordEnd++) = EXT_CTRL_CODE_FILL_WINDOW; } @@ -421,17 +434,19 @@ enum { #define tWordState data[1] #define tDelay data[2] #define tCharIndex data[3] -#define tCurrWord data[4] -#define tUseTemporaryLyrics data[5] +#define tLyricsIndex data[4] +#define tUseNewSongLyrics data[5] -#define MACRO1(a) (((a) & 3) + (((a) / 8) & 1)) -#define MACRO2(a) (((a) % 4) + (((a) / 8) & 1)) +// Takes a 16-bit easy chat word value and returns a value 0-4 (i.e. a value less than NUM_BARD_PITCH_TABLES_PER_SIZE). +// The relationship between the easy chat word and the chosen pitch table is essentially arbitrary. +// This value will be used twice; once for an unused variable, and again to select a pitch table in CalcWordSounds. +#define WORD_TO_PITCH_TABLE_INDEX(a) ( MOD(a, (NUM_BARD_PITCH_TABLES_PER_SIZE-1)) + (((a) >> 3) & 1) ) -static void StartBardSong(bool8 useTemporaryLyrics) +static void StartBardSong(bool8 useNewSongLyrics) { u8 taskId = CreateTask(Task_BardSong, 80); - gTasks[taskId].tUseTemporaryLyrics = useTemporaryLyrics; + gTasks[taskId].tUseNewSongLyrics = useNewSongLyrics; } static void EnableTextPrinters(void) @@ -452,6 +467,18 @@ static void DrawSongTextWindow(const u8 * str) CopyWindowToVram(0, COPYWIN_FULL); } +#define BARD_SONG_BASE_VOLUME 0x100 +#define BARD_SONG_BASE_PITCH 0x200 + +enum { + SOUND_STATE_START, + SOUND_STATE_PLAY, + SOUND_STATE_SET_BASE, + SOUND_STATE_END, + SOUND_STATE_WAIT, +}; + +// Sing one frame of the bard's song. 'task' is a pointer to Task_BardSong, which handles changing the states in here. static void BardSing(struct Task *task, struct BardSong *song) { switch (task->tState) @@ -463,62 +490,73 @@ static void BardSing(struct Task *task, struct BardSong *song) s32 i; // Copy lyrics - if (gSpecialVar_0x8004 == 0) + if (!gSpecialVar_0x8004) lyrics = bard->songLyrics; else - lyrics = bard->temporaryLyrics; - for (i = 0; i < BARD_SONG_LENGTH; i++) + lyrics = bard->newSongLyrics; + + for (i = 0; i < NUM_BARD_SONG_WORDS; i++) song->lyrics[i] = lyrics[i]; - song->currWord = 0; + + song->lyricsIndex = 0; + break; } - break; - case BARD_STATE_WAIT_BGM: - break; case BARD_STATE_GET_WORD: { - u16 word = song->lyrics[song->currWord]; - song->sound = GetWordSounds(word); - GetWordPhonemes(song, MACRO1(word)); - song->currWord++; - if (song->sound->songLengthId != 0xFF) + u16 easyChatWord = song->lyrics[song->lyricsIndex]; + song->soundTemplates = GetWordSoundTemplates(easyChatWord); + CalcWordSounds(song, WORD_TO_PITCH_TABLE_INDEX(easyChatWord)); + song->lyricsIndex++; + if (song->soundTemplates[0].songId != PHONEME_ID_NONE) { - song->state = 0; + // Word has valid sounds, begin playing. + song->state = SOUND_STATE_START; } else { - song->state = 3; - song->phonemeTimer = 2; + // Word has no valid sounds, skip to the end. + song->state = SOUND_STATE_END; + song->timer = 2; } break; } case BARD_STATE_HANDLE_WORD: case BARD_STATE_WAIT_WORD: { - const struct BardSound *sound = &song->sound[song->currPhoneme]; + const struct BardSoundTemplate *template = &song->soundTemplates[song->soundIndex]; switch (song->state) { - case 0: - song->phonemeTimer = song->phonemes[song->currPhoneme].length; - if (sound->songLengthId <= 50) + case SOUND_STATE_START: + song->timer = song->sounds[song->soundIndex].length; + if (template->songId < NUM_PHONEME_SONGS) { - u8 num = sound->songLengthId / 3; - m4aSongNumStart(PH_TRAP_HELD + 3 * num); + // Phoneme "songs" come in triplets of PH_*_BLEND, PH_*_HELD, and PH_*_SOLO. + // The division then multiplication by 3 below is rounding any value from one of these triplets to a PH_*_HELD. + // This means the actual song files for any phoneme other than PH_*_HELD won't be played here, and the only difference + // when specifying a PH_*_BLEND or PH_*_SOLO in the songId will be the length of the sound, determined by 'sPhonemeLengths'. + u8 phonemeTripletId = template->songId / 3; + m4aSongNumStart((FIRST_PHONEME_SONG + 1) + phonemeTripletId * 3); } - song->state = 2; - song->phonemeTimer--; + song->state = SOUND_STATE_SET_BASE; + song->timer--; break; - case 2: - song->state = 1; - if (sound->songLengthId <= 50) + case SOUND_STATE_SET_BASE: + song->state = SOUND_STATE_PLAY; + if (template->songId < NUM_PHONEME_SONGS) { - song->volume = 0x100 + sound->volume * 16; + // Adjust the song volume for the current phoneme. + // In practice no phonemes use this, so volume here will always be BARD_SONG_BASE_VOLUME. + song->volume = BARD_SONG_BASE_VOLUME + template->volume * 16; m4aMPlayVolumeControl(&gMPlayInfo_SE2, TRACKS_ALL, song->volume); - song->pitch = 0x200 + song->phonemes[song->currPhoneme].pitch; + + // Adjust the song pitch for the current phoneme. + song->pitch = BARD_SONG_BASE_PITCH + song->sounds[song->soundIndex].pitch; m4aMPlayPitchControl(&gMPlayInfo_SE2, TRACKS_ALL, song->pitch); } break; - case 1: + case SOUND_STATE_PLAY: + // Modulate the volume and pitch to make it sound a little more like singing. if (song->voiceInflection > 10) song->volume -= 2; if (song->voiceInflection & 1) @@ -528,33 +566,37 @@ static void BardSing(struct Task *task, struct BardSong *song) m4aMPlayVolumeControl(&gMPlayInfo_SE2, TRACKS_ALL, song->volume); m4aMPlayPitchControl(&gMPlayInfo_SE2, TRACKS_ALL, song->pitch); song->voiceInflection++; - song->phonemeTimer--; - if (song->phonemeTimer == 0) + + song->timer--; + if (song->timer == 0) { - song->currPhoneme++; - if (song->currPhoneme != 6 && song->sound[song->currPhoneme].songLengthId != 0xFF) + if (++song->soundIndex != MAX_BARD_SOUNDS_PER_WORD && song->soundTemplates[song->soundIndex].songId != PHONEME_ID_NONE) { - song->state = 0; + // There are more sounds to play for this word, return to the start. + song->state = SOUND_STATE_START; } else { - song->state = 3; - song->phonemeTimer = 2; + // We've reached the final sound for this word, stop playing. + song->state = SOUND_STATE_END; + song->timer = 2; } } break; - case 3: - song->phonemeTimer--; - if (song->phonemeTimer == 0) + case SOUND_STATE_END: + // Delay, then stop playing the phoneme. + if (--song->timer == 0) { m4aMPlayStop(&gMPlayInfo_SE2); - song->state = 4; + song->state = SOUND_STATE_WAIT; // We'll remain stuck at this sound state until Task_BardSong changes states from HANDLE_WORD/WAIT_WORD } break; } - } break; + } case BARD_STATE_PAUSE: + case BARD_STATE_WAIT_BGM: + // Non-singing states. break; } } @@ -573,7 +615,7 @@ static void Task_BardSong(u8 taskId) task->tWordState = 0; task->tDelay = 0; task->tCharIndex = 0; - task->tCurrWord = 0; + task->tLyricsIndex = 0; FadeOutBGMTemporarily(4); task->tState = BARD_STATE_WAIT_BGM; break; @@ -597,15 +639,17 @@ static void Task_BardSong(u8 taskId) wordLen++; } - if (!task->tUseTemporaryLyrics) - sUnknownBardRelated = MACRO2(bard->songLyrics[task->tCurrWord]); + // sUnusedPitchTableIndex is never read. For debugging perhaps, or one of the other languages. + if (!task->tUseNewSongLyrics) + sUnusedPitchTableIndex = WORD_TO_PITCH_TABLE_INDEX(bard->songLyrics[task->tLyricsIndex]); else - sUnknownBardRelated = MACRO2(bard->temporaryLyrics[task->tCurrWord]); + sUnusedPitchTableIndex = WORD_TO_PITCH_TABLE_INDEX(bard->newSongLyrics[task->tLyricsIndex]); gBardSong.length /= wordLen; if (gBardSong.length <= 0) gBardSong.length = 1; - task->tCurrWord++; + + task->tLyricsIndex++; if (task->tDelay == 0) { @@ -637,7 +681,7 @@ static void Task_BardSong(u8 taskId) } else if (gStringVar4[task->tCharIndex] == CHAR_SPACE) { - // Handle space + // End of easy chat word, move on to the next one. EnableTextPrinters(); task->tCharIndex++; task->tState = BARD_STATE_GET_WORD; @@ -653,14 +697,16 @@ static void Task_BardSong(u8 taskId) else if (gStringVar4[task->tCharIndex] == EXT_CTRL_CODE_BEGIN) { // Handle ctrl code + // The only expected ctrl codes are those for clearing the end of the paragraph, + // so this assumes there's a new word coming and does a short delay before the next paragraph. task->tCharIndex += 2; // skip over control codes task->tState = BARD_STATE_GET_WORD; task->tDelay = 8; } else if (gStringVar4[task->tCharIndex] == CHAR_BARD_WORD_DELIMIT) { - // Handle word boundary - gStringVar4[task->tCharIndex] = CHAR_SPACE; // Replace with a real space + // Space within the current easy chat word (see PrepareSongText), just replace it with a real space. + gStringVar4[task->tCharIndex] = CHAR_SPACE; EnableTextPrinters(); task->tCharIndex++; task->tDelay = 0; From 0a436d580ec0db27af343d71259534f19cf7ab57 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Jan 2025 00:18:17 +0100 Subject: [PATCH 96/99] Extern gSprites and gOamMatrices with known array size (#2090) --- include/sprite.h | 5 +++-- src/sprite.c | 2 -- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/include/sprite.h b/include/sprite.h index 86527bc4c0..c66e0bd85e 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -1,6 +1,7 @@ #ifndef GUARD_SPRITE_H #define GUARD_SPRITE_H +#define OAM_MATRIX_COUNT 32 #define MAX_SPRITES 64 #define SPRITE_NONE 0xFF #define TAG_NONE 0xFFFF @@ -254,12 +255,12 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; extern const struct SpriteTemplate gDummySpriteTemplate; extern u8 gReservedSpritePaletteCount; -extern struct Sprite gSprites[]; +extern struct Sprite gSprites[MAX_SPRITES + 1]; extern u8 gOamLimit; extern u16 gReservedSpriteTileCount; extern s16 gSpriteCoordOffsetX; extern s16 gSpriteCoordOffsetY; -extern struct OamMatrix gOamMatrices[]; +extern struct OamMatrix gOamMatrices[OAM_MATRIX_COUNT]; extern bool8 gAffineAnimsDisabled; void ResetSpriteData(void); diff --git a/src/sprite.c b/src/sprite.c index d11277400f..e8abc430e6 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -5,8 +5,6 @@ #define MAX_SPRITE_COPY_REQUESTS 64 -#define OAM_MATRIX_COUNT 32 - #define sAnchorX data[6] #define sAnchorY data[7] From e83f7c79eb60043540ac114a8637e8ef58e32acf Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 18 Jan 2025 00:19:21 +0100 Subject: [PATCH 97/99] Fix conflicting types for rotating gate functions (#2087) --- include/rotating_gate.h | 6 +++--- src/rotating_gate.c | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/rotating_gate.h b/include/rotating_gate.h index fd86a6b04d..3829edab4a 100644 --- a/include/rotating_gate.h +++ b/include/rotating_gate.h @@ -1,9 +1,9 @@ #ifndef GUARD_ROTATING_GATE_H #define GUARD_ROTATING_GATE_H -void RotatingGatePuzzleCameraUpdate(s16, s16); +void RotatingGatePuzzleCameraUpdate(s16 deltaX, s16 deltaY); void RotatingGate_InitPuzzleAndGraphics(void); -u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16); -bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8, s16, s16); +bool32 CheckForRotatingGatePuzzleCollision(u8 direction, s16 x, s16 y); +bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8 direction, s16 x, s16 y); #endif // GUARD_ROTATING_GATE_H diff --git a/src/rotating_gate.c b/src/rotating_gate.c index 0b0c68a836..0db623bb3e 100644 --- a/src/rotating_gate.c +++ b/src/rotating_gate.c @@ -3,6 +3,7 @@ #include "event_data.h" #include "event_object_movement.h" #include "fieldmap.h" +#include "rotating_gate.h" #include "sound.h" #include "sprite.h" #include "constants/songs.h" @@ -938,7 +939,7 @@ void RotatingGate_InitPuzzle(void) } } -void RotatingGatePuzzleCameraUpdate(u16 deltaX, u16 deltaY) +void RotatingGatePuzzleCameraUpdate(s16 deltaX, s16 deltaY) { if (GetCurrentMapRotatingGatePuzzleType()) { @@ -957,7 +958,7 @@ void RotatingGate_InitPuzzleAndGraphics(void) } } -bool8 CheckForRotatingGatePuzzleCollision(u8 direction, s16 x, s16 y) +bool32 CheckForRotatingGatePuzzleCollision(u8 direction, s16 x, s16 y) { s32 i; @@ -995,7 +996,7 @@ bool8 CheckForRotatingGatePuzzleCollision(u8 direction, s16 x, s16 y) return FALSE; } -bool8 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8 direction, s16 x, s16 y) +bool32 CheckForRotatingGatePuzzleCollisionWithoutAnimation(u8 direction, s16 x, s16 y) { s32 i; From a3d09787623253d384e68bef49a5551ae3126aba Mon Sep 17 00:00:00 2001 From: Raymond Dodge Date: Sat, 18 Jan 2025 20:58:03 -0500 Subject: [PATCH 98/99] Replace easy_chat alphabetialOrder magic numbers with EC_INDEX values (#2096) --- src/data/easy_chat/easy_chat_group_actions.h | 156 ++++++------- .../easy_chat/easy_chat_group_adjectives.h | 72 +++--- src/data/easy_chat/easy_chat_group_battle.h | 126 +++++----- .../easy_chat/easy_chat_group_conditions.h | 138 +++++------ src/data/easy_chat/easy_chat_group_endings.h | 138 +++++------ src/data/easy_chat/easy_chat_group_events.h | 58 ++--- src/data/easy_chat/easy_chat_group_feelings.h | 138 +++++------ .../easy_chat/easy_chat_group_greetings.h | 84 +++---- src/data/easy_chat/easy_chat_group_hobbies.h | 108 ++++----- .../easy_chat/easy_chat_group_lifestyle.h | 90 ++++---- src/data/easy_chat/easy_chat_group_misc.h | 84 +++---- src/data/easy_chat/easy_chat_group_people.h | 150 ++++++------ src/data/easy_chat/easy_chat_group_speech.h | 120 +++++----- src/data/easy_chat/easy_chat_group_status.h | 218 +++++++++--------- src/data/easy_chat/easy_chat_group_time.h | 90 ++++---- src/data/easy_chat/easy_chat_group_trainer.h | 54 ++--- .../easy_chat/easy_chat_group_trendy_saying.h | 66 +++--- src/data/easy_chat/easy_chat_group_voices.h | 126 +++++----- 18 files changed, 1008 insertions(+), 1008 deletions(-) diff --git a/src/data/easy_chat/easy_chat_group_actions.h b/src/data/easy_chat/easy_chat_group_actions.h index 6ad297efcf..38f623ea56 100755 --- a/src/data/easy_chat/easy_chat_group_actions.h +++ b/src/data/easy_chat/easy_chat_group_actions.h @@ -81,469 +81,469 @@ const struct EasyChatWordInfo gEasyChatGroup_Actions[] = { [EC_INDEX(EC_WORD_MEETS)] = { .text = gEasyChatWord_Meets, - .alphabeticalOrder = 72, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALLOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CONCEDE)] = { .text = gEasyChatWord_Concede, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANGERS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIVE)] = { .text = gEasyChatWord_Give, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_APPEAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIVES)] = { .text = gEasyChatWord_Gives, - .alphabeticalOrder = 75, + .alphabeticalOrder = EC_INDEX(EC_WORD_APPEARS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLAYED)] = { .text = gEasyChatWord_Played, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_BELIEVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLAYS)] = { .text = gEasyChatWord_Plays, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_BRAG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COLLECT)] = { .text = gEasyChatWord_Collect, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WALKING)] = { .text = gEasyChatWord_Walking, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAPABLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WALKS)] = { .text = gEasyChatWord_Walks, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAUSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SAYS)] = { .text = gEasyChatWord_Says, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHANGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WENT)] = { .text = gEasyChatWord_Went, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHOOSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SAID)] = { .text = gEasyChatWord_Said, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_COLLECT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAKE_UP)] = { .text = gEasyChatWord_WakeUp, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_COME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAKES_UP)] = { .text = gEasyChatWord_WakesUp, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_CONCEDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANGERS)] = { .text = gEasyChatWord_Angers, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_COULDN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TEACH)] = { .text = gEasyChatWord_Teach, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISAPPEAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TEACHES)] = { .text = gEasyChatWord_Teaches, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_DRINKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLEASE)] = { .text = gEasyChatWord_Please, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_EATS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEARN)] = { .text = gEasyChatWord_Learn, - .alphabeticalOrder = 76, + .alphabeticalOrder = EC_INDEX(EC_WORD_FAINT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHANGE)] = { .text = gEasyChatWord_Change, - .alphabeticalOrder = 77, + .alphabeticalOrder = EC_INDEX(EC_WORD_FAINTED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STORY)] = { .text = gEasyChatWord_Story, - .alphabeticalOrder = 73, + .alphabeticalOrder = EC_INDEX(EC_WORD_FORGET), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRUST)] = { .text = gEasyChatWord_Trust, - .alphabeticalOrder = 74, + .alphabeticalOrder = EC_INDEX(EC_WORD_FORGETS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LAVISH)] = { .text = gEasyChatWord_Lavish, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LISTENS)] = { .text = gEasyChatWord_Listens, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIVES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEARING)] = { .text = gEasyChatWord_Hearing, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEARING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRAINS)] = { .text = gEasyChatWord_Trains, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_IGNORANT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHOOSE)] = { .text = gEasyChatWord_Choose, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_KNOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COME)] = { .text = gEasyChatWord_Come, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_KNOWS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAME)] = { .text = gEasyChatWord_Came, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_LAVISH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SEARCH)] = { .text = gEasyChatWord_Search, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEARN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAKE)] = { .text = gEasyChatWord_Make, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_LISTENS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAUSE)] = { .text = gEasyChatWord_Cause, - .alphabeticalOrder = 67, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOOKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KNOW)] = { .text = gEasyChatWord_Know, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KNOWS)] = { .text = gEasyChatWord_Knows, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_MEETS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_REFUSE)] = { .text = gEasyChatWord_Refuse, - .alphabeticalOrder = 65, + .alphabeticalOrder = EC_INDEX(EC_WORD_OVERDO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STORES)] = { .text = gEasyChatWord_Stores, - .alphabeticalOrder = 70, + .alphabeticalOrder = EC_INDEX(EC_WORD_OWN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BRAG)] = { .text = gEasyChatWord_Brag, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLAYED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IGNORANT)] = { .text = gEasyChatWord_Ignorant, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLAYS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THINKS)] = { .text = gEasyChatWord_Thinks, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLEASE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BELIEVE)] = { .text = gEasyChatWord_Believe, - .alphabeticalOrder = 64, + .alphabeticalOrder = EC_INDEX(EC_WORD_PRAISE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SLIDE)] = { .text = gEasyChatWord_Slide, - .alphabeticalOrder = 63, + .alphabeticalOrder = EC_INDEX(EC_WORD_PRETEND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EATS)] = { .text = gEasyChatWord_Eats, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_REFUSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_USE)] = { .text = gEasyChatWord_Use, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_RELEASE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_USES)] = { .text = gEasyChatWord_Uses, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_RUN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_USING)] = { .text = gEasyChatWord_Using, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_RUNS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COULDN_T)] = { .text = gEasyChatWord_Couldnt, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_SAID), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAPABLE)] = { .text = gEasyChatWord_Capable, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_SAYS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISAPPEAR)] = { .text = gEasyChatWord_Disappear, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_SEARCH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_APPEAR)] = { .text = gEasyChatWord_Appear, - .alphabeticalOrder = 69, + .alphabeticalOrder = EC_INDEX(EC_WORD_SEEK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THROW)] = { .text = gEasyChatWord_Throw, - .alphabeticalOrder = 68, + .alphabeticalOrder = EC_INDEX(EC_WORD_SEES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WORRY)] = { .text = gEasyChatWord_Worry, - .alphabeticalOrder = 66, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SLEPT)] = { .text = gEasyChatWord_Slept, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_SINK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SLEEP)] = { .text = gEasyChatWord_Sleep, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_SLEEP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RELEASE)] = { .text = gEasyChatWord_Release, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_SLEPT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DRINKS)] = { .text = gEasyChatWord_Drinks, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_SLIDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RUNS)] = { .text = gEasyChatWord_Runs, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMACK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RUN)] = { .text = gEasyChatWord_Run, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_STORES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WORKS)] = { .text = gEasyChatWord_Works, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_STORY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WORKING)] = { .text = gEasyChatWord_Working, - .alphabeticalOrder = 71, + .alphabeticalOrder = EC_INDEX(EC_WORD_TAKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TALKING)] = { .text = gEasyChatWord_Talking, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_TALK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TALK)] = { .text = gEasyChatWord_Talk, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_TALKING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SINK)] = { .text = gEasyChatWord_Sink, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_TEACH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMACK)] = { .text = gEasyChatWord_Smack, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_TEACHES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PRETEND)] = { .text = gEasyChatWord_Pretend, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_THINKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PRAISE)] = { .text = gEasyChatWord_Praise, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_THROW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OVERDO)] = { .text = gEasyChatWord_Overdo, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRAINS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHOW)] = { .text = gEasyChatWord_Show, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRUST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOOKS)] = { .text = gEasyChatWord_Looks, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_USE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SEES)] = { .text = gEasyChatWord_Sees, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_USES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SEEK)] = { .text = gEasyChatWord_Seek, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_USING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OWN)] = { .text = gEasyChatWord_Own, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAKE_UP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TAKE)] = { .text = gEasyChatWord_Take, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAKES_UP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALLOW)] = { .text = gEasyChatWord_Allow, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_WALKING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FORGET)] = { .text = gEasyChatWord_Forget, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_WALKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FORGETS)] = { .text = gEasyChatWord_Forgets, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_WENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_APPEARS)] = { .text = gEasyChatWord_Appears, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_WORKING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FAINT)] = { .text = gEasyChatWord_Faint, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_WORKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FAINTED)] = { .text = gEasyChatWord_Fainted, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_WORRY), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_adjectives.h b/src/data/easy_chat/easy_chat_group_adjectives.h index 619dff6213..6a85973df4 100755 --- a/src/data/easy_chat/easy_chat_group_adjectives.h +++ b/src/data/easy_chat/easy_chat_group_adjectives.h @@ -39,217 +39,217 @@ const struct EasyChatWordInfo gEasyChatGroup_Adjectives[] = { [EC_INDEX(EC_WORD_WANDERING)] = { .text = gEasyChatWord_Wandering, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANTICIPATION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RICKETY)] = { .text = gEasyChatWord_Rickety, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_AWESOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ROCK_SOLID)] = { .text = gEasyChatWord_RockSolid, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_BREAK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HUNGRY)] = { .text = gEasyChatWord_Hungry, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_DESTROYED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TIGHT)] = { .text = gEasyChatWord_Tight, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_DROOLING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TICKLISH)] = { .text = gEasyChatWord_Ticklish, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCITING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TWIRLING)] = { .text = gEasyChatWord_Twirling, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_FIERY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SPIRALING)] = { .text = gEasyChatWord_Spiraling, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAPPILY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THIRSTY)] = { .text = gEasyChatWord_Thirsty, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOPELESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOLLING)] = { .text = gEasyChatWord_Lolling, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_HUNGRY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SILKY)] = { .text = gEasyChatWord_Silky, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_INCREASING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SADLY)] = { .text = gEasyChatWord_Sadly, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOLLING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOPELESS)] = { .text = gEasyChatWord_Hopeless, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOVEY_DOVEY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_USELESS)] = { .text = gEasyChatWord_Useless, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_RICKETY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DROOLING)] = { .text = gEasyChatWord_Drooling, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_RIPPED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCITING)] = { .text = gEasyChatWord_Exciting, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_ROCK_SOLID), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THICK)] = { .text = gEasyChatWord_Thick, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_SADLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMOOTH)] = { .text = gEasyChatWord_Smooth, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_SCATTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SLIMY)] = { .text = gEasyChatWord_Slimy, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHAKY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THIN)] = { .text = gEasyChatWord_Thin, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHREDDED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BREAK)] = { .text = gEasyChatWord_Break, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_SILKY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VORACIOUS)] = { .text = gEasyChatWord_Voracious, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_SLIMY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SCATTER)] = { .text = gEasyChatWord_Scatter, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMOOTH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AWESOME)] = { .text = gEasyChatWord_Awesome, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_SPIRALING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WIMPY)] = { .text = gEasyChatWord_Wimpy, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_THICK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WOBBLY)] = { .text = gEasyChatWord_Wobbly, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_THIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHAKY)] = { .text = gEasyChatWord_Shaky, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_THIRSTY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RIPPED)] = { .text = gEasyChatWord_Ripped, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_TICKLISH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHREDDED)] = { .text = gEasyChatWord_Shredded, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_TIGHT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INCREASING)] = { .text = gEasyChatWord_Increasing, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_TWIRLING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YET)] = { .text = gEasyChatWord_Yet, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_USELESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DESTROYED)] = { .text = gEasyChatWord_Destroyed, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_VORACIOUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FIERY)] = { .text = gEasyChatWord_Fiery, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_WANDERING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOVEY_DOVEY)] = { .text = gEasyChatWord_LoveyDovey, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_WIMPY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAPPILY)] = { .text = gEasyChatWord_Happily, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_WOBBLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANTICIPATION)] = { .text = gEasyChatWord_Anticipation, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_YET), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_battle.h b/src/data/easy_chat/easy_chat_group_battle.h index 2a2420b2f1..56d7ce0cd8 100755 --- a/src/data/easy_chat/easy_chat_group_battle.h +++ b/src/data/easy_chat/easy_chat_group_battle.h @@ -66,379 +66,379 @@ const struct EasyChatWordInfo gEasyChatGroup_Battle[] = { [EC_INDEX(EC_WORD_MATCH_UP)] = { .text = gEasyChatWord_MatchUp, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_ACCEPT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GO)] = { .text = gEasyChatWord_Go, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_AIM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NO_1)] = { .text = gEasyChatWord_No1, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_ATTACK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DECIDE)] = { .text = gEasyChatWord_Decide, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_BATTLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LET_ME_WIN)] = { .text = gEasyChatWord_LetMeWin, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAN_WIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WINS)] = { .text = gEasyChatWord_Wins, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAN_T_WIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WIN)] = { .text = gEasyChatWord_Win, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHALLENGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WON)] = { .text = gEasyChatWord_Won, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_COME_ON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IF_I_WIN)] = { .text = gEasyChatWord_IfIWin, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_DECIDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHEN_I_WIN)] = { .text = gEasyChatWord_WhenIWin, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_DECIDED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAN_T_WIN)] = { .text = gEasyChatWord_CantWin, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_EASY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAN_WIN)] = { .text = gEasyChatWord_CanWin, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_ESCAPE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NO_MATCH)] = { .text = gEasyChatWord_NoMatch, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_FIGHT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SPIRIT)] = { .text = gEasyChatWord_Spirit, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_FIGHTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DECIDED)] = { .text = gEasyChatWord_Decided, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_FOE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRUMP_CARD)] = { .text = gEasyChatWord_TrumpCard, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_GENIUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TAKE_THAT)] = { .text = gEasyChatWord_TakeThat, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIVE_UP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COME_ON)] = { .text = gEasyChatWord_ComeOn, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_GO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ATTACK)] = { .text = gEasyChatWord_Attack, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_GO_EASY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SURRENDER)] = { .text = gEasyChatWord_Surrender, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_GUARD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GUTSY)] = { .text = gEasyChatWord_Gutsy, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_GUTSY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TALENT)] = { .text = gEasyChatWord_Talent, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_IF_I_LOSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STRATEGY)] = { .text = gEasyChatWord_Strategy, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_IF_I_WIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMITE)] = { .text = gEasyChatWord_Smite, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_INVINCIBLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MATCH)] = { .text = gEasyChatWord_Match, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEADER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VICTORY)] = { .text = gEasyChatWord_Victory, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEGEND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OFFENSIVE)] = { .text = gEasyChatWord_Offensive, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_LET_ME_WIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SENSE)] = { .text = gEasyChatWord_Sense, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VERSUS)] = { .text = gEasyChatWord_Versus, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOSS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FIGHTS)] = { .text = gEasyChatWord_Fights, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POWER)] = { .text = gEasyChatWord_Power, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_MATCH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHALLENGE)] = { .text = gEasyChatWord_Challenge, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_MATCH_UP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STRONG)] = { .text = gEasyChatWord_Strong, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_MOVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOO_STRONG)] = { .text = gEasyChatWord_TooStrong, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_NO_MATCH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GO_EASY)] = { .text = gEasyChatWord_GoEasy, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_NO_1), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FOE)] = { .text = gEasyChatWord_Foe, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_OFFENSIVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GENIUS)] = { .text = gEasyChatWord_Genius, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_PARTNER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEGEND)] = { .text = gEasyChatWord_Legend, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_POINTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ESCAPE)] = { .text = gEasyChatWord_Escape, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_POWER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AIM)] = { .text = gEasyChatWord_Aim, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_PUSHOVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BATTLE)] = { .text = gEasyChatWord_Battle, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_RECEIVED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FIGHT)] = { .text = gEasyChatWord_Fight, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_REJECT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RESUSCITATE)] = { .text = gEasyChatWord_Resuscitate, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_RESUSCITATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POINTS)] = { .text = gEasyChatWord_Points, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_RULE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SERIOUS)] = { .text = gEasyChatWord_Serious, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_SENSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIVE_UP)] = { .text = gEasyChatWord_GiveUp, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_SERIOUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOSS)] = { .text = gEasyChatWord_Loss, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMITE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IF_I_LOSE)] = { .text = gEasyChatWord_IfILose, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_SPIRIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOST)] = { .text = gEasyChatWord_Lost, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_STRATEGY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOSE)] = { .text = gEasyChatWord_Lose, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_STRONG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GUARD)] = { .text = gEasyChatWord_Guard, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_SURRENDER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PARTNER)] = { .text = gEasyChatWord_Partner, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_TAKE_THAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_REJECT)] = { .text = gEasyChatWord_Reject, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_TALENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ACCEPT)] = { .text = gEasyChatWord_Accept, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOO_STRONG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INVINCIBLE)] = { .text = gEasyChatWord_Invincible, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOO_WEAK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RECEIVED)] = { .text = gEasyChatWord_Received, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRUMP_CARD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EASY)] = { .text = gEasyChatWord_Easy, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_VERSUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WEAK)] = { .text = gEasyChatWord_Weak, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_VICTORY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOO_WEAK)] = { .text = gEasyChatWord_TooWeak, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_WEAK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PUSHOVER)] = { .text = gEasyChatWord_Pushover, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHEN_I_WIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEADER)] = { .text = gEasyChatWord_Leader, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_WIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RULE)] = { .text = gEasyChatWord_Rule, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_WINS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MOVE)] = { .text = gEasyChatWord_Move, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_WON), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_conditions.h b/src/data/easy_chat/easy_chat_group_conditions.h index d0636f1628..b53816e9e9 100755 --- a/src/data/easy_chat/easy_chat_group_conditions.h +++ b/src/data/easy_chat/easy_chat_group_conditions.h @@ -72,415 +72,415 @@ const struct EasyChatWordInfo gEasyChatGroup_Conditions[] = { [EC_INDEX(EC_WORD_HOT)] = { .text = gEasyChatWord_Hot, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_ABSENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXISTS)] = { .text = gEasyChatWord_Exists, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALONE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCESS)] = { .text = gEasyChatWord_Excess, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_AMUSING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_APPROVED)] = { .text = gEasyChatWord_Approved, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_APPROVED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAS)] = { .text = gEasyChatWord_Has, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_AWFUL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOOD)] = { .text = gEasyChatWord_Good, - .alphabeticalOrder = 68, + .alphabeticalOrder = EC_INDEX(EC_WORD_BADLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LESS)] = { .text = gEasyChatWord_Less, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_BECOMES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MOMENTUM)] = { .text = gEasyChatWord_Momentum, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOING)] = { .text = gEasyChatWord_Going, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WEIRD)] = { .text = gEasyChatWord_Weird, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_BIG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BUSY)] = { .text = gEasyChatWord_Busy, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_BORED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOGETHER)] = { .text = gEasyChatWord_Together, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_BUSY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FULL)] = { .text = gEasyChatWord_Full, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_CLOSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ABSENT)] = { .text = gEasyChatWord_Absent, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_COLD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEING)] = { .text = gEasyChatWord_Being, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_CORRECT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEED)] = { .text = gEasyChatWord_Need, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_DIFFERENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TASTY)] = { .text = gEasyChatWord_Tasty, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_DOCILE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SKILLED)] = { .text = gEasyChatWord_Skilled, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_ELSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NOISY)] = { .text = gEasyChatWord_Noisy, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_ENTERTAINING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BIG)] = { .text = gEasyChatWord_Big, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCELLENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LATE)] = { .text = gEasyChatWord_Late, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CLOSE)] = { .text = gEasyChatWord_Close, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXISTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DOCILE)] = { .text = gEasyChatWord_Docile, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXPENSIVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AMUSING)] = { .text = gEasyChatWord_Amusing, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_FABULOUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ENTERTAINING)] = { .text = gEasyChatWord_Entertaining, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_FAST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PERFECTION)] = { .text = gEasyChatWord_Perfection, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_FULL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PRETTY)] = { .text = gEasyChatWord_Pretty, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEALTHY)] = { .text = gEasyChatWord_Healthy, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOOD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCELLENT)] = { .text = gEasyChatWord_Excellent, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UPSIDE_DOWN)] = { .text = gEasyChatWord_UpsideDown, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEALTHY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COLD)] = { .text = gEasyChatWord_Cold, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_REFRESHING)] = { .text = gEasyChatWord_Refreshing, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_IMPOSSIBLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNAVOIDABLE)] = { .text = gEasyChatWord_Unavoidable, - .alphabeticalOrder = 63, + .alphabeticalOrder = EC_INDEX(EC_WORD_KIND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MUCH)] = { .text = gEasyChatWord_Much, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_LACKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OVERWHELMING)] = { .text = gEasyChatWord_Overwhelming, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_LATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FABULOUS)] = { .text = gEasyChatWord_Fabulous, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_LESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ELSE)] = { .text = gEasyChatWord_Else, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOUSY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXPENSIVE)] = { .text = gEasyChatWord_Expensive, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CORRECT)] = { .text = gEasyChatWord_Correct, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_LUKEWARM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IMPOSSIBLE)] = { .text = gEasyChatWord_Impossible, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_MISTAKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMALL)] = { .text = gEasyChatWord_Small, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_MOMENTUM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DIFFERENT)] = { .text = gEasyChatWord_Different, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_MUCH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TIRED)] = { .text = gEasyChatWord_Tired, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_MYSTERY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SKILL)] = { .text = gEasyChatWord_Skill, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_NATURAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOP)] = { .text = gEasyChatWord_Top, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NON_STOP)] = { .text = gEasyChatWord_NonStop, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_NOISY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PREPOSTEROUS)] = { .text = gEasyChatWord_Preposterous, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_NON_STOP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NONE)] = { .text = gEasyChatWord_None, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_NONE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NOTHING)] = { .text = gEasyChatWord_Nothing, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_NOTHING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NATURAL)] = { .text = gEasyChatWord_Natural, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_OVERWHELMING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BECOMES)] = { .text = gEasyChatWord_Becomes, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_PERFECTION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LUKEWARM)] = { .text = gEasyChatWord_Lukewarm, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_PREPOSTEROUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FAST)] = { .text = gEasyChatWord_Fast, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_PRETTY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOW)] = { .text = gEasyChatWord_Low, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_REFRESHING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AWFUL)] = { .text = gEasyChatWord_Awful, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_SECRET), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALONE)] = { .text = gEasyChatWord_Alone, - .alphabeticalOrder = 67, + .alphabeticalOrder = EC_INDEX(EC_WORD_SEEMS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BORED)] = { .text = gEasyChatWord_Bored, - .alphabeticalOrder = 66, + .alphabeticalOrder = EC_INDEX(EC_WORD_SIMPLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SECRET)] = { .text = gEasyChatWord_Secret, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_SKILL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MYSTERY)] = { .text = gEasyChatWord_Mystery, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_SKILLED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LACKS)] = { .text = gEasyChatWord_Lacks, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMALL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEST)] = { .text = gEasyChatWord_Best, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_TASTY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOUSY)] = { .text = gEasyChatWord_Lousy, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_TIRED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MISTAKE)] = { .text = gEasyChatWord_Mistake, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOGETHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KIND)] = { .text = gEasyChatWord_Kind, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WELL)] = { .text = gEasyChatWord_Well, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNAVOIDABLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WEAKENED)] = { .text = gEasyChatWord_Weakened, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_UPSIDE_DOWN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SIMPLE)] = { .text = gEasyChatWord_Simple, - .alphabeticalOrder = 65, + .alphabeticalOrder = EC_INDEX(EC_WORD_WEAKENED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SEEMS)] = { .text = gEasyChatWord_Seems, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_WEIRD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BADLY)] = { .text = gEasyChatWord_Badly, - .alphabeticalOrder = 64, + .alphabeticalOrder = EC_INDEX(EC_WORD_WELL), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_endings.h b/src/data/easy_chat/easy_chat_group_endings.h index ffa5108a91..629380b039 100755 --- a/src/data/easy_chat/easy_chat_group_endings.h +++ b/src/data/easy_chat/easy_chat_group_endings.h @@ -72,415 +72,415 @@ const struct EasyChatWordInfo gEasyChatGroup_Endings[] = { [EC_INDEX(EC_WORD_WILL)] = { .text = gEasyChatWord_Will, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_A), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WILL_BE_HERE)] = { .text = gEasyChatWord_WillBeHere, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_ABOUT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OR)] = { .text = gEasyChatWord_Or, - .alphabeticalOrder = 63, + .alphabeticalOrder = EC_INDEX(EC_WORD_AFTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TIMES)] = { .text = gEasyChatWord_Times, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WONDER)] = { .text = gEasyChatWord_Wonder, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_AN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IS_IT_QUES)] = { .text = gEasyChatWord_IsItQues, - .alphabeticalOrder = 68, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANYWHERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BE)] = { .text = gEasyChatWord_Be, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_ARE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIMME)] = { .text = gEasyChatWord_Gimme, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_AS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COULD)] = { .text = gEasyChatWord_Could, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_AT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIKELY_TO)] = { .text = gEasyChatWord_LikelyTo, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_BE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WOULD)] = { .text = gEasyChatWord_Would, - .alphabeticalOrder = 64, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEFORE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IS)] = { .text = gEasyChatWord_Is, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_BELONGS_TO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ISN_T_IT_QUES)] = { .text = gEasyChatWord_IsntItQues, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_BETTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LET_S)] = { .text = gEasyChatWord_Lets, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OTHER)] = { .text = gEasyChatWord_Other, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ARE)] = { .text = gEasyChatWord_Are, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_COULD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAS)] = { .text = gEasyChatWord_Was, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_DID), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WERE)] = { .text = gEasyChatWord_Were, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_DIDN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THOSE)] = { .text = gEasyChatWord_Those, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_DO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ISN_T)] = { .text = gEasyChatWord_Isnt, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_DOES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WON_T)] = { .text = gEasyChatWord_Wont, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_DOESN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAN_T)] = { .text = gEasyChatWord_Cant, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_DON_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAN)] = { .text = gEasyChatWord_Can, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DON_T)] = { .text = gEasyChatWord_Dont, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_FOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DO)] = { .text = gEasyChatWord_Do, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIMME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DOES)] = { .text = gEasyChatWord_Does, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHOM)] = { .text = gEasyChatWord_Whom, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAVEN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHICH)] = { .text = gEasyChatWord_Which, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_IN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WASN_T)] = { .text = gEasyChatWord_Wasnt, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_IS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WEREN_T)] = { .text = gEasyChatWord_Werent, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_IS_IT_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAVE)] = { .text = gEasyChatWord_Have, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_ISN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAVEN_T)] = { .text = gEasyChatWord_Havent, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_ISN_T_IT_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_A)] = { .text = gEasyChatWord_A, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_IT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AN)] = { .text = gEasyChatWord_An, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_LET_S), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NOT)] = { .text = gEasyChatWord_Not, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THERE)] = { .text = gEasyChatWord_There, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIKELY_TO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OK_QUES)] = { .text = gEasyChatWord_OkQues, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAYBE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SO)] = { .text = gEasyChatWord_So, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_NOT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAYBE)] = { .text = gEasyChatWord_Maybe, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_OF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ABOUT)] = { .text = gEasyChatWord_About, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_OFF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OVER)] = { .text = gEasyChatWord_Over, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_OK_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IT)] = { .text = gEasyChatWord_It, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_ON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALL)] = { .text = gEasyChatWord_All, - .alphabeticalOrder = 67, + .alphabeticalOrder = EC_INDEX(EC_WORD_ONCE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FOR)] = { .text = gEasyChatWord_For, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_OR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ON)] = { .text = gEasyChatWord_On, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_OTHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OFF)] = { .text = gEasyChatWord_Off, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_OUT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AS)] = { .text = gEasyChatWord_As, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_OVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TO)] = { .text = gEasyChatWord_To, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_SINCE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WITH)] = { .text = gEasyChatWord_With, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_SO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BETTER)] = { .text = gEasyChatWord_Better, - .alphabeticalOrder = 66, + .alphabeticalOrder = EC_INDEX(EC_WORD_THAN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVER)] = { .text = gEasyChatWord_Ever, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_THERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SINCE)] = { .text = gEasyChatWord_Since, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_THOSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OF)] = { .text = gEasyChatWord_Of, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_TIMES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BELONGS_TO)] = { .text = gEasyChatWord_BelongsTo, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_TO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AT)] = { .text = gEasyChatWord_At, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IN)] = { .text = gEasyChatWord_In, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OUT)] = { .text = gEasyChatWord_Out, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_WASN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOO)] = { .text = gEasyChatWord_Too, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_WERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIKE)] = { .text = gEasyChatWord_Like, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_WEREN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DID)] = { .text = gEasyChatWord_Did, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHICH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DIDN_T)] = { .text = gEasyChatWord_Didnt, - .alphabeticalOrder = 65, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHILE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DOESN_T)] = { .text = gEasyChatWord_Doesnt, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHOM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WITHOUT)] = { .text = gEasyChatWord_Without, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_WILL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AFTER)] = { .text = gEasyChatWord_After, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_WILL_BE_HERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEFORE)] = { .text = gEasyChatWord_Before, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_WITH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHILE)] = { .text = gEasyChatWord_While, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_WITHOUT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THAN)] = { .text = gEasyChatWord_Than, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_WON_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ONCE)] = { .text = gEasyChatWord_Once, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_WONDER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANYWHERE)] = { .text = gEasyChatWord_Anywhere, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_WOULD), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_events.h b/src/data/easy_chat/easy_chat_group_events.h index 0fbbcc4a78..a4e5165c60 100755 --- a/src/data/easy_chat/easy_chat_group_events.h +++ b/src/data/easy_chat/easy_chat_group_events.h @@ -32,175 +32,175 @@ const struct EasyChatWordInfo gEasyChatGroup_Events[] = { [EC_INDEX(EC_WORD_APPEAL)] = { .text = gEasyChatWord_Appeal, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_APPEAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVENTS)] = { .text = gEasyChatWord_Events, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_BATTLE_ROOM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STAY_AT_HOME)] = { .text = gEasyChatWord_StayAtHome, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_BATTLE_TOWER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BERRY)] = { .text = gEasyChatWord_Berry, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_BERRY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CONTEST)] = { .text = gEasyChatWord_Contest, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_BLEND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MC)] = { .text = gEasyChatWord_Mc, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_CONTEST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_JUDGE)] = { .text = gEasyChatWord_Judge, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_CRUSH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SUPER)] = { .text = gEasyChatWord_Super, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_DIRECT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STAGE)] = { .text = gEasyChatWord_Stage, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVENTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HALL_OF_FAME)] = { .text = gEasyChatWord_HallOfFame, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVOLUTION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVOLUTION)] = { .text = gEasyChatWord_Evolution, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_FRONTIER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HYPER)] = { .text = gEasyChatWord_Hyper, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_HALL_OF_FAME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BATTLE_TOWER)] = { .text = gEasyChatWord_BattleTower, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIDDEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEADERS)] = { .text = gEasyChatWord_Leaders, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_HYPER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BATTLE_ROOM)] = { .text = gEasyChatWord_BattleRoom, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_JUDGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIDDEN)] = { .text = gEasyChatWord_Hidden, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEADERS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SECRET_BASE)] = { .text = gEasyChatWord_SecretBase, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_MASTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BLEND)] = { .text = gEasyChatWord_Blend, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_MC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POKEBLOCK)] = { .text = gEasyChatWord_POKEBLOCK, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_POKEBLOCK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MASTER)] = { .text = gEasyChatWord_Master, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_RANK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RANK)] = { .text = gEasyChatWord_Rank, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_RIBBON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RIBBON)] = { .text = gEasyChatWord_Ribbon, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_ROOM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CRUSH)] = { .text = gEasyChatWord_Crush, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_SECRET_BASE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DIRECT)] = { .text = gEasyChatWord_Direct, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_STAGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOWER)] = { .text = gEasyChatWord_Tower, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_STAY_AT_HOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNION)] = { .text = gEasyChatWord_Union, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_SUPER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ROOM)] = { .text = gEasyChatWord_Room, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOWER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WIRELESS)] = { .text = gEasyChatWord_Wireless, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FRONTIER)] = { .text = gEasyChatWord_Frontier, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_WIRELESS), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_feelings.h b/src/data/easy_chat/easy_chat_group_feelings.h index 55fe9d00c5..5c2221530a 100755 --- a/src/data/easy_chat/easy_chat_group_feelings.h +++ b/src/data/easy_chat/easy_chat_group_feelings.h @@ -72,415 +72,415 @@ const struct EasyChatWordInfo gEasyChatGroup_Feelings[] = { [EC_INDEX(EC_WORD_MEET)] = { .text = gEasyChatWord_Meet, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_ADORE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLAY)] = { .text = gEasyChatWord_Play, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALL_RIGHT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HURRIED)] = { .text = gEasyChatWord_Hurried, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANGER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOES)] = { .text = gEasyChatWord_Goes, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANGRY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIDDY)] = { .text = gEasyChatWord_Giddy, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_BAD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAPPY)] = { .text = gEasyChatWord_Happy, - .alphabeticalOrder = 63, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAPPINESS)] = { .text = gEasyChatWord_Happiness, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_BORING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCITE)] = { .text = gEasyChatWord_Excite, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_CARE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IMPORTANT)] = { .text = gEasyChatWord_Important, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_CARES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FUNNY)] = { .text = gEasyChatWord_Funny, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_DANGER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOT)] = { .text = gEasyChatWord_Got, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_DARN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GO_HOME)] = { .text = gEasyChatWord_GoHome, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_DEFEATED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISAPPOINTED)] = { .text = gEasyChatWord_Disappointed, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISAPPOINT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISAPPOINTS)] = { .text = gEasyChatWord_Disappoints, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISAPPOINTED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SAD)] = { .text = gEasyChatWord_Sad, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISAPPOINTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRY)] = { .text = gEasyChatWord_Try, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISASTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRIES)] = { .text = gEasyChatWord_Tries, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISLIKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEARS)] = { .text = gEasyChatWord_Hears, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_DISLIKES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THINK)] = { .text = gEasyChatWord_Think, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_DONE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEAR)] = { .text = gEasyChatWord_Hear, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_DOWNCAST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WANTS)] = { .text = gEasyChatWord_Wants, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_DRINK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MISHEARD)] = { .text = gEasyChatWord_Misheard, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_EAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISLIKE)] = { .text = gEasyChatWord_Dislike, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_ENJOY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANGRY)] = { .text = gEasyChatWord_Angry, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_ENJOYS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANGER)] = { .text = gEasyChatWord_Anger, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCITE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SCARY)] = { .text = gEasyChatWord_Scary, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_FEAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LONESOME)] = { .text = gEasyChatWord_Lonesome, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_FUNNY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISAPPOINT)] = { .text = gEasyChatWord_Disappoint, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_GETS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_JOY)] = { .text = gEasyChatWord_Joy, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIDDY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GETS)] = { .text = gEasyChatWord_Gets, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_GO_HOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEVER)] = { .text = gEasyChatWord_Never, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DARN)] = { .text = gEasyChatWord_Darn, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DOWNCAST)] = { .text = gEasyChatWord_Downcast, - .alphabeticalOrder = 64, + .alphabeticalOrder = EC_INDEX(EC_WORD_GREAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INCREDIBLE)] = { .text = gEasyChatWord_Incredible, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAPPINESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIKES)] = { .text = gEasyChatWord_Likes, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAPPY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISLIKES)] = { .text = gEasyChatWord_Dislikes, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_HARD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BORING)] = { .text = gEasyChatWord_Boring, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CARE)] = { .text = gEasyChatWord_Care, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEARS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CARES)] = { .text = gEasyChatWord_Cares, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_HURRIED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALL_RIGHT)] = { .text = gEasyChatWord_AllRight, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_IMPORTANT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ADORE)] = { .text = gEasyChatWord_Adore, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_INCREDIBLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DISASTER)] = { .text = gEasyChatWord_Disaster, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_JOY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ENJOY)] = { .text = gEasyChatWord_Enjoy, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_LACKING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ENJOYS)] = { .text = gEasyChatWord_Enjoys, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIKES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EAT)] = { .text = gEasyChatWord_Eat, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_LONESOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LACKING)] = { .text = gEasyChatWord_Lacking, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_MEET), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BAD)] = { .text = gEasyChatWord_Bad, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_MISHEARD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HARD)] = { .text = gEasyChatWord_Hard, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEGATIVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TERRIBLE)] = { .text = gEasyChatWord_Terrible, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHOULD)] = { .text = gEasyChatWord_Should, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_NICE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NICE)] = { .text = gEasyChatWord_Nice, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DRINK)] = { .text = gEasyChatWord_Drink, - .alphabeticalOrder = 66, + .alphabeticalOrder = EC_INDEX(EC_WORD_QUESTION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SURPRISE)] = { .text = gEasyChatWord_Surprise, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_RARE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FEAR)] = { .text = gEasyChatWord_Fear, - .alphabeticalOrder = 65, + .alphabeticalOrder = EC_INDEX(EC_WORD_ROMANTIC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WANT)] = { .text = gEasyChatWord_Want, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_SAD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAIT)] = { .text = gEasyChatWord_Wait, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_SATISFIED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SATISFIED)] = { .text = gEasyChatWord_Satisfied, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_SCARY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SEE)] = { .text = gEasyChatWord_See, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_SEE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RARE)] = { .text = gEasyChatWord_Rare, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHOULD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEGATIVE)] = { .text = gEasyChatWord_Negative, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_SURPRISE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DONE)] = { .text = gEasyChatWord_Done, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_TERRIBLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DANGER)] = { .text = gEasyChatWord_Danger, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_THINK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DEFEATED)] = { .text = gEasyChatWord_Defeated, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRIES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEAT)] = { .text = gEasyChatWord_Beat, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GREAT)] = { .text = gEasyChatWord_Great, - .alphabeticalOrder = 67, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNDERSTAND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ROMANTIC)] = { .text = gEasyChatWord_Romantic, - .alphabeticalOrder = 68, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNDERSTANDS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_QUESTION)] = { .text = gEasyChatWord_Question, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNDERSTAND)] = { .text = gEasyChatWord_Understand, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_WANT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNDERSTANDS)] = { .text = gEasyChatWord_Understands, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_WANTS), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_greetings.h b/src/data/easy_chat/easy_chat_group_greetings.h index fb95f7939d..aabf34c1cf 100755 --- a/src/data/easy_chat/easy_chat_group_greetings.h +++ b/src/data/easy_chat/easy_chat_group_greetings.h @@ -45,253 +45,253 @@ const struct EasyChatWordInfo gEasyChatGroup_Greetings[] = { [EC_INDEX(EC_WORD_THANKS)] = { .text = gEasyChatWord_Thanks, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_APOLOGIZE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YES)] = { .text = gEasyChatWord_Yes, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_APPRECIATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HERE_GOES)] = { .text = gEasyChatWord_HereGoes, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_BYE_BYE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HERE_I_COME)] = { .text = gEasyChatWord_HereICome, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_COME_OVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HERE_IT_IS)] = { .text = gEasyChatWord_HereItIs, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_CONGRATS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YEAH)] = { .text = gEasyChatWord_Yeah, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_COUNT_ON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WELCOME)] = { .text = gEasyChatWord_Welcome, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCUSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OI)] = { .text = gEasyChatWord_Oi, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCUSE_ME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOW_DO)] = { .text = gEasyChatWord_HowDo, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_FORGIVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CONGRATS)] = { .text = gEasyChatWord_Congrats, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIVE_ME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIVE_ME)] = { .text = gEasyChatWord_GiveMe, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_GO_AHEAD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SORRY)] = { .text = gEasyChatWord_Sorry, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOOD_BYE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_APOLOGIZE)] = { .text = gEasyChatWord_Apologize, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_HELLO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FORGIVE)] = { .text = gEasyChatWord_Forgive, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_HERE_GOES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEY_THERE)] = { .text = gEasyChatWord_HeyThere, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_HERE_I_COME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HELLO)] = { .text = gEasyChatWord_Hello, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_HERE_IT_IS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOOD_BYE)] = { .text = gEasyChatWord_GoodBye, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THANK_YOU)] = { .text = gEasyChatWord_ThankYou, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEY_THERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_I_VE_ARRIVED)] = { .text = gEasyChatWord_IveArrived, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEY_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PARDON)] = { .text = gEasyChatWord_Pardon, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_HI), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCUSE)] = { .text = gEasyChatWord_Excuse, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOO_HAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SEE_YA)] = { .text = gEasyChatWord_SeeYa, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOW_DO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCUSE_ME)] = { .text = gEasyChatWord_ExcuseMe, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_HUH_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WELL_THEN)] = { .text = gEasyChatWord_WellThen, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_I_VE_ARRIVED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GO_AHEAD)] = { .text = gEasyChatWord_GoAhead, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_LISTENING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_APPRECIATE)] = { .text = gEasyChatWord_Appreciate, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_MEET_YOU), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEY_QUES)] = { .text = gEasyChatWord_HeyQues, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_NO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHAT_S_UP_QUES)] = { .text = gEasyChatWord_WhatsUpQues, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_OI), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HUH_QUES)] = { .text = gEasyChatWord_HuhQues, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_PARDON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NO)] = { .text = gEasyChatWord_No, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_SEE_YA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HI)] = { .text = gEasyChatWord_Hi, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMELL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YEAH_YEAH)] = { .text = gEasyChatWord_YeahYeah, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_SORRY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BYE_BYE)] = { .text = gEasyChatWord_ByeBye, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_THANK_YOU), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MEET_YOU)] = { .text = gEasyChatWord_MeetYou, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_THANKS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEY)] = { .text = gEasyChatWord_Hey, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_WELCOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMELL)] = { .text = gEasyChatWord_Smell, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_WELL_THEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LISTENING)] = { .text = gEasyChatWord_Listening, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHAT_S_UP_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOO_HAH)] = { .text = gEasyChatWord_HooHah, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_YAHOO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YAHOO)] = { .text = gEasyChatWord_Yahoo, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_YEAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YO)] = { .text = gEasyChatWord_Yo, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_YEAH_YEAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COME_OVER)] = { .text = gEasyChatWord_ComeOver, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_YES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COUNT_ON)] = { .text = gEasyChatWord_CountOn, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_YO), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_hobbies.h b/src/data/easy_chat/easy_chat_group_hobbies.h index dd507e21b9..fb3484ae05 100755 --- a/src/data/easy_chat/easy_chat_group_hobbies.h +++ b/src/data/easy_chat/easy_chat_group_hobbies.h @@ -57,325 +57,325 @@ const struct EasyChatWordInfo gEasyChatGroup_Hobbies[] = { [EC_INDEX(EC_WORD_IDOL)] = { .text = gEasyChatWord_Idol, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_ADVENTURE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANIME)] = { .text = gEasyChatWord_Anime, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANIME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SONG)] = { .text = gEasyChatWord_Song, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_BALL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MOVIE)] = { .text = gEasyChatWord_Movie, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_BIKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SWEETS)] = { .text = gEasyChatWord_Sweets, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_BOARD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHAT)] = { .text = gEasyChatWord_Chat, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_BOOK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHILD_S_PLAY)] = { .text = gEasyChatWord_ChildsPlay, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_CAMERA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOYS)] = { .text = gEasyChatWord_Toys, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_CARDS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MUSIC)] = { .text = gEasyChatWord_Music, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHANNEL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CARDS)] = { .text = gEasyChatWord_Cards, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHOPPING)] = { .text = gEasyChatWord_Shopping, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHILD_S_PLAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CAMERA)] = { .text = gEasyChatWord_Camera, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_COLLECTION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VIEWING)] = { .text = gEasyChatWord_Viewing, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_COMICS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SPECTATOR)] = { .text = gEasyChatWord_Spectator, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_COMPLETE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOURMET)] = { .text = gEasyChatWord_Gourmet, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_DANCE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GAME)] = { .text = gEasyChatWord_Game, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_DATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RPG)] = { .text = gEasyChatWord_Rpg, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_DESIGN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COLLECTION)] = { .text = gEasyChatWord_Collection, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_DIET), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COMPLETE)] = { .text = gEasyChatWord_Complete, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_FASHION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAGAZINE)] = { .text = gEasyChatWord_Magazine, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_FESTIVAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WALK)] = { .text = gEasyChatWord_Walk, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_FISHING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BIKE)] = { .text = gEasyChatWord_Bike, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_FLOWERS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOBBY)] = { .text = gEasyChatWord_Hobby, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_GAME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SPORTS)] = { .text = gEasyChatWord_Sports, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOURMET), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOFTWARE)] = { .text = gEasyChatWord_Software, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_HERO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SONGS)] = { .text = gEasyChatWord_Songs, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEROINE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DIET)] = { .text = gEasyChatWord_Diet, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOBBY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TREASURE)] = { .text = gEasyChatWord_Treasure, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOLIDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRAVEL)] = { .text = gEasyChatWord_Travel, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_IDOL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DANCE)] = { .text = gEasyChatWord_Dance, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOCOMOTIVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHANNEL)] = { .text = gEasyChatWord_Channel, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOOK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAKING)] = { .text = gEasyChatWord_Making, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAGAZINE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FISHING)] = { .text = gEasyChatWord_Fishing, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAKING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DATE)] = { .text = gEasyChatWord_Date, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_MOVIE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DESIGN)] = { .text = gEasyChatWord_Design, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_MUSIC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOCOMOTIVE)] = { .text = gEasyChatWord_Locomotive, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_NAP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLUSH_DOLL)] = { .text = gEasyChatWord_PlushDoll, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_PC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PC)] = { .text = gEasyChatWord_Pc, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLANS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FLOWERS)] = { .text = gEasyChatWord_Flowers, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLUSH_DOLL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HERO)] = { .text = gEasyChatWord_Hero, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_RPG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NAP)] = { .text = gEasyChatWord_Nap, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHOPPING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEROINE)] = { .text = gEasyChatWord_Heroine, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOFTWARE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FASHION)] = { .text = gEasyChatWord_Fashion, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_SONG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ADVENTURE)] = { .text = gEasyChatWord_Adventure, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_SONGS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BOARD)] = { .text = gEasyChatWord_Board, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_SPECTATOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BALL)] = { .text = gEasyChatWord_Ball, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_SPORTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BOOK)] = { .text = gEasyChatWord_Book, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_SWEETS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FESTIVAL)] = { .text = gEasyChatWord_Festival, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOYS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COMICS)] = { .text = gEasyChatWord_Comics, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRAVEL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOLIDAY)] = { .text = gEasyChatWord_Holiday, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_TREASURE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLANS)] = { .text = gEasyChatWord_Plans, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRENDY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRENDY)] = { .text = gEasyChatWord_Trendy, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_VACATION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VACATION)] = { .text = gEasyChatWord_Vacation, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_VIEWING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOOK)] = { .text = gEasyChatWord_Look, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_WALK), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_lifestyle.h b/src/data/easy_chat/easy_chat_group_lifestyle.h index 5819d0f2e4..264f4dde90 100755 --- a/src/data/easy_chat/easy_chat_group_lifestyle.h +++ b/src/data/easy_chat/easy_chat_group_lifestyle.h @@ -48,271 +48,271 @@ const struct EasyChatWordInfo gEasyChatGroup_Lifestyle[] = { [EC_INDEX(EC_WORD_CHORES)] = { .text = gEasyChatWord_Chores, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALLOWANCE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOME)] = { .text = gEasyChatWord_Home, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_BATH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MONEY)] = { .text = gEasyChatWord_Money, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHORES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALLOWANCE)] = { .text = gEasyChatWord_Allowance, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_CLASS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BATH)] = { .text = gEasyChatWord_Bath, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_COMMEMORATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CONVERSATION)] = { .text = gEasyChatWord_Conversation, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_CONVERSATION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SCHOOL)] = { .text = gEasyChatWord_School, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_DEPT_STORE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COMMEMORATE)] = { .text = gEasyChatWord_Commemorate, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_DIGITAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HABIT)] = { .text = gEasyChatWord_Habit, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_DREAM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GROUP)] = { .text = gEasyChatWord_Group, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WORD)] = { .text = gEasyChatWord_Word, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_GROUP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STORE)] = { .text = gEasyChatWord_Store, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_HABIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SERVICE)] = { .text = gEasyChatWord_Service, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WORK)] = { .text = gEasyChatWord_Work, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_INFORMATION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SYSTEM)] = { .text = gEasyChatWord_System, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_ITEM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRAIN)] = { .text = gEasyChatWord_Train, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_KINDERGARTEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CLASS)] = { .text = gEasyChatWord_Class, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_LESSONS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LESSONS)] = { .text = gEasyChatWord_Lessons, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_LETTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INFORMATION)] = { .text = gEasyChatWord_Information, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIFE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIVING)] = { .text = gEasyChatWord_Living, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIVING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TEACHER)] = { .text = gEasyChatWord_Teacher, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_MACHINE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOURNAMENT)] = { .text = gEasyChatWord_Tournament, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAIL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LETTER)] = { .text = gEasyChatWord_Letter, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_MESSAGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVENT)] = { .text = gEasyChatWord_Event, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_MONEY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DIGITAL)] = { .text = gEasyChatWord_Digital, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_NAME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TEST)] = { .text = gEasyChatWord_Test, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEWS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DEPT_STORE)] = { .text = gEasyChatWord_DeptStore, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_PARTY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TELEVISION)] = { .text = gEasyChatWord_Television, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_PHONE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PHONE)] = { .text = gEasyChatWord_Phone, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_POPULAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ITEM)] = { .text = gEasyChatWord_Item, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_PROMISE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NAME)] = { .text = gEasyChatWord_Name, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_RADIO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEWS)] = { .text = gEasyChatWord_News, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_RENTAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POPULAR)] = { .text = gEasyChatWord_Popular, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_SCHOOL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PARTY)] = { .text = gEasyChatWord_Party, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_SERVICE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STUDY)] = { .text = gEasyChatWord_Study, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_STORE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MACHINE)] = { .text = gEasyChatWord_Machine, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_STUDY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAIL)] = { .text = gEasyChatWord_Mail, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_SYSTEM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MESSAGE)] = { .text = gEasyChatWord_Message, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_TEACHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PROMISE)] = { .text = gEasyChatWord_Promise, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_TELEVISION), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DREAM)] = { .text = gEasyChatWord_Dream, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_TEST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KINDERGARTEN)] = { .text = gEasyChatWord_Kindergarten, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOURNAMENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIFE)] = { .text = gEasyChatWord_Life, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRAIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RADIO)] = { .text = gEasyChatWord_Radio, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_WORD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RENTAL)] = { .text = gEasyChatWord_Rental, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_WORK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WORLD)] = { .text = gEasyChatWord_World, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_WORLD), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_misc.h b/src/data/easy_chat/easy_chat_group_misc.h index aa8f84406d..187c86fc7a 100755 --- a/src/data/easy_chat/easy_chat_group_misc.h +++ b/src/data/easy_chat/easy_chat_group_misc.h @@ -45,253 +45,253 @@ const struct EasyChatWordInfo gEasyChatGroup_Misc[] = { [EC_INDEX(EC_WORD_HIGHS)] = { .text = gEasyChatWord_Highs, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_ABOVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOWS)] = { .text = gEasyChatWord_Lows, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_AM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UM)] = { .text = gEasyChatWord_Um, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_AWAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_REAR)] = { .text = gEasyChatWord_Rear, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_BACK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THINGS)] = { .text = gEasyChatWord_Things, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_BELOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THING)] = { .text = gEasyChatWord_Thing, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_BESIDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BELOW)] = { .text = gEasyChatWord_Below, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHOICE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ABOVE)] = { .text = gEasyChatWord_Above, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_CONFUSED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BACK)] = { .text = gEasyChatWord_Back, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_DEEP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIGH)] = { .text = gEasyChatWord_High, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_DOWN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HERE)] = { .text = gEasyChatWord_Here, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVERY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INSIDE)] = { .text = gEasyChatWord_Inside, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_FAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OUTSIDE)] = { .text = gEasyChatWord_Outside, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_FRONT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BESIDE)] = { .text = gEasyChatWord_Beside, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_HERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THIS_IS_IT_EXCL)] = { .text = gEasyChatWord_ThisIsItExcl, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THIS)] = { .text = gEasyChatWord_This, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIGHS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVERY)] = { .text = gEasyChatWord_Every, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_INSIDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THESE)] = { .text = gEasyChatWord_These, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEFT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THESE_WERE)] = { .text = gEasyChatWord_TheseWere, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOWS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DOWN)] = { .text = gEasyChatWord_Down, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THAT)] = { .text = gEasyChatWord_That, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_OPPOSITE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THOSE_ARE)] = { .text = gEasyChatWord_ThoseAre, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_OUTSIDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THOSE_WERE)] = { .text = gEasyChatWord_ThoseWere, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_REAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THAT_S_IT_EXCL)] = { .text = gEasyChatWord_ThatsItExcl, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_RIGHT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AM)] = { .text = gEasyChatWord_Am, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHALLOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THAT_WAS)] = { .text = gEasyChatWord_ThatWas, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_THAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FRONT)] = { .text = gEasyChatWord_Front, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_THAT_WAS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UP)] = { .text = gEasyChatWord_Up, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_THAT_S_IT_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHOICE)] = { .text = gEasyChatWord_Choice, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_THESE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FAR)] = { .text = gEasyChatWord_Far, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_THESE_WERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AWAY)] = { .text = gEasyChatWord_Away, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_THING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEAR)] = { .text = gEasyChatWord_Near, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_THINGS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHERE)] = { .text = gEasyChatWord_Where, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_THIS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHEN)] = { .text = gEasyChatWord_When, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_THIS_IS_IT_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHAT)] = { .text = gEasyChatWord_What, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_THOSE_ARE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DEEP)] = { .text = gEasyChatWord_Deep, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_THOSE_WERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHALLOW)] = { .text = gEasyChatWord_Shallow, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_UM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHY)] = { .text = gEasyChatWord_Why, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_UP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CONFUSED)] = { .text = gEasyChatWord_Confused, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OPPOSITE)] = { .text = gEasyChatWord_Opposite, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEFT)] = { .text = gEasyChatWord_Left, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RIGHT)] = { .text = gEasyChatWord_Right, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHY), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_people.h b/src/data/easy_chat/easy_chat_group_people.h index 2ddd3c9d9c..fb73c8651a 100755 --- a/src/data/easy_chat/easy_chat_group_people.h +++ b/src/data/easy_chat/easy_chat_group_people.h @@ -78,451 +78,451 @@ const struct EasyChatWordInfo gEasyChatGroup_People[] = { [EC_INDEX(EC_WORD_OPPONENT)] = { .text = gEasyChatWord_Opponent, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_ADULT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_I)] = { .text = gEasyChatWord_I, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YOU)] = { .text = gEasyChatWord_You, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_AREN_T), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YOURS)] = { .text = gEasyChatWord_Yours, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_AUNT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SON)] = { .text = gEasyChatWord_Son, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_BABE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YOUR)] = { .text = gEasyChatWord_Your, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YOU_RE)] = { .text = gEasyChatWord_Youre, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_BOY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YOU_VE)] = { .text = gEasyChatWord_Youve, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_BROTHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MOTHER)] = { .text = gEasyChatWord_Mother, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHILDREN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GRANDFATHER)] = { .text = gEasyChatWord_Grandfather, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_DAUGHTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNCLE)] = { .text = gEasyChatWord_Uncle, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_DUDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FATHER)] = { .text = gEasyChatWord_Father, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_FAMILY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BOY)] = { .text = gEasyChatWord_Boy, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_FATHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ADULT)] = { .text = gEasyChatWord_Adult, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_FRIEND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BROTHER)] = { .text = gEasyChatWord_Brother, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIRL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SISTER)] = { .text = gEasyChatWord_Sister, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_GRANDFATHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GRANDMOTHER)] = { .text = gEasyChatWord_Grandmother, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_GRANDMOTHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AUNT)] = { .text = gEasyChatWord_Aunt, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_HE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PARENT)] = { .text = gEasyChatWord_Parent, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_HE_S), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAN)] = { .text = gEasyChatWord_Man, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_HER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ME)] = { .text = gEasyChatWord_Me, - .alphabeticalOrder = 72, + .alphabeticalOrder = EC_INDEX(EC_WORD_HERS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIRL)] = { .text = gEasyChatWord_Girl, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BABE)] = { .text = gEasyChatWord_Babe, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FAMILY)] = { .text = gEasyChatWord_Family, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_I), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HER)] = { .text = gEasyChatWord_Her, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_I_AM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIM)] = { .text = gEasyChatWord_Him, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_I_WAS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HE)] = { .text = gEasyChatWord_He, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_I_VE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLACE)] = { .text = gEasyChatWord_Place, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_IT_S), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DAUGHTER)] = { .text = gEasyChatWord_Daughter, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_KID), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIS)] = { .text = gEasyChatWord_His, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_LADY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HE_S)] = { .text = gEasyChatWord_Hes, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AREN_T)] = { .text = gEasyChatWord_Arent, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_ME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SIBLINGS)] = { .text = gEasyChatWord_Siblings, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_MOTHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KID)] = { .text = gEasyChatWord_Kid, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_MR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHILDREN)] = { .text = gEasyChatWord_Children, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_MRS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MR)] = { .text = gEasyChatWord_Mr, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_MY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MRS)] = { .text = gEasyChatWord_Mrs, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_MYSELF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MYSELF)] = { .text = gEasyChatWord_Myself, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_OPPONENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_I_WAS)] = { .text = gEasyChatWord_IWas, - .alphabeticalOrder = 64, + .alphabeticalOrder = EC_INDEX(EC_WORD_OUR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TO_ME)] = { .text = gEasyChatWord_ToMe, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_PARENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MY)] = { .text = gEasyChatWord_My, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_PERSON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_I_AM)] = { .text = gEasyChatWord_IAm, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLACE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_I_VE)] = { .text = gEasyChatWord_Ive, - .alphabeticalOrder = 66, + .alphabeticalOrder = EC_INDEX(EC_WORD_RIVAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHO)] = { .text = gEasyChatWord_Who, - .alphabeticalOrder = 69, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOMEONE)] = { .text = gEasyChatWord_Someone, - .alphabeticalOrder = 73, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHE_IS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHO_WAS)] = { .text = gEasyChatWord_WhoWas, - .alphabeticalOrder = 70, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHE_WAS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TO_WHOM)] = { .text = gEasyChatWord_ToWhom, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_SIBLINGS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHOSE)] = { .text = gEasyChatWord_Whose, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_SISTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHO_IS)] = { .text = gEasyChatWord_WhoIs, - .alphabeticalOrder = 74, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IT_S)] = { .text = gEasyChatWord_Its, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOMEONE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LADY)] = { .text = gEasyChatWord_Lady, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_SON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FRIEND)] = { .text = gEasyChatWord_Friend, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_THEIR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALLY)] = { .text = gEasyChatWord_Ally, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_THEY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PERSON)] = { .text = gEasyChatWord_Person, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_THEY_WERE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DUDE)] = { .text = gEasyChatWord_Dude, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_THEY_RE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THEY)] = { .text = gEasyChatWord_They, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_THEY_VE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THEY_WERE)] = { .text = gEasyChatWord_TheyWere, - .alphabeticalOrder = 71, + .alphabeticalOrder = EC_INDEX(EC_WORD_TO_HER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TO_THEM)] = { .text = gEasyChatWord_ToThem, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_TO_ME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THEIR)] = { .text = gEasyChatWord_Their, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_TO_THEM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THEY_RE)] = { .text = gEasyChatWord_Theyre, - .alphabeticalOrder = 63, + .alphabeticalOrder = EC_INDEX(EC_WORD_TO_US), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THEY_VE)] = { .text = gEasyChatWord_Theyve, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_TO_WHOM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WE)] = { .text = gEasyChatWord_We, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNCLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEEN)] = { .text = gEasyChatWord_Been, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_WE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TO_US)] = { .text = gEasyChatWord_ToUs, - .alphabeticalOrder = 65, + .alphabeticalOrder = EC_INDEX(EC_WORD_WE_RE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OUR)] = { .text = gEasyChatWord_Our, - .alphabeticalOrder = 67, + .alphabeticalOrder = EC_INDEX(EC_WORD_WE_VE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WE_RE)] = { .text = gEasyChatWord_WeRe, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RIVAL)] = { .text = gEasyChatWord_Rival, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHO_IS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WE_VE)] = { .text = gEasyChatWord_Weve, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHO_WAS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WOMAN)] = { .text = gEasyChatWord_Woman, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHOSE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHE)] = { .text = gEasyChatWord_She, - .alphabeticalOrder = 68, + .alphabeticalOrder = EC_INDEX(EC_WORD_WOMAN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHE_WAS)] = { .text = gEasyChatWord_SheWas, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_YOU), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TO_HER)] = { .text = gEasyChatWord_ToHer, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_YOU_RE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HERS)] = { .text = gEasyChatWord_Hers, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_YOU_VE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHE_IS)] = { .text = gEasyChatWord_SheIs, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_YOUR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOME)] = { .text = gEasyChatWord_Some, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_YOURS), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_speech.h b/src/data/easy_chat/easy_chat_group_speech.h index a0874a33a5..c88aedc39e 100755 --- a/src/data/easy_chat/easy_chat_group_speech.h +++ b/src/data/easy_chat/easy_chat_group_speech.h @@ -63,361 +63,361 @@ const struct EasyChatWordInfo gEasyChatGroup_Speech[] = { [EC_INDEX(EC_WORD_LISTEN)] = { .text = gEasyChatWord_Listen, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_A_LITTLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NOT_VERY)] = { .text = gEasyChatWord_NotVery, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_A_LOT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MEAN)] = { .text = gEasyChatWord_Mean, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_A_TINY_BIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIE)] = { .text = gEasyChatWord_Lie, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_ABSOLUTELY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LAY)] = { .text = gEasyChatWord_Lay, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALSO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RECOMMEND)] = { .text = gEasyChatWord_Recommend, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALTHOUGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NITWIT)] = { .text = gEasyChatWord_Nitwit, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_AND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_QUITE)] = { .text = gEasyChatWord_Quite, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FROM)] = { .text = gEasyChatWord_From, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_AROUND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FEELING)] = { .text = gEasyChatWord_Feeling, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_AS_IF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BUT)] = { .text = gEasyChatWord_But, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_AS_MUCH_AS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOWEVER)] = { .text = gEasyChatWord_However, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_AWFULLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CASE)] = { .text = gEasyChatWord_Case, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_BUT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THE)] = { .text = gEasyChatWord_The, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_CASE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MISS)] = { .text = gEasyChatWord_Miss, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_ENOUGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOW)] = { .text = gEasyChatWord_How, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVEN_SO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIT)] = { .text = gEasyChatWord_Hit, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_FANTASTIC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ENOUGH)] = { .text = gEasyChatWord_Enough, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_FEELING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_A_LOT)] = { .text = gEasyChatWord_ALot, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_FINALLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_A_LITTLE)] = { .text = gEasyChatWord_ALittle, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_FOR_NOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ABSOLUTELY)] = { .text = gEasyChatWord_Absolutely, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_FROM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AND)] = { .text = gEasyChatWord_And, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ONLY)] = { .text = gEasyChatWord_Only, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AROUND)] = { .text = gEasyChatWord_Around, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOWEVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PROBABLY)] = { .text = gEasyChatWord_Probably, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_IF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IF)] = { .text = gEasyChatWord_If, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_INSTEAD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VERY)] = { .text = gEasyChatWord_Very, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_JOKING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_A_TINY_BIT)] = { .text = gEasyChatWord_ATinyBit, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_JUST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WILD)] = { .text = gEasyChatWord_Wild, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_LAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THAT_S)] = { .text = gEasyChatWord_Thats, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_JUST)] = { .text = gEasyChatWord_Just, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_LISTEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVEN_SO)] = { .text = gEasyChatWord_EvenSo, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_MEAN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MUST_BE)] = { .text = gEasyChatWord_MustBe, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_MISS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NATURALLY)] = { .text = gEasyChatWord_Naturally, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_MODE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FOR_NOW)] = { .text = gEasyChatWord_ForNow, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_MOOD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNDERSTOOD)] = { .text = gEasyChatWord_Understood, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_MORE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_JOKING)] = { .text = gEasyChatWord_Joking, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_MUST_BE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_READY)] = { .text = gEasyChatWord_Ready, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_NATURALLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOMETHING)] = { .text = gEasyChatWord_Something, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_NITWIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOMEHOW)] = { .text = gEasyChatWord_Somehow, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_NOT_VERY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALTHOUGH)] = { .text = gEasyChatWord_Although, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_ONLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALSO)] = { .text = gEasyChatWord_Also, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_PERFECT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PERFECT)] = { .text = gEasyChatWord_Perfect, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_PROBABLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AS_MUCH_AS)] = { .text = gEasyChatWord_AsMuchAs, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_QUITE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_REALLY)] = { .text = gEasyChatWord_Really, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_RATHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRULY)] = { .text = gEasyChatWord_Truly, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_READY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SERIOUSLY)] = { .text = gEasyChatWord_Seriously, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_REALLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOTALLY)] = { .text = gEasyChatWord_Totally, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_RECOMMEND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNTIL)] = { .text = gEasyChatWord_Until, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_SERIOUSLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AS_IF)] = { .text = gEasyChatWord_AsIf, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOMEHOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MOOD)] = { .text = gEasyChatWord_Mood, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOMETHING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RATHER)] = { .text = gEasyChatWord_Rather, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_THAT_S), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AWFULLY)] = { .text = gEasyChatWord_Awfully, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_THE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MODE)] = { .text = gEasyChatWord_Mode, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOO_LATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MORE)] = { .text = gEasyChatWord_More, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOTALLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOO_LATE)] = { .text = gEasyChatWord_TooLate, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRULY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FINALLY)] = { .text = gEasyChatWord_Finally, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNDERSTOOD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANY)] = { .text = gEasyChatWord_Any, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNTIL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INSTEAD)] = { .text = gEasyChatWord_Instead, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_VERY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FANTASTIC)] = { .text = gEasyChatWord_Fantastic, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_WILD), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_status.h b/src/data/easy_chat/easy_chat_group_status.h index af2292b446..b751fbaf18 100755 --- a/src/data/easy_chat/easy_chat_group_status.h +++ b/src/data/easy_chat/easy_chat_group_status.h @@ -112,655 +112,655 @@ const struct EasyChatWordInfo gEasyChatGroup_Status[] = { [EC_INDEX(EC_WORD_DARK)] = { .text = gEasyChatWord_Dark, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_AIR_LOCK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STENCH)] = { .text = gEasyChatWord_Stench, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALT_COLOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THICK_FAT)] = { .text = gEasyChatWord_ThickFat, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_ARENA_TRAP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RAIN_DISH)] = { .text = gEasyChatWord_RainDish, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_BATTLE_ARMOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DRIZZLE)] = { .text = gEasyChatWord_Drizzle, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEAUTIFUL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ARENA_TRAP)] = { .text = gEasyChatWord_ArenaTrap, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEAUTY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INTIMIDATE)] = { .text = gEasyChatWord_Intimidate, - .alphabeticalOrder = 101, + .alphabeticalOrder = EC_INDEX(EC_WORD_BLAZE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ROCK_HEAD)] = { .text = gEasyChatWord_RockHead, - .alphabeticalOrder = 97, + .alphabeticalOrder = EC_INDEX(EC_WORD_BUG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COLOR)] = { .text = gEasyChatWord_Color, - .alphabeticalOrder = 106, + .alphabeticalOrder = EC_INDEX(EC_WORD_CHLOROPHYLL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALT_COLOR)] = { .text = gEasyChatWord_AltColor, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_CLEAR_BODY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ROCK)] = { .text = gEasyChatWord_Rock, - .alphabeticalOrder = 68, + .alphabeticalOrder = EC_INDEX(EC_WORD_CLOUD_NINE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEAUTIFUL)] = { .text = gEasyChatWord_Beautiful, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_COLOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEAUTY)] = { .text = gEasyChatWord_Beauty, - .alphabeticalOrder = 86, + .alphabeticalOrder = EC_INDEX(EC_WORD_COLOR_CHANGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AIR_LOCK)] = { .text = gEasyChatWord_AirLock, - .alphabeticalOrder = 78, + .alphabeticalOrder = EC_INDEX(EC_WORD_COMPOUNDEYES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PSYCHIC)] = { .text = gEasyChatWord_Psychic, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_COOL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HYPER_CUTTER)] = { .text = gEasyChatWord_HyperCutter, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_COOLNESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FIGHTING)] = { .text = gEasyChatWord_Fighting, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_CUTE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHADOW_TAG)] = { .text = gEasyChatWord_ShadowTag, - .alphabeticalOrder = 99, + .alphabeticalOrder = EC_INDEX(EC_WORD_CUTE_CHARM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMART)] = { .text = gEasyChatWord_Smart, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_CUTENESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMARTNESS)] = { .text = gEasyChatWord_Smartness, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_DAMP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SPEED_BOOST)] = { .text = gEasyChatWord_SpeedBoost, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_DARK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COOL)] = { .text = gEasyChatWord_Cool, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_DRAGON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COOLNESS)] = { .text = gEasyChatWord_Coolness, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_DRIZZLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BATTLE_ARMOR)] = { .text = gEasyChatWord_BattleArmor, - .alphabeticalOrder = 76, + .alphabeticalOrder = EC_INDEX(EC_WORD_DROUGHT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CUTE)] = { .text = gEasyChatWord_Cute, - .alphabeticalOrder = 72, + .alphabeticalOrder = EC_INDEX(EC_WORD_EARLY_BIRD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CUTENESS)] = { .text = gEasyChatWord_Cuteness, - .alphabeticalOrder = 88, + .alphabeticalOrder = EC_INDEX(EC_WORD_EFFECT_SPORE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STURDY)] = { .text = gEasyChatWord_Sturdy, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_ELECTRIC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SUCTION_CUPS)] = { .text = gEasyChatWord_SuctionCups, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_FIGHTING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GRASS)] = { .text = gEasyChatWord_Grass, - .alphabeticalOrder = 90, + .alphabeticalOrder = EC_INDEX(EC_WORD_FIRE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CLEAR_BODY)] = { .text = gEasyChatWord_ClearBody, - .alphabeticalOrder = 91, + .alphabeticalOrder = EC_INDEX(EC_WORD_FLAME_BODY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TORRENT)] = { .text = gEasyChatWord_Torrent, - .alphabeticalOrder = 104, + .alphabeticalOrder = EC_INDEX(EC_WORD_FLASH_FIRE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GHOST)] = { .text = gEasyChatWord_Ghost, - .alphabeticalOrder = 75, + .alphabeticalOrder = EC_INDEX(EC_WORD_FLYING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ICE)] = { .text = gEasyChatWord_Ice, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_FORECAST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GUTS)] = { .text = gEasyChatWord_Guts, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_GHOST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ROUGH_SKIN)] = { .text = gEasyChatWord_RoughSkin, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_GRASS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHELL_ARMOR)] = { .text = gEasyChatWord_ShellArmor, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_GROUND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NATURAL_CURE)] = { .text = gEasyChatWord_NaturalCure, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_GUTS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DAMP)] = { .text = gEasyChatWord_Damp, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_HUGE_POWER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GROUND)] = { .text = gEasyChatWord_Ground, - .alphabeticalOrder = 73, + .alphabeticalOrder = EC_INDEX(EC_WORD_HUSTLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIMBER)] = { .text = gEasyChatWord_Limber, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_HYPER_CUTTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAGNET_PULL)] = { .text = gEasyChatWord_MagnetPull, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_ICE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHITE_SMOKE)] = { .text = gEasyChatWord_WhiteSmoke, - .alphabeticalOrder = 71, + .alphabeticalOrder = EC_INDEX(EC_WORD_ILLUMINATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SYNCHRONIZE)] = { .text = gEasyChatWord_Synchronize, - .alphabeticalOrder = 100, + .alphabeticalOrder = EC_INDEX(EC_WORD_IMMUNITY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OVERGROW)] = { .text = gEasyChatWord_Overgrow, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_INNER_FOCUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SWIFT_SWIM)] = { .text = gEasyChatWord_SwiftSwim, - .alphabeticalOrder = 81, + .alphabeticalOrder = EC_INDEX(EC_WORD_INSOMNIA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SAND_STREAM)] = { .text = gEasyChatWord_SandStream, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_INTIMIDATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SAND_VEIL)] = { .text = gEasyChatWord_SandVeil, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_KEEN_EYE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KEEN_EYE)] = { .text = gEasyChatWord_KeenEye, - .alphabeticalOrder = 82, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEVITATE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INNER_FOCUS)] = { .text = gEasyChatWord_InnerFocus, - .alphabeticalOrder = 77, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIGHTNINGROD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STATIC)] = { .text = gEasyChatWord_Static, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIMBER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TYPE)] = { .text = gEasyChatWord_Type, - .alphabeticalOrder = 85, + .alphabeticalOrder = EC_INDEX(EC_WORD_LIQUID_OOZE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOUGH)] = { .text = gEasyChatWord_Tough, - .alphabeticalOrder = 94, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAGMA_ARMOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOUGHNESS)] = { .text = gEasyChatWord_Toughness, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_MAGNET_PULL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHED_SKIN)] = { .text = gEasyChatWord_ShedSkin, - .alphabeticalOrder = 79, + .alphabeticalOrder = EC_INDEX(EC_WORD_MARVEL_SCALE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HUGE_POWER)] = { .text = gEasyChatWord_HugePower, - .alphabeticalOrder = 92, + .alphabeticalOrder = EC_INDEX(EC_WORD_MINUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VOLT_ABSORB)] = { .text = gEasyChatWord_VoltAbsorb, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_NATURAL_CURE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WATER_ABSORB)] = { .text = gEasyChatWord_WaterAbsorb, - .alphabeticalOrder = 69, + .alphabeticalOrder = EC_INDEX(EC_WORD_NORMAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ELECTRIC)] = { .text = gEasyChatWord_Electric, - .alphabeticalOrder = 64, + .alphabeticalOrder = EC_INDEX(EC_WORD_OBLIVIOUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FORECAST)] = { .text = gEasyChatWord_Forecast, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_OVERGROW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SERENE_GRACE)] = { .text = gEasyChatWord_SereneGrace, - .alphabeticalOrder = 93, + .alphabeticalOrder = EC_INDEX(EC_WORD_OWN_TEMPO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POISON)] = { .text = gEasyChatWord_Poison, - .alphabeticalOrder = 103, + .alphabeticalOrder = EC_INDEX(EC_WORD_PATTERN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POISON_POINT)] = { .text = gEasyChatWord_PoisonPoint, - .alphabeticalOrder = 102, + .alphabeticalOrder = EC_INDEX(EC_WORD_PICKUP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DRAGON)] = { .text = gEasyChatWord_Dragon, - .alphabeticalOrder = 89, + .alphabeticalOrder = EC_INDEX(EC_WORD_PKRS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRACE)] = { .text = gEasyChatWord_Trace, - .alphabeticalOrder = 83, + .alphabeticalOrder = EC_INDEX(EC_WORD_PLUS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OBLIVIOUS)] = { .text = gEasyChatWord_Oblivious, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_POISON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRUANT)] = { .text = gEasyChatWord_Truant, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_POISON_POINT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RUN_AWAY)] = { .text = gEasyChatWord_RunAway, - .alphabeticalOrder = 84, + .alphabeticalOrder = EC_INDEX(EC_WORD_PRESSURE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STICKY_HOLD)] = { .text = gEasyChatWord_StickyHold, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_PSYCHIC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CLOUD_NINE)] = { .text = gEasyChatWord_CloudNine, - .alphabeticalOrder = 107, + .alphabeticalOrder = EC_INDEX(EC_WORD_PURE_POWER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NORMAL)] = { .text = gEasyChatWord_Normal, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_RAIN_DISH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STEEL)] = { .text = gEasyChatWord_Steel, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_ROCK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ILLUMINATE)] = { .text = gEasyChatWord_Illuminate, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_ROCK_HEAD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EARLY_BIRD)] = { .text = gEasyChatWord_EarlyBird, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_ROUGH_SKIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HUSTLE)] = { .text = gEasyChatWord_Hustle, - .alphabeticalOrder = 66, + .alphabeticalOrder = EC_INDEX(EC_WORD_RUN_AWAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHINE)] = { .text = gEasyChatWord_Shine, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_SAND_STREAM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FLYING)] = { .text = gEasyChatWord_Flying, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_SAND_VEIL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DROUGHT)] = { .text = gEasyChatWord_Drought, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_SERENE_GRACE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIGHTNINGROD)] = { .text = gEasyChatWord_Lightningrod, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHADOW_TAG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COMPOUNDEYES)] = { .text = gEasyChatWord_Compoundeyes, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHED_SKIN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MARVEL_SCALE)] = { .text = gEasyChatWord_MarvelScale, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHELL_ARMOR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WONDER_GUARD)] = { .text = gEasyChatWord_WonderGuard, - .alphabeticalOrder = 108, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHIELD_DUST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_INSOMNIA)] = { .text = gEasyChatWord_Insomnia, - .alphabeticalOrder = 74, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHINE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEVITATE)] = { .text = gEasyChatWord_Levitate, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMART), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PLUS)] = { .text = gEasyChatWord_Plus, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMARTNESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PRESSURE)] = { .text = gEasyChatWord_Pressure, - .alphabeticalOrder = 87, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOUNDPROOF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LIQUID_OOZE)] = { .text = gEasyChatWord_LiquidOoze, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_SPEED_BOOST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COLOR_CHANGE)] = { .text = gEasyChatWord_ColorChange, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_STATIC), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOUNDPROOF)] = { .text = gEasyChatWord_Soundproof, - .alphabeticalOrder = 70, + .alphabeticalOrder = EC_INDEX(EC_WORD_STEEL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EFFECT_SPORE)] = { .text = gEasyChatWord_EffectSpore, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_STENCH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PKRS)] = { .text = gEasyChatWord_Pkrs, - .alphabeticalOrder = 67, + .alphabeticalOrder = EC_INDEX(EC_WORD_STICKY_HOLD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FIRE)] = { .text = gEasyChatWord_Fire, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_STURDY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FLAME_BODY)] = { .text = gEasyChatWord_FlameBody, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_SUCTION_CUPS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MINUS)] = { .text = gEasyChatWord_Minus, - .alphabeticalOrder = 98, + .alphabeticalOrder = EC_INDEX(EC_WORD_SWARM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OWN_TEMPO)] = { .text = gEasyChatWord_OwnTempo, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_SWIFT_SWIM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MAGMA_ARMOR)] = { .text = gEasyChatWord_MagmaArmor, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_SYNCHRONIZE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WATER)] = { .text = gEasyChatWord_Water, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_THICK_FAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WATER_VEIL)] = { .text = gEasyChatWord_WaterVeil, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_TORRENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BUG)] = { .text = gEasyChatWord_Bug, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOUGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SWARM)] = { .text = gEasyChatWord_Swarm, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOUGHNESS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CUTE_CHARM)] = { .text = gEasyChatWord_CuteCharm, - .alphabeticalOrder = 63, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRACE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_IMMUNITY)] = { .text = gEasyChatWord_Immunity, - .alphabeticalOrder = 65, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRUANT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BLAZE)] = { .text = gEasyChatWord_Blaze, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_TYPE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PICKUP)] = { .text = gEasyChatWord_Pickup, - .alphabeticalOrder = 105, + .alphabeticalOrder = EC_INDEX(EC_WORD_VITAL_SPIRIT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PATTERN)] = { .text = gEasyChatWord_Pattern, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_VOLT_ABSORB), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FLASH_FIRE)] = { .text = gEasyChatWord_FlashFire, - .alphabeticalOrder = 95, + .alphabeticalOrder = EC_INDEX(EC_WORD_WATER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VITAL_SPIRIT)] = { .text = gEasyChatWord_VitalSpirit, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_WATER_ABSORB), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CHLOROPHYLL)] = { .text = gEasyChatWord_Chlorophyll, - .alphabeticalOrder = 96, + .alphabeticalOrder = EC_INDEX(EC_WORD_WATER_VEIL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_PURE_POWER)] = { .text = gEasyChatWord_PurePower, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHITE_SMOKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHIELD_DUST)] = { .text = gEasyChatWord_ShieldDust, - .alphabeticalOrder = 80, + .alphabeticalOrder = EC_INDEX(EC_WORD_WONDER_GUARD), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_time.h b/src/data/easy_chat/easy_chat_group_time.h index 061abffd49..e7646f4fa7 100755 --- a/src/data/easy_chat/easy_chat_group_time.h +++ b/src/data/easy_chat/easy_chat_group_time.h @@ -48,271 +48,271 @@ const struct EasyChatWordInfo gEasyChatGroup_Time[] = { [EC_INDEX(EC_WORD_FALL)] = { .text = gEasyChatWord_Fall, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_AGE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MORNING)] = { .text = gEasyChatWord_Morning, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALMOST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TOMORROW)] = { .text = gEasyChatWord_Tomorrow, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_ALWAYS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LAST)] = { .text = gEasyChatWord_Last, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_ANOTHER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DAY)] = { .text = gEasyChatWord_Day, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_BEGINNING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOMETIME)] = { .text = gEasyChatWord_Sometime, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_CURRENT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALWAYS)] = { .text = gEasyChatWord_Always, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_DAILY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CURRENT)] = { .text = gEasyChatWord_Current, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_DAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FOREVER)] = { .text = gEasyChatWord_Forever, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_DAYS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DAYS)] = { .text = gEasyChatWord_Days, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_DAYTIME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_END)] = { .text = gEasyChatWord_End, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_EARLIER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TUESDAY)] = { .text = gEasyChatWord_Tuesday, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_END), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YESTERDAY)] = { .text = gEasyChatWord_Yesterday, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_FALL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TODAY)] = { .text = gEasyChatWord_Today, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_FINAL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FRIDAY)] = { .text = gEasyChatWord_Friday, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_FINISH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MONDAY)] = { .text = gEasyChatWord_Monday, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_FOREVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LATER)] = { .text = gEasyChatWord_Later, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_FRIDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EARLIER)] = { .text = gEasyChatWord_Earlier, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_LAST), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ANOTHER)] = { .text = gEasyChatWord_Another, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_LATER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TIME)] = { .text = gEasyChatWord_Time, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_MONDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FINISH)] = { .text = gEasyChatWord_Finish, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_MONTH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WEDNESDAY)] = { .text = gEasyChatWord_Wednesday, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_MORNING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SOON)] = { .text = gEasyChatWord_Soon, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEARLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_START)] = { .text = gEasyChatWord_Start, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEXT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MONTH)] = { .text = gEasyChatWord_Month, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_NIGHT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_STOP)] = { .text = gEasyChatWord_Stop, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_NIGHTTIME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NOW)] = { .text = gEasyChatWord_Now, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_NOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FINAL)] = { .text = gEasyChatWord_Final, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_OLDEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEXT)] = { .text = gEasyChatWord_Next, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_SATURDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AGE)] = { .text = gEasyChatWord_Age, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOMETIME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SATURDAY)] = { .text = gEasyChatWord_Saturday, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_SOON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SUMMER)] = { .text = gEasyChatWord_Summer, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_SPRING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SUNDAY)] = { .text = gEasyChatWord_Sunday, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_START), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BEGINNING)] = { .text = gEasyChatWord_Beginning, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_STOP), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SPRING)] = { .text = gEasyChatWord_Spring, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_SUMMER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DAYTIME)] = { .text = gEasyChatWord_Daytime, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_SUNDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WINTER)] = { .text = gEasyChatWord_Winter, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_THURSDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DAILY)] = { .text = gEasyChatWord_Daily, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_TIME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OLDEN)] = { .text = gEasyChatWord_Olden, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_TODAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ALMOST)] = { .text = gEasyChatWord_Almost, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_TOMORROW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEARLY)] = { .text = gEasyChatWord_Nearly, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_TUESDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_THURSDAY)] = { .text = gEasyChatWord_Thursday, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_WEDNESDAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NIGHTTIME)] = { .text = gEasyChatWord_Nighttime, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_WEEK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NIGHT)] = { .text = gEasyChatWord_Night, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_WINTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WEEK)] = { .text = gEasyChatWord_Week, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_YESTERDAY), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_trainer.h b/src/data/easy_chat/easy_chat_group_trainer.h index 87966c9771..a74ac5c3f6 100755 --- a/src/data/easy_chat/easy_chat_group_trainer.h +++ b/src/data/easy_chat/easy_chat_group_trainer.h @@ -30,163 +30,163 @@ const struct EasyChatWordInfo gEasyChatGroup_Trainer[] = { [EC_INDEX(EC_WORD_I_CHOOSE_YOU)] = { .text = gEasyChatWord_IChooseYou, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_BAG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GOTCHA)] = { .text = gEasyChatWord_Gotcha, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_CENTER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRADE)] = { .text = gEasyChatWord_Trade, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_EGG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SAPPHIRE)] = { .text = gEasyChatWord_Sapphire, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_EMERALD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EVOLVE)] = { .text = gEasyChatWord_Evolve, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_ENCYCLOPEDIA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ENCYCLOPEDIA)] = { .text = gEasyChatWord_Encyclopedia, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_EVOLVE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NATURE)] = { .text = gEasyChatWord_Nature, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_FLAME), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CENTER)] = { .text = gEasyChatWord_Center, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_GET), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EGG)] = { .text = gEasyChatWord_Egg, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOLD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LINK)] = { .text = gEasyChatWord_Link, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_GOTCHA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SP_ABILITY)] = { .text = gEasyChatWord_SpAbility, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_GREEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TRAINER)] = { .text = gEasyChatWord_Trainer, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_I_CHOOSE_YOU), .enabled = TRUE, }, [EC_INDEX(EC_WORD_VERSION)] = { .text = gEasyChatWord_Version, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEAF), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POKENAV)] = { .text = gEasyChatWord_Pokenav, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_LEVEL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POKEMON)] = { .text = gEasyChatWord_Pokemon, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_LINK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GET)] = { .text = gEasyChatWord_Get, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_NATURE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_POKEDEX)] = { .text = gEasyChatWord_Pokedex, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_POKEDEX), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RUBY)] = { .text = gEasyChatWord_Ruby, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_POKEMON), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LEVEL)] = { .text = gEasyChatWord_Level, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_POKENAV), .enabled = TRUE, }, [EC_INDEX(EC_WORD_RED)] = { .text = gEasyChatWord_Red, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_RED), .enabled = FALSE, }, [EC_INDEX(EC_WORD_GREEN)] = { .text = gEasyChatWord_Green, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_RUBY), .enabled = FALSE, }, [EC_INDEX(EC_WORD_BAG)] = { .text = gEasyChatWord_Bag, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_SAPPHIRE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FLAME)] = { .text = gEasyChatWord_Flame, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_SILVER), .enabled = FALSE, }, [EC_INDEX(EC_WORD_GOLD)] = { .text = gEasyChatWord_Gold, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_SP_ABILITY), .enabled = FALSE, }, [EC_INDEX(EC_WORD_LEAF)] = { .text = gEasyChatWord_Leaf, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRADE), .enabled = FALSE, }, [EC_INDEX(EC_WORD_SILVER)] = { .text = gEasyChatWord_Silver, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_TRAINER), .enabled = FALSE, }, [EC_INDEX(EC_WORD_EMERALD)] = { .text = gEasyChatWord_Emerald, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_VERSION), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_trendy_saying.h b/src/data/easy_chat/easy_chat_group_trendy_saying.h index 938073f7f8..60b5d8c725 100755 --- a/src/data/easy_chat/easy_chat_group_trendy_saying.h +++ b/src/data/easy_chat/easy_chat_group_trendy_saying.h @@ -36,199 +36,199 @@ const struct EasyChatWordInfo gEasyChatGroup_TrendySaying[] = { [EC_INDEX(EC_WORD_KTHX_BYE)] = { .text = gEasyChatWord_KthxBye, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_1_HIT_KO_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YES_SIR_EXCL)] = { .text = gEasyChatWord_YesSirExcl, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_AVANT_GARDE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AVANT_GARDE)] = { .text = gEasyChatWord_AvantGarde, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_BABY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_COUPLE)] = { .text = gEasyChatWord_Couple, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_BANG), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MUCH_OBLIGED)] = { .text = gEasyChatWord_MuchObliged, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_CANCEL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YEEHAW_EXCL)] = { .text = gEasyChatWord_YeehawExcl, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_COUPLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MEGA)] = { .text = gEasyChatWord_Mega, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_DESTINY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_1_HIT_KO_EXCL)] = { .text = gEasyChatWord_1HitKOExcl, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_FEVER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DESTINY)] = { .text = gEasyChatWord_Destiny, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_FLATTEN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CANCEL)] = { .text = gEasyChatWord_Cancel, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAPPENING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NEW)] = { .text = gEasyChatWord_New, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_HASSLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FLATTEN)] = { .text = gEasyChatWord_Flatten, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEART), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KIDDING)] = { .text = gEasyChatWord_Kidding, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIP_AND), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOSER)] = { .text = gEasyChatWord_Loser, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_KIDDING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOSING)] = { .text = gEasyChatWord_Losing, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_KNOCKOUT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAPPENING)] = { .text = gEasyChatWord_Happening, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_KTHX_BYE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIP_AND)] = { .text = gEasyChatWord_HipAnd, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOSER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHAKE)] = { .text = gEasyChatWord_Shake, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOSING), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHADY)] = { .text = gEasyChatWord_Shady, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_MEGA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UPBEAT)] = { .text = gEasyChatWord_Upbeat, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_MODERN), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MODERN)] = { .text = gEasyChatWord_Modern, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_MUCH_OBLIGED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SMELL_YA)] = { .text = gEasyChatWord_SmellYa, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_NEW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BANG)] = { .text = gEasyChatWord_Bang, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_OLD), .enabled = TRUE, }, [EC_INDEX(EC_WORD_KNOCKOUT)] = { .text = gEasyChatWord_Knockout, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHADY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HASSLE)] = { .text = gEasyChatWord_Hassle, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHAKE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WINNER)] = { .text = gEasyChatWord_Winner, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_SMELL_YA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FEVER)] = { .text = gEasyChatWord_Fever, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_UGLY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WANNABE)] = { .text = gEasyChatWord_Wannabe, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_UPBEAT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_BABY)] = { .text = gEasyChatWord_Baby, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_WANNABE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEART)] = { .text = gEasyChatWord_Heart, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_WINNER), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OLD)] = { .text = gEasyChatWord_Old, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_YEEHAW_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YOUNG)] = { .text = gEasyChatWord_Young, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_YES_SIR_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UGLY)] = { .text = gEasyChatWord_Ugly, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_YOUNG), .enabled = TRUE, }, }; diff --git a/src/data/easy_chat/easy_chat_group_voices.h b/src/data/easy_chat/easy_chat_group_voices.h index 3ebbafd252..f50cba002e 100755 --- a/src/data/easy_chat/easy_chat_group_voices.h +++ b/src/data/easy_chat/easy_chat_group_voices.h @@ -66,379 +66,379 @@ const struct EasyChatWordInfo gEasyChatGroup_Voices[] = { [EC_INDEX(EC_WORD_EXCL)] = { .text = gEasyChatWord_Excl, - .alphabeticalOrder = 0, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EXCL_EXCL)] = { .text = gEasyChatWord_ExclExcl, - .alphabeticalOrder = 1, + .alphabeticalOrder = EC_INDEX(EC_WORD_EXCL_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_QUES_EXCL)] = { .text = gEasyChatWord_QuesExcl, - .alphabeticalOrder = 7, + .alphabeticalOrder = EC_INDEX(EC_WORD_DASH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_QUES)] = { .text = gEasyChatWord_Ques, - .alphabeticalOrder = 8, + .alphabeticalOrder = EC_INDEX(EC_WORD_DASH_DASH_DASH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ELLIPSIS)] = { .text = gEasyChatWord_Ellipsis, - .alphabeticalOrder = 4, + .alphabeticalOrder = EC_INDEX(EC_WORD_ELLIPSIS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ELLIPSIS_EXCL)] = { .text = gEasyChatWord_EllipsisExcl, - .alphabeticalOrder = 5, + .alphabeticalOrder = EC_INDEX(EC_WORD_ELLIPSIS_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS)] = { .text = gEasyChatWord_EllipsisEllipsisEllipsis, - .alphabeticalOrder = 6, + .alphabeticalOrder = EC_INDEX(EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DASH)] = { .text = gEasyChatWord_Dash, - .alphabeticalOrder = 3, + .alphabeticalOrder = EC_INDEX(EC_WORD_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_DASH_DASH_DASH)] = { .text = gEasyChatWord_DashDashDash, - .alphabeticalOrder = 2, + .alphabeticalOrder = EC_INDEX(EC_WORD_QUES_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UH_OH)] = { .text = gEasyChatWord_UhOh, - .alphabeticalOrder = 23, + .alphabeticalOrder = EC_INDEX(EC_WORD_AGREE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAAAH)] = { .text = gEasyChatWord_Waaah, - .alphabeticalOrder = 11, + .alphabeticalOrder = EC_INDEX(EC_WORD_AHAHA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AHAHA)] = { .text = gEasyChatWord_Ahaha, - .alphabeticalOrder = 41, + .alphabeticalOrder = EC_INDEX(EC_WORD_AIYEEH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OH_QUES)] = { .text = gEasyChatWord_OhQues, - .alphabeticalOrder = 52, + .alphabeticalOrder = EC_INDEX(EC_WORD_ARRGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_NOPE)] = { .text = gEasyChatWord_Nope, - .alphabeticalOrder = 59, + .alphabeticalOrder = EC_INDEX(EC_WORD_AWW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_URGH)] = { .text = gEasyChatWord_Urgh, - .alphabeticalOrder = 22, + .alphabeticalOrder = EC_INDEX(EC_WORD_CRIES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HMM)] = { .text = gEasyChatWord_Hmm, - .alphabeticalOrder = 25, + .alphabeticalOrder = EC_INDEX(EC_WORD_CRY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WHOAH)] = { .text = gEasyChatWord_Whoah, - .alphabeticalOrder = 32, + .alphabeticalOrder = EC_INDEX(EC_WORD_EEK), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WROOOAAR_EXCL)] = { .text = gEasyChatWord_WroooaarExcl, - .alphabeticalOrder = 24, + .alphabeticalOrder = EC_INDEX(EC_WORD_EH_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WOW)] = { .text = gEasyChatWord_Wow, - .alphabeticalOrder = 26, + .alphabeticalOrder = EC_INDEX(EC_WORD_EHEHE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GIGGLE)] = { .text = gEasyChatWord_Giggle, - .alphabeticalOrder = 43, + .alphabeticalOrder = EC_INDEX(EC_WORD_FUFUFU), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SIGH)] = { .text = gEasyChatWord_Sigh, - .alphabeticalOrder = 19, + .alphabeticalOrder = EC_INDEX(EC_WORD_GIGGLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UNBELIEVABLE)] = { .text = gEasyChatWord_Unbelievable, - .alphabeticalOrder = 33, + .alphabeticalOrder = EC_INDEX(EC_WORD_GRAAAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CRIES)] = { .text = gEasyChatWord_Cries, - .alphabeticalOrder = 61, + .alphabeticalOrder = EC_INDEX(EC_WORD_GWAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AGREE)] = { .text = gEasyChatWord_Agree, - .alphabeticalOrder = 34, + .alphabeticalOrder = EC_INDEX(EC_WORD_GWAHAHAHA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EH_QUES)] = { .text = gEasyChatWord_EhQues, - .alphabeticalOrder = 38, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_CRY)] = { .text = gEasyChatWord_Cry, - .alphabeticalOrder = 40, + .alphabeticalOrder = EC_INDEX(EC_WORD_HAHAHA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EHEHE)] = { .text = gEasyChatWord_Ehehe, - .alphabeticalOrder = 48, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OI_OI_OI)] = { .text = gEasyChatWord_OiOiOi, - .alphabeticalOrder = 37, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEHE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OH_YEAH)] = { .text = gEasyChatWord_OhYeah, - .alphabeticalOrder = 47, + .alphabeticalOrder = EC_INDEX(EC_WORD_HEHEHE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OH)] = { .text = gEasyChatWord_Oh, - .alphabeticalOrder = 42, + .alphabeticalOrder = EC_INDEX(EC_WORD_HIYAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OOPS)] = { .text = gEasyChatWord_Oops, - .alphabeticalOrder = 15, + .alphabeticalOrder = EC_INDEX(EC_WORD_HMM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SHOCKED)] = { .text = gEasyChatWord_Shocked, - .alphabeticalOrder = 49, + .alphabeticalOrder = EC_INDEX(EC_WORD_HOHOHO), .enabled = TRUE, }, [EC_INDEX(EC_WORD_EEK)] = { .text = gEasyChatWord_Eek, - .alphabeticalOrder = 46, + .alphabeticalOrder = EC_INDEX(EC_WORD_HUMPH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GRAAAH)] = { .text = gEasyChatWord_Graaah, - .alphabeticalOrder = 57, + .alphabeticalOrder = EC_INDEX(EC_WORD_LALALA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GWAHAHAHA)] = { .text = gEasyChatWord_Gwahahaha, - .alphabeticalOrder = 44, + .alphabeticalOrder = EC_INDEX(EC_WORD_LOL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAY)] = { .text = gEasyChatWord_Way, - .alphabeticalOrder = 54, + .alphabeticalOrder = EC_INDEX(EC_WORD_MMM), .enabled = TRUE, }, [EC_INDEX(EC_WORD_TCH)] = { .text = gEasyChatWord_Tch, - .alphabeticalOrder = 53, + .alphabeticalOrder = EC_INDEX(EC_WORD_MUFUFU), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEHE)] = { .text = gEasyChatWord_Hehe, - .alphabeticalOrder = 13, + .alphabeticalOrder = EC_INDEX(EC_WORD_NOPE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAH)] = { .text = gEasyChatWord_Hah, - .alphabeticalOrder = 29, + .alphabeticalOrder = EC_INDEX(EC_WORD_OH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YUP)] = { .text = gEasyChatWord_Yup, - .alphabeticalOrder = 51, + .alphabeticalOrder = EC_INDEX(EC_WORD_OH_DEAR), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HAHAHA)] = { .text = gEasyChatWord_Hahaha, - .alphabeticalOrder = 28, + .alphabeticalOrder = EC_INDEX(EC_WORD_OH_YEAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AIYEEH)] = { .text = gEasyChatWord_Aiyeeh, - .alphabeticalOrder = 55, + .alphabeticalOrder = EC_INDEX(EC_WORD_OH_KAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HIYAH)] = { .text = gEasyChatWord_Hiyah, - .alphabeticalOrder = 12, + .alphabeticalOrder = EC_INDEX(EC_WORD_OH_QUES), .enabled = TRUE, }, [EC_INDEX(EC_WORD_FUFUFU)] = { .text = gEasyChatWord_Fufufu, - .alphabeticalOrder = 27, + .alphabeticalOrder = EC_INDEX(EC_WORD_OI_OI_OI), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LOL)] = { .text = gEasyChatWord_Lol, - .alphabeticalOrder = 56, + .alphabeticalOrder = EC_INDEX(EC_WORD_OKAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_SNORT)] = { .text = gEasyChatWord_Snort, - .alphabeticalOrder = 30, + .alphabeticalOrder = EC_INDEX(EC_WORD_OOPS), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HUMPH)] = { .text = gEasyChatWord_Humph, - .alphabeticalOrder = 31, + .alphabeticalOrder = EC_INDEX(EC_WORD_SHOCKED), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEHEHE)] = { .text = gEasyChatWord_Hehehe, - .alphabeticalOrder = 20, + .alphabeticalOrder = EC_INDEX(EC_WORD_SIGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HEH)] = { .text = gEasyChatWord_Heh, - .alphabeticalOrder = 45, + .alphabeticalOrder = EC_INDEX(EC_WORD_SNORT), .enabled = TRUE, }, [EC_INDEX(EC_WORD_HOHOHO)] = { .text = gEasyChatWord_Hohoho, - .alphabeticalOrder = 36, + .alphabeticalOrder = EC_INDEX(EC_WORD_TCH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_UH_HUH)] = { .text = gEasyChatWord_UhHuh, - .alphabeticalOrder = 50, + .alphabeticalOrder = EC_INDEX(EC_WORD_UH_HUH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OH_DEAR)] = { .text = gEasyChatWord_OhDear, - .alphabeticalOrder = 9, + .alphabeticalOrder = EC_INDEX(EC_WORD_UH_OH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_ARRGH)] = { .text = gEasyChatWord_Arrgh, - .alphabeticalOrder = 21, + .alphabeticalOrder = EC_INDEX(EC_WORD_UNBELIEVABLE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MUFUFU)] = { .text = gEasyChatWord_Mufufu, - .alphabeticalOrder = 14, + .alphabeticalOrder = EC_INDEX(EC_WORD_URGH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_MMM)] = { .text = gEasyChatWord_Mmm, - .alphabeticalOrder = 10, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAAAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OH_KAY)] = { .text = gEasyChatWord_OhKay, - .alphabeticalOrder = 62, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAHAHAHA), .enabled = TRUE, }, [EC_INDEX(EC_WORD_OKAY)] = { .text = gEasyChatWord_Okay, - .alphabeticalOrder = 35, + .alphabeticalOrder = EC_INDEX(EC_WORD_WAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_LALALA)] = { .text = gEasyChatWord_Lalala, - .alphabeticalOrder = 16, + .alphabeticalOrder = EC_INDEX(EC_WORD_WHOAH), .enabled = TRUE, }, [EC_INDEX(EC_WORD_YAY)] = { .text = gEasyChatWord_Yay, - .alphabeticalOrder = 18, + .alphabeticalOrder = EC_INDEX(EC_WORD_WOW), .enabled = TRUE, }, [EC_INDEX(EC_WORD_AWW)] = { .text = gEasyChatWord_Aww, - .alphabeticalOrder = 60, + .alphabeticalOrder = EC_INDEX(EC_WORD_WOWEE), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WOWEE)] = { .text = gEasyChatWord_Wowee, - .alphabeticalOrder = 17, + .alphabeticalOrder = EC_INDEX(EC_WORD_WROOOAAR_EXCL), .enabled = TRUE, }, [EC_INDEX(EC_WORD_GWAH)] = { .text = gEasyChatWord_Gwah, - .alphabeticalOrder = 58, + .alphabeticalOrder = EC_INDEX(EC_WORD_YAY), .enabled = TRUE, }, [EC_INDEX(EC_WORD_WAHAHAHA)] = { .text = gEasyChatWord_Wahahaha, - .alphabeticalOrder = 39, + .alphabeticalOrder = EC_INDEX(EC_WORD_YUP), .enabled = TRUE, }, }; From 95aa41f0d42e1089e4bb082a614cab02419ad701 Mon Sep 17 00:00:00 2001 From: shachar700 <48739719+shachar700@users.noreply.github.com> Date: Wed, 29 Jan 2025 09:43:13 +0200 Subject: [PATCH 99/99] Fixed switchout bug in multibattle where order of mons gets messed up (#2099) --- src/battle_script_commands.c | 71 +++++++++++++++++++++++++++++++++++- src/battle_util2.c | 4 +- 2 files changed, 72 insertions(+), 3 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 1891ea9285..f1a03b7af7 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -7189,7 +7189,7 @@ static void Cmd_forcerandomswitch(void) s32 battler2PartyId = 0; s32 firstMonId; - s32 lastMonId = 0; // + 1 + s32 lastMonId = 0; s32 monsCount; struct Pokemon *party = NULL; s32 validMons = 0; @@ -7209,12 +7209,20 @@ static void Cmd_forcerandomswitch(void) if ((gBattlerTarget & BIT_FLANK) != B_FLANK_LEFT) { firstMonId = PARTY_SIZE / 2; + #ifdef BUGFIX + lastMonId = PARTY_SIZE - 1; + #else lastMonId = PARTY_SIZE; + #endif } else { firstMonId = 0; + #ifdef BUGFIX + lastMonId = PARTY_SIZE / 2 - 1; + #else lastMonId = PARTY_SIZE / 2; + #endif } monsCount = PARTY_SIZE / 2; minNeeded = 1; @@ -7227,12 +7235,20 @@ static void Cmd_forcerandomswitch(void) if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gBattlerTarget)) == B_FLANK_RIGHT) { firstMonId = PARTY_SIZE / 2; + #ifdef BUGFIX + lastMonId = PARTY_SIZE - 1; + #else lastMonId = PARTY_SIZE; + #endif } else { firstMonId = 0; + #ifdef BUGFIX + lastMonId = PARTY_SIZE / 2 - 1; + #else lastMonId = PARTY_SIZE / 2; + #endif } monsCount = PARTY_SIZE / 2; minNeeded = 1; @@ -7244,7 +7260,11 @@ static void Cmd_forcerandomswitch(void) if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) { firstMonId = 0; + #ifdef BUGFIX + lastMonId = PARTY_SIZE - 1; + #else lastMonId = PARTY_SIZE; + #endif monsCount = PARTY_SIZE; minNeeded = 2; // since there are two opponents, it has to be a double battle } @@ -7253,12 +7273,20 @@ static void Cmd_forcerandomswitch(void) if ((gBattlerTarget & BIT_FLANK) != B_FLANK_LEFT) { firstMonId = PARTY_SIZE / 2; + #ifdef BUGFIX + lastMonId = PARTY_SIZE - 1; + #else lastMonId = PARTY_SIZE; + #endif } else { firstMonId = 0; + #ifdef BUGFIX + lastMonId = PARTY_SIZE / 2 - 1; + #else lastMonId = PARTY_SIZE / 2; + #endif } monsCount = PARTY_SIZE / 2; minNeeded = 1; @@ -7269,7 +7297,11 @@ static void Cmd_forcerandomswitch(void) else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { firstMonId = 0; + #ifdef BUGFIX + lastMonId = PARTY_SIZE - 1; + #else lastMonId = PARTY_SIZE; + #endif monsCount = PARTY_SIZE; minNeeded = 2; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; @@ -7278,7 +7310,11 @@ static void Cmd_forcerandomswitch(void) else { firstMonId = 0; + #ifdef BUGFIX + lastMonId = PARTY_SIZE - 1; + #else lastMonId = PARTY_SIZE; + #endif monsCount = PARTY_SIZE; minNeeded = 1; battler2PartyId = gBattlerPartyIndexes[gBattlerTarget]; // there is only one Pokémon out in single battles @@ -7301,6 +7337,38 @@ static void Cmd_forcerandomswitch(void) } else { + #ifdef BUGFIX + if (TryDoForceSwitchOut()) + { + do + { + do + { + i = Random() % monsCount; + i += firstMonId; + } + while (i == battler2PartyId || i == battler1PartyId); + } while (GetMonData(&party[i], MON_DATA_SPECIES) == SPECIES_NONE + || GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE + || GetMonData(&party[i], MON_DATA_HP) == 0); //should be one while loop, but that doesn't match. + *(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i; + + if (!IsMultiBattle()) + SwitchPartyOrder(gBattlerTarget); + + if ((gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + || (gBattleTypeFlags & BATTLE_TYPE_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI) + || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) + || (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK && gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + SwitchPartyOrderLinkMulti(gBattlerTarget, i, 0); + SwitchPartyOrderLinkMulti(BATTLE_PARTNER(gBattlerTarget), i, 1); + } + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + SwitchPartyOrderInGameMulti(gBattlerTarget, i); + } + #else if (TryDoForceSwitchOut()) { do @@ -7331,6 +7399,7 @@ static void Cmd_forcerandomswitch(void) if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) SwitchPartyOrderInGameMulti(gBattlerTarget, i); + #endif } } else diff --git a/src/battle_util2.c b/src/battle_util2.c index 8a202c9867..8ecb0a79b4 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -109,12 +109,12 @@ void SwitchPartyOrderInGameMulti(u8 battlerId, u8 arg1) { s32 i; for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++) - gBattlePartyCurrentOrder[i] = *(0 * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)); + gBattlePartyCurrentOrder[i] = *(i + (u8 *)(gBattleStruct->battlerPartyOrders)); SwitchPartyMonSlots(GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[battlerId]), GetPartyIdFromBattlePartyId(arg1)); for (i = 0; i < (int)ARRAY_COUNT(gBattlePartyCurrentOrder); i++) - *(0 * 3 + i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; + *(i + (u8 *)(gBattleStruct->battlerPartyOrders)) = gBattlePartyCurrentOrder[i]; } }